给出假设函数:
h
θ
(
x
)
=
g
(
θ
T
⋅
X
)
(1)
h_\theta(x)=g(\theta^T\cdot X) \tag{1}
hθ(x)=g(θT⋅X)(1)
g
(
z
)
=
1
1
+
e
(
−
z
)
(2)
g(z)=\frac{1}{1+e^{(-z)}}\tag{2}
g(z)=1+e(−z)1(2)
y y y更可能等于 1 1 1或者说 y = 1 y=1 y=1的概率大于等于 0.5 0.5 0.5的条件是 z = θ T X z=\theta^TX z=θTX大于零。
将
(
1
)
(1)
(1)和
(
2
)
(2)
(2)进行合并:
h
θ
(
x
)
=
1
1
+
e
(
−
θ
T
⋅
X
)
(3)
h_\theta(x)=\frac{1}{1+e^{(-\theta^T\cdot X)}} \tag{3}
hθ(x)=1+e(−θT⋅X)1(3)
( 3 ) (3) (3)式就是我们的假设函数。
定义了代价函数如下:
J
(
θ
)
=
1
m
⋅
∑
i
=
1
m
C
o
s
t
(
h
θ
(
x
)
,
y
)
J(\theta)=\frac{1}{m}\cdot \sum^m_{i=1}Cost(h_\theta(x),y)
J(θ)=m1⋅i=1∑mCost(hθ(x),y)
C
o
s
t
(
h
θ
(
x
)
,
y
)
=
{
−
l
o
g
(
h
θ
(
x
)
)
i
f
:
y
=
1
−
l
o
g
(
1
−
h
θ
(
x
)
)
i
f
:
y
=
0
Cost(h_\theta(x),y) = \begin{cases}-log(h_\theta(x)) & if:y=1 \\-log(1-h_\theta(x)) &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_\theta(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
)
)
(5)
Cost(h_\theta(x),y) = -ylog(h_\theta(x))-(1-y)log(1-h_\theta(x)) \tag{5}
Cost(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x))(5)
将
(
3
)
(3)
(3)和
(
5
)
(5)
(5)得到终结版的代价函数:
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(\theta)=-\frac{1}{m}\cdot \sum^m_{i=1}\left(y^{(i)}log[h_\theta(x^{(i)})]+(1-y^{(i)})log[1-h_\theta(x^{(i)})]\right)
J(θ)=−m1⋅i=1∑m(y(i)log[hθ(x(i))]+(1−y(i))log[1−hθ(x(i))])
这个代价函数是统计学中得出来的,重要的是他是一个凸函数能够找到最小化。我们一般选择这个函数。
还要记住一点
y
y
y等于
1
1
1或
0
0
0这是由他的定义决定的,不论是已知的数据集还是我们要预测的。
我现在只能照着以前线性回归的思路来找参数
θ
\theta
θ,要找到参数
θ
\theta
θ就要对
J
(
θ
)
J(\theta)
J(θ)最小化,仍然考虑使用梯度下降法来最小化代价函数
J
(
θ
)
J(\theta)
J(θ):
Repeat:
θ
j
=
θ
j
−
α
⋅
∂
∂
θ
j
J
(
θ
)
j
=
1
,
1
,
2
,
3
…
(6)
\theta_j=\theta_j-\alpha\cdot\frac{\partial}{\partial \theta_j} \tag{6}J(\theta)\\j=1,1,2,3\dots
θj=θj−α⋅∂θj∂J(θ)j=1,1,2,3…(6)
仍然是同时更新。
将式子
(
6
)
(6)
(6)的偏导展开:
θ
j
=
θ
j
−
α
⋅
∑
i
=
1
m
(
h
θ
(
x
(
i
)
)
−
y
(
i
)
)
x
j
(
i
)
\theta_j=\theta_j-\alpha\cdot\sum^m_{i=1}(h_\theta(x^{(i)})-y^{(i)})x^{(i)}_j
θj=θj−α⋅i=1∑m(hθ(x(i))−y(i))xj(i)
j
=
0
,
1
,
2
,
3
…
j=0,1,2,3\dots
j=0,1,2,3…,同时更新,内循环对
θ
j
\theta_j
θj进行
j
=
0
,
1
,
2
,
3
…
n
j=0,1,2,3\dots n
j=0,1,2,3…n的更新,外循环的循环次数不定,直到收敛。
其中:
h
θ
(
x
)
=
1
1
+
e
−
θ
T
X
h_\theta(x)=\frac{1}{1+e^{-\theta^TX}}
hθ(x)=1+e−θTX1
下面我们来考虑多分类问题(一对多问题):
比如说邮件分类一共有三类,分别是y=1,y=2,y=3。我觉得很好理解之前二分类我们定义y=0或者y=1。
三分类或者多分类就是多个二分类器,三分类就是三个二分类器,比如
h
θ
1
(
x
)
、
h
θ
2
(
x
)
、
h
θ
3
(
x
)
h^1_\theta(x)、h^2_\theta(x)、h^3_\theta(x)
hθ1(x)、hθ2(x)、hθ3(x)。
拿第一个二分类器为例,就是给定
x
x
x和
θ
\theta
θ,输出
y
=
1
y=1
y=1的概率,那第二个而分类器就是给定
x
x
x和
θ
\theta
θ,输出
y
=
2
y=2
y=2的概率,以及第三个二分类器,给定
x
x
x和
θ
\theta
θ,输出
y
=
3
y=3
y=3的概率。在预测某个具体问题时,我们就向这三个分类器都输入
x
x
x和
θ
\theta
θ,然后取
h
i
h^i
hi最高的那个,因为输出的概率所以就可以确定
y
y
y的值了。
比如说
h
θ
1
(
x
)
h^1_\theta(x)
hθ1(x)的概率最高那么就可以确定
y
=
1
y=1
y=1。