本文主要根据周志华的西瓜书以及李航的《统计学习方法》中提到的方法,结合自己的想法进行记录的文档,部分概念可能理解不够透彻表述会有问题。
对于观察到的样本集 { ( x i , y i ) } \{(x_i,y_i)\} {(xi,yi)}, i = 1 , . . . , N . x i ∈ R n , y i ∈ { 0 , 1 } i=1,...,N.x_i\in\R^n,y_i\in\{0,1\} i=1,...,N.xi∈Rn,yi∈{0,1},设这组数据的分布情况是满足二项逻辑斯蒂分布的,然后对他进行参数估计。设
P ( Y = 1 ∣ x ) = e w x 1 + e w x = π ( x ) P(Y=1|x)=\frac{e^{wx}}{1+e^{wx}}=\pi(x) P(Y=1∣x)=1+ewxewx=π(x)
P ( Y = 0 ∣ x ) = 1 1 + e w x = 1 − π ( x ) P(Y=0|x)=\frac{1}{1+e^{wx}}=1-\pi(x) P(Y=0∣x)=1+ewx1=1−π(x)
其中 w ∈ R n , w x w\in\R^n, wx w∈Rn,wx是两个n维向量的内积
将两个表达式写成一个,则有
P ( Y = y i ∣ X = x i ) = π ( x i ) y i ( 1 − π ( x i ) ) 1 − y i P(Y=y_i|X=x_i)=\pi(x_i)^{y_i}(1-\pi(x_i))^{1-y_i} P(Y=yi∣X=xi)=π(xi)yi(1−π(xi))1−yi
令 Z Z Z表示,“样本集的N个事件同时发生”,则有
P ( Z ) = P ( ( Y = y 1 ∣ X = x 1 ) ∩ ( Y = y 2 ∣ X = x 2 ) ∩ . . . ∩ ( Y = y n ∣ X = x n ) ) P(Z)=P((Y=y_1|X=x_1)\cap(Y=y_2|X=x_2)\cap...\cap(Y=y_n|X=x_n)) P(Z)=P((Y=y1∣X=x1)∩(Y=y2∣X=x2)∩...∩(Y=yn∣X=xn)),而对于这些观察到的样本集的数据,通常都是假设其满足独立同分布的条件的,独立则有事件交的概率等于概率的乘积,同分布即都服从同一组参数下的二项逻辑斯蒂分布。从而有
P ( Z ) = P ( ( Y = y 1 ∣ X = x 1 ) ∩ ( Y = y 2 ∣ X = x 2 ) ∩ . . . ∩ ( Y = y n ∣ X = x n ) ) P(Z)=P((Y=y_1|X=x_1)\cap(Y=y_2|X=x_2)\cap...\cap(Y=y_n|X=x_n)) P(Z)=P((Y=y1∣X=x1)∩(Y=y2∣X=x2)∩...∩(Y=yn∣X=xn))
= P ( Y = y 1 ∣ X = x 1 ) ⋅ ⋅ ⋅ P ( Y = y n ∣ X = x n ) =P(Y=y_1|X=x_1)\cdot\cdot\cdot P(Y=y_n|X=x_n) =P(Y=y1∣X=x1)⋅⋅⋅P(Y=yn∣X=xn)
而我们进行参数估计就是在这组已知的观察数据的基础上,找到让观察数据出现,即事件 Z Z Z出现概率最大的那组参数。比如有一组参数 w 1 w_1 w1,得到 Z Z Z发生的概率是 p 1 p_1 p1,参数 w 2 w_2 w2得到 Z Z Z发生的概率是 p 2 p_2 p2,如果 p 1 > p 2 p_1>p_2 p1>p2,那么显然,参数 w 1 w_1 w1更加适合这组数据,即在参数 w 1 w_1 w1下,事件 Z Z Z更有可能发生。概念的问题理清后剩下的问题就是函数最值的问题了。
arg max w P ( Z ) : = ∏ i = 1 N P ( Y = y i ∣ X = x i ) \argmax\limits_{w}P(Z):=\prod\limits_{i=1}^{N}P(Y=y_i|X=x_i) wargmaxP(Z):=i=1∏NP(Y=yi∣X=xi)
= ∏ i = 1 N π ( x i ) y i ( 1 − π ( x i ) ) 1 − y i =\prod\limits_{i=1}^{N}\pi(x_i)^{y_i}(1-\pi(x_i))^{1-y_i} =i=1∏Nπ(xi)yi(1−π(xi))1−yi
表达式右边有指数乘积比较麻烦,可以在两边取对数。因为对数函数是单增的,所以参数 w ∗ w^* w∗使得 P ( Z ) P(Z) P(Z)达到最大值,那么其肯定也使 L p ( Z ) Lp(Z) Lp(Z)达到最大值。
L p ( Z ) = ∑ i = 1 N y i ln π ( x i ) + ( 1 − y i ) ln ( 1 − π ( x i ) ) Lp(Z)=\sum\limits_{i=1}^{N}y_i\ln\pi(x_i)+(1-y_i)\ln(1-\pi(x_i)) Lp(Z)=i=1∑Nyilnπ(xi)+(1−yi)ln(1−π(xi))
= ∑ i = 1 N y i ln π ( x i ) 1 − π ( x i ) + ln ( 1 − π ( x i ) ) =\sum\limits_{i=1}^{N}y_i\ln\frac{\pi(x_i)}{1-\pi(x_i)}+\ln(1-\pi(x_i)) =i=1∑Nyiln1−π(xi)π(xi)+ln(1−π(xi))
= ∑ i = 1 N y i ln e w x i − ln ( 1 + e w x ) =\sum\limits_{i=1}^{N}y_i\ln e^{wx_i}-\ln(1+e^{wx}) =i=1∑Nyilnewxi−ln(1+ewx)
= ∑ i = 1 N y i w x i − ln ( 1 + e w x i ) =\sum\limits_{i=1}^{N}y_iwx_i-\ln(1+e^{wx_i}) =i=1∑Nyiwxi−ln(1+ewxi)
上式是一个关于参数 w w w的函数,函数最值问题研究,无非就是求导考虑区间单调性,极值点。先求导
∂ L p ∂ w j = ∑ i = 1 N y i x i ( j ) − e w x i 1 + e w x i ⋅ x i ( j ) \frac{\partial Lp}{\partial w_j}=\sum\limits_{i=1}^{N}y_ix_i^{(j)}-\frac{e^{wx_i}}{1+e^{wx_i}}\cdot x_i^{(j)} ∂wj∂Lp=i=1∑Nyixi(j)−1+ewxiewxi⋅xi(j)
其中 x i ( j ) x_i^{(j)} xi(j)表示向量 x i x_i xi的第 j j j个分量。
化简得,上式
= ∑ i = 1 N y i x i ( j ) − π ( x i ) x i ( j ) =\sum\limits_{i=1}^{N}y_ix_i^{(j)}-\pi(x_i)x_i^{(j)} =i=1∑Nyixi(j)−π(xi)xi(j)
= ∑ i = 1 N ( y i − π ( x i ) ) x i ( j ) =\sum\limits_{i=1}^{N}(y_i-\pi(x_i))x_i^{(j)} =i=1∑N(yi−π(xi))xi(j)
令上式等于0,即可求出 w w w,但有两个问题,
1.表达式有线性部分,有指数部分,妥妥的超越方程,似乎没有理论精确解(可能有,但我不会)
2.倒数为0的点是极值点没错,不知道是极大值还是极小值,而且极值点也不一定就是最值点。
先研究第二个问题,先从低维开始,当 w , x w,x w,x的维数都是一维的时候有
∂ L p ∂ w = ∑ i = 1 N ( y i − π ( x i ) ) x i \frac{\partial Lp}{\partial w}=\sum\limits_{i=1}^{N}(y_i-\pi(x_i))x_i ∂w∂Lp=i=1∑N(yi−π(xi))xi
从而有
∂ 2 L p ∂ w 2 = ∑ i = 1 N − x i 2 e w x i ( 1 + e w x i ) 2 < 0 \frac{\partial^2 Lp}{\partial w^2}=\sum\limits_{i=1}^N\frac{-x_i^2e^{wx_i}}{(1+e^{wx_i})^2}<0 ∂w2∂2Lp=i=1∑N(1+ewxi)2−xi2ewxi<0
函数 L p ( Z ) Lp(Z) Lp(Z)的二阶导恒小于0,说明一阶导函数是一个单调减函数,也就是说一阶导为0的点左边是恒大于0的,右边是恒小于0的,从而原函数 L p ( Z ) Lp(Z) Lp(Z)在零点左侧单调增(导函数在该区间恒正),右侧单调减,从而一阶导为0点为函数 L p ( Z ) Lp(Z) Lp(Z)在整个区间的最大值点。
当 w , x w,x w,x的维数是两维时,多元函数求最值通常用拉格朗日乘数法或者黑塞矩阵,这里先计算其黑塞矩阵为
[ ∑ i = 1 N − t ( x i ) ( x i ( 1 ) ) 2 ∑ i = 1 N − t ( x i ) x i ( 1 ) x i ( 2 ) ∑ i = 1 N − t ( x i ) x i ( 1 ) x i ( 2 ) ∑ i = 1 N − t ( x i ) ( x i ( 2 ) ) 2 ] \left[ \begin{matrix} \sum_{i=1}^N-t(x_i)(x_i^{(1)})^2& \sum_{i=1}^N-t(x_i)x_i^{(1)}x_i^{(2)}\\ \sum_{i=1}^N-t(x_i)x_i^{(1)}x_i^{(2)}&\sum_{i=1}^N-t(x_i)(x_i^{(2)})^2 \end{matrix} \right] [∑i=1N−t(xi)(xi(1))2∑i=1N−t(xi)xi(1)xi(2)∑i=1N−t(xi)xi(1)xi(2)∑i=1N−t(xi)(xi(2))2]
其中 t ( x i ) = e w x i ( 1 + e w x i ) 2 t(x_i)=\frac{e^{wx_i}}{(1+e^{wx_i})^2} t(xi)=(1+ewxi)2ewxi,恒大于0
x i ( 1 ) x_i^{(1)} xi(1)是 x i x_i xi的第一维数据
因为顺序主子式中
∑ i = 1 N − t ( x i ) ( x i ( 1 ) ) 2 < 0 \sum_{i=1}^N-t(x_i)(x_i^{(1)})^2<0 ∑i=1N−t(xi)(xi(1))2<0
∑ i = 1 N − t ( x i ) ( x i ( 1 ) ) 2 ⋅ ∑ i = 1 N − t ( x i ) ( x i ( 2 ) ) 2 − ( ∑ i = 1 N − t ( x i ) x i ( 1 ) x i ( 2 ) ) 2 \sum_{i=1}^N-t(x_i)(x_i^{(1)})^2\cdot\sum_{i=1}^N-t(x_i)(x_i^{(2)})^2-(\sum_{i=1}^N-t(x_i)x_i^{(1)}x_i^{(2)})^2 ∑i=1N−t(xi)(xi(1))2⋅∑i=1N−t(xi)(xi(2))2−(∑i=1N−t(xi)xi(1)xi(2))2
= ∑ i = 1 N ( t ( x i ) ( x i ( 1 ) ) 2 ) ⋅ ∑ i = i N ( t ( x i ) ( x i ( 2 ) ) 2 ) − ( ∑ i = 1 N ( t ( x i ) x i ( 1 ) ) ( t ( x i ) x i ( 2 ) ) ) 2 ≥ 0 ( 柯 西 不 等 式 ) =\sum_{i=1}^N(\sqrt{t(x_i)}(x_i^{(1)})^2)\cdot\sum_{i=i}^N(\sqrt{t(x_i)}(x_i^{(2)})^2)-(\sum_{i=1}^N(\sqrt{t(x_i)x_i^{(1)}})(\sqrt{t(x_i)}x_i^{(2)}))^2\ge0(柯西不等式) =∑i=1N(t(xi)(xi(1))2)⋅∑i=iN(t(xi)(xi(2))2)−(∑i=1N(t(xi)xi(1))(t(xi)xi(2)))2≥0(柯西不等式)
从而得出结论,该矩阵的负定的,所以,一阶导为0的点是极大值点。而 w w w的每个分量单独来看,其单调性一致,所以该极大值点也就是最大值点。这个结论当然可以推广至任意有限维。
已知 L p ( Z ) = f ( w ) = ∑ i = 1 N y i w x i − ln ( 1 + e w x i ) Lp(Z)=f(w)=\sum\limits_{i=1}^{N}y_iwx_i-\ln(1+e^{wx_i}) Lp(Z)=f(w)=i=1∑Nyiwxi−ln(1+ewxi)是一个关于自变量 w w w的函数,先证明这个函数是关于 w w w的多元上凸函数(凹函数),从定义出发
设对任意 w 1 , w 2 ∈ R n , t ∈ ( 0 , 1 ) w_1,w_2\in\R^n,t\in(0,1) w1,w2∈Rn,t∈(0,1),我们有
f ( t w 1 + ( 1 − t ) w 2 ) f(tw_1+(1-t)w_2) f(tw1+(1−t)w2)
= ∑ i = 1 N y i ( t w 1 + ( 1 − t ) w 2 ) x i − ln ( 1 + e ( t w 1 + ( 1 − t w 2 ) ) x i ) =\sum\limits_{i=1}^Ny_i(tw_1+(1-t)w_2)x_i-\ln(1+e^{(tw_1+(1-tw_2))x_i}) =i=1∑Nyi(tw1+(1−t)w2)xi−ln(1+e(tw1+(1−tw2))xi)
= t ∑ i = 1 N y i w 1 x i + ( 1 − t ) ∑ i = 1 N y i w 2 x i − ∑ i = 1 N ln ( 1 + e t w i x i + ( 1 − t ) w 2 x i ) =t\sum\limits_{i=1}^Ny_iw_1x_i+(1-t)\sum\limits_{i=1}^Ny_iw_2x_i-\sum\limits_{i=1}^N\ln(1+e^{tw_ix_i+(1-t)w_2x_i}) =ti=1∑Nyiw1xi+(1−t)i=1∑Nyiw2xi−i=1∑Nln(1+etwixi+(1−t)w2xi)
考虑函数 g ( x ) = ln ( 1 + e x ) g(x)=\ln(1+e^x) g(x)=ln(1+ex), g ′ ′ ( x ) = e x ( 1 + e x ) 2 > 0 g''(x)=\frac{e^x}{(1+e^x)^2}>0 g′′(x)=(1+ex)2ex>0为凸函数,由凸函数定义有
g ( t w 1 + ( 1 − t ) w 2 ) < t g ( w 1 ) + ( 1 − t ) g ( w 2 ) g(tw_1+(1-t)w_2)
从而有
ln ( 1 + e t w i x i + ( 1 − t ) w 2 x i ) < t ln ( 1 + e w 1 x i ) + ( 1 − t ) ln ( 1 + e w 2 x i ) \ln(1+e^{tw_ix_i+(1-t)w_2x_i})
从而
t ∑ i = 1 N y i w 1 x i + ( 1 − t ) ∑ i = 1 N y i w 2 x i − ∑ i = 1 N ln ( 1 + e t w 1 x i + ( 1 − t ) w 2 x i ) t\sum\limits_{i=1}^Ny_iw_1x_i+(1-t)\sum\limits_{i=1}^Ny_iw_2x_i-\sum\limits_{i=1}^N\ln(1+e^{tw_1x_i+(1-t)w_2x_i}) ti=1∑Nyiw1xi+(1−t)i=1∑Nyiw2xi−i=1∑Nln(1+etw1xi+(1−t)w2xi)
≥ t ∑ i = 1 N y i w 1 x i + ( 1 − t ) ∑ i = 1 N y i w 2 x i − ∑ i = 1 N t ln ( 1 + e w 1 x i ) + ( 1 − t ) ln ( 1 + e w 2 x i ) \ge t\sum\limits_{i=1}^Ny_iw_1x_i+(1-t)\sum\limits_{i=1}^Ny_iw_2x_i-\sum\limits_{i=1}^Nt\ln(1+e^{w_1x_i})+(1-t)\ln(1+e^{w_2x_i}) ≥ti=1∑Nyiw1xi+(1−t)i=1∑Nyiw2xi−i=1∑Ntln(1+ew1xi)+(1−t)ln(1+ew2xi)
= t f ( w 1 ) + ( 1 − t ) f ( w 2 ) =tf(w_1)+(1-t)f(w_2) =tf(w1)+(1−t)f(w2)
从而 f ( w ) f(w) f(w)是上凸函数,其黑塞矩阵为负定,所以一阶导零点处取得极大值。
凸函数极值点求解可以使用梯度下降法
由
∂ L p ∂ w j = ∑ i = 1 N ( y i − π ( x i ) ) x i ( j ) \frac{\partial Lp}{\partial w_j}=\sum\limits_{i=1}^{N}(y_i-\pi(x_i))x_i^{(j)} ∂wj∂Lp=i=1∑N(yi−π(xi))xi(j)
根据梯度下降法得到迭代公式为
w ( j ) = w ( j ) + α ∑ j = 1 N ( y i − π ( x i ) ) x i ( j ) w^{(j)}=w^{(j)}+\alpha\sum\limits_{j=1}^N(y_i-\pi(x_i))x_i^{(j)} w(j)=w(j)+αj=1∑N(yi−π(xi))xi(j)因为 L p Lp Lp是上凸,所以 α \alpha α前面的符号是正号,下凸函数才是我们通常意义的凸函数。