Machine Learning Notes Ⅳ

Newton Method

牛顿方法主要用于求函数零点。
对于(y=f( heta))来说,基本思想就是先假设一个初始解,每次求出解所在位置的切线,将解移动到切线与( heta)轴的交点处。
图片加载失败
由斜率的定义我们可以推出

[egin{align*} f'( heta)&=frac{f( heta)}{Delta} \ Delta&=frac{f( heta)}{f'( heta)} \ end{align*} ]

又因为( heta:= heta-Delta),所以有( heta:= heta - frac{f( heta)}{f'( heta)})
对于一部分回归模型,我们可以把最大化对数似然率变成求对数似然率的导数的零点,从而使用牛顿方法。迭代方式就是( heta:= heta-frac{f'( heta)}{f''( heta)})
在一般化的情况下,( heta)会是一个向量。所以( heta:= heta-H^{-1} abla_{ heta}I)
其中(I)是目标函数;(H)为Hessian矩阵,满足(H_{ij}=frac{partial^2 I}{partial heta_i partial heta_j}),可以把它看作是二阶偏导的矩阵。可以直接看作( heta)减去一阶偏导除以二阶偏导。
牛顿方法在逼近解时可以达到二次收敛,也就是每次迭代可以使解的有效数字加倍。
牛顿方法的优点就是收敛快。但当特征数目较多时,求Hessian矩阵的逆会比较耗费时间。

Generalized Linear Models

目前已有的两种建模思路:

  1. (yin mathbb{R}),我们假设(y)满足高斯分布,从而得到了基于最小二乘的线性回归。
  2. (yin lbrace 0,1 brace),我们假设(y)满足伯努利分布,从而得到了Logistic Regression。

伯努利分布与高斯分布的概率函数为:

[egin{align*} &Bernoulli(phi):;P(y=1;phi)=phi \ &N(mu,sigma^2):;P(x;mu,sigma)=frac{1}{sqrt{2pi}sigma}exp(-frac{(x-mu)^2}{2sigma^2}) \ end{align*} ]

其实他们都属于同一类分布,这类分布叫指数分布族。如果一种分布的概率函数可以写成以下形式,那么他就属于指数分布族。

[P(y;eta)=b(y)*exp(eta^TT(y)-a(eta)) ]

  • (eta)是自然参数,与分布的具体情况有关。例如高斯分布中的均值(mu)
  • (T(y))是充分统计量,只与分布的种类有关,它用来充分的描述一个随机变量。例如对于(phi)值任意的所有伯努利分布都有(T(y)=y)。因为对于伯努利分布来说,它的随机变量取值只能为(0)(1),对于一种(y)的取值的充分统计就是它等于(0)还是(1),所以(T(1)=1,\,T(0)=0),也就是(T(y)=y)。在大部分指数分布族中,(T(y)=y)

验证伯努利分布与高斯分布属于指数分布族
对于(Ber(phi))

[egin{align*}P(y;phi)&=phi^y(1-phi)^{1-y} \ &=exp(ln{(phi^y(1-phi)^{1-y})}) \ &=exp(yln{phi}+(1-y)ln{(1-phi)}) \ &=exp(y(ln{phi}-ln{(1-phi)})+ln{()1-phi}) \ &=exp(yln{frac{phi}{1-phi}}+ln{(1-phi)}) \ end{align*} ]

可以发现(b(y)=1,\,eta=ln{frac{phi}{1-phi}},\,a(eta)=ln{(1-phi)})。可以推出(phi=frac{1}{1+e^{-eta}}),所以(a(eta)=ln{(1+e^{-eta})})

对于(N(mu,sigma^2)),因为我们要求的与随机变量的期望有关,而(sigma)的取值并不影响期望,所以在这里我们只考虑(mu)为参数,将(sigma)视为1。

[egin{align*} P(y;mu)&=frac{1}{sqrt{2pi}}exp(-frac{(y-mu)^2)}{2}) \ &=frac{1}{sqrt{2pi}}exp(-frac{1}{2}y^2-frac{1}{2}mu^2+ymu) \ &=frac{1}{sqrt{2pi}}exp(-frac{1}{2}y^2)exp(mu y-frac{1}{2}mu^2) \ end{align*} ]

可以发现(b(y)=frac{1}{sqrt{2pi}}exp(-frac{1}{2}y^2),\,eta=mu,\,T(y)=y,\,a(eta)=-frac12mu^2)。可以推出(mu=eta),所以(a(eta)=-frac12eta^2)

广义线性模型的一般方法

  1. 假设(ymid x; heta sim ExpFamily(eta))
  2. 目的是:给定(x),输出(E[T(y)mid x]),也就是在参数为(x)时,(y)的充分统计量的期望。
  3. 设计决策:假设输入特征与(eta)的关系,(eta= heta^Tx)。(这里(eta)是一个实数,一般化的情况下,(eta_i= heta_i^Tx),可以把(eta)看作一个向量,( heta)就是一种将(x)变成(eta)的线性变换)

伯努利分布的推导
首先假设(ymid x; heta sim ExpFamily(eta))
对于给定的(x, heta),我们的输出为

[egin{align*} h_ heta(x)&=E[T(y)mid x; heta] \ \ &=E[ymid x; heta] \ \ &=phi \ &=cfrac{1}{1+e^{-eta}} \ &=cfrac{1}{1+e^{- heta^Tx}} \ end{align*} ]

这样,我们就得到了Logistic回归的函数形式。

正则响应函数与正则关联函数
定义(g(eta)=E[y;eta]),将(g(eta))称为正则响应函数,它将(eta)(y)的期望联系了起来。
另外将({g(eta)}^{-1})称为正则关联函数。

多项式分布的推导
多项式分布是伯努利分布的推广,在多项式分布中(yin lbrace 1,2,ldots,k brace)
多项式分布的参数应该有(phi_1,phi_2,ldots,phi_k),其中(P(y=i)=phi_i)
但是,由概率和为1可得:(phi_k=1-(phi_1+phi_2+cdots+phi_{k-1}))
所以一个(y)(k)个取值的多项式分布,它的实际参数应该有(k-1)个,分别是(phi_1,ldots,phi_{k-1})
考虑对于(y)的一个取值来说,它的充分统计量应该是什么。显然应该是(y)的取值,考虑到如果令(T(y)=y)(T(y))的期望没有实际意义,所以我们令

[T(1)=egin{bmatrix} 1 \ 0 \ vdots \ 0 \ end{bmatrix}; T(2)=egin{bmatrix} 0 \ 1 \ vdots \ 0 \ end{bmatrix}; T(k-1)=egin{bmatrix} 0 \ 0 \ vdots \ 1 \ end{bmatrix}; T(k)=egin{bmatrix} 0 \ 0 \ vdots \ 0 \ end{bmatrix};; in mathbb{R}^{k-1} ]

这时(T(y))的期望可以代表(y)分别取(k-1)种值的概率。
我们再定义指示函数(1{state})。其中若(state)为真,则取值为(1);若(state)为假,则取值为(0)
(T(y)_i)(T(y))(i)维的取值,那么(T(y)_i=1{y=i})

所以有

[egin{align*} P(y)&=phi_1^{1lbrace y=1 brace} phi_2^{1lbrace y=2 brace} cdots phi_k^{1lbrace y=k brace} \ \ &=phi_1^{T(y)_1} phi_2^{T(y)2} cdots phi_k^{1-sum{i=1}^{k-1}{T(y)_i}} \ \ &=exp(T(y)_1ln{phi_1}+T(y)_2ln{phi_2}+cdots+(1-sum_{i=1}^{k-1}{T(y)_i})ln{phi_k}) \ \ &=exp(T(y)_1(ln{phi_1}-ln{phi_k})+T(y)_2(ln{phi_2}-ln{phi_k})+cdots+ln{phi_k}) \ \ &=exp(T(y)_1ln{frac{phi_1}{phi_k}}+T(y)_2ln{frac{phi_2}{phi_k}}+cdots+ln{phi_k}) \ end{align*} ]

可以看出:(eta=[ln{frac{phi_1}{phi_k}},ln{frac{phi_2}{phi_k}},cdots,ln{frac{phi_{k-1}}{phi_k}}];),(;a(eta)=ln{phi_k})
由第一个等式可推出(phi_i=cfrac{e^{eta_i}}{1+sum_{j=1}^{k-1}{e^{eta_j}}})

所以我们的输出函数

[h_ heta(x)=E[T(y)mid x; heta]=egin{bmatrix} phi_1 \ phi_2 \ vdots \ phi_{k-1} \ end{bmatrix}=egin{bmatrix} cfrac{e^{eta_1}}{1+sum_{j=1}^{k-1}{e^{eta_j}}} \ cfrac{e^{eta_2}}{1+sum_{j=1}^{k-1}{e^{eta_j}}} \ vdots \ cfrac{e^{eta_{k-1}}}{1+sum_{j=1}^{k-1}{e^{eta_j}}} \ end{bmatrix}=egin{bmatrix} cfrac{e^{ heta_1^Tx}}{1+sum_{j=1}^{k-1}{e^{ heta_j^Tx}}} \ cfrac{e^{ heta_2^Tx}}{1+sum_{j=1}^{k-1}{e^{ heta_j^Tx}}} \ vdots \ cfrac{e^{ heta_{k-1}^Tx}}{1+sum_{j=1}^{k-1}{e^{ heta_j^Tx}}} \ end{bmatrix} ]

这样,我们就得到了当目标满足多项式分布时,应该使用的函数形式。我们把这种回归称为Softmax回归,是Logistic的推广。

同样我们也要对它进行最大似然估计:

[egin{align*} L( heta)&=prod_{i=1}^{m}{P(y^{(i)}mid x^{(i)}; heta)} \ &=prod_{i=1}^m{ {left(cfrac{e^{ heta_1^Tx^{(i)}}}{1+sum_{j=1}^{k-1}{e^{ heta_j^Tx^{(i)}}}} ight)}^{1lbrace y^{(i)}=1 brace} * cdots * {left( 1- sum_{l=1}^{k-1}{cfrac{e^{ heta_l^Tx^{(i)}}}{1+sum_{j=1}^{k-1}{e^{ heta_j^Tx^{(i)}}}} } ight)}^{1lbrace y^{(i)}=k brace} }\ \ &=prod_{i=1}^m{ cfrac{prod_{j=1}^{k-1}{e^{1lbrace y^{(i)}=j brace heta_j^Tx^{(i)}}}}{1+sum_{j=1}^{k-1}{e^{ heta_j^Tx^{(i)}}}} } end{align*} ]

同样令对数似然函数(l( heta)=ln{L( heta)}),可得

[l( heta)=left( sum_{i=1}^m{sum_{j=1}^{k-1}{1lbrace y^{(i)}=j brace heta_j^Tx^{(i)}}} ight) - sum_{i=1}^m{ln{left(1+sum_{j=1}^{k-1}{e^{ heta_j^Tx^{(i)}}} ight)}} ]

( heta_r)求偏导可得:

[cfrac{partial l( heta)}{partial heta_r}=sum_{i=1}^m{1lbrace y^{(i)}=j brace x^{(i)}} - sum_{i=1}^m{cfrac{e^{ heta_r^Tx^{(i)}}x^{(i)}}{1+sum_{j=1}^{k-1}{e^{ heta_j^Tx^{(i)}}}}} ]

之后我们就可以使用梯度下降来最优化( heta)了。

原文地址:https://www.cnblogs.com/LincHpins/p/6131821.html