【机器学习基础】前馈神经网络

本系列为《模式识别与机器学习》的读书笔记。

一,前馈神经网络

1,前馈神经网络

基于固定⾮线性基函数 ϕ j ( x ) \phi_{j}(\boldsymbol{x}) ϕj(x) 的线性组合,形式为
y ( x , w ) = f ( ∑ j = 1 M w j ϕ j ( x ) ) (5.1) y(\boldsymbol{x},\boldsymbol{w})=f\left(\sum_{j=1}^{M}w_{j}\phi_{j}(\boldsymbol{x})\right)\tag{5.1} y(x,w)=f(j=1Mwjϕj(x))(5.1)
其中 f ( ⋅ ) f(·) f() 在分类问题中是⼀个⾮线性激活函数, 在回归问题中为恒等函数。现在的⽬标是推⼴这个模型,使得基函数 ϕ j ( x ) \phi_{j}(\boldsymbol{x}) ϕj(x) 依赖于参数,从⽽能够让这些参数以及系数 { w j } \{w_j\} { wj} 能够在训练阶段调节。

神经⽹络使⽤与公式(5.1)形式相同的基函数,即每个基函数本⾝是输⼊的线性组合的⾮线性函数,其中线性组合的系数是可调节参数。

⾸先,构造输⼊变量 x 1 , … , x D x_1, \dots , x_D x1,,xD M M M 个线性组合,形式为
a j = ∑ i = 1 D w j i ( 1 ) x i + w j 0 ( 1 ) (5.2) a_{j}=\sum_{i=1}^{D}w_{ji}^{(1)}x_{i}+w_{j0}^{(1)}\tag{5.2} aj=i=1Dwji(1)xi+wj0(1)(5.2)
其中 j = 1 , … , M j = 1,\dots, M j=1,,M , 且上标(1)表⽰对应的参数是神经⽹络的第⼀“层”。参数 w j i ( 1 ) w_{ji}^{(1)} wji(1) 称为 weight), 参数 w j 0 ( 1 ) w_{j0}^{(1)} wj0(1) 称为偏置bias), a j a_{j} aj 被称为激活activation)。每个激活都使⽤⼀个可微的⾮线性激活函数(activation function h ( ⋅ ) h(·) h() 进⾏变换,可得
z j = h ( a j ) (5.3) z_{j}=h(a_{j})\tag{5.3} zj=h(aj)(5.3)
这些量对应于公式(5.1)中的基函数的输出, 这些基函数在神经⽹络中被称为隐含单元hidden unit)。⾮线性函数 h ( ⋅ ) h(·) h() 通常被选为 S形的函数,例如logistic sigmoid函数或者双曲正切函数。根据公式(5.1),这些值再次线性组合,得到输出单元激活output unit activation
a k = ∑ j = 1 M w k j ( 2 ) z j + w k 0 ( 2 ) (5.4) a_{k}=\sum_{j=1}^{M}w_{kj}^{(2)}z_{j}+w_{k0}^{(2)}\tag{5.4} ak=j=1Mwkj(2)zj+wk0(2)(5.4)
其中 k = 1 , … , K k = 1, \dots, K k=1,,K , 且 K K K 是输出的总数量。 这个变换对应于神经⽹络的第⼆层, 并且 w k 0 ( 2 ) w_{k0}^{(2)} wk0(2) 是偏置参数。使⽤⼀个恰当的激活函数对输出单元激活进⾏变换,得到神经⽹络的⼀组输出 y k y_k yk ,激活函数的选择由数据本⾝以及⽬标变量的假定的分布确定。因此对于标准的回归问题, 激活函数是恒等函数, 从⽽ y k = a k y_k = a_k yk=ak 。 类似地, 对于多个⼆元分类问题, 每个输出单元激活使⽤logistic sigmoid函数进⾏变换,即
y k = σ ( a k ) (5.5) y_k=\sigma(a_k)\tag{5.5} yk=σ(ak)(5.5)
其中,
σ ( a ) = 1 1 + exp ⁡ ( − a ) \sigma(a)=\frac{1}{1+\exp(-a)} σ(a)=1+exp(a)1
综上可知,对于sigmoid输出单元激活函数,整体的⽹络函数为
y ( x , w ) = σ ( ∑ j = 1 M w k j ( 2 ) h ( ∑ i = 1 D w j i ( 1 ) x i + w j 0 ( 1 ) ) + w k 0 ( 2 ) ) (5.6) y(\boldsymbol{x},\boldsymbol{w})=\sigma\left(\sum_{j=1}^{M}w_{kj}^{(2)}h\left(\sum_{i=1}^{D}w_{ji}^{(1)}x_{i}+w_{j0}^{(1)}\right)+w_{k0}^{(2)}\right)\tag{5.6} y(x,w)=σ(j=1Mwkj(2)h(i=1Dwji(1)xi+wj0(1))+wk0(2))(5.6)
如图5.1,对应于公式(5.6)的两层神经⽹络的⽹络图。输⼊变量、隐含变量、输出变量都表⽰为结点,权参数被表⽰为结点之间的链接,其中偏置参数被表⽰为来⾃额外的输⼊变量 x 0 x_0 x0 和隐含变量 z 0 z_0 z0 的链接。箭头表⽰信息流在⽹络中进⾏前向传播的⽅向。
两层神经⽹络
可以通过定义额外的输⼊变量 x 0 x_0 x0 的⽅式将公式(5.2)中的偏置参数整合到权参数集合中,其中额外的输⼊变量 x 0 x_0 x0 的值被限制为 x 0 = 1 x_0 = 1 x0=1,因此公式(5.2)的形式为
a j = ∑ i = 1 D w j i ( 1 ) x i (5.7) a_{j}=\sum_{i=1}^{D}w_{ji}^{(1)}x_{i}\tag{5.7} aj=i=1Dwji(1)xi(5.7)
类似地,把第⼆层的偏置整合到第⼆层的权参数中,从⽽整体的⽹络函数为
y ( x , w ) = σ ( ∑ j = 1 M w k j ( 2 ) h ( ∑ i = 1 D w j i ( 1 ) x i ) ) (5.8) y(\boldsymbol{x},\boldsymbol{w})=\sigma\left(\sum_{j=1}^{M}w_{kj}^{(2)}h\left(\sum_{i=1}^{D}w_{ji}^{(1)}x_{i}\right)\right)\tag{5.8} y(x,w)=σ(j=1Mwkj(2)h(i=1Dwji(1)xi))(5.8)
神经⽹络模型由两个处理阶段组成,每个阶段都类似于感知器模型,因此神经⽹络也被称为多层感知器multilayer perceptron),或者 MLP。与感知器模型相⽐,⼀个重要的区别是神经⽹络在隐含单元中使⽤连续的sigmoid⾮线性函数,⽽感知器使⽤阶梯函数⾮线性函数。这意味着神经⽹络函数关于神经⽹络参数是可微的,这个性质在神经⽹络的训练过程中起着重要的作⽤。

