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

一、简介

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

众所周知,与自然语言处理、计算机视觉等相关的技术已经出现并发展成为每天被数百万用户使用的解决方案。

尽管人们使用“人工智能”这一术语,但我们离《流浪地球2》电影中那样先进的MOSS还远着呢。

如今使用最广泛的AI子领域是机器学习,而机器学习又有一个子领域——深度学习,它正在急剧增长。

在这份指南中,我旨在描述一条软件工程师开始理解机器学习如何工作以及如何将其应用到项目中的路径。

是的,你可以直接使用谷歌API或亚马逊的某些神奇API来进行语音识别,但了解它是如何工作的,为什么有效,甚至如何制作自己的API服务并根据自己的特定需求进行调整,这是非常了不起的。

记住,作为一名开发者,每一个工具都是一种新能力。

我已经阅读、观看并完成了所有这些资源的学习,甚至还为其中一些资源支付了认证费用,虽然这不是必须的,但俗话说的好,有投入才有回报,适当的投资自己,将来的你会无比感谢自己。

让我们深入这些话题。

二、数学知识的重要性

也许你从未有机会学习过大学水平的数学,或者你学过,但由于JavaScript和CSS占据了你所有的记忆,你几乎忘记了这些知识。

在开始学习机器学习(ML)和深度学习(DL)之前,有三个主题是你必须了解的,或者至少要对其有一个基本的掌握:线性代数、微积分和统计学。

如果你想深入学习机器学习和深度学习所需的数学知识,可以查找bilibili上的课程,例如宋浩老师著名的线性代数课程。

但我们必须面对现实,大多数人没有时间或耐心去做这件事。

因此,我将为您提供上述三个主题的速成课程。

线性代数

只需观看YouTube频道3Blue1Brown上的整个系列《线性代数的本质》。

这个系列通过视觉解释,将一些曾经难以理解的概念变得非常简单!

与宋浩老师的课程内容相比,它的内容虽然相对简略,但足以作为入门,并且随着你在机器学习和深度学习中的进步,你可以继续学习其他主题。

微积分

3Blue1Brown还在YouTube上免费提供了一整套关于微积分的系列:《微积分的本质》。直达

再次强调,他非常擅长于提供直观的解释,让你理解为什么以及如何,而不是仅仅向你展示一些随机的方程式。

统计学

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

这是一本客观的书籍,为每个概念提供了一些很好的例子。

阅读起来也很快。

正如书名所暗示的,它更适合数据科学家,但了解一些统计学的基础知识总是有益的,而这正是这本书的用途。

阅读它后,你不会成为一名统计学家,但你会学到一些有用的东西。

三、重视机器学习

每个人都想直接跳入深度学习,并成为那个在12GB GPU上训练单一模型达一周之久的酷人物。但要正确理解深度学习,你首先需要了解机器学习!

从头开始

概念、思维方式、对事物工作原理的“感觉”都从这里开始,而没有人比Andrew Ng教授在他的“机器学习”课程中更能教授这些概念了。你可能认为这门课程已经过时,技术上或许如此,但从概念上来说,它比其他任何课程都好。Ng教授使得理解他教授的每项技术中应用的数学变得容易,并在这门简短而精准的课程中给你一个坚实的理解基础。课程中的所有练习都是在Octave中完成的,这是Matlab的一种免费版本,你将在课程结束时实现你自己的神经网络!Octave的语法对任何程序员来说都容易掌握,所以不要让这成为你的障碍。

随机森林

我说了所有主要算法,对吧?实际上,Andrew Ng的课程中有一个瑕疵,他没有涵盖随机森林。fast.ai的“面向编码者的机器学习入门”是他课程的绝佳补充。Jeremy Howard在Ng课程中缺失的部分上变得非常实用,涵盖了对许多经典问题来说是最佳解决方案的主题。fast.ai采用的是自上而下的方法,意味着他们会先向你展示如何解决问题,然后解释为什么有效,这与我们在学校里习惯的方式完全相反。Jeremy还使用了实际的工具和库,所以你将通过编码行业验证的解决方案来学习。

四、深度学习

终于到了!我们所有人都为之而来的深度学习!再次强调,最佳资源是Ng教授的一系列课程。深度学习专项课程共有五门课程,从基础知识到特定主题(如语言、图像和时间序列数据)不断发展。好的一点是,他从他的经典机器学习课程的最后一部分继续,所以感觉就像是第一门课程的延伸。他非常简洁地传授数学、概念以及工作原理和原因,像我所见过的少数人一样。唯一的缺点是他在这门课程中使用了Tensorflow 1.x(谷歌的DL框架),但在我看来这只是一个微不足道的细节,因为解释和练习都做得非常好。你可以相对容易地掌握最新版本的框架,为此有最后一部分指南,一本书。

要学的内容太多了,我只想速成!!!: 这本书可能是你开始所需要的唯一东西,它是Aurélien Géron的《动手学习机器学习与Scikit-Learn、Keras和TensorFlow:构建智能系统的概念、工具和技术》。这本书涵盖了很多内容,从经典机器学习到最新的深度学习主题。使用行业级框架和库的好例子和练习。我敢说,如果你真的很匆忙,你可以跳过我之前说的所有内容,直接去看这本书。你会错过其他提到的资源中包含的大量信息,但Géron书中的实用和可操作知识足以在你的下一个项目中处理许多想法。如果你在只阅读这本书后感到受限,回去学习其余的材料,它将填补你可能有的空白,并给你一个更坚实的理解。

关于框架X或Y? “嘿,我听说过PyTorch和其他大家都在谈论的框架或库X。” 作为一名软件工程师,你比任何人都更清楚技术是如何快速发展的。不要为此疯狂,在学习了这份指南中的基础知识后,你可以轻松地转到PyTorch文档或任何其他库或框架上,并在一两周内学会如何使用它们。技术和概念都是一样的,只是语法和应用的问题,或者甚至是你对任何特定工具的喜好。

结论: 总而言之,尽管这看起来可能很多,我试图消除所有的噪音,在这个过程的最后,你会感到自信,理解幕后发生的事情、行业术语,甚至能够阅读该领域发布的一些论文,以跟上最新的进展。

你可能感兴趣的:(学习,机器学习,深度学习)