翻译 | AI科技大本营(rgznai100)

参与 | shawn

过去两年中,我曾经多次折服于机器学习的魅力。但每当我决定尝试新事物时,经常会不得不重新学习某些概念和课程,其实大部分学习就是这样一个过程。在学习机器学习这个复杂领域的过程中,我总结了一些有用的概念、定义、资源和工具。

我将这些内容整理成一个终极总结,希望它可以帮到在机器学习之路上乐在其中(艰难前行)的朋友们。

索引

  • 怎样学习机器学习效果最好

  • 什么是机器学习(ML)?

  • 常见机器学习算法

  • 监督学习的线性回归

  • 深度学习

  • TensorFlow入门

  • 结尾

怎样学习机器学习效果最好?

老实说,没有哪一种学习方法适合所有人。我实践后觉得有用的方法是:重复运用你在项目中学到的知识,直到熟练掌握为止。如果学的东西用不到,那还学它干嘛呢?而且,当你看到学习成果时,脑中会分泌多巴胺,让你产生的成就感。

在学习机器学习的过程中,很容易找不到方向。一方面要学的东西很多,另一方面许多资源教的都是相同的内容,只不过是方法不同,有些方法还会令人感到困惑。机器学习是一个体系庞大且快速发展的学科。理想的情况是,当你对机器学习有了全面且正确的认识后,搞清楚自己想专攻哪个或哪些领域,然后再进行研究。

我会提供足够多的背景知识和信息,对这些零散的知识点进行总结和整理,便于读者阅读和理解。如有疑虑请自行Google……

什么是机器学习(ML)

机器学习是人工智能的一个子领域,通过机器学习计算机可以实现自学,无需特别进行编程。本质上,机器学习的目标是:理解大型输入数据集的模式(patterns),根据生成的模型预测输出。

机器学习的工作流程

什么是机器学习算法?从本质上说,机器学习使用了可以从数据中学习并预测数据的算法。此类算法通常都是从统计学中借鉴而来的,比如简单的回归算法、决策树等。

通过下面这个资源,你可以进一步学习不同的ML算法和各算法的应用场景:机器学习算法要点。

什么是机器学习模型?一般来说,机器学习模型指的是训练ML算法后生成的人造模型。当生成了一个经过正确训练的ML模型后,你就可以用它来预测新的输入;机器学习的目标就是正确地训练ML算法,以生成这样的模型。本文中的“模型”指的都是这个定义下的模型。

但是,机器学习界对“模型”这个术语并没有一个统一的定义。这个术语经常被提及,它既可以指统计学模型,也可以指ML中的数据模型;比如:column、数据类型、数据源或神经网络的参数。因此,在阅读关于ML的技术和数学资料时,一定要注意“模型”具体指的是什么。

常见的ML算法

ML算法有很多,每种算法都有自己的应用场景。我们可以根据学习方式或者相似性对这些算法进行分类。下方图表(在新的标签页打开)根据相似性很好地总结了常见的ML算法。在本文中,我根据学习方式(监督学习和无监督学习)的不同对这些算法进行了分类。

监督学习:监督学习使用实例场景训练机器学习算法。训练数据带有确定的标签,算法会根据这些数据构建出模型。当模型经过充分的训练后,算法就能推测未知实例的标签了。

使用监督学习解决的问题还可以进一步划分为“分类问题”和“回归问题”。

无监督学习:不同于监督学习,无监督学习使用的是不带标签的训练数据。基本上,这意味着算法要自己理解数据(识别出数据的模式)。

无监督学习可以分为“聚类(clustering)问题”和“关联(association)问题”。

半监督学习:半监督学习是监督学习和无监督学习的结合——只有部分输入数据是带有标签的。

监督学习的线性回归

线性回归基本上相当于机器学习的“Hello World”(译者注:Hello World是世界上第一个程序)。它被用于理解输入变量(x)和输出变量(y)之间的关系。当只有一个输入变量(x)时,就是所谓的简单线性回归。你可能在简单的统计学中见到过这种方法。

训练线性回归方程时最常用的方法是“普通最小二乘法(Ordinary Least Squares)”。当使用这种方法训练机器学习模型时,我们通常将其称为“普通最小二乘法线性回归”。

输入变量(x)和输出变量(y)的简单回归模型可以表达为这种形式:

y = B0 + B1*x

系数B1 (beta)是回归斜率(regression slope)的预估值,系数B0是回归截矩 (Regression intercept)的预估值,回归截距可以赋予回归直线一个附加的自由度。

