Tag: NTU

Machine Learning Foundations 4: Feasibility of Learning

 
 


 
 

这里探讨的是:机器学习是否是可行的

 
 

一开始说机器学习做不到

但是加上一些统计上的假设,譬如资料的产生方式,表现衡量方法,就可以做推论做验证,就是机器学习。

 
 


 
 

上一节主要说的是机器学习的分类

这一节首先说什么情况下机器学习做不到,在做不到情况下怎样处理可以变的做得到。

 
 


 
 

首先看个小问题:

 
 

上面三张属于 -1 类,下面三张属于 +1 类

则下面的你会判断属于哪一类

 
 


 
 

答案是非常多的,根据不同的分类方式得到的结果是不同的。

 
 


 
 

再来一个例子:

 
 

输入是一个三个维度的向量,输出还是正负1

然后给了你5笔资料,则g会是怎样的?

 
 

做法可以是:

列出所有的可能性,然后标注5比资料,然后找一条线来区分资料。(类PLA算法)

 
 


 
 

你会发现符合5个资料的结果非常多,用他们再用来预测其他,结果会完全不一样。

 
 

想一下你会发现:

我们想要的不是把已知的都答对,而是对于未来的结果答对的最多。

我们如果不增加假设上面的问题就无法用机器学习解决

 
 


 
 

益智问题

 
 


 
 

答案:4

无答案

 
 


 
 

现在我们有个问题了,就是上面的问题机器学习做不到

 
 

因此我们现在要考虑的是:我们怎么去做推论

 
 

例如图:

有一堆弹珠,想知道里面的橘色弹珠比例占多少?

 
 


 
 

方法:

随机的抓一把弹珠,数一下看比例,就大概是罐子里橘色弹珠的比例。(推论)

 
 

所有数据 》 取样 》 样本结果v 》 数据结果u

 
 


 
 

U != V, 但是大概率情况下两者接近

 
 

接下来看数学表示:

 
 


 
 

定理: uv差距大于e的可能性很小

(具体可以见概率论)

 
 


 
 

右边这项与u无关,因此这个定理与我们不知道的假设无关,以保证准确

e设的大一点,右边的几率就更小

因此样本e够大的话,可以做出推论,uv基本类似

 
 


 
 

计算题

 
 


 
 

答案是 3

 
 


 
 

弹珠事件模型

  1. 不知道的橘色的真正占比 – 函数表示就是f,预测h是否与f一样
  2. 一堆弹珠(橘色弹珠,绿色弹珠)
  3. 做抽样

 

对应到 机器学习模型

  1. 目标f就是橘色真正占比,我们不知道,因此取值到某个x点上面。今天新来一个顾客,我们定义h来预测新来的这个的结果是不是橘色,看是否正确。
  2. 弹珠x,在这个x上面,h是否等于f,一样就是橘色,不一样就是绿色。我们就可以通过这个规则来标识弹珠。要做到这一点我们首先需要有一个固定的h。

    换句话说就是:我们手上有一个固定的预测函数h,就可以把任一弹珠x预测结果是橘色还是绿色。

    这样做的好处是:今天如果我们抓了100个球,就会有100次判断结果。

    这样就和我们的已有资料对应起来:我们已知的部分弹珠的结果加上正确的标记。

    这样就可以检查h的预测结果对不对。

 
 

结论:

如果我们的资料量够大,就相当于我们抓了一把够大的弹珠,

如果我们所有资料的x是独立的从某个地方取样出来,就相当于我们独立的从罐子里抽弹珠

那么我们大概可以说整体的h,f不一样的几率是多少,就相当于整个罐子里面h,f不一样的几率是多少。不仅仅是看得到的样本。

 
 


 
 

我们有一个几率来做从罐子里面取样,这个取样会用在两个地方:

  1. 取样产生了我们的资料
  2. 我们用这个同样的几率来衡量hf的相似程度

h就是从整个H里面的一个样本,然后我们就可以使用我们手上的资料来看hf是否一样。

 
 

Eout 就是来衡量 hf 在整个罐子里面到底一不一样

Ein 就是说在已有的sample上面 hf一不一样

 
 


 
 

这样原来的几率衡量公式可以改写成Eout、Ein的形式

 
 

说明:

这个公式对个个例子都是对的

