目录
Datawhale组队学习-机器学习Task1
1. 机器学习介绍:
(1)人工智能与机器学习的关系
(2)人类是如何实现智能的?
(3)社会上常见的“伪人工智能”
2. 机器学习大概做些什么?
(1)建立function
3. 机器学习的相关技术
(1)有监督学习
(2)半监督学习
(3)迁移学习
(4)无监督学习
(5)结构化学习
(6)强化学习
视频学习链接:李宏毅《机器学习》_哔哩哔哩_bilibili
在本小节涉及如下内容:
首先我们可以看看人工智能领域的发展历程,并讨论几个名词之间的关系:
在对生物智能的研究中,科学家们对河狸行为进行了分析。
发现其用小石头堆筑“河坝”的的行为是源自于对水声的反应。于是随后,科学家们用人工声源从不一样的场景传播水流声,而相对的,河狸依然会对声音源用石头来堵住,直到听不见为止。
这就好比input:水声, output:堵住水声的行为。是一个描述机器学习算法在做什么的很好的例子。
在当前的社会上,我们总可以在各大商场看到所谓的“智能机器人”。
外行可能会认为这就是ai,而销售也会大肆吹嘘这种机器人有多么智能。
然而很可能这种机器人内部不过是无数个“if-else"逻辑判断语句,而并不包含AI领域的技术。
简单来说,机器学习在做的事便是寻找输入与输出间的函数映射关系,并建立函数关系。
Function便是我们想要的函数映射关系,而建立它简单可以分为三个步骤。
虽然描绘的这3步看起来相当简单,其实就如“把大象塞进冰箱”一般,说起来容易做起来难。
首先先展示出机器学习的学习图谱,以对构成先有个宏观的概念。
可以从图谱中看出,几类Learning都是不同的学习场景,所运用的原理都会有出入。
在最常用的有监督学习中,回归、分类以及结构化学习属于该Learning所要执行的task,不同的task面对不同的任务。而在具体细化后,又会发现分类中又不一样的模型和方法。
可见机器学习所要面对的场景以及细化后的方法是多种多样的,要掌握这门学科绝不是易事。
有监督学习可以简单分为回归、分类以及结构化学习(在后面单独介绍一下)
回归是机器学习中的一个task,当我们使用回归时,我们所期望的输出是一个数值(scalar)。
打个比方,向机器输入过往n天的PM2.5数据,期望他预测明天的PM2.5数据。
分类问题与回归问题的区别在于,分类问题输出的是类别,根据需求分为二分类和多分类。
常见的二分类应用有诈骗邮件检测(Spam filtering),输出的类别为:是 / 不是
在诈骗邮件检测的Training Data中包含了很多封邮件的文本以及每封邮件的标签(是 / 不是)
而常见的多分类应用有物体检测或文本分类。
在文本分类的训练数据中则包含了不同的文本以及他们相应的标签(体育、政治、财经等)
刚才讲的都是让machine去解的任务,接下来要讲的是在解任务的过程中第一步就是要选择function set,选不同的function set就是选不同的model。Model有很多种,最简单的就是线性模型,但我们会花很多时间在非线性的模型上。在非线性的模型中最耳熟能详的就是Deep learning。
DeepLearning相对于传统的机器学习算法,对于数据量的要求会大得多,所以其构造的function会非常复杂,其能实现的任务类型和精度在拥有充足的数据集的情况下也会比传统机器学习算法更高。以下是一个用深度学习模型实现分类任务的例子,它能做到描述像素与类别的关系。
在监督学习下进行学习,我们需要告诉机器function的input和output是什么。这个output往往没有办法用很自然的方式取得,需要人工的力量把它标注出来,这些function的output叫做label。减少label需要的量,就是半监督学习。
所谓的“监督”,便是指在训练模型时,我们给到的数据集的质量。数据集中的“标签”与“数据”的关系就相当于在监督模型,保证提供信息的正确性。
一个简单的半监督学习的应用在于,比起用全部数据都经过标注的数据集来训练图像分类,用一部分数据经过标注,而一部分未经过标注的数据集也可以完成训练,而为何这些没经过标注的数据集也有标注则会在课程后部分讲述。
与半监督学习类似的,另外一个减少data用量的方向是迁移学习。其目标是将某个领域或任务上学习到的知识或模式应用到不同但相关的领域或问题中。
假设我们要做猫和狗的分类问题,我们也一样,只有少量的有label的data。但是我们现在有大量的data,这些大量的data中可能有label也可能没有label。但是他跟我们现在要考虑的问题是没有什么特别的关系的,我们要分辨的是猫和狗的不同,但是这边有一大堆其他动物的图片还是动画图片(凉宫春日,御坂美琴)你有这一大堆不相干的图片,它到底可以带来什么帮助。这个就是迁移学习要讲的问题。
而比起以上的少样本学习,无监督学习所使用的数据集则未经过标注。也就是让机器从一堆没有任何标签的数据学习他们的类别。
结构化学习同属于监督学习,不过结构化学习的输出是要求有格式的。好比语音识别后的句子是要有词汇顺序,而非把识别出的词汇随意拼凑。而其他相关的应用还有机器翻译,人脸识别(对应每个人)等。
强化学习是一个发展了很多年的学科,而最近受到关注则是因为其被用于与数据挖掘结合,实现了机器自己玩一些小游戏,以及相当出名的Alpha Go。
强化学习与监督学习的区别在于,在监督学习中,模型可以根据样本标签以及自己的output结果得知对错。然而在Reiforcement Learning中,它并不知道正确的output答案,只知道它计算出的output的分数。
李宏毅老师给出的例子如下:
若我们用Alpha Go当做例子时,supervised learning就是告诉机器:看到这个盘式你就下“5-5”,看到这个盘式你就下“3-3”
reinforcement learning的意思是:机器跟对手互下,机器会不断的下棋,最后赢了,机器就会知道下的不错,但是究竟是哪里可以使它赢,它其实是不知道的。我们知道Alpha Go其实是用监督学习加上reinforcement learning去学习的。先用棋谱做监督学习,然后在做reinforcement learning,但是reinforcement learning需要一个对手,如果使用人当对手就会很让费时间,所以机器的对手是另外一个机器。