理解为什么现在机器学习如此热门

电子说

1.2w人已加入

描述

编者按:Infinite Red首席技术架构师Gant Laborde通过有趣的视频和平易近人的文字带你入门机器学习。

如果你对人工智能和机器学习的了解是一个大大的问号,那么本文正是为你准备的。我将通过富于灵感的视频和平易近人的文字逐渐增加你的卓越度(Awesomenessicity™)。

坐下来,放松一点。这些视频时长分别在5-20分钟,如果这些视频不能给你足够的启发,你完全可以停止阅读后文。然而,如果你发现你读到了文章的末尾,那么你已经具备足够的知识和激情进入一个全新的世界。进行到哪一步,完全取决于你。

理解为什么现在机器学习如此热门

A.I. 一直很酷,《乓》中移动乒乓球拍的是A.I.,《街霸》中用组合技把你打上天的也是A.I.

雅达利1972年推出的乒乓球街机游戏

A.I.总可以通过程序员的猜测来实现,程序员猜测某事物应该如何表现。有意思的是,程序员并不像我们经常认为的那样具备编程A.I.的天赋。google搜索“epic game fails”(史诗级的游戏失败),你可以看到大量游戏中A.I.和物理系统的故障(有时能看到有经验的人类玩家的失败)。

不管怎么说,现在A.I.有了一项新天赋。你可以教授计算机玩视频游戏,理解语言,甚至如何识别人物或物体。这些新技术的冰山一角来自一个古老的概念,这一概念仅仅在最近才获得足够的处理能力,从而能够存在于理论之外的场景。

我说的是机器学习(Machine Learning)。

你不再需要想出一个高级的算法。你只需教授计算机自己想出一个高级算法。

这样的事情到底是怎么发生的?算法更多地不是写出来的,而是繁殖出来的。我并没有使用繁殖作为类比。

哇!这是一个疯狂的过程!

算法实现之后,我们怎么能够不理解算法是如何运作的呢?下面的视频展示了一个通关马里奥的A.I. 身为人类,我们都了解如何玩横向卷轴游戏。但是A.I.的预测策略很是疯狂。

令人印象深刻吧?这个想法很令人惊讶,是吧?唯一的问题是我们不知道机器学习,而且不知道如何将机器学习接入视频游戏。

幸运的是,Elon Musk创办了一家非盈利公司OpenAI,让你只用写几十行代码就可以将任何A.I.接入无数的游戏/任务。

为什么应该使用机器学习

关于你为什么应该在乎机器学习,我有两个好答案。首先,机器学习(ML)正让计算机处理我们之前从未让计算机处理的任务。如果你想做一些新的事情,并不仅仅对你而言是新的,而且对世界而言是新的,你可以用ML来做这件事。

其次,如果你不影响世界,世界将影响你。

现在知名公司正投资ML,ML将改变世界,我们拭目以待。思想领袖发出警告,我们不能让这一新时代的算法脱离公众视线。想象一下如果某几家企业控制互联网会是什么结果。如果我们不参与,科技将不属于我们。我认为Christian Heilmann关于ML的演讲中说得很好:

我们可以希望其他人仅仅善意地使用这一力量。我却是不看好这个赌博的人。相反,我宁愿成为这场革命的一部分。你也可以。

好,现在我有点兴趣了……

这个概念挺有用,也挺酷的。我们已经在一个较高的层次了解这个概念,但机器学习的过程中到底发生了什么?它是如何工作的呢?

如果你想直接上手,我建议你跳过这一小节,直接阅读下面的“如何入门”一节。如果你的动机是想应用机器学习技术,你不需要阅读这一节。

如果你想要尝试理解机器学习的工作机制,推荐观看下面的视频,该视频使用经典的机器学习手写作为例子,带你了解机器学习的逻辑。

网络就像一个函数,随着层数的加深,小块咀嚼数据,最终得到抽象概念。Adam Harley做了一个交互界面,你可以在上面亲自手写数字,看看神经网络模型能否正确识别,以及相应各层的激活情况。

上面的交互界面展示的是数据流经已训练模型的过程,而JavaFXpert开发的JavaFXpert/visual-neural-net-server项目(代码发布于GitHub上)则可视化了网络的训练过程。

机器学习

演示使用的数据集是iris数据集(源自1936年),可视化了神经网络上反向传播权重的过程。

我是通过JavaFXpert面向Java开发者介绍机器学习的报告上发现这个可视化工具的。即使你不是Java开发者,我也推荐你观看JavaFXpert的这次报告,因为其中介绍了很多机器学习的概念。

你可以在YouTube上观看这次报告:(时长一个半小时)

https://www.youtube.com/watch?v=I7GMyP6jdU0

译者注:如果访问YouTube遇到麻烦,文末附有获取视频下载地址的方法。

这些机器学习的概念真是令人激动!机器学习领域每天都有突破,所以请从现在开始。

如何入门

机器学习有很多资源。我将推荐两条路线。

基本原理

通过这条路线,你将在算法和数学层面理解机器学习。我知道这听起来很难,但是从头开始,理解细节和代码是很酷的。

如果你打算加入ML的主力军,并深入参与讨论,那么这是为你准备的路线。

我建议你尝试下Brilliant.org的应用(对任何喜爱科学的人而言,这是一个很棒的应用),然后参加上面的人工神经网络课程。该课程没有时间限制,你需要用手机打发时间的时候可以学下ML。

注意,本课程在等级一之后需要付费。

你可以同时学习吴恩达的机器学习课程(斯坦福线上课程)。上面提到的JavaFXpert的报告中推荐了这门课程。另外,Jen Looper也向我推荐过这门课程。

很多人警告说这门课程比较难。对某些人来说,这意味着知难而退,但对另一些人而言,这正是深入学习这门课程并取得认证的理由。

课程是100%免费的。不过,如果你打算取得认证的话,需要为此支付一笔费用。

这两门课程中有很多动手实践的地方。如果你成功完成了这两门课程,会让每个人印象深刻,因为它们可不简单。

不过,更重要的是,如果你确实完成了这两门课程,你将深入理解机器学习的实现,有助于你以创新的方式应用机器学习改变世界。

极速赛车手

如果你对编写算法不感兴趣,但希望使用机器学习创建下一个突破性的网站/应用,你应该直接跳到TensorFlow以及相应的速成课程。

TensorFlow是机器学习开源软件库的事实标准。它有无数的应用,你甚至可以在JavaScript中使用TensorFlow。

如果参加一门课程不是你的风格,你很幸运。今时今日,你无需学习ML的本质就可以应用它。你可以有效地将ML作为一项服务使用,利用技术巨头训练好的模型。

不过我仍然提醒你注意,这样可无法保证你的数据的安全性(甚至是你自己的安全性),不过ML服务很有吸引力。

如果你方便上传数据到Amazon/Microsoft/Google,也许使用ML服务对你而言是最佳方案。我喜欢将这些服务看作是通向更高级的ML的介绍人。无论如何,现在就开始是个好主意。

让我们成为创造者

我想借此机会向所有之间提到的人以及视频作者表示感谢。他们在我的入门过程中给了我不少启发,尽管我现在仍然是ML世界的一个新人,我很高兴能为其他人照亮拥抱这一令人惊叹的新时代的路径。

当你开始学习新东西的时候,和他人交流是比不可少的。没有友好的面孔、答案、热闹的讨论区,任何事情都会很难。能够提问并得到答案,效果大不一样。你可以在推特上关注我(@GantLaborde),以及前面提到的其他人。Reddit的MachineLearning板块也是一个交流的好地方。

下面是一个真实的例子,我在推特上和朋友讨论高方差和过拟合问题。

机器学习

我希望这篇文章启发了你和你周围的人来学习ML!

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分