1、背景介绍

在2012年的ImageNet竞赛中,AlexNet获得了top-5测试的15.3%error rate, 获得第二名的方法error rate 是 26.2%

AlexNet有60 million个参数和65000个 神经元,五层卷积,三层全连接网络,最终的输出层是1000通道的softmax。

训练这种规模的网络要大量的计算能力,AlexNet利用了GPU提供的大量并行能力,利用两块GPU分配网络训练的工作,大大提高了运算效率。

近60年的发展趋势:

2、与LeNet相较

更深更大的LeNet,主要改进:

  • 丢弃法(在隐藏全连接层后加入丢弃层)
  • 由Sigmoid——>ReLu,可减缓梯度消失
  • 由平均池化——>MaxPooling
  • 数据增强(随机截取、亮度调节、色温…)

计算机视觉方法的改进:
右侧为AlexNet

3、AlexNet网络结构

AlexNet网络包含8个网络层,5个卷积层,3个全连接层,采用两个GPU进行训练,激活函数ReLu,池化方法为MaxPooling,数据参数大概为240MB。

网络结构示意图如下:

  • 在第2个C2卷积层和第3个C3卷积层,以及最后一个卷积层C5和全连接f6层之间,GPU能全部连接;
  • 其他层中,每一个神经元只能接受同一个GPU从上一层传来的数据。

输入图像:227x227x3,远大于MNIST和CIFAR的数据样本,一般越大的输入信息完整性越高。

Conv1卷积层

  • 使用11x11的卷积核
  • stride=4,输出96个通道。
  • 输出特征图55x55x96:55=(227-11)/4+1。

LRN层norm1

  • local_size=5
  • 输出:27x27x96

pool1池化层

  • 3x3的池化核
  • stride=2
  • 输出特征图27x27x96:27=(55-3)/2+1

Conv2卷积层

  • 使用5x5的卷积核
  • stride=1,pad=2,group=2,输出256个通道,pad=2保证输入输出尺寸一样。
  • 输出特征图27x27x256:27=(27-5 + 2*2)/1+1。

LRN层norm2

  • local_size=5
  • 输出:13x13x256

pool2池化层

  • 3x3的池化核
  • stride=2
  • 输出特征图13x13x256:13=(27-3)/2+1

Conv3卷积层

  • C2卷积层和C3卷积层,GPU能全部连接
  • 使用3x3的卷积核
  • stride=1,pad=1,输出384个通道。
  • 输出特征图13x13x384:13=(13-3 + 2*1)/1+1。

Conv4卷积层

  • 使用3x3的卷积核
  • stride=1,pad=1,输出384个通道。
  • 输出特征图13x13x384:13=(13-3 + 2*1)/1+1。

Conv5卷积层

  • 使用3x3的卷积核
  • stride=1,pad=1,输出256个通道。
  • 输出特征图13x13x256:13=(13-3 + 2*1)/1+1。

pool3池化层

  • 3x3的池化核
  • stride=2
  • 输出特征图6x6x256:6=(13-3)/2+1

f6全连接层

  • 卷积层C5和全连接f6层之间,GPU能全部连接
  • 全连接:(6x6x256)x4096
  • 输出:1x1x4096

dropout层dropout6

  • 输出:1x1x4096

f7全连接层

  • 输入:1x1x4096
  • 总参数量:4096x4096
  • 输出:1x1x4096

dropout层dropout7

  • 输出:1x1x4096

f8全连接层

  • 输入:1x1x4096
  • 总参数量:4096x1000
  • 输出:1000

4、LRN局部响应归一化

使用LNR:可以使得同一位置不需要太多的高激活函数,对局部神经元的活动创造竞争机制,抑制反馈较小的神经元,放大反应大的神经元,起到侧向抑制的作用,提高了泛化能力。

比如将4个channel落在一起,每一个channel表示卷积核提取出的特征,进行归一化:
将某一个方块作为分子,将周围三个方块的平方和作为分母:
对第二个feature map的3进行LNR(Local Response Normalized)——>0.14=3/(3X3+3X3+2X2)
对第三个feature map的2进行LNR(Local Response Normalized)——>0.12=2/(3X3+2X2+2X2)

5、防止过拟合,数据增强

  • 进行平移(随机裁剪)、水平翻转,数据扩充2048倍,对于256x256的正方形图用224x224的正方形进行裁剪,水平和竖直方向都可裁32次,水平翻转再扩充2倍,所以2048=32x32x2
  • 对rgb三通道的颜色和光照的变换,使用PCA主成分分析的方法

6、防止过拟合,Dropout

Dropout示意图

在训练每一步时,随机掐死一部分神经元,使得训练时,隐藏层的每个神经元都有一半的概率被掐死(让它的输出为0,阻断其的前向传播和反向传播)

Dropout能防止过拟合的原因

  • 模型集成,p=0.5,意味着2的(共享权重潜在网络的次方),比如一个隐藏层有10个神经元,那么就是2的10次方
  • 记忆随机抹去
  • 减少神经元之间的联合依赖性
  • 有性繁殖:每个神经元都要随机与另一个神经元协同工作

参考视频连接:https://www.bilibili.com/video/BV1UQ4y1y7A3?from=search&seid=16150507404936429349&spm_id_from=333.337.0.0

