必读 | 开发者 AI 转型指南
本文转自雷锋网,如需转载请至雷锋网官网申请授权。
人工智能…好吧,目前看来,这项尖端技术现在是流行的,同时也是一项会对人类产生决定性影响的技术。我们对人工智能的力量和它们在几乎任何行业中的有效使用方式感到惊讶。现在的机器人就像 100 年前的飞机。那么接下来会是什么?这个问题引发了许多情绪,从极大的兴趣、鼓励、成为这一过程的组成部分的渴望,到最后的恐惧、困惑和无知。是什么阻止了你参与人工智能的发展,成为了一个被动的旁观者?
你可以想象,转变成人工智能开发者是一条漫长而艰难的道路,但这并不意味着你不能完成这个目标。我要对怀疑者说一句话:即使你在编程、数学、工程方面没有任何经验,你也可以在家里从头开始学习人工智能,并开始将你的知识应用于实践,创建简单的机器学习解决方案,这些将是你成为人工智能开发者迈出的第一步。
几年前,Kaggle 的用户调查显示,在人工智能这个领域工作的人中,只有 30% 的人在学校学习过机器学习或数据科学。相反,66% 的受访者是自学的。超过一半的受访者说他们使用网络课程学习新的学科。所以,这只意味着一件事:
停止做梦,开始行动吧!
如果你决定这样做,本文将成为你迈出第一步的辅助工具。在这里,我将展示我眼中成为人工智能开发者的有效的学习路径。你知道,网上有很多资料可以选择,但我试着帮助你区分什么才是真正重要的。
你准备好了吗?
Part I. 首先,获得开始学习人工智能所需的基本技能
人工智能是复杂的研究之一,正确的学习策略尤为重要。我的意思是,你需要为学习做准备,你要先掌握一些基本的技能。如果你已经知道一些基本技能,那么你可以跳过这一阶段。但在其他情况下,我建议至少花几天或者一周时间来了解你需要学习领域的基础知识。
同时,你不需要在每件事上都成为大师。你只需要花点时间去了解一些基本概念就好。如果你想更深入地学习,现在先不要着急。不管怎样,它将有助于你在之后遇到问题时更好地在谷歌上搜索答案。
#1 抽象思维
抽象思维对于变得更聪明和获得解决问题的能力来说很重要。你拥有抽象思维吗?如果没有,是时候改变这种情况了。
获得良好的解决问题能力和逻辑推理能力是你现在的首要任务。机器学习是围绕着寻找数据中的模式来进行的。例如,与设计服务架构和调试服务架构相比,数据科学家花了更多的时间来生成假设、在数据阵列上准备和执行无休止的实验。
在专家的心目中,道路和谷歌地图的交叉点、自动取款机分析系统的时间序列中的的现金提取统计数据都会被转换成图表。没有用抽象的形式表现普通事物的技巧是不行的。所以,说到思考,我们需要优先保证思考的深度,这是解决问题的方法。
如何学会深度思考?对你所看到的一切事物进行提问。也许提高抽象思维能力的最好方法是提高你的精神耐力,开始更多地思考事情。以下是一些有趣的视频,或许可以帮到你:
顺便说一下,提高你的数学技能也有帮助,因为数学是一种抽象的思维方式。在统计数据中寻找模式也可以提高你在这方面的能力。所以,注意下一个技能。
#2 基本的数学素养
人工智能和机器学习这类职业需要你具备基本的数学知识。这里的关键词是「基本」。你需要阅读或更新基础理论,无需阅读整个教程,只需关注关键概念:
-
数据分析用到的线性代数:标量、向量、矩阵和张量
-
数学分析:导数和梯度
-
概率论基础
为了快速学习线性代数和数学分析,我推荐以下课程:
-
Khan Academy 提供关于线性代数和数学分析的简短实践课程。
-
麻省理工学院公开课:这个软件上有很好的 ML 数学学习课程。
-
Artificial Intelligence:「Machine Learning and Predictive Analytics」,带你轻松走向人工智能的无限可能。
#3 如果你想研究机器人的话,就要学物理
对所有的工程领域来说,对科学的扎实理解很重要。物理学特别有用,因为它为机器人学提供了能量、电路、力学、材料科学和其他关键课题的基础知识。然而,所有的科学都是有用的,因为它们教会我们如何将数学应用于实际问题。
在哪里学物理?不要惊慌。这里有一个很棒的 YouTube 频道,你可以在上面学习工程物理。享受你的学习吧!
#4 统计方法
统计方法是数学学习的重要基础之一,它可以让你更加深入了解机器学习算法的原理,用于分析数据和数据集的主要技术有:
-
平均值
-
标准偏差
-
回归分析
-
样本尺寸测定
-
假设检验
Free statistical analysis courses on EdX
Key Types of Regressions: Which One to Use?
Statistical Methods for Machine Learning
#5 算法,从头到尾!
注意!我们现在已经进入学习人工智能最基本的领域。用「必不可少」来形容算法远远不够。如果你想成为人工智能领域的研究者,你必须成为算法方面的专家。你应该在这方面有出色的问题解决和分析技巧。所以不要回避前面的步骤,它将帮助你高效地完成给定的任务。
算法似乎太枯燥、复杂,难以掌握。在某种程度上,这是真的。然而,如果你真的、疯狂地,深深地想成为一个人工智能专家,你必须更新你的知识,没有其他的捷径可走。你可以用我以前的一篇文章来简化这个任务——「Top 10 Machine Learning Algorithms for Data Science」——这里我用简单的语言解释了十大最常见算法的核心原理。
但这还不够,所以我建议你再往前走一步。看看这些有用的东西:
-
Steven S Skiena 的「The Algorithm Design Manual」
-
Daniil Korbut 的「Machine Learning Algorithms: Which One to Choose for Your Problem」
-
Daniel P.Clark 的「Visualizing Algorithms Before Implementation」
以上这些都是准备工作。如果你已经掌握了所有这些基本技能,你可以自信地开始教机器学习啦。
Part II. 开始学习最重要的部分——人工智能
就这样,我们来到了最有趣的部分。有了学习人工智能所必需的知识基础,你就可以容易地理解下面的要点,像婴儿学走路一样一步一步更接近你的梦想。是的,没错,这些只是蹒跚学步。请记住,这是不可能速成的。
#1 计算机科学、程序设计(关注 python)
人工智能开发人员的工作的一个重要部分是处理基于计算机科学的应用程序,包括编程语言,如 python 和编码。所以,在这一步上要有耐心,让自己对学习保持超群的关注和专注,因为你要学习很多东西。
为什么是 Python?根据所有的民意调查,Python 现在是人工智能和数据科学领域最流行的语言。此外,这个工具很容易学习和使用。它里面有很多库可以调用,网上也可以找到大量的在线课程和资料。所以你可以选择符合你喜好的学习方式。
初学者必学资源:
-
A Beginner's Guide to Python for Data Science——综合指南,也适用于那些梦想在人工智能领域工作的人。
-
Automate the Boring Stuff with Python——这本书证明了一个事实:编程的主要内容不是语法知识,而是理解如何让机器执行你的指令。
-
How to Think Like a Computer Scientist——另一个很好的开源书籍项目,指导你像专业人员一样编程。
-
Learn Python the Hard Way—一本优秀的手册书,解释了基础知识和更复杂的应用程序。
-
The Python Tutorial——官方文档。
您还可以学习其他语言,如 C++/R/Java,但对我个人而言,Python 是 AI 和数据科学最合适的工具。想知道为什么吗?阅读我以前的文章,我在其中详细解释了关于这一点的所有内容:Python vs R. Choosing the Best Tool for AI, ML & Data Science。
#2 学习人工智能本身
Francesco Corea 开发的人工智能知识地图
想象一下你是如何理解上面的计划的,我会像 Andrew Ng 那样说「如果你不明白,请不要担心」。只需要看到整个画面,了解每个元素的位置。顺便说一句,Andrew 是人工智能领域最有影响力的人之一,你会经常看到这个名字的。他参与创建了在线机器学习网站 Coursera,现在是斯坦福大学的副教授。
好吧,我们回到主题,人工智能是一个广泛的研究领域,包括许多理论、方法、技术和实践,以及以下基本概念:
机器学习
器学习是实现人工智能的过程。这是计算机在没有人为干预的情况下学习的能力。人工智能在没有机器学习的情况下是可能的,但这将需要一百万行具有复杂规则和条件的代码。换句话说,机器学习不是为每个特定的任务写下详细的指令,而是使用一种自己学习寻找解决方案的算法。
机器学习主要有四种类型:有监督、无监督、半监督和强化学习。在有监督的机器学习中,该算法通过处理和分类、标记大量数据来学习如何识别数据。在无监督的机器学习中,算法识别大量未标记数据中的模式和类别——通常比人脑更快。
学习什么?到哪里学?
神经网络
迄今为止,人工智能发展最快的部分可能是神经网络。神经网络和人工智能的研究应该从数学的两个分支——线性代数和概率论开始。这是人工智能不可动摇的支柱。神经网络是一种机器学习,帮助智能机器在特定情况下找到正确的连接来纠正任务或做出预定的决定。
以下是一些很好的学习资料:
-
Neural Network in Python——这是一个很好的教程,你可以从一开始就构建一个简单的神经网络。里面有很多有用的插图,你会了解梯度下降的原理。
-
How to build your own Neural Network from scratch in Python。
-
Machine Learning for Beginners: An Introduction to Neural Networks——关于神经网络如何工作以及如何在 Python 中从头开始实现它的一个很好的简洁教程。
深度学习
深度学习试图模拟新皮质神经元层的活动。人工神经网络(ANNs)——一种已经这样做的算法。人工神经网络由相互作用的人工神经元组成。它们是分层排列的——每一层都对某些符号做出反应,例如,识别图像时图形的弯曲和边界。学习被称为深度,因为有大量的层次。
认知计算
人工智能使用认知计算来模拟通常由人类执行的过程,解释图像和语言,然后可以根据反应顺序说话和行动。人工智能和机器学习中有很多方法是从自然界的生物得到的灵感。而且,虽然早期的人工智能专注于制造模拟人脑的机器的宏伟目标,但认知计算正朝着这个目标努力。
认知计算是一种建立在神经网络和深度学习的基础上,应用认知科学的知识来构建模拟人类思维过程的系统。然而,认知计算并没有专注于单一的技术,而是涵盖了几个学科,包括机器学习、自然语言处理、视觉和人机交互。
计算机视觉
人工智能是基于图像识别以及对图像或视频中发生的事情的深入研究。当机器能够处理、分析和理解图像时,它们可以单独解释图像,并就输入的处理和使用提供自己的决策。
人工智能的话题非常深刻,到目前为止我们只触及了表面。现在是走向实践的时候了。
Part III. 练习技巧
好吧,如果你准备开始长征,那么我祝贺你!现在你已经具备了一定的知识基础。对于我个人来说,这个阶段最有效的学习方案是两种方式:参加 Kaggle 竞赛,选择要处理的数据集并实践这个过程。
参加 Kaggle 比赛
Kaggle 经常举办数据分析竞赛。我建议先参加没有奖品的比赛,因为它们是最容易的,对初学者更友好。随着时间的推移,你可以转向更复杂的任务。如果这种练习方法适合你,阅读关于如何参加 Kaggle 比赛的指南——The Beginner's Guide to Kaggle。
数据集实践:
适度的休息和一些自驱力
能已经猜到了,你有很多东西要学。但是如果你有你的目标,你真的对所有这些东西感兴趣,你会很高兴地走上这条艰难的学习道路。
现在,让我们记住学习人工智能需要注意的所有要点:
-
准备和获取知识库
-
学习人工智能的关键知识
-
练习技能
-
相信自己会是胜利者
最后,多一点动力,因为动力永远不嫌多,对吧?
每个人在拳击场上都有恐惧感。你很害怕。你的对手也很害怕。但是,真正的区别是有的人会向前走,有的人则会后退一步。