我们不需要知道Eout,其实就是我们不需要知道f,P

 
 

这样我们就知道了:

如果Ein/Eout相似,Ein很小,那么Eout也就很小,那么如果继续从P产生资料的话 hf 还是相似。

 
 


 
 

从上面得到我们已经有的保证:

如果资料量足够大的话,固定的h的 Ein/Eout 相似。

 
 

那么在此基础上我们是否可以说 gf 是否相似,是否可以说是好的学习。g是h集合

是:选了一个固定的h有 Ein 很小,可推论到 gf 相似

否:问题是只有那个h可以做到,g可能包含很多其他的h,大部分其他h都会导致 Ein 很大。

 
 

因此:

真正的学习是有选择的选好的h

 
 


 
 

改了一下流程:重点是我们需要确认结果好不好

 
 

我们一样有资料,但是没有经过选择。

我们可以验证这个h的表现到底好不好。验证方法是再找一堆资料(verifying examples)看看这个h在这堆资料上面的表现到底好不好。这堆资料的产生和判断hf好不好的方式是一致的,那么你就可以确认这个h表现好不好。

 
 


 
 

联系:股票

 
 


 
 

答案 2

 
 

你可以选择未来的100天测试,如果其和过去十年类似,那么就可以赚大钱了。

 
 


 
 

上面讲到一个h的时候我们可以做验证

如果我们今天有很多个h的时候,则么办。

 
 

例子:

如果今天你有十个罐子,其中一个罐子抽出来全是绿色(全对),你要不要选他()是不是最好的答案。

 
 


 
 

举例丢铜板也是一样,你可以自己动手尝试一下。

 
 

譬如上课的这150个人每人丢5次,很可能出现丢五次五次都是正面,但问题是这个人的这块铜板真的比别人的好么?

 
 

你分析一下你会发现:

完全公平的铜板,上面这个情况,至少一个人出现5次正面的几率大于 99%,

但是如果你去选这150个铜板,你就会存在偏见,想去选那全对的(5次正面)的铜板。

 
 

所以:

上一节说道不好的这件事情很小,但是,这里你会发现:有选择的时候,这些选择会恶化不好的倾向。

 
 

解释:

原来只有一颗铜板,五个正面的几率是 1/32

现在你有150个选择,五个正面的几率是 > 99/100

这个五个正面的表现是不能正确反映分布的不好的倾向。

 
 


 
 

那什么是不好的资料

 
 

对于一个h

 
 

不好的sample例

铜板Eout就是1/2,但是五次正面在很多次的情况下会出现的几率很高,出现的时候Ein=0,差很远。

 
 

不好的data

表面看Ein很小,但事实Eout很大

 
 

好不好:Ein/Eout 的差距大不大

 
 

Hoeffding small 意思是:

把所有可能的资料列出一排(穷举),不好的资料加起来的几率很小。

 
 


 
 

如果今天有很多h,不好的几率会变成什么样子?

 
 

不好的资料:

演算法不能自由自在的做选择,就是很可能选到不好的那个。也就是说存在一个h的Ein/Eout差得非常远。

 
 

上图:

Hoeffding 告诉我们一行一行,bad加起来的几率不大。

竖着看,只要一列上面有一个不好的,就是overfitting,也就是说D1126才是好的,才是我们可以拿来使用的资料。

然后,我们更关心的是这个竖着的不好的资料发生的几率是多少?!也就是打问号的地方值是多少?

 
 


 
 

Pd(bad):表示的是只要对一个h来说是不好的资料的概率

 
 

如上图推导计算上限。

 
 

说明:

结论作用于各种例子都对。

我们不需要知道Eout是多少,也就是不需要知道p

每一个资料集都是安全的。也就是说,不管你怎么去做选择,你一定能选到一个g的Ein/Eout差不多。

 
 

因此:

最合理的演算法,就是选一个Ein(g)最小的g,因为这样基本表示 Ein/Eout接近。

 
 


 
 

于是我们终于可以做到一点点的learning了

 
 

意思是:

如果今天我们的h有有限多种选择,资料够多,那么不管我的演算法怎么选,Ein/Eout都会接近。

演算法就是找一个Ein最小的,就可以包装Eout也很小,就是期望的结果。

 
 

