Softmax Regression多分类中的求导及参数更新

Softmax RegressionLogistic Regression的拓展,主要用于多分类问题。Softmax Regression一般与交叉熵损失函数结合使用,但是关于交叉熵损失函数的求导和参数更新资料比较少,讲的也不是让我很满意,所以决定自己写一篇,就当是总结一下自己的认识,和大家一起交流进步。

首先是假设函数:

Softmax Regression多分类中的求导及参数更新_第1张图片

假设有3个目标类别,直接使用Softmax Regression进行分类,注意这里和神经网络中对Softmax Regression的应用有所不同,相当于一个没有隐层的神经网络,则对于输入向量x来说预测为第123类的概率为:

Softmax Regression多分类中的求导及参数更新_第2张图片

接下来介绍交叉熵损失函数,交叉熵刻画的是两个概率分布之间的距离,给定两个概率分布pq,通过q来表示p的交叉熵为:

从交叉熵的公式可以看出交叉熵函数不是对称的,它刻画的是通过概率分布q来表达概率分布p的困难程度,因为正确答案是希望看到的结果,所以当使用交叉熵作为损失函数时,p代表的是正确答案,q代表的是预测值。假设有一个三分类问题,某个样例的正确答案是(1, 0, 0),经过Softmax回归之后的预测值为(0.5, 0.4, 0.1),那么这个预测和正确答案之间的交叉熵为:

                                

如果另外一个模型的预测是(0.8, 0.1, 0.1),那么这个预测值和真实值之间的交叉熵为

                              

可以很直观的看出第二个预测答案要优于第一个。通过交叉熵计算得到的结果也可以看出第二个预测答案和正确答案之间的交叉熵更小。

另外,在真实的情况下,往往只有一个类别为真,此时在正确答案的向量中只有一个类别对应概率为1,其余全部为0,即one-hot分布。

假设此时正确答案对应概率分布向量为[1, 0, 0],则此时的交叉熵损失函数可以写为:

Softmax Regression多分类中的求导及参数更新_第3张图片

需要更新的参数为,采用梯度下降法进行参数更新,以下为求导过程:

 

                                    Softmax Regression多分类中的求导及参数更新_第4张图片

Softmax Regression多分类中的求导及参数更新_第5张图片

同理

Softmax Regression多分类中的求导及参数更新_第6张图片

设学习率为,则back-propagation参数更新如下:

                     Softmax Regression多分类中的求导及参数更新_第7张图片,

                     Softmax Regression多分类中的求导及参数更新_第8张图片,

                     Softmax Regression多分类中的求导及参数更新_第9张图片

希望能帮到跟我一样的新手,如有错误,欢迎指正,看到帮忙点个赞,哈哈!

你可能感兴趣的:(机器学习)