1. 用途
是分类算法不是回归算法,用于二分类或多分类。回归模型的 Y Y Y是连续的,分类模型的 Y Y Y是离散的。
2. 模型形式
h θ ( X ) = 1 1 + e − X θ h_{\theta}(X)=\frac {1}{1+e^{-X\theta}} hθ(X)=1+e−Xθ1
- X X X:模型的特征输入,维度为 m × n m\times n m×n,m个样本.
- h θ ( x ) h_{\theta}(x) hθ(x):模型输出,可以理解为某一分类的概率大小,维度为 m × 1 m\times 1 m×1.
- θ \theta θ:模型要求的参数,维度为 n × 1 n\times 1 n×1.
3. 损失函数
令
P
(
y
=
1
∣
x
,
θ
)
=
h
θ
(
x
)
P(y=1|x,\theta)=h_{\theta}(x)
P(y=1∣x,θ)=hθ(x),
P
(
y
=
0
∣
x
,
θ
)
=
1
−
h
θ
(
x
)
P(y=0|x,\theta)=1-h_{\theta}(x)
P(y=0∣x,θ)=1−hθ(x),那么可得
y
y
y的概率分布函数:
P
(
y
∣
x
,
θ
)
=
(
h
θ
(
x
)
)
y
(
1
−
h
θ
(
x
)
)
(
1
−
y
)
P(y|x,\theta)=(h_{\theta}(x))^y (1-h_{\theta}(x))^{(1-y)}
P(y∣x,θ)=(hθ(x))y(1−hθ(x))(1−y)
此时,可以利用“最大似然函数”的思想求解参数
θ
\theta
θ:
L
(
θ
)
=
∏
i
=
1
m
(
h
θ
(
x
(
i
)
)
)
y
(
i
)
(
1
−
h
θ
(
x
(
i
)
)
)
(
1
−
y
(
i
)
)
L(\theta)=\prod_{i=1}^{m} (h_{\theta}(x^{(i)}))^{y^{(i)}} (1-h_{\theta}(x^{(i)}))^{(1-y^{(i)})}
L(θ)=i=1∏m(hθ(x(i)))y(i)(1−hθ(x(i)))(1−y(i))
为了方便求解,对最大似然函数取对数得损失函数为:
J
(
θ
)
=
−
l
o
g
L
(
θ
)
=
−
∑
i
=
1
m
[
y
(
i
)
l
o
g
h
θ
(
x
(
i
)
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
]
J(\theta)=-logL(\theta)=-\sum_{i=1}^{m}[y^{(i)}logh_{\theta}(x^{(i)})+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))]
J(θ)=−logL(θ)=−i=1∑m[y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]
其矩阵形式:
J
(
θ
)
=
−
Y
T
l
o
g
h
θ
(
X
)
−
(
E
−
Y
)
T
l
o
g
(
E
−
h
θ
(
X
)
)
J(\theta)=−Y^Tlogh_{\theta}(X)−(E−Y)^Tlog(E−h_{\theta}(X))
J(θ)=−YTloghθ(X)−(E−Y)Tlog(E−hθ(X))
4. 损失函数优化
使用梯度下降法进行优化(本身应是使用梯度上升法最大化
L
(
θ
)
L(\theta)
L(θ),但已对对数似然函数取反,因此使用梯度下降法最小化损失函数):
∂
J
(
θ
)
∂
θ
=
X
T
(
h
θ
(
X
)
−
Y
)
\frac{\partial J(\theta)}{\partial \theta}=X^T(h_{\theta}(X)-Y)
∂θ∂J(θ)=XT(hθ(X)−Y)
或
∂
J
(
θ
)
∂
θ
=
(
x
(
i
)
)
T
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
\frac{\partial J(\theta)}{\partial \theta}=(x^{(i)})^T(h_{\theta}(x^{(i)})-y^{(i)})
∂θ∂J(θ)=(x(i))T(hθ(x(i))−y(i))
那么,
θ
\theta
θ每一步的迭代公式为:
θ
=
θ
−
η
X
T
(
h
θ
(
X
)
−
Y
)
\theta=\theta-\eta X^T(h_{\theta}(X)-Y)
θ=θ−ηXT(hθ(X)−Y)或者
θ
=
θ
−
η
(
x
(
i
)
)
T
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
\theta=\theta-\eta (x^{(i)})^T(h_{\theta}(x^{(i)})-y^{(i)})
θ=θ−η(x(i))T(hθ(x(i))−y(i))
5. 损失函数正则化
为防止过拟合,需要对损失函数进行正则化。
- 二元逻辑回归的L1正则化:
J ( θ ) = − ∑ i = 1 m [ y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] + α ∣ ∣ θ ∣ ∣ 1 J(\theta)=-\sum_{i=1}^{m}[y^{(i)}logh_{\theta}(x^{(i)})+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))] +\alpha||\theta||_1 J(θ)=−i=1∑m[y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]+α∣∣θ∣∣1
∣ ∣ θ ∣ ∣ 1 ||\theta||_1 ∣∣θ∣∣1为 θ \theta θ的 L 1 L_1 L1范数。 - 二元逻辑回归的L2正则化:
J ( θ ) = − ∑ i = 1 m [ y ( i ) l o g h θ ( x ( i ) ) + ( 1 − y ( i ) ) l o g ( 1 − h θ ( x ( i ) ) ) ] + 1 2 α ∣ ∣ θ ∣ ∣ 2 2 J(\theta)=-\sum_{i=1}^{m}[y^{(i)}logh_{\theta}(x^{(i)})+(1-y^{(i)})log(1-h_{\theta}(x^{(i)}))] +\frac{1}{2}\alpha||\theta||_2^2 J(θ)=−i=1∑m[y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))]+21α∣∣θ∣∣22
∣ ∣ θ ∣ ∣ 2 ||\theta||_2 ∣∣θ∣∣2为 θ \theta θ的 L 2 L_2 L2范数。
6. 多元逻辑回归
对于多分类问题逻辑回归的处理方式有:
- one-vs-rest,OvR
- Many-vs-Many,MvM
(1) 最常用的是One-Vs-One(OvO),OvO是MvM的特例,每次选择两类样本来做二元逻辑回归。
(2) MvM,类似softmax:
P ( y = k ∣ x , θ ) = e x θ k 1 + ∑ t = 1 K − 1 e x θ t P(y=k|x,\theta)=\frac{e^{x\theta_k}}{1+\sum_{t=1}^{K-1}e^{x\theta_t}} P(y=k∣x,θ)=1+∑t=1K−1exθtexθk, k = 1 , … , K − 1 k=1,\dots,K-1 k=1,…,K−1
P ( y = K ∣ x , θ ) = 1 1 + ∑ t = 1 K − 1 e x θ t P(y=K|x,\theta)=\frac{1}{1+\sum_{t=1}^{K-1}e^{x\theta_t}} P(y=K∣x,θ)=1+∑t=1K−1exθt1
以上两式满足 ∑ i = 1 K P ( y = i ∣ x , θ ) = 1 \sum_{i=1}^{K}P(y=i|x,\theta)=1 ∑i=1KP(y=i∣x,θ)=1