问题是:大部分情况下h是无限的,下面就会讲。

 
 


 
 

问题

 
 


 
 

答案是1

 
 


 
 

总结:

一开始说机器学习做不到

但是加上一些统计上的假设,譬如资料的产生方式,表现衡量方法,就可以做推论做验证,就是机器学习。

下面要讲是的h无线多的情况。

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

Machine Learning Foundations 3: Types of Learning


 
 

内容

  1. 根据资料输出结果不同来分类:classification,regression,structured
  2. 根据资料输出的标记不同来分类:supervised,unsupervised,simisupervised,reinforcement(增强)
  3. 根据取得资料的方法不同来分类:batch,online,active
  4. 根据资料输入的抽象不同来分类:concrete, raw, abstract

 
 


 
 

上一节讲到的是对于回答是非题,我们可以采用 PLA 来解决

 
 


 
 

先复习一下是非题:例如银行要不要给顾客发信用卡,给机器资料,机器给出答案要或者不要。

两种可能性习惯用正负1来表示。

 
 


 
 

用图来表示就是给出一堆有标识的点,机器会把区域划分成两部分分别表示正负1的区域。划分可以是直线曲线甚至其他不规则划分方式。

 
 

二元分类是最基本的问题。

 
 


 
 

那么如果我们今天不是要把问题分成两类,就是多类问题。

 
 

譬如分美元铜板,有四种。

如果我们给机器的是硬币的重量,如图所示,我们希望机器可以通过相关数据分硬币为四类。这就是 multiclass 问题。

 
 

其他例子:

手写数字分类 0-9

一张图里面是什么水果

电子邮件分类:重要的,社交的,广告的,等等

 
 

Recognition 领域有非常多的应用。

 
 


 
 

对于医院来说:

二元分类解决的是 这个病人生病还是没有生病

多元分类解决的是 这个病人得的是什么类型的病

 
 

regression解决的是 这个病人刚动完手术,大概要多久才能恢复

这里的输出是一个范围,这样的问题在统计里面就是回归分析

 
 

线性回归就是一个典型的回归分析。

 
 

回归分析应用:

预测明天股票的涨跌,天气的状况

 
 

这个问题在统计里面已经研究很多年,里面的很多工具会用到机器学习里面。

 
 


 
 

来更复杂的:自然语言辨识

写出一段话,能不能知道这段话里面每个词的词性。

自动词性标注是自然语言里面的重要问题。

 
 

如果输入是个句子,一个词的词性与所在句子的位置有关。

这是一种结构性关系,是一个结构性关系的学习与分类的问题。

结构化的学习

 
 

这个问题很复杂,但是应用很广泛。

 
 


 
 

简单总结:根据输出来分类,机器学习的问题可以包括:

是非题(0/1);

回归分析(n);

结构化学习。

 
 

下面讲得比较多的是是非题和回归分析的方法。这里分类不止这些,这里只是常用的。

 
 


 
 

图书馆门禁系统,分类人群做不同收费,根据人脸识别。

 
 


 
 

答案:2

四类别分类问题。

 
 


 
 

铜板加相关资料 喂给机器,然后机器给结果。

 
 

这样的方式是 监督学习

 
 

这是一个完整的教学,告诉你是什么铜板,每个铜板的特点是什么,然后让你去学习。

 
 


 
 

这里是非监督学习,聚类

 
 

告诉你这些都是铜板,让你自己想办法分类。不是教你说各个类别有什么特点,然后告诉你应该怎么分。

 
 


 
 

分群是一个相对比较难的。因为你都不知道要分几类,该怎么定制划分标准。

 
 


 
 

非监督学习,就算不用输出,我们也可以通过资料来学出一些东西。

 
 

譬如说分布的疏密,可以应用于交通导流。

譬如说找出不合群的,可以用于网络安全里面找出入侵者。

 
 

非监督学习的实现方法更多样。

 
 


 
 

混合方式(混合监督学习,非监督学习):半监督学习

 
 

做法是有一堆资料,只有其中一些是已经知道的分类的,剩下的不知道。

这个应用很广泛,譬如一大堆照片,已经人工分类了一些,然后机器自动去区分剩下的所有,来根据资料本身特征和少数标记的资料来区分。

 
 

上面三种时最基本的学习方式。

 
 


 
 

