西瓜书记录(三)神经网络

2018-02-17  本文已影响0人  咫尺是梦

1、神经元模型

M-P 神经元模型

2、感知机与多层网络

两个输入神经元的感知机网络结构示意图
假定 f 是阶跃函数
• "与 " (X1 ^X2) : 令ω12 = 1, θ= 2 , 则 y = f(l ·X1 + 1· X2 - 2) ,仅在 X1= X2 = 1 时 , y = 1;
• "或 " (X1 V X2): 令 ω1= ω2= 1, θ = 0.5,则 y = f(l · Xl 十 1· X2 - 0.5) ,
当 X1 = 1 或 X2= 1 时 , y = 1;
• "非 " (!X1): 令 ω1 = -0.6 , ω2 = 0, θ= -0.5,则 y = f( -0.6· X1 + 0·X2 +0.5),当 X1 = 1 时 , y =0; 当 X1= 0 时 , y = 1。
可用于解决问题:若两类模式是线性可分的,即存在一个线性超平面能将它们分开,则感知机的学习过程一定会收敛 (converge) 而求得适当的权向量 ω = (ω1; ω2;... ;ωn+1); 否则感知机学习过程将会发生振荡 (fluctuation) , ω难以稳定下来,不能求得合适解。
学习过程
对训练样例(x , y) , 若当前感知机的输出为 y^

其中η∈(0,1),η为学习率(learning rate).
然而要解决非线性 可分问题,需考虑使用多层功能神经元。隐含层和输出层神经元都是拥有激活函数的功能神经元。

3、Error BackPropagation

BP网络及算法中的变量符号
假定神经网络的输出为
其中

最小化网络在 (xkyk)上的均方误差:

则求解负梯度进行更新参数:
式5.6
其中
式5.7
由于: 式5.8
假设隐层和输出层神经元都使用Sigmoid函数,根据:
式5.9
式5.10
则有 式5.11
类似有:

式中

式5.15

可得基于单个的 Ek的反向传播算法

误差逆传播算法
基于累积误差最小化的更新规则的最优化目标:

区别:标准 BP 算法往往需进行更多次数的法代.累积 BP 算法直接针对累积误差最小化,它在读取整个训练集 D 一遍后才对参数进行更新,其参数更新的频率低得多.但在很多任务中,累积误差下降到一定程度之后,进一步下降会非常缓慢,这时标准 BP 往往会更快获得较好的解,尤其是在训练集 D 非常大时更明显。类似于随机梯度下降(stochastic gradientdescent,简称 SGD)与标准梯度下降之间的区别。

防止过拟合方法

第一种策略是"早停" (early stopping): 将数据分成训练集和验证集,训练、集用来计算梯度、更新连接权和阔值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。
第二种策略是"正则化" (regularization) 误差目标函数改为:

4、从局部最小到全局最小

人们常采用以下策略来试图 "跳出"局部极小,从而进一步接近全局最小:

以多组不同参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数
使用模拟退火(simulated annealing) 技术。模拟退火在每一步都以一定的概率接受比当前解更差的结果,从而有助于 "跳出"局部极小 。
使用随机梯度下降。
遗传算法 (genetic algorithms)常用来训练神经网络以更好地逼近全局最小。

上述用于跳出局部极小的技术大多是启发式,理论上尚缺乏保障.

深度学习

无监督逐层训练是多隐层网络训练的有效手段,其基本思想是每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,向本层隐结点的输出作为下一层隐结点的输入,这称为"预训练" (pre-training); 在顶训练全部完成后,再对整个网络进行"微调"(finetuning)训练。
"预训练+微调"的做法可视为将大量参数分组,对每组先找到局部看来比较好的设置,然后再基于这些局部较优的结果联合起来远行全局寻优。——节省开销
权共享——卷积神经网络

卷积神经网络用于手写数字识别
CNN 可用BP算法进行训练 ,但在训练中 ,无论是卷积层还是采样层其每一组神经元都是用相同的连接权,从而大幅减少了需要训练的参数数目。

小结

深度学习是通过多层处理,逐渐将初始的 "低层 "特征表示转化为 " 高层 " 特征表示后 , 用"简单模型 " 即 可完成复杂的分类等学习任务由此可将深度学习理解为进行"特征学习 " (feature learning)或 " 表示学习 " (representation learning)

上一篇 下一篇

猜你喜欢

热点阅读