机器学习 03-logisitc 回归

1.最大似然估计(maximum likelihood estimate)

在上篇说过,损失函数之所以选择误差的二阶平方和的形式,还有其他可用概率解释的原因,这里介绍最小二乘法的概率意义。 首先,在回归模型中加入误差项,并假设各样本的误差项独立同分布,且该分布为正态分布。 即:
\[ h_\theta(x)=\theta^Tx+\xi \\ \xi_i \sim N(0,\sigma^2) \qquad (i=1,2,3...m) \\ cov_{i \neq j}(\xi_i,\xi_j)=0 \]

\( \xi \)表示随机项,代表随机误差和其他对目标变量有影响但未引入的变量的影响。有了中心极限定律的支持,正态分布确实是对误差项分布的合理猜想;而零均值、等方差、相互独立的假设,是为了便于估计量性质以及预测精度的推导,事实上现实中的数据很难满足上述假设,但此时我们只是这样假设,建模后会对各假设进验证并作相应的修正。在上述假设下,每个样本的目标变量\( y \)也服从正态分布,但均值不等。 \[ y_{(i)} \sim N(\theta^Tx^{(i)},\sigma^2) \] 那么\( y \)的概率密度函数: \[ f(y) = \frac{1}{\sqrt{2\pi}\sigma} e ^{- \frac{(y-\theta^Tx)^2}{2\sigma^2} } \] 在频率学派看来,参数\( \theta \)是一个未知而又固定的值,我们只能在现有样本下对\( \theta \)进行估计,而变量\( X \)在上节说过是非随机变量,故\( y^{(i)} \)可以看作是对\( \xi_i \)的线性变换,变换后仍然服从正态分布。

由于目标变量服从正态分布,但分布的均值和方差都未知,对均值和方差两个参数的合理估计是选取两个参数使得在正态分布的前提下,抽到各样本中的\( y \)值的概率最大,这就是最大似然估计的思想。由于各目标变量相互独立,那么在最大似然估计的思想下,使得下述函数最大化: \[ \ell(y^{(1)},y^{(2)},y^{(3)}...y^{(m)};\theta) = (\sqrt{2\pi}\sigma)^{-m} e^{- \frac{\sum_{i=1}^m (y-\theta^Tx)^2}{2\sigma^2} } \] 上式中的\( \ell(\theta) \)是y的联合密度函数,在这里称为似然函数。暂时不考虑\( \sigma \),\( \ell(\theta) \)最大,等价\( e^{- \frac{\sum_{i=1}^m (y-\theta^Tx)^2}{2\sigma^2} } \),又等价于\( {\sum_{i=1}^m (y-\theta^Tx)^2} \)最小,于是,最大似然估计与最小二乘殊途同归。那么可以说最大似然,便是最小二乘法的概率意义。
不过注意最大似然估计是在正态分布的前提推导的,而最小二乘对分布形式无任何要求。
另一个值得注意的问题是,\( \ell(\theta) \)是y的联合密度函数,而最大似然估计是使得抽到各样本中的\( y \)值的概率最大,密度函数值与概率是两码事,二者并不相等,事实上密度函数值无任何意义,那么这里为什么使密度函数值最大?再细想一下,对于连续分布,变量取任一实数值的概率不是\( 0 \)么?只有在一个区间内才有意义。
说到这里不得不佩服Stanford学生的敏锐,因为当初我在学最大似然估计的时候一头雾水,直到很久之后才意识到这个问题,而Stanford的学生当场就提出了这个问题。这里Ng如其他老师一样并没有细讲,只说这需要很复杂的数学推导。在笔记最后放出我自己的理解。

2.局部加权回归(locally weighted regression)

首先来看一副图:
plot of chunk unnamed-chunk-1

上图中的点是由函数\( y=-x^2+10x+30 \)产生的41组样本,用线性回归拟合得到图中的红线,红线周围的灰色区域是预测值的置信区间,明显有很有值都在置信区间之外,用线性回归去拟合是不合适的。
俗话说,近朱者赤近墨者黑。假如我们仅仅需要对\( x=2.5 \)时的\( y \)进行预测,如果单对\( x\in[2,3] \)的样本作线性回归,得到图中的蓝色线条,发现拟合的很好。这表明在某些情况下,我们对一个数据点进行预测时,仅仅对该点紧邻的区域作回归比对全体数据作回归的效果要好。这就是局部回归的思想。

局部回归中,对某点进行预测仅仅选择其临近区域的样本,而其他样本则被浪费了,不免可惜,而且对该区域作回归时在临近区域内的样本对预测结果的影响是一样大的,一个更合理的想法是一个样本离某点越近,对该点的影响越大,这就引出了局部加权回归
具体的做法是,在损失函数中加入权数,离目标点越近,权数越大: \[ L(\theta) = \sum_{i=1}^{m} w^{(i)}( y^{(i)}-\theta^Tx^{(i)} )^2 \qquad \textrm{其中} w^{(i)} = e^{ - \frac {(x^(i)-x)^2} {2\alpha} } \] 其中,\( w^{(i)} \)的形式跟正态分布很相似,但二者之间没半毛钱关系,只是恰好这个形式是一个对称的曲线;\( \alpha \)是波长参数(bandwidth parameter),控制权数随距离下降的速度。明显的:

if \( \arrowvert{x^{(i)}-x}\arrowvert \to 0 \) then \( w^{(i)}\approx1 \)
if \( \arrowvert{x^{(i)}-x}\arrowvert \to \infty \) then \( w^{(i)}\approx0 \)

局部加权回归简称loess,其缺点在于:

3. logistic回归

