CNNの古典的なモデルがまとめています

参考記事アドレス:https://www.cnblogs.com/skyfsm/p/8451834.html

1、LeNet

ここに画像を挿入説明畳み込み層、貯留層、完全接続層:これは、CNNの基本的なアーキテクチャを定義します。

2、AlexNet

ここに画像を挿入説明特徴:

  • より深いネットワーク
  • モデルの一般化を高めるために、データの増強技術。
  • 代わりに、SGDの収束をスピードアップするためReLUシグモイドを使用します
  • オーバーフィット防止するために、ドロップアウトの導入
  • ローカルResponce正規化:正規1つのパーシャルレスポンス

3、VGG-16

ここに画像を挿入説明
特徴:

  • さらに深め、
  • 同じコンボリューションコンボリューション層は、ダウンサンプリングは最大プーリングによって完全に達成されています。
  • 小さいサイズおよび間隔、小さなコンボリューション・カーネルを用いてコンボリューションフィルタ層1×1及び3×3。
  • 3×3のコンボリューションカーネルの利点:
    ベース層の(1)複数の非線形フィルタ大容量ベース層以上の3×3のボリューム、その結果それ以上と決定関数の決定
    (2)複数の3×3大きいサイズよりも層の畳み込みフィルタ少ないパラメータは、同一の特徴マップの入力と出力の仮定のサイズは、塩基は、次いで、3×3 3×(3×3×の畳み込み層の3つのパラメータ数CであるロールC×C)= 27CC、7×7 49CCの畳み込み層パラメータは、7×7filterとして分解される3×3の3つのフィルタとすることができる(中間層)は、非線形分解を有します
  • 1つの* 1利点畳み込みカーネル:
    ケースここで、入力の線形変形の寸法に影響を与えると非線形Reluを通して処理、非線形ネットワークを発現する能力を増加させることなく、入力と出力の役割。

4、GoogLeNet

ここに画像を挿入説明特点:
(1)引入Inception结构(如下图),增加深度也增加宽度;
Inception结构里的卷积stride都是1,另外为了保持特征响应图大小一致,都用了零填充。最后每个卷积层后面都立刻接了个ReLU层。在输出前有个叫concatenate的层,直译的意思是“并置”,即把4组不同类型但大小相同的特征响应图一张张并排叠起来,形成新的特征响应图。Inception结构里主要做了两件事:

  • 通过3×3的池化、以及1×1、3×3和5×5这三种不同尺度的卷积核,一共4种方式对输入的特征响应图做了特征提取。
  • 为了降低计算量。同时让信息通过更少的连接传递以达到更加稀疏的特性,采用1×1卷积核来实现降维。

(2)中间层的辅助LOSS单元,目的是计算损失时让低层的特征也有很好的区分能力,从而让网络更好地被训练;
(3)后面的全连接层全部替换为简单的全局平均pooling,减少参数个数;
ここに画像を挿入説明

5、ResNet

ここに画像を挿入説明
特点:

  • 层数非常深,已经超过百层
  • 引入残差单元来解决退化问题

对于一般的网络,如果简单地增加深度,会导致梯度弥散或梯度爆炸。对于该问题的解决方法是正则化初始化和中间的正则化层(Batch Normalization),这样的话可以训练几十层的网络。
虽然通过上述方法能够训练了,但是又会出现另一个问题,就是退化问题,网络层数增加,但是在训练集上的准确率却饱和甚至下降了。这个不能解释为overfitting,因为overfit应该表现为在训练集上表现更好才对。
退化问题说明了深度网络不能很简单地被很好地优化。也就是说想通过学习优化实现H(x)=x,即通过学习让F(x)操作失效很困难,那么怎么解决退化问题呢?

深度残差网络。
增加一个连接(short cut),让H(x)=x+F(x),即F(x)=H(x)-x,那么现在想解决退化,网络只需要通过学习让F(x)=0即可,而F(x)就是残差,所以网络叫残差网络,拟合残差相对而言是要容易很多的。

ここに画像を挿入説明

考虑到x的维度与F(X)维度可能不匹配情况,需进行维度匹配。这里论文中采用两种方法解决这一问题(其实是三种,但通过实验发现第三种方法会使performance急剧下降,故不采用):

  • zero_padding:对恒等层进行0填充的方式将维度补充完整。这种方法不会增加额外的参数
  • projection:在恒等层采用1x1的卷积核来增加维度。这种方法会增加额外的参数

6、DenseNet

特点:
1,减轻了消失梯度(梯度消失)
2,加强了特征的传递
3,更有效地利用了特征
4,一定程度上较少了参数数量
DenseNet 是一种具有密集连接的卷积神经网络。在该网络中,任何两层之间都有直接的连接,也就是说,网络每一层的输入都是前面所有层输出的并集,而该层所学习的特征图也会被直接传给其后面所有层作为输入。下图是 DenseNet 的一个dense block示意图,一个block里面的结构如下,与ResNet中的BottleNeck基本一致:BN-ReLU-Conv(1×1)-BN-ReLU-Conv(3×3) ,而一个DenseNet则由多个这种block组成。每个DenseBlock的之间层称为transition layers,由BN−>Conv(1×1)−>averagePooling(2×2)组成
ここに画像を挿入説明
密集连接不会带来冗余吗?不会!密集连接这个词给人的第一感觉就是极大的增加了网络的参数量和计算量。但实际上 DenseNet 比其他网络效率更高,其关键就在于网络每层计算量的减少以及特征的重复利用。DenseNet则是让l层的输入直接影响到之后的所有层,它的输出为:xl=Hl([X0,X1,…,xl−1]),其中[x0,x1,…,xl−1]就是将之前的feature map以通道的维度进行合并。并且由于每一层都包含之前所有层的输出信息,因此其只需要很少的特征图就够了,这也是为什么DneseNet的参数量较其他模型大大减少的原因。这种dense connection相当于每一层都直接连接input和loss,因此就可以减轻梯度消失现象,这样更深网络不是问题

のみ緻密ブロックでクリア、緻密接続する必要がある、例えば以下に示すような異なる密集ブロック、間に密な接続が存在しません。
ここに画像を挿入説明短所:非常に大きなメモリフットプリント

おすすめ

転載: blog.csdn.net/qq_41332469/article/details/89818170