AlexNet论文理解

下面是本人关于AlexNet论文的一些个人理解

首先来看看AlexNet的网络结构图,图片来自百度百科

AlexNet论文理解

 AlexNet论文理解

 由AlexNet的网络结构图我们可以看出,相比较于在李宏毅等网络课程上看到的卷积神经网络结构,这个AlexNet的结构有着些许不同,这同时也是AlexNet论文中的创新点。

1、在**函数方面,AlexNet使用的**函数是relu**函数而不是sigmoid**函数,根据论文中的实验结果我们可以得出结论,sigmoid和tanh的gradient在饱和区域非常平缓,接近于0,很容易造成vanishing gradient的问题,减缓收敛速度。vanishing gradient在网络层数多的时候尤其明显,是加深网络结构的主要障碍之一。相反,Relu的gradient大多数情况下是常数,有助于解决深层网络的收敛问题。Relu的另一个优势是在生物上的合理性,它是单边的,相比sigmoid和tanh,更符合生物神经元的特征。relu**函数对于神经网络的改善很大。

2、双GPU训练,由第一张模型图可以看出,第一张图中分为左右两个网络结构。这两个网络结构分别在两个GPU中运行,这一创新为日后的多GPU分布式训练提供了理论基础。

3、dropout,在网络结构图中,最后的全连接层中出现了dropout,这一点是我认为AlexNet中最大的创新点。dropout的作用在于,我们可以设置一个超参数α(0-0.99),例如α等于0.3时,该层中30%的神经元将失活,也就是说不参加权值的更新,这一步骤只在训练神经网络时起作用。那么dropout的好处是什么呢?dropout可以有效的防止过拟合,因为每次训练都是不同的神经元在工作,因此每轮训练,我们都可以将起看作一个新的神经网络,n多个神经网络一起训练的结果的过拟合的程度肯定是比单个神经网络低的。

4、局部响应归一化(LRN),这一个创新点就体现在网络结构图中的标准化操作,由于这一点日后的论文中基本上都没有使用,所以就不做具体解释(并不是因为自己也没有怎么理解透彻)。这里做一个简单的解释,就是对当前层的网络输出做了归一化的处理。

补充说明:特征图大小的计算方法

卷积层:out = (in-filter_size + 2*padding)/strides + 1

池化层:池化输出大小=[(输入大小-卷积核(过滤器)大小)/步长]+1