老饼讲解-深度学习 机器学习 神经网络 深度学习
经典CNN模型
1.LeNet与ALexNet网络
2.VGG网络
3.GoogLeNet-Inception
4.ResNet

【训练】AlexNet模型训练

作者 : 老饼 发表日期 : 2023-07-28 10:51:08 更新日期 : 2024-02-01 02:00:02
本站原创文章,转载请说明来自《老饼讲解-深度学习》www.bbbdata.com



AlexNet(2012年)是第一个在ImageNet挑战赛上取得显著成功的深度学习模型,

基于AlexNet在深度学习中意义重大,及其对后续一系列深度学习模型的影响

本文摘录出AlexNet原文中对AlnexNet采用的训练方法,以仅学习和借鉴




    01. AlexNet原文中对数据的处理   



本节介绍AlexNet原文中对数据所做的处理



      AlexNet原文中对数据的处理      


AlexNet原文中为了加强模型的泛化能力,在训练及使用阶段都进行了数据增强的处理
即AlexNet对数据的处理包括了以下两部分:
👉1.训练阶段对训练样本进行了增强
👉2.预测阶段对输入样本进行增强   
AlexNet模型训练阶段的样本增强
AlexNet原文中,在训练前使用如下的方法对样本进行增加:
从原来256*256的图片中,裁剪出224*224的图片,以增加样本的数量
 这样一张图片,可以裁出(256-224)*(256-224)=1024张图片

 
AlexNet模型使用阶段的数据处理
 
AlexNet原文中,预测时并非直接将原图进行预测,它的预测方法如下
1.数据增强:
从原来256*256的图片的四个角和中心点共裁出5张224*224的图片,加上它们的水平翻转,共计10张图片
 也即pytorch中的torchvision.transforms.TenCrop                                      
 2.综合预测:用模型对以上10张图片进行预测,将10张图片的预测结果(softmax后的值)求平均值,作为最终的预测结果
 ✍️备注:还有一个PCA的增强方法,无关要紧,在此略过





   02. AlexNet的训练方法   


  

本节介绍AlexNet原文中训练AlexNet的方法与相关训练参数



     AlexNet权重 、阈值的初始化方法    


AlexNet原文中初始化权重、阈值的方法如下
  AlexNet权重的初始化方法  
 AlexNet原文中初始化权重的方法如下:
以0均值、标准差为0.01的高斯分布初始化每层的权重
 
   AlexNet阈值的初始化方法 
 AlexNet原文中初始化阈值的方法如下:
第2、4、5的卷积层及6、7、8的全连接层的阈值初始化为常数1
其余层(1、3层)的阈值初始化为0                                              




      AlexNet的训练方法    


AlexNet原文中使用随机梯度下降法对网络进行训练
   即更新规则如下:
 
                                                      
 相关训练参数如下:
 1.
学习率:学习率初始化为0.01(所有层使用同一个学习率)      
                              如果验证误差没有下降时,则手动将学习率下降为原学习率的10%
2. 每批样本大小:128个样本                                
3. 动量系数:0.9                                          
4. 权重衰减系数:0.0005                                   
补充:需要特别注意的是,全连接层F6与F7的训练使用Dorpout机制(p=0.5),以避免过拟合




   老饼语   


本文仅是摘录出AlexNet原文中与训练相关的内容
仅作为学习的素材,在实际训练中不必严格遵守








 End 




联系老饼