Logistic Regression
Step1:Function Set
目的:
要找几率
P
w
,
b
(
C
1
∣
x
)
Pw,b(C_1|x)
Pw,b(C1∣x)
若
P
w
,
b
(
C
1
∣
x
)
≥
0.5
Pw,b(C_1|x) \ge 0.5
Pw,b(C1∣x)≥0.5,输出为C1;
若
P
w
,
b
(
C
1
∣
x
)
<
0.5
Pw,b(C_1|x) \lt 0.5
Pw,b(C1∣x)<0.5,输出为C2。
若要用高斯分布,
P
w
,
b
(
C
1
∣
x
)
=
σ
(
z
)
Pw,b(C_1|x)=\sigma(z)
Pw,b(C1∣x)=σ(z)
[
σ
(
z
)
=
1
1
+
e
−
z
\sigma(z)=\frac{1}{1+e^{-z}}
σ(z)=1+e−z1]
把z带进
σ
(
z
)
\sigma(z)
σ(z)就得到几率
z
=
w
⋅
x
+
b
=
∑
i
w
i
x
i
+
b
z=w\cdot x+b=\sum_{i}w_ix_i+b
z=w⋅x+b=i∑wixi+b
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)
(下标为w和b的意思是f是受w和b的控制的)
f w , b ( x ) = P w , b ( C 1 ∣ x ) = σ ( z ) = 1 1 + e − z f_{w,b}(x)=P_{w,b}(C_1|x)=\sigma(z)=\frac{1}{1+e^{-z}} fw,b(x)=Pw,b(C1∣x)=σ(z)=1+e−z1
Logistic Regression
f
w
,
b
(
x
)
=
σ
(
∑
i
w
i
x
i
+
b
)
f_{w, b}(x)=\sigma(\sum_{i} w_{i} x_{i}+{b})
fw,b(x)=σ(i∑wixi+b)
他的输出通过signoid function,所以是介于0到1之间的
Linear Regression
f
w
,
b
(
x
)
=
∑
i
w
i
x
i
+
b
f_{w, b}(x)=\sum_{i} w_{i} x_{i}+b
fw,b(x)=i∑wixi+b
他的输出没有通过signoid function,所以他的output可以是任何值
Step2:Goodness of a Function
定义损失函数(LOSS)来评价模型好坏
w
∗
,
b
∗
=
arg max
w
,
b
L
(
w
,
b
)
=
arg min
w
,
b
(
−
l
n
L
(
w
,
b
)
)
w^*,b^*=\argmax_{w,b}L(w,b)=\argmin_{w,b}(-lnL(w,b))
w∗,b∗=w,bargmaxL(w,b)=w,bargmin(−lnL(w,b))
通过ln 将连乘变成连加,简化了计算机的计算
在计算机中,连乘后的数值容易溢出,变成连加后,数值不容易溢出。
−
l
n
L
(
w
,
b
)
=
∑
n
−
[
y
^
n
l
n
f
w
,
b
(
x
n
)
+
(
1
−
y
^
n
)
l
n
(
1
−
f
w
,
b
(
x
n
)
)
]
-lnL(w,b)=\sum_{n}-[\hat{y}^n lnfw,b(x^n)+(1-\hat{y}^n)ln(1-fw,b(x^n))]
−lnL(w,b)=n∑−[y^nlnfw,b(xn)+(1−y^n)ln(1−fw,b(xn))]
注:
∑
n
−
[
y
^
n
l
n
f
w
,
b
(
x
n
)
+
(
1
−
y
^
n
)
l
n
(
1
−
f
w
,
b
(
x
n
)
)
]
\sum_{n}-[\hat{y}^n lnfw,b(x^n)+(1-\hat{y}^n)ln(1-fw,b(x^n))]
∑n−[y^nlnfw,b(xn)+(1−y^n)ln(1−fw,b(xn))]
这一项是两个Bernoulli distribution(伯努利分布)的cross entropy(交叉熵)
若把Distribution p:
p
(
x
=
1
)
=
y
^
n
p(x=1)=\hat{y}^n
p(x=1)=y^n
p
(
x
=
0
)
=
1
−
y
^
n
p(x=0)=1-\hat{y}^n
p(x=0)=1−y^n
与Distribution q:
p
(
x
=
1
)
=
f
(
x
n
)
p(x=1)=f(x^n)
p(x=1)=f(xn)
p
(
x
=
0
)
=
1
−
f
(
x
n
)
p(x=0)=1-f(x^n)
p(x=0)=1−f(xn)
进行交叉熵运算(cross entropy)
H
(
p
,
q
)
=
−
∑
x
p
(
x
)
ln
(
q
(
x
)
)
H(p, q)=-\sum_{x} p(x) \ln (q(x))
H(p,q)=−∑xp(x)ln(q(x))
则算出的结果就是
−
[
y
^
n
l
n
f
w
,
b
(
x
n
)
+
(
1
−
y
^
n
)
l
n
(
1
−
f
w
,
b
(
x
n
)
)
]
-[\hat{y}^n lnfw,b(x^n)+(1-\hat{y}^n)ln(1-fw,b(x^n))]
−[y^nlnfw,b(xn)+(1−y^n)ln(1−fw,b(xn))]
定义function的好坏
Logistic Regression
Training Data:
(
x
n
,
y
^
n
)
(x^n,\hat{y}^n)
(xn,y^n)
y
^
n
\hat{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}), \hat{y}^{n})
L(f)=n∑C(f(xn),y^n)
他的loss是所有例子交叉熵的总和,也就是
x
n
与
y
^
n
x^n与\hat{y}^n
xn与y^n的交叉熵
希望function的输出与目标相差越小越好
Linear Regression
Training Data:
(
x
n
,
y
^
n
)
(x^n,\hat{y}^n)
(xn,y^n)
y
^
n
\hat{y}^n
y^n:a real number
L
(
f
)
=
1
2
∑
n
(
f
(
x
n
)
−
y
^
n
)
2
L(f)=\frac{1}{2} \sum_{n}(f(x^{n})-\hat{y}^{n})^{2}
L(f)=21n∑(f(xn)−y^n)2
Step3:Find the best function
经过复杂的数学运算后,得到
w
i
=
w
i
−
η
∑
n
−
(
y
^
n
−
f
w
,
b
(
x
n
)
)
x
i
n
w_i=w_i-\eta \sum_{n}-(\hat{y}^n-f_{w,b}(x^n))x_i^n
wi=wi−ηn∑−(y^n−fw,b(xn))xin
C
(
f
(
x
n
)
,
y
n
)
=
−
y
n
l
n
f
w
,
b
(
x
n
)
−
(
1
−
y
)
l
n
(
1
−
f
w
,
b
(
x
n
)
)
C(f(x^n),y^n)=-y^nlnfw,b(x^n)-(1-y)ln(1-fw,b(x^n))
C(f(xn),yn)=−ynlnfw,b(xn)−(1−y)ln(1−fw,b(xn))
Q:为什么logistic regression的损失函数不能和linear regression一样,选square error(平方误差)?
A:logistic regression + square error不容易得到很好的结果,而cross entropy容易得到很好的结果,会让training顺很多。
Discriminative v.s. Generative
把Logistic Regression(逻辑回归)的方法称为Discriminative(判别模型)的方法
用Gaussian distribution(高斯分布)来描述Posterior Probability(后验概率)的方法是Generative(生成模型)的方法。
生成模型作了假设,而判别模型没有作假设。
- 生成模型: P ( C 1 ∣ x ) = P ( C 1 ) P ( x ∣ C 1 ) P ( C 1 ) P ( x ∣ C 1 ) + P ( C 2 ) P ( x ∣ C 2 ) = σ ( z ) {P}({C}_{1} \mid {x})=\frac{{P}({C}_{1}) {P}({x} \mid {C}_{1})}{{P}({C}_{1}) {P}({x} \mid {C}_{1})+{P}({C}_{2}) {P}({x} \mid {C}_{2})}=\sigma({z}) P(C1∣x)=P(C1)P(x∣C1)+P(C2)P(x∣C2)P(C1)P(x∣C1)=σ(z)
- 判别模型:
z
=
(
μ
1
−
μ
2
)
T
Σ
−
1
x
−
1
2
(
μ
1
)
T
Σ
−
1
μ
1
+
1
2
(
μ
2
)
T
Σ
−
1
μ
2
+
ln
N
1
N
2
z=(\mu^{1}-\mu^{2})^{{T}} \Sigma^{-1} {x}-\frac{1}{2}(\mu^{1})^{{T}} \Sigma^{-1} \mu^{1}+\frac{1}{2}(\mu^{2})^{{T}} \Sigma^{-1} \mu^{2}+\ln \frac{{N}_{1}}{{~N}_{2}}
z=(μ1−μ2)TΣ−1x−21(μ1)TΣ−1μ1+21(μ2)TΣ−1μ2+ln N2N1
同样的数据,用生成模型和判别模型得到的w和b是不一样的。
普遍认为,生成模型的性能不如判别模型的性能。不过,生成模型也有优点:
- 因为假设了概率分布,所以需要的训练数据较少。
- 因为假设了概率分布,所以受噪声影响较小。
- 可以从其它资源处估算先验概率和类别独立概率。
Powerful Cascading Logistic Regression
把每一个Logistic Regression叫做一个Neuron,把这些Logistic Regression串起来做成的network就叫做Neural Network(内神经网络)
这就是Deep Learning