深度卷积神经网络(AlexNet)
目录
1. AlexNet
年, 横空出世。使用 层卷积神经网络,赢得 图像识别挑战赛。
网络结构:
1.1 第一个卷积层
- 卷积运算:原始数据为 的图像。卷积核尺寸 (),步长 ,每次卷积都生成一个新的像素,共有 ( 个 ) 个卷积核。卷积核在移动过程中生成 个像素。则卷积后的像素层为 ( 组 ),每组在一个独立的 上运算。
- 激活函数:激活函数 处理,生成激活像素层,尺寸为 。
- 池化:池化窗口 ,步长 ,则池化后图像的尺寸为 。池化后的像素层为 。
- 归一化:归一化运算尺寸为 。
反向传播时,每个卷积核对应一个偏差值。即第一层的 个卷积核对应上层输入的 个偏差值。
1.2 第二个卷积层
- 卷积运算:输入数据为 的像素层。上下左右都填充 个像素,卷积核尺寸 ,步长 ,每次卷积都生成一个新的像素,共有 ( 个 ) 个卷积核。卷积核在移动过程中生成 个像素。则卷积后的像素层为 ( 组 ),每组在一个独立的 上运算。
- 激活函数:激活函数 处理,生成激活像素层,尺寸为 。
- 池化:池化窗口 ,步长 ,则池化后图像的尺寸为 。池化后的像素层为 。
- 归一化:尺寸为 。
反向传播时,每个卷积核对应一个偏差值。即第一层的 个卷积核对应上层输入的 个偏差值。
1.3 第三个卷积层
- 卷积运算:输入数据为 的像素层。上下左右都填充 个像素,卷积核尺寸 ,步长 ,每次卷积都生成一个新的像素,共有 ( 个 ) 个卷积核。卷积核在移动过程中生成 个像素。则卷积后的像素层为 ( 组 ),每组在一个独立的 上运算。
- 激活函数:激活函数 处理,生成激活像素层,尺寸为 。
1.4 第四个卷积层
- 卷积运算:输入数据为 的像素层。上下左右都填充 个像素,卷积核尺寸 ,步长 ,每次卷积都生成一个新的像素,共有 ( 个 ) 个卷积核。卷积核在移动过程中生成 个像素。则卷积后的像素层为 ( 组 ),每组在一个独立的 上运算。
- 激活函数:激活函数 处理,生成激活像素层,尺寸为 。
1.5 第五个卷积层
-
卷积运算:输入数据为 的像素层。上下左右都填充 个像素,卷积核尺寸 ,步长 ,每次卷积都生成一个新的像素,共有 ( 个 ) 个卷积核。卷积核在移动过程中生成 个像素。则卷积后的像素层为 ( 组 ),每组在一个独立的 上运算。
-
激活函数:激活函数 处理,生成激活像素层,尺寸为 。
-
池化:池化窗口 ,步长 ,则池化后图像的尺寸为 。池化后的像素层为 。
1.6 全连接层
-
全连接层:输入数据为 的像素层,输出为
-
激活函数:激活函数 处理,生成激活像素层,尺寸为 。
-
丢弃法():全连接层的输出数量是 中的好几倍。使用 层来减轻过拟合。
1.7 全连接层
第六层输出的 个数据与第七层的 个神经元进行全连接,然后经由 进行处理后生成 个数据,再经过 处理后输出 个数据。
1.8 全连接层
第七层输出的 个数据与第八层的 个神经元进行全连接,经过训练后输出被训练的数值。
1.9 AlexNet 网络架构
网络架构:
2. AlexNet与LeNet5区别
- 比 网络深。 由 层组成: 个卷积层、 个全连接隐藏层和 全连接输出层。
- 第一个卷积层窗口形状 。
- 第二个卷积层窗口形状 。
- 第三、四、五个卷积层窗口形状 。
- 第一、第二和第五个卷积层之后都使用了窗口形状 、步幅 的最大池化层。
- 卷积通道数是 的十倍。
- 使用 激活函数。原因:
- 激活函数的计算更简单,没有求幂运算。
- 激活函数在不同的参数初始化方法下使模型更容易训练。这是由于当 激活函数输出极接近 或 时,这些区域的梯度几乎为 ,从而造成反向传播无法继续更新部分模型参数;而 激活函数在正区间的梯度恒为 。因此,若模型参数初始化不当, 函数可能在正区间得到几乎为 的梯度,从而令模型无法得到有效训练。
- 通过丢弃法控制全连接层的模型复杂度。而 没有。
3. AlexNet在当时包含的新技术点
在当时包含了几个比较新的技术点,首次在 中成功应用了 等 。同时也使用了 加速。
- 使用 代替 ,成功解决了 在网络较深的梯度弥散问题。
- 训练时使用 对隐藏层的输出随机置 ,避免模型过拟合。
- 使用最大池化代替平均池化,避免平均池化的模糊化效果。并且 中池化的步长比池化窗口的尺寸小,这样池化层的输出之间会有重叠和覆盖,提升特征的丰富性。
- 使用 加速。
- 使用数据增强。
- 训练:随机从 的原始图中截取 大小的区域(以及水平翻转的镜像),相当增加了 倍的数据量。如果没有数据增强,仅靠原始的数据量,参数众多的 会陷入过拟合。
- 预测:取图片的四个角加中间共 个位置,并进行左右翻转,一共获得 张图片,对他们进行预测并对 次结果求均值。
- 论文中提到会对图像的 数据进行 处理,对主成分做一个标准差为 的高斯扰动,增加一些噪声,这个 让错误率再下降 。
附录
- 最大池化层优于平均池化层原因:最大池化层输出值比较大,从而梯度值比较大,使得训练更加容易。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
2021-06-24 计点值控制图