要找几率 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
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 ) = σ ( ∑ 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之间的
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可以是任何值
定义损失函数(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))]
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的输出与目标相差越小越好
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
经过复杂的数学运算后,得到
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顺很多。
把Logistic Regression(逻辑回归)的方法称为Discriminative(判别模型)的方法
用Gaussian distribution(高斯分布)来描述Posterior Probability(后验概率)的方法是Generative(生成模型)的方法。
生成模型作了假设,而判别模型没有作假设。
普遍认为,生成模型的性能不如判别模型的性能。不过,生成模型也有优点:
把每一个Logistic Regression叫做一个Neuron,把这些Logistic Regression串起来做成的network就叫做Neural Network(内神经网络)
这就是Deep Learning