第四章 人工神经网络
(单个)感知器
- 输入:一个实数值向量 (x1, … ,xn)
- 输出:o(X) = sgn(W·X),
- 其中 向量W = (w0,w1, … ,wn)是要求的参数,向量X = (x0,x1, … ,xn) (x0=1)是输入
- 函数o(x1, … ,xn)实际上是求(x1, … ,xn)的线性组合是否大于阈值-w0,从几何上看即是在决策面的哪一侧 - 假设空间:H = { W | W属于R^(n+1) }
- 学习一个感知器意味着从空间R^(n+1)中,搜索一个向量W,使o(X)趋近训练集中X对应的输出 - 训练方法:W <- W+ΔW
- 感知器法则:wi <- wi+Δwi,
- 其中Δwi = η(t-o)xi,t是当前训练样例的目标输出,o是感知器的输出,η>0称为学习速率
- η通常是一个很小的常数(比如0.1),有时随权调整次数增加而衰减
- 适用于训练样例线性可分的情况 - delta法则:训练无阈值感知器—— o(X) = W·X,ΔW = -η▽E(W)
- 定义训练误差 E(W) = 1/2 ∑(td-od)^2,(d属于D,D是训练样例集合),▽E(W) = gradE 是E对于W的梯度。可以证明,在一定条件下,使E最小化的假设就是H中最可能的假设。
- wi <- wi+Δwi, Δwi = η ∑(td-od)xid
- delta法则使用 梯度下降 来搜索假设空间,不必要求训练样例线性可分 - LMS(least-mean-square)法则(梯度下降的随机近似):增量法则—— Δwi = η (t-o)xi
- 这里的表达式和感知器法则中的形式是一样的,但是其中o的含义不同。感知器法则中 o(X)=sgn(W·X),这里o(X)=W·X。
- 梯度下降训练法则对所有训练样例求和后计算权值更新,随机梯度下降的思想是根据每个单独样例的误差增量计算权值更新,得到近似的梯度下降搜索。
- 误差函数 Ed(W) = 1/2 (td-od)^2
- 如果E(W)有多个局部极小值,随机的梯度下降有时可能避免陷入这些局部极小值中,因为它使用不同的▽Ed(W)而不是▽E(W)来引导搜索。
- 感知器法则:wi <- wi+Δwi,
多层网络
- 表示高度非线性的决策面
- 单元特点:可微阈值单元。输出是输入的非线性函数,且输出是输入的可微函数,(使之可以构成多层网络)。
- sigmoid单元:o(W,X) = σ(W,X),σ(y) = [ 1+e^(-y) ]^(-1)
- 反向传播算法(对于有一层隐藏单元、一层输出单元的网络)
- 误差函数:E(W) = 1/2 ∑[ ∑(tkd-okd)^2 ]
- d属于D,k属于outputs,tkd和okd是与训练样例d和第k个输出单元相关的输出值 - 更新法则:Δwji = η δj xji
- 这里与delta法则中的类似,只是把误差项由(t-o)换成δj
- 对每个输出单元k,δk <- ok (1-ok) (tk-ok);每个隐藏单元h,δh <- oh (1-oh) (∑ wkh δk)。其中 o(1-o) 是sigmoid函数 σ(y) = [ 1+e^(-y) ]^(-1) 的导数。
- 误差函数:E(W) = 1/2 ∑[ ∑(tkd-okd)^2 ]
- 把反向传播算法推广到 任意深度的前馈网络 和 任意的无环网络
- 任意深度的前馈网络:δr = or (1-or) (∑ wsr δs)
- 第m层的单元r的δr值由m+1层的δ值计算,其中s属于m+1层 - 有向无环结构:δr = or (1-or) (∑ wsr δs),其中s属于downstream(r)是网络中单元r的立即下游(即r输出到的单元)
- 任意深度的前馈网络:δr = or (1-or) (∑ wsr δs)
- 增加冲量项的反向传播算法变体:Δwji(n) = η δj xji + α Δwji (n-1)
- 在原来的增量中增加一项冲量项 α Δwji (n-1),使第n次迭代的权值更新部分地依赖于第n-1次迭代时的更新
- 增加冲量可能避过误差曲面上的局部极小值或平坦区域,也可以在梯度不变的区域加快收敛
问题
- delta法则用的感知器的输出
o(X)=(w0,w1,…,wn)·(x0,x1,…,xn) OR o(X)=(w1,…,wn)·(x1,…,xn) ? - o(X)=sgn(W·X)
是否可以说,这样的感知器是给输入做分类? - 梯度下降的随机近似 的伪码
每个单独样例的顺序似乎对W有影响?或者重复操作很多次过后顺序带来的影响可以忽略?