ANN

适合神经网络学习的问题

  • 实例是用很多“属性- 值”对表示的。要学习的目标函数是定义在可以用向量描述的实例之上的,向量由预先定义的特征组成,例如 ALVINN 例子中的像素值。这些输入属性之间可以高度相关,也可以相互独立。输入值可以是任何实数
  • 目标函数的输出可能是离散值、实数值或者由若干实数属性或离散属性组成的向量目标函数的输出可能是离散值、实数值或者由若干实数属性或离散属性组成的向量。例如,在 ALVINN 系统中输出的是 30 个属性的向量,每一个分量对应一个建议的驾驶方向。每个输出值是 0 和 1 之间的某个实数,对应于在预测相应驾驶方向时的置信度(confidence)。我们也可以训练一个单一网络,同时输出行驶方向和建议的加速度,这只要简单地把编码这两种输出预测的向量连接在一起就可以了。
  • 训练数据可能包含错误。ANN 学习算法对于训练数据中的错误有非常好的鲁棒性。
  • 可容忍长时间的训练。网络训练算法通常比像决策树学习这样的算法需要更长的训练时间。训练时间可能从几秒钟到几小时,这要看网络中权值的数量、要考虑的训练实例的数量、以及不同学习算法参数的设置等因素。
  • 可能需要快速求出目标函数值。尽管 ANN 的学习时间相对较长,但对学习的网络求值,以便把网络应用到后续的实例,通常是非常快速的。例如,ALVINN 在车辆向前行驶时,每秒应用它的神经网络若干次,以不断地更新驾驶方向。
  • 人类能否理解学到的目标函数是不重要的。神经网络方法学习到的权值经常是人类难以解释的。学到的神经网络比学到的规则难于传达给人类。

多层网络和反向传播算法

可微阈值单元
sigmoid
这里写图片描述

o=σ(wx)

σ(y)=11+ey

dσ(y)dy=σ(y)(1σ(y))

反向传播算法

因为要考虑多个输出单元的网络,所以我们先重新定义误差 E,以便对所有网络输出的误差求和。

E(w)12dDkoutputs(tkdokd)2

其中 outputs是网络输出单元的集合, tkd okd是与训练样例d和第k个输出单元相关的输出
值。

反向传播算法面临的学习问题是搜索一个巨大的假设空间,这个空间由网络中所有单元的所有可能的权值定义。

权重的更新

Δwji=ηδjxji

增加冲量(Momentum)项

冲量有时会使这个球滚过误差曲面的局部极小值;或使其滚过误差曲面上的平坦区域,如果没有冲量这个球有可能在这个区域停止。它也具有在梯度不变的区域逐渐增大搜索步长的效果,从而可以加快收敛。

Δwji(n)=ηδjxji+αΔwji(n1)

任意深度前馈网络

第m层的单元r的 δr值是由更深的m+1 层的 δ值根据下式计算的

δr=or(1or)sm+1wsrδs

任何有向无环网络

δr=or(1or)sDownStream(r)wsrδs

其中 DownStream(r)是在网络中单元 r 的立即下游(immediately downstream)单元的集合,或者说输入中包括 r 的输出的所有单元

反向传播算法的说明

缓解局部极小值问题

  • 冲量项, 问题:原则上它也可以带动梯度下降过程冲过狭窄的全局最小值到其他局部极小值
  • 使用随机的梯度下降
  • 使用同样的数据训练多个网络,但用不同的随机权值初始化每个网络: 形成“网络委员会”

前馈网络的表征能力

  • 布尔函数
  • 连续函数: 任何有界的连续函数可以由一个两层的网络以任意小的误差(在有限的范数下)逼近
  • 任意函数:任意函数可以被一个有三层单元的网络以任意精度逼近

p.s.

梯度下降是从一个初始的权值开始的,因此搜索范围里的网络权向量可能不包含所有的权向量

反向传播算法从观测数据中泛化的归纳偏置

在数据点之间平滑插值: 如果给定两个正例,它们之间没有反例,反向传播算法会倾向于把这两点之间的点也标记为正例


隐藏层表示

多层网络在隐藏层自动发现有用表示的能力是 ANN 学习的一个关键特性.
网络中使用的单元层越多,就可以创造出越复杂的特征.


泛化,过度拟合和停止判据

过度拟合的问题对小训练集合最严重。在这种情况下,有时使用一种称为“k-fold交叉验证(k-fold cross-validation)”的方法,这种方法进行k次不同的交叉验证,每次使用数据的不同分割作为训练集合和验证集
合,然后对结果进行平均。

人脸识别

http://www.cs.cmu.edu//~tom/mlbook.html

To-do

后面的习题


版权声明:本文为u012742806原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。