ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【深度学习笔记】4.前馈神经网络

2021-11-24 16:34:55  阅读:207  来源: 互联网

标签:输出 感知器 partial 前馈 笔记 w2j1 神经网络 中间层 frac


前馈神经网络

发展历程

avatar

神经元(M-P)

神经元是1943年由两名科学家首次提出的神经元模型。

avatar

在M-P模型中,神经元接受其他n个神经元的输入信号(0或1),这些输入信号经过权重加权并求和,将求和结果与阈值(threshold) θ 比较,然后经过激活函数处理,得到神经元的输出。
y = ∑ i = 1 n ω i j x i + θ y=\sum^n_{i=1}\omega_{ij}x_i+\theta y=i=1∑n​ωij​xi​+θ
M-P 模型可以表示多种逻辑运算,如取反运算、逻辑或、逻辑与。

  • 取反运算可以用单输入单输出模型表示,即如果输入为0则输出1,如果输入为1则输出0。由M-P模型的运算规则可得 w = -2, θ = -1w=−2,θ=−1.
avatar
  • 逻辑或与逻辑与运算可以用双输入单输出模型表示。以逻辑与运算为例, w_1=1,w_2=1, θ =1.5w1=1,w2=1,θ=1.5.
avatar

网络结构

人工神经网络由神经元模型构成,这种由许多神经元组成的信息处理网络具有并行分布结构。

avatar

感知器

单层感知器

1958年科学家提出了感知器。它与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} wi​θ​←wi​+α(r−y)x←θ−α(r−y)​
感知器权重调整的基本思路就是:假设输出y与期望r不相等,则调整权重和参数

avatar

其训练过程如下:

avatar

多层感知器

多层感知器就是基于单层感知器的扩充,使其可以解决线性不可分的问题(无法用一个线性模型进行分类)。

avatar

多层感知器指的是由多层结构的感知器递阶组成的输入值向前传播的网络,也被称为前馈网络或正向传播网络。

以三层结构的多层感知器为例,它由输入层、中间层及输出层组成

  • 与M-P模型相同,中间层的感知器通过权重与输入层的各单元相连接,通过阈值函数计算中间层各单元的输出值
  • 中间层与输出层之间同样是通过权重相连接

avatar

BP算法

多层感知器的训练使用误差反向传播算法(Error Back Propagation),即BP算法。BP算法最早有沃博斯于1974年提出,鲁梅尔哈特等人进一步发展了该理论。

BP算法的基本过程

  • 前向传播计算:由输入层经过隐含层向输出层的计算网络输出
  • 误差反向逐层传递:网络的期望输出与实际输出之差的误差信号由输出层经过隐含层逐层向输入层传递
  • 由“前向传播计算”与“误差反向逐层传递”的反复进行的网络训练 过程

BP算法就是通过比较实际输出和期望输出得到误差信号,把误差信 号从输出层逐层向前传播得到各层的误差信号,再通过调整各层的连接权重以减小误差。权重的调整主要使用梯度下降法:
Δ w = − α ∂ E ∂ w \Delta w = -\alpha \frac{\partial E}{\partial w} Δw=−α∂w∂E​

激活函数

激活函数在神经网络中充当神经元的角色,将求和后的值传入激活函数中然后进行下一步计算。

在M-P模型中,用阶跃函数作为激活函数,但该函数不连续且不可导。所以后续提出了Sigmoid作为新的激活函数进行替代

avatar

其中Sigmoid的导数为
d f ( u ) d u = f ( u ) ( 1 − f ( u ) ) \frac{df(u)}{du}=f(u)(1-f(u)) dudf(u)​=f(u)(1−f(u))
avatar

当然,除了Sigmoid以外,常用的激活函数也有很多。当中最出名的就有ReLu和tanh

avatar

BP算法示例

下面以一个中间层(最简单的网络)为例,w是输入层与中间层之间的权重。

avatar

  • 首先在完成前向传播以后,我们能得到一个预测值 y ^ \widehat{y} y ​。假设损失函数是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} ∂w2j1​∂E​=∂y∂E​∂u21​∂y​∂w2j1​∂u21​​=−(r−y)y(1−y)zj​​

这里 z j z_j zj​代表中间层的值

  • 然后,中间层到输出层的连接权重调整如下

Δ w 2 j 1 = α ( r − y ) y ( 1 − y ) z j Δw2j1=α(r−y)y(1−y)z j Δw2j1=α(r−y)y(1−y)zj

  • 最后,调整输入层与中间层的连接权重

∂ E ∂ w 2 j 1 = ∂ E ∂ y ∂ y ∂ u 21 ∂ u 21 ∂ w 2 j 1 = − ( r − y ) y ( 1 − y ) z j \frac{∂E}{∂_{w2j1}}=\frac{∂E}{∂y}\frac{∂y}{∂u21}\frac{∂u21}{∂w2j1}=-(r-y)y(1-y)z_j ∂w2j1​∂E​=∂y∂E​∂u21∂y​∂w2j1∂u21​=−(r−y)y(1−y)zj​

中间层到输出层

avatar

输入层到中间层

avatar

优化问题

难点

  • 参数过多,影响训练
  • 非凸优化问题:即存在局部最优而非全局最优解,影响迭代
  • 梯度消失问题,下层参数比较难调
  • 参数解释起来比较困难

需求

  • 计算资源要大
  • 数据要多
  • 算法效率要好:即收敛快

非凸优化问题

avatar

梯度消失问题

avatar

标签:输出,感知器,partial,前馈,笔记,w2j1,神经网络,中间层,frac
来源: https://blog.csdn.net/turkeym4/article/details/121518425

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有