PRML 阅读笔记之神经网络(一)

前向神经网络

在分类和回归问题当中,最终的形式可以表示成
y(x,w)=f(Mj=1wiϕj(x)) (1)
其中,如果是分类问题,f(·)就是一个激活函数,如果是回归问题,f(·)就是回归函数。现在的目标是训练的过程中调整w,使之适应 ϕj(x) 拟好训练数据。
现在来看一个基本的三层神经网络模型:首先我们会有M个关于输入变量 x1,..xd 的线性组合函数:
aj=Di=1w(1)jixi+w(1)j0 (2)
其中j=1,…,M,同时w的上标(1) 表示的是神经网络的层数。然后会有一个非线性函数h(·):
zj=h(aj) (3)
(3)的形式同(1)完全一样。这只是隐含层一个单元的输出,这些输入会再经过一次线性组合:
ak=Mj=1w(2)kjzj+w(2)k0 (4)
其中k=1,…,k并且开始所有输出的个数。对于回归问题, yk=ak .对于分类问题, yk=σ(ak) (5)
其中, σ(a)=11+exp(1) (6)

将上述公式全部写道一起就是:
yk(x,w)=σ(Mj=1w(2)kjh(Di=1w(1)jixi+w(i)j0)+w(2)k0)
因此神经网络模型的实质是输入变量 {xi} 在参数向量w下的非线性变换。(7)
这个网络可以使用下图表示:

通过引入下标0并且设 x1 可以把公式7改写为:
yk(x,w)=σ(Mj=0w(2)kjh(Di=0w(1)jixi)) (8)

由于线性变换的组合仍然是线性变换,如果所有隐含层的的激活函数都是线性变换的话,这样的神经网络可以找到一个与之等效的不包含隐含层的网络。如果隐含层的单元数比输入层或者输出层少时,信息在传递的过程中会丢失。

图5.1中的网络结构是最常见的神经网络。在术语中有不同的叫法,可以叫三层神经网络(根据节点的层数)或者单隐层神经网络(隐含层的个数),或者两层神经网络(按照参数层数,PRML推荐的叫法)。

对神经网络的扩展的一种方式是增加跳跃层连接,也就是说输出层不仅仅如隐含层相连,还与输入层直接相连。书中提到虽然使用sigmoidal函数作为隐含层激活函数的网络可以通过调节输入和输出的权重达到与包含条跃层连接差不多的效果,按时显示包含跳跃层连接也许会更加有效。

在满足前向传播的前提下(也就是不会包含闭合的环,输出不能是自己的输入),可以有更复杂的网络。下一层的输入可以是前面所有层或者子集,或者当前层其他的节点。。一个例子如下:

这个例子中z1,z2,z3是隐含层,同时z1又是z2和z3的输入。

神经网络的逼近近似能力被广泛研究并被成为万能逼近器。例如一个线性输出的两层网络可以在一个紧凑的输入空间以任意精度逼近任何一个连续函数,只要网络有足够大的隐含层数。

权重空间的对称性

前向神经网络的一个性质是对于同样的输入输出,网络的权重参数可以有很多种可能。
首先考虑一个上图5.1的两层神经网络。有M个隐含层,并且采用全连接(每个下一层都与前一层所有的输入相连),激活函数是tanh.对于隐含层的一个单元.如果改变所有该单元的输入权重的符号,那么通过线性变换后的符号会被改变,又因为tanh是个奇函数,tanh(-a)=-tanh(a),那么该单元的输出也会改变符号。通过改变该单元的输出权重的符号可以使得最终流入输出的层的数值不会改变。也就是说通过同时改变输入到隐含层与隐含层到输出层权重的符号,对整个网络的输入输出不会产生于影响。对于有M个单元的隐含层,那么总共就有 2M)

由于中间隐含层的对称性,可以将任何两个隐含层的对象输入输出参数对调,不会影响到整个网络的输入输出结果。因此,总共有M!中不同的方式(也即中间M个隐含层的排列数)。

所以对于一个中间有M个隐含单元的二层神经网络来说,总共的对称权重数为 2MM! .而且不仅对激活函数为tanh才成立。

你可能感兴趣的:(机器学习)