5.2 感知机和多层网络
- 感知机(perception)由两层神经元组成,如图5.3所示,输入层接受外界输入信号后传递给输出层,输出层是M-P神经元,亦称为“阈值逻辑单元“
- 感知机能够容易的实现逻辑 AND OR NOT,注意到 y = f(求和wixi - 谁他i),假设f是图5.2的阶跃函数,有
- AND x1 ∩ x2 w1=w2=1 谁他=2,此时1*1+1*1-2 =0,此时y=1
- OR x1 或 x2 w1=w2=1 谁他=1 只要有一个1,那么结果就是大于等于0,此时 y=1
- NOT 非x1 w1 =-0.6,w2= 0,谁他 =-0.5,如果x1 =0,结果为0.5 y=1; 如果x1=1 ,结果为 -0.1 结果为0
- 更加一般的,给定训练数据集,权重wi(i=1,2,3,n)以及阈值谁他可以通过学习得到,阈值谁他可以看作是一个固定输入为 -1.0 的哑节点所对应连接权重w n+1,这样权重和阈值的学习就可以统一为权重的学习。感知机学习规则非常的简单,对于训练样例(x,y),当感知机输入为y_hat,则感知机将这样调整
- wi 👈 wi+▲wi
- ▲wi = 学习率(y - y_hat) xi
- 其中学习率范围是0-1,从式子中可以看出来,如果感知机对训练的样本(x,y)预测正确,即y = y_hat,则感知机不会发生变化。否则将根据错误的程度进行权重的调整
- 需要注意的是,感知机只有输出层神经元进行激活函数处理,即只拥有一层功能神经元,其学习能力非常有限。事实上,上述AND,OR,NOT问题都是线性可分问题。即存在一个线性超平面能够将他们分开来,如下图所示,感知机的学习过程一定会收敛,而求得适当的权向量 w = (w1,w2,wn+1),否则感知机学习过程将会发生震荡,w难以稳定下俩,不能求得合适的解。例如感知机甚至不能解决OR NOT 这样的非线性可分问题(非线性可分意味着使用线性超平面无法划分)
- 要解决非线性可分问题,需要考虑使用多层功能神经元,例如图5.5中这个简单的两层感知机就能解决 OR NOT问题。在图5.5中,输入层和输出层之间的一层神经元,被称作隐层或者是隐含层(hidden layer),隐含层和输出层神经元都是拥有激活函数的功能神经元
- 更加一般的是,常见的神经网络是如图5.6所示的层级结构,每层神经元与下一层神经元互连,神经元之间不存在同层连接。也不存在跨层连接,这样的神经网络通常被称为多层前馈神经网络,其中输入层神经元接受外界输入,隐层与输出层神经元对信号进行加工,最终结果由输出层神经元输出,换言之,输出层神经元仅仅是接受输入,不进行函数的处理,隐层和输出层包含功能神经元。因此,图5.6(a)通常被称为两层网络,为避免企业,本书称之为”单隐层网络“,只需要包含隐层,即可称之为多层网络,神经元的学习过程,就是根据训练数据来调整神经元之间的连接权以及每个功能神经元的阈值,换言之,神经网络学习到的东西,蕴藏在连接权和阈值中。