数学建模 —— 人工神经网络(6)

目录

一、人工神经网络

1.1 人工神经网络结构

1.2 神经元/感知器

1.3 激活函数

1.3.1 sign函数

1.3.2 sigmoid函数(Logistic函数)

1.3.3 tanh双曲正切函数

1.3.4 ReLU函数

1.4 分类

二、BP人工神经网络

2.1 概述

2.2 处理过程

2.3 例题

2.4 Matlab实现

2.4.1 一个简单程序

2.4.2 newff——BP神经网络参数设置函数

2.4.3 train——BP神经网络训练函数


一、人工神经网络

1.1 人工神经网络结构

1.2 神经元/感知器

1.3 激活函数

1.3.1 sign函数

                     

1.3.2 sigmoid函数(Logistic函数)

                    

1.输出映射在 ( 0 1 ) 之间,输出 范围 有限
2.单调连续,易于求导
3.优化 效果 稳定
4.适合用于输出层感知器的激活函数

   

1.因为 sigmoid 函数具有的饱和 性,容易 产生梯度 消失,导致 训练 失效
2.输出 并不是以 0 中心

       可以看出,sigmoid函数的导数只有在x=0附近的时候有比较好的激活性,在正负饱和区的梯度都接近于0,造成梯度弥散,无法完成深层网络的训练。

1.3.3 tanh双曲正切函数

             

1.取值 范围为 [- 1 1]
2.在 特征相差明显时的应用效果 较好,在循环 训练过程中会不断扩大特征 效果
3.是 0 均值
4.应用中比 sigmoid 函数有更强的 应用性
5.同样 具有饱和 性,也 会造成梯度 消失

1.3.4 ReLU函数

                                        

                                 

1.用于 某些算法(如随机梯度下降) 时,收敛速度较快
2.当 x <0 时, ReLU 饱和;当 x > 0 时,则 不存在饱和 问题
3.在 x > 0 时保持梯度不 衰减,从而 缓解梯度消失 问题。但随着训练推进,部分 输入会落入硬饱和 区,导致 对应权重无法 更新,导致神经元死亡
4.输出 均值也大于 0
5.偏移 现象和神经元死亡会共同影响网络的收敛性。

1.4 分类

(1)拓扑结构划分

        两层、三层、多层神经网络

(2)结点间的连接方式划分

        层间连接、层内连接

(3)结点间的连接方向划分

        前馈式神经网络BP(Back Propagation)、反馈式神经网络(Feedback)

二、BP人工神经网络

2.1 概述

        BP人工神经网络一种按误差逆传播算法训练的多层前馈网络,是目前应用最广泛的神经网络模型之一

        BP网络能学习和存贮大量的输入-输出模式映射关系,而无需事前揭示描述这种映射关系的数学方程        

 

2.2 处理过程

(1)初始化网络权值和处理单元的阈值

        最简单的办法就是随机初始化,分别wijwjkwklbijbjkbkl赋随机值

(2)信号的前向传播,计算各处理单元的输出

        按照网络连接以及组合函数和激活函数关系公式,逐层计算隐藏层处理单元和输出层处理单元的输入和输出。

 (3)误差后向传播

对于训练数据xi,输出应为yl,与人工神经网络实际输出Ol存在差异

定义系统的总输出误差为系统输出层各处理单元输出误差的平均值

即各输出Ol与训练数据yl的差异),

输出与其期望值的均方差

 

 需要根据差异的情况对系统内各连接的权值进行调整,使二者相等或逼近 yl

(4)模型评估

(5)模型应用

2.3 例题

 

2.4 Matlab实现

2.4.1 一个简单程序

P=[0 1 2 3 4 5 6 7 8 9 10];          %输入
T=[0 1 2 3 4 3 2 1 2 3 4];           %期望输出
ff=newff(P,T,20);                    %建立一个BP网络,包含20个节点的隐含层
ff.trainParam.epochs=50;             %最大训练次数
ff=train(ff,P,T);                    %训练
Y1=sim(ff,P);                        %仿真
plot(P,T,'o-');

2.4.2 newff——BP神经网络参数设置函数

功能:构建一个BP神经网络

(1)net=newff(P, T, S)

P:  R*Q1矩阵,表示创建的神经网络中,输入层有R个神经元。每行对应一

     个神经元输入数据的典型值,实际应用中常取其最大最小值。

T:  SN*Q2矩阵,表示创建的网络有SN个输出层节点,每行是输出值的典型

     值。

S:  标量或向量,用于指定隐藏层神经元个数,若隐藏层多于一层,则写成

     行向量的形式。

(2)net=newff(P, T, S, TF, BTF, BLF, PF, IPF, OPF, DDF)

