(本文独家发布在金蝶云社区上)
这篇文章主要介绍了机器学习的一些基本的问题:比如机器学习是什么?它如何工作?在应用它的时候需要注意些什么?
什么是机器学习
机器学习是一门通过编程让计算机可以从数据中学习的科学(或者叫艺术)。这个定义来自于书籍 Hands-on Machine Learning with Scikit-Learn and TensorFlow。
机器学习是来自于范围更广阔的人工智能下的子学科,“主要是专注于教授计算机如何在没有明确编程的条件下学习。” 这一定义来自与书籍Deep Learning with Keras 中。书里面还提到:“实际上,机器学习背后的关键思想是可以从数据中创建学习和预测的算法。”
机器学习的应用实例包括,你邮件里的垃圾邮件过滤器,Netflix用来给用户推荐他们可能喜欢的内容的推荐引擎,以及Google和其他公司开发的自动驾驶系统。
机器学习的分类
根据以上两本书的内容,在训练数据期间,机器学习算法通常根据所获取数据的总量和类型分为五个大类:
监督学习(Supervised learning) 是由我们已经准备好的带着类别标签的输入数据组成的。对放射学图像进行分类以便早期发现癌症是一个很好的例子。
非监督学习(Unsupervised learning) 是由未标签的输入数据组成,然后在没有人的指导下系统尝试从数据中自动地学习到结构的学习方法。异常检测,比如以标记非正常的信用卡交易来阻止欺诈,是一种非监督方法的应用实例。
半监督学习(Semi-supervised learning) 通常是前两种方法的组合。那就是系统去训练部分标签的数据——通常是由很多未标签数据和一小部分标签数据组成。举个例子,来自Facebook和Google的照片服务里人脸识别功能就是这种方法的现实世界中的应用。
增强学习(Reinforcement learning) 更多还处在研究领域,但是工业界的应用已经开始出现。所谓增强学习是指一个计算机系统在一个特定环境下接收到了数据,然后学习如何将它的输出结果最大化。Google收购的DeepMind公司研发的Alpha Go成功地学会了围棋,算是这项技术最近的应用视力。
迁移学习(Transfer learning) 主要是涉及两类相似问题,在一个问题上训练出来的模型可以被重用到另外一个相似的问题上。在这片来自Lukas Biewald的视频演讲中,他描述了一个迁移学习的例子,即先用百万张猫咪的图片训练出一个深度学习模型,然后加以“微调”来检测医学成像中的黑色素瘤。
使用机器学习前需要注意的事情
就像所有其他技术一样,机器学习也有问题和瓶颈需要解决。
机器学习需要精心准备的海量数据
数据在被机器学习应用使用之前,需要被清洗才可以被继续使用。
很明显,如果你的训练数据充满了错误,立群点以及噪声(主要是由于低质量的测量设备),那么系统将会很难找到数据中隐藏的模式,因此你的系统将会运行得比较差劲,所以花些时间来清洗你的训练数据是非常值得的。(来自于Hands-on Machine Learning with Scikit-Learn and TensorFlow)
同样重要的是要使用不同的数据集来验证和测试机器学习模型,这样可以避免训练出来的模型“过拟合”。
假如你在国外游玩,一个出租车司机想要干掉你。估计你会认为那个国家所有的出租车司机是山贼。过度一般化某些事物是我们人类经常做的事情,不幸的是如果我们不够小心机器也会陷入同样的境地。在机器学习中这叫做过拟合:它的意思是模型在训练数据上表现得很好,但是对于其他数据就不行了。(来自于 Hands-on Machine Learning with Scikit-Learn and TensorFlow)
机器学习模型越复杂,它就越难被解释。
我们如果急于去获取机器学习带来的便利,可能会使我们迷失在带来这些便利的算法的复杂性之中。
许多机器学习算法被标上了“黑盒子”模型的标签,这是因为它们内部的工作机制高深莫测。这些模型的精确性同样也使得他们变得难以理解:因为这些模型非常复杂。这是个很基本的权衡。这些算法在预测那些非线性的,微弱,稀少的现象变得越来越精准。不幸的是,更高的精准性总是带来可解释性的牺牲。但是可解释性对于商业应用,模型文档,监管监督,以及人类的理解和接受至关重要。(来自于 An Introduction to Machine Learning Interpretability).
近一步学习机器学习
为机器学习的下一站做好准备了吗?来看看这些来自 O’Reilly的编辑者的推荐吧。
Hands-On Machine Learning with Scikit-Learn and TensorFlow-使用具体实例,最小量的理论以及两个可用于生产的Python框架,作者AurélienGéron帮助您直观地了解构建智能系统的概念和工具。
Sprouted Clams and Stanky Bean: When Machine Learning Makes Mistakes-Janelle Shane展示了机器学习的错误如何令人陷入尴尬甚至危险的境地。
[The Frontiers of Machine Learning and AI](The Frontiers of Machine Learning and AI )-Zoubin Ghahramani讨论了人工智能的最新进展,重点介绍了深度学习,概率编程,贝叶斯优化和面向数据科学的人工智能的研究。
Deep Learning with Python-本书由Keras创建者和Google AI研究员FrançoisChollet撰写,通过直观的解释和实际例子构建您对于深度学习的理解。
Hello, TensorFlow!-Aaron Schumacher展示了如何从头开始构建和训练您的第一个TensorFlow图。通过在Python中试验这个灵活,快速,可扩展的机器学习库的核心功能来理解TensorFlow。
An Introduction to Machine Learning Interpretability-Navdeep Gill和Patrick Hall研究了一套机器学习技术和算法,可以帮助数据科学家提高预测模型的准确性,同时保持其可解释性。
参考
https://www.oreilly.com/ideas/machine-learning-a-quick-and-simple-definition
推荐阅读