简述卷积神经网络发展进程
扫描二维码
随时随地手机看文章
卷积神经网络的发展,最早可以追溯到1962年,Hubel和Wiesel对猫大脑中的视觉系统的研究。1980年,一个日本科学家福岛邦彦(Kunihiko Fukushima)提出了一个包含卷积层、池化层的神经网络结构。在这个基础上,Yann Lecun将BP算法应用到这个神经网络结构的训练上,就形成了当代卷积神经网络的雏形。
其实最初的CNN效果并不算好,而且训练也非常困难。虽然也在阅读支票、识别数字之类的任务上有一定的效果,但由于在一般的实际任务中表现不如SVM、Boosting等算法好,因此一直处于学术界的边缘地位。直到2012年,ImageNet图像识别大赛中,Hinton组的AlexNet引入了全新的深层结构和Dropout方法,一下子把error rate从25%降低到了15%,这颠覆了图像识别领域。AlexNet有很多创新,尽管都不是很难的方法。其最主要的结果是
让人们意识到原来那个福岛邦彦提出的、Yann LeCun优化的LeNet结构原来是有很大改进空间的:只要通过一些方法能够加深这个网络到8层左右,让网络表达能力提升,就能得到出人意料的好结果。
顺着AlexNet的思想,LeCun组2013年提出了一个DropConnect,把error rate降低到了11%。而NUS的颜水成组则提出了一个重要的Network in Network(NIN)方法,NIN的思想是在原来的CNN结构中加入了一个1*1 conv层,NIN的应用也得到了2014年Imagine另一个挑战——图像检测的冠军。Network in Network更加引发了大家对CNN结构改变的大胆创新。因此,两个新的架构Inception和VGG在2014年把网络加深到了20层左右,图像识别的error rate(越小越好)也大幅降低到6.7%,接近人类错误率的5.1%。2015年,MSRA的任少卿、何恺明、孙剑等人,尝试把Identity加入到卷积神经网络中提出ResNet。最简单的Identity却出人意料的有效,直接使CNN能够深化到152层、1202层等,error rate也降到了3.6%。后来,ResNeXt,Residual-Attention,DenseNet,SENet等也各有贡献,各自引入了Group convolution,Attention,Dense connection,channelwise-attention等,最终ImageNet将error rate降到了2.2%,远远低于人类的错误率。现在,即使手机上的神经网络,也能达到超过人类的水平。而另一个挑战——图像检测中,也是任少卿、何恺明、孙剑等优化了原先的R-CNN,fast R-CNN等通过其他方法提出region proposal,然后用CNN去判断是否是
object的方法,提出了faster R-CNN。Faster R-CNN的主要贡献是使用和图像识别相同的CNN feature,发现feature不仅可以识别图片内容,还可以用来识别图片的位置。也就是说,CNN的feature非常有用,包含了大量的信息,可以同时用来做不同的任务。这个创新一下子把图像检测的MAP也翻倍了。在短短的4年中,ImageNet图像检测的MAP(越大越好)从最初的0.22达到了最终的0.73。何恺明后来还提出了Mask R-CNN,即给faster R-CNN又加了一个Mask Head,发现即使只在训练中使用Mask Head,其信息可以传递回原先的CNN feature中,获得了更精细的信息。由此,Mask R-CNN得到了更好的结果。何恺明在2009年时候就以一个简单有效的去雾算法得到了CVPR Best Paper,在计算机视觉领域声名鹊起。后来更是提出了ResNet和Faster R-CNN两大创新,直接颠覆了整个计算机视觉/机器学习领域。
当然,CNN结构变得越来越复杂,很多结构都很难直觉的来解释和设计。于是谷歌提出了自动架构学习方法NasNet(Neural Architecture Search Network)来自动用Reinforcement Learning去搜索一个最优的神经网络结构。Nas是目前CV界一个主流的方向,可以自动寻找出最好的结构,以及给定参数数量/运算量下最好的结构(这样就可以应用于手机),是目前图像识别的一个重要发展方向。今年何恺明(2019年4月)又发表了一篇论文,表示即使Random生成的网络连接结构(只要按某些比较好的Random方法),都会取得非常好的效果,甚至比标准的好很多。Random和Nas哪个是真的正确的道路,这有待进一步的研究了。
卷积神经网络CNN的发展引发了其他领域的很多变革。比如:利用CNN,AlphaGo战胜了李世石,攻破了围棋(基础版本的AlphaGo其实和人类高手比起来是有胜有负的)。后来利用了ResNet和Faster-RCNN的思想,一年后的Master则完全战胜了所有人类围棋高手。后来又有很多复现的开源围棋AI,每一个都能用不大的计算量超过所有的人类高手。以至于现在人们讲棋的时候,都是按着AI的胜率来讲了。