逻辑回归:极大似然估计推导二分类的交叉熵损失函数
假设我们有一组输入特征数据集 X X X 和对应的二分类标签数据集 Y Y Y。在逻辑回归中,我们使用逻辑函数(sigmoid函数)将输入映射到概率输出,并利用极大似然估计来确定模型的参数。
1、定义逻辑函数(sigmoid函数):
σ ( z ) = 1 1 + e − z \sigma(z) = \frac{1}{1 + e^{-z}} σ(z)=1+e−z1
其中,
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=1∏mP(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=1∑mlogP(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)))1−y(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=1∑m[y(i)log(σ(z(i)))+(1−y(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=1∑m[y(i)log(σ(z(i)))+(1−y(i))log(1−σ(z(i)))]
原文地址:https://blog.csdn.net/weixin_44055664/article/details/132081784
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!