Machine Learning | ShareTechnote
AlexNet是一种具有里程碑意义的神经网络,它首次证明了卷积神经网络(CNN)在图像分类方面比其他类型的神经网络表现更好。你可以将其视为现在大多数基于CNN的神经网络的祖先。因此,深入了解这个神经网络是很重要的。
架构亮点:
- 参数数量:6000万
- 神经元数量:65万个
- 卷积层数量:5个卷积层+最大池化层
- 第一层:224 x 224 x 3的图像输入,96个大小为11 x 11 x 3的核,步长为4
- 第二层:256个大小为5 x 5 x 48的核
- 第三层:384个大小为3 x 3 x 256的核
- 第四层:384个大小为3 x 3 x 192的核
- 第五层:256个大小为3 x 3 x 192的核
- 全连接网络数量:3个,每个有4096个神经元
- 最后一层使用1000路softmax
- 使用非饱和神经元(ReLU)
- 使用Dropout
- 输入尺寸:256x256
为什么使用ReLU?
ReLU(一种非饱和函数)比tanh(一种饱和函数)更快地学习,因为观察到ReLU的学习速度比tanh快(见参考文献[1]中的图1)。
ReLU不需要输入归一化来防止饱和。
为什么使用Dropout?
在全连接层中使用Dropout是为了减少过拟合。
如何处理训练图像以适应输入维度?
训练图像并不都是相同的。因此,作者按照以下方式重新调整图像的大小:将较短边的长度调整为256,然后从重新调整后的图像中裁剪出中心256x256的补丁。他们使用像素的原始RGB值对网络进行训练。
为什么使用CNN而不是标准前馈网络?
理论上,如果提供足够数量的神经元,标准前馈网络可以解决任何类型的分类问题,但在实际应用中我们不知道对于我们的应用来说“足够”的数量是多少,也不知道“足够”的数量是否可以通过合理的/实际可行的计算能力进行训练。
论文(参考文献[1])指出:
与具有相似大小的层的标准的前馈神经网络相比,CNN具有更少的连接和参数,因此更容易训练,而其理论上的最佳性能可能仅略差一些。
对抗过拟合的方法:
你可能知道,大多数基于神经网络的机器学习方法中的一个常见问题是过拟合问题。根据论文(参考文献[1]),有几种常用的技术用于解决过拟合问题,总结如下:
数据增强:通过变换图像使其稍微不同于原始图像,但不会偏离其所属类别太多的方式来扩展训练数据集。这意味着训练数据集的大小比原始训练集更大。这篇论文(参考文献[1])使用了两种类型的数据增强方法:
1. 生成图像平移和水平反射。他们通过从原始的256x256图像中提取随机的224x224补丁并使用提取出的图像作为训练数据来实现这一点。
2. 改变训练图像的RGB通道强度。为此,作者在整个训练集上对RGB像素值执行PCA,并将找到的主成分的倍数与[相应特征值x随机高斯变量N(0,0.1)]按比例相加。
Dropout:这是一种删除隐藏层神经元的技术,以一定的概率进行。这并不意味着我们实际上删除了那些神经元。我们可以通过将那些被丢弃的神经元的输出设置为零来使其表现得好像它们被删除了一样。根据这篇论文(参考文献[1]),以这种方式“丢弃”的神经元在正向传播中不起作用,也不参与反向传播。因此,每次输入时,神经网络都会采样一个不同的架构,但这些架构共享权重。