TFi:    i层节点的传递函数,包括线性传递函数purelin, 正切S型传递函数

           tansig,对数S型传递函数logsig,默认为“tansig”

BTF:  训练函数,用于网络权值和阈值的调整,默认为基于莱文贝格-马夸

           特共轭梯度法的训练函数trainlm,其他参数见下表所示;

一般在使用过程中设置这2个参数,后面5个参数采用系统默认参数。

BP神经网络训练函数

训练函数的意义

MATLAB中相应的函数

梯度下降法

traingd

动量反传的梯度下降法

traingdm

动态自适应学习率的梯度下降法

traingda

带动量动态自适应学习率的梯度下降法

traingdx

弹性梯度下降法

trainrp

量化共轭梯度法

traincg

莱文贝格-马夸特共轭梯度法

trainlm

弗莱彻-里夫斯共轭梯度法

traingf

波拉克-里比埃共轭梯度法

traingp

鲍威尔-比尔共轭梯度法

traingb

2.4.3 train——BP神经网络训练函数

功能:用训练函数训练BP神经网络

[net, tr]=train(NET, P, T)

NET:  待训练网络;

     P:  输入数据矩阵;

     T:  期望输出数据矩阵;

  net:  训练好的网络;

     tr:  训练过程记录。

BP神经网络训练函数

训练参数名称及默认值

属性

net.trainParam.epochs=100

最大训练次数

net.trainParam.goal=0

训练目标

net.trainParam.show=25