一种不一样的机器学习方式:

 
 

你想一下你是如何教宠物坐下的。你很难直接输出指令让宠物听懂,也不能去示范教学,但是可以通过惩罚机制来告诉宠物的选择是否正确。

 
 

这里注意的是两点:

你每次都是告诉宠物对还是不对,分类标准不是最期望的而是相对正确方向的。还要有惩罚奖励机制。

 
 

譬如:输入广告系统,用户点击就是好,不点击就是不好,很多轮以后学到的就是一个用户比较喜欢点击的广告系统。

 
 

这样的学习动作是序列化的发生的。

 
 


 
 

至此一共是四种学习方式:

  1. 监督式(核心)
  2. 非监督试
  3. 半监督试
  4. 增强试

 
 


 
 

一个公司做树的辨识系统,是一个什么样的问题?

 
 


 
 

答案3

 
 


 
 

Batch Learning

 
 

收集一堆完整的资料并手动分类,然后喂给机器得到g,然后后续分类使用这个g来分类。

 
 

特点是:

成批喂资料给机器分类

 
 


 
 

应用:

收集一堆分好的电子邮件来学习,医院癌症病人资料来学习,等等

 
 


 
 

但是很多时候的应用是:

 
 

今天你收到一份邮件,机器判断是不是垃圾邮件,你回答是不是,根据你回答的结果来调整g,明天再来几分邮件,在用新的g来判断新的。

 
 

特点:

线性的线上学习方式

 
 

PLA 非常适合改造成线上学习这种方式。

增强试学习就是这种线上试学习方式。

 
 

这里我们希望的是每一轮的g越变越好

 
 


 
 

哲学上:

batch:填鸭式教育

online:启发式教学

但是从机器的角度,这两种方式都是被动的学习。

 
 

这几年新的发展方向:让机器问问题,主动式学习

 
 

上面的橙色线:机器提问我有一个输入,然后你得回答机器是什么,来高效率的提升学习能力。

 
 

使用的场合也是资料标注很贵的场景。

 
 


 
 

总结:和机器沟通的方式

Batch

Online

Active

 
 

这课主要在batch的方式。

 
 


 
 

想要标记照片分类

 
 


 
 

答案 3

 
 


 
 

最后一部分谈谈 输入的部分有些什么样的变化?

 
 

信用卡的问题:输入就是申请资料(concrete feature:可以数字化的资料)

 
 


 
 

铜板:大小,重量

信用卡:过去信用资料

癌症:病人病历

 
 

通常都带有人类的智慧,专业知识。(domain knownledge)

 
 

这些都是比较简单的问题

 
 


 
 

例如:手写数字的辨识

 
 

这里输入会是:

对称性,密度(所占多少格)

 
 


 
 

譬如区分1,5两个数字,密度就可以区分的很好。

 
 

以上这些都是 concerte feature

 
 

还能怎么做:图片变成 16*16 的格子取0、1表示是否填充,拉升出来就是一个256位的向量。

这里就抽象化了,常用于视觉声音。

 
 

资料抽象化抽取特征

人做:特征工程

机器做:深度学习就是在大量的非监督学习资料里面抽取特征。

 
 


 
 

最困难的:非常非常抽象

 
 

预测每个使用者给每部歌曲几分

 
 

输出是0-100的实数

输入:使用者和歌曲分别的编号和分数,可以看作一张图表

 
 

因此我们要做的就是 帮助使用者抽取歌曲的特征,然后再根据歌曲特征和用户喜好再匹配学习。

 
 

这个方式也很实用,特征抽取更抽象。

 
 


 
 

总结:三种不同的输入形式

  1. Concerte
  2. Raw
  3. Abstract

     
     

 
 


 
 

线上图像学习

 
 


 
 

答案 4

都可以考虑

 
 


 
 

总结见开头

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

Machine Learning Foundations 2: Learning to Answer Yes/No


 
 

内容:

 
 

线性可分相关处理

详细介绍了 PLA 以及变形:口袋算法

 
 


 
 

上一讲说的就是

 
 

机器学习 通过演算法A学习资料D,从H集合里面选择最符合数据D表现的G

 
 

今天讲的是怎么样的机器学习算法可以做是非题?

 
 


 
 

