牛顿算法是近似求解方程的根的迭代算法,维基百科的介绍很不错。
把牛顿算法应用在上节logistic回归的最大似然估计中,收敛速度会比梯度上升高。最优解是对数似然函数一介偏导为0的点,那么迭代式: \[ \theta^{t+1} = \theta^{t} - H^{-1} \bigtriangledown_\theta \log\ell(\theta) \] 其中\( H^{-1} \)是\( \log\ell(\theta) \)的\( Hessian矩阵 \)的逆矩阵,\( Hessian矩阵 \)的元素: \[ H_{ij}=\frac{d\log\ell(\theta)} {d\theta_i d\theta_j} \qquad \bigtriangledown_\theta \log\ell(\theta) = (\frac{d\log\ell(\theta)}{d \theta_1},\frac{d\log\ell(\theta)}{d\theta_2} \ldots \frac{d\log\ell(\theta)}{d\theta_m} )^T \] 上式中的\( \bigtriangledown_\theta \)表示对\( \theta \)这个向量组求导,结果还是一个向量组。
上节所说的logistic回归,它的回归形式是从何而来?是如何被人们发现的?答案是,logistic回归包括线性回归都是广义线性回归的特例。广义线性回归的形式是:
\[ p(y, \eta) = b(y) * e^{(\eta^T T(y) - a(\eta))} \]
其中,\( \eta \)被称为自然参数(natural parameter),\( a(\eta) \)表示\( \eta \)的函数,而\( T(y) \)是称为充分统计量(sufficent statistic)。已经一组样本统计量的值,若样本的条件分布与参数\( \theta \)无关,则称该统计量是\( \theta \)的充分统计量。
广义线性回归的三个假设:
广义线性回归中的变量\( y \)服从指数分布簇,通过调整参数可以得到正态分布(线性回归)和伯努利分布(logistic回归)。
令\( p(y=1;\phi)=\phi \),则:
\[ p(y;\phi) = \phi^y (1-\phi)^{1-y}
= e^{ y\log\phi + (1-y)\log(1-\phi) }
= e^{ y\log \frac{\phi}{1-\phi} + \log(1-\phi)}
\]
令:
\[ \eta=\log \frac{\phi}{1-\phi} \qquad b(y)=1 \qquad T(y)=y \qquad a(\eta)=-\log(1-\phi) \];
代入便可得到指数分布的形式。对\( \eta=\log \frac{\phi}{1-\phi} \)变换得:
\[ \phi=\frac{1}{1+e^{-\eta}} \qquad a(\eta)=-\log(1-\phi)=\log(1+e^{-\eta}) \]
所以:
\[ h(x)=E[y|x;\theta]=p(y=1|x;\theta)=\phi=\frac{1}{1+e^{-\eta}}=\frac{1}{1+e^{-\theta^Tx}} \]
至此得出logistic回归的回归形式,其中最后一步用到了最后一个假设的\( \eta=\theta^Tx \)。
sofmax不知道怎么翻译,干脆连regression也不翻译了吧。
logistic回归中的\( y \)服从伯努利0-1分布,解决的是二分类问题,那么对于多分类问题构造一个多项式分布即可,softmax regression就是解决多分类问题的方法。假定目标变量共k类,当\( y \)属于第\( i \)类时\( y=i \)令:
\[ p(y=i)=\phi_i \qquad \qquad (i=1,2,3...k-1) \]
由于一共有k类,必有\( \sum_{i=1}^{k}\phi_i=1 \),因此\( \phi_k=1-\sum_{i=1}^{k-1}\phi_i \),只需前k-1个参数即可。
接下来是有趣的一步,对于\( y=i \),\( T(y) \neq y \),而是下列k-1维的向量:
\[ \begin{aligned}
T(1)=(1,0,0,0,\ldots,0)^T \\
T(2)=(0,1,0,0,\ldots,0)^T \\
T(3)=(0,0,1,0,\ldots,0)^T \\
\vdots \qquad \vdots \\
T(k-1)=(0,0,0,0,\ldots,1)^T \\
\end{aligned} \]
引入指示函数(indicator function):
\[ I(expression)=\left\{ \begin{array}{}
1 & \textrm{expression=TURE} \\
0 & \textrm{expression=FALSE}
\end{array} \right.
\]
即函数内部的表达式为真时函数值为1,否则为0。
用\( T(y)_i \)表示\( T(y) \)中的第\( i \)个元素,\( T(y) \)的构造规则是\( T(y)_i=I(y=i) \)。对于\( T(y) \),事实上只有\( T(i)_i=1 \),其他元素均为0。
现在开始推导softmax regression的形式,在上述参数的基础上易得:
\[ \begin{aligned}
p(y)&=\phi_1^{I(y=1)} \phi_2^{I(y=2)} \phi_3^{I(y=3)} \ldots \phi_k^{I(y=k)} \\
&= \phi_1^{T(y)_1} \phi_2^{T(y)_2} \phi_3^{T(y)_3} \ldots \phi_k^{1-\sum_{=1}^{k7-1}T(y)_i} \\
&= e^{ \sum_{i=1}^{k-1}T(y)_i \log\frac{\phi_i}{\phi_k} +\log\phi_k } \\
&= b(y)*e^{\big( \eta^TT(y)-a(\eta) \big)}\\
\end{aligned} \]
其中:
\[
b(y)=1 \qquad
\eta=(\log\frac{\phi_1}{\phi_k},\log\frac{\phi_2}{\phi_k},\log\frac{\phi_3}{\phi_k} \ldots \log\frac{\phi_{k-1}}{\phi_k})^T
\qquad a(\eta)=-\log\phi_k=-\log(1-\sum_{i=1}^{k-1}\phi_i)
\]
变换得:
\[ \begin{aligned}
\phi_k &= \frac{1}{ 1+e^{ \sum_{i=1}^{k-1}\eta_i } } \\
a(\eta) &= \log(1+e^{ \sum_{i=1}^{k-1}\eta_i }) \\
\phi_i &= \phi_k e^{\eta_i} =\frac{e^{\eta_i}} {1+e^{ \sum_{i=1}^{k-1}\eta_i }}
\end{aligned} \]
因此:
\[ h_\theta(x)= E[T(y)|x;\theta] =
E \left( \begin{array}{} T(y)_1 \\ T(y)_2 \\ T(y)_3 \\ \vdots \end{array} \right)=
E \left( \begin{array}{} \phi_1 \\ \phi_2 \\ \phi_3 \\ \vdots \end{array} \right)=
\frac {(e^{\eta_1},e^{\eta_2},e^{\eta_3},\ldots)^T}
{ 1+e^{\sum_{i=1}^{k-1}\eta_i} } =
\frac {(e^{\theta_1^Tx},e^{\theta_2^Tx},e^{\theta_3^Tx},\ldots)^T}
{ 1+e^{\sum_{i=1}^{k-1}\theta_i^Tx} }
\]
可以看出softmax regression最后得到\( y \)属于前k-1类的概率,可以计算出\( p(y=k) \)的概率并取概率最大的作为预测值。
最大似然法: \[ \ell(\theta)= \prod_{i=1}^{m}p(y^{(i)}|x^{(i)};\theta)=\sum_{i=1}^{m}e^{ \sum_{j=1}^{k-1}T(y^{(i)})_j \log\frac{\phi_j}{\phi_k} +\log\phi_k } \\ \log\ell(\theta)=\sum_{i=1}^{m} \big( \sum_{j=1}^{k-1}T(y^{(i)})_j\log\frac{\phi_j}{\phi_k} + \log\phi_k \big) \] 把 \( \phi_i = \frac {e^{\theta_i^Tx}} {1+e^{\sum_{j=1}^{k-1}\theta_j^Tx} } (i=1,2,3...k-1) \)和\( \phi_k=1-\sum_{i=1}^{k-1}\phi_i \)代入并用梯度上升或者牛顿算法求最大值即可。