0
点赞
收藏
分享

微信扫一扫

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)


1、绪论

神经网络技术起源于上世纪五、六十年代,当时叫感知机(perceptron),拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果。但是,Rosenblatt的单层感知机有一个严重得不能再严重的问题,即它对稍复杂一些的函数都无能为力。随着数学的发展,这个缺点直到上世纪八十年代才被Rumelhart、Williams、Hinton、LeCun等人(反正就是一票大牛)发明的多层感知机(multilayer perceptron)克服。多层感知机,顾名思义,就是有多个隐含层的感知机。

2、感知机原理

先看下人工神经元的结构:

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_ML

输出是线性的 :

                                                                                                  

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_DNN_02

因为感知机是二分类算法,所以会套一个函数:

                                                                                           

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_DNN_03

在神经网络中,套在线性变换外面的这个函数称作激活函数,激活函数可以是线性的f(x)=xf(x)=x,或者是非线性的,例如sigmoid,tanh,relusigmoid,tanh,relu等常用的。

3、 DNN前向传播过程

DNN的前向传播算法不算太难。所谓的DNN的前向传播算法也就是利用我们的若干个权重系数矩阵

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_DNN_04

,偏倚向量

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_感知机_05

来和输入值向量

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_DL_06

进行一系列线性运算和激活运算,从输入层开始,一层层的向后计算,一直到运算到输出层,得到输出结果为值。输入: 总层数

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_梯度下降法_07

,当前层是

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_梯度下降法_08

,当前层隐藏层和输出层对应的矩阵

,偏倚向量

,输入值向量

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_梯度下降法_09

,神经元个数

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_DNN_10

输出:输出层的输出

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_梯度下降法_11

  1. 初始化 

                                                                                      

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_DNN_12

其中每个变量的维度是

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_感知机_13

 ,

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_梯度下降法_14

 ,

 ,

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_ML_15

最后的结果即为输出

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_梯度下降法_11

我们现在了解了DNN的前向传播的过程,但是我们会有疑问,DNN中如何更新这么多的W,b呢,当然还是运用神奇的梯度下降法来更新。在神经网络中运用梯度下降法的过程就是反向更新

注意:其中公式里面的公式表示,参考吴恩达老师的机器学习或者深度学习。

『DL笔记』DNN(Deep Neural Networks)的前向传播推导(1)_DNN_17

上面只是一个参考。

举报

相关推荐

0 条评论