我的理解之 - 斯坦福机器学习第一课

这里直接从课程的第二课开始,其实视频里的第一课Andrew(为了方便阅读和书写,以后都把Andrew Ng简称为Andrew了,没有不敬的意思,希望他的粉丝或者读者勿喷)主要是分享了机器学习的一些故事和应用场景,总的来说就是机器学习已经贯穿到生活的点点滴滴,每行每业,会点机器学习的同志是很高大上的(现在回过头看Andrew的话,还是很有预见性的,IT工程师不会点机器学习真不好意思跟人打招呼)

线性回归

顾名思义,线性回归就是用一条线(线性)拟合(回归)数据分布,在最简单的2维平面中,这种拟合关系体现为一元一次方程:


公式 1.1

θ0代表截距,θ1代表x1的系数,这个就是我们接触到的最早的线性函数表达式了。扩展一下,将2维扩展到多维(假设为n维)情况,就成了线性回归的一般表达式了:

公式 1.2

为了简单书写,上式最后写成了和符号∑形式。

损失函数

线性回归函数只是定义了模拟我们数据分布的关系式,那剩下的问题是我们如何求解系数(或者可以称之为权重)?大部分童鞋肯定知道一元方程如何求解,只要拿数据中的两个point值,带入到方程中解二元一次方程组就能解的θ0和θ1,但是在线性回归中有两个现实的问题,第一所有点未必真的都乖乖的落在我们拟定的线性路径上,第二就是回归本质上是一个预测问题,如果按照求解方程组的方式来求解系数,会导致不同的样本有不同的系数,所以充分考虑问题的本质是“拟”和“预测”,我们并不是真的要求出某个样本的一个系数组合,而是找出一个能预测所有样本(已知或者未来可能出现的)的函数,故定义了回归函数之后,我们需要一个叫做【损失函数】的东东来评估回归函数的训练求解误差,当和样本的误差在我们认定可接受的范围内的时候,就可以考虑接受当前求解到的一组系数。

由于在第一课中Andrew Ng并没有提到损失函数的大小好坏的评判标准,这里先顺带提一句,损失函数并不是越小越好(>= 0),正如我上面说的,损失函数值越小可能会带来的副作用是预测能力下降(过拟合问题,对样本描述的越精确,函数的泛化能力也越弱)

Andrew选择的损失函数是Mean Square Loss(Or Mean Square Error):

公式 2.1

看到这里,我相信机器学习初学者肯定会有一个问题,为什么选择<差平方的均值>啊?为什么不直接用<差绝对值的均值>呢,其实有实际应用中有很多的损失函数,差的平方,差的绝对值,logistic损失等等,这个里面也有很大的学问,这里不展开讨论,有时间再写一些关于这方面的笔记,暂且认为我们只有一种评价损失的函数,就是MSE。

好,看到这里,我们已经有一个很明确的损失函数方程了,回想下我们的目标,即“训练出一个可以拟合当前数据分布的最优函数”,什么是最优?能使得损失函数最小的分布函数就是最优拟合函数,换言之,我们本来的目标是得到【最优线性拟合函数】,现在变成了【最小化损失函数】(其实这一步可以认为是一种问题建模,将实际问题转变成可以求解的量化问题),即:

公式 2.2

梯度下降

有了量化的最小化损失函数,接下来需要找一种方法求解这个函数,这里顺带提醒一句,损失函数是以【参数θ】为自变量的函数,不是样本点x,这个应该很好理解,我们最终的目的是求出符合数据分布的参数,只要参数确定了,方程就确定了。Andrew给出的解决方案是【梯度下降】,即先随便先设置一组θ值,然后每次迭代朝着梯度下降最大的方向更新θ值(有可能增加也可能减少,方向是朝着最优的方向),直到J(θ)达到我们设置的阈值或者在一定范围内不再变化为止。

为什么【梯度下降最大】的方向就是最优解的方向呢(注意一定是下降最大的方向,设想空间中的一点,它的四周都是梯度,而下降最大的梯度方向才是我们要找寻的)?一定能达到局部最优或者是全局最优么?这里先暂时不讨论这两个问题,姑且认为这是一种被证明过的求解最优化问题的方法。那么如何求解呢 ?迭代公式如下:

公式 3.1

如Andrew视频中所说,符号“:=”是赋值更新的含义,将“:=”右边的值赋给左边的变量,而“=”指的是一种等式变化的断言,“a=b”表示a就是等于b,或者a可以等值变化成b,α是学习率,可以理解为参数朝着梯度方向的单位步长,从公式中可以看出所谓的【梯度下降】方向就是每个参数θ的偏导数方向,下面具体列出下求导的过程:

公式 3.2

公式3.2中,m代表有m个样本点,j代表某个向量的第j个维度,对于θ来说,θj代表第j个参数,对于x向量来说,xj代表第j维的值,从公式中可以得出两个信息,一个是每次迭代,θj是通过对应维度上的x值来作为调整因子的,另一个是每次θ更新都要计算样本中的所有点。

Andrew称上面的梯度下降求解为batch gradient descent,即每次需要计算样本中所有点来迭代更新参数θ值,为了方便快速的迭代,可以采用一种称为stochastic gradient descent【随机梯度下降】的方法,每次选取某一个点作为参数更新的输入,如公式3.3所示:

公式 3.3

可见每个维度θj的迭代只需要计算某个点的y值差和相应维度的xj乘积,速度大大提高了,那为啥还需要批量梯度下降算法呢,都用随机梯度下降不就完了? 这里稍微总结了下这两个算法的主要区别:

  • SGD(随机梯度下降)每次结果不是确定的,因为每次更新都是随机挑选一个点作为更新的依据,而BGD(批量梯度下降)在初始参数输入一定的情况下,运行的结果永远都是固定的。
  • BGD往往能找到局部或者全局最优解,而SGD很可能在最优解附近徘徊震荡
  • SGD由于其随机性,往往能避免陷入到局部极值中,而BGD容易陷入到局部极值中

这里贴两张Andrew课中的图来形象化展示BGD和SGD的求解过程:

图 3.1 - BGD

将3D的模型画成平面等高线的话如下:

图 3.2 - BGD等高线

而SGD的等高线应该是:

图 3.3 - SGD等高线

利用矩阵求解参数(Normal Equation)

在课中,Andrew最后还介绍了一个利用矩阵来直接求解参数的方法(不用迭代),估计很多人看的云里雾里,因为Andrew写了很多定律,比如矩阵的偏导数公式,trace的定义,trace矩阵时的一些特性公式,这里不再赘述Andrew的求解过程,而是从另外一个大家都熟知的方法得到Andrew最后给出的参数结果等式,即【最小二乘法】,什么?!!原来Andrew列了那么多就是最小二乘法啊,且看下面我的求解:

课中最后给出的参数解:
公式 4.1
最小二乘法求解:

经典最小二乘法的定义式如下:

公式 4.2

对公式求导得到极值点便是参数θ的解析解(联系我们小时候学过的求极值方法,不就是求导么_,但是注意不是每个函数都能求导的哦,这个就不在这详细说了),详细过程如下(这里用手写的图片了,大家凑合看吧,顺便吐槽下简书,不支持在线编辑latex简直是灾难啊!!比zybuluo弱爆了!!):

公式 4.3
公式 4.4
公式 4.5

带*号的那一段等式是矩阵求导的范畴,如果有不懂的可以详细去看看矩阵如何求导的,这里举一个例子来说明下:

公式 4.6
公式 4.7

由此,所有证明完毕,可见通过最小二乘法的矩阵运算也能得到和Andrew课中一样的结论。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容