这是我在Datawhale组队学习李宏毅机器学习的博客,既作为我学习过程中的记录,也供同好们一起交流研究,此后还会继续更新相关内容的博客。
人工智能︰让机器变得像人—样拥有智能的学科;
机器学习∶让计算机像人—样能从数据中学习出规律的一类算法;
深度学习∶神经网络类的机器学习算法;
在这三者中人工智能是要实现的目的,而机器学习是达到这个目的的手段,而深度学习就是其中的一种方法。
之所以我们经常把深度学习和机器学习等同,是因为使用神经网络来进行训练的效果十分优秀,能够取代传统机器学习中的许多经典算法,如决策树等等。
人工智能具体应用领域:
计算机视觉(Computer Vision, CV)︰让计算机拥有视觉能力;
自然语言处理(Natural Language Processing, NLP)︰让计算机拥有语言能力
推荐系统(Recommender System, RS):让计算机精确分析出人的喜好讲一下这几个应用领域和机器学习、深度学习的关系
以上是人工智能的几个具体应用环境,在人工智能广泛应用前,这些领域也有其他的算法,不过后来被机器学习取代了,如果要在这些领域继续研究的话要去再学习这些领域的前世今生。
Hand-crafted rule 是很久之前就出现的方法,这种算法的效果看似挺智能,但有显而易见的缺陷:
注意一下这个不同的方块,这用不同的颜色来表示。同样的颜色不同的方块是同一个类型的,这边的蓝色的方块,指的是学习的情景,通常学习的情景是你没有办法控制的。比如,因为我们没有data做监督学习,所以我们才做reinforcement learning。现在因为Alpha Go比较火,所以Alpha Go中用到的reinforcement learning会被认为比较潮。所以说有学生去面试,说明自己是做监督学习的,就会被质疑为什么不做reinforcement learning。那这个时候你就应该和他说,如果我今天可以监督学习,其实就不应该做reinforcement learning。reinforcement learning就是我们没有办法做监督学习的时候,我们才做reinforcement learning。红色的是指你的task,你要解的问题,你要解的这个问题随着你用的方程的不同,有regression、有classification、有structured。所以在不同的情境下,都有可能要解这个task。最后,在这些不同task里面有不同的model,用绿色的方块表示。
supervised learning(监督学习)的问题是我们需要大量的training data。training data告诉我们要找的function的input和output之间的关系。如果我们在监督学习下进行学习,我们需要告诉机器function的input和output是什么。这个output往往没有办法用很自然的方式取得,需要人工的力量把它标注出来,这些function的output叫做label。
定义:用于预测一个具体的数值。意思是,machine找到的function,它的输出是一个数值,这个叫做regression。
定义:在Classification里面机器输出的是类别。 Regression和Classification的差别就是我们要机器输出的东西的类型是不一样。在Regression中机器输出的是一个数值,在Classification里面机器输出的是类别。假设Classification问题分成两种,一种叫做二分类输出的是是或否(Yes or No);另一类叫做多分类(Multi-class),在Multi-class中是让机器做一个选择题,等于是给他数个选项,每个选项都是一个类别,让他从数个类别里选择正确的类别。
在做Deep learning时,它的function是特别复杂的,所以它可以做特别复杂的事情。比如它可以做影像辨识,这个复杂的function可以描述pixel和class之间的关系。
用于训练的数据集中部分是已经处理好的label,而部分是未处理的数据
假设你先想让机器鉴别猫狗的不同。你想做一个分类器让它告诉你,图片上是猫还是狗。你有少量的猫和狗的labelled data,但是同时你又有大量的Unlabeled data,但是你没有力气去告诉机器说哪些是猫哪些是狗。在半监督学习的技术中,这些没有label的data,他可能也是对学习有帮助。这个我们之后会讲为什么这些没有label的data对学习会有帮助。
用于训练的数据集当中有少量data是已经标记好的适用于本问题的,而其他大量data都是与本问题没有特殊关系的,而且其中有的标记好了,而有的并没有标记。
假设我们要做猫和狗的分类问题,我们也一样,只有少量的有label的data。但是我们现在有大量的data,这些大量的data中可能有label也可能没有label。但是他跟我们现在要考虑的问题是没有什么特别的关系的,我们要分辨的是猫和狗的不同,但是这边有一大堆其他动物的图片还是动画图片(凉宫春日,御坂美琴)你有这一大堆不相干的图片,它到底可以带来什么帮助。这个就是迁移学习要讲的问题。
用于训练的数据集并没有经过任何处理。举例来说,如果我们给机器看大量的文章(在去网络上收集站文章很容易,网络上随便爬就可以)让机器看过大量的文章以后,它到底可以学到什么事情。代表任务就是“聚类”和“降维”
结构化学习的特点是机器输出的是有结构性的。不同于输出单一数值和类别,结构化学习的输出是有可分割的。
举例来说:在语音辨识里面,机器输入是声音讯号,输出是一个句子。句子是要很多词汇拼凑完成。它是一个有结构性的object。或者是说在机器翻译里面你说一句话,你输入中文希望机器翻成英文,它的输出也是有结构性的。或者你今天要做的是人脸辨识,来给机器看张图片,它会知道说最左边是长门,中间是凉宫春日,右边是宝玖瑠。然后机器要把这些东西标出来,这也是一个structure learning问题。
在强化学习中,我们将注明一个分数,来表明其做得怎么样。
将强化学习和监督学习进行比较时,在监督学习中我们会告诉机器正确答案是什么。若现在我们要用监督学习的方法来训练一个聊天机器人,你的训练方式会是:你就告诉机器,现在使用者说了hello,你就说hi,现在使用者说了byebye ,你就说good bye。所以机器有一个人当他家教在他旁边手把手的教他每件事情,这就是监督学习。
若我们现在要用reinforcement learning方法来训练一个聊天机器人的话,他训练的方法会是这样:你就把机器发到线下,让他的和面进来的客人对话,然后想了半天以后呢,最后仍旧勃然大怒把电话挂掉了。那机器就学到一件事情就是刚才做错了。但是他不知道哪边错了,它就要回去自己想道理,是一开始就不应该打招呼吗?还是中间不应该在骂脏话了之类。它不知道,也没有人告诉它哪里做的不好,它要回去反省检讨哪一步做的不好。
这节课首先对机器学习的知识体系进行了一个概括,让初学者对机器学习有一个大概的了解,对于多种训练方法的使用更体现了具体问题具体分析的思想,让人眼前一亮。