如何学习机器学习和深度学习:软件工程师指南

2020-10-30 12:02:40

人工智能这门学科激发了我的兴趣,我在这个领域不断学习和尝试新事物。

与自然语言处理、计算机视觉等相关的技术是如何出现并演变成每天被数百万用户使用的解决方案的,这是臭名昭著的。

尽管人们使用“人工智能”这个词,但我们离“终结者”电影中的天网还很遥远。

今天使用的人工智能最常见的子领域是一个叫做机器学习的子领域,反过来,深度学习作为子领域在相当长的一段时间里每天都在急剧增长。

在本指南中,我的目标是描述一条可供软件工程师开始了解机器学习如何工作以及如何将其应用到您的项目中的路径。

是的,你可以去Google API‘s或Amazon,挑选一些神奇的API为你做语音识别,但是知道它是如何工作的,为什么它工作,甚至更多,如何制作你自己的API即服务,并根据你的特定需求进行调整,这是令人难以置信的。

我一直阅读、观看和浏览所有这些资源,直到最后,甚至为一些人拿到了付费认证,尽管没有必要学习,但我发现当我有一些最后期限和评估来证明我确实学到了材料时,我会更投入地完成。

也许您从未有机会学习一些大学水平的数学,或者您确实学过,但是您记不住大部分内容,因为JavaScript和CSS带走了这些主题的所有记忆。

有3个主题你必须事先知道,或者至少有一个像样的掌握,才能了解ML和DL的任何好材料:线性代数,微积分和统计学。

如果你想深入学习ML和DL所需的数学知识,你可以去找麻省理工学院的开放式课程,比如斯特朗教授著名的线性代数课程。

我在大学里和平时的班级一起看过这部电影,非常好。

但是,让我们面对现实吧,大多数人没有时间这样做,也没有耐心。

就内容而言,它与斯特朗教授的相比是非常遥远的,但首先,这已经足够了,随着你在ML和DL方面的进步,你可以继续其他的主题。

3Blue1Brown在YouTube上也有一个关于微积分的完整系列供你免费观看:微积分的精髓。

再说一次,他非常善于给你直觉,告诉你为什么和怎么做,而不是只是往你脸上扔一些随机的方程式。

这是一个完整的领域,在我看来,你可以根据需要学习,一个很好的参考是数据科学家的实用统计:50个基本概念。

正如书名所暗示的那样,它更适合数据科学家,但理解一些统计学的基础知识总是很好的,这就是本书的目的。

你不会在读完之后成为一名统计员,但你会学到一些好东西。

每个人都想直接跳入深度学习,成为在12 GB GPU上培训单一模型一周的酷家伙。

概念、思路、对事物如何工作的感受都是从这里开始的,没有人比安德鲁·吴教授在他的机器学习课程中更有能力教授这些概念了。

你可能会认为这门课既陈旧又过时,嗯,也许是从技术上讲,但从概念上讲,它比其他任何课程都要好。

吴教授让你很容易理解他教授的每一种技术中应用的数学,并让你在一个非常简短和简洁的课程中对下面发生的事情有一个坚实的理解。

所有的练习都是在Octave中完成的,Octave是Matlab的一个免费版本,你可以完成实现你自己的神经网络的课程!

Octave中的语法对于任何程序员来说都很容易掌握,所以不要让它成为您的障碍。

完成课程后,您将实现所有主要算法,并将能够解决几个预测问题。

事实上,安德鲁·吴的课程只有一个缺陷,他没有涵盖随机森林。

对他的课程有一个很棒的补充,那就是FAST。AI为程序员提供的机器学习入门。

杰里米·霍华德(Jeremy Howard)对吴昌俊课程中缺失的部分进行了超级实用的讲解,涵盖了一个主题,对于许多经典问题来说,这是最好的解决方案。

Fast.ai的方法是所谓的自上而下,意思是他们向你展示如何解决问题,然后解释为什么它有效,这与我们在学校习惯的完全相反。

Jeremy还使用真实的工具和库,因此您可以通过在经过行业测试的解决方案中编码来学习。

再说一次,最好的资源是吴教授的课程,实际上是一系列的课程。

深度学习专业化认证由5门课程组成,从基础开始,围绕特定主题(如语言、图像和时间序列数据)不断发展。

一件好事是,他从他的经典机器学习课程的最后继续,所以感觉就像是第一门课程的延伸。

数学,概念,如何和为什么工作的概念,他都非常简洁,这是我见过的少数几个人所见过的。

唯一的缺点是他在这门课中使用了TensorFlow1.x(Google的DL框架),但在我看来,这是最少的细节,因为解释和练习都很好地传达了。

您可以相对容易地获得该框架的最新版本,为此,您可以阅读本指南的最后一部分,即一本书。

这本书可能是您唯一需要开始的书,它是Aurélien Géron的实践机器学习与Scikit-学习、Kera和TensorFlow:构建智能系统的概念、工具和技术“(Learning,Kera,and TensorFlow:Concept,Tools,and TensorFlow to Building Intelligence Systems)。

它涵盖了很多内容,从经典的机器学习到最新的深度学习主题。使用工业级框架和库的很好的示例和练习。

我敢说,如果你真的很着急,你可以跳过我以前说的一切,直接去看书。

您可能会错过所提到的其他资源中包含的大量信息,但是从热隆的书中获得的实用和可操作的知识足以为您的下一个项目提供很多想法。

如果你只读了这本书就觉得受限了,那就回去研究一下剩下的材料,它会填补你可能有的空白,让你有一个更坚实的理解。

嘿,我听说过PyTorch和大家都在谈论的另一个框架或库X。

不要为此而疯狂,在学习了本指南中的基础知识之后,您可以很容易地使用PyTorch文档或任何其他库或框架,并在一两周内学习如何使用它。

技术和概念都是一样的,这只是一个语法和应用问题,甚至是你对任何给定工具的品味问题。

作为总结,我想说,尽管这看起来可能很多,但我试图消除所有的噪音,在这个过程的最后,你会感到有信心,你会理解幕后发生的事情,行话,甚至能够阅读一些在该领域发表的论文,以跟上最新的进展。