码迷,mamicode.com
首页 > 其他好文 > 详细

【转载】softmax的log似然代价函数(求导过程)

时间:2017-11-10 18:39:44      阅读:146      评论:0      收藏:0      [点我收藏+]

标签:概率   size   iss   art   target   简单   技术   div   csdn   

全文转载自: softmax的log似然代价函数(公式求导)

在人工神经网络(ANN)中,Softmax通常被用作输出层的激活函数。这不仅是因为它的效果好,而且因为它使得ANN的输出值更易于理解。同时,softmax配合log似然代价函数,其训练效果也要比采用二次代价函数的方式好。

1. softmax函数及其求导

        softmax的函数公式如下:

技术分享

 

        其中,技术分享表示第L层(通常是最后一层)第j个神经元的输入,技术分享表示第L层第j个神经元的输出,技术分享表示自然常数。注意看,技术分享表示了第L层所有神经元的输入之和。

        softmax函数最明显的特点在于:它把每个神经元的输入占当前层所有神经元输入之和的比值,当作该神经元的输出。这使得输出更容易被解释:神经元的输出值越大,则该神经元对应的类别是真实类别的可能性更高。

        另外,softmax不仅把神经元输出构造成概率分布,而且还起到了归一化的作用,适用于很多需要进行归一化处理的分类问题。

        由于softmax在ANN算法中的求导结果比较特别,分为两种情况。希望能帮助到正在学习此类算法的朋友们。求导过程如下所示:

技术分享

 

 

2. softmax配合log似然代价函数训练ANN

 

        在上一篇博文“交叉熵代价函数”中讲到,二次代价函数在训练ANN时可能会导致训练速度变慢的问题。那就是,初始的输出值离真实值越远,训练速度就越慢。这个问题可以通过采用交叉熵代价函数来解决。其实,这个问题也可以采用另外一种方法解决,那就是采用softmax激活函数,并采用log似然代价函数(log-likelihood cost function)来解决。

        log似然代价函数的公式为:

技术分享

        其中,技术分享表示第k个神经元的输出值,技术分享表示第k个神经元对应的真实值,取值为0或1。

        我们来简单理解一下这个代价函数的含义。在ANN中输入一个样本,那么只有一个神经元对应了该样本的正确类别;若这个神经元输出的概率值越高,则按照以上的代价函数公式,其产生的代价就越小;反之,则产生的代价就越高。

        为了检验softmax和这个代价函数也可以解决上述所说的训练速度变慢问题,接下来的重点就是推导ANN的权重w和偏置b的梯度公式。以偏置b为例:

技术分享

 

        同理可得:

技术分享

 

        从上述梯度公式可知,softmax函数配合log似然代价函数可以很好地训练ANN,不存在学习速度变慢的问题。

【转载】softmax的log似然代价函数(求导过程)

标签:概率   size   iss   art   target   简单   技术   div   csdn   

原文地址:http://www.cnblogs.com/niuxichuan/p/7815300.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!