阅读本教程,学习构建线性回归模型的四大方法:简单线性回归、普通最小二乘法、梯度下降法和正则化。

你很快就会发现,当前机器学习大都使用的是统计学上的各种曲线拟合方法。当你接触到深度学习后,你才会发现机器学习真正的魅力,至少我是这样认为的。

深度学习


深度学习是机器学习的一个子领域,最近几年看起来前景很不错。它研究的是基于大脑神经元结构和功能的算法。

作者:Andrew Ng,保留所有权利

深度学习最让人激动的一点在于它在特征学习上的表现;算法可以很好地从原始数据中检测出特征。举个典型的例子:深度学习模型可以从汽车图像中识别出车轮。下方图表说明了典型机器学习与深度学习的不同:

在深度学习中,神经网络通常是多层的;网络一层一层地传递数据,简单模型会被结合起来形成更加复杂的模型。随着数据的增加,深度学习模型的性能也会增强,这就是为什么深度学习算法优于其他学习算法的主要原因之一。

如果你想学习权威的深度学习入门教程,你可以在麻省理工学院(MIT)的网站上免费获取《The Deep Learning Book》。

TensorFlow入门

TensorFlow是一个快速数值计算Python库,专门用于机器学习中。它由谷歌开源提供,目的是为了让全世界更多的研究人员和开发者都能获得深度学习能力。

对于初学者而言,官方的教程可能有些难以理解。我推荐这个系列的教程,据该教程的作者称,通过它读者可以循序渐进地入门TensorFlow。

如何使用TensorFlow

安装TensorFlow后,它会提供多个用于训练模型的API。最容易学习的是建立在TensorFlow Core上的高级API(最低级的API往往能实现最多的控制),你应该从这些API开始学起。网上可以找到无数的优质资源,如果本文列出一份完整的TensorFlow教程清单,就会显得不太合理……我先列出官方教程:

  • Getting started with TensorFlow

  • Introduction to TensorFlow

  • Hello World - Machine Learning Recipes #1

  • TensorFlow Tutorial (Sherry Moore, Google Brain)

Tensorflow是最受欢迎的机器学习库,但是除了它之外还有几个很好的选择,比如:Torch(Facebook在用)和Caffe(伯克利人工智能研究实验室开发的深度学习框架)等。

本文遗漏了什么?

有很多机器学习相关内容本文并没有涉及。本文的目的是让读者对机器学习有一个清晰的认识和坚实的基础。机器学习涉及的东西太多了,要想完整地涵盖这些东西是不可能的。

接下来?

当你透彻地理解了基本知识后,你应该弄清自己对机器学习的哪个领域感兴趣,你是想在你的应用程序中应用机器学习?还是想进行机器学习的研究?

你可以根据你的兴趣,学习本文给出的链接或者用谷歌搜索找到你需要的资料,选择某个或某些领域深入研究。

最难的部分是打好机器学习基础。如果你的基础足够好,你接下来要做的就是搞清自己的目标是什么。

结尾……

“世界是一个大数据问题” – Andrew McAfee

机器学习也许是一门很难攻克的学科。但是,如果你读到了这里,你一定会同意机器学习非常值得学习。

“只要挖的深,数据会告诉你一切” – Ronald Coase

在应用ML时一定要谨慎——由于这些算法的内在性质,我们有时会很难判断算法是执行一系列有意义的步骤后得出了正确的结论,还是因为步骤错误得出了“看起来正确”的结论。

作者 | Udara Jay

现在西安大略大学(University of Western Ontario)学习生物信息学和计算机科学;Tidl Inc.创始人、设计师、开发者

原文地址

https://udarajay.com/applied-machine-learning-the-less-confusing-guide/

精彩课程

一百天人工智能工程师学习计划——全程实战案例,从机器学习原理到推荐系统实现,从深度学习入门到图像语义分割及写诗机器人,再到专属GPU云平台上的四大工业级实战项目。100天内完美掌握人工智能工程师必备技能。

☞ 点击阅读原文,查看详细课程信息。