两次显示之间的训练次数(无显示时取NAN

net.trainParam.time=inf

最大训练时间(秒)

net.trainParam.max_fail=5

确认失败的最大次数

net.trainParam.min_grad=1e-6

最小性能梯度

net.trainParam.lr=0.2

学习速率

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/670080.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

太空音响器

目录 1&#xff0e;课程设计项目 2.任务和要求 3.总体功能设计与仿真 3.1.元器件汇总 3.2.总体方案设计 3.3 总体电路仿真 4.单元模块设计及电路仿真 4.1 互补型振荡器电路 5.组装&#xff0c;调试与测试 6.分析与总结 7.参考文献 1&#xff0e;课程设…

汇编原理 | 二进制、跳转指令、算数运算、

一.二进制 two complement reprentation&#xff08;补码&#xff09; 二进制的运算&#xff1a; 6的二进制 0110 -6的二进制 如何表示&#xff1f; 四个bit的第一个bit表示符号&#xff1a;1负0正 -6表示为1010 解释&#xff1a; 0 0000 1 0001 -1 1111&#xff08;由 …

[图解]建模相关的基础知识-01

6 00:00:21,930 --> 00:00:25,450 我们尝试以一个更深的 7 00:00:25,460 --> 00:00:27,170 或者更基本的角度 8 00:00:28,410 --> 00:00:32,760 来思考建模的问题 9 00:00:37,630 --> 00:00:42,470 首先&#xff0c;我们来说一个观点&#xff0c;就是说 10 00:…

WPS部分快捷操作汇总

记录一些个人常用的WPS快捷操作 一、去除文档中所有的超链接&#xff1a; 1、用WPS打开文档&#xff1b; 2、用Ctrla全选&#xff0c;或者点击上方的【选择】-【全选】&#xff0c;选中文档全部内容&#xff1b; 3、按CTRLSHIFTF9组合键&#xff0c;即可一次性将取文档中所有…

IDEA一键启动多个微服务

我们在做微服务项目开发的时候&#xff0c;每次刚打开IDEA&#xff0c;就需要把各个服务一个个依次启动&#xff0c;特别是服务比较多时&#xff0c;逐个点击不仅麻烦还费时。下面来说一下如何一键启动多个微服务。 操作步骤 点击Edit Configurations 2.点击“”&#xff0c;…

数据图同步软件ETL

ETL介绍 ETL&#xff08;Extract, Transform, Load&#xff09;软件是专门用于数据集成和数据仓库过程中的工具。ETL过程涉及从多个数据源提取数据&#xff0c;对数据进行转换以满足业务需求&#xff0c;然后将数据加载到目标数据库或数据仓库中。以下是ETL软件的一些关键功能…

matplotlib实现双柱图

1&#xff0c;读取txt文件实现数据可视化 2&#xff0c;txt文件如下图 姓名,语文,数学,英语 小米,98,100,20 小明,100,20,98 小黑,78,98,1003&#xff0c;代码如下 import matplotlib.pyplot as plt import matplotlib matplotlib.use(TkAgg) plt.rcParams[font.family]SimHe…

鸿蒙应用Stage模型【应用/组件级配置】

应用/组件级配置 在开发应用时&#xff0c;需要配置应用的一些标签&#xff0c;例如应用的包名、图标等标识特征的属性。本文描述了在开发应用需要配置的一些关键标签。 应用包名配置 应用需要在工程的AppScope目录下的[app.json5配置文件]中配置bundleName标签&#xff0c;…

多元分类预测 | 基于哈里斯鹰优化HHO-卷积神经网络数据分类预测

文章目录 效果一览文章概述订阅专栏只能获取一份代码部分源码参考资料效果一览 文章概述 多元分类预测 | 基于哈里斯鹰优化HHO-卷积神经网络数据分类预测 HHO-CNN 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matlab,程序可出分类…

设计模式(四)原型模式

文章目录 原型模式简介结构UML图具体实现关于拷贝浅拷贝深拷贝实现深拷贝方法 原型模式简介 原型模式是指&#xff1a;用原型实例指定创建对象的种类&#xff0c;并且通过拷贝这些原型&#xff0c;创建新的对象。工作原理&#xff1a;原型模式创建新的对象&#xff0c;其本质就…

iOS App Tech Support(URL)

咪萌是一个语音类交友直播App&#xff0c;分成红艳知己&#xff0c;点唱大厅&#xff0c;歌手驻唱等不同房间分类&#xff0c;广场可以看到其他人发的一些动态&#xff0c;一个非常不错的App 如果您有任何疑问&#xff0c;您可以留言或者将问题发送至我们的邮箱。 我们会第一时…

子比主题zibll5.7修复版

下载地址&#xff1a;子比主题zibll5.7修复版

GPT-4o VS GPT-3.5 完胜

前言&#xff1a; 最近&#xff0c;GPT-4o已经限时免费开放了&#xff0c;试了一下&#xff0c;然后&#xff0c;说我的时间到了&#xff0c;然后&#xff0c;有给我转到3.5&#xff0c;正好遇到一个问题做一下对吧&#xff0c;感觉4O完胜啊。3.5还是很好胡诌&#xff0c;也就…

C语言深入理解指针(5)

文章目录 一、sizeof和strlen的对比1、sizeof2、strlen3、sizeof和strlen的对比 二、数组和指针笔试题解析1、一维数组2、字符数组3、二维数组 一、sizeof和strlen的对比 1、sizeof siezeof是一个操作符&#xff0c;sizeof计算的是变量所占内存空间大小&#xff0c;单位是字节…

Photoshop 首选项设置建议

Windows Ps菜单&#xff1a;编辑/首选项 Edit/Preferences 快捷键&#xff1a;Ctrl K macOS Ps菜单&#xff1a;Photoshop/首选项 Photoshop/Preferences 快捷键&#xff1a;Cmd K 对 Photoshop 的首选项 Preferences进行设置&#xff0c;可以提高修图与设计效率。下面是一些…

Android 使用kotlin Retrofit2 + Dagger2完成网络请求跟依赖注入组合使用

文章目录 &#xff08;一&#xff09;引入依赖&#xff08;二&#xff09;基本概念Dagger中的基本概念&#xff1a;Retrofit介绍 &#xff08;三&#xff09;Dagger2 Module 和 Provides 和 Component Inject&#xff08;四&#xff09;Retrofit2 创建数据类Bean跟Service服务&…

GIt快速入门(一文学会使用Git)

GIt快速入门 文章目录 GIt快速入门一、为什么要学习Git二、Git的安装1.安装Git2.下载GUI 三、Git的概念1、版本控制2、集中式控制3、分布式控制4、多人协作开发1.并行开发2.分支管理3.冲突解决4.代码审查5.分布式特性 四、Git客户端操作1.界面介绍2.提交操作3.创建分支4.合并分…

网络I/O模型

网络I/O模型 同步I/O阻塞I/O非阻塞I/OI/O多路复用select函数接口示例 poll函数接口示例 poll 和 select 的区别epoll原理&#xff1a;示例 异步I/O 同步I/O 阻塞I/O 一个基本的C/S模型如下图所图&#xff1a;其中 listen()、connect()、write()、read() 都是阻塞I/O&#xff0…

Java面试题:Redis2_解决Redis缓存击穿问题

缓存击穿 当一个key过期时,需要对这个key进行数据重建 在重建的时间内如果有大量的并发请求进入,就会绕过缓存进入数据库,会瞬间击垮DB 重建时间可能因为数据是多个表的混合结果需要分头统计而延长,从而更容易出现缓存击穿问题 缓存击穿的解决方案 添加互斥锁 先查询缓存…

电商商城管理系统

前言&#x1f440;~ 将近一个月没更新了&#xff0c;最近忙着学校的大作业&#xff0c;一个是微信小程序的、一个是互联网编程的&#xff0c;也是忙完了这个大作业&#xff0c;这个大作业前端使用了vue、后端使用了java&#xff0c;接下来展示一些效果图&#xff0c;如果有需要…