神经⽹络结构的⼀个扩展是引⼊跨层skip-layer链接,每个跨层链接都关联着⼀个对应的可调节参数。

前馈feed-forward结构:⽹络中不能存在有向圈,从⽽确保了输出是输⼊的确定函数。

举例:⽹络中每个(隐含或者输出)单元都计算了⼀个下⾯的函数
z k = h ( ∑ j w k j z i ) z_k=h\left(\sum_{j}w_{kj}z_{i}\right) zk=h(jwkjzi)
其中,求和的对象是所有向单元 k k k 发送链接的单元(偏置参数也包含在了求和式当中)。

如图5.2,具有⼀般的前馈拓扑结构的神经⽹络,注意,每个隐含电源和输出单元都与⼀个偏置参数关联。
前馈拓扑结构
如图5.3~5.6,多层感知器的能⼒说明,它⽤来近似四个不同的函数。 (a) f ( x ) = x 2 f(x) = x^2 f(x)=x2 ,(b) f ( x ) = sin ⁡ ( x ) f(x) = \sin(x) f(x)=sin(x), (c) f ( x ) = ∣ x ∣ f(x) = |x| f(x)=x,(d) f ( x ) = H ( x ) f(x) = H(x) f(x)=H(x),其中 H ( x ) H(x) H(x) 是⼀个硬阶梯函数。在每种情况下, N = 50 N = 50 N=50 个数据点(⽤蓝点 表⽰)从区间 ( − 1 , 1 ) (−1, 1) (1,1) 中均匀分布的 x x x 中进⾏取样,然后计算出对应的 f ( x ) f(x) f(x) 值。这些数据点之后⽤来训练⼀个具有3个隐含单元的两层神经⽹络,隐含单元的激活函数为tanh函数,输出为线性输出单元。⽣成的⽹络函数使⽤红⾊曲线表⽰,三个隐含单元的输出⽤三条虚线表⽰。
a
b
c
d

2,权空间对称性

