分享

深度学习,读懂反向传播

 四地闲夫 2020-05-24

背景

深度学习属于机器学习,机器学习的三个步骤就是:模型,策略和计算方法。比如LR,模型使用的LR模型(LR是基于伯努利假设,伯努利属于指数分布族,指数分布族属于广义线性模型),策略使用的是联合概率分布最大,计算方法是梯度下降法或拟牛顿法等。

深度学习的模型是神经网络,如下图:

深度学习,读懂反向传播

策略就是我们说的损失函数,cost function,反映了模型的预测误差,如交叉熵、均方误差等。给定N个训练数据集:

深度学习,读懂反向传播

基于训练集找到一组最佳的参数

深度学习,读懂反向传播

使得C(θ)最小;

深度学习,读懂反向传播
深度学习,读懂反向传播
深度学习,读懂反向传播

具体表示方法是什么?这就需要明白神经网络模型如何表示的,如下图所示,对于l层来说:

深度学习,读懂反向传播

第l层的第i个神经元的输入Zi,它是上一层所有神经元的输入之和:

深度学习,读懂反向传播

第l层的第i个神经元的输出ai,是zi经过非线性变化(我们称为激活函数,如ReLu,sigmoid等):

深度学习,读懂反向传播

因此,我们说的θ就是所有的

深度学习,读懂反向传播

,则损失函数的偏导

深度学习,读懂反向传播

就是求出所有的

深度学习,读懂反向传播

深度学习,读懂反向传播

一般地,我们求出

深度学习,读懂反向传播

深度学习,读懂反向传播

,会更新参数,即

深度学习,读懂反向传播

。但神经网络的参数非常多,比如很简单的alexnet的参数个数在千万级别,一个一个地求是不切实际的,所以,这里需要用到反向传播:back propagation!

反向传播优化模型参数

深度学习,读懂反向传播

求解之前,需要了解一下链式法则,就是g(f(x))对x的求导,会等于 g对f的求导 乘 f对x的求导。由于z是w的函数,所以:

深度学习,读懂反向传播
深度学习,读懂反向传播
深度学习,读懂反向传播

可以通过前向传播求出(即,是已知的不用求)

接下来求解

深度学习,读懂反向传播

。令

深度学习,读懂反向传播

表示

深度学习,读懂反向传播

,(不表示也可以,它有对应的实际的意义,不知道实际的意义也没关系,因为这是我们一步一步推导下来的)。求解

深度学习,读懂反向传播

会比较困难,因为

深度学习,读懂反向传播

-->

深度学习,读懂反向传播

-->...-->

深度学习,读懂反向传播

。这是层层传递下去的。

如果,我们能够知道如何层层传递,即l层第i个神经元

深度学习,读懂反向传播

和l+1层

深度学习,读懂反向传播

(会影响所有神经元)的关系,然后又能算出最后一层L的

深度学习,读懂反向传播

,是不是就可以了?所以,我们需要解决2个问题:

(1)最后一层L的

深度学习,读懂反向传播

如何计算?

(2)

深度学习,读懂反向传播

深度学习,读懂反向传播

的关系?

深度学习,读懂反向传播

对于问题(1),

深度学习,读懂反向传播

是一个向量,我们看看如何求其中一个值n,

深度学习,读懂反向传播

, 而

深度学习,读懂反向传播

就是最后的输出值

深度学习,读懂反向传播

(对于多分类问题,比如分10类,最后一层的节点数是10个,激活函数是softmax)

深度学习,读懂反向传播

,

深度学习,读懂反向传播

为最后一层采用的激活函数(多分类一般是softmax),

深度学习,读懂反向传播

是激活函数的一级导数。

深度学习,读懂反向传播

取决于采用的损失函数,如果采用的是均方误差,则

深度学习,读懂反向传播

(能够直接得到)

综上:

深度学习,读懂反向传播

可以求得。

对于问题(2),第l层的第i个神经元是如何影响到l+1层所有的神经元呢?

深度学习,读懂反向传播
深度学习,读懂反向传播

深度学习,读懂反向传播

为激活函数(一般是ReLu),

深度学习,读懂反向传播

是激活函数的一级导数,可以直接求得。

深度学习,读懂反向传播

如何求?可以这么理解,

深度学习,读懂反向传播

会影响[

深度学习,读懂反向传播

],而[

深度学习,读懂反向传播

]影响C(θ)。

深度学习,读懂反向传播
深度学习,读懂反向传播
深度学习,读懂反向传播
深度学习,读懂反向传播

综上:

深度学习,读懂反向传播

总结

额?辛苦码的那么多,不知道怎么没了,好吧,再打一遍吧~

神经网络的训练说白了就是给你N个训练集,然后让你选择一组参数θ使得在这N个训练集上的损失C(θ)最小。如果找到这组参数呢?用梯度下降法找到这些参数。

梯度下降法就是随机取一组参数,然后每次迭代都朝下降最快的方向更新,即:

深度学习,读懂反向传播

有因为θ其实是由很多的参数组成,这些参数分别是权重w和偏差b,权重

深度学习,读懂反向传播

表示第l-1层的第j个神经元的输出,对第l层的第i个神经元的输入的贡献。

深度学习,读懂反向传播
深度学习,读懂反向传播

根据推导,前者等于

深度学习,读懂反向传播

,可通过反向传递求得,后者等于

深度学习,读懂反向传播

后者通过前向传播求得,如下图所示:

深度学习,读懂反向传播

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多