今天东至,有点冷啊。大家多穿点衣服,别感冒了。嗯,该吃一点甜的东西润润心才好。
呃,还是回到正题吧。我们来第一次谈谈人工智能塔尖上的东西——神经网络(Neutral Network)。
第一次听到神经网络这个名词,应该是在2013年,大约在冬季吧。那时候上了一门数值计算的必修课,我才对插值、偏导等等的数学工具有了更多的认识,也就是在那个时候,经常听到同班里电气、计算机方向的大神们对神经网络侃侃而谈,牛逼的很。
而且在那时,我们都没听说过python啥的,用的最多的还是matlab。于是那些大神们可以用matlab从头开始写出一个一两层的神经网络,在那个时候,真心很羡慕的(只是现在嘛,让我写一个一般结构的N层神经网络,估计不到1分钟的时间就可以了。时代在进步啊…)。不过在那时,我也上网百度过什么叫神经网络,得到的结果大致是:(1)具有很强的拟合能力,直的弯的函数都能非常靠近;(2)黑匣子的表现,我们不清楚内部到底在干什么,只知道输出结果还不错,可以直接拿来用;(3)仿生学,具有类似生物大脑结构的组织及运行方式。本科期间,神经网络对我的感觉,大致上也就停留在上面几点很空的描述里,我也没做更细致的研究了。
直到研究生生涯开始,恰巧由大数据带动的人工智能方向异常兴起,神经网络这个AI宠儿又来了一次赢得了全球科技前沿的研究热情,似乎不对它加以研究就脱离了时代一样。(我当时在2015年底也写了一篇博客,专门从哲学和认知学角度谈了谈大数据热浪之后势必是人工智能这股风,有兴趣的朋友可以再去看看。)
于是,我在大四下期的时候也开始细致研究神经网络和机器学习了。研究至今,也算是大概弄清了目前人工智能的发展方向吧。不过,有一点疑问倒是长时间围绕着我,那就是,为什么神经网络的这种简单结构(中间层函数的输入输出、激活函数、损失函数等),就非得说是在模仿生物大脑思维结构呢?这个最初是谁提出来的?这些问题,很多教材和书籍都直接跳过,或是人云亦云的简单描述了一番,我估计多问作者几遍他也不知道怎么回答。这类定义完全不能让我信服。因此,我也花了大量时间去寻找人工神经网络的生命起源,在这过程中也发现了一些有趣的事情。
一、原始定义
根据最原始的定义,神经网络被看做是以下的一种自适应器(Adaptive Machine):
神经网络是大量并行分布的、由简单处理单元构成的、具有储存经验知识并能自发运用的处理器。它与大脑有两点重要的相似:
1.知识是通过网络在与环境交互过程中学习得到的。
2.对标生物的突触权重,人工神经元连接交互的强度即用来储存获得的知识。
于是乎,这个知识获得的过程,或者直接讲就是权重改变的过程,就称为学习。这其实就是一种泛化能力的体现。
二、神经网络的可适用价值
根据神经网络的定义,我们可以得出神经网络有价值的地方:
1.非线性(Nonlinearity)。神经网络可用于处理线性尤其是非线性问题,而且这种非线性是通过分布式的网络感知得到的。
2.输入-输出映射(Input-Output Mapping)。就是之后被广泛地称之为监督学习的范式,这也是目前被广泛商用的神经网络训练方式,这里先不展开讲了。
3.适应性(Adaptivity)。神经网络具有一种自发的能力来调整突触权重以适应周围的环境。
4.表征反应(Evidential Response)。在模式识别里,神经网络不仅可以提供应该选择的类别,还可以指出该分类判定的可信度(Confidence)。
5.情景信息(Contextual Information)。知识是由精心的网络结构以及激活函数的状态来表示的。每个神经元都有可能受到网络中其他神经元的活动而发生改变。因此,情景信息可以自然地被神经网络结构来处理。
6.错误容忍(Fault Tolerance)。这个在拟合过程中无法避免且十分必要。
7. VLSI可实现性(VLSI Implementability)。VLSI指的是very-large-scale-integrated(超大规模体),神经网络的大量并行处理方式可以潜在地提高具体计算任务的速度。
8.分析-设计的均匀性(Uniformity of Analysis and Design)。这一点强调了神经网络作为一种信息处理器的一般性。
9.神经生物学类比(Neurobiological Analogy)。这是非常有趣的一点。一方面,神经生物学家在试图把人工神经网络作为一种研究工具来解释生物神经的现象时,另一方面,工程师们便尝试通过硬件设计来从生物神经学的角度探索并寻找解决现实复杂问题的new ideas。诶,就这么凑巧,两拨人就这么走在一起了。
似乎我们现在已经大致清楚了人工神经网络结构是受生物大脑结构的启发而想出的一种大规模并行分布式处理器。但是,这仅仅说明了连接方式上是有互通的,但是似乎还没搞清楚激活函数以及前馈后馈机制存在的意义吧?似乎我们还要再深入一点探索生物神经元。
三、人类大脑的神经系统
人类大脑的神经系统可以被看做是一个三级结构(Arbib,1987),包括Receptors、Neutral net和Effector。
从箭头的朝向,我们可以看出整个反应系统是双向的,这也是一种直观的理解。接下来就是我们高中生物课上学的脑细胞结构了(幸好不用高考了…)。
虽然高考离我们也有很多年了,不过我们大概也应该能回忆的起,我们的神经系统也正是这样通过信息的双向传递来适应外界刺激并作出反应,并在之后形成一种相对固定的反应模式,这也就是一种学习。这种基本的椎体细胞(Pyramidal Cell)可以接收超过10000多个突触的通讯、然后投射到数以千计的目标细胞上,因此这种微观信息的传递效率的高低也就对外表现为一个人的反应快慢了【注:椎体细胞是皮层神经元最常见的一种类型】。1990-1992年,Shepherd、Koch、Churchland和Sejnowski这几位研究人员发现了以下的层级交织的区域大脑组织形式,而这也是目前人工神经网络发展的引导。
四、结语
虽然,相比于生物的神经系统,目前我们在计算机里所建立的人工神经网络在回路、结构等方面还显得非常原始,但是,值得欣喜的是目前的神经网络研究还在持续推进。
用Simon Haykin著作中的一句话来说就是:
With neurobiological analogy as the source of inspiration, and the wealth of theoretical and computational tools that we are bringing together, it is certain that our understanding of artificial neural networks and their applications will continue to grow in depth as well as breadth, year after year.
以上就是本推文全部内容了~
本公众号目前已获得留言等全部原创功能,欢迎大家一起交流讨论,欢迎原创投稿~~
领取专属 10元无门槛券
私享最新 技术干货