人工智能从入门到实践,这里有一份指南待查收!

本文为想要学习人工智能的人提供有关理论、技术和应用的知识。本文的每个部分都解释了基本的工作原理。在最后一节中,你可以找到书籍、博客等其他资料。

起源

人工智能是在模仿人类智慧的过程中诞生的。它是否有可能完全模仿人类的思维目前还尚不清楚,但我们可以重新塑造它的一些功能。与此同时,整个认知科学领域受到了人们广泛的关注。

机器接管世界有些言过其实,但探讨人工智能与自然智能的关系,了解计算机在哪些方面优于人类,对人类来说是利大于弊的。

从某种意义上说,所有的计算机甚至计算器都代表着一种人工智能。正如该领域的创始人之一所言:“一旦它成功,就没有人再叫它人工智能了。” ——约翰麦卡锡。

随着计算机的发展和技术的进步,人工智能将会变得更加智能化。最新研究表明,未来5 —10年内,有多达50%的就业机会受到人工智能的威胁。无论是否能完全模拟人类思维,人工智能都会对我们的生活产生重大影响。

数学的先决条件

值得注意的是,我们习惯的古典逻辑不能代表大多数现代技术。因此,你首先应该理解模糊逻辑的思想。其次,图形也是很重要的数学主题,下文将帮助你更好的理解数学。

人工智能从入门到实践,这里有一份指南待查收!

线性代数

线性代数将概念和操作从普通代数扩展到数字集合。它通常代表输入、输出和操作参数。

张量:张量是标量、矢量和矩阵对高维对象的推广。

目标函数

目标函数也被称为目标、成本或损失功能。目标函数通常用于衡量算法在工作中的表现。此外,通过优化目标函数,我们可以改进算法。有时我们不能直接计算目标函数,而需要对算法的性能进行评估。

优化

在构建目标函数之后,我们需要优化它的参数以提高算法的性能。常用的优化方法是梯度下降法。

GD有很多种类,其中之一是随机梯度下降法,它只需要训练数据的一个子集来计算每次迭代的损失和梯度。另一个重要的算法是动量,它可以使参数向一个方向上移动。

没有免费的午餐定理

这个定理传达了一个非常重要的思想:没有普遍有效的人工智能方法。简而言之,这个定理指出,针对某一领域的所有问题,所有算法的期望性能是相同的。尽管这个定理在最一般的情况下尚未得到证实,但实践已经证明了它的重要性。所以,我们必须为每个问题都选择合适的方法。

人工智能从入门到实践,这里有一份指南待查收!

常用的方法和算法

每种方法的主要目的是为特定问题构建一个适合的输入—输出的映射模型。此外,不同的排列组合可能会得出更好的解决方案。例如并行搜索、堆叠和增强等技术可以使用简单的混合模型来构造更好的模型。

虽然搜索方法通常只需要规范问题,但大多数深度学习算法都需要大量的数据。因此,可用的数据在方法的选择中起着重要的作用。

下文以大致的历史发展顺序来描述技术的主要类别:

经典编程

虽然编程不再被认为是人工智能技术,但它已经是多年前的事了。

人工智能从入门到实践,这里有一份指南待查收!

经典编程的可解释性和严格的规范允许在它一个结构中结合数百甚至数千个不同的程序。然而,这种方法在在复杂系统中的实践都失败了,因为在复杂系统中预测所有可能的输入—输出组合是非常困难的。

基于规则的专家系统

典型的专家系统由一组if-then规则和推理机制组成。本教程将为你提供总体思路。一般情况下,现代知识图通常用于问答和自然语言处理。虽然这些方法今天仍在使用,但专家系统的普及率正在稳步下降。

搜索

在你可以定义解决方案的空间的情况下,搜索将帮助你找到一个好的解决方案。下文会介绍一些常见搜索算法,以及它们在游戏开发中的应用。尽管这些方法看起来很简单,但在使用得当时可以获得意想不到的好结果。

遗传算法

遗传或进化算法是受生物进化启发的一种搜索。

机器学习

