机器学习八股

梯度下降

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+ey1

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+ey1=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)eyey=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)[1g(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+ey1g(y)(1+ey)=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 ) } ) ey=g(y)11y=ln(g(y)1g(y))
g
⇒ y = ln ⁡ ( g ( y ) 1 − g ( y ) ) \Rightarrow y = \ln ( \frac { g ( y ) } { 1 - g ( y ) } ) y=ln(1g(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)=1p(Y=1∣x)=11+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)=1gθ(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(yx,θ)=(gθ(x))y(1gθ(x))1y

y = 1 时,= g θ ( x ) g _ { \theta } ( x ) gθ(x)
y = 0 时,= 1 − g θ ( x ) 1-g _ { \theta } ( x ) 1gθ(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=1mp(yixi;θ)=i=1m(gθ(xi))yi(1gθ(xi))1yi

其中, θ \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=1mln(p(yixi;θ))

= ∑ 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=1m(yiln(gθ(xi))+(1yi)ln(1gθ(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(θ)=m1i=1m(yiln(gi(xi))+(1yj)ln(1gi(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=1m[yigθ(xi)1δθjδgθ(xi)(1yi)1gθ(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=1m[yigθ(xi)1(1yi)1gθ(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=1m[yig(θTxi)1(1yi)1g(θ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=1m[yig(θTxi)1(1yi)1g(θTxi)1]g(θTxi)[1g(θ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=1m[yi(1g(θTxi))(1yi)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=1m[yig(θ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=1m[g(θTxi)yi]xij

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值