天天看点

台大-林轩田老师-机器学习基石学习笔记10

这一堂课是主要讲的是逻辑回归(Logistic Regression)。但是这个回归问题在问题的执行上更像是个分类问题,但是有和分类问题不一样。按照老师的观点:

logistic regression是这样定义的

我们从要解决的问题是:

有一组病人的数据,我们需要根据下一位病人的病症来判断其是否患病。

变成了:

有一组病人的数据,我们需要预测他们在一段时间后患上心脏病的“可能性”,就是我们要考虑的问题。

那么问题来了:

通过二值分类,我们仅仅能够预测病人是否会患上心脏病,不同于此的是,现在我们还关心患病的可能性,即 f(x) = P(+1|x),取值范围是区间 [0,1]。

我们之前的计算bound也好计算回归式也好,那一定是会有大于1或者小于0的数值出现的呀。这时候怎么办呢?

其实我们转换一下思维:

我们能不能找一个映射关系,能够合理将bound通过权重计算得到的数值,经过元算得到一个[0,1]区间的值呢?

逻辑斯蒂回归选择的这个么个映射函数是S型的sigmoid 函数。

台大-林轩田老师-机器学习基石学习笔记10

s 取值范围是整个实数域,

f(x) 单调递增,0 <= f(x) <=1。

台大-林轩田老师-机器学习基石学习笔记10

于是整理一下,让他变成一个合理的h(x):

台大-林轩田老师-机器学习基石学习笔记10

回归方程出来就够了吗

答案是否定的我们还要知道Ein的表述,因为作为一个优秀的机器学习算法怎么能让Ein很大呢:

我们先看看我们的目标函数:

台大-林轩田老师-机器学习基石学习笔记10

我们知道:

当y = +1 时, P(y|x) = f(x);

当y = -1 时, P(y|x) = 1 - f(x).

在机器学习假设中,数据集D 是由f 产生的,我们可以按照这个思路,考虑f 和假设 h 生成训练数据D的概率。

下面这句话比较拗口,但是好多博主都这样理解:

训练数据的客观存在的,显然越有可能生成该数据集的假设h越大越好。所以此处用的是相乘(h的相乘)。

最后我们通过化简(数学家略过):

台大-林轩田老师-机器学习基石学习笔记10

再将θ换成我逻辑回归的回归函数:

得到

台大-林轩田老师-机器学习基石学习笔记10

这里补充:

来自GAN 的发展对于研究通用人工智能有什么意义? 的一句话

回到根源,什么是机器学习?一句话来概括就是,在训练过程中给予回馈,使得结果接近我们的期望。对于分类问题(classification),我们希望 loss 在接近 bound 以后,就不要再有变化,所以我们选择交叉熵(Cross Entropy)作为回馈;在回归问题(regression)中,我们则希望 loss 只有在两者一摸一样时才保持不变,所以选择点之间的欧式距离(MSE)作为回馈。损失函数(回馈)的选择,会明显影响到训练结果的质量,是设计模型的重中之重。这五年来,神经网络的变种已有不下几百种,但损失函数却寥寥无几。

逻辑回归的误差函数的梯度

梯度的概念是很常规的数学概念了,

台大-林轩田老师-机器学习基石学习笔记10

这个玩意的计算公式是:

台大-林轩田老师-机器学习基石学习笔记10

我们要让他最小,自然是属于极小值的时候最好是最小值的时候,我们有人已经证明了,这个Ein的图像应该是一个抛物线,那么这个抛物线的最小值自然是谷底,所以给出一个思路:

台大-林轩田老师-机器学习基石学习笔记10

这个方法我们又称为:

台大-林轩田老师-机器学习基石学习笔记10

这是个循序渐进的方法。

最经典的优化算法——梯度下降法

要寻找目标函数曲线的波谷,采用贪心法:想象一个小人站在半山腰,他朝哪个方向跨一步,可以使他距离谷底更近(位置更低),就朝这个方向前进。这个方向可以通过微分得到。选择足够小的一段曲线,可以将这段看做直线段,为了方便计算,将上式近似可得。

台大-林轩田老师-机器学习基石学习笔记10

但是:

台大-林轩田老师-机器学习基石学习笔记10

下降比较多的或者太小可能不是特别好

【梯度下降的算法等博主闲下来,稍微分享下】

所以我有这么个想法:

距离谷底较远时,步幅大些比较好;

接近谷底时,步幅小些比较好(以免跨过界)。

距离谷底的远近可以通过梯度的数值大小间接反映,接近谷底时,坡度会减小。

因此,我们希望步幅与梯度数值大小正相关。

当到达迭代次数或者梯度足够接近0(算法收敛)

原式子可以改写为

台大-林轩田老师-机器学习基石学习笔记10

这个时候当我们找到了谷底,整一个梯度下降执行成功,我们的逻辑回归也到此结束:

台大-林轩田老师-机器学习基石学习笔记10

我们做了实验可以知道,逻辑回归可以很舒服的实现分类问题,这个和PLA的结果一样但是用的是全新的思路【毕竟是基于0\1问题】:

台大-林轩田老师-机器学习基石学习笔记10

之后也是【等博主有时间,上传逻辑回归的实验方式】

补充:

逻辑回归和某个更高阶的【深度学习】算法有神似之处呢!

最后总结一下:上图,英文很简单的啦:

台大-林轩田老师-机器学习基石学习笔记10

分别从逻辑回归方程、代价函数、代价函数梯度、到梯度下降优化算法来讲解了这一类的像分类问题的回归问题。

继续阅读