前馈神经⽹络的⼀个性质是,对于多个不同的权向量 w \boldsymbol{w} w 的选择,⽹络可能产⽣同样的从输⼊到输出的映射函数(Chen et al., 1993)。

考虑两层⽹络,⽹络有 M M M 个隐含结点,激活函数是双曲正切函数,且两层之间完全链接。如果把作⽤于某个特定的隐含单元的所有的权值以及偏置全部变号,那么对于给定的输⼊模式, 隐含单元的激活的符号也会改变。 这是因为双曲正切函数是⼀个奇函数, 即 tan ⁡ h ( − a ) = − tan ⁡ h ( a ) \tan h(−a) = −\tan h(a) tanh(a)=tanh(a)。这种变换可以通过改变所有从这个隐含单元到输出单元的权值的符号的⽅式进⾏精确补偿。因此,通过改变特定⼀组权值(以及偏置)的符号,⽹络表⽰的输⼊-输出映射函数不会改变,因此我们已经找到了两个不同的权向量产⽣同样的映射函数。对于 M M M 个 隐含单元,会有 M M M 个这样的“符号改变”对称性,因此任何给定的权向量都是 2 M 2^M 2M 个等价的权向量中的⼀个。

类似地,假设将与某个特定的隐含结点相关联的所有输⼊和输出的权值(和偏置)都变为与不同的隐含结点相关联的对应的权值(和偏置)。与之前⼀样,这显然使得⽹络的输⼊-输出映射不变,但是对应了⼀个不同的权向量。对于 M M M 个隐含结点,任何给定的权向量都属于这种交换对称性产⽣的 M ! M! M! 个等价的权向量中的⼀个,它对应于 M ! M! M! 个不同的隐含单元的顺序。于是,⽹络有⼀个整体的权空间对称性因⼦ M ! 2 M M!2^M M!2M

二,网络训练

1,回归问题

给定⼀个由输⼊向量 { x n } ( n = 1 , … , N ) \{\boldsymbol{x_n}\}(n = 1, \dots , N) { xn}(n=1,,N) 组成的训练集,以及⼀ 个对应的⽬标向量 t n \boldsymbol{t}_n tn 组成的集合,要最⼩化误差函数
E ( w ) = 1 2 ∑ n = 1 N ∣ ∣ y ( x n , w ) − t n ∣ ∣ 2 (5.9) E(\boldsymbol{w})=\frac{1}{2}\sum_{n=1}^{N}||\boldsymbol{y}(\boldsymbol{x_n},\boldsymbol{w})-\boldsymbol{t}_n||^{2}\tag{5.9} E(w)=21n=1Ny(xn,w)tn2(5.9)
⾸先, 讨论回归问题。考虑⼀元⽬标变量 t t t 的情形,假定 t t t 服从⾼斯分布,均值与 x \boldsymbol{x} x 相关,由神经⽹络的输出确定,即
p ( t ∣ x , w ) = N ( t ∣ y ( x , w ) , β − 1 ) (5.10) p(t|\boldsymbol{x},\boldsymbol{w})=\mathcal{N}(t|y(\boldsymbol{x},\boldsymbol{w}),\beta^{-1})\tag{5.10} p(tx,w)=N(ty(x,w),β1)(5.10)
其中 β \beta β 是⾼斯噪声的精度(⽅差的倒数)。

给定⼀个由 N N N 个独⽴同分布的观测组成的数据集 X = { x 1 , … , x N } \mathbf{X} = \{\boldsymbol{x}_1, \dots, \boldsymbol{x}_N\} X={ x1,,xN}, 以及对应的⽬标值 t = { t 1 , … , t N } \mathbf{t} = \{t_1, \dots, t_N\} t={ t1,,tN}

,构造对应的似然函数
p ( t ∣ X , w , β ) = ∏ n = 1 N p ( t n ∣ x n , w , β ) (5.11) p(\mathbf{t}|\boldsymbol{X},\boldsymbol{w},\beta)=\prod_{n=1}^{N}p(t_n|\boldsymbol{x}_n,\boldsymbol{w},\beta)\tag{5.11} p(tX,w,β)=n=1Np(tnxn,w,β)(5.11)
取负对数,可得到误差函数
β 2 ∑ n = 1 N { y ( x , w ) − t n } 2 − N 2 ln ⁡ β + N 2 ln ⁡ ( 2 π ) \frac{\beta}{2}\sum_{n=1}^{N}\{y(\boldsymbol{x},\boldsymbol{w})-t_n\}^{2}-\frac{N}{2}\ln\beta+\frac{N}{2}\ln(2\pi) 2βn=1N{ y(x,w)tn}2

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值