AI Adventures - 来自Google官方的机器学习视频 | 第二集 机器学习的七个步骤

最近,Google Cloud官方账号在Youtube上发布了名为“AI Adventures(AI探秘) ”的系列视频,介绍了机器学习的概念、学习方法和一些工具集,针对希望了解和学习人工智能开发知识的开发者提供了一个入门的指导和开始实际动手练习的框架。视频主讲是Google纽约办公室的布道师Yufeng Guo,一位年轻有为的华裔小伙子。直接去Youtube上看有些不便,我就将原声导出,进行了中文翻译,制作成了音频节目,包含了英文原声和中文解说,发布在我的播客 "码农王先生"中。需要的同学,可以在喜马拉雅FM ,iTunes ,或者泛用性播客客户端中搜索中文 "码农王先生",就可以订阅收听了。微信公众号也是中文的"码农王先生"。

这个小伙子的讲述逻辑很清晰,语音也很纯正。大家上班路上或者空闲时间,听一下播客音频 ,除了机器学习之外,对英语学习,也很有好处。**

AI Adventures #1 What is Machine Learning? - 什么是机器学习?

(中文文本在此 | 中文音频 在此(可直接收听) | Youtube视频在此(需科学上网) )

AI Adventures #2 The 7 Steps of Machine Learning - 机器学习的七个步骤

(中文音频 在此(可直接收听) | Youtube视频在此(需科学上网) )

从诊断皮肤癌、评估黄瓜质量、检测电梯运行安全,机器学习给计算机系统增加了全新的能力。但机器学习到底是怎么运作的?让我们来看一个基础的例子,借此看看到底如何能够从数据中找到问题的答案。

假设我们要来建立一个系统,检测一杯饮料,是红酒还是啤酒。这个检测系统,我们称之为Model(模型),而建立起这个Model的过程,我们称之为Training(训练)。训练的目的,是建立起一个尽可能准确回答问题的模型。

为了训练出模型,我们先得收集用于训练的数据,也就是要从装着红酒和啤酒的杯子里采集数据。一杯酒包含了很多方面的信息,例如杯子的材质和形状等,而为了我们的目的,我们只需要两个简单的信息 -- 颜色(记录为光波)和酒精浓度(记录为酒精百分比)。我们预计,用这两个独立参数,就足以分辨出红酒或啤酒了。

所以,我们得去买一些酒和测量设备回来,需要一台光谱仪和一台比重计。等样品酒和测量设备都齐全了,就可以开始机器学习的第一步 -- 收集数据。这一步非常重要,因为采集到的数据数量和质量,直接影响预测模型的效果。在这个案例里,我们要收集各种啤酒和红酒的颜色和酒精度,由此我们可以建立起每种酒是什么颜色和什么度数的表格,这就是我们的训练数据。

经过几个小时的测量和记录后,我们得到了训练数据,一张记录了几十种红酒和啤酒的颜色和酒精度的表格。,也许你还喝了几杯。下面就是机器学习的第二步了 -- 数据预处理(data preparation)。我们要将数据用合适的方式整理,以用于训练。我们先将表格中条目打乱,让红酒和啤酒的记录混杂在一起,因为我们只希望用颜色和度数这两个值作为判断依据,而不是按照酒的出现顺序来判断它是什么。这时候也可以对数据进行相关性分析,看看收集到的数据中各个变量的有没有失调。比如,如果我们采集了许多啤酒的数据,而只有很少的红酒数据,我们训练出的模型就会有偏差,会误判很多结果为啤酒。我们还需要将数据分成两部分,最主要的一部分用于训练模型,还要保留一部分用来测试。不要拿训练数据去测试模型的效果,这是不会得到准确结果的。很多时候,还需要对数据进行错误检查,去重,标准化等等操作,在我们这个例子里,就不需要做这些了。

第三步是选择一个模型。研究者和数据科学家已经建立了很多的模型,有些用于图像数据,有些适合文字和音乐,有的用于数字。我们只需要两个参数:颜色和度数,使用一个线性(Linear)模型就足够了。

现在我们面对机器学习中比较主要的一个部分了:训练(Training)。在这一步,我们用数据让我们的模型不断增强检测能力。某种程度上,这有点像学习开车。一开始,初学者对怎么开车一无所知,而经过很多练习和纠正错误之后,就慢慢掌握开车的技能了。几年的驾驶之后,可能就是一个老司机了。在驾校学习开车,和拿到驾照真实上路后,在驾驶过程中,司机的能力在不断提高。要训练我们的品酒模型,不用像开车这么复杂。我们要建立一个X-Y坐标系,X轴是颜色,Y轴是酒精度数,这样每种酒都是这个坐标系里的一个点。这个坐标系上的一条直线,表示为 y = m * x + b。 x是输入给模型的值,m是线的斜率,值是什么还不知道,b是Y轴上的起始值,值是什么也不知道,y就是X轴上某个点,用这个公式计算出的Y轴上的值了。我们可以修改和训练的变量只有m和b,x是输入给模型的常量,不能修改的。模型中可能有很多个斜率,也就是m,所有斜率的总集一般记录成一个称为Weights的矩阵。同样,所有的b记录成称为Biases的矩阵。训练先由一些随机的W和b的值开始,看看会计算出什么结果。一开始的计算结果可能没什么用,我们可以调整下W和b的值,看看结果会不会好一点,然后不停的反复重复这个过程。

刚开始训练时,我们就像在坐标系上随便划了条直线,线的左边是一些酒的点,有啤酒有红酒,右边也一样。随着训练不断重复,线的斜率和起始位置不断变化,左边的红酒越来越多,啤酒越来越少;而右边则是啤酒越来越多,红酒越来越少,等我们觉得训练的差不多了,就可以进行下一步 -- 评估。我们之前保留了一些数据用来做测试评估,实践上,一般我们用80%的数据做训练,20%的数据做评估。将评估数据输入到模型,看看结果的准确度如何,由此决定是否需要重新进行训练,或是进行下一步,参数调优(Parameter Tuning)

通过参数调优,有可能提高模型的准确度。比如,我们可以调整训练时每次改变值的幅度,是否重复使用数据或多久重复一次等等。这可以影响模型的准确度和训练需要的时长。这些调整也取决于你面临的数据和问题的实际情况。这些被调整的值,而非数据集中的值,被称为超参(hyperparameter)。调整和选择超参,更像是门艺术,而非科学(注:所以机器学习又被称为炼金,调整模型的人自嘲为炼金术师...),是基于各种实际情况的实验过程。

在训练和调参后,如果得到了一个满意的评估结果,现在可以进行下一步,检测了。检测是用训练过后的模型来回答问题,这是机器学习的最终目的。我们可以告诉模型某个酒的颜色和酒精度,模型会回答我们这是啤酒还是红酒。机器学习的能力,就是不用人的感觉,而是从数据中找到规则,来进行判断。

您可以从上面这个例子中看到机器学习的七个步骤:收集数据,预处理数据,选择模型,进行训练,评估,参数调优,及最终的检测。如果您想了解更多关于训练和调参的信息,可以使用TensorFlow Playground,提供了基于浏览器的机器学习沙盒环境。

当然,实际的机器学习问题和我们这个品酒的小例子有区别,但以上七步是一个通用的使用机器学习的步骤。下一部视频中,我们会实际动手写代码,来实现第一个真正的机器学习模型。

你可能感兴趣的:(AI Adventures - 来自Google官方的机器学习视频 | 第二集 机器学习的七个步骤)