首页 > 技术文章 > 李宏毅2020机器学习01 - Introduction

Allen-mat 2020-08-27 14:06 原文

机器学习基本概念

什么是机器学习?

机器学习就是找function。举个例子:在语音识别中,你输入的是一段语音信号,你就需要找到一个function,使其尽可能地实现无失真地将输入语音翻译成文字形式。
image-20200805102716263

机器学习的三个步骤

  • Model:定义一个model,即function set。
  • Goodness of Function:定义一个loss function去评估function的好坏。
  • Pick the ‘‘Best’’ Function:找到一个最好的function。

Learning Map (学习路线图)

下图中,同样的颜色指的是同一个类型的事情。

蓝色方块指的是scenario,即学习的情境。通常学习的情境是我们没有办法控制的,比如做Reinforcement Learning是因为我们没有data,没有办法来做Supervised Learning的情况下才去做的。如果有data,Supervised Learning会比Reinforcement Learning要好;因此手上有什么样的 data,就决定你使用什么样的scenario。

红色方块指的是task,即要解决的问题。随着你要找的function的output的不同,有输出scalar的regression、有输出options的classification、有输出structured object的structured Learning...

绿色的方块指的是model,即用来解决问题的模型(function set)。在这些task里面有不同的model,也 就是说,同样的task,我们可以用不同的方法来解它,比如linear model、Non-linear model(Deep Learning、SVM、decision tree、K-NN...)。

截屏2020-08-14 下午9.49.50

你可以按照下面这张学习路线图来学习,也可以按自己的路径来学习。比如说先学Reinforcement Learning再学Regression。

image-20200805103235155

机器怎么知道你想要什么样的function?

1.根据task去找function (model的选择)

Regression (回归)

对于Regression,它适合处理多个输入单个输出的情况。

比如作业一种PM2.5的预测,给机器input的是过去9个小时的PM2.5的data(不是单一值),而输出的是未来(第10个小时)的预测数值,即output是一个scalar。

image-20200805103425794

Classification (分类)

Classification和Regression的区别在于它的输出不是一个单一值,而是多个类别中的一个,是一个选择的问题。

  • Binary Classification:两个输出,Yes or No。比如输入的是一张图片,输出的是图片是否违规,能否过审。
截屏2020-08-05 上午10.38.43
  • Multi-class Classification:多个输出,比如输入一些鸡鸭鱼肉的图片,判断是鸡还是鸭还是鱼。
image-20200805103905339

Generation (GAN)

让机器去创造一些复杂的东西。像是写作、合成图片、绘制二次元人物等。

2.根据scenario(学习情境)去找

Supervised Learning (监督学习)

Supervised Learning 需要提供给机器一些有label的data作为Training Data,这些Training Data会告诉我们:对于理想的function,它的input和output之间应该有什么样的关系。比如我们input一张猫的图片,会希望output的类别是‘猫’。

那么机器是怎么做学习的呢?当你提供给机器有label的data之后,接下来机器就能自己评估function的好坏。机器会给出一个function的loss,然后自动更新参数权重,找出使得loss最小的function。

image-20200805104538417

常见的Supervised Learning:Regression、Classification、RNN、CNN...

Unsupervised Learning (无监督学习)

给机器输入unlabeled数据,让机器自己去识别其中的模式,作出反应和决策。比如我们给机器看大量的论文,机器在看过大量的论文之后,能否理解论文中每个句子、每个词汇、每个公式的意思,它能否自己写出一遍合格的论文?

Semi-supervised Learning 半监督学习

即使用了有label的数据,也使用了unlabeled数据。

Reinforcement Learning (强化学习)

拿Alpha Go举例。

Supervised Learning:我们会告诉机器正确的答案是什么,比如说下一步是5-5,还是3-3。其特点是Learning from teacher。

Reinforcement Learning:在机器经过一定的监督学习后,让它自己经过一次次的对战去学习,我们不告诉它接下来走哪一步比较合适。我们只对它的最终结果给出一个评判,即告诉它是win or lose或者对它的表现进行打分。其特点是Learning from critics。

截屏2020-08-14 下午9.50.35

Transfer Learning (迁移学习)

假设我们要做的是猫、狗的分类问题。

现在手头有一些打好label的data,和大量不相干的data(即不是猫、狗的图片,比如蕾姆),这大量不相干的data可能是labeled也可能是unlabeled。

Transfer Learning要解决的问题就是,考虑怎么使用这些不相干的data,使之对结果产生帮助。考虑当training data和testing data的distribution不一样时,机器要怎样才能学到东西。

image-20200805211900841

Structured Learning (结构化学习)

在structured Learning里,我们要机器输出的是一个有结构性的东西。

在分类的问题中,机器输出的只是一个选项;而在structured类的problem里面,机器要输出的是一个复杂的物件。

举例来说,在语音识别的情境下,机器的输入是一个声音信号,输出是一个句子;句子是由许多词汇拼凑而成,它是一个有结构性的object。同样的例子还有机器翻译、人脸识别(标出不同的人的名称) 等。

GAN也是structured Learning的一种方法。

image-20200805205436080

3.限制function的寻找范围

不是所有的function都是好的function,比如我们在前两个作业可以考虑function的搜寻范围是Linear的function。后两个作业的搜寻范围是Network Architecture。

image-20200805151032813

4.更新参数寻找方法——Gradient Descent (梯度下降)

在这次的课程中,我们选择自己编写Gradient Descent的算法来实现Regression和Classification。而使用Deep Learning Framework来实现其他功能模型。

前沿研究

Explainable AI

在给出结果的同时,能够告诉你why。

比如,图片中有只猫,机器也发现了这是一只猫,那么它是否能告诉你为什么它觉得这是一只猫呢?

Adversarial Attack

即使我们今天的影像识别系统也许已经非常robust了,就算有一定的noise(杂讯),机器也能将音频信号或者图片正确识别出来。Adversarial Attack考虑的是,如果今天人类怀着恶意去加入专门针对机器的noise,机器系统是否还能输出正确的结果。

Network Compression

Network Compression要解决的问题就是,面对一个巨大的model,我们能否将其缩小,比如将其放到手机上。

Anomaly Detection

Anomaly Detection要解决的是,如果机器看到怪怪的input,它是否给够知道它不知道呢?

举个例子,一个机器学习的是怎么根据input的图片进行猫狗的分类,那么如果我们给它input的是小润,它是否能够知道它不知道,而不是硬生生将input的图片归类到猫狗当中呢?

Transfer Learning (Domain Adversarial Learning)

上文讲过了,不再赘述。

Meta Learning

Meta Learning = Learn to learn

如果说Machine Learning是设计一个program,赋予机器学习的能力。

那么Meta Learning就是设计一个program,让机器学会自己去编写program,让它去发明自己的学习演算法,期待它发明出来的算法比人类设计的更加有效。

此时不再是我们赋予机器学习的能力,而是赋予机器学会如何学习的能力。

Meta Learning要解决的问题是,机器的学习效率不够高;我们能不能让机器再聪明一点呢?

为什么这么说呢?举个例子,让机器用Reinforcement Learning学习玩一个小游戏,它确实是能够达到4000分,但是它却花了924个小时用于训练,而人类只要花费2个小时就能达到4000分。

截屏2020-08-05 下午9.24.43

Life-long Learning

Life-long Learning要解决的问题就是机器能否实现终生学习,能否在学会解决一个问题之后,再学会另一个问题,就这样一个接一个地学习下去。

image-20200805213152297

推荐阅读