首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《机器学习基石》课程学习总结(一)

《机器学习基石》课程学习总结(一)

作者头像
用户1332428
发布2018-03-09 19:19:24
9190
发布2018-03-09 19:19:24
举报
文章被收录于专栏:人工智能LeadAI人工智能LeadAI

《机器学习基石》课程非常棒,作为总结,本文重点是梳理课程中的知识脉络,同时尽可能说白话,让没有机器学习背景的朋友也能看懂。

这个课程好在哪里?

1、最大的好

课程内容组织非常科学,就像一个故事,有着清晰的主线。课程共16讲,基本是按照四个问题的顺序来展开的,即:

  • When:机器学习能解决哪些问题(1-4课)
  • Why:为什么机器学习能解决这些问题(5-8课)
  • How:怎样用机器学习来解决这些问题(9-12课)
  • How better: 怎样更好地用机器学习来解决这些问题(13-16课)

这条主线就像旅行者手中的地图,时时告诉你当前所处方位,从什么地方过来的,下一步要往哪里去。整个课程浑然一体,连贯不可分。对我这样的初学者,有了主线的帮助,能够快速构建机器学习完整的知识体系,为下一步的学习打下坚实的根基,这也是本课叫《机器学习基石》的原因。

2、其他的好

1、幽默诙谐的语言

林轩田具有传道授业的天赋,讲课风格非常轻松幽默,充满热情,享受其中,听课者很容易被感染而激发起学习的兴趣。

2、善于用图和示例化难为易

机器学习涉及许多数学知识,每当此时,林总会用很多图和浅显的例子,将数学知识背后的观念揭示出来,时刻注重数学在机器学习中的工具属性,没有陷入为数学而数学的陷阱,这对初学者是非常友好的。

3、善于总结

每课开头都会用一句话来回顾上一课内容,非常精辟准确;每课结束都会简要回顾本课的要点,同样言简意赅。尤其是对整个课程的总结:“6个3”,让人拍手叫绝!

2、以银行卡信用卡开始

向银行申请信用卡的人具有一些特征,比如性别、年龄、工作年限、工资水平、是否负债等,这些特征可以抽象为(x1, x2, ..., xd)。

在银行看来,申请人无非就是好的申请人和坏的申请人,好的申请人就给他发卡,坏的申请人就拒绝发卡。

那么问题来了,如何根据申请人的特征信息判断他是好是坏?

答案便是用机器学习,具体思路如下:

首先,假设存在一个完美的函数f,它的输入是申请人的特征信息向量X(大写的X表示向量),输出是要不要给申请人发卡,YES就代表可以发卡,NO代表不应发卡。这个完美的函数在课程中叫做target f。哇!要是能找到这个函数,发卡问题岂不是迎刃而解?

理想很丰满,现实很骨感,我们只是凭直觉感到冥冥之中有这么一个完美的f存在,但却并不知道它的真面目,所以,我更愿意称它为上帝函数(god f),因为它是我们无法得知的,只有上帝知道。

但是,上帝给你关上一道门的同时,总会给你打开一扇窗的。虽然无法看到f的庐山真面目,但它还是有一些线索的,这就是银行中已有的发卡数据,这些数据就是一个个发卡人的特征信息以及发卡后的结果好坏。这些数据称为D:{(X1,y1),(X2,y2),...,(Xn,yn)}(这里用大写的X表示这是一个竖向量),这些X可以认为是f的输入,y就是f的输出。

机器学习的核心问题就是:如何根据D找出一个函数g,使得g尽可能地接近f,此时,函数g称为假设(hypothesis)。全书都是在围绕这个问题展开的。

我的感觉,f是一个深闺中的少女,D就是深夜少女在窗户上映出的影子,我们的任务就是根据这个不完整还晃动的影子临摹出少女的模样,虽然无法达到一模一样,但求惟妙惟肖。

现在的问题是,如何找函数g?

首先,我们需要一个函数集以供我们查找挑选,这个函数集称为H,也称其为假设集(Hypothesis Set)。其次,我们需要一个算法A,它根据数据D,在H中挑出一个最好的g,所谓最好,就是指与f最像,所谓最像,是指任意给定一个输入数据d(这个d不一定是D中的数据),g和f的输出结果有很大概率是相同或相近的。

由上,可以总结出机器学习的简明概括:

算法A利用D,从H中挑出一个最好的函数g,使得g尽可能地像f。如下图所示:

3、找出函数g的第一个办法--PLA算法

为了找出函数g,我们先要确定g的范围,即H,我们发现,函数集H中的函数有一个共同的特点:输入是一个d维向量X,输出只有两个结果YES或NO,也可说是+1和-1 。这样的函数有一个专有的名字,叫感知器(Perceptron),H也就可以叫做感知器集合。

考虑银行发放信用卡,我们很自然的一个想法就是根据用户个人特征信息给用户打分,不同的特征信息有不同的权重,分数大于某个值时,就发卡,小于该值时,即拒绝发卡即:

将上式进行如下变形:

上面的式子中,X和W都是一个d+1维的竖向量,其中x0 = +1,w0 = -threshold。x1xd就是用户的d个特征信息,w1wd就是相应特征信息的权重。

上面的式子最大的作用就是帮助我们确定假设集H(Hypothesis Set)。每个W对应一个假设h(X),所有可能的W组成了所有可能的假设,所有可能的假设就是我们要从中挑选g的假设集。

现在,挑选最好的g,转变成了挑选最好的W,那么怎么挑选呢?W有无穷多个,我们必须确定一个可操作的挑选标准。

一个合理的挑选标准是,看这个W(也就是h(X))在数据D上是否与f保持一致,越一致的W越好,最理想的结果是,对于D中的任一个数据(Xn,yn),都有h(Xn)=yn=f(Xn)。PLA算法的思路就是找到一个这样的W,使它满足最理想的结果,具体步骤是从一个W0出发,不断地调整它,直到达到最理想的状态。伪代码如下:

上述代码中,对于Wt,每当发现它在一个数据上与f表现不一致时,就对它进行调整,得到Wt+1,如此循环,直到对于D中的任一个数据(Xn,yn),都有h(Xn)=yn=f(Xn),将此时的W(称作WPLA)返回,作为我们要找的函数g。

这个算法中最难理解的是对Wt调整得到Wt+1这一步,为理解它,需要我们再次审视h(X)=sign(WT*X),WT*X实际上就是向量W和向量X的内积。学过线性代数的我们知道,内积为0时,两个向量相互垂直,内积大于0时,两个向量夹角小于90度,内积小于0时,两个向量夹角大于90度。所以h(X)为+1时,表示W与X夹角小于90度,为-1时,表示W和X的夹角大于90度。

回到上面的伪代码中,假如我们发现了一个数据(Xn,yn),在这个数据上,sign(WT*Xn)与yn不相等,简便起见,我们假设sign(WT*Xn)为-1,而yn为+1(相反情况也是类似的分析)。这说明我们目前的W还不够好,需要调整,怎么调整呢?

sign(W^T*Xn)为-1 说明W和Xn的夹角大于90度,yn为+1说明我们理想的W和Xn的夹角应当是小于90度的,所以,我们要减小W和Xn的夹角,方法就是将W加上Xn作为新的W。那么,是否新的W和Xn的夹角就小于90度了呢,这不一定,不过,新的W和Xn的夹角总是变小了一点,离我们理想的W更近了一点,随着循环次数的增加,我们相信,二者夹角总会小于90度的。

上面分析的过程用图说明如下:

PLA算法有一个明显的弊端,就是理想的W不一定存在,我们有时候不可能找到一个W,它在D上与f表现完全一致,这个时候,算法中的循环将不会停止。

什么时候会存在理想的W呢?

这取决于数据集D,如果数据集D使得这样的理想W存在,我们就称D是线性可分的,否则,就说D不是线性可分的(linear separable),示意如下:

即使D是线性可分的,存在理想的W,我们的PLA算法一定能够找到理想的W并停止吗?答案是YES,但这涉及到一定的数学证明,这里不再细述,课程中有讲解。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人工智能LeadAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档