主题:【原创】神经网络和人脑运作的数学原理是相通的 -- 真理
神经网络起源于上世纪五十年代。在那之前,心理学家Donald Hebb已经提出了后世被称作Hebbian theory的假说,即 “neurons that fire together, wire together”。该理论基于神经可塑性原理提出,两个神经元之间的连接会因为重复性的神经活动而得到加强,反之则会削弱。这个原理经过几十年的研究已经被视作铁一般的事实。神经网络就是这一原理在图灵机里面的具体应用。神经网络用在行列式运算过程中用反馈来调整权重的办法模拟神经元的功能。这虽然人脑不能说动物大脑严丝合缝,但是数学原理是相符的。
举个例子,用于图形识别的卷积神经网络的数学原理(Convolutional Neural Networks)可以说和高等动物的视觉系统如出一辙。以人为例,人脑视皮层V1的神经元都拥有其“感受野”,也就是其视网膜上的一块区域对其的投射,区域之内,每个视网膜感光细胞对视皮层神经元都有不同的权重,该权重可以为正效果,也可以为负效果。这样的结果是神经元可以对某种特定的图像特征有反应。例如下图的感受野,对应的是一个光斑。
同样类似的,还有的神经元能识别暗斑、直线、边缘、和特定的运动等等。人脑的视皮层神经元就这样一层一层地,把人眼看到的图像分解为大量的基本结构和元素,然后用神经元组成的实体网络的动作电位活动代表你看到的图像。
卷积神经网络复现的,正是这样的功能。任何一副图像在计算机里都可以简化为一个矩阵。计算机可以对图像进行卷积计算,即用一个小矩阵(kernel)对图像矩阵进行滑动的求和,生成一个小一些的新的矩阵,那个小矩阵的作用就像是一个感受野。其形成的新一层的矩阵中的每一个数字就代表视皮层里的一个能感受特定位置上特定形状的神经元。Deep Learning和人类的视觉系统一样,就是通过多层的矩阵或神经元,将图形解构为一个个小的特征,用真的或者假的神经元进行量化描述。
人的视觉系统需要幼年关键期的发育和学习,而卷积神经网络同样需要学习。一个幼儿通过成年人的教导和大量观察周围环境促进自己视觉系统和认知能力的发育。而卷积神经网络也就是将大量人工标注过的图片输入其系统,从而能够真正的“看懂”这些图片。
比如,一个幼儿看到大人拿起一个苹果,告诉他这是一个苹果,从而认识了苹果。表面上幼儿似乎一下子就学会了,但他其实之前已经看到了大量的类似图形,已经积累了很多的数据。一个卷积神经网络被人输入数百张图片,里面有的有苹果,文件名也被标注为有苹果。另外没有的就说没有苹果。经历反复学习,这个卷积神经网络也能识别任意图片里面有没有苹果的存在。在这一过程中,人脑和电脑用类似的原理做了同样的学习,也就是认识了一个苹果。
人脑的优势是一些功能和结构是先天就存在的,例如很多形状的感受野在胚胎发育过程中就形成了。而计算机的卷积神经网络一般得在设计和训练过程中从头构建每一个kernel有多大,有多少个,有多少层。反过来,计算机的计算量是人类无法比拟的。所以计算机的神经网络的功能会胜过人脑。
除了视皮层,人脑的其它功能也并不神秘,如听觉其实是耳蜗将不同频率的声音用不同位置的耳蜗膜来代表,这其实就是傅立叶变换。计算机AI处理声音信号或者电讯号也是同样的数学方法。其它的运动、学习记忆也没有什么神秘不可测的新原理。因此可以说,任何人脑能做的事情,计算机的神经网络最终都能做到,而且做的更好。
我目前唯一不知道的是计算机神经网络将如何产生独立的人格。因为上面介绍的都是人脑某一方面的功能,而对应的神经网络也只能实现这一方面的功能。那么如何将人脑的功能组合起来,让部分的相加产生质变,形成一个真正的人,这一点神经生物学还没有搞清楚,而计算机神经网络怎样做到也不清楚。不过这两个问题或许是同一个问题。不久前有个实验室发表了用AI欢迎大脑神经活动为图片的论文,也就是用fMRI测大脑视皮层活动,然后用算法把这些视皮层的信号倒回来算出大脑正在思考怎样的图像。把这样的研究推而广之,神经科学家早晚能够测量整个大脑的活动,然后用计算机还原人脑的想法,在此基础之上研究人类思想的奥秘,最终让计算机拥有真正的人格。这不是高不可攀的难题,很可能我们这些人有生之年都能看到。
这个真的是我的毕生精华,与你共勉。 人只能被忽悠,因为人究其一生建立的大脑认知模型的鲁棒性很低,这很可能是人类智能的天花板,年龄越大overfitting的结果也越大,当然不是没有例外,但是能够认识到并理解自己的overfitting本身就是小概率事件。
然后遇到参数变动范围太大时,接受认知模型中可以容纳的概念比推翻认知模型重新构建的可能性要大得多,虽然也很难,这个可能是人类面临过的远远超越核聚变的不可跨越之挑战。
比如人脑就是一种AI这样一个认知,估计99%的人类无法理解与接受直到生命终结。 那么问题来了,大自然对这样的事情一般怎么处理呢,这个就不用猜了吧。
包含彭罗斯吗?
“人脑就是一种AI”还只是一种假说,不接受是很正常的。
AI如果是基于计算的话,那目前人脑不可能是AI。因为人脑能理解不能计算的东西。
比如说,计算只能得出可计算数,而可计算数只有可数多个(也就是和自然数数量相等)。而实数是不可数的,也就是说几乎所有实数都是不可计算数。随便一个都能让AI死机。
即使可计算数也不一定能算完,因为很多可计算数是无限不循环的,而计算是离散的,计算的每一步都需要时间,所以像根号2这样的可计算无理数也是永远计算不完的。
所以如果考虑到工程实现的问题,现有的计算能力要真正达到人类的水平其实也是远远不够看的。
他们只是从书本上读到这个句子,然后在字面意义上记住了。至于万有引力是怎样防止人 “掉下去” 的(其实根本不存在掉下去的问题,上下本身是引力方向定义的),大部分人穷其一生也搞不明白。
所以一般人听说北京到纽约的直连航线靠近北极,他们是不相信的。他们的地理概念还是四方的地图。
连地球是圆的尚且如此,别的就更不用说了。毛主席说严重的问题是教育农民,我比较悲观,我觉得大部分人永远也不会理解什么是社会主义。
换句话说,共产主义很可能实现,但未必是由人类来实现。人工智能已经出现在地平线上,居然还有人争论人工智能可能不超过人类。他们完全不相信留给人类的时间已经不多了。
那时的神经网络还不叫AI,AI的主流是基于计算。 现在说AI基于计算机还差不多,这个理解力是如何从计算中产生的,如果知道就不叫黑盒子了,与所谓的“人脑可以理解不能计算”的意思差不多。 所以说今天的AI是基于计算,这是要打一个大大的问号的,做个分类识别还可以解释,更复杂的理解力目前无法解释,但不断有突破,可以说类似基础科学领域内的化学物理理论都一样,但是工艺上不断提高导致了产品性能的跨越。AI科学目前是个工匠型行业,试错试出了来的一个现象。
这种事情其实接受不接受不要紧,就像GPS导航天天无数人在用,有多少人理解原理甚至关心过。变化尤其突变就是一个习惯过程,心里的纠结对个人是个天大的事,对于整体与大自然完全是噪音。重要的不是人脑的工作原理是不是与AI一样,而是AI的发展超越人脑目前看就是个时间问题,人脑是大自然产生的一种智能,乌鸦也是,海豚也是,鸟群蚁群,植物都可能是一种智能,AI同样也是。 从人类视角看,智能的内部工作原理不清楚但是智能的性质与表现很清楚,甚至可以量化不如人类水平的智能,但人脑肯定不是天花板。 现在GPT4到了1Trillion而人脑是100trillion数量级,所以这是个计算机问题而不是计算问题。
说明虽然AI结构也重要比如transformer这些,但是training也很重要。 人类大脑一出生就类似具备了先天的各种进化得来的硬体基础,低耗能脑细胞算力,与内置的先天各种计算结构,生物水平上同一物种内差别不大。 但后天的training,教育,环境,经验等对于最后这个产品模型的性能会导致天壤之别也就不奇怪了。 随着GPT热点引起对其生态圈的广泛关注,AI的发展对人类自身智能性质的理解也带来了很多启发。
其实现代脑神经科学与心理学对人脑的特点的了解已经比以前强了很多,随之发展起来的很多相关产业链甚至走入了日常生活并参与到塑造改变历史中去了。这一百年来人类本身对人脑的关注,利用(比如媒体)甚至借鉴(比如神经网),都是史无前例的。
夸张一点看未来的话,人脑会不会沦为一种廉价低能耗高单位输出的未来优质算力资源,细思极恐。
你说一般的计算器不能理解根号二,我是相信的。计算机随便一个程序语言,可调用的函数就极其大量,不能理解根号二?你一定是在开玩笑。
倒是大部分人类根本不理解实数。我可以跟你保证,绝大多数人对实数的理解就是字面上的无限不循环小数,跟地球是圆的一样。背下来,但是根本不理解。
高级计算机语言主要是方便人类使用的,“函数”最后执行的时候不都是机器语言?都是运算器存储器寄存器等等?都服从计算理论?你觉得现在有计算机可以“理解”根号2?难道你觉得现在已经有计算机有了“理解”根号2的“意识”?
“大部分人类根本不理解实数”,说明还是有人可以理解实数。但所有的计算机现在都不理解实数,而且理论上未来很可能也不可以,这就是区别。
这里的理解,是指建立一个不同于一般数值计算的类别。譬如计算器无法输入储存文字、图片类,但是一般个人计算机都能做到。
如果计算机能从一串二进制符号中识别美女图像,那么我认为计算机是理解美女这个概念的。当然,图像识别今天还比较困难。但是文字识别不困难。只不过计算机理解的文字是编码而已。
如果你要求人工智能像人一样理解概念,那估计是不行的。但是人工智能有自己的理解,可能超出你所理解的理解。如果你偏认为人类的理解才是唯一,那可能过于妄自尊大了。
有时候为了性能,会使用近似算法计算,更极端的甚至根本不用计算:直接把预先算好的值直接存起来用的时候直接拿过来就行了(所谓的“以空间换时间”)。
说到这里想起一个有趣的算法:
John Carmack,IDdSoftware的创始人之一,上世纪Doom和Quake引擎主要开发者之一,曾在书中提到一个神奇的快速计算平凡根倒数的算法,至今还让人啧啧称奇:
float Q_rsqrt( float number )
{
long i;
float x2, y;
const float threehalfs = 1.5F;
x2 = number * 0.5F;
y = number;
i = * ( long * ) &y; // evil floating point bit level hacking
i = 0x5f3759df - ( i >> 1 ); // what the fuck?
y = * ( float * ) &i;
y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration
// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
return y;
}
如今QuakeIII早就开源了,可以直接看到这段代码,它巧妙发利用了IEEE 754标准,用0x5f3759df这个Magic Number,能在不使用循环和递归的情况下快速计算出平方根的倒数。
Artificial Inteligence这个词是1956年的达特茅斯会议上提出来的,那时候就逻辑推理为代表的“符号主义”和以人工神经网络为代表的“联结主义“都已经发展到一定程度。这次会议的目的之一其实就是把这些相关但分散的领域结合起来。
80年代是人工神经网络的一个高峰,日本还借此提出了雄心勃勃的”五代机计划“,然而随后就陷入低潮,”五代机计划“也无疾而终。
最近十多年兴起的热潮其实是AI的一个分支-机器学习(Machine Learning),它是建立在互联网以及其他信息革命后出现的大数据基础上的(当然还有算算力的增强),而说到理论上和80年代比起来没什么大的突破,所以如果说80年代认为AI不能达到人类的高度现在也仍然没什么理由这么认为。
最后要说的是,人工神经网络虽然是受到人脑神经系统的启发创立的,但它的发展其实和人脑本身没多大关系,而主要是数学和算法上的(如反向传播算法,非线性激活函数,随机梯度下降等等)。就像飞机是受鸟类启发而发明的,但飞机的发展和鸟类本身却没多大关系,而是和空气动力学,材料学等等更相关。
我的原意就是根号2是个无限不循环小数,计算机不可能通过计算得知它是“无限不循环”的,因为这会造成永远计算下去。
如果你要求人工智能像人一样理解概念,那估计是不行的。但是人工智能有自己的理解,可能超出你所理解的理解。如果你偏认为人类的理解才是唯一,那可能过于妄自尊大了。
我们讨论的就是人工智能能不能像人一样,或达到人类这个水平,也就是强人工智能。至于“弱人工智能”人们基本已经认为AI已经达到了(当然这个“弱”也是有不同水平的)。
回答是,那人脑和计算机等价;如果不是,那就不等价。
迄今为止,所有的计算机,包括人工智能,都没有跳出图灵机的范畴:这个机器可以运行一连串的指令。即使是并行计算,对于每一个CPU来说也是运行一连串的指令,只不过这些指令的输入取决于其他CPU的输出。
所以人脑是不是也是顺序处理一连串的指令。人脑的机制里面有没有非线性的部分,这个我也不知道。但是看起来像是一个非常非线性的系统,能够异常高效的处理各种信号。
人体当然不是质点也不是刚体,但是在许多近似条件下,使用质点和刚体模型,是合适的。
计算机也是,你说现在的二进制计算机基本可以看作图灵机,那我赞成,至于人脑在多大程度上类似图灵机那也不好说。
但是我反对的一点是,我不认为人脑高效。事实上人脑只是在处理熟悉的事物时才高效。一个人成年要十八年,接受各种训练,即便如此,到了工作岗位还需要一两年熟悉,这个效率是很低的。人工智能花同样的时间,可能进步更快。
而且人脑走捷径
你不能按照年来算,得按照计算数量来算啊。
计算机通上电,没选择,每秒十的九次方。一天计算量超过人几辈子。
人脑,杂七杂八的,偷懒,睡觉,用来想正经事的时间有多少,十八年能不能抵得过计算机半个小时?
人脑的特点,有点像机器学习的学习的学习。在一层层非常抽象的概念为基础上进行总结。机器学习停在最底层。但更深层的问题是它到底能不能上来?目前都是咱们把最底层做大做强。但是飞机比汽车快10倍,不是你弄十辆汽车一起开就比飞机快这个道理。而是人脑是怎么做到的,这个问题没解决,就还不是真的智能。
目前的进步其实是:我把人的所有关于语言的问答都总结一遍。你问我一个东西,我在大模型里找一个最像答案的东西回答给你。这个模型即不懂你问的,也不懂它回答的。相当于大号搜索引擎。