其他分享
首页 > 其他分享> > 二元逻辑回归损失函数的数学解释与公式推导

二元逻辑回归损失函数的数学解释与公式推导

作者:互联网

我们基于极大似然法来推导二元逻辑回归的损失函数,这个推导过程能够帮助我们了解损失函数怎么
得来的,以及为什么 J ( θ ) J(\theta) J(θ)的最小化能够实现模型在训练集上的拟合最好。

我们的目标是:让模型对训练数据的效果好,追求损失最小

二元逻辑回归的标签服从伯努利分布(即0-1分布),因此我们可以将一个特征向量为 x x x参数为 θ \theta θ的模型中的一个样本i的预测情况表现为如下形式:

当 P 1 P_1 P1​的值为1的时候,代表样本i的标签被预测为1,当 P 0 P_0 P0​的值为1的时候,代表样本i的标签被预测为0。

假设样本i的真实标签 y i y_i yi​为1,此时如果 P 1 P_1 P1​为1, P 0 P_0 P0​为0的时候,就代表样本i的标签被预测为1,与真实值一致。此时对于单样本i来说,模型的预测就是完全准确的,拟合程度很优秀,没有任何信息损失。

相反,如果 P 1 P_1 P1​为0, P 0 P_0 P0​为1的时候,就代表样本i的标签被预测为0,与真实情况完全相反。对于单样本i来说,模型的预测就是完全错误的,拟合程度很差,所有的信息都损失了。

当 y i y_i yi​为0时,也是同样的道理,所以,当 y i y_i yi​为1的时候,我们希望 P 1 P_1 P1​非常接近1, 当 y i y_i yi​为0的时候,我们希望 P 0 P_0 P0​非常接近1,这样,模型的效果就很好,信息损失就很少。

在这里插入图片描述
将两种取值的概率整合,我们可以定义如下等式:
P ( y i ^ ∣ x i , θ ) = P 1 y i ∗ P 0 1 − y i P(\hat{y_i}|x_i,\theta)=P_1^{y_i}*P_0^{1-y_i} P(yi​^​∣xi​,θ)=P1yi​​∗P01−yi​​

这个等式代表同时代表了 P 0 P_0 P0​和 P 1 P_1 P1​,当样本i的真实标签 y i y_i yi​为1的时候, 1 − y i 1-y_i 1−yi​ 就等于0, P 0 P_0 P0​ 的0次方就是1,所以 P ( y i ^ ∣ x i , θ ) P(\hat{y_i}|x_i,\theta) P(yi​^​∣xi​,θ)等于 P 1 P_1 P1​,这时,如果 P 1 P_1 P1​为1,模型的效果就很好,损失就很小。同理,当 y i y_i yi​为0的时候, P ( y i ^ ∣ x i , θ ) P(\hat{y_i}|x_i,\theta) P(yi​^​∣xi​,θ)等于 P 0 P_0 P0​,此时如果 P 0 P_0 P0​非常接近1,模型的效果就很好,损失就很小。所以,为了达成让模型拟合好,损失小的目的,我们每时每刻都希望 P ( y i ^ ∣ x i , θ ) P(\hat{y_i}|x_i,\theta) P(yi​^​∣xi​,θ) 的值等于1。 而 P ( y i ^ ∣ x i , θ ) P(\hat{y_i}|x_i,\theta) P(yi​^​∣xi​,θ) 的本质是样本i由特征向量 x i x_i xi​和参数 θ \theta θ组成的预测函数中,预测出所有可能的 y ^ \hat{y} y^​的概率,因此1是它的最大值。

也就是说,每时每刻,我们都在追求 P ( y i ^ ∣ x i , θ ) P(\hat{y_i}|x_i,\theta) P(yi​^​∣xi​,θ) 的最大值。这就将模型拟合中的“最小化损失”问题,转换成了对函数求解极值的问题。

