如何开始学习人工智能?


16

我是一名软件工程专业的学生,​​并且是AI的完整入门者。我已经阅读了很多有关如何开始学习AI的文章,但是每篇文章都提出了不同的方法。我想知道你们中的某些专家是否可以帮助我以正确的方式开始。

其他一些具体问题

  1. 我应该专注于哪种语言?许多文章建议将Python,C ++或Lisp用于AI。我可以使用Java代替上述任何其他语言吗?

  2. 我应该具有什么样的数学背景?在第一年,我做了离散数学,其中包括以下主题:集,矩阵,向量,函数,逻辑和图论(他们简短地讲授了这些主题)。现在还有其他我应该学习的主题吗?例如微积分?

如果可能的话,我将不胜感激,可以使用任何资源或书籍来入门,或者也许你们可以给我提供详细的程序,以便跟上您的水平。

注意:目前,我想专注于神经网络和机器学习。之后,我想探索机器人技术和自然语言处理。


Answers:


16

人工智能是一个非常广阔的领域,涵盖了计算机科学,数学,硬件设计乃至生物学和心理学的许多非常深层的领域。至于数学:我认为微积分,统计和最优化是最重要的主题,但是学习尽可能多的数学不会受到伤害。

对于初学者来说,有很多关于AI的免费的免费入门资源。我强烈建议从以下内容开始:http : //aiplaybook.a16z.com/ 他们还发布了两个有关AI通用概念的视频,您可以在Vimeo上找到它们:“ AI,深度学习和机器学习:入门”。 ”和“人工智能的承诺”

一旦对基本的AI术语和方法有了清楚的了解,就必须弄清楚自己的目标是什么。您想开发哪种AI软件?您对哪些行业感兴趣?您有什么机会参与大公司的项目?当您确切地知道要实现的目标时,选择合适的工具会更容易。

对于大多数人工智能新手来说,最有趣的领域是深度学习。为了明确起见,机器学习之外有很多AI领域,而深度学习之外还有很多机器学习领域。(人工智能>机器学习>深度学习)最近的发展和大肆宣传的新闻都是关于DL的。

如果您也对深度学习感兴趣,则必须从学习人工神经网络的概念开始。幸运的是,了解基础知识并不是很困难,并且网络上有很多教程,代码示例和免费的学习资源,并且有许多开放源代码框架可供尝试。

最受欢迎的此类深度学习框架是TensorFlow。它得到了Google的支持。爱它或恨它,它是一个基于Python的框架。还有许多其他基于Python的框架。教程中也经常提到Scikit-learn,Theano,Keras。(提示:如果使用Windows,则可以下载包含所有这些框架的WinPython。)

关于Java框架,不幸的是没有太多选择。DL最杰出的Java框架是Deeplearning4j。它是由一家小型公司开发的,其用户群比TensorFlow周围的人群小得多。此框架的项目和教程较少。但是,行业专家说,基于Java的框架最终可以与基于Java的大数据解决方案更好地集成,并且它们可以提供更高级别的可移植性和更容易的产品部署。只是一个旁注:NASA的喷气推进实验室将Deeplearning4j用于许多项目。

如果您决定顺其自然,并且想开始更多地了解TensorFlow,建议您查看YouTube频道“ DeepLearning.TV”,“ sentdex”和“ Siraj Raval”。他们有不错的教程和一些很棒的演示。如果您决定进行更深入的研究,则可以在udacity或Coursera上注册在线课程。

