Logistic Regression与Logistic Loss
前言
神经网络的输出通常为Z=wTx+b,为了后续分类,需要将编码Z转换为概率。因此需要满足两个条件:一是概率应该为0~1,二是分类的概率总和为1。
Logistic Regression
Logistic回归虽然名字里带“回归”,但是它实际上是一种分类方法,主要用于两分类问题,Logistic函数(或称为Sigmoid函数)。
逻辑斯蒂回归的先验分布是伯努利分布,softmax的先验分布是多项式分布。在多分类的情形下,即为softmax变换。softmax满足了上述两个条件,虽sigmoid只满足条件一,但是可以用于多标签问题,如图所示:
Logistic Loss
Logistic Loss利用了最大似然的想法,其中p是Sigmoid函数的输出,y表示是否存在该类(列如上图中:[cat,dog]=[0,1]或[bird,cat,dog]=[0,1,1],这里标签类别是y∈{0,1})
当然,类别标签也可以不用0,1代表,公式则表示为:
取对数将连乘变成连加:
如果此时优化此损失函数,可见是让L越大越好。(比如输出[0.8,0.1],而真实对应标签为[1,0],带入公式可知L越大,预测得越准确)
然后,我们在利用梯度下降算法来反向传播优化的时候,都是希望L越小越好。所以,在前面取负号,被称为负对数似然损失
Logistic Loss与Cross Entropy Loss
Cross Entropy Loss公式如下(p为标签,q为真实分布,p和q分布一致时熵最小):
由上面的讲解,可以看出Logistic Loss和Cross Entropy Loss很类似,其实在二分类问题中,两者是一致的。
但是不同的激活函数,让yi带有了不同的实际意义。也就使得Cross Entropy Loss通常和softmax搭配,Logistic Loss常与sigmoid搭配。
链接: 交叉熵损失函数CrossEntropyLoss及BCE_withlogistic.
注意,如果按照通常使用的one-hot编码格式,这里的p分布是有一定的问题的(例:p=[0,0,1,0,0,0]),现实中这样方方正正的分布恐怕很难找到吧。可以看看对这方面的改进label smoothing。
链接: label smoothing以及代码.
此外,损失函数还有很多,各有优缺点,有空的话,会继续更tempered_loss。