自学内容网 自学内容网

逻辑回归:极大似然估计推导二分类的交叉熵损失函数

假设我们有一组输入特征数据集 X X X 和对应的二分类标签数据集 Y Y Y。在逻辑回归中,我们使用逻辑函数(sigmoid函数)将输入映射到概率输出,并利用极大似然估计来确定模型的参数。

1、定义逻辑函数(sigmoid函数):

σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+ez1

其中, z z z是线性组合的结果: z = β 0 + β 1 x 1 + β 2 x 2 + … + β n x n z=\beta_0+\beta_1x_1+\beta_2x_2+ \ldots+ \beta_nx_n z=β0+β1x1+β2x2++βnxn
β 0 , β 1 , β 2 , … , β n \beta_0, \beta_1, \beta_2, \ldots, \beta_n β0,β1,β2,,βn是模型的参数, x 1 , x 2 , … , x n x_1, x_2, \ldots, x_n x1,x2,,xn是输入特征。
逻辑函数的输出 σ ( z ) σ(z) σ(z) 表示输入样本属于正例的概率,而 1 − σ ( z ) 1−σ(z) 1σ(z)表示输入样本属于负例的概率。

2、定义似然函数(likelihood function):

似然函数表示在给定模型参数下观察到数据的可能性。对于二分类问题,似然函数的形式如下:
L ( β 0 , β 1 , β 2 , … , β n ) = ∏ i = 1 m P ( y ( i ) ∣ x ( i ) ; β 0 , β 1 , β 2 , … , β n ) L(\beta_0, \beta_1, \beta_2, \ldots, \beta_n) = \prod_{i=1}^{m} P(y^{(i)}|x^{(i)};\beta_0, \beta_1, \beta_2, \ldots, \beta_n) L(β0,β1,β2,,βn)=i=1mP(y(i)x(i);β0,β1,β2,,βn)

其中, m m m 是训练样本数量, y ( i ) y^{(i)} y(i) 是第 i i i 个样本的标签,
x ( i ) x^{(i)} x(i)是第 i i i 个样本的特征, P ( y ( i ) ∣ x ( i ) ; β 0 , β 1 , β 2 , … , β n ) P(y^{(i)}|x^{(i)};\beta_0, \beta_1, \beta_2, \ldots, \beta_n) P(y(i)x(i);β0,β1,β2,,βn)是逻辑回归模型给定参数 β 0 , β 1 , β 2 , … , β n \beta_0, \beta_1, \beta_2, \ldots, \beta_n β0,β1,β2,,βn的条件下,第 i i i 个样本标签 y ( i ) y^{(i)} y(i) 对应的条件概率。

3、对数似然函数的转换:

为了方便计算和优化,我们通常将似然函数转换为对数似然函数。对数似然函数的形式如下:

log ⁡ L ( β 0 , β 1 , β 2 , … , β n ) = ∑ i = 1 m log ⁡ P ( y ( i ) ∣ x ( i ) ; β 0 , β 1 , β 2 , … , β n ) \log L(\beta_0, \beta_1, \beta_2, \ldots, \beta_n) = \sum_{i=1}^{m} \log P(y^{(i)}|x^{(i)};\beta_0, \beta_1, \beta_2, \ldots, \beta_n) logL(β0,β1,β2,,βn)=i=1mlogP(y(i)x(i);β0,β1,β2,,βn)

这个转换不会改变极大似然估计的结果,因为对数是一个单调递增函数,使得最大化对数似然函数等价于最大化原始似然函数。

4、计算单个样本的条件概率:

我们知道对于二分类问题, y ( i ) y^{(i)} y(i) 的取值只能是 0 0 0 1 1 1。因此,条件概率 P ( y ( i ) ∣ x ( i ) ; β 0 , β 1 , β 2 , … , β n ) P(y^{(i)}|x^{(i)};\beta_0, \beta_1, \beta_2, \ldots, \beta_n) P(y(i)x(i);β0,β1,β2,,βn) 可以表示为:

