多层感知机原理&梯度下降算法
多层感知器(神经网络)
单层神经元的缺陷:无法拟合“异或”运算 (因为输入输出无法线性分割)
因此提出神经网络。
一些概念:
梯度:就是表明损失函数的相对参数的变化率
学习速率:对梯度进行缩放的参数被称为学习速率
如何判断学习速率的选取是否合适?
合适的学习速率,损失函数随时间下降,直到一个底部
不合适的学习速率,损失函数可能会发生震荡
那么如何选取学习速率呢?
原则:再调整学习速率时,既要使其足够小,保证不至于发生超调,也要保证其足够大,以使损失函数能够尽快下降,从而可通过较少的次数的迭代更快地完成学习。
局部极值点问题:可通过将权值随机初始化来改善局部极值的问题。权重的初值使用随机值,可以增加从靠近全局最优点附近开始下降的机会(不过现代神经网络并不是一个很严重的问题)
权重是如何调整的?反向传播算法
前馈时,从输入开始,逐一计算每个隐含层的输出,直到输出层
然后开始计算导数,并从输出层经隐藏层逐一反向传播。为了减少计算量,还要对所有已完成计算的元素进行复用。