卷积神经网络结构-AlexNet

AlexNet详解

AlexNet网络是Hinton和他的学生Alex Krizhevsky在2012年ImageNet Challenge中使用的模型结构,其中的技术细节被整理成论文ImageNet Classification with Deep Convolutional Neural Networks发表。作为深度学习历史上大获成功的经典网络,其中有很多思想值得我们借鉴学习,此篇文章将深入分析论文主要内容。

AlexNet整体结构

AlexNet

网络结构如上图所示,共有5个卷积层,3个最大池化层,3个全连接层。如今去看,网络并不能算深,毕竟ResNet网络已经可以达到上百层,但是在当时,实际上用了两块GPU训练网络。接下来将详细介绍其中的具体细节。

参数计算

卷积层输出尺寸计算:
$$
O=(I-K+2P)/S+1
$$
其中I为输入尺寸,O为输出尺寸,K为卷积核尺寸,P为填充数,S为步长。

池化层输出尺寸计算:
$$
O=(I-K)/S+1
$$
其中I为输入尺寸,O为输出尺寸,K为池化尺寸,S为步长。

网络参数

网络中参数及神经元个数计算如上图所示,参数与原文中的60million相符,但是神经元个数与原文中的650000神经元个数不符,望大家指正。

激活函数

网络中使用的激活函数为Relu,这是一种非饱和激活函数,其公式如下:
$$
f(x)=max(0,x)
$$
在原文中,作者也给出了选择Relu的原因,主要有下面两点:

  1. 下图是论文中的实验图,从中可以看出,相比于传统的sigmoid和tanh而言,其收敛速度更快。

Relu

  1. 网络与数据集都比较大,使用Relu计算量更小,计算速度更快。

局部响应归一化

原文中作者提到使用局部响应归一化技术(Local Response Normalization, LRN)可以提升网络泛化能力,其公式如下:
$$
b^i_{x,y}=a^i_{x,y}/(k+\alpha\sum_{j=max(0,i-n/2)}^{min(N-1,i+n/2)}(a^j_{x,y})^2)^\beta
$$
其中的求和表示对相同空间位置的n个特征映射求和,N表示当层特征映射的总个数,i代表当前的特征映射。原文中通过一系列验证集实验,确定其中的超参数取值如下:
$$
k=2,n=5,\alpha=10^{-4},\beta=0.75
$$
本质上LRN层相当于对局部神经元的激活值创建竞争机制,抑制反馈小的神经元,放大反馈大的神经元。

重叠池化

原文中提到使用池化时,采用步长s<尺寸k的手段(默认为s=2,k=3),增加了提取特征的丰富度,并通过实验证明了该方法不容易过拟合。

如何避免过拟合

数据增强

原文中使用的数据增强方式主要有两种,一种是平移并水平反射图像,一种是PCA。

Dropout

Dropout是一种常用的避免过拟合的方法,方法使用很简单。在训练阶段,设置一定的概率随机删除某些神经元输出;在测试阶段,则保持所有神经元的正常输出。

但是目前来讲,很少将其用于卷积层中,而更多用于全连接层中。

本文标题:卷积神经网络结构-AlexNet

文章作者:JoinApper

发布时间:2019年11月20日 - 17:11

最后更新:2020年04月05日 - 11:04

原始链接:https://zhuofujiang.github.io/2019/11/20/卷积神经网络结构-AlexNet/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。