吴恩达机器学习第六章【Logistic Regression】
Classification【分类问题】
在分类问题中,你要预测的变量
y
y
y 是离散的值,我们提出了一种叫做逻辑回归 (Logistic Regression ) 的算法。
我们从二元的分类问题开始讨论。
我们将因变量(dependent variable )可能属于的两个类分别称为负向类(negative class )和正向类(positive class ),则因变量
y
∈
0
,
1
y\in {0,1 \\}
y ∈ 0 , 1 ,其中 0 表示负向类,1 表示正向类。
但对于线性回归问题来说,函数的输出值可能大于1也可能小于0。所以不可能实现。所以我们研究逻辑回归。
Hypothesis Representation 【假说表示】
在Classification 中我们提到怎么使分类器的输出值在0和1之间,由此我们提出一个假设:
h
θ
(
x
)
=
g
(
θ
T
X
)
∈
[
0
,
1
]
h_\theta(x)=g(\theta^TX)\in[0,1]
h θ ( x ) = g ( θ T X ) ∈ [ 0 , 1 ]
其中:
X
X
X 代表特征向量
g
g
g 代表逻辑函数(logistic function )是一个常用的逻辑函数为S 形函数(Sigmoid function ),公式为:
g
(
z
)
=
1
1
+
e
−
z
g\left( z \right)=\frac{1}{1+{{e}^{-z}}}
g ( z ) = 1 + e − z 1 。
扫描二维码关注公众号,回复:
11068925 查看本文章
h
θ
(
x
)
h_\theta \left( x \right)
h θ ( x ) 的作用是,对于给定的输入变量,根据选择的参数计算输出变量=1的可能性(estimated probablity )即
h
θ
(
x
)
=
P
(
y
=
1
∣
x
;
θ
)
h_\theta \left( x \right)=P\left( y=1|x;\theta \right)
h θ ( x ) = P ( y = 1 ∣ x ; θ ) 例如,如果对于给定的
x
x
x ,通过已经确定的参数计算得出
h
θ
(
x
)
=
0.7
h_\theta \left( x \right)=0.7
h θ ( x ) = 0 . 7 ,则表示有70%的几率
y
y
y 为正向类,相应地
y
y
y 为负向类的几率为1-0.7=0.3。其中
P
(
y
=
1
∣
x
;
θ
)
+
P
(
y
=
0
∣
x
;
θ
)
=
1
P\left( y=1|x;\theta \right)+P\left( y=0|x;\theta \right)=1
P ( y = 1 ∣ x ; θ ) + P ( y = 0 ∣ x ; θ ) = 1 。
Decision Boundary【判定边界】
在逻辑回归中,我们预测:
当
h
θ
(
x
)
>
=
0.5
{h_\theta}\left( x \right)>=0.5
h θ ( x ) > = 0 . 5 时,预测
y
=
1
y=1
y = 1 。
当
h
θ
(
x
)
<
0.5
{h_\theta}\left( x \right)<0.5
h θ ( x ) < 0 . 5 时,预测
y
=
0
y=0
y = 0 。
根据上面绘制出的 S 形函数图像,我们知道当
z
=
0
z=0
z = 0 时
g
(
z
)
=
0.5
g(z)=0.5
g ( z ) = 0 . 5
z
>
0
z>0
z > 0 时
g
(
z
)
>
0.5
g(z)>0.5
g ( z ) > 0 . 5
z
<
0
z<0
z < 0 时
g
(
z
)
<
0.5
g(z)<0.5
g ( z ) < 0 . 5
又
z
=
θ
T
x
z={\theta^{T}}x
z = θ T x ,即:
θ
T
X
>
=
0
{\theta^{T}}X>=0
θ T X > = 0 时,预测
y
=
1
y=1
y = 1
θ
T
X
<
0
{\theta^{T}}X<0
θ T X < 0 时,预测
y
=
0
y=0
y = 0
现在假设我们有一个模型:
并且参数
θ
\theta
θ 是向量[-3 1 1]。 则当
−
3
+
x
1
+
x
2
≥
0
-3+{x_1}+{x_2} \geq 0
− 3 + x 1 + x 2 ≥ 0 ,即
x
1
+
x
2
≥
3
{x_1}+{x_2} \geq 3
x 1 + x 2 ≥ 3 时,模型将预测
y
=
1
y=1
y = 1 。 我们可以绘制直线
x
1
+
x
2
=
3
{x_1}+{x_2} = 3
x 1 + x 2 = 3 ,这条线便是我们模型的分界线,将预测为1的区域和预测为 0的区域分隔开。
假使我们的数据呈现这样的分布情况,怎样的模型才能适合呢?
因为需要用曲线才能分隔
y
=
0
y=0
y = 0 的区域和
y
=
1
y=1
y = 1 的区域,我们需要二次方特征:
h
θ
(
x
)
=
g
(
θ
0
+
θ
1
x
1
+
θ
2
x
2
+
θ
3
x
1
2
+
θ
4
x
2
2
)
{h_\theta}\left( x \right)=g\left( {\theta_0}+{\theta_1}{x_1}+{\theta_{2}}{x_{2}}+{\theta_{3}}x_{1}^{2}+{\theta_{4}}x_{2}^{2} \right)
h θ ( x ) = g ( θ 0 + θ 1 x 1 + θ 2 x 2 + θ 3 x 1 2 + θ 4 x 2 2 ) 是[-1 0 0 1 1],则我们得到的判定边界恰好是圆点在原点且半径为1的圆形。
我们可以用非常复杂的模型来适应非常复杂形状的判定边界。
Cost Function【代价函数】
对于线性回归模型,我们定义的代价函数是所有模型误差的平方和。理论上来说,我们也可以对逻辑回归模型沿用这个定义,但是问题在于,当我们将
h
θ
(
x
)
=
1
1
+
e
−
θ
T
x
{h_\theta}\left( x \right)=\frac{1}{1+{e^{-\theta^{T}x}}}
h θ ( x ) = 1 + e − θ T x 1 带入到这样定义了的代价函数中时,我们得到的代价函数将是一个非凸函数(non-convexfunction )。
这意味着我们的代价函数有许多局部最小值,这将影响梯度下降算法寻找全局最小值。
线性回归的代价函数为:
J
(
θ
)
=
1
m
∑
i
=
1
m
1
2
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
J\left( \theta \right)=\frac{1}{m}\sum\limits_{i=1}^{m}{\frac{1}{2}{{\left( {h_\theta}\left({x}^{\left( i \right)} \right)-{y}^{\left( i \right)} \right)}^{2}}}
J ( θ ) = m 1 i = 1 ∑ m 2 1 ( h θ ( x ( i ) ) − y ( i ) ) 2 。 我们重新定义逻辑回归的代价函数为:
J
(
θ
)
=
1
m
∑
i
=
1
m
C
o
s
t
(
h
θ
(
x
(
i
)
)
,
y
(
i
)
)
J\left( \theta \right)=\frac{1}{m}\sum\limits_{i=1}^{m}{{Cost}\left( {h_\theta}\left( {x}^{\left( i \right)} \right),{y}^{\left( i \right)} \right)}
J ( θ ) = m 1 i = 1 ∑ m C o s t ( h θ ( x ( i ) ) , y ( i ) ) ,其中
C
o
s
t
(
h
θ
(
x
(
i
)
,
y
(
i
)
)
=
1
2
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
2
=
{
−
l
g
(
h
θ
(
x
)
)
i
f
y
=
1
−
l
g
(
1
−
h
θ
(
x
)
)
i
f
y
=
0
Cost(h_\theta(x^{(i)},y^{(i)})=\frac{1}{2}(h_\theta(x^{(i)})-y^{(i)})^2=\begin{cases}-lg(h_\theta(x))&if&y=1 \\-lg(1-h_\theta(x))&if&y=0\end{cases}
C o s t ( h θ ( x ( i ) , y ( i ) ) = 2 1 ( h θ ( x ( i ) ) − y ( i ) ) 2 = { − l g ( h θ ( x ) ) − l g ( 1 − h θ ( x ) ) i f i f y = 1 y = 0
所以:
C
o
s
t
(
h
θ
(
x
(
i
)
,
y
(
i
)
)
=
−
y
×
l
g
(
h
θ
(
x
)
)
−
(
1
−
y
)
×
l
g
(
1
−
h
θ
(
x
)
)
Cost(h_\theta(x^{(i)},y^{(i)})=-y\times lg\left( {h_\theta}\left( x \right) \right)-(1-y)\times lg\left( 1-{h_\theta}\left( x \right) \right)
C o s t ( h θ ( x ( i ) , y ( i ) ) = − y × l g ( h θ ( x ) ) − ( 1 − y ) × l g ( 1 − h θ ( x ) )
带入代价函数得到:
J
(
θ
)
=
1
m
∑
i
=
1
m
[
−
y
(
i
)
log
(
h
θ
(
x
(
i
)
)
)
−
(
1
−
y
(
i
)
)
log
(
1
−
h
θ
(
x
(
i
)
)
)
]
J\left( \theta \right)=\frac{1}{m}\sum\limits_{i=1}^{m}{[-{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)]}
J ( θ ) = m 1 i = 1 ∑ m [ − y ( i ) log ( h θ ( x ( i ) ) ) − ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ] 即:
J
(
θ
)
=
−
1
m
∑
i
=
1
m
[
y
(
i
)
log
(
h
θ
(
x
(
i
)
)
)
+
(
1
−
y
(
i
)
)
log
(
1
−
h
θ
(
x
(
i
)
)
)
]
J\left( \theta \right)=-\frac{1}{m}\sum\limits_{i=1}^{m}{[{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)]}
J ( θ ) = − m 1 i = 1 ∑ m [ y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ]
证明如下:
Repeat {
θ
j
:
=
θ
j
−
α
∂
∂
θ
j
J
(
θ
)
\theta_j := \theta_j - \alpha \frac{\partial}{\partial\theta_j} J(\theta)
θ j : = θ j − α ∂ θ j ∂ J ( θ ) (simultaneously update all ) }
求导后得到:
Repeat {
θ
j
:
=
θ
j
−
α
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
\theta_j := \theta_j - \alpha \frac{1}{m}\sum\limits_{i=1}^{m}{{\left( {h_\theta}\left( \mathop{x}^{\left( i \right)} \right)-\mathop{y}^{\left( i \right)} \right)}}\mathop{x}_{j}^{(i)}
θ j : = θ j − α m 1 i = 1 ∑ m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) (simultaneously update all ) }
J
(
θ
)
=
−
1
m
∑
i
=
1
m
[
y
(
i
)
log
(
h
θ
(
x
(
i
)
)
)
+
(
1
−
y
(
i
)
)
log
(
1
−
h
θ
(
x
(
i
)
)
)
]
J\left( \theta \right)=-\frac{1}{m}\sum\limits_{i=1}^{m}{[{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)]}
J ( θ ) = − m 1 i = 1 ∑ m [ y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ] 考虑:
h
θ
(
x
(
i
)
)
=
1
1
+
e
−
θ
T
x
(
i
)
{h_\theta}\left( {{x}^{(i)}} \right)=\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}}
h θ ( x ( i ) ) = 1 + e − θ T x ( i ) 1 则:
y
(
i
)
log
(
h
θ
(
x
(
i
)
)
)
+
(
1
−
y
(
i
)
)
log
(
1
−
h
θ
(
x
(
i
)
)
)
{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)
y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) )
=
y
(
i
)
log
(
1
1
+
e
−
θ
T
x
(
i
)
)
+
(
1
−
y
(
i
)
)
log
(
1
−
1
1
+
e
−
θ
T
x
(
i
)
)
={{y}^{(i)}}\log \left( \frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}} \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}} \right)
= y ( i ) log ( 1 + e − θ T x ( i ) 1 ) + ( 1 − y ( i ) ) log ( 1 − 1 + e − θ T x ( i ) 1 )
=
−
y
(
i
)
log
(
1
+
e
−
θ
T
x
(
i
)
)
−
(
1
−
y
(
i
)
)
log
(
1
+
e
θ
T
x
(
i
)
)
=-{{y}^{(i)}}\log \left( 1+{{e}^{-{\theta^T}{{x}^{(i)}}}} \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1+{{e}^{{\theta^T}{{x}^{(i)}}}} \right)
= − y ( i ) log ( 1 + e − θ T x ( i ) ) − ( 1 − y ( i ) ) log ( 1 + e θ T x ( i ) )
所以:
∂
∂
θ
j
J
(
θ
)
=
∂
∂
θ
j
[
−
1
m
∑
i
=
1
m
[
−
y
(
i
)
log
(
1
+
e
−
θ
T
x
(
i
)
)
−
(
1
−
y
(
i
)
)
log
(
1
+
e
θ
T
x
(
i
)
)
]
]
\frac{\partial }{\partial {\theta_{j}}}J\left( \theta \right)=\frac{\partial }{\partial {\theta_{j}}}[-\frac{1}{m}\sum\limits_{i=1}^{m}{[-{{y}^{(i)}}\log \left( 1+{{e}^{-{\theta^{T}}{{x}^{(i)}}}} \right)-\left( 1-{{y}^{(i)}} \right)\log \left( 1+{{e}^{{\theta^{T}}{{x}^{(i)}}}} \right)]}]
∂ θ j ∂ J ( θ ) = ∂ θ j ∂ [ − m 1 i = 1 ∑ m [ − y ( i ) log ( 1 + e − θ T x ( i ) ) − ( 1 − y ( i ) ) log ( 1 + e θ T x ( i ) ) ] ]
=
−
1
m
∑
i
=
1
m
[
−
y
(
i
)
−
x
j
(
i
)
e
−
θ
T
x
(
i
)
1
+
e
−
θ
T
x
(
i
)
−
(
1
−
y
(
i
)
)
x
j
(
i
)
e
θ
T
x
(
i
)
1
+
e
θ
T
x
(
i
)
]
=-\frac{1}{m}\sum\limits_{i=1}^{m}{[-{{y}^{(i)}}\frac{-x_{j}^{(i)}{{e}^{-{\theta^{T}}{{x}^{(i)}}}}}{1+{{e}^{-{\theta^{T}}{{x}^{(i)}}}}}-\left( 1-{{y}^{(i)}} \right)\frac{x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}}]
= − m 1 i = 1 ∑ m [ − y ( i ) 1 + e − θ T x ( i ) − x j ( i ) e − θ T x ( i ) − ( 1 − y ( i ) ) 1 + e θ T x ( i ) x j ( i ) e θ T x ( i ) ]
=
−
1
m
∑
i
=
1
m
y
(
i
)
x
j
(
i
)
1
+
e
θ
T
x
(
i
)
−
(
1
−
y
(
i
)
)
x
j
(
i
)
e
θ
T
x
(
i
)
1
+
e
θ
T
x
(
i
)
]
=-\frac{1}{m}\sum\limits_{i=1}^{m}{{y}^{(i)}}\frac{x_j^{(i)}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}-\left( 1-{{y}^{(i)}} \right)\frac{x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}]
= − m 1 i = 1 ∑ m y ( i ) 1 + e θ T x ( i ) x j ( i ) − ( 1 − y ( i ) ) 1 + e θ T x ( i ) x j ( i ) e θ T x ( i ) ]
=
−
1
m
∑
i
=
1
m
y
(
i
)
x
j
(
i
)
−
x
j
(
i
)
e
θ
T
x
(
i
)
+
y
(
i
)
x
j
(
i
)
e
θ
T
x
(
i
)
1
+
e
θ
T
x
(
i
)
=-\frac{1}{m}\sum\limits_{i=1}^{m}{\frac{{{y}^{(i)}}x_j^{(i)}-x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}+{{y}^{(i)}}x_j^{(i)}{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}}
= − m 1 i = 1 ∑ m 1 + e θ T x ( i ) y ( i ) x j ( i ) − x j ( i ) e θ T x ( i ) + y ( i ) x j ( i ) e θ T x ( i )
=
−
1
m
∑
i
=
1
m
y
(
i
)
(
1
+
e
θ
T
x
(
i
)
)
−
e
θ
T
x
(
i
)
1
+
e
θ
T
x
(
i
)
x
j
(
i
)
=-\frac{1}{m}\sum\limits_{i=1}^{m}{\frac{{{y}^{(i)}}\left( 1\text{+}{{e}^{{\theta^T}{{x}^{(i)}}}} \right)-{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}}x_j^{(i)}}
= − m 1 i = 1 ∑ m 1 + e θ T x ( i ) y ( i ) ( 1 + e θ T x ( i ) ) − e θ T x ( i ) x j ( i )
=
−
1
m
∑
i
=
1
m
(
y
(
i
)
−
e
θ
T
x
(
i
)
1
+
e
θ
T
x
(
i
)
)
x
j
(
i
)
=-\frac{1}{m}\sum\limits_{i=1}^{m}{({{y}^{(i)}}-\frac{{{e}^{{\theta^T}{{x}^{(i)}}}}}{1+{{e}^{{\theta^T}{{x}^{(i)}}}}})x_j^{(i)}}
= − m 1 i = 1 ∑ m ( y ( i ) − 1 + e θ T x ( i ) e θ T x ( i ) ) x j ( i )
=
−
1
m
∑
i
=
1
m
(
y
(
i
)
−
1
1
+
e
−
θ
T
x
(
i
)
)
x
j
(
i
)
=-\frac{1}{m}\sum\limits_{i=1}^{m}{({{y}^{(i)}}-\frac{1}{1+{{e}^{-{\theta^T}{{x}^{(i)}}}}})x_j^{(i)}}
= − m 1 i = 1 ∑ m ( y ( i ) − 1 + e − θ T x ( i ) 1 ) x j ( i )
=
−
1
m
∑
i
=
1
m
[
y
(
i
)
−
h
θ
(
x
(
i
)
)
]
x
j
(
i
)
=-\frac{1}{m}\sum\limits_{i=1}^{m}{[{{y}^{(i)}}-{h_\theta}\left( {{x}^{(i)}} \right)]x_j^{(i)}}
= − m 1 i = 1 ∑ m [ y ( i ) − h θ ( x ( i ) ) ] x j ( i )
=
1
m
∑
i
=
1
m
[
h
θ
(
x
(
i
)
)
−
y
(
i
)
]
x
j
(
i
)
=\frac{1}{m}\sum\limits_{i=1}^{m}{[{h_\theta}\left( {{x}^{(i)}} \right)-{{y}^{(i)}}]x_j^{(i)}}
= m 1 i = 1 ∑ m [ h θ ( x ( i ) ) − y ( i ) ] x j ( i )
C
o
s
t
(
h
θ
(
x
(
i
)
,
y
(
i
)
)
=
=
{
−
l
g
(
h
θ
(
x
)
)
i
f
y
=
1
−
l
g
(
1
−
h
θ
(
x
)
)
i
f
y
=
0
Cost(h_\theta(x^{(i)},y^{(i)})==\begin{cases}-lg(h_\theta(x))&if&y=1 \\-lg(1-h_\theta(x))&if&y=0\end{cases}
C o s t ( h θ ( x ( i ) , y ( i ) ) = = { − l g ( h θ ( x ) ) − l g ( 1 − h θ ( x ) ) i f i f y = 1 y = 0
h
θ
(
x
)
{h_\theta}\left( x \right)
h θ ( x ) 与
C
o
s
t
(
h
θ
(
x
)
,
y
)
Cost\left( {h_\theta}\left( x \right),y \right)
C o s t ( h θ ( x ) , y ) 之间的关系如下图所示:
这样构建的
C
o
s
t
(
h
θ
(
x
)
,
y
)
Cost\left( {h_\theta}\left( x \right),y \right)
C o s t ( h θ ( x ) , y ) 函数的特点是:当实际的
y
=
1
y=1
y = 1 且
h
θ
(
x
)
{h_\theta}\left( x \right)
h θ ( x ) 也为 1 时误差为 0,当
y
=
1
y=1
y = 1 但
h
θ
(
x
)
{h_\theta}\left( x \right)
h θ ( x ) 不为1时误差随着
h
θ
(
x
)
{h_\theta}\left( x \right)
h θ ( x ) 变小而变大;当实际的
y
=
0
y=0
y = 0 且
h
θ
(
x
)
{h_\theta}\left( x \right)
h θ ( x ) 也为 0 时代价为 0,当
y
=
0
y=0
y = 0 但
h
θ
(
x
)
{h_\theta}\left( x \right)
h θ ( x ) 不为 0时误差随着
h
θ
(
x
)
{h_\theta}\left( x \right)
h θ ( x ) 的变大而变大。
Python 代码实现:
import numpy as np
def cost ( theta, X, y) :
theta = np. matrix( theta)
X = np. matrix( X)
y = np. matrix( y)
first = np. multiply( - y, np. log( X* theta. T) )
second = np. multiply( ( 1 - y) , np. log( 1 - X* theta. T) )
return np. sum ( first - second) / ( len ( X) )
Simplified Cost Function and Gradient Descent【简化的成本函数和梯度下降】
Logistic regression cost function:
KaTeX parse error: Got function '\sum' with no arguments as argument to '\underset' at position 61: …{\underset{i=1}\̲s̲u̲m̲}Cost(h_\theta(…
这个式子可以合并成:
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
−
y
×
l
o
g
(
h
θ
(
x
)
)
−
(
1
−
y
)
×
l
o
g
(
1
−
h
θ
(
x
)
)
Cost\left( {h_\theta}\left( x \right),y \right)=-y\times log\left( {h_\theta}\left( x \right) \right)-(1-y)\times log\left( 1-{h_\theta}\left( x \right) \right)
C o s t ( h θ ( x ) , y ) = − y × l o g ( h θ ( x ) ) − ( 1 − y ) × l o g ( 1 − h θ ( x ) ) 即,逻辑回归的代价函数:
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
−
y
×
l
o
g
(
h
θ
(
x
)
)
−
(
1
−
y
)
×
l
o
g
(
1
−
h
θ
(
x
)
)
Cost\left( {h_\theta}\left( x \right),y \right)=-y\times log\left( {h_\theta}\left( x \right) \right)-(1-y)\times log\left( 1-{h_\theta}\left( x \right) \right)
C o s t ( h θ ( x ) , y ) = − y × l o g ( h θ ( x ) ) − ( 1 − y ) × l o g ( 1 − h θ ( x ) )
=
−
1
m
∑
i
=
1
m
[
y
(
i
)
log
(
h
θ
(
x
(
i
)
)
)
+
(
1
−
y
(
i
)
)
log
(
1
−
h
θ
(
x
(
i
)
)
)
]
=-\frac{1}{m}\sum\limits_{i=1}^{m}{[{{y}^{(i)}}\log \left( {h_\theta}\left( {{x}^{(i)}} \right) \right)+\left( 1-{{y}^{(i)}} \right)\log \left( 1-{h_\theta}\left( {{x}^{(i)}} \right) \right)]}
= − m 1 i = 1 ∑ m [ y ( i ) log ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) log ( 1 − h θ ( x ( i ) ) ) ]
我们要求出
min
J
(
θ
)
\min J(\theta)
min J ( θ ) 的参数$\theta
,
另
外
,
我
们
假
设
的
输
出
,
实
际
上
就
是
这
个
概
率
值
:
,另外,我们假设的输出,实际上就是这个概率值:
, 另 外 , 我 们 假 设 的 输 出 , 实 际 上 就 是 这 个 概 率 值 : p(y=1|x;\theta)$,就是关于
x
x
x 以$\theta
为
参
数
,
为参数,
为 参 数 , y=1$ 的概率,你可以认为我们的假设就是估计
y
=
1
y=1
y = 1 的概率。
我们要使
min
J
(
θ
)
\min J(\theta)
min J ( θ ) 最小可以采用梯度下降的方法:
θ
j
:
=
θ
j
−
α
1
m
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
{\theta_j}:={\theta_j}-\alpha \frac{1}{m}\sum\limits_{i=1}^{m}{({h_\theta}({{x}^{(i)}})-{{y}^{(i)}}){x_{j}}^{(i)}}
θ j : = θ j − α m 1 i = 1 ∑ m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i )
其中这个和线性回归的梯度下降在形式上一致,但是假设却是不一致的,其中线性回归的假设函数是
h
θ
(
x
)
=
θ
T
X
=
θ
0
x
0
+
θ
1
x
1
+
θ
2
x
2
+
.
.
.
+
θ
n
x
n
{h_\theta}\left( x \right)={\theta^T}X={\theta_{0}}{x_{0}}+{\theta_{1}}{x_{1}}+{\theta_{2}}{x_{2}}+...+{\theta_{n}}{x_{n}}
h θ ( x ) = θ T X = θ 0 x 0 + θ 1 x 1 + θ 2 x 2 + . . . + θ n x n ,而逻辑回归的假设函数却是
h
θ
=
1
1
+
e
−
θ
T
X
h_\theta=\frac{1}{1+e^{-\theta^TX}}
h θ = 1 + e − θ T X 1 。
当使用梯度下降法来实现逻辑回归时,我们有这些不同的参数$\theta
,
就
是
,就是
, 就 是 {\theta_{0}}$
θ
1
{\theta_{1}}
θ 1
θ
2
{\theta_{2}}
θ 2 一直到
θ
n
{\theta_{n}}
θ n ,我们需要用这个表达式来更新这些参数。我们还可以使用 for循环 来更新这些参数值,理想情况下,我们更提倡使用向量化的实现,可以把所有这些
n
n
n 个参数同时更新。
Advanced Optimization【高级优化】
octave。。。
Multiclass Classification_ One-vs-all【多类别分类:一对多】
在上面中,我们讨论的是二分类问题,当多分类问题时,怎么办呢?
我们可以在多分类中提取一个类,并作为正类,其余作为负类。进行逻辑回归,由此可以把与其他类区分出来,所以对各个类操作可以把所有的类区分开来。
为了能实现这样的转变,我们将多个类中的一个类标记为正向类(
y
=
1
y=1
y = 1 ),然后将其他所有类都标记为负向类,这个模型记作
h
θ
(
1
)
(
x
)
h_\theta^{\left( 1 \right)}\left( x \right)
h θ ( 1 ) ( x ) 。接着,类似地第我们选择另一个类标记为正向类(
y
=
2
y=2
y = 2 ),再将其它类都标记为负向类,将这个模型记作
h
θ
(
2
)
(
x
)
h_\theta^{\left( 2 \right)}\left( x \right)
h θ ( 2 ) ( x ) ,依此类推。 最后我们得到一系列的模型简记为:
h
θ
(
i
)
(
x
)
=
p
(
y
=
i
∣
x
;
θ
)
h_\theta^{\left( i \right)}\left( x \right)=p\left( y=i|x;\theta \right)
h θ ( i ) ( x ) = p ( y = i ∣ x ; θ ) 其中:
i
=
(
1
,
2
,
3....
k
)
i=\left( 1,2,3....k \right)
i = ( 1 , 2 , 3 . . . . k )
最后,在我们需要做预测时,我们将所有的分类机都运行一遍,然后对每一个输入变量,都选择最高可能性的输出变量。
总之,我们已经把要做的做完了,现在要做的就是训练这个逻辑回归分类器:
h
θ
(
i
)
(
x
)
h_\theta^{\left( i \right)}\left( x \right)
h θ ( i ) ( x ) , 其中
i
i
i 对应每一个可能的
y
=
i
y=i
y = i ,最后,为了做出预测,我们给出输入一个新的
x
x
x 值,用这个做预测。我们要做的就是在我们三个分类器里面输入
x
x
x ,然后我们选择一个让
h
θ
(
i
)
(
x
)
h_\theta^{\left( i \right)}\left( x \right)
h θ ( i ) ( x ) 最大的$ i
,
即
,即
, 即 \mathop{\max}\limits_i,h_\theta^{\left( i \right)}\left( x \right)$。