广义的说,人工智能包含诸多不同方法,其主旨是让程序像一个智能体一样解决问题。机器学习是实现人工智能的一种方法,它不完全依靠预先设计,而是从数据中进行总结,达到模拟记忆、推理的作用。包括诸如支持向量机(SVM)、各类基于决策树的算法(包括Boosting、Bagging、Random Forest等),各类基于人工神经网络的算法(例如简单网络及深度网络等),以及多方法的集成等。
基于人工智能的发展优势,很多小伙伴都想要在这个领域大展宏图,但摆在面前的三道门槛是需要你逐一攻克的。本文给大家具体分析一下人工智能入门的三道门槛。
门槛一:数学基础
我们应该了解过,无论对于大数据还是对于人工智能而言,其实核心就是数据,通过整理数据、分析数据来实现的,所以数学成为了人工智能入门的必修课程!数学基础知识蕴含着处理智能问题的基本思想与方法,也是理解复杂算法的必备要素。今天的种种人工智能技术归根到底都建立在数学模型之上,要了解人工智能,首先要掌握必备的数学基础知识,具体来说包括:
1、线性代数:如何将研究对象形式化?
事实上,线性代数不仅仅是人工智能的基础,更是现代数学和以现代数学作为主要分析方法的众多学科的基础。从量子力学到图像处理都离不开向量和矩阵的使用。而在向量和矩阵背后,线性代数的核心意义在于提供了⼀种看待世界的抽象视角:万事万物都可以被抽象成某些特征的组合,并在由预置规则定义的框架之下以静态和动态的方式加以观察。
着重于抽象概念的解释而非具体的数学公式来看,线性代数要点如下:线性代数的本质在于将具体事物抽象为数学对象,并描述其静态和动态的特性;向量的实质是 n 维线性空间中的静止点;线性变换描述了向量或者作为参考系的坐标系的变化,可以用矩阵表示;矩阵的特征值和特征向量描述了变化的速度与方向。
总之,线性代数之于人工智能如同加法之于高等数学,是一个基础的工具集。
2、概率论:如何描述统计规律?
除了线性代数之外,概率论也是人工智能研究中必备的数学基础。随着连接主义学派的兴起,概率统计已经取代了数理逻辑,成为人工智能研究的主流工具。在数据爆炸式增长和计算力指数化增强的今天,概率论已经在机器学习中扮演了核心角色。
同线性代数一样,概率论也代表了一种看待世界的方式,其关注的焦点是无处不在的可能性。频率学派认为先验分布是固定的,模型参数要靠最大似然估计计算;贝叶斯学派认为先验分布是随机的,模型参数要靠后验概率最大化计算;正态分布是最重要的一种随机变量的分布。
3、数理统计:如何以小见大?
在人工智能的研究中,数理统计同样不可或缺。基础的统计理论有助于对机器学习的算法和数据挖掘的结果做出解释,只有做出合理的解读,数据的价值才能够体现。数理统计根据观察或实验得到的数据来研究随机现象,并对研究对象的客观规律做出合理的估计和判断。
虽然数理统计以概率论为理论基础,但两者之间存在方法上的本质区别。概率论作用的前提是随机变量的分布已知,根据已知的分布来分析随机变量的特征与规律;数理统计的研究对象则是未知分布的随机变量,研究方法是对随机变量进行独立重复的观察,根据得到的观察结果对原始分布做出推断。
用一句不严谨但直观的话讲:数理统计可以看成是逆向的概率论。数理统计的任务是根据可观察的样本反过来推断总体的性质;推断的工具是统计量,统计量是样本的函数,是个随机变量;参数估计通过随机抽取的样本来估计总体分布的未知参数,包括点估计和区间估计;假设检验通过随机抽取的样本来接受或拒绝关于总体的某个判断,常用于估计机器学习模型的泛化错误率。
4、最优化理论:如何找到最优解?
本质上讲,人工智能的目标就是最优化:在复杂环境与多体交互中做出最优决策。几乎所有的人工智能问题最后都会归结为一个优化问题的求解,因而最优化理论同样是人工智能必备的基础知识。最优化理论研究的问题是判定给定目标函数的最大值(最小值)是否存在,并找到令目标函数取到最大值 (最小值) 的数值。如果把给定的目标函数看成一座山脉,最优化的过程就是判断顶峰的位置并找到到达顶峰路径的过程。
通常情况下,最优化问题是在无约束情况下求解给定目标函数的最小值;在线性搜索中,确定寻找最小值时的搜索方向需要使用目标函数的一阶导数和二阶导数;置信域算法的思想是先确定搜索步长,再确定搜索方向;以人工神经网络为代表的启发式算法是另外一类重要的优化方法。
5、信息论:如何定量度量不确定性?
近年来的科学研究不断证实,不确定性就是客观世界的本质属性。换句话说,上帝还真就掷骰子。不确定性的世界只能使用概率模型来描述,这促成了信息论的诞生。
信息论使用“信息熵”的概念,对单个信源的信息量和通信中传递信息的数量与效率等问题做出了解释,并在世界的不确定性和信息的可测量性之间搭建起一座桥梁。
总之,信息论处理的是客观世界中的不确定性;条件熵和信息增益是分类问题中的重要参数;KL 散度用于描述两个不同概率分布之间的差异;最大熵原理是分类问题汇总的常用准则。
6、形式逻辑:如何实现抽象推理?
1956 年召开的达特茅斯会议宣告了人工智能的诞生。在人工智能的襁褓期,各位奠基者们,包括约翰·麦卡锡、赫伯特·西蒙、马文·闵斯基等未来的图灵奖得主,他们的愿景是让“具备抽象思考能力的程序解释合成的物质如何能够拥有人类的心智。”通俗地说,理想的人工智能应该具有抽象意义上的学习、推理与归纳能力,其通用性将远远强于解决国际象棋或是围棋等具体问题的算法。
如果将认知过程定义为对符号的逻辑运算,人工智能的基础就是形式逻辑;谓词逻辑是知识表示的主要方法;基于谓词逻辑系统可以实现具有自动推理能力的人工智能;不完备性定理向“认知的本质是计算”这一人工智能的基本理念提出挑战。
门槛二:英语水平
这里说的英语,不是说的英语四六级,我们都知道计算机起源于国外,很多有价值的文献都是来自国外,所以想要在人工智能方向有所成就,还是要读一些外文文献的,所以要达到能够读懂外文文献的英语水平。
门槛三:编程技术
就像大多数软件应用程序的开发一样,开发人员也在使用多种语言来编写人工智能项目,但是现在还没有任何一种完美的编程语言是可以完全速配人工智能项目的。编程语言的选择往往取决于对人工智能应用程序的期望功能。关于最佳人工智能编程语言的争论从未停止,目前比较常用的5种人工智能编程语言包括:Python、C ++、Java、Lisp、Prolog。
Python
由于其语法的简单性和多功能性,Python成为开发人员最喜欢的人工智能开发编程语言。Python最打动人心的地方之一就是便携性,它可以在Linux、Windows、Mac OS和UNIX等平台上使用。允许用户创建交互式的、解释的、模块化的、动态的、可移植的和高级的代码。另外,Python是一种多范式编程语言,支持面向对象,过程式和功能式编程风格。由于其简单的函数库和理想的结构,Python支持神经网络和NLP解决方案的开发。
优点:Python有丰富多样的库和工具。支持算法测试,而无需实现它们。Python的面向对象设计提高了程序员的生产力。与Java和C ++相比,Python的开发速度更快。
缺点:习惯使用Python来编写人工智能程序的程序员很难适应其它语言的语法。与C++和Java不同的是,Python需要在解释器的帮助下工作,这就会拖慢在AI开发中的编译和执行速度。此外,Python不适合移动计算。
C ++
优点:C++是最快的计算机语言,如果你的人工智能项目对于时间特别敏感,那么C++是很好的选择,它提供更快的执行时间和更快的响应时间(这也是为什么它经常应用于搜索引擎和游戏)。C++允许广泛使用算法,并且在使用统计人工智能技术方面是有效的。另一个重要的因素是C++支持在开发中重用代码。此外,C ++适用于机器学习和神经网络。
缺点:C ++仅适用于实现特定系统或算法的核心或基础,多任务处理不佳。它遵循自下而上的方法,因此非常复杂。
Java
Java也是一种多范式语言,遵循面向对象的原则和一次写入读取/随处运行(WORA)的原则。它是一种AI编程语言,可以在任何支持它的平台上运行,而无需重新编译。
在各种项目的开发中,Java都是常用语言之一,它不仅适用于NLP和搜索算法,还适用于神经网络。
Lisp
Lisp是一门计算机编程语言,是继Fortran之后的第二古老的编程语言。随着时间的推移,LISP逐渐发展成为一种强大的、动态的编码语言。有人认为Lisp是最好的人工智能编程语言,因为它为开发人员提供了自由。在人工智能中使用Lisp,因其灵活性可以快速进行原型设计和实验,当然这也反过来促进Lisp在AI开发中的发展,例如,Lisp有一个独特的宏系统,有助于开发和实现不同级别的智能。与大多数人工智能编程语言不同,Lisp在解决特定问题时更加高效,因为它适应了开发人员编写解决方案的需求,非常适合于归纳逻辑项目和机器学习。
但很少有开发人员熟悉Lisp编程。作为一种较古老的编程语言,Lisp需要配置新的软件和硬件来适应它的使用。
Prolog
Prolog也是古老的编程语言之一,与Lisp一样,它也是人工智能项目开发的常用语言,拥有灵活框架的机制,它是一种基于规则和声明性的语言,包含了决定其人工智能编码语言的事实和规则。Prolog支持基本的机制,例如模式匹配、基于树的数据结构和人工智能编程的自动回溯。除了在人工智能项目中广泛使用外,Prolog还用于创建医疗系统。
人工智能入门的三道门槛,都是一些必备的基础知识,所以不要嫌麻烦,打好基础很关键!
本文转自:数学与人工智能,转载此文目的在于传递更多信息,版权归原作者所有。