(一)感知器
简单介绍
感知器是一个输入层,一个输出层的单层神经网络,通常是给定输入,经过一个线性权重的连接后,输出1或者-1。这样的网络的拟合能力是有限的,例如:我们不能找到一条直线可以把图上的四个点区分开。
单层神经网络的缺点.png
权重更新
更新法则如下,是学习率,通常是一个很小的数。
- 当预测正确,即,则不进行权重更新
- 当,,则增大正项的权重,减小负项的权重
- 当,,则增大负项的权重,减小正项的权重
(二)多层神经网络
简单介绍
- 一般有一个输入层,一个输出层和若干个隐藏层
- 每一层的连接方式:
1)先是线性连接 :
2)再通过一个非线性的激活函数: - 权重更新的方法有很多,这里只介绍梯度下降,随机梯度下降以及这些算法的核心部分——Back Propagation 反向传播
Forward Propagation 前向传播
设是NN的输出,下标代表处于该层的第几个元素,上标代表处于NN的第几层。
损失函数用的是回归问题常用的Mean Square Error。
Back Propagation 反向传播
根据求导的链式法则,我们有:
其中,对于sigmoid激活函数来说,。
所以接下来只要计算即可。
1)如果是输出层
2)如果是最后一个隐藏层,即输出层的前一层
其中,代表层的神经元个数。
3),这些都和2)中的过程一致
- 总结
算到3)的时候,相信你更能体会到这个方法为什么叫反向传播了。
-- 对于每一层都是先接到上一层传递过来的(类似于前向传播中每层的输入)
-- 然后再乘以该层的权重(前向传播中的线性变换)
-- 最后乘以一个系数(前向传播中的激活函数)
这样就可以得到权重更新时需要的梯度(导数的相反数),权重依据下式进行更新:
最重要的是,BP做到了每个求导式子只计算了一次,从而大大增加了梯度求解的效率。
Gradient Descend —— 梯度下降
梯度下降就是应用BP算法,对每个样本点都计算,,利用下式更新权重
Stochastic Gradient Descend —— 随机梯度下降
梯度下降在更新权重的时候,需要计算所有的样本点的梯度,当样本量非常大的时候,将大大降低算法的效率,因此,随机梯度下降算法应运而生。
其想法也很简单,就是在更新权重的时候我们可以每次只算一部分样本的梯度,这部分样本称为batch,设其大小为,那么权重更新用下式
注意:上述的每一个权重更新方法都不能保证NN可以收敛到全局最优点,有可能会陷入局部最优点。
网友评论