叉熵损失函数(Cross Entropy)
我们在逻辑回归算法中引入了交叉熵函数,但是上一次,我并没有对交叉熵损失函数做一个详细的解释。这里就补上。损失函数又叫做误差函数,用来衡量算法的运行情况.在分类中,都是和分类错误的数量正相关的,分类错误越多,损失也就越大。
我们在逻辑回归中引出,交叉熵,当时说的是如果分错一个类别,就会产生损失。 J ( θ ) = y ^ l n y + ( 1 − y ^ ) l n ( 1 − y ) J(θ)=\hat ylny+(1-\hat y)ln(1-y) J(θ)=y^lny+(1−y^)ln(1−y),可以看到这个公式,如果你把类别为1的预测为分类为1的,则不会产生损失,同理,把类别为0的预测为类别为0的也不会产生损失,此外,分错之后,损失函数计算结果是1,就会产生损失。
但是我们预测出来的结果 y ^ \hat y y^实际上是一个概率值,不可能严格的等于0或者1,一般情况下还是会产生损失,但是这个函数保证了,当真实类别y=1时,预测真实类别概率接近1,产生的误差就小,反之y=0,则预测为类别1的概率越小,误差越小。这个具体的分析把y=0的情况和y=1的情况带入到损失后很容易就分析出来。
事实上,我们知道在给定样本的x条件下,对样本的类别做一个估计,实际上就是求 p ( y ∣ x ) p(y|x) p(y∣x)的概率,如果是二分类,设类别为1表示正例,不为1表示负例,则 p ( y = 1 ∣ x ) p(y=1|x) p(y=1∣x)就表示分类为正例的概率。这个概率使我们所要求的概率。我们假设数据的类别是服从0-1分布的(伯努利分布),则我们对于数据是正类的预测概率是