Logistic Regression
步骤
Step 1:Function Set:
f
w
,
b
(
x
)
=
P
w
,
b
(
C
1
∣
x
)
f_{w,b}(x)=P_{w,b}(C_1|x)
fw,b(x)=Pw,b(C1∣x) including all different
w
w
w and
b
b
b
f
w
,
b
(
x
)
=
σ
(
∑
i
w
i
⋅
x
i
+
b
)
f_{w,b}(x)=σ(\sum_{i}w_i·x_i+b)
fw,b(x)=σ(∑iwi⋅xi+b)Output:0~1
Step 2:Goodness of a Function
L
(
w
,
b
)
=
f
w
,
b
(
x
1
)
f
w
,
b
(
x
2
)
(
1
−
f
w
,
b
(
x
3
)
)
…
f
w
,
b
(
x
n
)
L(w,b)=f_{w,b}(x_1)f_{w,b}(x_2)(1-f_{w,b}(x_3))…f_{w,b}(x_n)
L(w,b)=fw,b(x1)fw,b(x2)(1−fw,b(x3))…fw,b(xn)
要求
w
∗
w^*
w∗和
b
∗
b^*
b∗使
L
(
w
,
b
)
L(w,b)
L(w,b)最大。
w
∗
,
b
∗
=
a
r
g
m
a
x
w
,
b
L
(
w
,
b
)
=
a
r
g
m
i
n
w
,
b
−
l
n
L
(
w
,
b
)
w^*,b^*=arg\ max_{w,b}L(w,b)=arg\ min_{w,b}-lnL(w,b)
w∗,b∗=arg maxw,bL(w,b)=arg minw,b−lnL(w,b)
这种方法类似于最大似然估计。
所以:
最后得出
−
l
n
L
(
b
,
w
)
=
∑
n
−
[
y
^
n
l
n
f
w
,
b
(
x
n
)
+
(
1
−
y
^
n
)
l
n
(
1
−
f
w
,
b
(
x
n
)
)
]
-lnL(b,w)=\sum_{n}{-[\widehat{y}_nlnf_{w,b}(x_n)+(1-\widehat{y}_n)ln(1-f_{w,b}(x_n))]}
−lnL(b,w)=∑n−[y
nlnfw,b(xn)+(1−y
n)ln(1−fw,b(xn))]
y
^
n
l
n
f
w
,
b
(
x
n
)
+
(
1
−
y
^
n
)
l
n
(
1
−
f
w
,
b
(
x
n
)
)
\widehat{y}_nlnf_{w,b}(x_n)+(1-\widehat{y}_n)ln(1-f_{w,b}(x_n))
y
nlnfw,b(xn)+(1−y
n)ln(1−fw,b(xn))叫做交叉熵(
C
r
o
s
s
e
n
t
r
o
p
y
Cross\ entropy
Cross entropy),可以衡量两个分布的接近程度。在上例中是在衡量两个伯努利分布的接近程度。
D i s t r i b u t i o n p : Distribution\ p: Distribution p:---------------------------------------- D i s t r i b u t i o n q : Distribution\ q: Distribution q:
p ( x = 1 ) = y ^ n p(x=1)=\widehat{y}_n p(x=1)=y n------------------------------------------- q ( x = 1 ) = f ( x n ) q(x=1)=f(x_n) q(x=1)=f(xn)
p ( x = 0 ) = 1 − y ^ n p(x=0)=1-\widehat{y}_n p(x=0)=1−y n------------------------------------- q ( x = 0 ) = 1 − f ( x n ) q(x=0)=1-f(x_n) q(x=0)=1−f(xn)
c r o s s e n t r o p y : H ( p , q ) = − ∑ x p ( x ) l n ( q ( x ) ) cross\ entropy:H(p,q)=-\sum_{x}{p(x)ln(q(x))} cross entropy:H(p,q)=−∑xp(x)ln(q(x))
Training data:
(
x
n
,
y
^
n
)
(x_n,\widehat{y}_n)
(xn,y
n)
y
^
n
\widehat{y}^n
y
n:1 for class 1,0 for class 2
L
(
f
)
=
∑
n
C
(
f
(
x
n
)
,
y
^
n
)
L(f)=\sum_{n}{C(f(x_n),\widehat{y}_n)}
L(f)=∑nC(f(xn),y
n)
C
r
o
s
s
e
n
t
r
o
p
y
:
C
(
f
(
x
n
)
,
y
^
n
)
=
−
[
y
^
n
l
n
f
(
x
n
)
+
(
1
−
y
^
n
)
l
n
(
1
−
f
(
x
n
)
)
]
Cross\ entropy:C(f(x_n),\widehat{y}_n)=-[\widehat{y}_nlnf(x_n)+(1-\widehat{y}_n)ln(1-f(x_n))]
Cross entropy:C(f(xn),y
n)=−[y
nlnf(xn)+(1−y
n)ln(1−f(xn))]
Step 3:Find the best function
f
w
,
b
(
x
)
=
σ
(
z
)
=
1
1
+
e
x
p
(
−
z
)
,
z
=
w
⋅
x
+
b
=
∑
i
w
i
⋅
x
i
+
b
f_{w,b}(x)=σ(z)=\frac{1}{1+exp(-z)},z=w·x+b=\sum_{i}{w_i·x_i+b}
fw,b(x)=σ(z)=1+exp(−z)1,z=w⋅x+b=∑iwi⋅xi+b
α
l
n
f
w
,
b
(
x
)
α
w
i
=
α
l
n
f
w
,
b
(
x
)
α
z
α
z
α
w
i
\frac{αlnf_{w,b}(x)}{αw_i}=\frac{αlnf_{w,b}(x)}{αz}\frac{αz}{αw_i}
αwiαlnfw,b(x)=αzαlnfw,b(x)αwiαz
其中 α l n σ ( z ) α z = 1 σ ( z ) α σ ( z ) α z = 1 σ ( z ) σ ( z ) ( 1 − σ ( z ) ) = 1 − σ ( z ) \frac{αlnσ(z)}{αz}=\frac{1}{σ(z)}\frac{ασ(z)}{αz}=\frac{1}{σ(z)}σ(z)(1-σ(z))=1-σ(z) αzαlnσ(z)=σ(z)1αzασ(z)=σ(z)1σ(z)(1−σ(z))=1−σ(z)
α
l
n
(
1
−
f
w
,
b
(
x
)
)
α
w
i
=
α
l
n
(
1
−
f
w
,
b
(
x
)
)
α
z
α
z
α
w
i
\frac{αln(1-f_{w,b}(x))}{αw_i}=\frac{αln(1-f_{w,b}(x))}{αz}\frac{αz}{αw_i}
αwiαln(1−fw,b(x))=αzαln(1−fw,b(x))αwiαz
所以,
−
l
n
L
(
w
,
b
)
α
w
i
=
∑
n
−
[
y
^
n
(
1
−
f
w
,
b
(
x
n
)
x
n
,
i
)
−
(
1
−
y
^
n
)
f
w
,
b
(
x
n
)
x
n
,
i
]
=
∑
n
−
(
y
^
n
−
f
w
,
b
(
x
n
)
)
x
n
,
i
\frac{-lnL(w,b)}{αw_i}=\sum_{n}{-[\widehat{y}_n(1-f_{w,b}(x_n)x_{n,i})-(1-\widehat{y}_n)f_{w,b}(x_n)x_{n,i}]}=\sum_{n}{-(\widehat{y}_n-f_{w,b}(x_n))x_{n,i}}
αwi−lnL(w,b)=∑n−[y
n(1−fw,b(xn)xn,i)−(1−y
n)fw,b(xn)xn,i]=∑n−(y
n−fw,b(xn))xn,i
w
i
←
w
i
−
η
∑
n
−
(
y
^
n
−
f
w
,
b
(
x
n
)
)
x
n
,
i
w_i\leftarrow w_i-η\sum_n{-(\widehat{y}_n-f_{w,b}(x_n))x_{n,i}}
wi←wi−η∑n−(y
n−fw,b(xn))xn,i
有趣的是,linear regression也是:
w
i
←
w
i
−
η
∑
n
−
(
y
^
n
−
f
w
,
b
(
x
n
)
)
x
n
,
i
w_i\leftarrow w_i-η\sum_n{-(\widehat{y}_n-f_{w,b}(x_n))x_{n,i}}
wi←wi−η∑n−(y
n−fw,b(xn))xn,i
为什么不用Square Error?
因为在距离很远和很近是, α L α w i \frac{αL}{αw_i} αwiαL都为0,区分不了,而且迭代的速度会很慢。
Discriminative vs. Generative
相同:
- 模型都是 P ( C 1 ∣ x ) = σ ( w ⋅ x + b ) P(C_1|x)=σ(w·x+b) P(C1∣x)=σ(w⋅x+b)
不同:
- discriminative:直接找w和b
- Generative:先找 μ 1 , μ 2 , Σ μ_1,μ_2,Σ μ1,μ2,Σ,则 w T = ( μ 1 − μ 2 ) T Σ − 1 w^T=(μ_1-μ_2)^TΣ^{-1} wT=(μ1−μ2)TΣ−1, b = − 1 2 ( μ 1 ) T ( Σ 1 ) − 1 μ 1 + 1 2 ( μ 2 ) T ( Σ 1 ) − 1 μ 2 + l n N 1 N 2 b=-\frac{1}{2}(μ_1)^T(Σ_1)^{-1}μ_1+\frac{1}{2}(μ_2)^T(Σ_1)^{-1}μ_2+ln\frac{N_1}{N_2} b=−21(μ1)T(Σ1)−1μ1+21(μ2)T(Σ1)−1μ2+lnN2N1
然而用两种方法得到的
w
w
w和
b
b
b会不一样,因为做了不同的假设。
一般是discriminative model更好,因为generative会自己脑补,用的是Naive Byes。
但如果training data很少,generative更好。
Multi-class Classification(3 classes as example)
刚才的例子都是二元分类的,但如果是多元分类做法会有所不同。
其中,
y
^
n
\widehat{y}_n
y
n是target值。
logistic regression的限制:分界线只是一条直线,这就会导致有的情况无法处理,如下图:
解决方案(Feature transformation):改变Feature Space,如:
[
x
1
x
2
]
→
[
x
1
′
x
2
′
]
\left[ \begin{matrix}x_1 \\x_2 \\\end{matrix} \right]\rightarrow \left[ \begin{matrix}x_1^{'} \\x_2^{'} \\\end{matrix} \right]
[x1x2]→[x1′x2′]
这只是一种简单的分类法,有时候要将多个model串联起来,前一个model的output作为后一个model的input,最终改变data的Feature。
从图中看出,每个model形同人脑细胞Neuron,所以这就是Neural Network Deep learning。