从零入门机器学习,必须要了解的几件事

(大家好,我是一个半吊子程序媛,这是我的第一篇博客!努力进步,就从机器学习开始!)


0. 导语

    我前两天刷贴吧,突然刷到一个名叫“楼主小学没毕业,想学机器学习”的帖子,当时我就吓得浑身一个激灵。我万万没想到,现在连小学生都要来跟我们抢饭碗了啊(哭)。作为一个半吊子程序媛,为了不被淘汰,我就必须努力学习了!

    说到机器学习,我最先想到的就是AlphaGo。当AlphaGo无情而残酷的战胜了人类的时候,多少人内心充满了恐惧。曾经,人与人之间的竞争,往往只需要比对方多想一步;但如今,人与机器之间的竞争,它却比你多想了不止一步两步。可怕吗?但是至少目前,机器仍然是人类的工具,如果我们能很好的了解这种技术并为我们所用,那势必会为我们的生活带来巨大的改变。

    下面就跟我一起来从零了解机器学习吧~

 

1. 什么是机器学习?

    机器学习(Machine Learning, ML)是一门代替手动编程、帮助计算机发现数据中存在的模式和关系的科学

    传统的机器工作模式是程序员向机器输入一连串的指令(代码),然后机器按照这些指令一步一步执行下去,结果通常是我们可以事先预料的。但是机器学习方法是计算机通过学习已有的数据(经验),从而发现了规律,总结得出了某种模型,并利用这些模型预测未来的一种方法。这个过程其实与人的学习过程极为类似,只不过机器是一个可以进行大维度数据分析而且可以不知疲倦地学习的“怪兽”而已。

 

                            从零入门机器学习,必须要了解的几件事

                                                              图1 机器学习和人类学习的对比

 

2. 机器学习离我们很远吗?

    机器学习其实很平凡,很平凡的出现在我们的生活里,却平凡到可以改变所有。

    Siri为什么能够越来越自然地跟用户进行交互?淘宝为什么总是能向你推荐你可能喜欢的商品?邮箱为什么会帮你自动识别分拣垃圾邮件?银行为什么能从海量的交易行为中打击储蓄卡和信用卡欺诈行为?数码相机为什么会自动检测出人脸?互联网翻译、手写识别、机器翻译等等都是怎么实现的?

    这一切都是因为机器学习。

    简单来说,Siri通过不断学习和你的对话,学会了如何与你自然的交谈;淘宝通过分析你的消费历史,分析出了你的购物偏好;邮件通过检测特定词语、发件人等特征信息判断出了哪些可能是垃圾邮件;银行通过大量的消费数据分析和模式鉴别判断交易行为是否有异常……

    我们还可以举出很多这样的例子,下面我们通过划分场景来简单列举:

  • 聚类场景:人群划分和产品种类划分等。
  • 分类场景:广告投放预测和网站用户点击预测等。
  • 回归场景:降雨量预测、商品购买量预测和股票成交额预测等。
  • 文本分析场景:新闻的标签提取、文本自动分类和文本关键信息抽取等。
  • 关系图算法:社交网络关系挖掘和金融风险控制等。
  • 模式识别:语音识别、图像识别和手写字识别等。

    以上这些都是机器学习中比较成熟的应用了,但是还有一些你可能经常听到的新概念,诸如“无人驾驶”、“增强现实”、“医疗图像诊断”等,也非常依赖于机器学习的发展。机器学习已经、正在、并将在未来持续快速的改变着我们的世界。

 

