本文主要根据周志华的西瓜书以及李航的《统计学习方法》中提到的方法,结合自己的想法进行记录的文档,部分概念可能理解不够透彻表述会有问题。
对于观察到的样本集 { ( 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)<tg(w_1)+(1-t)g(w_2)
g(tw1+(1−t)w2)<tg(w1)+(1−t)g(w2)
从而有
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\ln(1+e^{w_1x_i})+(1-t)\ln(1+e^{w_2x_i})
ln(1+etwixi+(1−t)w2xi)<tln(1+ew1xi)+(1−t)ln(1+ew2xi)
从而
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
α前面的符号是正号,下凸函数才是我们通常意义的凸函数。