《白话深度学习与TensorFlow》——第1章 1.0机器学习是什么-阿里云开发者社区

开发者社区> 华章出版社> 正文
登录阅读全文

《白话深度学习与TensorFlow》——第1章 1.0机器学习是什么

简介: 本节书摘来自华章计算机《白话深度学习与TensorFlow》一书中的第1章,第1.0节,作者:高扬,卫峥著, 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

第1章 1.0机器学习是什么

机器学习是一个跟“大数据”一样近几年格外火的词汇。我们在了解深度学习之前,还是有必要了解和认识机器学习这个词的。机器学习究竟是一个什么过程或者行为呢?
机器学习——我们先想想人类学习的目的是什么?是掌握知识、掌握能力、掌握技巧,最终能够进行比较复杂或者高要求的工作。那么类比一下机器,我们让机器学习,不管学习什么,最终目的都是让它独立或至少半独立地进行相对复杂或者高要求的工作。我们在这里提到的机器学习更多是让机器帮助人类做一些大规模的数据识别、分拣、规律总结等人类做起来比较花时间的事情。这个就是机器学习的本质性目的。
在人类发展的历史长河中,机器逐步代替人的生产工作是一个不可逆转的趋势——从原始人的刀耕火种,氏族部落大量原始人共同使用极为原始的工具共同狩猎,到后来随着生产力发展和工种分化的不断相互刺激,越来越多的工具出现,代替了原本生产所需要的众多人工。
在近现代,尤其是第一次和第二次工业革命之后,化石能源驱动的高能量的机器再一次在更多的领域取代人力、畜力,大大改善了人类的生产效率。
在信息革命之后,随着计算机的计算能力增强,以及在计算机算法领域新理论、新技术的逐渐发展,机器也逐渐代替人,参与到更多的带有“一定的智能性”的信息分拣与识别的工作中来。这里面我们着重要提一下这个“一定的智能性”。
算法这种东西在最初出现的时候是一种确定性的机器指令执行序列,也就是说,机器需要怎么做是早在程序一开始就设定好的。虽然说在程序执行的过程中可以依靠有限的参数对程序执行过程所涉及的对象、执行次数、执行分支条件等进行设定,但是基本行为逻辑已经大抵确定。在这个过程中,机器——计算机是非常被动的,它老老实实地严格执行程序员赋予它的指令执行序列,没有任何“学习”的行为。这也没办法,因为最开始的图灵机模型在设计的时候就是期望计算机以这种方式工作的。
而机器学习这个领域的思路就与刚才我们所说的这样一个形式有很大的区别。我们以有监督学习的过程为例,例如有一个分类器,可以将输入的邮件分拣为“普通邮件”和“垃圾邮件”两个类别。但是对于垃圾邮件的判断标准不是在程序运行伊始给出的,而是在给予分类器大量垃圾邮件后,由分类器对垃圾邮件样本的各种特征进行统计和归纳,进而得到的。
image

在这个训练过程中,给予分类器的大量被标注为垃圾邮件的邮件,称为训练样本(training sample)。分类器对垃圾邮件样本的特征进行统计和归纳的过程称为训练(traning)。总结出的判断标准,我们称为分类模型。与此同时,我们还会拿其他一些“普通邮件”和“垃圾邮件”给予分类器,让它尝试根据刚刚总结好的分类模型进行分类,看看它分类的正确性是否确实具有泛化性(generalization),这个步骤我们称为验证(validation)。这个过程主要是为了验证从训练样本中归纳总结出来的数据关系是否能够迁移。在此之后,我们还会使用一定量的“普通邮件”和“垃圾邮件”去测试(testing)这个模型的识别能力,看看是不是在我们业务允许的范围内。这是一个基本完整的有监督学习(supervised learning)的学习过程。
其他的有监督学习的场景也极为类似,都是基于训练样本做训练和使用验证数据集验证。在这个过程中我们不难看出,最后整个分类器工具投入生产环境对外提供服务的工作方式不是我在程序里事先写好的,而是先对给予的样本进行总结得出分类规则(标准),之后根据这个规则进行分类操作。这是一个非常形象的“机器学习”的过程,它在这个过程中自己学会了怎么样进行正确地区分事物。这是不是很有趣呢?
机器学习从学习的种类来说,最常见的我们习惯分作两种,一种叫无监督学习(unsupervised learning),一种叫有监督学习(supervised learning)。所谓“无监督学习”,是指人们在获得训练的向量数据后在没有标签的情况下尝试找出其内部蕴含关系的一种挖掘工作,这个过程中使用者除了可能要设置一些必要的超参数(hyper-parameter)以外,不用对这些样本做任何的标记甚至是过程干预;“有监督学习”与此不同,每一个样本都有着明确的标签,最后我们只是要总结出这些训练样本向量与标签的映射关系。所以这在这两种方式下,处理的逻辑有很大的区别,初学的朋友需要格外注意。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: