关于神经网络的思考
今天,牛兄谈了昨晚一起听音乐会的时候,他萌生的一个想法。他的灵感来源于他所理解的人脑神经网络的工作机制。其中有这么几个关键点。其一,他认为神经信号只有有和无两种状态,也就是说神经信号是数字化而非像现在通行的人工神经网络那样信号是模拟化的(回来后我查了资料,人脑中同时存在这两类神经信号)。其二,他认为人脑神经网络其连接拓扑是动态演化的,而非像现行的人工神经网络那样被静态设定。这些信念促使他想象出了由逻辑门搭成的、能够在学习过程中动态演化拓扑结构的数字电路似的人工神经网络。他向我具体谈了这种网络的学习过程应该怎样,如何每来一个case,动态调整并适时归并逻辑电路结构。他认为他的网络能像深度神经网络一样,给够训练数据就能表现出色。
我兴奋地听着,不时提问。我兴奋是因为我听到了一种迥然不同的设计思路,尽管它看上去有点问题,实践起来应该更是困难重重,但它给人以启发,更何况一个硬件化的人工神经网络很具诱惑力。他提的这个完全不一样的人工神经网络,主要有两大特点,数字化和动态演化,都很有意思。我不确定它是否更接近真实的人脑神经网络,但它至少有这么些个明显的困难需要克服。第一,模拟量数字化后,神经网络的规模会相应扩大。例如原始任务假设包含100个连续值特征,本来每个特征只要对应一个神经元,如果要将这些特征数字化,那么每个特征就要对应多个神经元,因为每个神经元会对应连续性特征的一个比特位。当然,这么做并非不可以,但优势何在呢?原则上,数字神经网络应当和模拟神经网络一样,具有学习几乎一切映射关系的能力,但数字信号是不连续的,这将大大增大优化问题的求解难度(所以在牛兄的模型里,按他的说法,不存在这样一个优化问题)。第二,动态演化是我对这个模型最感到惊讶的地方,他提出这点是想打破现行人工神经网络中固定的层级关系,让系统自己去学习网络结构。他提到动态演化过程中要做逻辑门的归并,这个过程类似于我们做逻辑表达式的化简,可是符号逻辑的自动推理本身就需要相当的人工智能技术,具体要在这个模型里实现起来,如何操作呢?我觉得这部分是设计核心,它的学习过程完全不同于机器学习领域里讲的最优化目标函数那套,同时我承认自己目前理解得不清晰,需要改日再详细请教。第三,它和现行的人工神经网络一样容易过拟合,而且我总觉得它更容易过拟合。数字化的神经网络里,如果不是全部,至少某一些神经元会带有特定的位权重(存在高比特位和低比特位神经元),这将使系统变得更敏感。总体来说,从数学上讲,模拟量的数字化本身没什么问题,引入逻辑门在数字系统里面也属必然,且任何复杂的数学运算都能由逻辑门搭出来,而动态演化则是个很关键的东西,在数字逻辑电路的语境里,它似乎变得更容易解决了。
最近这段时间是我第二次密集地学习和思考神经网络。上一次是在上学期的数据挖掘课上,当时第一次接触神经网络的细节,就被模型的简洁和效力,特别是它对人脑神经网络的逼近所吸引,其中最后一点,它意在模仿人脑神经网络是我最看重的一点。最近看深度神经网络,深度的魅力在于从原始数据的输入到最终概念的输出,层层提取抽象概念,越接近输出层,便越接近最终需要理解的概念。打个不是很严格的比方,我们需要判断一张图片中是否有人脸,对于这个问题,我们往往会把它分解成几个小问题,比如图片中有没有人的脑袋、眼睛、鼻子、嘴巴等等。然后我们会把问题进一步分解,嘴巴应该长什么样呢,哦,应该有上下两片嘴唇,中间可能露出洁白的牙齿,不过也可能没有等等。如此不断深入分解下去,直到分解到我们不假思索就能识别出来的特征为止。这整个过程就是人脑判断图片中是否有人脸的思考过程。这套过程用深度神经网络的语言表达就是,是否有人脸是输出层,是否有脑袋、眼睛、鼻子、嘴巴等等是倒数第二层,一层层深入下去,直到第一个隐藏层,其中的神经元直接与输入层的像素数据相连,这些神经元的任务简单到只需要学习最简单的特征即可。如果从前往后看这个神经网络,正如前面提到的,逐层提取抽象概念,直至抽象到人脸这样一个超级复杂的概念。但要是我们去掉中间各层,直接从像素数据中提取人脸这样的概念,这得有多难呢。这正是深度的意义。
深度神经网络给了我们复制人类智能的希望。人们提出了众多机器学习的模型,每一个都基于特定的人类推理直觉,但这种推理直觉往往只适用于特定问题。而深度神经网络有所不同,它的灵感来源于人脑!既然要让机器像人类一样思考,模仿人脑运作方式显然是最稳健的做法。我感到造物主似乎在呼唤着我们,人类啊,想要临摹你们自己的智能吗,去看看吧,答案就在你们的头脑里。答案就在那里,一个可行性的预期实在太具诱惑力,而临摹人类智能这件事本身更是如此。
但是从现在来看,不得不承认,现行的人工神经网络虽然模型简洁,但是相对于人脑神经网络还是太简单(尽管如此,它已经让我们的计算机算得够呛),我们应该只是模仿到了一些皮毛。假使有朝一日我们彻底弄清楚了人脑神经网络的工作机制,我们是否就能复制人类智能呢?
人脑真的很强大,它的强大思考力主要体现在识别和推理能力。目前的深度神经网络在特定识别任务上,将将超越人类,但是在推理这块,我们的研究工作根本还没什么起色。要设计一个能像我现在的大脑那样,自由思考的人工系统,目前我还完全无法想象我们有什么理论和技术可支撑我们做到这些。但是呢,对于诸如一些不那么直观的分类问题,比如说给你一堆银行交易记录数据让你学习,再给你一堆新的记录让你逐条判断哪些存在异常,目前看似简单粗暴的人工智能可以做到很好,而人类大脑呢,却容易在这样海量而又不直观的任务面前一筹莫展。这是一个有趣的矛盾,简单说来,人脑觉得困难的事,计算机轻松搞定,计算机觉得困难的事,人脑轻松搞定。对于这个矛盾,直觉上来想倒也合理,毕竟人类在长期的生存斗争中演化至今,识别和推理的能力在其中起到了至关重要的作用,反观计算机从发明至今短短半个多世纪,计算或者说信息处理是它被发明出来的初衷和长期用途。从硬件上来说,人脑天生适合做识别和推理这类思考行为,计算机以目前的架构天然适合做计算和信息处理。这使我再次联想到了牛兄提到的那个硬件电路版人工神经网络,如果真的成真,我们是否可以把它安置在计算机硬件架构里,取名AIU(人工智能单元)呢?这会是一种弥补吗?
最近看《三体》读到一个很有趣的说法。说人类那些真正的科技文明的大踏步,都是根植于对微观世界结构的更深层次的认识上。这话用在人工智能领域,特别是人工神经网络领域似乎也成立。目前我们对人脑的认识还太少。而关于人脑,现在至少有这么几个问题使我困惑,又让我着迷。人脑神经网络是如何演化至今的?人类从婴儿长至成人,期间学习了无数的复杂概念和技能,人脑在这其中是如何运作和变化的?
最后说一句俏皮话结束全篇。古代人类曾经不明就里,看问题容易表面化,比如看到日月星辰、斗转星移,就妄自制造些自诩精巧的机械结构,像是浑天仪,幻想临摹了大自然的表象结构,就能模拟它的内在运作机理,从而预测天象。然而真正地预测天象还要等到千百年后,牛顿同学发现了万有引力和力学三定律之后。回头看现在的人类,幻想依葫芦画瓢,复制出人类智能,是否同样可笑呢?但还是那句话,答案就在那里,我们会等到我们的万有引力和力学三定律吧?
参考文献
[1] Neural Networks and Deep Learning - Using neural nets to recognize handwritten digits