首页 > 其他分享 >深度卷积神经网络(AlexNet)

深度卷积神经网络(AlexNet)

时间:2023-06-24 20:44:06浏览次数:48  
标签:13 27 卷积 像素 神经网络 激活 times AlexNet

1. AlexNet

\(2012\) 年,\(AlexNet\) 横空出世。使用 \(8\) 层卷积神经网络,赢得 \(ImageNet\ 2012\) 图像识别挑战赛。

\(AlexNet\) 网络结构:

1.1 第一个卷积层

  • 卷积运算:原始数据为 \(227 \times 227 \times 3\) 的图像。卷积核尺寸 \(11 \times 11 \times 3\),步长 \(4\),每次卷积都生成一个新的像素,共有 \(96\)(\(2\) 个 \(48\)) 个卷积核。卷积核在移动过程中生成 \(\frac{(227-11)}{4} + 1 = 55\) 个像素。则卷积后的像素层为 \(55 \times 55 \times 96\)(\(2\) 组 \(55 \times 55 \times 48\)),每组在一个独立的 \(GPU\) 上运算。
  • 激活函数:激活函数 \(ReLU\) 处理,生成激活像素层,尺寸为 \(55 \times 55 \times 96\)。
  • 池化:池化窗口 \(3 \times 3\),步长 \(2\),则池化后图像的尺寸为 \(\frac{55-3}{2} + 1 = 27\)。池化后的像素层为 \(27 \times 27 \times 96\)。
  • 归一化:归一化运算尺寸为 \(5 \times 5\)。

反向传播时,每个卷积核对应一个偏差值。即第一层的 \(96\) 个卷积核对应上层输入的 \(96\) 个偏差值。

1.2 第二个卷积层

  • 卷积运算:输入数据为 \(27 \times 27 \times 96\) 的像素层。上下左右都填充 \(2\) 个像素,卷积核尺寸 \(5 \times 5 \times 96\),步长 \(1\),每次卷积都生成一个新的像素,共有 \(96\)(\(2\) 个 \(48\)) 个卷积核。卷积核在移动过程中生成 \(\frac{(27 + 2 \times 2-5)}{1} + 1 = 27\) 个像素。则卷积后的像素层为 \(27 \times 27 \times 256\)(\(2\) 组 \(27 \times 27 \times 128\)),每组在一个独立的 \(GPU\) 上运算。
  • 激活函数:激活函数 \(ReLU\) 处理,生成激活像素层,尺寸为 \(27 \times 27 \times 256\)。
  • 池化:池化窗口 \(3 \times 3\),步长 \(2\),则池化后图像的尺寸为 \(\frac{27-3}{2} + 1 = 13\)。池化后的像素层为 \(13 \times 13 \times 256\)。
  • 归一化:尺寸为 \(5 \times 5\)。

反向传播时,每个卷积核对应一个偏差值。即第一层的 \(256\) 个卷积核对应上层输入的 \(256\) 个偏差值。

1.3 第三个卷积层

  • 卷积运算:输入数据为 \(13 \times 13 \times 256\) 的像素层。上下左右都填充 \(1\) 个像素,卷积核尺寸 \(3 \times 3 \times 256\),步长 \(1\),每次卷积都生成一个新的像素,共有 \(256\)(\(2\) 个 \(128\)) 个卷积核。卷积核在移动过程中生成 \(\frac{(13 + 1 \times 2-3)}{1} + 1 = 13\) 个像素。则卷积后的像素层为 \(13 \times 13 \times 384\)(\(2\) 组 \(13 \times 13 \times 192\)),每组在一个独立的 \(GPU\) 上运算。
  • 激活函数:激活函数 \(ReLU\) 处理,生成激活像素层,尺寸为 \(13 \times 13 \times 384\)。

1.4 第四个卷积层

  • 卷积运算:输入数据为 \(13 \times 13 \times 384\) 的像素层。上下左右都填充 \(1\) 个像素,卷积核尺寸 \(3 \times 3 \times 384\),步长 \(1\),每次卷积都生成一个新的像素,共有 \(384\)(\(2\) 个 \(192\)) 个卷积核。卷积核在移动过程中生成 \(\frac{(13 + 1 \times 2-3)}{1} + 1 = 13\) 个像素。则卷积后的像素层为 \(13 \times 13 \times 384\)(\(2\) 组 \(13 \times 13 \times 192\)),每组在一个独立的 \(GPU\) 上运算。
  • 激活函数:激活函数 \(ReLU\) 处理,生成激活像素层,尺寸为 \(13 \times 13 \times 384\)。

