梯度下降
https://zhuanlan.zhihu.com/p/137713040
- 梯度下降更新公式:
θ
k
+
1
=
θ
k
−
α
⋅
g
\theta_{k+1}=\theta_{k}-\alpha·g
θk+1=θk−α⋅g
- 其中 α \alpha α表示步长, g g g表示梯度
减号
表示朝着负梯度方向
,所以是梯度下降
对于非凸问题,可能会陷入局部最优,解决方案之一为,多取几个随机初始点;对于凸问题,由于一定存在全局最小,则不存在该问题
逻辑回归
https://zhuanlan.zhihu.com/p/139122386
https://cloud.tencent.com/developer/article/1694338
(1)逻辑回归表达式
逻辑回归实际上就是添加了sigmoid
的线性回归
f
(
y
)
=
1
1
+
e
−
y
f(y)=\frac{1}{1+e^{-y}}
f(y)=1+e−y1
y = θ 0 + θ 1 x 1 + θ 2 x 2 + ⋯ + θ n x n = θ T x y = \theta _ { 0 } + \theta _ { 1 } x _ { 1 } + \theta _ { 2 } x _ { 2 } + \cdots + \theta _ { n } x _ { n } = \theta ^ { T } x y=θ0+θ1x1+θ2x2+⋯+θnxn=θTx
所以逻辑回归的表达式为:
g
(
y
)
=
1
1
+
e
−
y
=
e
y
1
+
e
y
g ( y ) = \frac { 1 } { 1 + e ^ { - y } } = \frac { e ^ { y } } { 1 + e ^ { y } }
g(y)=1+e−y1=1+eyey
其中
y
=
β
0
+
β
1
x
1
…
…
+
β
p
x
p
y=\beta_0+\beta_1x_1……+\beta_px_p
y=β0+β1x1……+βpxp
求导可得:
g
′
(
y
)
=
e
y
(
1
+
e
y
)
−
e
y
∗
e
y
(
1
+
e
y
)
2
=
g
′
(
y
)
=
e
y
(
1
+
e
y
)
2
g ^ { \prime } ( y ) = \frac { e ^ { y } ( 1 + e ^ { y } ) - e ^ { y } \ast e ^ { y } } { ( 1 + e ^ { y } ) ^ { 2 } } = g ^ { \prime } ( y ) = \frac { e ^ { y } } { ( 1 + e ^ { y } ) ^ { 2 } }
g′(y)=(1+ey)2ey(1+ey)−ey∗ey=g′(y)=(1+ey)2ey
进一步化简得:
g
′
(
y
)
=
e
y
(
1
+
e
y
)
∗
1
(
1
+
e
y
)
g ^ { \prime } ( y ) = \frac { e ^ { y } } { ( 1 + e ^ { y } ) } \ast \frac { 1 } { ( 1 + e ^ { y } ) }
g′(y)=(1+ey)ey∗(1+ey)1
g ′ ( y ) = e y ( 1 + e y ) ∗ [ 1 − e y ( 1 + e y ) ] g ^ { \prime } ( y ) = \frac { e ^ { y } } { ( 1 + e ^ { y } ) } * \left[ 1 - \frac { e ^ { y } } { ( 1 + e ^ { y } ) } \right] g′(y)=(1+ey)ey∗[1−(1+ey)ey]
g ′ ( y ) = g ( y ) ∗ [ 1 − g ( y ) ] g ^ { \prime } ( y ) = g ( y ) ^ { * } \left[ 1 - g ( y ) \right] g′(y)=g(y)∗[1−g(y)]
转换一下逻辑回归函数
g
(
y
)
=
1
1
+
e
−
y
⇒
g
(
y
)
∗
(
1
+
e
−
y
)
=
1
g ( y ) = \frac { 1 } { 1 + e ^ { - y } } \Rightarrow g ( y ) \ast ( 1 + e ^ { - y } ) = 1
g(y)=1+e−y1⇒g(y)∗(1+e−y)=1
⇒
e
−
y
=
1
g
(
y
)
−
1
⇒
−
y
=
ln
(
1
−
g
(
y
)
g
(
y
)
)
\Rightarrow e ^ { - y } = \frac { 1 } { g( y ) } - 1 \Rightarrow - y = \ln ( \frac { 1 - g ( y ) } { g ( y ) } )
⇒e−y=g(y)1−1⇒−y=ln(g(y)1−g(y))
g
⇒
y
=
ln
(
g
(
y
)
1
−
g
(
y
)
)
\Rightarrow y = \ln ( \frac { g ( y ) } { 1 - g ( y ) } )
⇒y=ln(1−g(y)g(y))
(2)似然函数
- 概率:某个事件发生的可能性
- 似然性(likehood):一个事件实际已经发生了,反推在什么参数条件下,这个事件发生的概率最大
数学表达形式为:
- 概率:已知参数 β 前提下,事件x发生的条件概率 P ( x ∣ β ) P(x|\beta) P(x∣β)
- 似然性:已知某个已发生的事件 x,未知参数 β 的似然函数为 L ( β ∣ x ) L(\beta|x) L(β∣x)
- 上面两个值相等,即: P ( x ∣ β ) P(x|\beta) P(x∣β) = L ( β ∣ x ) L(\beta|x) L(β∣x)
最优的 β \beta β,就是让当前观察到的数据 X 出现的可能性最大的 β \beta β
将逻辑回归输出的值视为概率,则预测为正类的概率:
P
(
Y
=
1
∣
x
)
=
1
1
+
e
−
θ
T
x
P(Y=1|x)=\frac{1}{1+e^{- \theta ^ { T } x}}
P(Y=1∣x)=1+e−θTx1
相应的,预测负类的概率为:
P
(
Y
=
0
∣
x
)
=
1
−
p
(
Y
=
1
∣
x
)
=
1
−
1
1
+
e
−
θ
T
x
=
1
1
+
e
θ
T
x
P(Y=0|x)= 1 - p ( Y = 1 | x )= 1 - \frac { 1 } { 1 + e ^ { - \theta ^ { T } x} } = \frac { 1 } { 1 + e ^ { \theta ^ { T } x} }
P(Y=0∣x)=1−p(Y=1∣x)=1−1+e−θTx1=1+eθTx1
令
g
θ
(
x
)
=
1
1
+
e
−
θ
T
x
g _ { \theta } ( x ) = \frac{1}{1+e^{- \theta ^ { T } x}}
gθ(x)=1+e−θTx1
可得
P
(
Y
=
1
∣
x
)
=
g
θ
(
x
)
P(Y=1|x) = g _ { \theta } ( x )
P(Y=1∣x)=gθ(x)
p ( Y = 0 ∣ x ) = 1 − g θ ( x ) p ( Y = 0 | x ) = 1 - g _ { \theta } ( x ) p(Y=0∣x)=1−gθ(x)
所以对于某一个样本发生的概率可以表示为:
p
(
y
∣
x
,
θ
)
=
(
g
θ
(
x
)
)
y
(
1
−
g
θ
(
x
)
)
1
−
y
p ( y | x , \theta ) = ( g _ { \theta } ( x ) ) ^ { y } ( 1 - g _ { \theta } ( x ) ) ^ { 1 - y }
p(y∣x,θ)=(gθ(x))y(1−gθ(x))1−y
y = 1 时,=
g
θ
(
x
)
g _ { \theta } ( x )
gθ(x)
y = 0 时,=
1
−
g
θ
(
x
)
1-g _ { \theta } ( x )
1−gθ(x)
对于一批样本,同时发生的概率为(即为似然函数)
L ( θ ) = ∏ i = 1 m p ( y i ∣ x i ; θ ) = ∏ i = 1 m ( g θ ( x i ) ) y i ( 1 − g θ ( x i ) ) 1 − y i L ( \theta ) = \prod _ { i = 1 } ^ { m } p ( y _ { i } | x _ { i } ; \theta ) = \prod _ { i = 1 } ^ { m } ( g _ { \theta } ( x _ { i } ) ) ^ { y _ { i } } ( 1 - g _ { \theta } ( x _ { i } ) ) ^ { 1 - y _ { i } } L(θ)=i=1∏mp(yi∣xi;θ)=i=1∏m(gθ(xi))yi(1−gθ(xi))1−yi
其中, θ \theta θ 就是我们要求的参数,最优参数为让上述概率最大的值
(3)求解似然函数
化简上一步得到的似然函数,将连乘改为连加
l
(
θ
)
=
ln
(
L
(
θ
)
)
=
∑
i
=
1
m
ln
(
p
(
y
i
∣
x
i
;
θ
)
)
l ( \theta ) = \ln ( L ( \theta ) ) = \sum _ { i = 1 } ^ { m } \ln ( p ( y _ { i } | x _ { i } ; \theta ) )
l(θ)=ln(L(θ))=i=1∑mln(p(yi∣xi;θ))
= ∑ i = 1 m ( y i ln ( g θ ( x i ) ) + ( 1 − y i ) ln ( 1 − g θ ( x i ) ) ) = \sum _ { i = 1 } ^ { m } ( y _ { i } \ln ( g _ { \theta } ( x _ { i } ) ) + ( 1 - y _ { i } ) \ln ( 1 - g _ { \theta } ( x _ { i } ) ) ) =i=1∑m(yiln(gθ(xi))+(1−yi)ln(1−gθ(xi)))
然后就可以用梯度上升,求得使似然函数最大的 θ \theta θ
定义,平均对数似然损失:
J
(
θ
)
=
−
1
m
ln
(
L
(
θ
)
)
J ( \theta ) = - \frac { 1 } { m } \ln ( L ( \theta ) )
J(θ)=−m1ln(L(θ))
最大化似然 等价于 最小化损失
max
ln
(
L
(
θ
)
)
⇔
min
J
(
θ
)
\max \ln ( L ( \theta ) ) \Leftrightarrow \min J ( \theta )
maxln(L(θ))⇔minJ(θ)
于是将问题转换为,梯度下降,求最小化损失的 θ \theta θ
根据 θ k + 1 = θ k − α ⋅ 梯度 \theta_{k+1}=\theta_{k}-\alpha·梯度 θk+1=θk−α⋅梯度,更新参数即可
J ( θ ) = − 1 m ln ( L ( θ ) ) = − 1 m I ( θ ) J ( θ ) = − 1 m ∑ i = 1 m ( y i ln ( g i ( x i ) ) + ( 1 − y j ) ln ( 1 − g i ( x i ) ) ) \begin{matrix} J ( \theta ) = - \frac { 1 } { m } \ln ( L ( \theta ) ) = - \frac { 1 } { m } I ( \theta ) \\ J ( \theta ) = - \frac { 1 } { m } \sum _ { i = 1 } ^ { m } ( y _ { i } \ln ( g _ { i } ( x _ { i } ) ) + ( 1 - y _ { j } ) \ln ( 1 - g _ { i } ( x _ { i } ) ) ) \end{matrix} J(θ)=−m1ln(L(θ))=−m1I(θ)J(θ)=−m1∑i=1m(yiln(gi(xi))+(1−yj)ln(1−gi(xi)))
对损失函数求导:
δ
J
(
θ
)
δ
θ
j
=
−
1
m
∑
i
=
1
m
[
y
i
∗
1
g
θ
(
x
i
)
∗
δ
g
θ
(
x
i
)
δ
θ
j
−
(
1
−
y
i
)
∗
1
1
−
g
θ
(
x
i
)
∗
δ
g
θ
(
x
i
)
δ
θ
j
]
\frac { \delta J ( \theta ) } { \delta \theta j } = - \frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left[ y _ { i } * \frac { 1 } { g _ { \theta } ( x _ { i } ) } * \frac { \delta g _ { \theta } ( x _ { i } ) } { \delta \theta j } - ( 1 - y _ { i } ) * \frac { 1 } { 1 - g _ { \theta } ( x _ { i } ) } * \frac { \delta g _ { \theta } ( x _ { i } ) } { \delta \theta j } \right]
δθjδJ(θ)=−m1i=1∑m[yi∗gθ(xi)1∗δθjδgθ(xi)−(1−yi)∗1−gθ(xi)1∗δθjδgθ(xi)]
δ J ( θ ) δ θ j = − 1 m ∑ i = 1 m [ y i ∗ 1 g θ ( x i ) − ( 1 − y i ) ∗ 1 1 − g θ ( x i ) ] ∗ δ g θ ( x i ) δ θ j \frac { \delta J ( \theta ) } { \delta \theta j } = - \frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left[ y _ { i } \ast \frac { 1 } { g _ { \theta } ( x _ { i } ) } - ( 1 - y _ { i } ) ^ { * } \frac { 1 } { 1 - g _ { \theta } ( x _ { i } ) } \right] \ast \frac { \delta g _ { \theta } ( x _ { i } ) } { \delta \theta j } δθjδJ(θ)=−m1i=1∑m[yi∗gθ(xi)1−(1−yi)∗1−gθ(xi)1]∗δθjδgθ(xi)
δ J ( θ ) δ θ j = − 1 m ∑ i = 1 m [ y i ∗ 1 g ( θ T x i ) − ( 1 − y i ) ∗ 1 1 − g ( θ T x i ) ] ∗ δ g ( θ T x i ) δ θ j \frac { \delta J ( \theta ) } { \delta \theta j } = - \frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left[ y _ { i } \ast \frac { 1 } { g ( \theta ^ { T } x _ { i } ) } - ( 1 - y _ { i } ) \ast \frac { 1 } { 1 - g ( \theta ^ { T } x _ { i } ) } \right] \ast \frac { \delta g ( \theta ^ { T } x _ { i } ) } { \delta \theta j } δθjδJ(θ)=−m1i=1∑m[yi∗g(θTxi)1−(1−yi)∗1−g(θTxi)1]∗δθjδg(θTxi)
δ J ( θ ) δ θ j = − 1 m ∑ i = 1 m [ y i ∗ 1 g ( θ T x i ) − ( 1 − y i ) ∗ 1 1 − g ( θ T x i ) ] ∗ g ( θ T x i ) ∗ [ 1 − g ( θ T x i ) ] ∗ δ θ T x i δ θ j \frac { \delta J ( \theta ) } { \delta \theta j } = - \frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left[ y _ { i } \ast \frac { 1 } { g ( \theta ^ { T } x _ { i } ) } - ( 1 - y _ { i } ) ^ { * } \frac { 1 } { 1 - g ( \theta ^ { T } x _ { i } ) } \right] ^ { * } g ( \theta ^ { T } x _ { i } ) ^ { * } \left[ 1 - g ( \theta ^ { T } x _ { i } ) \right] ^ { * } \frac { \delta \theta ^ { T } x _ { i } } { \delta \theta j } δθjδJ(θ)=−m1i=1∑m[yi∗g(θTxi)1−(1−yi)∗1−g(θTxi)1]∗g(θTxi)∗[1−g(θTxi)]∗δθjδθTxi
δ J ( θ ) δ θ j = − 1 m ∑ i = 1 m [ y i ∗ ( 1 − g ( θ T x i ) ) − ( 1 − y i ) ∗ g ( θ T x i ) ] ∗ x i j \frac { \delta J ( \theta ) } { \delta \theta j } = - \frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left[ y _ { i } ^ { * } ( 1 - g ( \theta ^ { T } x _ { i } ) ) - ( 1 - y _ { i } ) ^ { * } g ( \theta ^ { T } x _ { i } ) \right] ^ { * } x _ { i } ^ { j } δθjδJ(θ)=−m1i=1∑m[yi∗(1−g(θTxi))−(1−yi)∗g(θTxi)]∗xij
δ J ( θ ) δ θ j = − 1 m ∑ i = 1 m [ y i − g ( θ T x i ) ] ∗ x i j \frac { \delta J ( \theta ) } { \delta \theta j } = - \frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left[ y _ { i } - g ( \theta ^ { T } x _ { i } ) \right] ^ { * } x _ { i } ^ { j } δθjδJ(θ)=−m1i=1∑m[yi−g(θTxi)]∗xij
δ J ( θ ) δ θ j = 1 m ∑ i = 1 m [ g ( θ T x i ) − y i ] ∗ x i j \frac { \delta J ( \theta ) } { \delta \theta j } = \frac { 1 } { m } \sum _ { i = 1 } ^ { m } \left[ g ( \theta ^ { T } x _ { i } ) - y _ { i } \right] ^ { * } x _ { i } ^ { j } δθjδJ(θ)=m1i=1∑m[g(θTxi)−yi]∗xij