实践科目的从业者可能会受到数学嫉妒的困扰。
这就是他们认为数学家比他们更聪明的地方,他们在“了解数学”之前不能在一门学科中表现出色。
我亲眼看到了这一点,我看到它阻止人们开始。
在这篇文章中,我想说服你,你可以开始并在机器学习方面取得很大进步,而不会在数学方面表现出色。
如果我不擅长数学怎么办?如果我不擅长数学
摄影作品meneldur,保留一些权利
从头开始学习
在开始编程之前,我没有学习布尔逻辑。
我刚开始编程,你可能会这样做。
我遵循了涉及反复试验的经验路径。它很慢,我写了很多不好的代码,但我很感兴趣,我可以看到进展。
当我构建更大更复杂的软件程序时,我吞噬了教科书,因为它们让我更好地构建我的程序。我寻找可以用来克服我实际遇到的限制的概念和实用工具。
这是一个强大的学习工具。如果我通过被迫学习布尔逻辑或像多态这样的概念开始编程,我的热情永远不会被点燃。
危险区
当我的程序不起作用时,我喜欢它。这意味着我必须卷起袖子,真正理解发生了什么。
您可以通过复制和粘贴代码获得很长的路要走,而无需真正理解它。您只需要将代码块理解为执行您需要完成的事情的功能单元。将它们粘合在一起,你就有了一个解决你需要解决的问题的程序。
这种经验性的hackery是快速学习的好方法,但却是构建生产系统的可怕方法。这是一个重要的区别。通常所说的“危险区域”是指根据经验学习构建的系统是可操作的,而作者并不真正知道它是如何工作的或结果实际意味着什么。
这是一个非常现实的问题。例如,看看一些IT系统和小型企业的网页,它们可以提供这种水平的工作。
在我看来,原型是一个用胶带粘在一起的复制粘贴泥球,可以勾勒出解决方案的样子。
操作系统或产生运行结果或决策的系统没有意外。在团队挑选每行代码时,您可以轻松地进行全天的代码审查。
技术员
您可以根据经验开始进行机器学习。有三种选择:
- 学习驾驶像scikit-learn,R或WEKA这样的工具。
- 使用提供算法的库并编写很少的程序
- 自己从教程和书籍中实现算法。
不仅仅是选项,这可以是技术人员从初级到中级的路径,即学习技术所需的数学,及时。
定义小问题,有条不紊地解决它们,并在博客上展示您所学到的结果。在此过程之后,您将开始建立一些动力。
您将需要了解更多有趣的算法,例如特定参数在更改时实际执行的操作或如何从特定算法获得更好的结果。
这将驱使您希望(需要)了解该技术是如何工作的以及它正在做什么。您可以绘制数据流和转换的图片,但最终,您需要内化正在发生的向量或矩阵表示和转换,这只是因为它是我们可用于清楚明确地描述正在发生的事情的最佳工具。
你可以保持经验主义者。我称之为技术人员的道路。
您可以建立一个经验直觉,了解使用哪些方法以及如何使用它们。您还可以学习足够的代数,以便能够读取算法描述并将其转换为代码。
这里有一条技术人员可以创建工具,插件甚至是使用机器学习的操作系统。
技术人员与规模另一端的理论家形成对比。理论家可以:
- 内化现有方法。
- 建议对现有方法的扩展。
- 设计全新的方法。
理论家可能能够在抽象中证明方法的能力,但可能不够熟练,无法将方法转换为最好的原型演示系统之外的代码。
你可以及时学习尽可能少的数学或数学。专注于自己的优势,诚实地对待自己的局限。
数学是关键,后来
如果你必须及时学习线性代数,为什么不在前面更全面地学习它并从一开始就深入理解机器学习方法?
这当然是一种选择,也许是最有效的选择,这就是为什么它是大学教学的道路。它不是唯一可用的选项。
就像从逻辑和抽象概念开始学习编程一样,内化机器学习理论可能不是最有效的入门方式。
在这篇文章中,您了解到技术人员可以使用与理论师不同的路径。
您了解到技术人员可以及时学习机器学习算法的数学表示和描述。您还了解到,技术人员的危险区域是过度自信以及将系统投入生产的风险,这些风险很难理解。
网友评论