前馈神经网络--前向传播与反向传播计算过程

目录

2、多层感知机(前馈神经网络)

2.1 定义

 2.2 神经元

2.3 激活函数

2.3.1 sigmoid函数

2.3.2 tanh函数

2.3.3 relu函数

2.4 计算

2.4.1 前向传播

2.4.2 反向传播


2、多层感知机(前馈神经网络)

2.1 定义

多层感知机(MLP)是一种前馈神经网络模型。

前馈神经网络(feedforward neural network),又称作深度前馈网络(deep feedforward network)、多层感知机(multilayer perceptron,MLP)

除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构,如下图:(图片来自《动手学深度学习》

前馈神经网络--前向传播与反向传播计算过程_第1张图片

 2.2 神经元

人工神经元简称神经元,是构成神经网络的基本单元,其主要是模拟生物神经元的结构和特性,接受一组信号并产生输出。假设一个神经元接受了一组输入后,这些输入又会分别各自做出加权和偏置操作,最后得出一个值称之为净输入,这时我们的净输入需要经过一个非线性函数f(·)后,得到神经元的活性值a,其中的非线性函数称为激活函数。

前馈神经网络--前向传播与反向传播计算过程_第2张图片

2.3 激活函数

前馈神经网络--前向传播与反向传播计算过程_第3张图片  

前馈神经网络--前向传播与反向传播计算过程_第4张图片

2.3.1 sigmoid函数

特点:

        它能够把输入的连续实值变换为0和1之间的输出,特别的,如果是非常大的负数,那么输出就是0;如果是非常大的正数,输出就是1.

缺点:

        缺点1:在深度神经网络中梯度反向传递时导致梯度爆炸和梯度消失,其中梯度爆炸发生的概率非常小,而梯度消失发生的概率比较大

        缺点2:Sigmoid 的 output 不是0均值(即zero-centered)。这是不可取的,因为这会导致后一层的神经元将得到上一层输出的非0均值的信号作为输入。 产生的一个结果就是:如x>0, x>0, f= ,那么对w求局部梯度则都为正,这样在反向传播的过程中w要么都往正方向更新,要么都往负方向更新,导致有一种捆绑的效果,使得收敛缓慢。 当然了,如果按batch去训练,那么那个batch可能得到不同的信号,所以这个问题还是可以缓解一下的。因此,非0均值这个问题虽然会产生一些不好的影响,不过跟上面提到的梯度消失问题相比还是要好很多的。

        缺点3:其解析式中含有幂运算,计算机求解时相对来讲比较耗时。对于规模比较大的深度网络,这会较大地增加训练时间。

2.3.2 tanh函数

特点:

1.tahn解决了Sigmoid函数的不是zero-centered输出问题,

2.然而,梯度消失(gradient vanishing)的问题和幂运算的问题仍然存在。

2.3.3 relu函数

ReLU函数其实就是一个取最大值函数,注意这并不是全区间可导的,但是我们可以取sub-gradient

有以下几大优点:

        1) 解决了gradient vanishing问题 (在正区间)

        2)计算速度非常快,只需要判断输入是否大于0

        3)收敛速度远快于sigmoid和tanh

ReLU问题:

        1)ReLU的输出不是zero-centered

        2)Dead ReLU Problem,指的是某些神经元可能永远不会被激活,导致相应的参数永远不能被更新。有两个主要原因可能导致这种情况产生:

                (1) 非常不幸的参数初始化,这种情况比较少见

                (2) learning rate太高导致在训练过程中参数更新太大,不幸使网络进入这种状态。解决方法是可以采用Xavier初始化方法,以及避免将learning rate设置太大或使用adagrad等自动调节learning rate的算法。


 参考链接:为什么要使用激活函数,激活函数的作用_贾世林jiashilin的博客-CSDN博客_为什么要用激活函数

2.4 计算

2.4.1 前向传播

前馈神经网络--前向传播与反向传播计算过程_第5张图片

前馈神经网络--前向传播与反向传播计算过程_第6张图片

2.4.2 反向传播

前馈神经网络--前向传播与反向传播计算过程_第7张图片 

前馈神经网络--前向传播与反向传播计算过程_第8张图片

参考视频:精华!前向传播和反向传播都讲得很清楚

8分钟搞懂神经网络反向传播算法_哔哩哔哩_bilibili

你可能感兴趣的:(前馈神经网络--前向传播与反向传播计算过程)