您可能还很感兴趣地知道,还有其他Java语言虚拟机的深度学习框架以及其他语言,例如Clojure。(Clojure是LISP的一种方言,它是由约翰·麦卡锡(John McCarthy)发明的,他是创造“人工智能”一词的同一位计算机科学家。换句话说,有更多现代和流行的编程语言和工具,但是它仍然是可能的,而且还是很酷的。 /使用最初为AI设计的AI语言。位于Boulder的ThinkTopic和位于汉堡的Freiheit是两家将Clojure用于AI项目的公司。如果您想看到一些很棒的东西,可以激发在AI和机器人技术中使用Clojure的灵感,我建议您观看YouTube视频“ OSCON 2013:Carin Meier,《带Clojure的飞行机器人的乐趣》”。

(+++如果我说错了任何人都可以纠正我。+++)


由于Java的框架较少,是否可以编写自己的框架以替代TensorFlow?谢谢
aspire29 '17

1
创建自己的框架来研究基本概念是一个很好的主意。另一方面,TensorFlow由庞大的社区和许多非常有才华的专业人员开发。老实说,我认为任何自制框架都无法与之抗衡。顺便说一句,我不明白为什么Java AI框架如此之少...考虑到它仍然是第一。编程语言和JVM随处可见。我猜想AI仍然是研究而不是生产。
akopacsi

6

您会发现微积分和线性代数在AI / ML技术中都有一定的应用。从许多意义上讲,您可以辩称大多数ML都归结为线性代数,而在其中使用了微积分。用于训练神经网络的反向传播算法。

您也可以参加一两门概率和统计学课程。

IMO对编程语言的选择不太重要。您几乎可以使用任何主流语言和许多非主流语言来进行AI / ML。最大的区别在于性能和库/工具的可用性。例如,C ++通常要胜过Java或Python,它可以让您“贴近现实”,从而真正实现硬件功能的最大化。但是,Python具有非常好的FFI,通常与C或C ++结合使用。Python,C ++,Java,R,Octave / Matlab和其他一些语言往往具有许多可用的高质量库,这对您来说可能很重要,具体取决于您要执行的操作。

就是说,您可能不想尝试在例如COBOL或PL / I或RPG / 400之类的机器上进行ML / AI。坚持至少合理受欢迎的东西。在mloss.org上浏览一下,看看哪些库/工具包提供了不同的语言,这应该可以指导您的选择。


5

当我对AI感兴趣时,我从最基本的东西开始。我的第一本书是罗素和诺维格的《人工智能-一种现代方法》。我认为这是一个不错的起点,即使您对Deep Nets最感兴趣。它不仅处理基本的AI概念和算法(专家系统,深度优先和广度优先搜索,知识表示等),而且还处理基础数学(贝叶斯推理,一阶逻辑,NL n-grams等)。以及一些众所周知的问题(例如,旅行商问题)。

学习统计信息也是个好主意,因为您对ML特别感兴趣。在提到这本书之后,您还应该对下一步要学习的东西有个好主意。

  • 不太在乎编程语言。

了解编程本身和相关技术更为重要。了解有关数据结构,算法和不同编程范例(如OOP,函数式编程等)的知识。尝试理解编程背后的逻辑,而不仅仅是一种特定的语言。毕竟,一旦您了解如何编程,学习一门新语言就不那么难了(然后学习一种新语言或多或少就是语法糖)。


1
我对可读性进行了一些编辑,并添加了指向教科书的链接。好的建议,尤其是re:编程语言。(请看使用“任何语法的语言”的编码人员:) 确实可以归结为给定项目或任务的最佳选择或最方便的选择。
周公克


3

首先要启动AI,首先要了解什么是AI。为什么MNIST的准确性在2012年之后迅速增加。为什么机器学习需要AI来提高其准确性。

要开始使用AI在机器学习上构建应用程序,您不需要数学或某种火箭科学。您迟到了,我的兄弟们为所有机器学习问题(例如包装器)建立了捷径。您只需要将数据传递给方法,方法就可以解决所有问题。从MNIST的问题开始是令人兴奋的。了解MNIST的历史,并在其上使用基本算法。尝试线性回归,Logistic回归,Kmean clusting,KNN。机器学习工具Skite learning(python lib)或Tensorflow(python lib)tflearn(Tensorflow的高级api,如包装器)都是开源的。可以在GitHub上找到示例。开始在GitHub上搜索。您找到了一个很好的例子。对于两个lib。使用kaggel解决问题参与竞争。

当您完成以上所有算法时,请尝试着重于您的错误。现在AI开始了。尝试弄清楚神经网络如何帮助您减少错误并提高准确性。然后尝试一些基本的神经网络,例如Sigmoid,relu和cnn。不要忘记在神经网络中使用辍学。您可以将Tensorflow或keras或Tensorflow与keras一起使用

并排检查3蓝色1布朗的线性代数视频,以改善数学。每天一次,但每天都有一个视频。

现在,专注于逻辑(任何算法)背后的数学,您可以尝试开设机器学习课程。

使用Tensorflow来构建Android应用程序,IOS应用程序,RaspPi Check Tensorflow开发者峰会2016/2017。

或者,如果您需要速成课程,请检查此https://youtu.be/u4alGiomYP4


1
让我们弄清楚,AI不仅是阅读html书的内容,而且您还可以开始编程,让我们在这里变得清楚!OP需要咨询来自牛津,哈佛等地的教授
昆腾尼亚州

3

在进入人工智能之前,应先满足先决条件。没有固定的清单,但是必须掌握各种算法。除此之外,你应该熟悉至少一种编程语言,如C ++或Java。如果您是计算机科学的新手,我不建议您学习人工智能。在您进入人工智能之前,有一定的编程经验将是您的加分点。

开始阅读有关人工智能的文章(博客,论文,学者文章等)。像它一样,它的应用程序,当前状态以及您可以找到的其他内容。首先,开始为井字游戏,数独游戏,黑白棋(Othello)等小型游戏制作AI代码。您可以创建自己的模拟器并构建解决Rubik多维数据集的代码。同样,为模式识别和机器学习编写代码。没有什么比边做边学更好。像LISP和python这样的语言将非常有帮助。以下是两个对您有帮助的答案:ans1ans2

如果您是喜欢阅读和学习书籍(例如我)的人,那么可以购买《人工智能:现代方法》(彼得·诺维格和斯图尔特·罗素)。这本书非常好,适合中高级程度。尝试解决书中给出的运动问题。书籍的解决方案pdf可在线获得。对于机器学习,我推荐两本书:模式识别和机器学习(Christopher M. Bishop)和编程集体智能(O'Reilly)。

首先,有一篇关于人工智能和技术奇点的非常好的文章

文章很长,分为两个部分。如果您对人工智能很认真,我强烈建议您阅读本文。它将为您提供一些很好的见解。

计算理论知识将极大地帮助您。尤其是当您在自然语言处理领域工作时。您可能会感兴趣的AI的其他子领域是机器学习,进化计算,遗传算法,强化学习,深度学习等。更好地了解统计学,对于人工智能将更好。请通过论坛,网站等随时关注该领域的最新动态。开放式AI 网站也是一个很好的来源。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.