3. 简单谈谈机器学习算法

    机器学习算法包含了聚类、回归、分类和文本分析等几十种场景的算法,常用的算法种类为30种左右,而且还有很多的变形。这些算法主要可以分为4种:

  • 监督学习(Supervised Learning)

    通过过往的一些数据的特征以及最终结果来进行训练的方式就是监督学习法。监督学习法的训练数据源需要由特征值以及目标队列两部分组成。每个进入算法的训练数据样本都有对应的期望值也就是目标值,则训练算法模型的过程实际上就是特征值和目标队列映射的过程。它可以得到每个特征序列映射到的确切的目标值是什么,所以常用于回归以及分类场景

    监督学习非常依赖于每个样本的打标(为训练样本打上标签作为目标值),但是由于获得目标值的成本往往比较高,因此,如何获得大量的标记数据一直是监督学习面临的一道难题。

  • 无监督学习(Unsupervised Learning)

    无监督学习就是指训练样本不依赖于打标数据的机器学习算法。无监督学习主要是用来解决一些聚类场景的问题,因为当我们的训练数据缺失了目标值之后,能做的事情就只剩下比对不同样本间的距离关系。

  • 半监督学习(Semi-supervised Learning)

    半监督学习是最近几年逐渐开始流行的一种机器学习种类,它的训练样本是部分打标的

  • 强化学习(Reinforcement Learning)

    强化学习是一种比较复杂的机器学习种类,强调的是系统与外界不断地交互,获得外界的反馈,然后决定自身的行为。强化学习目前是人工智能领域的一个热点算法种类,典型的案例包括无人驾驶和AlphaGo。

    下表给出了上述四种机器学习算法的常用算法:

监督学习

分类

K近邻、朴素贝叶斯、决策树、随机森林、GBDT和支持向量机等

回归

逻辑回归、线性回归等

无监督学习

聚类

K-Means、DBSCAN等

推荐

协同过滤等

特征抽取

LDA等

半监督学习

标签传播

强化学习

隐马尔可夫

 

4. 机器学习的应用场景

    这里简单的放一张图,就可以很好的展示一部分机器学习的应用场景了。

    其中,

  • 模式识别 = 机器学习
  • 数据挖掘 = 机器学习 + 数据库
  • 统计学习 ≈ 机器学习
  • 计算机视觉 = 图像处理 + 机器学习
  • 语音识别 = 语音处理 + 机器学习
  • 自然语言处理 = 文本处理 + 机器学习

                           从零入门机器学习,必须要了解的几件事

 

5. 机器学习要“以人为本”

    有些人在接触一个新的技术的时候,会近乎“神话”这种技术,但是我们必须明白,机器学习终究是一种工具,是一种思考方式。我们需要去尝试使用机器学习,但是不能认为只要使用了机器学习就会变得无所不能

    针对这一现象,我们可以参考谷歌用户体验社区开始的一项名为“以人为本的机器学习(HCML)”的项目。这项计划提出了七个要求来帮助设计师设计出以机器学习为驱动的优秀产品。我将这七个要求分为“要不要做”和“怎样做好”两个部分,对于从零入门的我们来说,弄清楚究竟什么时候要去用机器学习才是最重要的,所以,下面我们就来看看解释了“要不要做”的两个要求。

  • 不要指望机器学习能找到你需要解决的问题

    现在有很多围绕机器学习和人工智能的炒作。许多公司和产品团队纷纷对以机器学习作为解决方案的产品策略趋之若鹜,反而忽略了更有价值的问题本身。

    如果是纯粹地探索这项新科技能够做什么,当然是没有问题的,而且这经常能够激发出对新产品的思考。但是,如果你不能确保与人们的需求保持一致的话,那么你所做的只是建立了一个非常强大的系统,去解决一个非常小或者根本不存在的问题而已。

    因此,有了机器学习,你仍旧需要努力寻找人们的需求。

  • 问问自己:这些问题是不是真的需要用机器学习解决

    在明确了你想要解决的需求后,你就需要问自己:机器学习是否能以独有的方式来解决这些需求?其实,很多问题并不需要用机器学习解决。

    在产品开发过程中,你要明确哪些用户体验需要用到机器学习,哪些可以被机器学习大大增强,而哪些并不会受益于机器学习,甚至会因其导致产品功能退化。许多产品不用机器学习也可以变得智能或者个性化。不要认为只有机器学习才可以做到。

 


    (P.S. 部分参考资料和图片来自网络,如有不妥还请指出,如有错误还望指正,谢谢~)