Lecun [1]提出了经典的五层卷积网络是CNN的开山鼻祖,它成功运用于手写数字识别问题,但是由于计算机技术的限制(过长的训练时间)和不完备的理论知识(无法解释为什么CNN的工作原理),CNN一直是实验室中的小众技术。
AlexNet
AlexNet [2]在2012年ImageNet计算机视觉竞赛中大放异彩,这一项技术重新吸引了大众的目光。AlexNet遵循了传统的CNN结构,包括卷积层、可选的池化层以及全连接层,具体结构为:
conv11/96—max-pooling—conv5/256—max-pooling–conv3/384–conv3/384—conv3/256—max-pooling—FC4096—FC4096—FC1000。AlexNet有许多解决收敛速度和泛化性能的方法,现在依然被使用。1)激化函数由传统的 转变为 ,实验证明relu函数相较于tranh函数收敛更快。2)多GPU训练,将卷积操作均分到两块GPU上运行,它们之间是独立运行的,只在特定的层进行通信,如在第一个conv层每块GPU上运行48个卷积核,下一个max-pooling操作在同一个GPU上运行,而在第二个卷积层时两块GPU才进行通信。这样的操作大大的提升了AlexNet的训练速度。3)使用LRN(local response normalization),用当前神经元的n个临近神经元的相应总和归一化当前神经元的响应输出。这样做是为了拟合生物神经元特性。4)为了减少过拟合现象,使用数据扩增(取图像块、RGB图像的RGB值做PCA操作等)和在全连接层进行Dropout操作(以一定概率如0.5将当前神经元输出置0不参与梯度更新)。5)重叠的池化操作,使得池化操作的窗口大小比步长要小。训练时