あきらぼ

テック系ブログ

有名なCNN系のエンコーダーをNetronで可視化してみる

こんにちは。

何か書きたいと思いましたが実装する気分ではないので、今回は実装しないでできることをやってみようと思います。

 

有名なCNN系のエンコーダーをNetronで可視化してみました。

 

NetronというのはONNX形式という汎用的なDNNモデルの保存形式で保存されたモデルを可視化することができます。

ローカルでもインストールして使えるし、オンラインでブラウザ上でも使うことができます。

netron.app

 

今回実際に見てみるのは代表的なCNNのエンコーダーになります。

クラス分類タスクで作られたものではありますが、最新の認識モデルにもエンコーダーとしてはしっかりと使われているものです。

 

1. VGG (Visual Geometry Group)

2. ResNet (Residual Network)

3. DenseNet (Densely Connected Convolutional Network)

4. Inception (GoogLeNet)

5. MobileNet

 

ONNX形式のモデル自体は以下のONNXモデルZooからとってきます。

(なんでモデル集めてる場所をModel Zooと呼ぶようになったんですかね?)

github.com

 

可視化

ということで実際に可視化してみましょう。

1. VGG (Visual Geometry Group)

  • モデル: VGG16, VGG19
  • 特徴: シンプルな構造で、3×3畳み込みフィルタと2×2プーリングを繰り返す
  • 用途: 画像分類・特徴抽出
  • 欠点: 計算コストが高く、パラメータ数が多い

VGG16-12というモデルを可視化してみました。

特徴通りひたすらに3x3カーネルの畳み込み層(Conv)とMaxPoolingを一直線に繰り返しているのが特徴です。

2. ResNet (Residual Network)

  • モデル: ResNet18, ResNet34, ResNet50, ResNet101, ResNet152
  • 特徴: 残差ブロック (Residual Block) により勾配消失問題を緩和
  • 用途: 画像分類・物体検出・セグメンテーション・特徴抽出
  • 長所: 深いネットワークでも学習可能

 

残差ブロックで直接次の層につなげてAddしてる構造が特徴的に見えます。

 

3. DenseNet (Densely Connected Convolutional Network)

  • モデル: DenseNet121, DenseNet169, DenseNet201
  • 特徴: 各層がすべての前の層と接続されている(特徴の再利用が可能)
  • 用途: 画像分類・特徴抽出
  • 長所: 計算効率が良く、少ないパラメータで高精度

確かに今まで見たことがないぐらい深いモデル。

concatでskipconnectionしているから確かに全部の特徴量がいることになっている。

 

4. Inception (GoogLeNet)

  • モデル: InceptionV1 (GoogLeNet), InceptionV3, InceptionV4
  • 特徴: 異なるサイズの畳み込みフィルタを並列適用し、多様な特徴を抽出
  • 用途: 画像分類・特徴抽出
  • 長所: 効率的な計算と高精度

異なるカーネルサイズのConv層が並列につながっているのがよく分かりますね。

 

5. MobileNet

  • モデル: MobileNetV1, MobileNetV2, MobileNetV3
  • 特徴: 深層畳み込み (Depthwise Separable Convolution) を使用し軽量化
  • 用途: モバイル・組み込み機器向けの特徴抽出
  • 長所: 軽量でリアルタイム処理に適している

ResNetっぽい接続ではあるけど違う。

 

以上、有名CNNエンコーダーの可視化でした。