Logistic Regression
步骤
Step 1:Function Set:
fw,b(x)=Pw,b(C1∣x)f_{w,b}(x)=P_{w,b}(C_1|x)fw,b(x)=Pw,b(C1∣x) including all different www and bbb
fw,b(x)=σ(∑iwi⋅xi+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)=fw,b(x1)fw,b(x2)(1−fw,b(x3))…fw,b(xn)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∗=arg maxw,bL(w,b)=arg minw,b−lnL(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)
这种方法类似于最大似然估计。
所以:
最后得出−lnL(b,w)=∑n−[y^nlnfw,b(xn)+(1−y^n)ln(1−fw,b(xn))]-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−[ynlnfw,b(xn)+(1−yn)ln(1−fw,b(xn))]
y^nlnfw,b(xn)+(1−y^n)ln(1−fw,b(xn))\widehat{y}_nlnf_{w,b}(x_n)+(1-\widehat{y}_n)ln(1-f_{w,b}(x_n))ynlnfw,b(xn)+(1−yn)ln(1−fw,b(xn))叫做交叉熵(Cross entropyCross\ entropyCross entropy),可以衡量两个分布的接近程度。在上例中是在衡量两个伯努利分布的接近程度。
Distribution p:Distribution\ p:Distribution p:----------------------------------------Distribution q:Distribution\ q:Distribution q:
p(x=1)=y^np(x=1)=\widehat{y}_np(x=1)=yn-------------------------------------------q(x=1)=f(xn)q(x=1)=f(x_n)q(x=1)=f(xn)
p(x=0)=1−y^np(x=0)=1-\widehat{y}_np(x=0)=1−yn-------------------------------------q(x=0)=1−f(xn)q(x=0)=1-f(x_n)q(x=0)=1−f(xn)
cross entropy:H(p,q)=−∑xp(x)ln(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:(xn,y^n)(x_n,\widehat{y}_n)(xn,yn)
y^n\widehat{y}^nyn:1 for class 1,0 for class 2
L(f)=∑nC(f(xn),y^n)L(f)=\sum_{n}{C(f(x_n),\widehat{y}_n)}L(f)=∑nC(f(xn),yn)
Cross entropy:C(f(xn),y^n)=−[y^nlnf(xn)+(1−y^n)ln(1−f(xn))]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),yn)=−[ynlnf(xn)+(1−yn)ln(1−f(xn))]
Step 3:Find the best function
fw,b(x)=σ(z)=11+exp(−z),z=w⋅x+b=∑iwi⋅xi+bf_{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
αlnfw,b(x)αwi=αlnfw,b(x)αzαzαwi\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
其中αlnσ(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)
αln(1−fw,b(x))αwi=αln(1−fw,b(x))αzαzαwi\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
所以,−lnL(w,b)αwi=∑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\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−[yn(1−fw,b(xn)xn,i)−(1−yn)fw,b(xn)xn,i]=∑n−(yn−fw,b(xn))xn,i
wi←wi−η∑n−(y^n−fw,b(xn))xn,iw_i\leftarrow w_i-η\sum_n{-(\widehat{y}_n-f_{w,b}(x_n))x_{n,i}}wi←wi−η∑n−(yn−fw,b(xn))xn,i
有趣的是,linear regression也是:wi←wi−η∑n−(y^n−fw,b(xn))xn,iw_i\leftarrow w_i-η\sum_n{-(\widehat{y}_n-f_{w,b}(x_n))x_{n,i}}wi←wi−η∑n−(yn−fw,b(xn))xn,i
为什么不用Square Error?
因为在距离很远和很近是,αLαwi\frac{αL}{αw_i}αwiαL都为0,区分不了,而且迭代的速度会很慢。
Discriminative vs. Generative
相同:
- 模型都是P(C1∣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,Σ,则wT=(μ1−μ2)TΣ−1w^T=(μ_1-μ_2)^TΣ^{-1}wT=(μ1−μ2)TΣ−1,b=−12(μ1)T(Σ1)−1μ1+12(μ2)T(Σ1)−1μ2+lnN1N2b=-\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
然而用两种方法得到的www和bbb会不一样,因为做了不同的假设。
一般是discriminative model更好,因为generative会自己脑补,用的是Naive Byes。
但如果training data很少,generative更好。
Multi-class Classification(3 classes as example)
刚才的例子都是二元分类的,但如果是多元分类做法会有所不同。
其中,y^n\widehat{y}_nyn是target值。
logistic regression的限制:分界线只是一条直线,这就会导致有的情况无法处理,如下图:
解决方案(Feature transformation):改变Feature Space,如:[x1x2]→[x1′x2′]\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。