P ( y ( i ) = 1 ∣ x ( i ) ; β 0 , β 1 , β 2 , … , β n ) = σ ( z ( i ) ) P(y^{(i)}=1|x^{(i)};\beta_0, \beta_1, \beta_2, \ldots, \beta_n) = \sigma(z^{(i)}) P(y(i)=1∣x(i);β0,β1,β2,,βn)=σ(z(i))
P ( y ( i ) = 0 ∣ x ( i ) ; β 0 , β 1 , β 2 , … , β n ) = 1 − σ ( z ( i ) ) P(y^{(i)}=0|x^{(i)};\beta_0, \beta_1, \beta_2, \ldots, \beta_n) = 1 - \sigma(z^{(i)}) P(y(i)=0∣x(i);β0,β1,β2,,βn)=1σ(z(i))
其中, z ( i ) = β 0 + β 1 x 1 ( i ) + β 2 x 2 ( i ) + … + β n x n ( i ) z^{(i)}=\beta_0+\beta_1x_1^{(i)}+\beta_2x_2^{(i)}+ \ldots+ \beta_nx_n^{(i)} z(i)=β0+β1x1(i)+β2x2(i)++βnxn(i)是第 i i i 个样本的线性组合的结果。

这样,我们定义了第 i i i 个样本 x ( i ) x^{(i)} x(i) 属于类别 y ( i ) = 1 y^{(i)}=1 y(i)=1 y ( i ) = 0 y^{(i)}=0 y(i)=0 的概率。在推导损失函数时,我们将根据实际标签 y ( i ) y^{(i)} y(i) 的取值,来选择对应的条件概率。

y ( i ) = 1 y^{(i)}=1 y(i)=1 时,我们要最大化 P ( y ( i ) = 1 ∣ x ( i ) ; β 0 , β 1 , β 2 , … , β n ) P(y^{(i)}=1|x^{(i)};\beta_0, \beta_1, \beta_2, \ldots, \beta_n) P(y(i)=1∣x(i);β0,β1,β2,,βn),也就是最大化 σ ( z ( i ) ) \sigma(z^{(i)}) σ(z(i))
y ( i ) = 0 y^{(i)}=0 y(i)=0 时,我们要最大化 P ( y ( i ) = 0 ∣ x ( i ) ; β 0 , β 1 , β 2 , … , β n ) P(y^{(i)}=0|x^{(i)};\beta_0, \beta_1, \beta_2, \ldots, \beta_n) P(y(i)=0∣x(i);β0,β1,β2,,βn),也就是最大化 1 − σ ( z ( i ) ) 1-\sigma(z^{(i)}) 1σ(z(i))

因此,为了方便推导,我们可以将以上两种情况统一表示为:
P ( y ( i ) ∣ x ( i ) ; β 0 , β 1 , β 2 , … , β n ) = σ ( z ( i ) ) y ( i ) ⋅ ( 1 − σ ( z ( i ) ) ) 1 − y ( i ) P(y^{(i)}|x^{(i)};\beta_0, \beta_1, \beta_2, \ldots, \beta_n) = \sigma(z^{(i)})^{y^{(i)}} \cdot (1-\sigma(z^{(i)}))^{1-y^{(i)}} P(y(i)x(i);β0,β1,β2,,βn)=σ(z(i))y(i)(1σ(z(i)))1y(i)

5、代入条件概率并计算对数似然函数:

将上述计算得到的条件概率代入对数似然函数中,得到:

L ( β 0 , β 1 , β 2 , … , β n ) = ∑ i = 1 m [ y ( i ) log ⁡ ( σ ( z ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − σ ( z ( i ) ) ) ] L(\beta_0, \beta_1, \beta_2, \ldots, \beta_n) = \sum_{i=1}^{m} [y^{(i)} \log(\sigma(z^{(i)})) + (1 - y^{(i)}) \log(1 - \sigma(z^{(i)}))] L(β0,β1,β2,,βn)=i=1m[y(i)log(σ(z(i)))+(1y(i))log(1σ(z(i)))]

6、交叉熵损失函数:

为了方便优化,我们通常将对数似然函数的负数称为交叉熵损失函数。交叉熵损失函数的形式如下:
Loss ( β 0 , β 1 , β 2 , … , β n ) = − 1 m ∑ i = 1 m [ y ( i ) log ⁡ ( σ ( z ( i ) ) ) + ( 1 − y ( i ) ) log ⁡ ( 1 − σ ( z ( i ) ) ) ] \text{Loss}(\beta_0, \beta_1, \beta_2, \ldots, \beta_n) = -\frac{1}{m} \sum_{i=1}^{m} [y^{(i)} \log(\sigma(z^{(i)})) + (1 - y^{(i)}) \log(1 - \sigma(z^{(i)}))] Loss(β0,β1,β2,,βn)=m1i=1m[y(i)log(σ(z(i)))+(1y(i))log(1σ(z(i)))]


原文地址:https://blog.csdn.net/weixin_44055664/article/details/132081784

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!