深度学习笔记3——AlexNet
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相关推荐
- 【机器学习】《动手学深度学习 PyTorch版》李沐深度学习笔记(Alexnet)
AlexNet 一.alexnet与lenet的区别 二.主要区别 (1)激活函数从sigmoid变成ReLu(缓解梯度消失) (2)隐层全连接层后加入了丢弃层 (3)数据增强(图像的随机翻转) 三. ...
- 深度学习笔记(46) 深度卷积网络学习
深度学习笔记(46) 深度卷积网络学习 1. 学习内容 2. 第一层 3. 第二层 4. 第三层 5. 第四层 6. 第五层 1. 学习内容 深度卷积网络到底在学什么? 来看一个例子,假如训练了一个卷 ...
- 深度学习笔记(27) 经典卷积网络
深度学习笔记(27) 经典卷积网络 1. 前言 2. LeNet-5 3. AlexNet 4. VGGNet 1. 前言 讲了基本构建,比如卷积层.池化层以及全连接层这些组件 事实上,过去几年计算机 ...
- 深度学习笔记其七:计算机视觉和PYTORCH
深度学习笔记其七:计算机视觉和PYTORCH 1. 图像增广 1.1 常用的图像增广方法 1.1.1 翻转和裁剪 1.1.2 改变颜色 1.1.3 结合多种图像增广方法 1.2 使用图像增广进行训练 ...
- AI Studio 飞桨 零基础入门深度学习笔记1-深度学习的定义
AI Studio 飞桨 零基础入门深度学习-笔记 人工智能.机器学习.深度学习的关系 机器学习 机器学习的实现 机器学习的方法论 案例:牛顿第二定律 确定模型参数 模型结构介绍 深度学习 神经网络的 ...
- 吴恩达深度学习笔记(四)
吴恩达深度学习笔记(四) 卷积神经网络CNN-第二版 卷积神经网络 深度卷积网络:实例探究 目标检测 特殊应用:人脸识别和神经风格转换 卷积神经网络编程作业 卷积神经网络CNN-第二版 卷积神经网络 ...
- 吴恩达深度学习笔记——卷积神经网络(Convolutional Neural Networks)
深度学习笔记导航 前言 传送门 卷积神经网络(Convolutional Neural Networks) 卷积神经网络基础(Foundations of Convolutional Neural N ...
- 深度学习笔记其六:现代卷积神经网络和PYTORCH
深度学习笔记其六:现代卷积神经网络和PYTORCH 1. 深度卷积神经网络(AlexNet) 1.1 学习表征 1.1 缺少的成分:数据 1.2 缺少的成分:硬件 1.2 AlexNet 1.2.1 ...
- 深度学习笔记(一):卷积层+池化层+激活函数+全连接层
写在前面:大家好!我是[AI 菌],一枚爱弹吉他的程序员.我热爱AI.热爱分享.热爱开源! 这博客是我对学习的一点总结与记录.如果您也对 深度学习.机器视觉.算法.Python.C++ 感兴趣,可以关 ...
最新文章
- wireshark从入门到精通(协议排错安全篇)3
- 【Java 虚拟机原理】线程栈 | 栈帧 | 局部变量表 | 反汇编字节码文件 | Java 虚拟机指令手册 | 程序计数器
- 如何避免开发一款失败的产品?
- linux常用指令笔记(1)
- 部署在sae上的servlet程序出现is not a javax.servlet.Servlet 错误
- qt开发环境 - c++之输入,输出,名字空间定义,名字空间指令,名字空间声明
- ES6入门之Symbol
- LeetCode 958. 二叉树的完全性检验(层序遍历)
- 清空VS2003/VS2005最近打开解决方案记录
- OPenCV的中cvErode和cvDilate腐蚀和膨胀函数
- Leetcode每日一题:182.duplicate-emails(查找重复的电子邮箱)
- Android坡度计
- 西狐爱墙:为中国祈福!
- 830计算机软件综合大纲,2019年中国地质大学830计算机软件综合考试大纲.pdf
- Kubuntu22.04中discover无法启动Software Source
- 缥缈峰--JVM系列之内存区域
- linux使用光盘镜像(ISO)作为软件源安装软件
- 每日一题pwnable.kr bof
- 同步fifo与异步fifo
- 网络计算机记住用户名,电脑网站怎样设置记住账号密码怎么办