先来复习一下机器学习流程图

 
 

那么具体的H会长什么样?

 
 


 
 

这里给大家介绍一个模型:

 
 

每个使用者一个x是一个向量,每一个维度表示的是一个衡量值。

我们把维度综合起来算一个分数,分数总和超过一定的数值就过关,给他发信用卡。

 
 

分数 = 加权和(维度x * 维度重要性权值w)

 
 

这里我们用两个值来表示:好的(1)不好的(-1)

这样判断就可以公式化为h:sin(上面的加权和 – 门槛值) 结果就可以来判断好坏

 
 

h 叫做 perceptron(感知器):一个可能的公式G

 
 


 
 

简化:

 
 

把门槛值也当作特殊的 W0(权重)* X0(数值)

由此符号化表示就可以简化为如上面的投影片表示。

要注意的是这样的话就是从0维度开始。

 
 

下面可视化一下h长什么样子

 
 


 
 

最上面是 一个二维的h的示例

然后画出图

圈圈叉叉代表1和-1

h表示的是正负切换位置,就是h = … = 0 二维的情况下就是一条直线。

用直线来划分预测,每一条线就代表一种预测方式。

 
 

Perceptrons(感知器) 就代表了上面的一条线:因此也叫做线性分类器。

 
 


 
 

小测验:感知器用在垃圾邮件分类,下面哪个维度权重高会比较好

 
 


 
 

答案 2

那些字常在垃圾邮件中出现。

 
 


 
 

从 H 选择最好的 g

最好的g就是F, 如果知道F那是最好,可惜并不知道,因此目标就是获得最接近F的G。

 
 

但是我们所拥有的资料就是从F产生的,因此我们可以找一条线完全满足现有的资料所展示的信息。

但是这做法存在的问题:有无限多解。

 
 

因此可以考虑的是:有一条线在手上,然后根据已有数据去修正,让它变得更好。

 
 

用w0看来表示一开始的线。

 
 


 
 

找到某一个点

如果当前的线 wt(第t次的结果) 在这个点上犯了错误:用线判断的结果和数据结果不一致。

那么做修正:

预期是正,结果是负:w+x 结果

预期是负,结果是正:w-x 结果

这就是更新的公式

直到找不到新的错误的点,则表示得到了最终的结果的线,就是g。

 
 

上面就是 PLA 算法的基本原理:知错能改演算法。

 
 


 
 

实现:

 
 

从第一个开始一个一个往后判断再回旋回来,知道走完N个都不存在错误,则表示结束。

还有其他很多方式都可以。

 
 


 
 

举个例子:

 
 

XXOO 已有资料

看能不能通过刚才的方法找到那条线。

 
 


 
 

第一步

找第一个点,只有这一个数据,这个方向是全对的,则就是找从原点(画面中心点)到这个点的向量的向量就是wt。

注意:分割线是向量w的垂线。

 
 


 
 

第一轮的判断结果。

然后在此基础上找错的点,黑色那个点。

然后根据算法:

红色向量,黑色向量 取中间向量

得到w(t+1)

 
 

 
 


 
 

在上面的结果上找错的点

同样方法再去找错误点,再修正。

 
 


 
 

下面就是再看再修正。

这个算法就是一次就看一个点,因此也有可能中间部分步骤的结果反倒更差。

 
 


 
 

 
 


 
 


 
 


 
 

 
 


 
 

 
 


 
 

但是到最后,能得到一个完美的线。

 
 

注意:为了视觉效果,这里给的一个条件就是xi都比x0大。这个条件是只为了视觉效果才这么搞的。

 
 


 
 

问题:

这个演算法一定会停下来么?

就算这个演算法会停下来,但是结果是不是我们想要的 g 最接近 f 么?

 
 


 
 

小测验:

给上面两条,则下面哪一条一定是对的?

 
 


 
 

第三条:两边同时乘上ynxn
 


 
 

接下来看PLA 什么时候会停下来?

 
 

停下来的条件:有一条线可以区分数据。也就是线性可分。

 
 

上面只有图1是线性可分。

 
 


 
 

假设有一条线,看PLA会不会停下来。

 
 

Wf 是目标线:


符合上面橘黄色公式,则表示完美的线性可分,统统切开分隔两边。

 
 

