machine learning 04-Newton's method and generalised linear model

1.牛顿算法(Newton's Method)

牛顿算法是近似求解方程的根的迭代算法,维基百科的介绍很不错。

牛顿算法应用在上节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 \)这个向量组求导,结果还是一个向量组。

2.广义线性模型(generalised linear model)

上节所说的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回归)。

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 \)。

3.softmax regression

sofmax不知道怎么翻译,干脆连regression也不翻译了吧。

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 \)代入并用梯度上升或者牛顿算法求最大值即可。