美文网首页
二分类(逻辑斯蒂回归)的交叉熵损失函数

二分类(逻辑斯蒂回归)的交叉熵损失函数

作者: 星光下的胖子 | 来源:发表于2021-04-06 15:59 被阅读0次

目录:

  • 1.逻辑斯蒂回归(Logistic Regression)
  • 2.交叉熵
  • 3.二分类交叉熵损失函数的公式推导

1.逻辑斯蒂回归(Logistic Regression)

之前看过大神的一篇文章,推导逻辑斯蒂回归的计算公式,原理不是很容易理解,这里直接列出最终的结论公式:
    P(y=1|x;\theta) = \frac{1}{1+e^{-\theta x}}
公式右侧就是Sigmoid函数,其将线性回归的结果映射到(0, 1]区间,表示在已知x和\theta条件下y=1的概率。

简单总结:因此对于二分类问题的神经网络,最后层我们使用Sigmoid函数进行激活。Sigmoid函数是推导出来的,它表示样本属于正样本(y=1)的概率。

2.交叉熵

H(p(x),q(x))=-\sum_{i}p(x_i)\log(q(x_i))
交叉熵是衡量真实分布p(x)与模拟分布q(x)之间的近似程度。

3.二分类交叉熵损失函数的公式推导

在二分类问题中,y取值0,1服从伯努利分布,则有:
y=1时的概率为:P(y=1|x;\theta) = g(z)
y=0时的概率为:P(y=0|x;\theta) = 1- g(z)
合并得,P(y|x;\theta) = g(z)^y(1-g(z))^{(1-y)}, y=0,1

对于已经观察到的样本的结果,它的似然函数为:
L(\theta) = \prod_{i=1}^n P(y^{i}|x^{i};\theta) = \prod_{i=1}^n g(z^{i})^{y^{i}}(1-g(z^{i}))^{(1-y^{i})}
它表示在已知X;\theta条件下,Y=y发生的概率值,显然L(\theta)越大越好。

两边取对数,并展开化简得:
\log{L(\theta)} = \sum_{i=1}^n [y^i \log{g(z^i)} + (1-y^i) \log{(1-g(z^i))}]
乘以-1,将求最大值转换为求最小值:
J(\theta) = -\sum_{i=1}^n [y^i \log{g(z^i)} + (1-y^i) \log{(1-g(z^i))}],g(z^i) = \frac{1}{1 + e^{-z^i}},z = \theta^T X^i
代价函数L(\theta)称为二元交叉熵损失(BCE)。

\hat y表示经过Sigmoid激活后的模型输出,它表示预测属于正样本的概率。对于任意的样本y,有 Loss=-[ylog(\hat{y}) + (1 - y)log(1 - \hat{y})]

4.二分类交叉熵损失函数公式的导数推导

令g(x) = \hat{y}= Sigmoid(x) = \frac{1}{1+e^{-x}}
损失函数为:Loss=-[ylog(g(x)) + (1 - y)log(1 - g(x))]

Loss对x求偏导:\frac{\partial L}{\partial x}=-[\frac{y*g'(x)}{g(x)} + \frac{-(1-y)*g'(x)}{1-g(x)}]
合并分母:\frac{\partial L}{\partial x}=-[\frac{y*g'(x)*(1-g(x))-(1-y)*g'(x)*g(x)}{g(x)*(1-g(x))}]
化简:\frac{\partial L}{\partial x}=\frac{(g(x)-y)*g'(x)}{g(x)*(1-g(x))}
又因为(手动求导易得):g'(x) = g(x)*(1-g(x))
最终得到:\frac{\partial L}{\partial x}=g(x)-y

5.多分类交叉熵损失函数公式的导数推导

Softmax多分类交叉熵的导数公式与Sigmoid二分类一致,详细推导看这里https://blog.csdn.net/qian99/article/details/78046329/

相关文章

网友评论

      本文标题:二分类(逻辑斯蒂回归)的交叉熵损失函数

      本文链接:https://www.haomeiwen.com/subject/nusqkltx.html