在线性回归中,目标变量\( Y \)是连续变量,当\( Y \)是离散变量时,如根据肿瘤的大小判断是良性肿瘤还是恶性肿瘤,这类问题可归为分类问题。当肿瘤为良性时,记\( y=0 \);当肿瘤为恶性时,记\( y=1 \)。 来看一副图:

plot of chunk unnamed-chunk-2

在未加入图中(10, 1)这个样本之前,用线性回归得到图中蓝色的回归线,回归值小于0.5就判定为良性,大于0.5判定为恶性;加入样本(10, 1)之后得到图中红色的回归线,一个样本就使得回归线旋转很大的角度,仍然按照回归结果与0.5比较得出分类的结果的话会有两个样本被错误分类。事实上我们可能还有很多更大的恶性肿瘤样本,这会使得回归线旋转更大的角度,造成更多的错误分类。由此可见,对分类问题使用线性回归可能是个糟糕的注意。让我们来对线性回归做一个变化:
改变回归形式使得回归结果在[0,1]之间: \[ h_\theta(x)=\frac{1}{1+e^{-\theta^Tx}} \] 上式便是logistic回归的假设形式,可保证回归结果在[0,1]之间,并可变化为: \[ \log{\frac{h_\theta(x)}{1-h_\theta(x)} } = \theta^Tx \] logistic回归只是对线性回归的一个变形,但为何变成这个形式?且听下回分解。

记: \( p(y=1|x;\theta)=h_\theta(x) \qquad p(y=0|x;\theta)=1-h_\theta(x) \)
则: \( p(y|x;\theta)=h_\theta(x)^y*(1-h_\theta(x))^{1-y} \)
用最大似然法估计参数:
\[ \ell(y^{(1)},y^{(2)},y^{(3)}...y^{(m)};\theta)= \prod_{i=1}^{m} h_\theta(x^{(i)})^{y^{(i)}}*(1-h_\theta(x^{(i)})^{1-y^{(i)}} \] 两边各取对数: \[ \log \ell(\theta)=\sum_{i=1}^{m} \big( y^{(i)}\log{h_{\theta}(x)} +(1-y^{(i)})\log(1-h_{\theta}(x)) \big) \] 这里的对数似然函数虽然可以通过对\( \theta \)求导得到与线性回归一样漂亮的正规方程组: \[ \frac{d\ell(\theta)} {d\theta_j} = \sum_{i=1}^{m} \big(y^{(i)}-h_\theta(x^{(i)}) \big) x^{(i)} \qquad \textrm{for} \qquad j \in {1:m} \] 但由于loistic回归的回归形式,无法得到\( \theta \)的显示表达式。不过可以通过梯度下降的算法求解最大值,只需要把迭代式中的减号换成加号即可,其实改变一个符号就变成了梯度上升的算法。
上节讲过梯度算法只能得到局部最优解,因此在应用之前需要验证函数是否存在多个局部最优解。可以证明,对数似然函数的\( Hessian矩阵 \)是半负定矩阵,其一介偏导均为0的点一定是极大值点并且只存在这一个极大值,详细证明看这里。这说明梯度上升算法得到的解便是最优解,因为当年算法收敛时便说明函数各一介偏导均为0。

最后令预测值\( \hat{y}=argmax_y \big(p(y=1|x;\theta),p(y=0|x;\theta)\big) \),明显的:

if \( \theta^Tx>0 \qquad \) then \( \qquad p(y=1|x;\theta)>0.5>p(y=0|x;\theta) \to \hat{y}=1 \)
if \( \theta^Tx<0 \qquad \) then \( \qquad p(y=0|x;\theta)>0.5>p(y=1|x;\theta) \to \hat{y}=0 \)

最后让我们看看Logistic回归的效果,对图2中的样本做两组logistic回归,一组删去样本(10, 1),另一组保留。

plot of chunk unnamed-chunk-3

从上图看出,logistic回归的稳定性很好。其实在这个例子中,即便再加入几个样本如(15,1),(20,1),logistic回归仍然能够胜任。

附:最大似然估计中的概率与密度函数值

\[ f(y) = \frac{1}{\sqrt{2\pi}\sigma} e ^{- \frac{(y-\theta^{T}x)^2}{2\sigma^2} } \] 对于\( y=a \),计算在\( y \)落在\( a \)的邻域\( [a-\delta,a+\delta] \)中的概率,其中\( a \)是一个实数,\( \delta>0 \)。 \[ p(a-\delta < y < a+\delta) = \int_{a-\delta}^{a+\delta} \frac{1}{\sqrt{2\pi}\sigma} e ^{- \frac{(y-\theta^Tx)^2}{2\sigma^2} } \] 当\( \delta \to 0 \)时,便是\( p(y=a) \)的概率。对上式去掉无关项\( \frac{1}{\sqrt{2\pi}\sigma} \)并添加一项\( \frac{1}{\delta} \)都不影响使得\( p(y=a) \)最大的\( \theta \)值,求极限: \[ \lim_{\delta \to 0} \frac{ \int_{a-\delta}^{a+\delta} e^{- \frac{(y-\theta^Tx)^2}{2\sigma^2}} }{\delta} \stackrel{洛必达法则} {=} \lim_{\delta \to 0} e^{- \frac{(a+\delta-\theta^Tx)^2}{2\sigma^2}} -(-1)e^{- \frac{(a-\delta-\theta^Tx)^2}{2\sigma^2}} =2e^{- \frac{(a-\theta^Tx)^2}{2\sigma^2}}= 2\sqrt{2\pi}\sigma f(a) \] 其中\( f(a) \)便是\( y=a \)时的密度函数值。 由此可见,\( argmax_\theta p(y=a) \)与\( argmax_\theta f(a) \)是等价的。
以上不妥之处在于,添加了\( \frac{1}{\delta} \)项后又对\( \delta \to 0 \)取极限,不够严谨,甚至可能是错误的。