什么是人工智能?
我也看过人工智能的定义,但即使是非常严谨的(也就是很难理解的那种😂)教科书式的定义,但定义还是有好几种。并且人工智能是个正在高速发展中的学科、产业,它的内涵、外延时刻都在发生变化。所以我认为,不必过分纠结人工智能的严格定义,只需要有个大致的定义即可,尤其是对工业界的工程师来说更是如此。
“顾名思义”地理解一下人工智能这个词语本身:人类的智能是大自然的“鬼斧神工”,是亿万年进化而来的,是天然的,不是人造的;而人工智能恰恰相反,是让人造的机器产生类似于人的智能。打个利于理解的比方,人类的智能好比大自然中本来就有的猪牛羊肉,而人工智能好比人造肉😂。当然,也有大佬认为人工智能这个词容易引起误解,改称为“机器智能”更好,意思是让机器产生类似于人类的智能。
人工智能、机器学习与深度学习的关系
我们经常听到、看到这三个名词,外行就容易被搞晕了,搞不清他们是同义词,还是其他什么关系。当其实他们的关系如下:
- 人工智能的概念最大,它是一个从目的角度确立的概念,也即是说,它不管你用的是什么方法、手段,只要你让机器实现了智能,就算是人工智能。
- 而机器学习是1990年以来采用的实现人工智能的主流方法。
- 深度学习则又是机器学习的中一种方法。
什么是机器学习?
非程序员也能看懂的机器学习定义
一开始,科学家希望直接设计出拥有人类智能的机器,但几十年过去了,发现这难以实现。后来科学家们转变思路,先设计出一个有学习能力的机器,一开始这个机器的智能水平可以很低,就像一个刚出生的婴儿,但这个机器有学习能力,可以像婴儿慢慢长大一样,变得越来越聪明,直到达到甚至超过人类的智能,至少在某些特定的任务上做到这一点。既然这种机器有学习能力,也就称之为机器学习了。
程序员秒懂的机器学习定义
-
在经典的程序设计中(就是现在的大多数程序员写程序的思考模式),人们输入的是规则(即程序)和需要根据这些规则进行处理的数据,系统输出的是答案。比如西虹市炒蛋这个过程,如果我们要将其自动化,对现在的任何一个程序员来说都是很简单的。程序如下:
- 第一步:切好西虹市,打好鸡蛋。
- 第二步:把鸡蛋放到锅里炒熟,盛出来备用。
- 第三步:把西红柿放到锅里炒熟,把鸡蛋放到锅里,和西红柿一起炒。
- 第四步:加入调料,搅拌均匀,盛到盘子里。 像这类问题,我们稍微动脑想一下,就能想清楚其明确的可操作步骤。把这些步骤写下来,就是规则/程序/代码。如果你又想吃西红柿炒蛋了,那就输入西红柿和鸡蛋,这个程序就会自动执行,输出西红柿炒蛋给你。
这种经典的编程思考模式,也称作显式编程,也就是说,程序员自己想明白了每一个步骤,然后明确地用代码表达出来这每一个步骤。
-
机器学习,人们输入的是数据和从这些数据中预期得到的答案,系统输出的是规则。这些规则随后可应用于新的数据,使计算机自主生成答案。
比如一个三岁小孩,第一次看见一只小白狗,妈妈会指着小狗告诉他——这是一只狗。过了几天,又看见一只大黑狗,妈妈又指着告诉他——这也是一只狗。看过三五只大小不同、颜色各异的狗之后,孩子就对“长什么样的是狗”有自己的理解了。下次再见到一只中华田园犬(就是土狗😂),小孩先声夺人———狗,狗,狗!当然,如果看到了一只大花猫,小孩可能还是会喊——狗,狗,狗!妈妈会纠正他说——这是一只猫,不是狗。于是小孩的大脑开始试着区分猫和狗。妈妈想教会小孩长什么样的是狗/猫,但妈妈并没有拿出生物学的定义给他念:犬,现代俗称为狗,一种常见的犬科哺乳动物,与狼为同一种动物,生物学分类上是狼的一个亚种。这样的定义小孩也听不懂。
我们学习的知识主要有两种:
- 定义性的/概念性的,教科书中一般都会在一开始给出一个严谨的概念。这种知识我们经常会感觉抽象,难以理解。
- 实例性的,也就是常说的举个栗子。看完实际的例子,我们一般就都懂了。
现在的机器学习,其实就是通过例子来学习,和以上所说的妈妈教孩子学习辨认猫、狗,从原理上来说是一样的。我们并不需要告诉小孩狗的特征有哪些,小孩只要多见几只不同的狗,慢慢就学会辨认狗了。机器学习也是一样,我们只需要输入很多猫和狗的图片,并且标明图片中是猫还是狗,机器学习的模型就可以根据这些实例不断的学习,最终掌握辨别猫和狗的能力。也就是说,在机器学习中,我们输入的是例子(数据+答案),输出的则是规则/程序/判断能力。
机器学习就是从数据中提取有用信息、有意义的判断和知识,最终要把这些知识抽象为模型,用于反应知识的本质/进一步认识世界/预测。
数据(特征+标签) 是具体的,模型是抽象的。 学习/训练的过程就是将具体的数据抽象成模型。 预测的过程就是用抽象的模型预测某个数据的标签。
机器学习模型将输入数据变换为有意义的输出。因此,机器学习的核心在于有意义地变换数据,换句话说,在于学习输入数据的有用表示(representation),这种表示可以让数据更接近标签。机器学习模型都是在为输入数据寻找合适的表示——对数据进行变换,使其更适合手头的任务。
参考:《Python深度学习》1.1.2 弗朗索瓦.肖莱 著,张亮 译
机器学习与数理统计
机器学习与数理统计密切相关,但二者在几个重要方面有所不同。不同于统计学,机器学习经常用于处理复杂的大型数据集,用经典的统计分析(如贝叶斯分析)来处理这种数据集是不切实际的。因此,机器学习(尤其是深度学习)呈现出相对较少的数学理论,并且是以工程为导向的。这是一门需要上手实践的学科,想法更多地是靠实践来证明,而不是靠理论推导。
也就是说,机器学习需要一定的数学知识,但也不要过分夸张数学在机器学习中的作用。有些方法已经在实践中使用了,但还没有数学理论做支撑,而是靠实验得出的方法。
参考:《Python深度学习》1.1.2 弗朗索瓦.肖莱 著,张亮 译
机器学习的基本流程
- 问题定义
- 数据准备
- 数据预处理
- 数据建模
- 建模优化
- 结果呈现
AI工程师的核心技能
- 发现现实生活中的问题
- 抽象、建模为数学优化问题
- 通过合适的工具解决
第3步会越来越自动化,第1、2步会越来越成为竞争力。而要做好第1、2步,需要深入了解一个领域,才能提出和发现问题。
怎么学好人工智能?
-
学:要把来龙去脉搞清楚,才能掌握一个理论、方法的适用领域,才能明白一个方法的极限、局限,不盲从。
-
用:各种算法、模型、框架就是工具,我们需要先对工具有基本的了解,但更重要的是要知道如何使用这些工具去解决问题。一名木匠,需要知道这是锤子,那是锯子,需要知道他们的基本用法。但更重要的是要知道什么时候用锤子,什么时候用锯子。然后用锤子去砸钉子,与锯子去锯木头,在这个过程中发现问题,再继续学习,以用促学。
人工智能面临的问题
-
时间复杂度与空间复杂度局限:任何计算机程序都有这个问题,
-
可解释性:对的时候不知道它为什么对;错的时候也不知道它为什么错,也就无法修正。
对AI发展的看法
AI这种革命性的技术变革,其技术不是短时间内就能完善的,即使近些年处于爆发期,但其发展过程中必然会经过多次起落。“前途是光明的,但道路是曲折的;道路是曲折的,但前途是光明的”。
到处、整天都是关于AI又发生了巨大进步的文章、消息,但99%都是标题党。正确的心态应该是:不要相信短期的炒作,但一定要相信长期的愿景。这种革命性的技术变革,会有持续二三十年的增长,只要做个长期主义者,就能获得其带来的红利。