深度学习笔记3——AlexNet相关推荐

  1. 【机器学习】《动手学深度学习 PyTorch版》李沐深度学习笔记(Alexnet)

    AlexNet 一.alexnet与lenet的区别 二.主要区别 (1)激活函数从sigmoid变成ReLu(缓解梯度消失) (2)隐层全连接层后加入了丢弃层 (3)数据增强(图像的随机翻转) 三. ...

  2. 深度学习笔记(46) 深度卷积网络学习

    深度学习笔记(46) 深度卷积网络学习 1. 学习内容 2. 第一层 3. 第二层 4. 第三层 5. 第四层 6. 第五层 1. 学习内容 深度卷积网络到底在学什么? 来看一个例子,假如训练了一个卷 ...

  3. 深度学习笔记(27) 经典卷积网络

    深度学习笔记(27) 经典卷积网络 1. 前言 2. LeNet-5 3. AlexNet 4. VGGNet 1. 前言 讲了基本构建,比如卷积层.池化层以及全连接层这些组件 事实上,过去几年计算机 ...

  4. 深度学习笔记其七:计算机视觉和PYTORCH

    深度学习笔记其七:计算机视觉和PYTORCH 1. 图像增广 1.1 常用的图像增广方法 1.1.1 翻转和裁剪 1.1.2 改变颜色 1.1.3 结合多种图像增广方法 1.2 使用图像增广进行训练 ...

  5. AI Studio 飞桨 零基础入门深度学习笔记1-深度学习的定义

    AI Studio 飞桨 零基础入门深度学习-笔记 人工智能.机器学习.深度学习的关系 机器学习 机器学习的实现 机器学习的方法论 案例:牛顿第二定律 确定模型参数 模型结构介绍 深度学习 神经网络的 ...

  6. 吴恩达深度学习笔记(四)

    吴恩达深度学习笔记(四) 卷积神经网络CNN-第二版 卷积神经网络 深度卷积网络:实例探究 目标检测 特殊应用:人脸识别和神经风格转换 卷积神经网络编程作业 卷积神经网络CNN-第二版 卷积神经网络 ...

  7. 吴恩达深度学习笔记——卷积神经网络(Convolutional Neural Networks)

    深度学习笔记导航 前言 传送门 卷积神经网络(Convolutional Neural Networks) 卷积神经网络基础(Foundations of Convolutional Neural N ...

  8. 深度学习笔记其六:现代卷积神经网络和PYTORCH

    深度学习笔记其六:现代卷积神经网络和PYTORCH 1. 深度卷积神经网络(AlexNet) 1.1 学习表征 1.1 缺少的成分:数据 1.2 缺少的成分:硬件 1.2 AlexNet 1.2.1 ...

  9. 深度学习笔记(一):卷积层+池化层+激活函数+全连接层

    写在前面:大家好!我是[AI 菌],一枚爱弹吉他的程序员.我热爱AI.热爱分享.热爱开源! 这博客是我对学习的一点总结与记录.如果您也对 深度学习.机器视觉.算法.Python.C++ 感兴趣,可以关 ...

最新文章

  1. wireshark从入门到精通(协议排错安全篇)3
  2. 【Java 虚拟机原理】线程栈 | 栈帧 | 局部变量表 | 反汇编字节码文件 | Java 虚拟机指令手册 | 程序计数器
  3. 如何避免开发一款失败的产品?
  4. linux常用指令笔记(1)
  5. 部署在sae上的servlet程序出现is not a javax.servlet.Servlet 错误
  6. qt开发环境 - c++之输入,输出,名字空间定义,名字空间指令,名字空间声明
  7. ES6入门之Symbol
  8. LeetCode 958. 二叉树的完全性检验(层序遍历)
  9. 清空VS2003/VS2005最近打开解决方案记录
  10. OPenCV的中cvErode和cvDilate腐蚀和膨胀函数
  11. Leetcode每日一题:182.duplicate-emails(查找重复的电子邮箱)
  12. Android坡度计
  13. 西狐爱墙:为中国祈福!
  14. 830计算机软件综合大纲,2019年中国地质大学830计算机软件综合考试大纲.pdf
  15. Kubuntu22.04中discover无法启动Software Source
  16. 缥缈峰--JVM系列之内存区域
  17. linux使用光盘镜像(ISO)作为软件源安装软件
  18. 每日一题pwnable.kr bof
  19. 同步fifo与异步fifo
  20. 网络计算机记住用户名,电脑网站怎样设置记住账号密码怎么办

热门文章

  1. 2022电商行业重磅年度报告:八大年度关键词盘点
  2. 数据结构与算法——从零开始学习(一)基础概念篇
  3. photoshop博客_在Photoshop中设计优雅的博客布局
  4. hbs helper分享
  5. 以transformer为基础的Bert和GPT
  6. Linux启动过程以及引导错误修复
  7. 2023牛客寒假算法基础集训营1
  8. 各个平台3年来最火的183个Java面试问题,太透了!(建议收藏)
  9. html5游戏ztype源码,新款HTML5游戏Z-type考验玩家的打字速度
  10. 机器学习发展历史及现状(重要的期刊,会议,大牛总结)