P ( y i ^ ∣ x i , θ ) P(\hat{y_i}|x_i,\theta) P(yi​^​∣xi​,θ)是对单个样本i而言的函数,对一个训练集的m个样本来说,我们可以定义如下等式来表达所有样本在特征矩阵X和参数 θ \theta θ组成的预测函数中,预测出所有可能的 y ^ \hat{y} y^​的概率P为:
P = ∏ i = 1 m P ( y i ^ ∣ x i , θ ) = ∏ i = 1 m ( P 1 y i ∗ P 0 1 − y i ) = ∏ i = 1 m ( y 0 ( x i ) y i ∗ ( 1 − y 0 ( x i ) ) 1 − y i )            将 开 头 的 P 1 和 P 0 带 入 \begin{aligned} P&=\prod_{i=1}^mP(\hat{y_i}|x_i,\theta) \\&=\prod_{i=1}^m(P_1^{y_i}*P_0^{1-y_i}) \\&=\prod_{i=1}^m(y_0(x_i)^{y_i}*(1-y_0(x_i))^{1-y_i}) ~~~~~~~~~~将开头的P_1和P_0带入 \end{aligned} P​=i=1∏m​P(yi​^​∣xi​,θ)=i=1∏m​(P1yi​​∗P01−yi​​)=i=1∏m​(y0​(xi​)yi​∗(1−y0​(xi​))1−yi​)          将开头的P1​和P0​带入​

对该概率P取对数,再由 log ⁡ ( A ∗ B ) = log ⁡ A + log ⁡ B \log(A*B)=\log A+\log B log(A∗B)=logA+logB和 log ⁡ A B = B log ⁡ A \log A^B=B\log A logAB=BlogA可得:
log ⁡ P = log ⁡ ∏ i = 1 m ( y 0 ( x i ) y i ∗ ( 1 − y 0 ( x i ) ) 1 − y i ) = ∑ i = 1 m log ⁡ ( y 0 ( x i ) y i ∗ ( 1 − y 0 ( x i ) ) 1 − y i ) = ∑ i = 1 m ( log ⁡ y θ ( x i ) y i + log ⁡ ( 1 − y θ ( x i ) ) 1 − y i ) = ∑ i = 1 m ( y i log ⁡ y θ ( x i ) + ( 1 − y i ) log ⁡ ( 1 − y θ ( x i ) ) ) \begin{aligned} \log P&=\log\prod_{i=1}^m(y_0(x_i)^{y_i}*(1-y_0(x_i))^{1-y_i}) \\&=\sum_{i=1}^m\log(y_0(x_i)^{y_i}*(1-y_0(x_i))^{1-y_i}) \\&=\sum_{i=1}^m(\log y_{\theta}(x_i)^{y_i}+\log(1-y_{\theta}(x_i))^{1-y_i}) \\&=\sum_{i=1}^m(y_i\log y_{\theta}(x_i)+(1-y_i)\log(1-y_{\theta}(x_i))) \end{aligned} logP​=logi=1∏m​(y0​(xi​)yi​∗(1−y0​(xi​))1−yi​)=i=1∑m​log(y0​(xi​)yi​∗(1−y0​(xi​))1−yi​)=i=1∑m​(logyθ​(xi​)yi​+log(1−yθ​(xi​))1−yi​)=i=1∑m​(yi​logyθ​(xi​)+(1−yi​)log(1−yθ​(xi​)))​

这就是我们的交叉熵函数。为了数学上的便利以及更好地定义”损失”的含义,我们希望将极大值问题转换为极小值问题,因此我们对 log ⁡ P \log{P} logP取负,并且让参数 θ \theta θ作为函数的自变量,就得到了我们的损失函数 J ( θ ) J(\theta) J(θ):
J ( θ ) = − ∑ i = 1 m ( y i log ⁡ y θ ( x i ) + ( 1 − y i ) log ⁡ ( 1 − y θ ( x i ) ) ) J(\theta)=-\sum_{i=1}^m(y_i\log y_{\theta}(x_i)+(1-y_i)\log(1-y_{\theta}(x_i))) J(θ)=−i=1∑m​(yi​logyθ​(xi​)+(1−yi​)log(1−yθ​(xi​)))

这就是一个,基于逻辑回归的返回值 y θ ( x i ) y_{\theta}(x_i) yθ​(xi​)的概率性质得出的损失函数。在这个函数上,我们只要追求最小值,就能让模型在训练数据上的拟合效果最好,损失最低。这个推导过程,其实就是“极大似然法”的推导过程。

似然与概率

标签:yi,xi,二元,推导,公式,样本,theta,hat,log
来源: https://blog.csdn.net/m0_50572604/article/details/121137809