本系列文章如果没有特殊说明,正文内容均解释的是文字上方的图片
机器学习 | Coursera
吴恩达机器学习系列课程_bilibili
6 逻辑回归
6-1 逻辑分类算法
- 用于输出量 y y y是离散值如0/1的情况
- 不宜用线性回归进行机器学习
6-2 假设表示
- 在逻辑分类中,将假定函数改为 h θ ( x ) = g ( θ T x ) h_θ(x)=g(θ^Tx) hθ(x)=g(θTx),假定函数函数的值即为输出真(1)的概率
- 函数 g ( z ) g(z) g(z)称作Sigmoid函数或Logistic函数,其表达式为 1 1 + e − z \frac{1}{1+e^{-z}} 1+e−z1
- 综上,逻辑分类中的假定函数为 1 1 + e − θ T x \frac{1}{1+e^{-θ^Tx}} 1+e−θTx1
6-3 决策边界
- predict “y=1” if h θ ( x ) ≥ 0.5 h_θ(x)\ge0.5 hθ(x)≥0.5
- predict “y=0” if h θ ( x ) < 0.5 h_θ(x)<0.5 hθ(x)<0.5
- 在上图右上角
g
(
z
)
=
1
1
+
e
−
z
g(z)=\frac{1}{1+e^{-z}}
g(z)=1+e−z1函数的图像中,用
g
(
z
)
g(z)
g(z)来表示假定函数,要计算何时
g
(
z
)
>
0.5
g(z)>0.5
g(z)>0.5,只要计算何时
z
≥
0
z\ge0
z≥0,即计算何时
θ
T
x
>
0
θ^Tx>0
θTx>0
- 计算得出的决策边界可以是直线
- 决策边界也可以是圆形的
6-4 代价函数
之前的线性表示的代价函数为:
J
(
θ
)
=
1
m
∑
i
=
1
m
1
2
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J(θ)=\frac{1}{m}\sum_{i=1}^m\frac{1}{2}(h_θ(x^{(i)})-y^{(i)})^2
J(θ)=m1i=1∑m21(hθ(x(i))−y(i))2
将
1
2
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
\frac{1}{2}(h_θ(x^{(i)})-y^{(i)})^2
21(hθ(x(i))−y(i))2表示为
C
o
s
t
(
h
θ
(
x
(
i
)
)
,
y
(
i
)
)
Cost(h_θ(x^{(i)}),y^{(i)})
Cost(hθ(x(i)),y(i))
去掉
(
i
)
(i)
(i)之后简写为
J
(
θ
)
=
1
2
m
∑
i
=
1
m
C
o
s
t
(
h
θ
(
x
)
,
y
)
J(θ)=\frac{1}{2m}\sum_{i=1}^mCost(h_θ(x),y)
J(θ)=2m1i=1∑mCost(hθ(x),y)
- 由于在逻辑回归上继续使用这个代价函数会导致输出的代价函数不是凸函数,不能使用梯度下降算法输出全局最小值
- 所以在逻辑回归中将代价函数中的
C
o
s
t
(
h
θ
(
x
)
,
y
)
Cost(h_θ(x),y)
Cost(hθ(x),y)改为如下
C o s t ( h θ ( x ) , y ) = { − l o g ( h θ ( x ) ) if y=1 − l o g ( 1 − h θ ( x ) ) if y=0 Cost(h_θ(x),y)= \begin{cases} -log(h_θ(x))& \text{if y=1}\\ -log(1-h_θ(x))& \text{if y=0} \end{cases} Cost(hθ(x),y)={−log(hθ(x))−log(1−hθ(x))if y=1if y=0
- C o s t ( h θ ( x ) , y ) Cost(h_θ(x),y) Cost(hθ(x),y)中第一个函数的图像如上图
- 输出量 y = 1 y=1 y=1时,若假定函数 h θ ( x ) = 1 h_θ(x)=1 hθ(x)=1,那么 C o s t ( h θ ( x ) , y ) Cost(h_θ(x),y) Cost(hθ(x),y)输出值将会趋向于0,即代价函数趋向于0,使得这点对假定函数的惩罚为0,几乎不改变结果
- 输出量 y = 1 y=1 y=1时,若假定函数 h θ ( x ) → 0 h_θ(x)\rightarrow0 hθ(x)→0,那么 C o s t ( h θ ( x ) , y ) Cost(h_θ(x),y) Cost(hθ(x),y)输出值将会趋向于 + ∞ +\infty +∞,即代价函数趋向于 + ∞ +\infty +∞,使得这点对假定函数的惩罚为 + ∞ +\infty +∞,极大地改变结果,使假定函数在这点处的输出结果迅速回到正确的值上来
- C o s t ( h θ ( x ) , y ) Cost(h_θ(x),y) Cost(hθ(x),y)中第二个函数的图像如上图
6-4 简化代价函数与梯度下降
由于 y = 0 y=0 y=0 or 1 1 1恒成立( y = 0 y=0 y=0 or 1 1 1 always),所以可以将 C o s t ( h θ ( x ) , y ) Cost(h_θ(x),y) Cost(hθ(x),y)简化为一个式子
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
−
y
l
o
g
(
h
θ
(
x
)
)
−
(
1
−
y
)
l
o
g
(
1
−
h
θ
(
x
)
)
Cost(h_θ(x),y)=-ylog(h_θ(x))-(1-y)log(1-h_θ(x))
Cost(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x))
最后得出的用于逻辑回归的代价函数为:
J
(
θ
)
=
1
m
∑
i
=
1
m
C
o
s
t
(
h
θ
(
x
(
i
)
)
,
y
(
i
)
)
J(θ)=\frac{1}{m}\sum_{i=1}^mCost(h_θ(x^{(i)}),y^{(i)})
J(θ)=m1i=1∑mCost(hθ(x(i)),y(i))
J
(
θ
)
=
−
1
m
[
∑
i
=
1
m
y
(
i
)
l
o
g
(
h
θ
(
x
(
i
)
)
)
+
(
1
−
y
(
i
)
)
l
o
g
(
1
−
h
θ
(
x
(
i
)
)
)
]
J(θ)=-\frac{1}{m}\left[\sum_{i=1}^my^{(i)}log(h_θ(x^{(i)}))+(1-y^{(i)})log(1-h_θ(x^{(i)}))\right]
J(θ)=−m1[i=1∑my(i)log(hθ(x(i)))+(1−y(i))log(1−hθ(x(i)))]
在梯度下降中不断循环(for j=1,2,…,n)的式子为:
θ
j
:
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
)
θ_j:=θ_j-α\frac{\partial}{\partial θ_j}J(θ)
θj:=θj−α∂θj∂J(θ)
θ
j
:
=
θ
j
−
α
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
θ_j:=θ_j-α\sum_{i=1}^m(h_θ(x^{(i)})-y^{(i)})x_j^{(i)}
θj:=θj−αi=1∑m(hθ(x(i))−y(i))xj(i)
6-5 高级优化
6-7 多元分类:一对多
- 共有三个分类:三角形、叉、正方形
- 先计算三角形:将三角形认为是正样本,其他认为是负样本,可以计算出一条直线划分三角形和其他图形,如上图右上角第一幅坐标系
- 其他图形同理