技术 | 入门机器学习必须知道的6件事,你可未必都了然于心了相关推荐

  1. friends迷必须知道的114件事

    friends迷必须知道的114件事- - (贴点无关的娱乐,呵呵!) 1.<老友记>第一季第一集的播放日期是1994年9月22日,剧中第一句对活是莫尼卡说的.她说:"这没有什么 ...

  2. 歪果仁眼中的中国科技界必须知道的7件事

    注:本文来自Medium, 中文版由天地会珠海分舵编译.文章中有些观点可能存在偏颇,请读者自行决断. 中国是个神奇的国度,有很多东西是歪果仁所不知道的.以下列出在中国科技界你必须知道的7个事实. 中国 ...

  3. 树莓派可以用计算机电源吗,想玩树莓派:你必须知道的10件事

    在让大众自由掌控 PC 强大功能的革命中,树莓派 是核心,为我们提供了一个具有广泛生态支持的易用型平台.虽然该平台直观易用,但工程师和初学者依旧可以受益于使用过 Pi 的用户提供的一些小技巧. &qu ...

  4. 有理想的程序员必须知道的15件事

    作为程序员,要取得非凡成就需要记住的15件事. 1.走一条不一样的路 在有利于自己的市场中竞争,如果你满足于"泯然众人矣",那恐怕就得跟那些低工资国家的程序员们同场竞技了. 2.了 ...

  5. 所有C#程序员必须知道的13件事

    1.发展进程 开发过程是bug和缺陷开始的地方.在发布之前,利用帮助您避免或发现这些问题的工具: 编码标准 标准的一致使用可以导致更易于维护的代码,特别是在由多个开发人员或团队编写和维护的代码库中.F ...

  6. 作为一个新晋测试经理,在软件测试计划之前你必须知道的10件事

    有人喜欢创造世界,他们做了开发者:有的人喜欢开发者,他们做了测试员.什么是软件测试?软件测试就是一场本该在用户面前发生的灾难提前在自己面前发生了,这会让他们生出一种救世主的感觉,拯救了用户,也就拯救者 ...

  7. 关于Web Worker你必须知道的7件事

    原文:http://www.developer.com/lang/jscript/7-things-you-need-to-know-about-web-workers.html 译者: Rock(r ...

  8. 开展性能测试必须知道的21件事:认清性能问题

    近年来大家都开始关注移动应用性能管理和性能监测,我们找到一位国外资深的开发者对性能的相关理论,希望各位喜欢. 1. 公理化方法 当我在1989年加入 oracle 公司时,解决性能问题(人们通常说的 ...

  9. 成功的产品设计师,必须知道的8件事

    这个话题,或许很多人已经说过了,每个人都有不同的见解或看法. 今天,我想来讲讲我对这个事情的理解,并推荐一些我觉得很有用的书籍,大家可以选择性的接受. 一. 专注"产品",而不是设 ...

最新文章

  1. PS如何批量生成缩略图(方法可以通用其他重复劳动)
  2. 计算机术语表达祝福,考研祝福| | 计算机 愿你们历经千帆,终达彼岸
  3. [architecture]-Cortex-A53的configuration signals
  4. CompletableFuture API用法介绍(二)
  5. Hibernate脏检查的剖析
  6. 除非 Windows Activation Service (WAS)和万维网发布服务(W3SVC)均处于运行状态,否则无法启动网站。IIS 7...
  7. 服务器关于数据流转方式
  8. Oracle sga、pga介绍改动
  9. sklearn 自定义函数转化器FunctionTransformer使用
  10. 双系统linux引导修复
  11. python相关的证书_有哪些含金量较高的Python证书?
  12. 【java】java实现pdf根据内容定位插入图片
  13. Flink 1.13(八)CDC
  14. 通过Wachete实时监控网站更新
  15. springcloud config非对称加密
  16. 论文阅读三:基于改进人工蜂群算法的SDN负载均衡策略研究
  17. signal函数原型解读
  18. 让逆向工程师们头疼的代码混淆,就像永远也走不出的“浪浪山”
  19. Qt - WPS文本编辑器(WPS字体格式)
  20. 京东智能客服言犀意图体系搭建和意图识别技术介绍

热门文章

  1. 【跟着我们学Golang】之异常处理
  2. 设计模式之Pimpl模式
  3. Java Day02-1
  4. Anaconda安装,jupyter notebook 使用说明
  5. 什么是JavaBean
  6. jmeter对自身性能的优化
  7. Login failed for user 'NT AUTHORITY\SYSTEM'. 原因: 无法打开明确指定的数据库。异常处理...
  8. 面试题05-UI控件
  9. Android线程之主线程向子线程发送消息
  10. 题目 1471:【蓝桥杯】【入门题】【基础练习VIP】矩形面积交