AlexNet 论文笔记

本文详细介绍了AlexNet的创新点,包括数据增强、ReLU激活、重叠池化、局部响应归一化、Dropout以及多GPU训练,并提供了模型的架构图和训练细节,帮助理解其在ImageNet竞赛中的优越性能。
摘要由CSDN通过智能技术生成

AlexNet_v1:ImageNet Classification with Deep Convolutional Neural Networks

AlexNet在2012年的ILVSRC上获得了第一名。相比第二名,它的准确率提高了超过了10%。

一. AlexNet的创新点

1.数据增强。

对图像进行了随机裁剪,水平翻转。数据增强使得数据增加了(256-224)x(256-224)x2=2048倍。并且改变图片的RGB通道的强度。

2.ReLU激活函数

激活函数采用了ReLU,这样就不会出现tanh和sigmoid两端的饱和现象。能够缓梯度反向传播过程中的梯度消失问题。能够明显加速网络的收敛。

3.重叠池化

将正常池化(2x2 stride 2)改为重叠池化(3x3 stride 2)可以将top-1和top-5提高0.4%和0.3%

4.局部响应归一化(Local Response Normalization)

LRN有助于泛化,但是LRN的效果其实是有争议的。

LRN其实是和BatchNorm有点像。

LRN思想主要来自于生物学的“侧抑制”
注:后续的诸多研究已经表明,LRN层基本没用!

5.Dropout

在fc中应用dropout可以防止过拟合,它以一种很高效地方式结合多个不同的训练模型。

6.多GPU训练

AlexNet的GPU实现(cpu数据预处理,gpu模型计算),大大加快了模型的训练。

二. AlexNet的架构图

AlexNet架构图
下图是ZFNet给出的AlexNet架构图(个人感觉这个更清晰):
AlexNet结构图
AlexNet一共8层,5个conv层,3个fc层。

三. 一些具体细节

数据预处理
  1. rescaled the image such that the shorter side was of length 256.
  2. cropped out the central 256×256 patch from the resulting image.
  3. subtracting the mean activity over the training set from each pixel.

训练阶段的数据增强:

  1. 随机裁剪为224x224
  2. 水平随机翻转
  3. 对各个颜色通道进行随机抖动

预测阶段的数据增强:

  1. 裁剪出 four corner patches 和 central patch 共5个224x224
  2. 水平翻转

因此一张图像总共会产生10个patch,将10个patch的softmax层输出平均,进行预测

训练细节

随机梯度下降
batch size:128
momentum:0.9
weight decay:0.0005(作者说这个很重要)

参数初始化:作者将2、4、5层conv及fc的bias置为1

初始学习速率:0.01
验证损失不下降,就将学习速率除以10

epochs:90

以下是TF+Keras混合编写的AlexNet:

# 这里使用TF和TF.keras.layers实现,可以保证绝对的兼容性
# 其实TF内部tf.layers是一个和keras.layers类似的高层API,也很好用
import tensorflow as tf
keras = tf.keras
from tensorflow.python.keras.layers import Conv2D,MaxPool2D,Dropout,Flatten,Dense


def inference(inputs,
              num_classes=1000,
              dropout_keep_prob=0.5):
  '''
  Inference
  
  inputs: a tensor of images
  num_classes: the num of category.
  is_training: set ture when it used for training
  dropout_keep_prob: the rate of dropout during training
  '''
  
  x = inputs
  # conv1
  x = Conv2D(96, [11,11], 4, activation='relu', name='conv1')(x)
  # lrn1
  x = tf.nn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值