从线性回归到线性分类,通过激活函数或者降维来实现。
线性回归函数 f ( w , b ) = w T x + b f(w,b)=w^Tx+b f(w,b)=wTx+b经过激活函数作用 y = f ( w T x + b ) y=f(w^Tx+b) y=f(wTx+b)作用后变成硬分类问题 y ϵ { 0 , 1 } y\epsilon \left \{0,1 \right \} yϵ{0,1}或者变成软分类问题 y ϵ [ 0 , 1 ] , y\epsilon [0,1], yϵ[0,1],函数 f f f就称为激活函数, f − 1 f^{-1} f−1称为 l i n k f u n c t i o n , link function, linkfunction,
硬分类代表模型:感知机,线性判别分析
软分类代表模型:高斯判别分析(生成式模型),逻辑回归(判别式模型)
样本集: { ( x i , y i ) } i = 1 N \left \{ (x_i,y_i)\right \}_{i=1} ^N {(xi,yi)}i=1N
感知机思想:错误驱动。给定一个初始的分类平面 w T x , w^Tx, wTx,再一步步移动这个平面使得被错误分类的点越来越少。被错误分类的集合用D表示
模型: f ( x ) = s i g n ( w T x ) , x ϵ R P , w ϵ R P , f(x)=sign(w^Tx),x\epsilon R^P,w\epsilon R^P, f(x)=sign(wTx),xϵRP,wϵRP,其中当
w T x ≥ 0 , s i g n ( w T x ) = 1 ; w T x < 0 , s i g n ( w T x ) = 0 w^Tx \geq 0,sign(w^Tx)=1;w^Tx < 0,sign(w^Tx)=0 wTx≥0,sign(wTx)=1;wTx<0,sign(wTx)=0
策略定义为被错误分类的点的个数
策略: l o s s f u n c t i o n : L ( w ) = ∑ i = 1 N I { y i w T x i < 0 } , loss function:L(w)=\sum_{i=1} ^N I\left \{ y_iw^Tx_i<0 \right \}, lossfunction:L(w)=∑i=1NI{yiwTxi<0},也就是当 y i w T x i < 0 y_iw^Tx_i<0 yiwTxi<0时样本是被错误分类的。
通俗点理解就是 w T x i > 0 , y i = 1 → y i w T x i > 0 , w^Tx_i>0,y_i=1\rightarrow y_iw^Tx_i>0, wTxi>0,yi=1→yiwTxi>0,分类正确,反之分类错误。然而 L ( w ) L(w) L(w)是不可导的,那么这个 l o s s f u n c t i o n loss function lossfunction就需要进行改进。虽然 L ( w ) L(w) L(w)是不可导的,但是 y i w T x i y_iw^Tx_i yiwTxi是可导的。
因此改进之后的 l o s s f u n t i o n loss funtion lossfuntion是这样: L ( w ) = ∑ x i ϵ D − y i w T x i , L(w)=\sum_{x_i\epsilon D}-y_iw^Tx_i, L(w)=∑xiϵD−yiwTxi,
对 w w w求偏导: ▽ w L = − y i x i \bigtriangledown _wL=-y_ix_i ▽wL=−yixi
接下来算法只需用随机梯度下降法就能求出来了。
算法:SGD
w ( t + 1 ) ← w t + λ ▽ w L w^{(t+1)}\leftarrow w^{t}+\lambda \bigtriangledown _wL w(t+1)←wt+λ▽wL
当然,上述的感知机算法都是基于数据线性可分为前提
样本集: { ( x i , y i ) } i = 1 N , x i ϵ R p , y i ϵ { c 1 = 1 , c 2 = − 1 } \left \{ (x_i,y_i)\right \}_{i=1} ^N,x_i\epsilon R^p,y_i\epsilon\left\{ c_1=1,c_2=-1 \right \} {(xi,yi)}i=1N,xiϵRp,yiϵ{c1=1,c2=−1}
x c 1 = { x i ∣ y i = + 1 } , x c 2 = { x i ∣ y i = − 1 } x_{c_1}=\left \{x_i|y_i=+1 \right \},x_{c_2}=\left \{x_i|y_i=-1 \right \} xc1={xi∣yi=+1},xc2={xi∣yi=−1}
令集合 x c 1 = N 1 , x c 2 = N 2 , x_{c_1}=N_1,x_{c_2}=N_2, xc1=N1,xc2=N2,所以 N 1 + N 2 = N N_1+N_2=N N1+N2=N
思想:类内小,类间大
如图所示:
同类的数据间隔尽量小(类内方差尽量小),而不同类数据星星和圈圈之间的距离尽量大(类间大)。
我们投影的方向是 w , w, w,也就是超平面对应的法向量。
点到平面的投影的线为 z , z i = w T x i z,z_i=w^Tx_i z,zi=wTxi
所以不同类的均值可以表示出来:
那么类间的距离就可以用 ( z ˉ 1 − z ˉ 2 ) 2 (\bar z_1-\bar z_2)^2 (zˉ1−zˉ2)2表示;
类内的距离就用 S 1 + S 2 S_1+S_2 S1+S2表示。
那么为了达到我们的目的,也就是类内小,类间大,目标函数可以定义如下:
令:
化简我们的 J ( w ) J(w) J(w)表达式,可得:
这里的 S b S_b Sb就是类间方差, S w S_w Sw是类内方差。
对w求偏导,令 ∂ J ( w ) ∂ w = 0 , \frac{\partial J(w)}{\partial w}=0, ∂w∂J(w)=0,求得:
由于我们只关心 w w w的方向而不管其大小,那么 w ∝ S w − 1 ( x ˉ c 1 − x ˉ c 2 ) w \propto S_w^{-1}(\bar x_{c_1}-\bar x_{c_2}) w∝Sw−1(xˉc1−xˉc2);如果 S w − 1 S_w^{-1} Sw−1是个对角矩阵或者单位矩阵,那么 w ∝ ( x ˉ c 1 − x ˉ c 2 ) w \propto (\bar x_{c_1}-\bar x_{c_2}) w∝(xˉc1−xˉc2)
样本集: { ( x i , y i ) } i = 1 N , x i ϵ R p , y i ϵ { 0 , 1 } \left \{ (x_i,y_i)\right \}_{i=1} ^N,x_i\epsilon R^p,y_i\epsilon\left\{ 0,1 \right \} {(xi,yi)}i=1N,xiϵRp,yiϵ{0,1}
引入sigmoid function:
其函数图像如下:
代入有:
接下来用极大似然估计求解 w ^ = a r g m a x w l o g P ( Y ∣ X ) \hat{w}=\underset w {argmax}logP(Y|X) w^=wargmaxlogP(Y∣X)就可以了。
样本集: { ( x i , y i ) } i = 1 N , x i ϵ R p , y i ϵ { 0 , 1 } \left \{ (x_i,y_i)\right \}_{i=1} ^N,x_i\epsilon R^p,y_i\epsilon\left\{ 0,1 \right \} {(xi,yi)}i=1N,xiϵRp,yiϵ{0,1}
我们知道对于概率判别模型,我们可以直接求y值进行分类;而概率生成模型则是通过比较y=0和y=1的大小进行判断,根据贝叶斯公式 P ( y ∣ x ) = P ( x ∣ y ) P ( y ) P ( x ) P(y|x)=\frac{P(x|y)P(y)}{P(x)} P(y∣x)=P(x)P(x∣y)P(y)我们知道,概率生成模型和分母项 P ( x ) P(x) P(x)无关,所以可以对联合概率建模 P ( y ∣ x ) ∝ P ( x ∣ y ) P ( y ) , P(y|x)\propto P(x|y)P(y), P(y∣x)∝P(x∣y)P(y),也就是后验=似然*先验。
模型: y ^ = a r g m a x y ϵ { 0 , 1 } P ( y ∣ x ) = a r g m a x y P ( y ) P ( x ∣ y ) \hat y=\underset{y\epsilon\left \{0,1\right\}}{argmax}P(y|x)=\underset y {argmax}P(y)P(x|y) y^=yϵ{0,1}argmaxP(y∣x)=yargmaxP(y)P(x∣y)
那么y是服从伯努利分布 P ( y ) = ϕ y ( 1 − ϕ ) 1 − y P(y)=\phi^y(1-\phi)^{1-y} P(y)=ϕy(1−ϕ)1−y,
x服从于高斯分布, x ∣ y = 1 ∼ N ( μ 1 , ε ) y x|y=1 \sim N(\mu_1,\varepsilon )^y x∣y=1∼N(μ1,ε)y, { x i ∣ y i = 1 , i = 1 , . . . , N } \left \{x_i|y_i=1,i=1,...,N\right \} {xi∣yi=1,i=1,...,N},此集合作为 c 1 c_1 c1,集合内元素的总个数为 N 1 N_1 N1,对应的方差为 S 1 S_1 S1。
x ∣ y = 0 ∼ N ( μ 2 , ε ) y x|y=0 \sim N(\mu_2,\varepsilon )^y x∣y=0∼N(μ2,ε)y, { x i ∣ y i = 0 , i = 1 , . . . , N } \left \{x_i|y_i=0,i=1,...,N\right \} {xi∣yi=0,i=1,...,N},集合作为 c 2 c_2 c2,集合内元素的总个数为 N 2 N_2 N2,对应的方差为 S 2 S_2 S2。
P ( x i ∣ y i ) = N ( μ 1 , ε ) y ∗ N ( μ 2 , ε ) 1 − y P(x_i|y_i)=N(\mu_1,\varepsilon )^y*N(\mu_2,\varepsilon )^{1-y} P(xi∣yi)=N(μ1,ε)y∗N(μ2,ε)1−y
对数似然就能写成如下公式:
求得 ϕ ^ = N 1 N , \hat \phi=\frac{N_1}{N}, ϕ^=NN1,
ε ^ = 1 N ( N 1 S ! + N 2 S 2 ) \hat\varepsilon=\frac{1}{N}(N_1S_!+N_2S_2) ε^=N1(N1S!+N2S2)
μ ^ 1 = ∑ i = 1 N y i x i N 1 \hat\mu_1=\frac{\sum{i=1}{N}y_ix_i}{N_1} μ^1=N1∑i=1Nyixi
μ ^ 2 = ∑ i = 1 N y i x i N 2 \hat\mu_2=\frac{\sum{i=1}{N}y_ix_i}{N_2} μ^2=N2∑i=1Nyixi
样本集: { ( x i , y i ) } i = 1 N , x i ϵ R p , y i ϵ { 0 , 1 } \left \{ (x_i,y_i)\right \}_{i=1} ^N,x_i\epsilon R^p,y_i\epsilon\left\{ 0,1 \right \} {(xi,yi)}i=1N,xiϵRp,yiϵ{0,1}
思想:朴素贝叶斯假设,也叫条件独立性假设。
朴素贝叶斯是最简单的概率图(有向图)模型。
条件独立性假设如图所示:
也就是给定y的情况下,x1和x2相互独立。
做这个假设的目的就是为了简化运算,考虑高维情况。
朴素贝叶斯的目的也是给定x和y,判断其属于0还是1。
模型:
对于P(y),如果是二分类问题,其属于伯努利分布;如果是多分类问题,其属于categrial分布。
对于P(x|y),假定其遵循条件独立性假设。如果x是离散的,其属于categorical分布;如果x是连续的,其属于高斯分布。
求解可以直接用极大似然估计求解出来,在此就不做过多介绍了。