吃瓜教程 | 第五章 神经网络

发布于:2023-02-17 ⋅ 阅读:(602) ⋅ 点赞:(0)

5.1 神经元模型

神经网络中最基本的模型叫做神经元(neuron)或者(unit)

上图为一直沿用至今的“M-P神经元模型”,神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接进行传递,神经元接收到的总输入值将于神经元的阈值进行比较,然后通过“激活函数”处理以产生神经元的输出。

 理想的激活函数是阶跃函数,它将输入值映射为输出值“0”或“1”.但因为不连续、不光滑等性质,常用Sigmoid函数作为激活函数。

 对于单个“M-P神经元”

  • 激活函数为阶跃函数——感知机
  • 激活函数为Sigmoid函数——对数几率回归

5.2 感知机与多层网络

感知机(perceptron)由两层神经元组成,输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”(threshold logic unit)。感知机能够方便的实现与或非逻辑运算。

 

一般的来说,给定了训练的数据集后,其连接权重和阈值可以通过学习得到,感知机学习规则很简单,对于训练样例(x,y)若当前感知机的输出为y^,则感知机权重调整方式如下

其中η ∈ ( 0 , 1 ) 称为学习率

需要注意的是,感知机只有输出层神经元进行激活函数的处理,即只有一层功能神经元,其学习能力非常有限,只能解决与、或、非此类线性可分的问题,无法解决异或这类非线性可分问题。于是便引出了多层功能神经元来解决非线性可分问题。

 在上图网络结构中,输入层和输出层之间增加一层神经元,称为隐含层,隐层与输出层都是拥有激活函数的神经元。多层前馈神经网络,每层神经元与下一层神经元全互连,神经元之间不存在同层连接,也不存在跨层连接。

神经网络的学习过程根据训练数据来调整神经元之间的"连接权"以及每个功能神经元的阈值。

5.3 误差逆传播算法

误差逆传播(error backPropagation, 简称BP)是迄今最成功的神经网络学习算法。

 假设均使用sigmoid函数作为激活函数

 如上面的前馈神经网络示意图中所示,需要确认的参数有

  • 输入层到隐层:d × q 
  • 隐层到输出层:q × l 
  • 隐层神经元阈值:q 
  • 输出层神经元阈值:l 

类似于w i ,任意参数v 的更新估计式为

 BP算法基于梯度下降策略,即以目标的负梯度方向对式子进行调整。BP算法中关于whj的更新公式:

 学习率控制着算法每一轮迭代中的更新步长,若太大则容易震荡,太小则收敛速度又会过慢。

 BP算法的目标是最小化训练集D上的累积误差

 上述为“标准BP算法”每次仅针对一个训练样例更新连接权和阈值。类似推导出基于累积误差最小化的更新规则,就得到了累积误差逆转传播。

如何设置隐层神经元的个数仍是个未决问题,实际应用通常靠“试错法”调整。

处理BP神经网络"过拟合"的方法

  • 早停(early stopping):将数据分成训练集和验证集,训练集用来计算梯度,更新连接权和阈值,验证集用来估计误差,若训练集误差降低但是验证集的误差提升,则停止训练,同时返回具有最小验证集误差的连接权和阈值
  • 正则化(regularization):正则化的基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分

5.4 全局最小和局部极小

在现实世界中,我们通常采用一些策略来试图跳出局部极小这个局限,不断的去逼近我们的全局最小策略

  • 以多组不同参数值初始化多个神经网络,按标准方法trainning后,取其中误差最小的解作为最终参数
  • 使用模拟退火技术,模拟退火在每一步都以一定的概率接受比当前解更差的结果,在每步迭代的过程中,接受次优解的概率随着时间的推移而逐渐降低
  • 使用随机梯度下降,与标准梯度下降法不同的是,随机梯度下降法在计算梯度的时候加入了随机性元素


网站公告

今日签到

点亮在社区的每一天
去签到