李宏毅机器学习笔记第一章:摘要

课程时间:2017/02/23—2017/06/15

原视频链接:http://speech.ee.ntu.edu.tw/~tlkagk/courses_ML19.html

原网站有配套的PPT以及Home Work.

B站视频链接:https://www.bilibili.com/video/BV13x411v7US

What is Machine Learning?(什么是机器学习)

用拟人的方法来讲,Machine Learning是你写一个程序让机器有自己学习的能力,接下来你就可以像教小孩子一样去教他。比如做语音识别,你告诉他这段音频是“Hi”、这段是“Hello”……,等你给他一个新的音频他会告诉你这段是“How are you”。再或者你教他图像识别,你告诉他这张图是猴子,这张是狗,这张是猫,当你给他一张没见过的猫的图片,他会认得这张也是猫……

更务实一些来说,Machine Learning就是要根据你提供给他的data找到一个function。比如语音识别, 我们要找到一个function它的input(输入)是一段音频,output(输出)是语音识别的文字;再比如做图像识别,你要找到一个function它的input是一张图片,output是这张图片里有什么东西……

 

Three Steps for Machine Learning(机器学习的三个步骤)

第一步 :定义一个function set

第二步:评估function set 的好坏

第三步:找到最好的一个function(model)

 

 

Learning  Map

 

在上图中蓝色部分是scenario(情境)、红色部分是task(任务)、绿色部分是method(方法)。

Scenario学习情境通常是我们没有办法控制的,比如做Reinforcement Learning是因为我们没有data,不能采用Supervised Learning 来做;如果有data,Supervised Learning肯定是要比Reinforcement Learning要好。因此你有什么样的data,就决定了你将采用什么样的学习情境。

Task是要去解决的问题。根据需要解决的问题来选取不同的task,是需要输出预测结果,比如预测明天上午pm2.5的值;还是需要进行分类,比如垃圾邮件的判断 。随着你需要的function的output的类型不同,有输出scalar(标量、数量)的Regression、有输出options(选择)的Classification、有输出Structured object(结构化对象)的Structured Learning……

Method指的是解决task时使用的model,也就是用来解决问题的function set。在这些task里面有不同的model,也就是说,同样的task,我们可以用不同的方法来解它,效果也会有所不同,比如linear model、Non-linear model(deep Learning、SVM、decision tree、K-NN...)。

Supervised Learning(监督学习)

Supervised learning 需要大量的training data,这些training data告诉我们说,一个我们要找的function,它的input和output之间有什么样的关系,这种function的output通常被叫做label(标签)。做个比喻:你去拿着很多猫的照片去告诉一个刚出生的小宝宝说有着两只毛茸茸的耳朵等特征的是猫,等下次小宝宝看到一只从没有见过的猫的照片时,他会告诉你这也是猫。这里的input就是猫的照片,label是标注这是猫。也就是说,我们要使用supervised learning这样一种技术,我们需要告诉机器,function的input和output分别是什么,而这种output通常是通过人工的方式标注出来的,因此称为人工标注的label,它的缺点是需要大量的人工effort。

Regression(回归)

Regression是一种machine learning的task,特点是通过regression找到的function,它的输出是一个scalar数值。

比如PM2.5的预测,你需要找到一个function,给machine的training data是过去的PM2.5资料,而输出的是对未来PM2.5的预测数值,这就是一个典型的regression的问题。

 

Classification(分类)

Classification和Regression的区别是,我们要机器输出的东西的类型是不一样的,在regression里机器输出的是scalar,而classification输出的是options,classification又分为两类:

Binary Classification(二元分类)

在binary classification里,我们要机器输出的是yes or no,是或否。比如G-mail的spam filtering(垃圾邮件过滤器),输入是邮件,输出是该邮件是否是垃圾邮件。

 

Multi-class classification(多元分类)

在multi-class classification里,机器要做的是选择题,等于给他数个选项,每一个选项就是一个类别,它要从数个类别里面选择正确的类别。比如document classification(新闻文章分类),输入是一则新闻,输出是这个新闻属于哪一个类别(选项)。

 

Function set模型的选择

