图灵机和计算理论是人工智能乃至整个计算机科学的理论基础,邱奇-图灵论题告诉我们一切可计算过程都可以用图灵机模拟。
图灵机,又称图灵计算、图灵计算机,是由数学家艾伦·麦席森·图灵(1912~1954)提出的一种抽象计算模型,即将人们使用纸笔进行数学运算的过程进行抽象,由一个虚拟的机器替代人们进行数学运算。
图灵机指一个抽象的机器,它有一条无限长的纸带,纸带分成了一个一个的小方格,每个方格有不同的颜色。有一个机器头在纸带上移来移去。机器头有一组内部状态,还有一些固定的程序。在每个时刻,机器头都要从当前纸带上读入一个方格信息,然后结合自己的内部状态查找程序表,根据程序输出信息到纸带方格上,并转换自己的内部状态,然后进行移动。
每一个会决策、会思考的人都可以被抽象地看成一台图灵机。该模型主要有四要素:输入集合、输出集合、内部状态和固定的程序。如果把人进行抽象,那么输入集合就是所处环境中所看到、听到、闻到、感觉到的一切;输出集合就是人的每一言每一行,还有表情动作;内部状态集合则可以把神经细胞的状态组合看成一个内部状态,所有可能的状态集合将是天文数字。
人有记忆,图灵机有没有?有,它有了内部状态就可以看成有记忆,内部状态会记录所经历过的世界。
很多现象似乎都能被图灵机包括,如人了IDE情绪和情感,可以看成某种内部状态,心情好的情绪下,输入和输出是一套规则,而心情不好的情况下,输入输出又是另外一种规则。
无论是神经元传递信息、变化状态的规律都是固定的,可以被程序化。那么头脑作为神经元的整体,它的运作也比如遵循固定的规则,即程序。正如图灵相信的,人脑也不会超越图灵机模型。
关于图灵机的学习问题,看似图灵机不包括学习,因为学习就意味着程序的改变,而图灵机不能在运行过程中改变自己的程序。很有可能一个图灵机的规则没有改变,只不过激活了它的某些内部状态,因为发生了本质的变化,尽管给它相同的输入,它却有完全不同的输出,这样看起来似乎它会学习了,虽然图灵机的程序一点都没变。
是否存在一台万能图灵机能模拟其他所有图灵机?这台万能图灵机就是通用图灵机,把输入x和图灵机m信息都一起输入到通用图灵机,就能计算出一个结果o,这样便可以模拟任何一台图灵机。
图灵机m信息其实就是编码,通过编码可以将事物进行编号,将所有图灵机进行编码后每个图灵机就有了描述信息,如果某台图灵机的编码为m,输入为x,则将两者合并一起输入到万能图灵机中,计算得到结果。
尽管图灵机很强大,但它也有解决不了的问题,比如停机问题。通俗地讲,停机问题就是判断任意一个程序是否能在有限的时间之内结束运行的问题。该问题等价于如下的判定问题:是否存在一个程序P,对于任意输入的程序w,能够判断w会在有限时间内结束或者死循环。
1936年图灵已经证明了这样的程序是不存在的。
从停机问题中可以看到的确存在人类能构造出来而图灵机解决不了的问题,也就是计算机不能解决的问题,这类问题是不可计算的。停机问题揭示了宇宙中的某种共性,所有计算机解决不了的问题本质上讲都和图灵停机问题是计算等价的。相似问题还包括是否存在一个程序能检测所有程序会不会出错。
停机问题也喝复杂系统的不可预测性有关,存不存在一个程序接收某个复杂系统的规则,然后输出结果?答案是不可能。所以得到一个结论是我们要想弄清楚某个复杂系统运行结果,唯一的办法就是人为去编程实际运行后才能得到结果。这也说明了某些事机器做不了而人类能实现。
一个固定的程序不可能超越图灵计算理论的限制,但如果一个程序能在每时每刻都变化使之不再是原来的自己,那么就可以超越图灵计算理论。就好比人类每时每刻都经过细胞更新使得不再是原来的自己,所以人类超越图灵计算理论。这也就是说,人们没办法通过编写一个固定的程序来实现大脑功能。要实现真正的人工智能,就需要一个能不断改变自己的程序,而且这种改变也不是一个固定的程序。
-------------推荐阅读------------
我的2017文章汇总——机器学习篇
我的2017文章汇总——Java及中间件
我的2017文章汇总——深度学习篇
我的2017文章汇总——JDK源码篇
我的2017文章汇总——自然语言处理篇
我的2017文章汇总——Java并发篇
跟我交流,向我提问:
公众号的菜单已分为“读书总结”、“分布式”、“机器学习”、“深度学习”、“NLP”、“Java深度”、“Java并发核心”、“JDK源码”、“Tomcat内核”等,可能有一款适合你的胃口。
为什么写《Tomcat内核设计剖析》
欢迎关注: