01 再看线性回归
之前我们选择线性回归的时候,只是认为那些数据看上去很符合线性的样子,选择最小平方损失函数的时候,也是直接提出来的,没有考虑过为什么会是这个样子。接下来就从概率的角度来解释这些问题。
首先假设目标变量和输入与下面这个方程相关:
其中\varepsilon^{(i)} 是一个误差项(error term),来捕捉一些我们建模的时候故意或者无意忽略但是对于预测有影响的因素。有时候也可以作为一个随机的噪声(random noise)。“误差项(噪声项)”的引入允许我们获得参数值和预测的置信程度。
我们进一步假设\varepsilon^{(i)} 独立同分布且服从均值为0,方差为\sigma ^{2} 高斯分布,那么我们能够把这个假设写为\varepsilon^{(i)}\thicksim N(0,\sigma^{2}) ,即\varepsilon^{(i)} 的概率密度是:
那么根据高斯分布的性质,这时候的输出y也是一个随机变量。且有
,即:
这里提示一下,很重要的一个记号,在论文里面经常看见。
表示θ做参数,随机变量x^{(i)} 下y^{(i)} 的分布。 这里再提示一下,连续随机变量密度函数上的取值并不代表概率。连续随机变量在每一点上面的概率都是0。这是基础知识,别忘了。要是密度函数上面A点的值很大,B点的值很小。只能够说明在A点附近的可能性很大。也就是说,虽然在某点上的概率是多少是错的,但是我们还是需要在密度函数上面找最值,因为这个点“附近”的概率是最大的。
一般来说,我们感兴趣的并不是单个数据点的似然值,而是整个数据集上面所有点的似然值。要是有m个数据点,我们感兴趣的就是他们的联合条件密度,且因为各自独立,有:
上面那个记号就是联合条件密度的记号,不要在其中想太多。
写成向量更紧缩的形式:p(y|X;\theta) 其中,
同样也仅仅是写的更加简洁一点,也别在上面想太多。 令:
我们把这个函数叫做似然函数(likelihood function),是以θ为变量的函数。
通过前面的原理可以知道
本质就是把之前的几个公式代进去了而已,不用解释了。
这个公式的意思也很容易理解。怎么选择θ使得整个似然函数有最大的值,也就是让\theta^{T}x^{(i)} 更加接近于y^{(i)} 。这个地方有点难想,多理解几遍。
学过概率论的都知道,接下来要对数化一下,使得方程更加容易解出来。没有什么技巧,暴力推导如下:
我们的目的是要大化L(θ),那么只需要最小化
这个函数就行了。
对于这个函数是不是有点眼熟呢?就是之前的最小均方误差了。
因为这里是
这种形式,刚好和之前的是反的。所以在用梯度法求的时候,就不是梯度下降法了,而是梯度上升法。
到这里,对于线性回归的回顾就到这里了,这里引出了概率的方法来做机器学习的推导,对于理解下面的logistic的推导是有帮助的。
02
Logistic回归
1.背景
logistic回归是非常进经典的分类的方法,分类问题在第一个笔记有详细的介绍。他和回归的区别就是他的y值是离散的值,比如有3个类,分别是0类,1类和2类这样子。
我们这里讨论的分类问题主要是2分类问题,就是最后的结果只有两类,姑且定做0类(负类)和1类(正类)。那么y的值就为0或者1。
把hypotheses h_{\theta}(x) 改写成另外的形式
其中
这个函数就叫做logistic函数或者sigmoid函数
当的时候,sigmoid函数值为0.5.然后随着z的值越大,函数越趋向于1;随着x的值越小,x的值越趋向于0.
因为这样,那么当一个数据丢进sigmoid函数中得到的值大于0.5,那么就可以把它归为1类.反之,当得到的值小于0.5,那么就把它归为0类.
最终,不管你丢进去什么值,最终的结果就会在0和1之间。
然后这个函数的导数可以很容易推得
这个性质很重要,不管是在计算里面还是在证明里面。
2.梯度下降学习
首先我们假设
这个限制表示有且只会有两个结果。 上面的可以写为
假设我们提供的训练的例子都是独立同分布的。我们能够写出似然函数为:
对数似然函数为:
之前我们说过,我们想要得到参数的表达式,需要最大化(对数)似然函数。
如果你数学足够好的话,你也许能够手推上面这个似然函数的最值。但是,这几乎是没有意义的。
我们可以使用梯度上升的方法来逼近近似,这是计算机容易实现的,扩展性比手算要好的方式。
那么问题就转化为怎么算出某个\theta_{j} 的偏导。
暴力手推:
在上面的推导中,用到了前面提到的那个logistic函数导数的公式。 最终的梯度更新公式为
这个更新公式和线性回归的公式是差不多的。