[关闭]
@Libaier 2016-07-30T08:19:05.000000Z 字数 2369 阅读 3606

神经网络(多层前馈神经网络)

有监督学习 分类 回归


主要思想

通过仿生学模拟生物体内神经元的构造,神经网络由大量的人工神经元联结进行计算。

产生背景

Warren McCulloch and Walter Pitts (1943) created a computational model for neural networks based on mathematics and algorithms called threshold logic.

应用场景

核心理解

每一层都是判断输入向量和当前层的权重向量是否match的过程??pattern extraction with layers of connection weights[林轩田课程]

主要推导(主要引自周志华-机器学习)

此处输入图片的描述
上图给出了一个拥有d个输入神经元,l个输出神经元,q个隐层神经元的多层前馈神经网络。其中输出层第j个神经元的阈值用表示,隐层第h个神经元的阈值用表示。
假设隐层和输出层都采用sigmoid函数做激活函数。

对于训练样例,假定神经网络的输出为,此处


此神经网络在样例上的均方误差为:

我们需要通过训练得到的参数有:
* 输入层到隐含层的d*q个权值
* 隐含层到输出层的q*l个权值
* q个隐层神经元的阈值
* l个输出层神经元的阈值

BP是一个迭代学习算法,在迭代的每一轮采用广义的感知机学习规则对参数进行更新估计,如何更新我们使用为例进行推导。

BP使用基于梯度下降策略,以目标负梯度方向对参数进行调整。对误差,给定学习率,有

注意到先影响到第j个输出层神经元的输入值,再影响到其输出值,然后影响到,有

根据的定义,显然有


sigmoid函数有一个很好的性质

我们设

通过上式可得

类似可得

其中

求解算法

BP算法,对于每个训练样例,BP算法执行以下操作
1.先将输入示例提供给输入层神经元,然后逐层将信号前传,直到产生输出层的结果。
2.然后计算输出层的误差,再将误差逆向传播至隐层神经元。
3.最后根据隐层神经元的误差来对连接权和阈值进行调整。
该迭代过程循环进行,知道达到某些停止条件为止。

伪代码

  1. 输入:数据集D(N个样本),学习率
  2. 过程:在(0,1)范围内随机初始化网络中所有连接权和阈值
  3. repeat
  4. for all 数据集中的样本 do
  5. 根据当前参数计算当前样本的输出
  6. 计算输出层神经元的梯度项
  7. 计算隐层神经元的梯度项
  8. 更新所有连接权和阈值
  9. end for
  10. until:达到停止条件
  11. 输出:连接权和阈值确定的多层前馈神经网络

大数据下改进

to be done

评价

算法改进

参考资料

  1. 周志华 机器学习
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注