Alexnet学习笔记

Alexnet学习笔记

全称:ImageNet Classification with Deep Convolutional
Neural Networks
实现了37.5%和17.0%的top-1和top-5错误率,相比之前的技术先进很多

该神经网络有6000万个参数,在6000万个参数的情况下依旧可以很好的收敛,由五个卷积层组成,其中一些卷积层后面有池化层,以及三个全连接层,最后是一个1000维的softmax

收敛:训练网络就好比解方程式,而解方程式需要我们找到这个方程的极值点,训练的过程就好比找准一个方向,不断朝这个方向靠近,使得方程的值不断减少,最终找到这个极值点,而不收敛,就是,无论怎么跑都无法找到这个极值点,表现为loss值稳定性比较大,无法下降
Alexnet学习笔记
卷积层与全连接层:卷积取的是局部特征,全连接就是把以前的局部特征重新通过权值矩阵组装成完整的图,因为用到了所有的局部特征,所以叫全连接。
使用GPU实现,效果更好。

该网络的亮点在于:

(1)首次利用GPU进行网络加速训练。
(2)使用了ReLU激活函数(ReLU收敛速度比sigmoid和tanh快了六倍
(3)使用了LRN局部响应归一化(用来减少过拟合)
(4)在全连接层的前两层中使用了Dropout随机失活神经元操作,以减少过拟合。

过拟合:根本原因是特征维度过多,模型假设过于复杂,参数过多,训练数据过少,噪声过多,导致拟合的函数完美的预测训练集,但对新数据的测试集结果差。过度拟合了数据,而没有考虑到泛化能力。

dropout方式:在网络正向传播过程中随机失活一部分神经元。
Alexnet学习笔记
经过卷积后的矩阵尺寸大小计算公式为:

\[N=(W-F+2P)/S+1 \]

(1)输入图片大小WxW

(2)Filter大小FxF

(3)步长S

(4)padding的像素数P

作用

一般加在全连接层,防止过拟合,提高模型的泛化能力

Epoch:使用训练集的全部数据对模型进行一次完整的训练,被称为“一代训练”
Batch(批/一批样本):使用训练集中的一小部分样本对模型权重进行一次反向传播的参数更新,这一小部分样本被称为“一批数据”
Iteration(一次迭代):使用一个Batch数据对模型进行一次参数更新的过程,被称之为“一次训练”

为什么要多于一个epoch?
答:在神经网络中传递完整数据集一次是不够的,我们需要将完整的数据集在同样的神经网络中传递多次,但是,我们使用的是有限的数据集,并且使用一个迭代过程即梯度下降来优化学习过程。
Alexnet学习笔记
随着epoch数量增加,神经网络中的权重的更新次数也在增加,曲线从欠拟合变得过拟合。

【来源:https://blog.csdn.net/qq_39521554/article/details/84480429】

换算公式:

\[Number of Batches=\frac{Training Set Size}{Batch Size} \]

举个例子:
mnist数据集有60000张图片作为训练数据集,10000张图片作为测试数据集。假设选择Batch_Size=100对模型进行训练。迭代30000次。
(1)每个Epoch要训练的图片数量:60000(训练集上的所有图像)
(2)训练集具有的Batch个数:60000/100=600
(3)每个Epoch需要完成的Batch个数:600
(4)每个Epoch具有的lteation个数:600(完成一个Batch训练,相当于参数迭代一次)
(5)每个Epoch中发生模型权重更新的次数:600
(6)训练10个Epoch后,模型权重更新次数:600x10=6000
(7)不同Epoch的训练,其实用的是同一个训练集的数据。第1个Epoch和第10个Epoch虽然用的都是训练集的图片,但是对模型的权重更新值却是完全不同的。因为不同Epoch的模型处于代价函数空间上的不同位置,模型的训练代越靠后,越接近谷底,其代价越小。
(8)总共完成30000次迭代,相当于完成了3000/600=50个Epoch
【来源:https://www.jianshu.com/p/22c50ded4cf7?from=groupmessage】

b550 x570

上一篇:吴恩达【优化深度神经网络】笔记02——优化算法


下一篇:NLP面试常见的知识点