概念
人工智慧、机器学习、深度学习
- 人工智慧是我们想要达成的目标,而机器学习是想要达成目标的手段,希望机器通过学习方式,他跟人一样聪明。而深度学习和机器学习有什么关系呢?深度学习就是机器学习的其中一种方法。
hand-crafted rules
-
就是大量IF 构成
-
没办法考虑到所有的可能性,它非常的僵化,人类想不到东西,就没办法写规则,没有写规则,机器就不知道要怎么办。
-
很多chat-bot看起来非常的聪明。如果你是有一个是一个非常大的企业,他给以派给成千上万的工程师,用血汗的方式来建出数以万计的规则,然后让他的机器看起来好像很聪明
machine learning
- 就是你就写段程序,然后让机器人变得了很聪明,他就能够有学习的能力。接下来,你就像教一个婴儿、教一个小孩一样的教他,你并不是写程序让他做到这件事,你是写程序让它具有学习的能力。然后接下来,你就可以用像教小孩的方式告诉它
- 如果讲的更务实一点的话,machine learning所做的事情,你可以想成就是在寻找一个function,要让机器具有一个能力,这种能力是根据你提供给他的资料,它去寻找出我们要寻找的function。还有很多关键问题都可以想成是我们就是需要一个function。
如何找function
- 在做这件事时,你的起手事是你要先准备一个function set(集合),这个function里面有成千上万的function。举例来说,这个function在里面,有一个f1,你给它看一只猫,它就告诉你输出猫,看一只狗就输出狗。有一个function f2它很怪,你给它看猫,它说是猴子;你给他看狗,它说是蛇。
- 有了这个function set,接下来机器要做的事情是:它有一些训练的资料,这些训练资料告诉机器说一个好的function,它的输入输出应该长什么样子,有什么样关系。你告诉机器说呢,现在在这个影像辨识的问题里面,如果看到这个猴子,看到这个猴子图也要输出猴子,看到这个猫的图也要输出猴子猫,看到这个狗的图,就要输出猴子猫狗,这样才是对的。
- 机器可以根据训练资料判断一个function是好的,还是不好的。
- 但光能够决定一个function的好坏是不够的,因为在你的function set里面,他有成千上万的function,它有会无穷无尽的function,所以我们需要一个有效率的演算法,有效率的演算法可以从function的set里面挑出最好的function。一个一个衡量function的好坏太花时间,实际上做不到。所以我们需要有一个好的演算法,从function set里面挑出一个最好的的function
- 找到这个function后,就会应用到场景中,比如让机器有举一反三的能力
machine learning framework步骤
- 第一个步骤就是找一个function,
- 第二个步骤让machine可以衡量一个function是好还是不好
- 第三个步骤是让machine有一个自动的方法,有一个好演算法可以挑出最好的function。
machine要解的任务
- Regression 回归
- 分类
- structured learning
Regression
- 是一种machine learning的task
- 就是找到一个函数 f u n c t i o n function function ,通过输入特征 x x x,输出一个数值 S c a l a r Scalar Scalar。
- 股市预测(Stock market forecast)
- 输入:过去10年股票的变动、新闻咨询、公司并购咨询等
- 输出:预测股市明天的平均值
- 商品推荐(Recommendation)
- 输入:商品A的特性,商品B的特性
- 输出:购买商品B的可能性
分类
- 在Regression中机器输出的是一个数值,在Classification里面机器输出的是类别。
- 一种叫做二分类输出的是是或否(Yes or No)
- 二分类可以鉴别垃圾邮件,将其放到垃圾箱
- 给他一大堆的Data并告诉它,现在输入这封邮件,你应该说是垃圾邮件,输入这封邮件,应该说它不是垃圾邮件。你给他够多的这种资料去学,它就可以自动找出一个可以侦测垃圾邮件的function。
- 另一类叫做多分类(Multi-class),在Multi-class中是让机器做一个选择题,等于是给他数个选项,每个选项都是一个类别,让他从数个类别里选择正确的类别。
- 举一个文章分类的例子,现在网络上有非常非非常多的新闻,也许没有人会把所有的新闻看完,但希望机器自动把新闻做分类
- 若要训练这种机器就要准备很多训练资料(Training Data),然后给它新的文章,新闻它能给你正确的结果。
structured learning
- structured learning 中让机器输出的是要有结构性的
- 举例来说:在语音辨识里面,机器输入是声音讯号,输出是一个句子。句子是要很多词汇拼凑完成。它是一个有结构性的object
机器学习相关技术
function set
- 上面讲的是任务,接下来要讲的是在解任务的过程中第一步就是要选择function set
- 选不同的function set就是选不同的model
- Model有很多种,最简单的就是线性模型,但我们会花很多时间在非线性的模型上。在非线性的模型中最耳熟能详的就是Deep learning。
- Deep learning,它的function是特别复杂的,所以它可以做特别复杂的事情。比如它可以做影像辨识
如何训练
- 你要搜集训练资料,告诉机器现在这个function输入输出分别应该是什么。
- 以下围棋为例,就是看到某样的盘式,我们应该输出什么样结果。可以从人类过去的棋库里搜索
监督学习
概括
- 监督学习的问题是我们需要大量的training data。training data告诉我们要找的function的input和output之间的关系。如果我们在监督学习下进行学习,我们需要告诉机器function的input和output是什么。这个output往往没有办法用很自然的方式取得,需要人工的力量把它标注出来,这些function的output叫做label。
半监督学习
-
假设你先想让机器鉴别猫狗的不同。你想做一个分类器让它告诉你,图片上是猫还是狗。
-
你有少量的猫和狗的labelled data,但是同时你又有大量的Unlabeled data,但是你没有力气去告诉机器说哪些是猫哪些是狗。
-
在半监督学习的技术中,这些没有label的data,他可能也是对学习有帮助。这个我们之后会讲为什么这些没有label的data对学习会有帮助。
迁移学习
- 假设我们要做猫和狗的分类问题,只有少量的有label的data。但是我们现在有大量的data,这些大量的data中可能有label也可能没有label。
- 但是他跟我们现在要考虑的问题是没有什么特别的关系的,我们要分辨的是猫和狗的不同,但是这边有一大堆其他动物的图片还是动画图片(凉宫春日,御坂美琴)你有这一大堆不相干的图片,它到底可以带来什么帮助。这个就是迁移学习要讲的问题。
- 不相干图片有什么帮助
无监督学习
- 希望机器可以学到无师自通。
- 如果在完全没有任何label的情况下,到底机器可以学到什么样的事情。举例来说,如果我们给机器看大量的文章(在去网络上收集站文章很容易,网络上随便爬就可以)让机器看过大量的文章以后,它到底可以学到什么事情。
- 我们举另外一个无监督学习的例子:假设我们今天带机器去动物园让它看一大堆的动物,它能不能够在看了一大堆动物以后,它就学会自己创造一些动物。那这个都是真实例子。仔细看了大量的动物以后,它就可以自己的画一些狗出来。有眼睛长在身上的狗、还有乳牛狗等等。
强化学习
与监督学习的对比
- 监督学习相当于有一个人当他的家教,手把手教他每件事情
- 在reinforcement learning里面,我们没有告诉机器正确的答案是什么,机器所拥有的只有一个分数,就是他做的好还是不好。
- 例子
- 若我们用Alpha Go当做例子时,supervised learning就是告诉机器:看到这个盘式你就下“5-5”,看到这个盘式你就下“3-3”
- reinforcement learning的意思是:机器跟对手互下,机器会不断的下棋,最后赢了,机器就会知道下的不错,但是究竟是哪里可以使它赢,它其实是不知道的
- reinforcement learning就是我们没有办法做监督学习的时候,我们才做reinforcement learning。
例子
- 若我们现在要用reinforcement learning方法来训练一个聊天机器人的话,他训练的方法会是这样:你就把机器发到线下,让他的和面进来的客人对话,然后想了半天以后呢,最后仍旧勃然大怒把电话挂掉了。那机器就学到一件事情就是刚才做错了。但是他不知道哪边错了,它就要回去自己想道理,是一开始就不应该打招呼吗?还是中间不应该在骂脏话了之类。它不知道,也没有人告诉它哪里做的不好,它要回去反省检讨哪一步做的不好
总结
- 这边的蓝色的方块,指的是学习的情景,通常学习的情景是你没有办法控制的
- 红色的是指你的task,你要解的问题,你要解的这个问题随着你用的方程的不同,有regression、有classification、有structured。所以在不同的情境下,都有可能要解这个task。
- 最后,在这些不同task里面有不同的model,用绿色的方块表示。