机器学习中的损失函数
开篇
很多时候,机器学习的算法是可以按照损失函数来划分的,像我以前博客中提到的LR和SVM的区别,首先它们的损失函数就是不一样的。这边我还是先整理一部分损失函数,近期会逐步的完善。
交叉熵损失函数
交叉熵就是用来判定实际的输出与期望的输出的接近程度
关于熵的一些概念,这边不多加赘述,大家可以参考我的博客
这边的话,其实最开始的主要目的就是衡量两个概率分布的距离,如何是衡量两个分布的距离呢,这里需要引入KL散度的概念
KL散度
我们的目标是最小化这个KL散度,散度代表的是距离,距离越小这两个分布就越小。到这里其实和我们的交叉熵损失函数还是不像的,那让我们稍微做一些变换就能得到以下结果(第四条)
附上我的推导
P的分布可以看成一个常数项,这时候我们只要使用交叉熵就能衡量我们的分布距离了,只要最小化我们的交叉熵我们就能最小化我们的KL散度。到这里我希望大家能对交叉熵损失函数有一个感性的认识,下面我们再来看机器学习中我们最常见的两个**函数的交叉熵损失函数。
首先是sigmoid函数的损失函数
这时候再来看是不是有一点亲切。
再来看看我们的多分类softmax函数的损失函数
a就是我们softmax的值,大家可以参考添加链接描述,关于softmax的一些推导,后期有空我都会续上。