我是如何学习机器学习的
我记得几个月前看过一些项目,它们展现了机器学习所取得的惊人成就。
我爱上了它。我说过我想学它。就算难也无所谓。我想学,而且我一定会学。
说实话,我们都听说过机器学习工程师的薪水。看看这个。
很棒对吧?但是,首先你需要学习机器学习,而这正是事情变得奇怪的地方。
我兴奋地开始阅读论文,结果你猜怎么着?哇!到处都是数学!复杂的方程式、线性代数、向量和各种奇怪的符号。
当晚,我像个孩子一样哭了起来,但哭过之后,作为一个优秀的技术人员,我决定自学。
是的,我只是另一个想学习机器学习的书呆子。
但我发现,学习一些难懂的知识有时很枯燥,尤其是在隔离期间。所以我决定尝试一些不同的方法:记录我的整个学习过程。
好吧,我会试试。
学习路径
在 YouTube 上搜索机器学习学习路径时,你会发现 3 个主要视频:Siral Raval 的视频、Jabrils 的视频和Daniel Bourke 的视频。
它们都非常精彩。所以我决定选取这三个视频中最好的部分。
数学
关于学习机器学习需要多少数学知识,一直存在很多争议。但数学绝对是必要的。
也许有些人数学天赋异禀,只需要记住一些基本概念。但像我这样的大多数人,都需要从头开始学习。
好的,但我需要学习哪种数学呢?很简单,线性代数和微积分。
第一点,我不是数学天才。我的数学很差。真的非常差。我在大学微积分I、II和III的成绩都很糟糕。
问题是,你不需要成为数学天才也能学习机器学习吗?
当然可以。
但这里有个小细节。如果你对数字不敏感,很可能是因为你没有理解它的本质。
你还记得这个词吗?线性代数和微积分的本质。3Blue1Brown与 Grant Sanderson 合著。
他应该获得诺贝尔教育奖。他用精妙的几何学方法解释数学,就像用孩子能理解的方式一样。太美妙了。
对我来说,这是第一步。理解线性代数和微积分的含义和本质。相信我,在那之后事情就会变得容易得多。
看完并理解了这些视频之后,就该通过学习世界上最好的大学数学老师之一——吉尔伯·斯特朗在麻省理工学院开设的18.06线性代数课程来实践了。
想想看,你接受的教育和那些花几千美元上这门课的学生是一样的。你没有世界顶尖大学的文凭,但你可以获得知识。而这才是最终最重要的。
消化并练习完那门漫长的课程之后,就该学习微积分了。可汗学院有一门很棒的课程,可以教会你所有你需要知道的知识,让你能够轻松应对之后会遇到的那些复杂的方程式。
统计数据
很多人对机器学习和统计学的相似之处感到困惑。实际上,它们密切相关,而了解统计学是深入理解机器学习的关键。
所以一定要认真听讲,好好学习。
当然,为了方便起见,麻省理工学院还开设了一门免费课程:概率论——不确定性和数据的科学。
如果你仔细阅读课程大纲,可能会觉得这是一门基础课程,但其实不然。它涵盖了足够多的主题,能为你理解概率论打下基础。不过,或许是因为我们热爱学习,我们还可以学习另一门课程——可汗学院的统计学和概率论。这门课就像是对其的补充。所以,别着急。
编程
如果你和我一样是软件工程师,那么这才是最有趣的部分。
应该学习的编程语言是Python。它是机器学习领域的王者。Python的简洁性使得学习它非常容易,至少基础知识很容易掌握。
我假设你已经了解编程,所以不会推荐具体的课程。学习Python的课程有很多,书籍也很优秀。所以,选择在哪里学习完全取决于你。
或许你擅长阅读文档,或许你有喜欢的 Udemy 老师,或者你订阅了某个在线学习平台。这些都不重要。重要的是,要记住练习算法,以便更好地理解编写机器学习代码时发生的现象。
好吧,也许你完全不懂编程,这将是你的第一行代码。如果是这样,我会推荐Datacamp。你可以先做些研究,看看他们的 Python 课程。
机器学习
我们走了太远。我们学习了数学、统计学、算法,我们哭过无数个夜晚。一切都是为了这一刻。
吴恩达的机器学习课程。这可能是最好的机器学习入门课程之一。这门课并非基础课程,所以请务必记笔记。最终,你将学会如何像拼图一样,将所有知识融会贯通,从而创建出优美的机器学习算法。
另一个很棒的资源是《面向程序员的机器学习入门》。这门课程对机器学习算法进行了深入浅出的讲解。
我的建议是两者都看看,这样可以获得不同的观点,然后选择你最能理解的那一种。
我不能不提另一门我听说也很棒的课程,但是它是付费的。那就是Udacity 的机器学习入门课程。
也许你攒了一些钱,想投资自己,我觉得现在是投资的好时机。这完全取决于你的决定。
真实世界项目
既然你已经学到了机器学习,但这还不够。你需要更多地将其付诸实践。我认为这本书正适合你。
使用 Scikit-Learn、Keras 和 TensorFlow 进行机器学习实践。
同样是真实世界的项目,但这次会用到一些顶尖的机器学习库。不过别担心。如果你和我一样,不喜欢在不了解底层原理的情况下依赖库,那么你已经知道了。这就是为什么本书把这部分内容放在最后的原因。
结语
在放你走之前,我想给你一些建议。
-
您可以随意调整某些知识点的顺序。也许您想先学习Python,然后是线性代数,最后是统计学。没问题。
-
学习新知识后要多加练习。
-
在完全了解机器学习算法的运作原理之前,可以在任何阶段进行尝试。调整设置,看看会发生什么。好奇心是你的武器。
-
请耐心等待。我知道,这一切都需要时间,而且可能会很痛苦。但最终,一切都是值得的。
-
Kaggle。很多。
-
享受过程,而不是结果。



