内容简介:一个神经科学工作者眼中的Alexnet(下)
(因为本文只针对Alexnet,所以并没有考虑神经网络的最新发展。这个领域发展如此快,有这么多变种出现,不可能一一讨论细节了)
接着上一篇,有空了继续说说Alexnet,把另外几个Alexnet和神经科学当中相关的点讲完,比如池化(pooling),dropout 还有数据增强(data augmentation)。
池化(pooling)
老实讲,神经科学当中pooling这个词在不同的应用场景下很常见,可是真的是从机器学习的人口中才第一次听到了『池化』这个中文翻译。。。
在神经科学中,把多个神经元的信息放到一起做某种特定的计算,或者读取出相应的信息,就是一种pooling的表现。当然有很多可以讨论的点,比如把什么样的神经元来放到池里,池化的范围有多大。池化和非线性激活函数一样,成为目前很多卷积神经网络的标配。从神经网络的角度来讲,池化有这样几个优势。首先,能够对参数进行下采样,逐层减少输入数量,使计算更快优化更方便。其次,因为参数数量的调整,可以防止过拟合。最最重要的是,增强了对输入图像局部扭曲,拉伸,平移的变化的不变性。这几条相信已经是机器学习里面的共识,不细讲,知乎上随便搜一搜就能找到介绍文章。
那么人类视觉神经元是不是在做池化操作呢?可以很肯定的是说,是有的。而且这种pooling也是人类视觉系统建立稳定的位置,朝向不变的的客体识别的基础。从视皮层的角度来说,一个重要的特征就是,神经元的感受野(receptive field)逐渐增大,所表征的内容也从简单的线段边缘到高级的物体特征。但是感受野这东西是怎么来的?就是对前一层的输入做下采样,也就是pooling得到的。换句话说,每一个更高一级的神经元就是池化了低一级当中多个神经元的输入。这种池化增强了物体不变性,但是损失了细节。有意思的是,在人类视觉中,中央视野(foveal vision)和外周视野(peripheral vision)具有明显的pooling范围的区别。举个很简单的例子,视觉拥挤(visual crowding). 图来源Wallis et al. 2011
请把注视点放到中央圆点,你还是能辨别出右边是字母N,但是左边的N是识别不出来的,原因是周边包围了一些别的字母。因为在外周视野,相当于把左边视野的这些字母取一个池化,自然就破坏了中间字母N的识别。另外说一句,更多的观点认为这种外周视野的池化是一种平均,而不是取最大值,和现在的神经网络设计并不太一样。最大值可能对应的是神经计算当中,winner-take-all的解码方式,不细讲了。
这种以离心率(eccentricity)为基础的pooling,似乎并没有出现在目前的神经网络设计中。一个原因是,离心率与注视点有关,而一般的图像识别基本不考虑注视点。我从目前的人类视觉系统的pooling设计上,看不到对神经网络的有什么有益的作用。
数据增强 (data augmentation) 和Dropout
这两个放在一起讲,是因为都是防止过拟合的手段,前者是一个很早就发现的trick,后者是近些年hinton想出来的办法。但是具体讲神经网络的过拟合之前,先讲讲人类视觉的学习。
神经网络很容易过拟合,数据太少,参数太多,数据分布不均匀,训练和测试数据分布不一致等等原因都可能导致过拟合。简单来说,你辛辛苦苦训好了神经网络,稍稍改一个环境参数就不适用了。 我想说的是,不仅仅是计算机视觉,人类视觉学习不能迁移的性质让视觉神经科学家们头疼的几十年!!!
什么意思?比如下图(Byers & Serences 2014), 先后呈现两个朝向的光栅(-45°±5°),然后问你第二个光栅相对于第一个是顺时针旋转还是逆时针旋转。看起来很简单的实验,实验室里做这个行为实验的话,一个人训练几个小时,很可能就能分辨精细到±1°的差别。可是如果把刺激翻转过来,换成45°±5°,就没有任何提高。换句话说,你学会的朝向辨别,仅仅在-45°有效,把视觉刺激换个『马甲』就不认识了。类似的情况还有很多,比如你训练在左视野做朝向辨别,刺激放到右视野就跟没学一样。从这个角度来讲,人类视觉系统真的是非常stupid。。。
为什么人类视觉系统的训练不能迁移,稍稍改变实验条件就狗带?这个问题早在80年代就发现,到现在争了几十年。有意思的是,北大心理学院的余聪老师在2008年发表了一篇很著名文章(Xiao et al, 2008),彻底颠覆了人类视觉学习不能迁移这个观点。如果在训练的时候,使用以上-45°的光栅,同时加上元刺激翻转(45°),或者平移的版本,哪怕是训练另一个刺激,学习就能迁移了。这和机器学习里面的data augmentation不就是一回事么?可惜认知神经科学家们争论了这么多年,如果有人真的去看看计算机视觉的人是怎么避免过拟合的,也不至于在黑暗中摸索了这么久。
Dropout
Dropout是Alexnet里面比较创新的设计,从实现上来讲很简单,就是每次随机的把一个神经元的输出以0.5的概率设置为0。关于这一点的设计,知乎上也有讨论,求问这一点到底是怎么想到的 Krizhevsky等人是怎么想到在CNN里用Dropout和ReLu的? - 知乎 。(在之前的版本中,我形容这种随机性是noise,但是后来看评论才发现不同领域对noise的定义非常不一样,比如我认为以0.5的概率随机关停神经元在形式上就是引入伯努利noise,但是神经网络研究者并不这么认为,以下就统称为随机性stochasticity吧)。
Dropout的总体的思想就是,在训练过程中,让整个网络内部具有一定的随机性(stochasticity),引入随机性之后能够在训练过程中实现对模型参数的贝叶斯估计,也就是不仅要知道优化值,还要知道对参数的confidence,简而言之不是简单得到一个值,而是针对每个模型参数构建一个后验概率分布。有个问题我并不清楚,alexnet加入的是伯努利分布,如果加入别的随机性,比如高斯,是不是在数学上还是等价于贝叶斯估计?
(之前的版本我只想简要提到随机性和贝叶斯估计的关系,因为我觉得加了这部分会又臭又长,既然评论有人说了,以下多展开一点)。
当时我看到这一点,觉得是细思极恐的。随机性在神经活动中早已经被证明广泛存在,比如一个神经元的发放在一定时间内满足泊松分布,很多神经传导满足高斯分布。关于这些随机性存在的意义,一直都有争论。但是有一个大原则和以上神经网络中引入随机性的效果是一致的,就是这些随机性对大脑内部的概率表征具有重要作用,这些随机性的发生是在大脑实现蒙特卡洛采样或者贝叶斯的基础。
其中有这样几个区别
1. Alexnet是在训练过程中引入dropout,然后测试的时候并没有用(实际上应该用来估计预测值的confidence)。实际的人类视皮层神经元是无时无刻不有随机性的。
2. 随机性和学习泛化的关系,在人工神经网络上有了很好的证明,但是在人类视觉系统还没有很好的直接证据。如果能在人类视觉上证明这一点,是不是是计算机科学家们又给神经科学家们上了一课呢?
3. 相反,很多人认为人类视觉神经元当中的随机性,是为了做采样。一个很简单的问题,要构建一个后验概率,拿出一张纸,你就可以写出公式,解析解或者利用变分推断。问题是,这些全是数学上的东西,大脑里面只有这么多神经元,怎么实现?比如有相当多的人认为,神经元的随机性让一群神经元可以针对一个特定的后验分布进行蒙特卡洛采样。这个采样的过程就可以融合了多种自上而下和自下而上的过程。
Haefner, R. M., Berkes, P., & Fiser, J. (2016). Perceptual decision-making as probabilistic inference by neural sampling. Neuron , 90 (3), 649-660.
Orbán, G., Berkes, P., Fiser, J., & Lengyel, M. (2016). Neural variability and sampling-based probabilistic representations in the visual cortex. Neuron , 92 (2), 530-543.
Heeger, D. J. (2017). Theory of cortical function. Proceedings of the National Academy of Sciences , 114 (8), 1773-1782.
总而言之,Alexnet把计算机视觉的研究带入了一个新的高潮,以后的很多结构基本都遵循了Alexnet的大框架。以上这些只是抛砖引玉,更多的是希望神经科学家们认真看看机器学习领域的进展,看看这些东西能给我们理解人类大脑带来什么。
Other references
Byers, A., & Serences, J. T. (2014). Enhanced attentional gain as a mechanism for generalized perceptual learning in human visual cortex. Journal of neurophysiology , 112 (5), 1217-1227.
Freeman, J., & Simoncelli, E. P. (2011). Metamers of the ventral stream. Nature neuroscience , 14 (9), 1195-1201.
Jeter, P. E., Dosher, B. A., Liu, S. H., & Lu, Z. L. (2010). Specificity of perceptual learning increases with increased training. Vision research , 50 (19), 1928-1940.
Wallis, T. S., & Bex, P. J. (2011). Visual crowding is correlated with awareness. Current Biology , 21 (3), 254-258.
Xiao, L. Q., Zhang, J. Y., Wang, R., Klein, S. A., Levi, D. M., & Yu, C. (2008). Complete transfer of perceptual learning across retinal locations enabled by double training. Current Biology , 18 (24), 1922-1926.
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 远程工作者如何管理个人所得税
- Python数据科学:神经网络
- Science:人工智能的发展离不开神经科学,先天结构或是下一个方向
- 开源Bloom是一个REST API缓存中间件,充当负载均衡器和REST API工作者之间的反向代理。
- 数据科学家的必备读物:从零开始用Python构建循环神经网络(附代码)
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web Analytics
Avinash Kaushik / Sybex / 2007-6-5 / USD 29.99
在线阅读本书 Written by an in-the-trenches practitioner, this step-by-step guide shows you how to implement a successful Web analytics strategy. Web analytics expert Avinash Kaushik, in his thought-p......一起来看看 《Web Analytics》 这本书的介绍吧!