前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如果我不擅长数学,如何开始学习机器学习

如果我不擅长数学,如何开始学习机器学习

作者头像
和风
发布2018-01-29 20:26:52
6580
发布2018-01-29 20:26:52

实践性学科的从业者可能会嫉妒数学家们。

在“理解数学”之前他们不能在所从事学科中取得卓越的成就,这就是他们认为数学家比他们聪明的地方。

我亲身经历过”数学将机器学习的学习者拒之门外“这样的事情。

在这篇文章中,我想说服你,即使你的数学能力不强,你也可以在机器学习领域取得巨大的进步。

如果我不擅长数学怎么办?
如果我不擅长数学怎么办?

如果我不擅长数学 摄影者:meneldur,权利保留

开始学习,实践出真知

在我开始编程之前,我没有学过布尔逻辑。

我刚刚开始编程,而你可能编程有一段时间了。

我走的是反复实践的路径。这样很慢,我写了很多不好的代码,但是我依然非常有热情和兴趣,我可以看到我的进步。

当我建立更大和更复杂的软件和程序时,我熟读了教科书,因为它们让我更好地构建自己的程序。我在很多工具中寻找,寻找可以用来解决我遇到的概念上和实际上问题的工具软件。

这是一种强大的学习方法。如果我在开始编程时被迫学习布尔逻辑或像多态的概念,我的激情永远不会被点燃。

危险区域

我喜欢我的程序出BUG的时候。这意味着我必须撸起袖子,真正理解我的程序发生了什么。

如果仅仅是复制和粘贴代码,但不理解它,你可能会有很长很长的路要走。你只需要将代码块理解为功能单元,以完成您需要完成的任务。只要使用足够的“胶水”,你就有一个程序可以解决你需要解决的问题。

这种经验性的技巧是快速学习的好方法,但却是构建生产系统的一种可怕的方式。和自己写出代码相比,这是一个重要的差别。通常所说的“危险区域”,是指通过这种学习方式构建的系统运行起来,作者并不真正知道它是如何工作的,或者实际结果到底是什么。

这是一个非常现实的问题。例如你可以看看一些使用这种方式搭建起的小型企业的IT系统和网站。

在我看来,一个用胶带缠起来的“复制粘贴”的球,是可以让你勾勒出一个解决方案的。

一个可操作的系统或者一个可以计算出可操作的结果或决定的系统没有什么可令人惊奇的,你会享受和你的同事花一整天时间来挑出每一行代码进行代码评审的。

成为一名技术党

您可以马上就开始学习机器学习。有三种方式供你选择:

  1. 学习熟练使用例如 scikit-learn,R或者WEKA这样的工具。
  2. 使用已提供算法库编写小程序。
  3. 自己实现教科书中的算法。

不仅仅是选择,这是一个技术党从初学者到进阶的途径,即及时地学习技术所需的数学知识。

发现一些小问题,有条不紊地解决问题,并把你学到的东西写在博客中。你会逐渐将这种过程养成习惯。

在学习过程中,你可能会对某个具体的算法产生兴趣,并且希望进行深入的了解,比如当你改变某个参数的时候,这个函数到底发生了什么,或者希望在某个算法中如何得到更好的结果。

这会使你想要(需要)了解这种技术是如何工作的以及它在做什么。你可以绘制数据流图片并转码,但是渐渐地,你会理解并且内化矢量或矩阵所表示的东西,和正在发生的转换,因为你所使用的工具会清楚的描述正在发生的事情。

你会保持这种经验主义。我称之为技术党之路。

你会拥有一种直觉,知道该使用哪个函数,并且知道该如何使用。您还可以学到足够的线性代数知识,能够读取算法描述并将其转化为代码。

一名有经验的技术党可以制作工具,插件,甚至是使用机器学习的操作系统。

与技术党相对的另一派人是理论党。理论党可以:

  1. 内化现有的函数。
  2. 扩展现有的函数。
  3. 设计全新的函数。

理论党可能能够从抽象的角度描述一种方法的功能,但是可能它们的技术不足以将这些方法转化为实际的代码,并完成最佳实践。

你可以随心所欲地学习一些数学知识。专注于自己的优势,诚实地对待自己的局限性。

数学真的很重要,后记

如果你必须及时学习线性代数,为什么不从一开始就更全面地学习它,从一开始就理解这个深层次的机器学习函数呢?

这当然是一种选择,也许是最有效的选择,这就是为什么大学会使用这种方法来教学生。但这不是唯一的选择。

就像从逻辑和抽象概念开始学习编程一样,从一开始就完全理解机器学习的原理,可能并不是学习机器学习最有效的方式。

在这篇文章中,你了解到了区别于理论党的技术党,成为技术党也是一条完全可行的道路。

你了解到技术党可以迅速的了解机器学习算法的数学表示和描述。你还了解到,技术党的“危险区域”是过于自信,而且对将系统投入使用的风险也知之甚少。

这可能是一个有争议的文章,发表评论,让我知道你的想法。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 开始学习,实践出真知
  • 危险区域
  • 成为一名技术党
  • 数学真的很重要,后记
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档