一般来说,ML方法也使用搜索,通常是使用梯度下降(Gradient Descent)来寻找解决方案。换句话说,他们使用训练样例来学习/拟合参数。实际上有几十种ML算法,但其中大多数都依赖于相同的原理。回归、支持向量机、朴素贝叶斯和决策树是最受欢迎和广泛使用的。

概率图形模型

这些模型以图形的形式学习变量之间的统计依赖关系。现在,虽然它们在实际应用中被神经网络取代,但对复杂系统的分析仍然有用。

深度学习

简而言之,深度学习是ML方法的一个子集,其中包含许多表示层。NN最特殊的属性之一就是可以以任意组合堆叠不同的图层。

神经网络的基本类型:

  • 前馈

  • 复发

  • 卷积(和不同类型的卷积)

在更专业化的模块中,神经注意机制在许多应用中起到了良好的作用。像Long Short Term Memory这样的即插即用模块或用于关系推理的即插即用模块在架构设计中提供了很大的灵活性。通过这种方式,你可以很容易的创建递归卷积网络。

一些技术在改进神经网络和其他ML模型的泛化的同时又会提高其准确性。其中最受欢迎的是Dropout和Batch Normalization。

Autoencoders最著名的应用程序是 Word2Vec。此外,它还可用于创建文档、知识图形实体、图像、基因和任何其他类型的数据。

自组织映射、波尔兹曼机器、Spiking神经网络、自适应共振网络等神经网络在文献中很受欢迎,但实际应用相对较少。

强化学习

在历史发展进程中,出现了了大量的RL方法。其中最先进的技术有Evolution Strategies,Deep Reinforcement Learning,Asynchronous Advantage Actor-Critic(A3C)等。

发展

由于大多数现代系统都或多或少使用相同的硬件(GPU和TPU),本节中将重点介绍软件编程。

基础知识

Python可能是最适合初学者的编程语言。它与第一个人工智能语言Lisp有许多相似之处。Python具有直观的语法和受众庞大的社区,它能提供大量的软件包、教程和训练材料。

数据科学

由于人工智能方法高度依赖于数据,因此需要你能够分析和处理它。

使用Python和Pandas系列进行数据分析将帮助你更深入地了解数据集。

机器学习

从Andrew Ng的机器学习课程开始学习。它涵盖了所有需要理解的数学和基本方法:线性和逻辑回归、支持向量机、主成分分析、简单的神经网络等。

因为机器模型自动化需要比手动构建的模型更多的资源,所以它还没有被广泛使用。此外,在开展人工智能项目时,你应该考虑可能存在的安全问题。

这些资源将帮助你更好地理解人工智能:

书目清单

  1. 人工智能:Stuart Russel和Peter Norvig《现代方法》

  2. 人工智能:David L. Poole和Alan K. Mackworth《计算Agent的基础》

  3. Ian Goodfellow,Yoshua Bengio和Aaron Courville撰写的《深度学习》

  4. Andreessen Horowitz《AI Playbook》

  5. Michael Nielsen 《神经网络和深度学习》

  6. Andrew Ng 《机器学习的渴望》

  7. Marvin Minsky《情感机器》

博客

  1. OpenAI- 专注于人工智能的安全问题(https://blog.openai.com)

  2. DeepMind - “解决智能。用它来使世界变得更美好。”(https://deepmind.com/blog/)

  3. 谷歌研究 - 谷歌研究的最新消息(https://research.googleblog.com)

  4. Facebook研究 - 关于Facebook研究的最新消息(https://research.fb.com/blog/)

  5. 微软下一篇 - 关于微软技术和研究的最新消息(https://blogs.microsoft.com/next/)

  6. BAIR - 伯克利AI研究平台(http://bair.berkeley.edu/blog/)

  7. 直觉机器 - 深度学习模式,方法和策略(https://medium.com/intuitionmachine)

  8. LAB41- 关于数据分析研究的发现、实验结果和想法(https://gab41.lab41.org)

  9. Distill -机器学习研究杂志(https://distill.pub)


分享到:


相關文章: