目前,人工智能(AI)非常热门,许多人都想一窥究竟。如果你对人工智能有所了解,但对机器学习(Machine Learning)的理解有很多的困惑,那么看完本文后你将会对此有进一步深入理解。在这里,不会详细介绍机器学习算法的基本原理,而是通过将比较有意思的视频(YouTube)和文字相结合,逐渐增加对机器学习基础的理解。
当看到本文时,请坐下来放松一下。因为下面的这些视频需要花费一点时间,但看完视频后,你肯定会被吸引继续阅读下去。此外,当阅读完本文后,你应该会对现在最热门的技术——机器学习有了全面的知识基础,并对此产生学习热情,最终能学到什么程度完全取决于个人的努力,本文只是一块敲门砖。
为什么机器学习现在如此热门
人工智能总是很酷,从科幻电影到现实中的阿法狗、聊天机器人等,一直吸引人们的关注。长久以来,人们认为人工智能一直围绕着程序员对某些事情应该如何表现的功能性猜测。然而,程序员并不总是像我们经常看到的那样对人工智能编程同样有着天赋。正如我们经常看到的那样,比如谷歌“史诗游戏失败”中在人工智能、物理、有时甚至是经验丰富的人类玩家中都存在有过失。
无论如何,人工智能有一种新的天赋——通过该项技术,我们可以教电脑玩游戏、理解语言、甚至识别人或物。这个只显露冰山一角的新技术来源一个旧的概念——机器学习,直到最近几年,它才获得了理论之外的处理能力,这源于数据量的爆炸、计算机性能的提升以及算法理论的突破。
通过人工智能这项技术,我们不再需要人为地提出高级算法,只需要教会计算机自己来提出高级算法即可。
那么这样的事情是如何实现的呢?机器学习算法并没有真正被类似于程序员编程那样进行编写,而是自动生成。观看下面这个简短的视频,该视频为创建人工智能的高级概念提供了出色的注释和动画。
https://www.youtube.com/watch?v=R9OHn5ZF4Uo
是不是一个很疯狂的处理过程?并且,当算法完成后,我们甚至无法理它,它就像一个黑匣子。比如,该项技术应用于视觉领域中是用人工智能玩马里奥游戏。作为一个人,我们都知道如何躲避障碍物和吃金币,但人工智能识别所产生的预测策略是疯狂的,见下面的视频:
是不是很吃惊?看完上述视频后,我们的问题是对机器学习不了解,并且不知道如何将它与电子游戏联系起来。
幸运的是, Elon Musk已经提供了一家非营利性公司来做后者。通过十几行代码,你可以将人工智能与任何你想要玩的游戏/任务联系起来, 快去尝试一下吧。
为什么要使用机器学习?
关于为什么要关心机器学习,这里有两个很好的答案。
- 首先,机器学习使计算机可以做到计算机以前不能实现的事情。如果你想尝试一些新事物,或者不仅仅是新事物,而是影响全世界,你都可以用机器学习来完成。
- 其次,如果你不影响世界,世界将影响你。
现在,很多大型公司在机器学习上投入了很多的研发和投资,我们已经看到它正在改变世界。思想领袖警告我们不能让这个新的算法时代存在于公众视线之外。想象一下,如果一些企业巨头控制着互联网,如果我们不掌握这项武器,科学的真理将不会被我们占据。Christian Heilmann在他关于机器学习的谈话中说得很好:
“我们能够希望其他人善用这种力量。对于个人而言,不要认为这是一个好的赌注。我宁愿玩,也要参加这场科技革命,你也应该参与。”——Chris Heilmann的机器学习谈话视频
对机器学习感兴趣
机器学习这个概念很有用而且很酷,上述内容让我们比较抽象地了解了它,但机器学习算法究竟发生了什么?它是如何运作的?我们还不是很清楚。
如果你想直接进入到理论研究,建议你跳过这一部分继续下一个“如何开始”部分。如果你有动力成为机器学习的实干者,那么就不需要看下面的视频了。如果你仍然试图了解机器学习可能是什么,下面的使用机器学习完成数字手写体识别的视频非常适合引导读者建立一种机器学习的逻辑:
是不是很酷?该视频显示每个层变得更简单,而不是变得更复杂。就像函数将数据分解成较小的部分一样,以抽象的概念结束。你可以在该网站( Adam Harley)与此流程进行交互。
http://scs.ryerson.ca/~aharley/vis/conv/flat.html
此外,机器学习的经典实例之一是1936年的鸢尾花数据集。在参加 JavaFXpert的机器学习概述的演示中,我学会了如何使用工具来可视化调整和反向传播神经网络上神经元的权重。可视化过程可以让我们看到它是如何训练神经模型。
使用Jim可视化工具训练鸢尾花神经网络
即使你不是一个Java爱好者,Jim提供了一个1.5小时的机器学习概念介绍也是比较有用的,其中包含上述许多例子的更多详细信息。
这些概念令人兴奋,你准备好成为这个新时代的爱因斯坦吗?机器学习算法每天都在发生突破,所以现在就开始吧。
如何开始?
目前,网络上有大量的资源可用。首先,应该订阅一些时事通讯、技术博客、微信公众号,以保持个人知识的滚动。比如medium、爱可可-爱学习、云栖社区等。
至于如何进行深入学习,我推荐下面两种方法:
从头到尾拧完n颗螺栓
在这种方法中,将需要你全面了解机器学习算法和相关的数学知识。我知道,这种方式听起来很难完成,但要想真正地了解算法细节,就必须从头开始编码实现。
如果你想成为机器学习中的一员,并在核心圈中占据一席之地,那么这就是你的选择。我建议你试试一些公开课app(比如,course、Brilliant.org),并参加人工神经网络课程。经典的网络课程主推Andrew Ng 老师的机器学习课程以及周志华老师的书籍等。
在学习的同时,可以完成对应的线下作业。通过完成对应的作业,会进一步加深对知识的理解,因为这些作业并不简单。但更重要的是,如果确实完成了这项工作,你将对机器学习的实施有进一步深刻的理解,这将使得你以新的和改变世界的方式成功地将其应用到对应的场景中。
快速上手
如果你对编写算法并不感兴趣,但仍想要使用它们来创建一个令人惊叹的网站/应用程序,你应该跳转到学习TensorFlow和对应的速成课程。
TensorFlow是用于机器学习的开源软件库。它可以以无数种方式使用,甚至可以使用JavaScript,这里是一个速成课程。更多课程信息请点击此处查看。
如果选修课程不适合你的学习方式,那你仍然是很幸运的。如今不必学习机器学习的细节就可以掌握如何使用它。此外,还可以通过多种方式有效地机器学习作为服务成为技术巨头。
数据是这项技术很重要的原材料,如果你的数据比较合适,那么使用机器学习建模可能是最佳解决方案。无论是使用机器学习中的哪一种算法,现在就开始吧。
成为创造者
我要对所有上述的人和视频说声谢谢,它们是我学习机器学习起步的灵感,虽然我在该领域仍然是个新手,但是当我们拥抱这个令人敬畏的时代时,我很高兴为他人指明一条学习道路。
如果你想学习这门技术,就必须与机器学习领域的研究者有所联系。没有友好的面孔、回答和讨论,任何事情都将变得很难。一般技术圈的人都是比较热心肠的,遇到问题先google,找不到答案就咨询圈内人,相信会有友好的同行给出友好的建议。
我希望这篇文章能激励你和周围的人学习机器学习,我也很乐意和你一起寻找酷炫有趣的机器学习代码,希望本文对你有所帮助。
作者信息
Gant Laborde,软件顾问,教授
个人主页:https://github.com/GantMan/fun-machine-learing
本文由阿里云云栖社区组织翻译。
文章原标题《Machine Learning: how to go from Zero to Hero》,译者:海棠,审校:Uncle_LLD。
文章为简译,更为详细的内容,请查看原文。