李宏毅机器学习系列文章目录
人工智能是人类长远以来的一个目标,而机器学习是实现这个目标的其中一种方法,深度学习则是机器学习的一种方法。
生物学知识告诉我们,生物的行为取决于两件事,一个是后天学习的结果,另外一个就是先天的本能。
在没有机器学习之前,人们是通过赋予机器先天的本能的方式来实现人工智能的,即通过编写hand-crafted rules的方式,更简单的说法就是给机器编写一些设定好的规则,让机器根据设定好的规则实现智能。
而使用hand-crafted rules的缺点是:
- Hard to consider all possibilities
- 永远无法超越创造者
- Lots off human efforts(not suitable for small industry)
以上缺点使得人们发明创造了machine learning的方法。
What is Machine Learning?
Machine Learning简单来说,就是你写一段具备学习能力的程序,这段程序并不是让机器具备做某些事情的能力(而是具备学习的能力),接下来可以像教小孩一样教会机器做某些事情。
Machine Learning所做的事情,其实就是寻找一个能解决问题的function(这个function过于复杂,人类无法直接写出),这个function的输入是使用者的input,输出则是机器的回应。
Machine Learning Framework
机器学习(监督学习,Supervised Learning)的整体框架大概如下:
左边的部分叫做training,就是学习的过程;右边的部分叫做testing,学好之后就可以拿去应用。
我们需要有一个function set,称之为model,里面有非常多的function。
通过一些训练数据,告诉机器一个好的function输入输出应该是怎样的,机器可以通过训练数据判断一个function是好还是不好。
同时,需要一个有效率的算法从function set中挑选出“最好”的function,称为。
找到之后我们可以将它应用在一些场景中。
Machine Learning Framework整个过程分为3个步骤(进行了细节的简化):
- 找一个function
- 让machine可以衡量一个function好还是不好
- 让machine挑选出最好的function
Learning Map
本课程的Learning Map,其实也是机器学习的Learning Map。
- scenario:学习的情景,通常这是我们无法控制的部分,采用什么方法其实主要取决于我们有什么样的data;
- task:不同的问题,不同的task里面有不同的model;
- method:解决问题的不同方法。
Task
机器学习的task可以分为几大类:
-
Regression:functin输出的是scalar(数值)
-
Classification:function输出的是类别
-
Binary Classification:Yes/No
-
Multi-class Classification:Class1, Class2, ...ClassN
-
Structured Learning:让机器输出结构性的东西。
Supervised Learning(监督学习)
监督学习需要大量的training data来告诉我们要找的function的input和output之间的关系,而这些output往往需要人工标注,称为label。因此监督学习的难点就在于收集大量有标签的训练数据。
Semi-supervised Learning(半监督学习)
半监督学习就能够减少label需要的量。
假如我们要做一个猫狗分类器,有少量猫和狗的labeled data,和大量猫和狗的unlabeled data,在半监督学习中,这些unlabeled data也是对学习有帮助的。
Transfer Learning(迁移学习)
另一种减少label的量的学习方法是迁移学习。
同样假设我们要做猫狗分类的问题,我们一样只有少量有label的data,但是我们还有大量的其他data,这些data可能有label也可能没有,而且这些data甚至跟我们要考虑的问题没什么特别的关系(并非猫狗),这些data能有什么帮助,这就是迁移学习要讲的问题。
Unsupervised Learing(无监督学习)
更加进阶的方法就是无监督学习,我们希望机器做到无师自通。让机器在没有任何label的情况下,只有输入,没有输出,看它到底能学到什么。
Reinforcement Learning(强化学习)
Supervised v.s. Reinforcement
- Supervised:Learn from techer
- Reinforcement:Learn from critics
在监督学习中,我们会告诉机器正确答案是什么,而在强化学习中,机器只能得到一个分数(结果),就是它做得好还是不好,但是不会告诉它那里正确哪里错误,它要自己反省检讨。监督学习更像学校中的学习,有一个老师告诉你正确的答案,而强化学习则更像真实社会的学习,没有人会告诉你正确的答案。
Alpha Go is supervised learning + reinforcement learning.
Why we need to learn Machine Learning?
AI有可能会取代大部分的工作,但是会出现一个新的工作,叫做AI训练师。
AI训练师需要挑选合适的model,loss function,不同的mode和loss function适合解决不同的问题。同时,有些model的最佳化(find the best function)比较困难,因此也需要经验丰富的训练师。