深度学习3 前馈神经网络

深度学习3 前馈神经网络

1. 神经元模型(M-P)

(1)公式

  在M-P模型中,神经元接受其他n个神经元的输入信号(0或1),这些输入信号经过权重加权并求和,将求和结果与阈值(threshold) θ 比较,然后经过激活函数处理,得到神经元的输出。 y = f ( ∑ i = 1 n ω i j x i − θ ) y=f\left(\sum_{i=1}^{n} \omega_{i j} x_{i}-\theta\right) y=f(i=1nωijxiθ)

(2)运算

  M-P 模型可以表示多种逻辑运算,如取反运算、逻辑或、逻辑与。
  取反运算可以用单输入单输出模型表示,即如果输入为0则输出1,如果输入为1则输出0。由M-P模型的运算规则可得 w = − 2 , θ = − 1 w = -2, θ = -1 w=2θ=1
在这里插入图片描述
  逻辑或与逻辑与运算可以用双输入单输出模型表示。以逻辑与运算为例, w 1 = 1 , w 2 = 1 , θ = 1.5 w_1=1,w_2=1, θ =1.5 w1=1w2=1,θ=1.5
在这里插入图片描述

(3)结构

在这里插入图片描述

2. 感知机模型

(1)单层感知机

  与 M-P 模型需要人为确定参数不同,感知器能够通过训练自动确定参数。训练方式为有监督学习,即需要设定训练样本和期望输出,然后调整实际输出和期望输出之差的方式(误差修正学习)。 w i ← w i + α ( r − y ) x   θ ← θ − α ( r − y ) \begin{aligned} w_{i} & \leftarrow w_{i}+\alpha(r-y) x \ \theta & \leftarrow \theta-\alpha(r-y) \end{aligned} wiwi+α(ry)x θθα(ry) 其中, α \alpha α 是学习率, r r r y y y 分别是期望输出和实际输出。

  感知器权重调整的基本思路:
    (1) 实际输出 y 与期望输出 r 相等时,w 和 θ 不变
    (2) 实际输出 y 与期望输出 r 不相等时,调整 w 和 θ 的值
  训练过程如下:
在这里插入图片描述

(2)多层感知器

  单层感知器只能解决线性可分问题,而不能解决线性不可分问题;为了解决线性不可分问题,我们需要使用多层感知器。多层感知器指的是由多层结构的感知器递阶组成的输入值向前传播的网络,也被称为前馈网络或正向传播网络。

  以三层结构的多层感知器为例,它由输入层、中间层及输出层组成。与M-P模型相同,中间层的感知器通过权重与输入层的各单元相连接,通过阈值函数计算中间层各单元的输出值
中间层与输出层之间同样是通过权重相连接。

(3)BP算法

  BP算法的基本过程:
  前向传播计算:由输入层经过隐含层向输出层的计算网络输出
  误差反向逐层传递:网络的期望输出与实际输出之差的误差信号由输出层经过隐含层逐层向输入层传递
  由“前向传播计算”与“误差反向逐层传递”的反复进行的网络训练过程
  BP算法就是通过比较实际输出和期望输出得到误差信号,把误差信 号从输出层逐层向前传播得到各层的误差信号,再通过调整各层的连接权重以减小误差。权重的调整主要使用梯度下降法: Δ w = − α ∂ E ∂ w \Delta w = -\alpha \frac{\partial E}{\partial w} Δw=αwE

  通过误差反向传播算法调整多层感知器的连接权重时,一个瓶颈问题就是激活函数。M-P 模型中使用阶跃函数作为激活函数,只能输出 0或 1,不连续所以不可导,为了使误差能够传播,鲁梅尔哈特等人提出使用可导函数Sigmoid作为激活函数
在这里插入图片描述
Sigmoid函数的导数: d f ( u ) d u = f ( u ) ( 1 − f ( u ) ) \frac{df(u)}{du} = f(u)(1-f(u)) dudf(u)=f(u)(1f(u))
在这里插入图片描述
ReLU (Rectified Linear Unit,修正线性单元)和tanh在这里插入图片描述
  BP算法示例
  以包含一个中间层和一个输出单元 y y y 的多层感知器为例: w 1 i j w_{1ij} w1ij 表示输 入层与中间层之间的连接权重, w 2 j 1 w_{2j1} w2j1 表示中间层与输出层之间的连接权重, i i i 表示输入层单元, j j j 表示中间层单元。
    首先调整中间层与输出层之间的连接权重,其中 y = f ( u ) y=f(u) y=f(u) f f f 是激活函数, u 21 = ∑ j = 1 m w 2 j 1 z j u_{21} = \sum_{j = 1}^{m}w_{2j1}z_j u21=j=1mw2j1zj,把误差函数 E 对连接权重 w 2 j 1 w_{2j1} w2j1 的求导展开成复合函数求导:
∂ E ∂ w 2 j 1 = ∂ E ∂ y ∂ y ∂ u 21 ∂ u 21 ∂ w 2 j 1   = − ( r − y ) y ( 1 − y ) z j \begin{array}{c}\frac{\partial E}{\partial w_{2 j 1}} =\frac{\partial E}{\partial y} \frac{\partial y}{\partial u_{21}} \frac{\partial u_{21}}{\partial w_{2 j 1}} \ =-(r-y) y(1-y) z_{j}\end{array} w2j1E=yEu21yw2j1u21 =(ry)y(1y)zj

这里 z j z_j zj 表示的是中间层的值。

    第二,中间层到输出层的连接权重调整值如下所示:
Δ w 2 j 1 = α ( r − y ) y ( 1 − y ) z j \Delta w_{2 j 1}=\alpha(r-y) y(1-y) z_{j} Δw2j1=α(ry)y(1y)zj

    第三,调整输入层与中间层之间的连接权重
∂ E ∂ w 1 i j = ∂ E ∂ y ∂ y ∂ u 21 ∂ u 21 ∂ w 1 i j   = − ( r − y ) y ( 1 − y ) ∂ u 21 ∂ w 1 i j \begin{aligned} \frac{\partial E}{\partial w_{1 i j}} &=\frac{\partial E}{\partial y} \frac{\partial y}{\partial u_{21}} \frac{\partial u_{21}}{\partial w_{1 i j}} \ &=-(r-y) y(1-y) \frac{\partial u_{21}}{\partial w_{1 i j}} \end{aligned} w1ijE=yEu21yw1iju21 =(ry)y(1y)w1iju21

    中间层到输出层计算过程:

4.12

    输入层到中间层

在这里插入图片描述

参考:
1. DataWhale组队学习-机器学习基础

Guess you like

Origin blog.csdn.net/Fox_Alex/article/details/121504775