完美切分意味着:


  • 每一个点乘上到线的距离都>0, 犯错误的点到线的距离>=每一个点乘上到线的距离


  • 内积:找出一个错误的点做更新,按照上面的公式做第一步变换,因为大于0再做变换。

 
 

结论:两个向量的内积越来越大。

 
 

这边还不能得出结论:两个向量越来越靠近,因为还存在向量长度的影响。

 
 


 
 

PLA 特性:


有错才更新。

 
 

跟新:


根据上面黄色公式变换,会<=0再变换,中间蓝色这项则表示不会成长数值,红色表示最大涨幅。 yn可以处理掉(正负1平方值都一样不影响结果,最终就看点到分割线的距离的平方。)

 
 

上面两页PPT结果合并起来计算:


就是正规化的内积:就表示两个向量越来越靠近。

同时内积也不会无限上涨,因为正规化内积最大为1.

 
 

因此就证明了这个演算法会停下来。

 
 


 
 

练习:这个PLA跟新多少次停下来?

 
 

R平方:半径平方

row:目标线的法向量和每个点的内积,线性可分则这个值一定大于0

 
 


 
 

答案是2

 
 


 
 

上面证明的结论:

 
 

如果资料线性可分,PLA每次挑一个错误来修正,则PLA会停下来。

 
 

好处:

算法简单

 
 

坏处:

必须要线性可分

而拿到资料的时候我们根本不知道是不是线性可分。也不知道多久会停(上面推倒多久会停包含wf, 而wf我们根本不知道)

 
 


 
 

这里想说:

我们在收集数据的时候本身就可能包含杂讯。

也就是说就算我们原来的f是一条线,则根据资料也得不到一条线。

 
 


 
 

一般来说假设杂讯比较小。也就是说 y f 基本相同,也就是说我们找到的 g 也要基本相同于 f

 
 

也就是说我们要找的是一条犯错误最小的线,而不是不犯错误的线。

 
 


公式表示的就是错误最小,

这是一个np问题。

 
 

机器学习研究方法的方向目前只能是

就是去找比较好的方法,而不是完美的方法。

 
 


 
 

口袋算法(贪心算法)

 
 

手上抓着一个,然后去找下一个,更好保留,不好丢掉,直到你觉得足够好就停下来。

 
 

这方法不需要线性可分这个条件。

 
 


 
 

可以PLA的用口袋算法,损失的是什么?

 
 


 
 

Pocket 比 PLA 慢。

 
 


 
 

总结:

 
 

介绍了线性可分

介绍了对应算法:PLA pocket 算法

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

Machine Learning Foundations 1: The Learning Problem


 
 

课程基本信息

 
 


 
 

机器学习 学习的两条路径

 
 

理论:数学之美,但是不会用

方法:直接一个一个例子使用,但是不知道该在什么情况下用什么。

 
 


 
 

这门课里面是从基础切入。

每一个学习机器学习的人都因该会的东西。

不代表简单。

 
 

想听一个故事一样听课:

从问题出发,什么时候用得上机器学习,为什么这时候会用机器学习,机器学习是怎么样做的,怎么样让机器学习的更好。

 
 


 
 

NTU课程安排:

 
 

15-17周,每周两小时。

流程图表示的是学生专业分布。

 
 

Coursear课程安排:

 
 

前八周基础,后八周另开一门课讲应用。

从黑板教学变成投影片教学。

 
 


 
 

测验小问题。

 
 


 
 

答案:XXXV

 
 


 
 

开始讲第一部分:

 
 

我们什么时候用机器学习?

 
 

 
 


 
 

到底什么是学习?

 
 

学习是从观察出发,经过脑袋的转化过程,最后变成有用的技能技巧。

机器学习就是模拟上面的学习过程。电脑通过对数据的观察,来变成电脑的处理技巧。

 
 


 
 

技巧是什么?

对于某种表现的增进。

 
 

机器学习的过程就是从数据出发,通过运算得到某种表现的增进。

 
 

例子:电脑通过对股票数据的学习,来获得股票分析的增进,告诉你怎么炒股赚钱。

 
 

在这个定义之下,我们为什么要使用机器学习?

 
 


 
 

这张图里面是什么?

 
 

大家都知道是树,那么我们怎么去定义树?

 
 

如果我们要让机器认知到树,那么我们就必须去定义树的规则。而我们自己去手动的定义这个问题告诉电脑,然后电脑根据这个定义做分析,这个工作量几乎不可能实现。

而作为人的话,比如小孩是自己通过观察去了解到这是树,而机器学习就是来模仿着一个过程,让机器自己去学习了解这棵树,这会比较可行。

 
 


 
 

机器学习有如下方向应用:

 
 

有的系统很难去定义规则,人对其相关工作了解有限:比如火星车会遇到的问题。

人对其规则难以定义和表述:视觉和听觉

人想都没想过的事情:股票高频交易

个性化的提供服务。

 
 


 
 

机器学习的三个关键:

 
 

用来判断这个问题是否适合使用机器学习。

 
 

  1. 有某一种表现可以增进,有学习目标。
  2. 我们不知道怎样写下规则。
  3. 我们要有数据资料。

 
 


 
 

小测验:这些例子是否适合机器学习。

 
 


 
 

答案:XXVX

 
 

第一个表现难以增进,第二个有规则容易看出来,第四个没有数据资料。

 
 


 
 

机器学习应用:衣食住行 四大领域

 
 

从twitter上分析出餐厅好坏

学习怎样搭配衣服好看

预测房子的能源消耗

自动辨识交通信号灯,提升准确率

 
 


 
 

再来例子:教育

 
 

线上答题,系统自动知道学生会了什么,还不会什么,提高再学习效率。

 
 

解决方法:

正确率 = if ( 学生等级 > 题目难度 )

然后通过已有以分类资料来判断

 
 

当年台大拿下比赛第一

 
 


 
 

最后一个例子:娱乐

 
 

推荐系统

推荐给使用者更喜欢的电影

 
 

Netfilx 美国线上最大的电影租借公司

分享数据来让大家比赛,提升推荐解决方案

Yahoo music 也做了类似方法

 
 


 
 

我们怎么决定喜不喜欢这部电影

 
 

一种解决方案:

 
 

喜好 约等于 电影特征组合

人:描述成一串特征数字

电影:相同描述成一串特征数字

内积分数越高则表示会越喜欢

 
 

11 年台大又拿了第一名

 
 


 
 

小测验:哪个领域用不到机器学习

 
 


 
 

答案是都用得到

 
 

机器学习完整流程

 
 


 
 

接下来讲机器学习比较具体的长什么样子,就是机器学习完整流程。

 
 

这边举个例子是银行对信用卡使用者的分析

 
 

上面是一张申请表,机器学习希望通过这些数据来决定要不要给这个人发信用卡。

 
 


 
 

符号表示方法

 
 

X : 输入(申请人)

Y : 答案(要不要发卡)

F : 目标函数(目标,但是得不到)

D : 数据资料

G : 假说函数(机器学习学到的函数,理想就是等于F),然后用G来做判断

 
 

最后是机器学习做法的符号化表示

 
 


 
 

详细过程

 
 

数据资料 -> 机器学习演算法 -> 得到G(fg越像越好)

 
 

G 一般长什么样呢?

 
 


 
 

举三个G的例子:

年收入大于80万的给信用卡

负债大于十万的给信用卡

工作年限小于两年的给信用卡


所有的称H

 
 

机器学习演算法A:

从上面的一堆假设里面找出一个最符合当前已知数据的,当作G

 
 

机器学习模型:A & H

 
 


 
 

机器学习具体定义:

 
 

从资料出发,算出G要很接近期望的f

 
 


 
 

小测验:哪个是哪个表示

 
 


 
 

答案 2

 
 

机器学习和相关领域

 
 


 
 

Data mining:通过数据找出一些有趣的事情

 
 

比较两者定义

 
 

如果 有趣的事情 = f 则 两者一致

如果 有趣的事情 related to f 则相互帮助

DM 通常关注于有效的快速的计算大数据

 
 

两者密不可分

 
 


 
 

AI:通过计算做一些聪明的表现

 
 

机器学习是实现人工智能的一种方法

 
 


 
 

统计学:通过数据做推论

 
 

统计是实现机器学习的一种方法

 
 


 
 

小测验:3是对的

 
 


 
 

总结:这里讲了四个问题

定义

应用

描述

与其他领域的关系