ResNet(2/4)実施例と作用効果

はぐれ弁理士 PA Tora-O です。前回(第1回)では、ResNet の概要について説明しました。改めて復習されたい方は、こちらのリンクから確認をお願いします。今回(第2回)は、ResNet の実施例およびその作用効果について説明します。

ネットワーク構成

ResNet は、Residual block と呼ばれるサブネットワークを直列的に接続してなるCNN(畳み込みニューラルネットワーク)です。ここで、”residual” とは、一般的には、「残りの」「余剰の」という意味の形容詞ですが、数学用語として「残差」の意味でも用いられます。具体的には、 Residual block は、[1]残差特徴量(=出力特徴量-入力特徴量)を生成する「学習型」の演算部、[2]残差特徴量に対して入力特徴量を加算する「非学習型」の演算部から構成されます。つまり、従来型CNNと ResNet とは、次のような技術的な相違点があると言えます。
 ・従来型CNN:出力特徴量の生成規則を学習
 ・ResNet:残差特徴量の生成規則を学習

ちなみに、本論文には、Residual block の類型として、図1の2通りが例示されています。なお、矩形内の表記に関して、左側が「カーネルサイズ」に、右側が「チャンネル数」にそれぞれ相当します。

【図1】Residual block の2類型

出展:Deep Residual Learning for Image Recognition

左側のモデルは、[1]3×3の畳み込み層、[2]3×3の畳み込み層、からなる通常バージョン(non-bottleneck design)を示しています。一方、右側のモデルは、[1]1×1のボトルネック層(チャンネル圧縮)、[2]3×3の畳み込み層、[3]1×1のボトルネック層(チャンネル復元)、からなる改良バージョン(bottleneck design)を示しています。なお、ボトルネック層は、畳み込み演算の計算効率を高めるためのテクニックの1つです。ここでは詳しく触れませんが、もし興味があればネット検索などで調べてみてください。

作用効果の説明

それでは、ResNet(Residual block)の導入によって、どのような作用効果が得られるのでしょうか? 図2を参照しながら説明します。

【図2】ResNet によるスキップ効果

ネットワーク全体にわたって学習がバランス良く進んでいれば全く問題ないのですが、何らかの理由により、ある中間層における学習の進行が遅れる状況が考えられます。この場合、当該中間層よりも上流側にある各層では、勾配消失など学習の進行を妨げる様々な現象が起こり得ます。

そこで、ResNet のように、入力特徴量と残差特徴量を予め分離しておくことで、残差特徴量を正しく計算できない場合(例えば、残差特徴量=0)であっても、上流ブロックから供給された特徴量を下流ブロックにそのまま伝達(pass through)することができます。これにより、ネットワークの深層化に伴う弊害、すなわち、繰り返し演算による特徴量の劣化(Degradation)を抑制することができます。

また、特定のブロックにおける学習パラメータをすべて0にした場合、結合重みも0であることから、残差特徴量が0になります。つまり、ResNet は、過学習(overfitting)の抑制技術である正則化(Regularization)との親和性が高いモデルとも言えそうです。

 

以上、今回(第2回)は、ResNet の実施例について説明しました。次回(第3回)は、ResNet の改良技術である ”ResNeXt” について解説します。

↓ブログランキングに参加しています。よろしければ1クリックお願いします。

にほんブログ村 士業ブログ 弁理士へ
にほんブログ村

にほんブログ村 IT技術ブログ IT技術メモへ
にほんブログ村