1.5 第五个卷积层

  • 卷积运算:输入数据为 \(13 \times 13 \times 384\) 的像素层。上下左右都填充 \(1\) 个像素,卷积核尺寸 \(3 \times 3 \times 384\),步长 \(1\),每次卷积都生成一个新的像素,共有 \(384\)(\(2\) 个 \(192\)) 个卷积核。卷积核在移动过程中生成 \(\frac{(13 + 1 \times 2-3)}{1} + 1 = 13\) 个像素。则卷积后的像素层为 \(13 \times 13 \times 256\)(\(2\) 组 \(13 \times 13 \times 128\)),每组在一个独立的 \(GPU\) 上运算。

  • 激活函数:激活函数 \(ReLU\) 处理,生成激活像素层,尺寸为 \(13 \times 13 \times 256\)。

  • 池化:池化窗口 \(3 \times 3\),步长 \(2\),则池化后图像的尺寸为 \(\frac{13-3}{2} + 1 = 6\)。池化后的像素层为 \(6 \times 6 \times 256\)。

1.6 全连接层

  • 全连接层:输入数据为 \(6 \times 6 \times 256 = 9216\) 的像素层,输出为 \(4096\)

  • 激活函数:激活函数 \(ReLU\) 处理,生成激活像素层,尺寸为 \(4096\)。

  • 丢弃法(\(Dropout\)):全连接层的输出数量是 \(LeNet\) 中的好几倍。使用 \(Dropout\) 层来减轻过拟合。

1.7 全连接层

第六层输出的 \(4096\) 个数据与第七层的 \(4096\) 个神经元进行全连接,然后经由 \(ReLU7\) 进行处理后生成 \(4096\) 个数据,再经过 \(Dropout7\) 处理后输出 \(4096\) 个数据。

1.8 全连接层

第七层输出的 \(4096\) 个数据与第八层的 \(1000\) 个神经元进行全连接,经过训练后输出被训练的数值。

1.9 AlexNet 网络架构:

\(AlexNet\) 网络架构:

image-20230613214411175

2. AlexNet与LeNet5区别

  • \(AlexNet\) 比 \(LeNet5\) 网络深。\(AlexNet\) 由 \(8\) 层组成:\(5\) 个卷积层、\(2\) 个全连接隐藏层和 \(1\) 全连接输出层。
    • 第一个卷积层窗口形状 \(11 \times 11\)。
    • 第二个卷积层窗口形状 \(5 \times 5\)。
    • 第三、四、五个卷积层窗口形状 \(3 \times 3\)。
    • 第一、第二和第五个卷积层之后都使用了窗口形状 \(3 \times 3\)、步幅 \(2\) 的最大池化层。
    • \(AlexNet\) 卷积通道数是 \(LeNet\) 的十倍。
  • \(AlexNet\) 使用 \(ReLU\) 激活函数。原因:
    1. \(ReLU\) 激活函数的计算更简单,没有求幂运算。
    2. \(ReLU\) 激活函数在不同的参数初始化方法下使模型更容易训练。这是由于当 \(sigmoid\) 激活函数输出极接近 \(0\) 或 \(1\) 时,这些区域的梯度几乎为 \(0\),从而造成反向传播无法继续更新部分模型参数;而 \(ReLU\) 激活函数在正区间的梯度恒为 \(1\)。因此,若模型参数初始化不当,\(sigmoid\) 函数可能在正区间得到几乎为 \(0\) 的梯度,从而令模型无法得到有效训练。
  • \(AlexNet\) 通过丢弃法控制全连接层的模型复杂度。而 \(LeNet\) 没有。


附录

  • 最大池化层优于平均池化层原因:最大池化层输出值比较大,从而梯度值比较大,使得训练更加容易。

标签:13,27,卷积,像素,神经网络,激活,times,AlexNet
From: https://www.cnblogs.com/keye/p/17501664.html

