西瓜书记录(三)神经网络
2018-02-17 本文已影响0人
咫尺是梦
1、神经元模型
![](https://img.haomeiwen.com/i3346599/81b0ef870410ffb3.png)
2、感知机与多层网络
![](https://img.haomeiwen.com/i3346599/92848e51aa5c27a0.png)
假定 f 是阶跃函数
• "与 " (X1 ^X2) : 令ω1=ω2 = 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^
![](https://img.haomeiwen.com/i3346599/0836a4594f37671b.png)
其中η∈(0,1),η为学习率(learning rate).
然而要解决非线性 可分问题,需考虑使用多层功能神经元。隐含层和输出层神经元都是拥有激活函数的功能神经元。
3、Error BackPropagation
![](https://img.haomeiwen.com/i3346599/687f80edb500384e.png)
假定神经网络的输出为
![](https://img.haomeiwen.com/i3346599/62f58dff9dc91fc7.png)
其中
![](https://img.haomeiwen.com/i3346599/b618be184b6a4e5a.png)
最小化网络在 (xk,yk)上的均方误差:
![](https://img.haomeiwen.com/i3346599/961041a181aa6817.png)
则求解负梯度进行更新参数:
![](https://img.haomeiwen.com/i3346599/3d845ef5707696b6.png)
其中
![](https://img.haomeiwen.com/i3346599/1645342dfb4d9da2.png)
由于:
![](https://img.haomeiwen.com/i3346599/9cbc8ee13c1a4107.png)
假设隐层和输出层神经元都使用Sigmoid函数,根据:
![](https://img.haomeiwen.com/i3346599/acd745d39574a418.png)
有
![](https://img.haomeiwen.com/i3346599/acb9c5397e5d2f82.png)
则有
![](https://img.haomeiwen.com/i3346599/4c1b4765305b040e.png)
类似有:
![](https://img.haomeiwen.com/i3346599/403f3b89224fc40e.png)
式中
![](https://img.haomeiwen.com/i3346599/4839aabcb6c688d9.png)
![](https://img.haomeiwen.com/i3346599/55530d624ef69f4e.png)
可得基于单个的 Ek的反向传播算法
![](https://img.haomeiwen.com/i3346599/52c1654085237bd8.png)
基于累积误差最小化的更新规则的最优化目标:
![](https://img.haomeiwen.com/i3346599/91da5c270412f0f1.png)
区别:标准 BP 算法往往需进行更多次数的法代.累积 BP 算法直接针对累积误差最小化,它在读取整个训练集 D 一遍后才对参数进行更新,其参数更新的频率低得多.但在很多任务中,累积误差下降到一定程度之后,进一步下降会非常缓慢,这时标准 BP 往往会更快获得较好的解,尤其是在训练集 D 非常大时更明显。类似于随机梯度下降(stochastic gradientdescent,简称 SGD)与标准梯度下降之间的区别。
防止过拟合方法
第一种策略是"早停" (early stopping): 将数据分成训练集和验证集,训练、集用来计算梯度、更新连接权和阔值,验证集用来估计误差,若训练集误差降低但验证集误差升高,则停止训练,同时返回具有最小验证集误差的连接权和阈值。
第二种策略是"正则化" (regularization) 误差目标函数改为:
![](https://img.haomeiwen.com/i3346599/45bf18ea9d8028a0.png)
4、从局部最小到全局最小
人们常采用以下策略来试图 "跳出"局部极小,从而进一步接近全局最小:
以多组不同参数值初始化多个神经网络,按标准方法训练后,取其中误差最小的解作为最终参数
使用模拟退火(simulated annealing) 技术。模拟退火在每一步都以一定的概率接受比当前解更差的结果,从而有助于 "跳出"局部极小 。
使用随机梯度下降。
遗传算法 (genetic algorithms)常用来训练神经网络以更好地逼近全局最小。
上述用于跳出局部极小的技术大多是启发式,理论上尚缺乏保障.
深度学习
无监督逐层训练是多隐层网络训练的有效手段,其基本思想是每次训练一层隐结点,训练时将上一层隐结点的输出作为输入,向本层隐结点的输出作为下一层隐结点的输入,这称为"预训练" (pre-training); 在顶训练全部完成后,再对整个网络进行"微调"(finetuning)训练。
"预训练+微调"的做法可视为将大量参数分组,对每组先找到局部看来比较好的设置,然后再基于这些局部较优的结果联合起来远行全局寻优。——节省开销
权共享——卷积神经网络
![](https://img.haomeiwen.com/i3346599/ac8b7be88e66671b.png)
CNN 可用BP算法进行训练 ,但在训练中 ,无论是卷积层还是采样层其每一组神经元都是用相同的连接权,从而大幅减少了需要训练的参数数目。
小结
深度学习是通过多层处理,逐渐将初始的 "低层 "特征表示转化为 " 高层 " 特征表示后 , 用"简单模型 " 即 可完成复杂的分类等学习任务由此可将深度学习理解为进行"特征学习 " (feature learning)或 " 表示学习 " (representation learning)