一、人工智能的原理是什么
人工智能的原理,简单的形容就是:
机器的智能程度,取决于“算法”。最初,人们发现用电路的开和关,可以表示1和0。那么很多个电路组织在一起,不同的排列变化,就可以表示很多的事情,比如颜色、形状、字母。再加上逻辑元件(三极管),就形成了“输入(按开关按钮)——计算(电流通过线路)——输出(灯亮了)”
为了实现更复杂的计算,最终变成了,“大规模集成电路”——芯片。
电路逻辑层层嵌套,层层封装之后,我们改变电流状态的方法,就变成了“编写程序语言”。程序员就是干这个的。
程序员让电脑怎么执行,它就怎么执行,整个流程都是被程序固定死的。
所以,要让电脑执行某项任务,程序员必须首先完全弄清楚任务的流程。
别小看这电梯,也挺“智能”呢。考虑一下它需要做哪些判断:上下方向、是否满员、高峰时段、停止时间是否足够、单双楼层等等,需要提前想好所有的可能性,否则就要出bug。
某种程度上说,是程序员控制了这个世界。可总是这样事必躬亲,程序员太累了,你看他们加班都熬红了眼睛。
于是就想:能不能让电脑自己学习,遇到问题自己解决呢?而我们只需要告诉它一套学习方法。
大家还记得1997年的时候,IBM用专门设计的计算机,下赢了国际象棋冠军。其实,它的办法很笨——暴力计算,术语叫“穷举”(实际上,为了节省算力,IBM人工替它修剪去了很多不必要的计算,比如那些明显的蠢棋,并针对卡斯帕罗夫的风格做了优化)。计算机把每一步棋的每一种下法全部算清楚,然后对比人类的比赛棋谱,找出最优解。
但是到了围棋这里,没法再这样穷举了。力量再大,终有极限。围棋的可能性走法,远超宇宙中全部原子之和(已知),即使用目前最牛逼的超算,也要算几万年。在量子计算机成熟之前,电子计算机几无可能。
所以,程序员给阿尔法狗多加了一层算法:
A、先计算:哪里需要计算,哪里需要忽略。
——本质上,还是计算。哪有什么“感知”!
在A步,它该如何判断“哪里需要计算”呢?
这就是“人工智能”的核心问题了:“学习”的过程。
仔细想一下,人类是怎样学习的?
人类的所有认知,都来源于对观察到的现象进行总结,并根据总结的规律,预测未来。
当你见过一只四条腿、短毛、个子中等、嘴巴长、汪汪叫的动物,名之为狗,你就会把以后见到的所有类似物体,归为狗类。
不过,机器的学习方式,和人类有着质的不同:
人通过观察少数特征,就能推及多数未知。举一隅而反三隅。
机器必须观察好多好多条狗,才能知道跑来的这条,是不是狗。
这么笨的机器,能指望它来统治人类吗。
它就是仗着算力蛮干而已!力气活。
具体来讲,它“学习”的算法,术语叫“神经网络”(比较唬人)。
(特征提取器,总结对象的特征,然后把特征放进一个池子里整合,全连接神经网络输出最终结论)
1、吃进大量的数据来试错,逐渐调整自己的准确度;
2、神经网络层数越多,计算越准确(有极限),需要的算力也越大。
所以,神经网络这种方法,虽然多年前就有了(那时还叫做“感知机”)。但是受限于数据量和计算力,没有发展起来。
神经网络听起来比感知机不知道高端到哪里去了!这再次告诉我们起一个好听的名字对于研(zhuang)究(bi)有多重要!
现在,这两个条件都已具备——大数据和云计算。谁拥有数据,谁才有可能做AI。
图像识别(安防识别、指纹、美颜、图片搜索、医疗图像诊断),用的是“卷积神经网络(CNN)”,主要提取空间维度的特征,来识别图像。
自然语言处理(人机对话、翻译),用的是”循环神经网络(RNN)“,主要提取时间维度的特征。因为说话是有前后顺序的,单词出现的时间决定了语义。
神经网络算法的设计水平,决定了它对现实的刻画能力。顶级大牛吴恩达就曾经设计过高达100多层的卷积层(层数过多容易出现过拟合问题)。
当我们深入理解了计算的涵义:有明确的数学规律。那么,
这个世界是是有量子(随机)特征的,就决定了计算机的理论局限性。——事实上,计算机连真正的随机数都产生不了。
更多神佑深度的人工智能知识,想要了解,可以私信询问。