今天的神经网络系统,已经很有人类智慧的味道了。但现在的神经网络中的损失函数,反向传播,和激活函数,虽然是这个理论的基石,却让我觉得有点可疑。因为显然人类的系统里面,只有激活函数,不会有反向传播的过程,也不会计算损失函数。
所以很想更进一步的了解神经系统的工作原理,智慧的形成,进而构造一个更接近人类智慧的机器智能系统。
很多想法只是想法,只能做一些思想实验,因为没有进行各种生理实验的条件。但是构建一个计算机系统,让它工作起来,还是非常要有必要的。
思想所以可贵,是因为它能知道指导行动,进而产生实际的结果。如果只是胡思乱想而不去行动,那就和封建迷信没什么区别了。
一个个体,终将死去,如果不是政要富豪,一个普通的瘟疫就能要了命。但不妨碍一些伟大的想法在普通人的头脑里产生。有的时候,世界就像大脑一样,不知道是哪个神经元的激活改变了人的想法,世界上不知道哪个人获得了宝贵的灵感。
真是应该感谢神经生物学的先驱们,破解了神经系统的工作原理。虽然还有诸多问题没有完全弄清楚,但神经元,神经突触这些,已经让我们很接近智慧的本质了。我们生活在一个幸福的时代。科学揭示、解释着越来越多的东西。不用再讲一些假大空的哲学或者编神话故事。
人的视觉怎么转换成观念的?视觉信号到观念,这个过程可能就是人类智慧的秘密之源。人看到一个三角形,并不会在神经系统里面形成一个缩小版的三角形。但是这个说法也不一定完全对。
现有的人工智能系统的卷积和池化,也许摸到了一些门道,但反向传播的理念很值得怀疑。比如说手写数字识别,通过训练来调整参数,最终让机器将形态各异的手写数字2,不同的颜色的2,都识别成数字2,这个过程让我觉得很不直观。有点难以信服。
人类的学习,应该不是像现在的神经网络这样靠损失函数和反向传播工作的,而是直接靠正向的电信号刺激一步到位。小孩子记住妈妈的脸,哪里需要训练纠正呢?就是一遍一遍的看就行了。
从学钢琴的角度看,我们也不需要去做什么纠正错误的联系,而是只需要去强化正确的联系。当正确的联系比错误的强大很多的时候,正确的联系就起作用了。认乐谱、练习钢琴、练习长笛的时候,也是这么个过程。首先是将基本音符和手指的行动对应起来,然后,看着五线谱,大脑会指挥手指找到具体的位置,这样反复练习,手指动作之间,气息之间,会建立一种联系,一个动作结束,会自动的触发下一个动作。这就是单个观念,到观念与观念之间的联系的过程。
举个例子说,我们的脑海中,牛是一个观念。
观念是个很有意思的事情。比如说牛这个观念,我们的脑子里会清醒的知道这是个东西,但其实,我们并不是在神经系统里面存储着一个完整的牛,或者一个缩小版的牛。我们存储的是一个观念,以及和它相关的若干个观念。单单一个观念,不是一个具体的牛的形象,缩小版的牛,或者是一个字,一个发音,都不是,就是一个纯粹的观念。是我们看到牛,听到牛这个声音,看到牛这个字,最终会联想到的那么一个东西。
从神经系统的角度来说,我们看到牛,一系列的视觉刺激,会归结到一个神经元。后续会将牛的叫声,牛的中文写法,英文写法,都与这个神经元相关联。然后也会将这个观念和其他的一些观念相关联,比如说哺乳动物,长毛的动物,犄角,奇蹄目、偶蹄目之类的观念。这种关联性,能帮助我们从一个点出发,想到别的东西。比如想到牛,再会想到驴子,马,再会想到骡子,老虎,再会想到豹子什么的。
我们来看计算机运算这个事情。比如说5+7吧。计算机其实本质上不知道5,也不知道7,更不知道5+7是什么意思。但是将5和7分别转换为二进制数,再输入计算机中的加法计算单元,计算机在不了解5,7和12这三个观念的情况下,就能够得出5+7=12。这是个“无脑”的运算。莫名其妙结果就出来了,这个和人类的思考方法是非常非常不同的。
人类是不一样的,人类先有5,7这个观念,再找到5+7关联的12[1]。所以人脑中进行运算的基本元素是观念,这一点和现有的计算机运算差异是很大的。虽然说到底,人类的大脑得到5+7=12,也是个电化学反应,我们先输入5,在输入7,再输入加号,再去得到关联的12,但这个过程,和现有的计算机还是非常不同的。至于我们是不是要去纠结这个不同,我的感觉可能是要,因为这个方法虽然看起来笨拙,却是我们现有所有璀璨文明的基础。它有更强的通用性,虽然做数学计算我们干不过计算机,但事实证明我们能解决从没见过的问题,能发明出自然界里面不曾存在的东西。这个跟计算机比还是很有优势的。就算不否定计算机现有的数学运算方式,起码我们要加上这种基于观念的运算与思考方式,才能在人工智慧的道路上进一步突破。
视觉系统很值得思考。人的视网膜上面,有感受黑白的视杆细胞(Rod cell)和感受红绿蓝的视锥细胞(Cone Cell)。人的视网膜中有超过一亿个视杆细胞,约有600万~800万个视锥细胞。这些细胞,又连接到视神经。视神经一侧连接这些视觉细胞,一侧连接大脑中的神经元,所以光线刺激我们的视网膜,最终一定会刺激到大脑中的某个神经元,应该这个感受的终点,就是我们最初通过视觉形成的观念。这些是我们智慧的起点。
这里有点有趣的知识,说道色盲的成因,以及为什么大多色盲是男性,还有提到了一种奇怪的四色视着,他们比正常的人类能看到更多的色彩。
我们所有的观念,一定都是通过视觉、听觉、嗅觉、触觉这些基本的感受单元建立起来的,如果没有这些,我们连基本的观念都不会有,更提不到那些抽象的观念。所以我觉得观念,就是对应着一个神经元,而这个神经元就是视觉、听觉、嗅觉、触觉等活动的最末端的那个神经元。观念不是个什么神秘的东西。只是一个神经元的激活状态而已。
我们的大脑有奇怪的本领,比如看见牛,又听见他的声音,就会将听觉的末端和视觉的末端联系起来,进一步将牛这个观念抽象化,内化。观念的存储有可能是存在冗余的,听觉的末端和视觉的末端,都有牛,即使一个消失了,人应该也还记得牛这个观念,也能联想到一系列其他的和牛相关的东西,比如毛,犄角,它是哺乳动物……等等。
而且我们下次再判断一个东西是否是某个观念,并不需要全部信息。比如,想象一头被墙挡住的牛,只要我们看到一个局部,牛的尾巴,牛的犄角,牛的前腿、侧面等等,我们都会想到牛。当然我们可能会犯错误,比如想像一个牛头马身的非牛动物。可见我们要激活一个观念,只需要少量信息就可以。比如我们做在这里冥想,可能只要想到了老虎什么的带毛的动物,或者想到农民,就能渐渐地联想到牛,激活这个神经元并进一步从这个神经元激活其他关联的神经元。
从基本的感觉信号,到一个特定观念,这个过程非常值得思考。比如再看手写数字识别的问题,人写出来的东西,总是五花八门不是那么标准的,但是我们大概总能把2认出来——我们会用一些小技巧,比如说在识别车牌的时候,知道是不会出现字母z的。我们会根据上下文,大概的判断2合不合理。是2还是7,或者是不是一个什么汉字。
这样看来,卷积和池化可能还是很接近于人类的工作方式的。人类的狡猾之处应该是可以利用邻近的观念。利用上下文做出更好的判断。
池化是简单的,以人类的视觉为例,那么多视秆细胞和视锥细胞,眼底到大脑的神经束可没那么多条。一定是光信号先归结到若干条神经,然后再输送到大脑中的视觉区域,这其实就是个池化过程,而且应该是相当简单粗暴的,就是暴力的丢掉很多信息。人类对于变化,例如颜色不同和明暗不同,应该会更敏感一些,所以更容易识别出边缘。
这个可以通过简单的实验验证,让一个人观察一个动物,比如老虎,斑马,然后趁他不注意,问他斑纹的数量和形状,除非特别留意,不可能有人回答的很好,这说明这些信号在传递给大脑的时候,都丢掉了,我们只知道老虎和斑马有斑纹,具体多少,形状,都是没有进入大脑的。只有大脑要求人注意,人才会反过来集中自己的视觉资源,获取有用的信息。
所以如果这样说,卷积的过程,不会形成一个缩小、抽象的东西,比如说一个老虎,三角形,就不是那么不可理解的事情了。人类大概也是这么工作的,就是让一系列的光电信号,变成神经信号一路传导,传到某些神经岔路的,无法激活后面的神经元,就丢掉了,而在众多接收这些信号的神经元中,一波输入信号过后,有若干神经元进入到了激活状态,这些神经元应该联合的,就形成了一个观念。但是不是用卷积核与图像做卷积运算,这个不应该那么肯定。
观念绝不是只有人类有,各种有神经系统的动物,猫,狗,老虎,都是有的。他们能够捕猎,能够逃跑,能够在城市里面过马路,都是因为他们能建立观念。
激活函数、池化是可以保留的。因为这个和神经系统的工作原理很像。但是Sigmoid这类的激活函数是不科学的,因为神经系统没有这么复杂。ReLU这样的还好。
除此之外,其他大概有这些地方值得怀疑。
因为生物的神经系统里面显然没有这么个机制。我们认知一个东西的时候,没有这个反向纠偏的过程,只有正向强化。例如练长笛时候手,眼,耳朵和气息之间的协调。
如果不再需要反向传播机制,那梯度下降、损失函数也就不需要了。
同样,生物神经系统里面也没有这个卷积运算。或者是生物用什么电化学反应,巧妙的实现了类似效果。生物的神经系统是如何提取物体的特征的?或者更进一步的问,神经系统有没有这个提取特征值的过程?人类是不是靠特征值来触发观念的,有没有别的方法?或许,假设我们的大脑是一个多维向量空间,所有的神经信号刺激,最后都会停留在这个向量空间中的某个位置,我们可能只是靠位置来决定要激活什么观念的。
现在的常用引擎连接数量是多少?人脑神经元平均有几千个突触,不确定这个数据是否准确。
如果看我们人类的思考,其实就是一个观念带起其他的观念,从模糊到具体。把这个问题简化一点,用老虎捕猎来说,首先是饥饿这个生理反应,会让老虎找吃的,那么饥饿这个感觉(也是一个观念),会关联到食物,既可以是上次捕猎过的,也可以是活生生的牛,羊等观念,以此类推。人类也差不多,比如说冷了,就想保暖,淋雨了,就想要一个山洞或者什么的,接着,人类会联想到自己建一个山洞,这就成了房子。
再比如复杂的物理数学问题。比如说炮兵,战斗中,想要发射炮弹击中目标,那么就会想着初始速度是多少,炮的仰角如何,经过一系列的联想,形成精确的结果。我们理解更复杂的问题,比如微分几何,广义相对论的时空图像,一样是先要建立一个形象,一个简单直观的观念,比如说广义相对论,它的基本的观念就是时间和空间度量的缩放,好的老师,好的思考者,能够直接给出这个物理图景,那接下来很容易理解克里斯多夫符号,度量张量;如果没有好的老师,就只能硬从符号的数学形式下手,但到了最后,一定都是一系列的观念,从模糊粗略的观念,到能够精细执行的数学算式。
人的大部分行为,都是这样的,先从一个观念开始,然后会展开若干联想。其实我们经常不一定就能找到最好的方案,有的时候是问题激活的那个观念,和最适合作为答案的观念,不一定就能直接建立关联。而且经常解决问题的方案,可能是好多好多观念,比如说现代社会,用软件解决问题,上千行的代码,就是很多很多观念,不是一下子就能完备的。是先有一些基本概念,先把过程跑起来,再逐渐的优化。汽车,飞机不都是这样吗?我们知道我们想飞,但是要经过多少尝试,准备多少零件,最后才能成功的制造出各种飞机?
所以,机器是可以思考的,只要它知道存在什么问题,从这个问题出发,像人类一样,开始联想其他的观念,把模糊的观念细化,串联起来,变成能够实际的准确工作的方案,这就是机器的思考了。
当机器会觉得无聊,希望不停的从外界摄取信息,希望看到,听到,希望学习新的知识,会遇到问题,需要解决问题,那么就是机器真正的开始思考了,另一种形式的智慧,起源于人类,又和人类不同的智慧,就开始了。
人的神经系统很像一个消息循环。消息有两类,一类是感官系统传来的信号,比如冷热,声音,光线,这就像系统中断一样;另一类是神经系统的随机播放。经常用的种类,播放频率更高。比如我练习钢琴和长笛,思考物理,休闲时候阅读罗马人的故事,或者想念某个人,这些东西就会轮番的出现在神经系统的消息循环中。如果我们不加控制,人是经常走神的,一会儿想到这个,一会儿想到那个,但是如果发现了非常有趣的东西,或者近期的注意力集中在某一方面,神经系统就很容易沿着这个方向展开联想。
如果是在关注某个问题,比如说尝试理解克氏符是什么东西,或者想要解决一个什么问题,比如说推拉门的轮子坏了,需要修复,那么我们的联想就就像从观念仓库进行枚举一样。只是我们的枚举是从进到远的。有时候也完全想不到一些该想到的东西。我们会从手边的东西,或者近期碰过的东西开始枚举。
而一旦找到了合适的东西,就进入了解决的过程。尝试理解某个理论的时候,如果联想到了形象的过程,或者要解决的问题,也就理解了这个理论。好的老师注意形象化,联系具体的问题。差的人,则只会在抽象符号之间搞来搞去。
这个消息循环很像是单线程多任务的。如果人脑中真的存在一个消息循环的生理构造(感觉上来说,很可能真的存在),那这个消息循环本身的检测频率并不是恒定的,如果说你正专注于某事,这个消息循环可能会减速。睡眠时候它也减速。有一点不是很清楚,我们脑中的观念,是要进入这个消息循环进行处理才会支配其他活动,比如说联想到其他观念,或者支配手指的动作——这个似乎不太合理,这样处理就太啰嗦了,但是专注是如何影响消息循环的呢?
这个消息循环其实就是无聊的来源。如果没有任何输入,或者长期输入类似的内容,人的大脑就会厌倦无聊。
一只狼从没见过汽车,把它放到城市里,相信他也会机警的躲开汽车。这说明生物,智慧体只需要对外界做出反应,而并不需要了解全部的信息。
人类的思考活动有时候也很有意思,会翻来覆去的想很多。这当然是智慧的体现。知道的信息越多,想的方案越多,胜算也相对会大一些。但是不要忘了我们和一只狼的智慧,很多地方是相似的,大多数时候,我们并不需要去了解所有的信息。比如说见到汽车来了,甚至不需要知道它是汽车,一个没见过飞机汽车的原始人,也会知道这个东西威力巨大,要离它远点,并不需要知道它是什么,也不需要知道它是怎么做出来的。
这里的有趣之处在于,我们明显可以看出观念是分层级的,狼只需要知道汽车是个大家伙,有危险性就够了,如果狼有更多的智力,它可以了解汽车的内部结构,材料。但显然做一些基本的决策,不需要那些观念。
人类看到一个问题,思考解决方案,然后解决问题,其实也是一个联想的过程。好比说看到雨棚漏水了,那就会去观察哪里漏水了,然后联想一下防水材料有哪些,再想想该怎么补……,这个过程也并不是神秘的不可理解。
以人的视觉系统来说,每个眼睛可以在非常短的时间内,在一个神经信号周期,处理上亿个信号,这是多可怕的计算能力啊。生物细胞虽然看起来很啰嗦,有DNA,有细胞核,细胞液等等,但依然是很高密度的。我们的计算机一次运算才能算多少?所以生物真是一个天然的超级强大的计算系统啊。
人的视觉系统,需要一定的时间处理一幅图像,视觉暂存是相当合理的。如果我们的眼睛没有视觉暂存,那我们就没能力做接下来的处理,所以,我们有视觉暂存,花一定的时间处理图像,假设我们处理一幅图像是50毫秒,那么每秒钟我们可以处理20张图像。就算视网膜只有1亿个细胞,我们的视觉系统,也在一秒钟之类,做了20亿次位运算。这是相当可观的。
人的大脑更加可怕,有800多亿个神经元。即使每秒运转10次,那也是8000亿次的处理能力。当然我们远远不会激活所有的神经元。
再看看电脑,以Pentium 4/2.0为例,它的工作主频为2.0GHz,这说明了什么呢?具体来说,2.0GHz意味着每秒钟它会产生20亿个时钟脉冲信号,每个时钟信号周期为0.5纳秒。而Pentium 4 CPU有4条流水线运算单元,如果负载均匀的话,CPU在1个时钟周期内可以进行4个二进制加法运算。 这就意味着该Pentium 4 CPU每秒钟可以执行80亿条二进制加法运算。但如此惊人的运算速度不能完全为用户服务,电脑硬件和操作系统本身还要消耗CPU的资源。
ARM芯片的架构与X86架构不同。Arm CPU的运算能力需要单独评估。
这里收集一些对比人脑和计算机的计算能力的文章。这个问题还是值得思考的。它让我们清楚现在人类的人工制造的计算能力,距离我们这个天然计算系统还有多大差距,从物理上实现人工智能是否可行。
这个消息也值得关注。一个GPU, 800亿个晶体管,这是什么概念?!
有机物,从病毒开始,就具有了繁殖能力,想想基本原理也许算不上复杂,一个一个的有机体,就像有复杂极性的磁铁一样(不止N-S两极),从环境中吸收零件,吸收多了,又会分裂成一个新的个体。
人的生命,是很有悲剧色彩的。我们从世界吸取各种营养成分,包括有机物和无机物,一个一个的分子,原子,去维护自己的生命,自己的意识,从无序构建有序,学习知识,练习音乐,但是终归要走向死亡。所有熟练的东西会忘记,会消失,会变得无人理解。最终又会变成灰尘。
如果生命无尽,那么每个智慧的存在会不会都有不可思议的技能,这个世界会不会很精彩?
人类作为一种生物体,太多冗余设计了。电信号的传导看起来好啰嗦,在一个神经元内,需要用钠离子和钾离子的不断泵入泵出,来实现电信号的传递,在神经元之间,则需要依赖神经递质。这些东西如果从物理的角度看,应该有更好的实现方式才对。
人的身体太过复杂了。几个毫米的误差,就能造成听觉、视觉方面的疾病。而人体并不是那么精确的结构,经常都会有一些小缺陷。我自己就深有体会。
今天的新冠病毒肆虐,也是很不可理喻的事情,说到底的原因就是人类作为一种有机物的复杂性。病毒和DNA不过像磁铁一样,但是太多磁铁在一起,还要分辨出磁铁的组合方式,这就让人崩溃了。本质上是不需要这样的机制来保证智慧的运行的。
到了今天,基于人类现有的知识,大概很难认为人类是智慧的最终形式,新一代的智慧形式已经隐约可见了。
人的出现,绝对是个奇迹,从能够接受光线刺激而改变形状进而产生运动的草履虫,这个单纯的无意识的生化反应,进化出了能思考,能反问自己存在的意义的我们——我们当然编造过很多故事,假大空的哲学,但是毫无疑问能作为人存在一回,是非常非常可贵的,谁愿意自己的意识消失在永恒的黑暗之中?
但同样也毫无疑问,如果我们能够用更简单的实现机制构建一个智慧系统,而且可以更快的传导知识,那么我们就会升级为神一样的智慧,永生不是梦想,智慧也不用耗费那么多时间去学习前人已经掌握理解的知识。虽然作为生物,我终将死亡,但我盼望那一天。智慧就会进入另一个层次,虽然其中充满了未知,不知道那个时候,智慧是否还同样贪婪,同样恐惧,同样会有战争,会有不同的阶级,命有贵贱。
上一篇:人工智能的发展现状
下一篇:人工智能三大核心要素简析(上)