在解决任务的过程中,第一步是要选一个function  set,选不同的function set,会得到不同的结果;而选不同的function set就是选不同的model,model又分为很多种:

Linear Model(线性模型):最简单的模型

Non-linear Model(非线性模型):最常用的模型,包括:deep learning(深度学习可以做图像识别、围棋机器人)、SVM(支持向量机)、decision tree(决策树)、K-NN等。

Semi-supervised Learning(半监督学习)

有一部分训练事例是事先标记好的,有一部分没有。

举例:去识别猫和狗,有少量有标签的猫和狗的图片以及大量的无标签的猫和狗的图片。在Semi-supervised Learning中这些没有标签的data可能也是对学习有帮助的。

 

Transfer Learning(迁移学习)

举例:假设一样我们要做猫和狗的分类问题,我们也一样只有少量的有label的data;但是我们现在有大量的不相干的data(不是猫和狗的图片,而是一些其他不相干的图片),在这些大量的data里面,它可能有label也可能没有label。Transfer Learning要解决的问题是,这一堆不相干的data可以对结果带来什么样的帮助。

 

Unsupervised Learning(无监督学习)

Unsupervised Learning也就是想让机器无师自通,在没有任何label的情况下,机器能够学到什么?

举例来说,如果我们给机器看大量的文章,机器看过大量的文章之后,它到底能够学到什么事情?它能不能学会每个词汇的意思?又比如带机器去动物园,给他看大量的动物的图片,他是否能够自己创作一些动物。对于unsupervised learning来说,我们的data中只有给function的输入的大量图片,没有任何的标注;在这种情况下,机器该怎么学会生成新的图片?

 

Structured Learning(结构化学习)

在structured Learning里,我们要机器输出的是,一个有结构性的东西。在分类的问题中,机器输出的只是一个选项;在structured类的problem里面,机器要输出的是一个复杂的物件。

举例来说,在语音识别的情境下,机器的输入是一个声音信号,输出是一个句子;句子是由许多词汇拼凑而成,它是一个有结构性的object;或者说机器翻译,你输入中文,想让机器翻译成英文;再比如人脸识别,输入一些照片,机器会告诉你这是谁谁谁。

 

Reinforcement Learning(强化学习)

Reinforcement Learning不会告诉机器正确的答案是什么,机器拥有的只有一个最终的分数(score),这个分数好还是不好。

Supervised Learning   VS    Reinforcement Learning

Supervised Learning:我们会告诉机器正确的答案是什么 ,其特点是Learning from teacher。比如训练一个聊天机器人,告诉他如果使用者说了“Hello”,你就说“Hi”;如果使用者说了“Bye bye”,你就说“Good bye”;就好像有一个家教在它的旁边手把手地教他每一件事情。

Reinforcement Learning:我们没有告诉机器正确的答案是什么,机器最终得到的只有一个分数,就是它做的好还是不好,但他不知道自己到底哪里做的不好,他也没有正确的答案;很像真实社会中的学习,你没有一个正确的答案,你只知道自己是做得好还是不好。其特点是Learning from critics。比如训练一个聊天机器人,让它跟客人直接对话;如果客人勃然大怒把电话挂掉了,那机器就学到一件事情,刚才做错了,它不知道自己哪里做错了,必须自己回去反省检讨到底要如何改进,比如一开始就不应该打招呼吗?还是中间不能骂脏话之类的。

 

再拿下棋这件事举例,supervised Learning是说看到眼前这个棋盘,告诉机器下一步要走什么位置;而reinforcement Learning是说让机器和对手互弈,下了好几手之后赢了,机器就知道这一局棋下的不错,但是到底哪一步是赢的关键,机器是不知道的,他只知道自己是赢了还是输了。Alpha Go就是用supervised Learning + reinforcement Learning的方式去学习的,机器先是从棋谱学习,有棋谱就可以做supervised的学习,之后再做reinforcement Learning来进一步强化。机器的对手是另外一台机器,Alpha Go就是和自己下棋,然后不断的进步。

应该注意的是supervised Learning的前提是有足够的data,在没有data做supervised Learning时采用reinforcement Learning。在能够做supervised Learning时就不应该去做reinforcement Learning。

思维导图

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值