相关文章

  • U-Net: 专注生物医学分割的卷积神经网络(翻译)
    原文链接:https://arxiv.org/pdf/1505.04597.pdf摘要:普遍认为,优秀的深度神经网络离不开数千个标注训练样本。在本文中,我们提出了一种网络和训练策略:该策略通过使用大量数据增强,从而充分利用带标注的训练样本;该网络结构包括了用于捕获上下文的收缩路径和用于实现精确定位的对称扩......
  • TensorFlow10.4 卷积神经网络-batchnorm
    我们发现这个sigmoid函数在小于-4或者大于4的时候他的导数趋近于0。然后我们送进去的input的值在[-100,100]之间,这样很容易引起梯度弥散的现象。所以我们一般情况下使用ReLU函数,但是我们有时候又不得不使用sigmoid函数。这个时候我们在送到下一层的时候我们应该先经过Normalizatio......
  • TensorFlow10.3 卷积神经网络-经典卷积网络(VGG,GoogLeNet)
    LeNet-5这个是5层的,3个c+s,然后有两个全连接层。AlexNet这里有8(5+3)层。就是之前的技术没有现在的好,所以它用了两块GTX580,然后让你它的模型分成两块,然后在两块显卡中跑。很好的把显存给分开来了。VGG之前都是用\(11*11\)的窗口,然后它用了\(3*3\)的窗口,这个\(3*3\)的窗......
  • 【tensorflow】连续输入+离散输入的神经网络模型训练代码
    【tensorflow】连续输入+离散输入的神经网络模型训练代码离散输入的转化问题构造词典创建离散数据、转化字典索引、创建连续数据创建离散输入+连续输入模型训练输出全部代码-复制即用  查看本系列三种模型写法:  【tensorflow】连续输入的线性回归模型训练代码 ......
  • TensorFlow10.2 卷积神经网络-CIFAR100 实战
    ▪Loaddatasets▪BuildNetwork▪Train▪Test这里先是进行卷积然后再进行全连接Loaddatasetsdefpreprocess(x,y):#[0~1]x=tf.cast(x,dtype=tf.float32)/255.y=tf.cast(y,dtype=tf.int32)returnx,y(x,y),(x_test,y_test)=dat......
  • TensorFlow10.2 卷积神经网络-卷积神经网络池化层与采样
    ▪Pooling▪upsample▪ReLU我们看一下这个Subsampling层就是这个:这一层起到ReduceDim的作用。1Max/Avgpooling(下采样)keras.layers.MaxPooling2D(pool_size=,strides=,padding='valid',data_format=None)pool_size:池化窗口大小strides:池化步长,默认值等于p......
  • 垃圾识别系统Python+TensorFlow+Django+卷积神经网络算法【完整代码系统】
    一、介绍垃圾识别系统,使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对5种垃圾数据集进行训练,最后得到一个识别精度较高的模型。并基于Django,开发网页端操作平台,实现用户上传一张垃圾图片识别其名称。二、效果展示三、演示视频+代码视......
  • 交通标志识别系统Python+TensorFlow+Django+卷积神经网络算法实现【完整代码】
    一、介绍使用Python作为主要开发语言,基于深度学习TensorFlow框架,搭建卷积神经网络算法。并通过对数据集进行训练,最后得到一个识别精度较高的模型。并基于Django,开发网页端操作平台,实现用户上传一张图片识别其名称。二、效果展示三、演示视频视频+完整代码:https://www.yuque.......
  • 图神经网络(GNN)经典论文、算法、公开数据集、经典博客等资源整理分享
        神经网络的迅速发展,也推动着将神经网络运用到图这一特殊的数据结构的相关研究。    图是一种非欧式结构的结构化数据,它由一系列的对象(nodes)和关系类型(edges)组成,具有局部连接的特点,能表示更为复杂的信息;熟悉和运用图神经网络的方法很有必要。 ......
  • 花朵识别系统Python+TensorFlow+Django+卷积神经网络算法实现
    一、背景花朵识别系统,基于Python实现,深度学习卷积神经网络,通过TensorFlow搭建卷积神经网络算法模型,并对数据集进行训练最后得到训练好的模型文件,并基于Django搭建可视化操作平台。在当今信息化社会,图像识别技术在各种领域都展现出了重要的应用价值,包括医学影像分析、自动驾驶、......