Py学习  »  机器学习算法

机器学习(Machine Learning)综述

新机器视觉 • 3 月前 • 275 次点击  

前言

人工智能起源于1956的达特茅斯会议,机器学习则是其中的开宗立派的存在,我们都知道,人工智能的三驾马车分别是数据、算法和算力,从1956年到2008年,我们不断的发现更优秀的算法模型,但一直困苦于数据和算力的限制,整个人工智能的研究仍处于艰难前进之中,事情的转折点则在2008年以后,得益于前面几十年的互联网发展所积累的海量数据,以及英伟达GPU在并行计算(特别是张量运算)上的极高效率,我们在数据和算力方面取得了突破性进展,之后到了2012年时,由辛顿及其弟子所提出的AlexNet在ImageNet图像识别挑战赛中取得压倒性胜利,人工智能第三次复兴由此开始了,这一次我们取得了许多令人惊喜的成就,并且加速了工程化实践进程,因为许多此前受限于条件而无法验证的想法,终于得以实现和验证。

我主要想阐述三个问题,什么是机器学习、为什么要使用机器学习以及如何运用机器学习。

1.什么是机器学习?

机器学习(Machine Learning)是人工智能的一个重要分支,”机器学习“一词是在1959年由阿瑟·塞缪尔(Arthur Samuel)提出。

关于机器学习目前没有一个公认的定义,但是我们可以从诸位人工智能先驱的描述中,窥见前人对机器学习的认识。

机器学习是一个研究领域,让计算机无须进行明确编程就具备学习能力。

——阿瑟·塞缪尔(Arthur Samuel),1959

一个计算机程序利用经验E来学习任务T,性能是P,如果针对任务T的性能P随着经验E不断增长,则称为机器学习。

——汤姆·米切尔(Tom Mitchell),1997

机器学习,就是一种从经验中学习关于某类任务和该任务的执行性能衡量参数,并且性能衡量参数会随着经验的增加而提高的计算机程序。

——汤姆·米切尔(Tom Mitchell),1997

举一个经典的例子,我们都有一个电子邮箱,在Email客户端上,我们观察会发现在收件箱有收到的邮件,同时在垃圾邮件中也有收到的邮件,我们怎么去区分一封邮件它是否应该标记为垃圾邮件?我们来寻找T、P、E分别是什么?

  • 任务T:分类邮件是否为垃圾邮件

  • 性能P:垃圾邮件分类的正确率

  • 经验E:学习邮件的标记特点和习惯

以下是我个人的看法,我们姑且可以认为,我们希望设计一个算法,通过输入从现实世界经过规范化处理的数据,并且可以考虑是否给数据打标签,算法通过学习输入的数据,得到了经验,而我们主要是想让它能够很好的拟合现实情况,去预测目标的概率。

2.为什么要使用机器学习

那我们为什么要使用机器学习呢,那就要对比传统编程和机器学习的区别。

传统编程机器学习
核心逻辑规则 + 数据 = 答案答案 + 数据 = 规则
如何工作编写明确的规则,计算机执行规则处理输入数据并按既定规则输出结果计算机从已有的输入的数据中学习规则,利用这个规则来处理新的输入数据
适用场景规则明确、逻辑清晰的问题规则模糊、复杂或未知的问题

2.1传统编程

图片

在传统的编程范式中,通过编写程序,给定输入并计算,就会得到可预期的结果。

2.2机器学习

图片

在机器学习中,会在给定输入和预期结果的基础上,去拟合数据得到规则(模型参数),基于规则去泛化处理新的输入,得到预期结果的准确率。

3.如何运用机器学习

3.1机器学习工程生命周期

  1. 定义问题与目标

  2. 数据收集与标注

  3. 数据预处理与特征工程

  4. 选择模型预训练

  5. 模型评估,效果不好回到3或4

  6. 模型部署与上线

  7. 持续监控与维护

运用机器学习并不是上述一个线性的流程,而是一个不断迭代的循环,我们可能要在“特征工程”和“模型训练”反复多次,不断调整参数去拟合数据,却要警惕欠拟合和过拟合,目标是让其正常拟合数据,欠拟合说明模型没有很好的学习到数据的特征表示,而过拟合则说明模型学的太好了,变成了教条主义,不能去泛化新的数据。

3.2 机器学习分类

学习范式任务类型特点
有监督学习分类/回归训练数据集有标签。预测离散的类别标签/预测连续的数值输出。
无监督学习聚类/降维/关联规则训练数据集无标签
半监督学习推荐有一部分数据集有标签
强化学习决策序列智能体通过与环境交互,根据获得的奖励/惩罚学习最优策略。

3.3机器学习应用示例

  • 鸢尾花分类(分类任务)

  • 波士顿房价预测(回归任务)

  • 检测信用卡欺诈(异常检测)

  • 基于客户的购买记录来对客户进行分类(聚类任务)

4.后记

我知道我现在写的还不够好,而我很早之前就想开始写一些机器学习的文章,去总结和梳理我学到的关于机器学习的知识,但是却陷入觉得自己学的还不够好,故而不敢动笔的困境,我觉得一直这样不是办法,我希望尝试先去写,然后继续补充,继续改,理论总是没那么有趣的,下一篇就开始实践了。

5.参考资料

  • 《人工智能简史》尼克

  • 刘宇波机器学习:https://github.com/liuyubobobo/Play-with-Machine-Learning-Algorithms.git

  • Python机器学习:https://github.com/rasbt/python-machine-learning-book-3rd-edition

  • 机器学习实战:基于scikit-learn、keras和tensorflow:https://github.com/ageron/handson-ml2


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/192941