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

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

这个课程好在哪里?

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,但这涉及到一定的数学证明,这里不再细述,课程中有讲解。

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2018-02-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据挖掘DT机器学习

用python做微博情感偏向分析

自然语言处理(NLP)中一个很重要的研究方向就是语义的情感分析(Sentiment Analysis)。例如IMDB上有很多关于电影的评论,那么我们就可以通过S...

3205
来自专栏小鹏的专栏

是AI就躲个飞机-纯Python实现人工智能

代码下载:Here。 很久以前微信流行过一个小游戏:打飞机,这个游戏简单又无聊。在2017年来临之际,我就实现一个超级弱智的人工智能(AI),这货可以躲避从...

8375
来自专栏IT派

20行python代码实现鸡汤智能生成器

但其实上面这些鸡汤句子全都是电脑生成的,而且其生成鸡汤文所用的程序还不到 20 行 Python 代码。

1105
来自专栏AI研习社

手把手教你用 R 语言分析歌词

翻译 | 刘朋 Noddleslee 程思婕 余杭 整理 | 凡江

1393
来自专栏AI研习社

机器学习可以生成任何线条图片的 ASCII 码绘画

回顾 1960 年代,贝尔实验室的天才们想出了用计算机语言来绘画的方法。这种绘画形式叫做 ASCII 绘画,尽管这种绘画需要使用计算机,但很难让计算机自动生成图...

872
来自专栏磐创AI技术团队的专栏

一个完整的机器学习项目在Python中的演练(一)

1402
来自专栏新智元

当我们和计算机交互时,它看到的是什么?

计算机虽然有了人工智能的程序支持,但事实上也不能将其机器学习的功能等同于像人类那样。至少,到目前还不是这样。那么,向Google的图片识别或者Facebook的...

3397
来自专栏WOLFRAM

Wolfram 语言的新功能:增强的求导功能

1818
来自专栏大数据挖掘DT机器学习

方差分析与R实现

方差分析泛应用于商业、经济、医学、农业等诸多领域的数量分析研究中。例如商业广告宣传方面,广告效果可能会受广告式、地区规模、播放时段、播放频率等多个因素的影响,通...

3274
来自专栏深度学习自然语言处理

【概率论】基础之概率概论与集合论

概率论对于我们学习机器学习,深度学习等理论,还是自然语言处理,计算机视觉等应用都是很有用的。概率论和其他线性代数,微积分等还是不太一样的,概率这样的问题,就是在...

883

扫码关注云+社区