周志华-机器学习-笔记(四)- 神经网络

时间:2022-12-25 15:40:12

神经元模型

  神经网络中最基本的成分是神经元(neuron)模型。在生物神经网络中,每个神经元与其他神经元相连,当它“兴奋”时,就会向相连的神经元发送化学物质,从而改变这些神经元内的电位;如果某神经元的电位超过了一个“阈值”(threshold),那么它就会被激活,即“兴奋”起来,向其他神经元发送化学物资。
周志华-机器学习-笔记(四)- 神经网络
  图5.1所示的简单模型就是沿用至今的“M-P神经元模型”。在这个模型中,神经元接收到来自n个其他神经元传递过来的输入信号,这些输入信号通过带权重的连接(connection)进行传递,神经元接收到总输入值将与神经元的阈值进行比较,然后通过“激活函数”(activation function)处理以产生神经元的输出。
  阶跃函数是理想的激活函数,它将输出值映射为输出值“0”或“1”,“1”对应与神经元兴奋,“0”对应于神经元抑制。但阶跃函数具有不连续、不光滑等不太好的性质,因此常用Sigmoid函数作为激活函数,如下图:
周志华-机器学习-笔记(四)- 神经网络
  把许多这样的神经元按一定的层次结构连接起来,就得到了神经网络。

感知机与多层网络

  感知机(Perceptron)由两层神经元组成,如图5.3所示。输入层接收外界输入信号后传递给输出层,输出层是M-P神经元,亦称“阈值逻辑单元”(threshold logic unit)。
周志华-机器学习-笔记(四)- 神经网络
  给定训练数据集,权重 w i ( i = 1 , 2 , . . . , n ) 以及阈值 θ 都可以通过学习得到。我们把阈值 θ 也看做神经元的一个固定输入为 1.0 的“哑结点”(dummy node),其所对应的连接权重为 w n + 1 ,这样,权重和阈值的学习就可以统一为权重的学习(因为实际阈值是 1.0 × w n + 1 )。
  感知机的学习规则:对训练样例 ( x , y ) ,若当前感知机的输出为 y ^ ,则感知机权重将这样调整:

w i w i + Δ w i
Δ w i = η ( y y ^ ) x i
其中 η ( 0 , 1 ) 称为学习率(learning rate)。 η 通常设置为一个小正数,例如 0.1 。当预测正确时,感知机不发生变化,否则将根据错误的程度进行权重调整。
  若我们需要解决的问题是线性可分问题(linearly separable),就会存在一个线性超平面能将它们分开,如图5.4(a)-(c)所示,则感知机的学习过程一定会收敛(converge),从而求得适当的权重向量 w = ( w 1 ; w 2 ; . . . ; w n + 1 ) ,否则感知机学习过程将会发生振荡(fluctuation)。如图5.4(d)的非线性可分问题。
   周志华-机器学习-笔记(四)- 神经网络
   要解决非线性可分问题,需考虑使用多层功能神经元。如图5.5中两层感知机解决异或问题。
   周志华-机器学习-笔记(四)- 神经网络
  这里的输入层和输出层之间的一层神经元,被称为隐层或隐含层(hidden layer),隐含层和输出层神经元都是拥有激活函数的功能神经元。
   周志华-机器学习-笔记(四)- 神经网络
  我们常见的神经网络是如图5.6所示的层级结构,每层神经元与下一层神经元全互连,神经元枝江不存在同层连接,也不存在跨层连接。这样的神经网络结构通常称为“多层前馈神经网络”(multi-layer feed forward neural network)。由于输入层神经元仅是接受输入,不进行函数处理,隐层与输出层包含功能神经元。因此,通常被称为“两层网络”,或“单隐层网络”。
   神经网络的学习过程,就是根据训练数据来调整神经元之间的“连接权”(connection weight)以及每个功能神经元的阈值。

误差逆传播算法

  欲训练多层神经网络,上述的简单感知机学习规则显然不够,我们需要更强大的学习算法。误差逆传播(error BackPropagation,简称BP)算法就是一种杰出的神经网络学习算法。
  有训练集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } , x i R d , y i R l ,即输入示例由 d 个属性描述,输出 l 维实值向量。
周志华-机器学习-笔记(四)- 神经网络
  如图5.7是一个拥有 d 个输入神经元、 l 个输出神经元、 q 个隐层神经元的多层前馈网络结构。其中输出层第 j 个神经元的阈值用 θ j 表示,隐层第 h 个神经元的阈值用 γ h ;输入层第 i 个神经元与隐层第 h 个神经元之间的连接权为 v i h ,隐层第 h 个神经元与输出层第 j 个神经元之间的连接权为 w h j ;记隐层第 h 个神经元接收到的输入为 α h = i = 1 d x i h x i ,输出层第 j 个神经元接收到的输入为 β j = h = 1 q w h j b h b h 为隐层第 h 个神经元的输出。并假设隐层和输出层神经元都使用图5.2(b)中的Sigmoid函数。