2017/7/20 朱兴全教授学术讲座观点与总结第三讲:多层神经网络

一、多层神经网络(为什么可以解决多种问题)

多层神经网络:在输入和输出层上有隐含层,可以克服单层神经网络的限制处理非线性分离问题

  • 多层有更大的区分度,多条线去拟合

    第三个图中,每一个方块对应第二个图中神经网络,即有两个隐含层。


二、Feedforward Neural Networks

1、FF NN模型

选择sigmoid函数作为激活函数的原因是其处处可导。

多层神经网络的误差,输出误差(期望输出与真实输出的差)、单个样本网络误差(单个样本对应所有输出与期望输出的误差)、所有样本的网络误差。

前馈神经网络

loss:期望与实际情况的差异  去调整权重。观察到某种情况下(某一权重分布下)的影响(输出结果),去更改行为(权重),以使其往期望的方向改变。

2、训练:BP算法

重复:

  • 前向传递  从输入到输出的计算,得到error
  • 后向传递  从输出层开始,误差反向传播,对每一个神经元计算局部梯度,更改权重(最后层附近更改权重是最大的,越往前影响越弱,如绳子抖波浪一样)

算法步骤:

 2、BP规则的推导(个人认为十分调理清晰,简单易懂,非常推荐看看)

输出层与隐含层神经元的权重更新不同

 

各个层到底学到的是什么?

权重与特征并不同等,具有可区分性的特征对应的权重值更大,对应点(神经元)response更高。

 这里有一个demo,适合运行在32位的计算机上,希望后面有时间来运行一下(64位要在x86里更改什么来着。。。)

http://www.inf.ed.ac.uk/teaching/courses/inf1-cg/labs/lab6/mcmaster/digit-demo.html

 

 训练停止法则:两点,一是整个平均误差平方达到一个很小的值。二是使用验证集,整个模型的泛化性能表现足够良好。

  • 有效数据集:训练数据集、验证集(监测误差,决定是否停止迭代)、测试集
  • 控制好模型的复杂度与泛化能力

  • 通过交叉验证选择合适的模型

3、神经网络设计

数据表示

①网络拓扑结构(层数等)

②网络参数(权重、学习率、隐藏层数和神经元个数、训练集样本个数)

 

原文地址:https://www.cnblogs.com/betterforever/p/7220454.html