2. ワンショット画像認識のためのシャム ニューラル ネットワーク論文詳細読解 - パート Ⅱ (モデル構造とトレーニング設定)

⭐元のリンク:ワンショット画像認識のための Siamese Neural Networks (cmu.edu)

このパートでは、主にモデルの数学的構造と学習方法について説明します。これらは、コードを参照することで整理して理解できます (コードについては、パート IV で詳しく説明します)。

*注: テキスト内の一部の文字は、特定の段落内の文字の位置 (ボックスとして表示される小数点など) に基づいて理解できる書式設定の問題により、部分的にずれる場合があります。

*ブラックワード - 原文翻訳

*赤文字 - 問題があります

*青文字 - 利点

*緑色のテキスト - 主観的な分析 (すべての詳細が分析されているわけではなく、この記事の内容を補足するだけです)

3. 画像検証のためのディープ シャム ネットワーク

1990 年代初頭、Bromley と LeCun は、画像マッチング問題の署名検証を解決するために初めてシャム ネットを導入しました。

シャム ニューラル ネットワークは、異なる入力を受け入れるツイン ネットワークで構成されますが、上部のエネルギー関数によって接続されます。この関数は、各側の最高レベルの特徴表現間の何らかのメトリックを計算します (図 3)。

図 3. ロジスティック予測のバイナリ分類のための単純な 2 隠れ層シャム ネットワーク p. ネットワークの構造は上部と下部で複製され、各層で重み行列を共有する二重ネットワークを形成します。

デュアル ネットワーク間のパラメータは関連付けられています。重み付け結合により、各ネットワークが同じ関数を計算するため、2 つの非常に類似した画像がそれぞれのネットワークによって特徴空間内の非常に異なる位置にマッピングされることがなくなります。

*siamese nets 内の 2 つのネットワーク間のネットワーク パラメーターは一貫しており、2 つのイメージから取得された特徴が一貫していることが保証されます。

さらに、ネットワークは対称であるため、ツイン ネットワークに 2 つの異なる画像を提示するたびに、最上位の接続層は、同じ 2 つの画像を反対側のツインに提示したかのように同じメトリックを計算します。

LeCun らの論文では、著者らは双対項を含む対照的なエネルギー関数を使用して、類似したペアのエネルギーを減少させ、異なるペアのエネルギーを増加させました。

ただし、この論文では、 2 つの特徴ベクトル間の重み付き距離を使用し、区間 [0,1] にマッピングするシグモイド アクティベーションと組み合わせます。したがって、クロスエントロピー目標は、ネットワークをトレーニングするための自然な選択です。LeCun らの論文では、エネルギー損失によって暗黙的に定義される類似性メトリックを直接学習しているのに対し、Facebook の DeepFace 論文の方法に基づいて、上記で指定したようにメトリックを固定していることに注意してください。

私たちの最高のパフォーマンスのモデルは、完全に接続された層とトップレベルのエネルギー関数の前に複数の畳み込み層を使用します。畳み込みニューラル ネットワークは、多くの大規模コンピューター ビジョン アプリケーション、特に画像認識タスクで優れた結果を達成しています。

畳み込みネットワークが特に魅力的なものとなっている要因はいくつかあります。ローカル接続によりモデル内のパラメーターの数を大幅に減らすことができ、本質的に何らかの形式の組み込み正則化が提供されますが、畳み込み層は標準の非線形性よりも計算コストが高くなります。

さらに、これらのネットワークで使用される畳み込み演算には直接フィルタリング解釈があり、各特徴マップが入力特徴に対して畳み込まれ、パターンをピクセルのグループとして識別します。

したがって、各畳み込み層の出力は、元の入力空間の重要な空間特徴に対応し、単純な変換に対してある程度の堅牢性を提供します。最後に、許容できないほどのトレーニング時間を必要とせずに、大規模な畳み込みネットワークを構築するために、非常に高速な CUDA ライブラリが利用できるようになりました。

ここでは、シャム ネットの構造と実験で使用した学習アルゴリズムの詳細について説明します。

3.1. モデル

私たちの標準モデルは L 層のシャム畳み込みニューラル ネットワークであり、各層には、層 l の最初の双子の隠れベクトルと2 番目の双子の隠れベクトルを表すユニットがあります。最初の L-2 層では整流線形 (ReLU) ユニットのみを使用し、残りの層ではシグモイド ユニットのみを使用します。

モデルは一連の畳み込み層で構成され、それぞれが異なるサイズのフィルターと固定ストライド 1 の単一チャネルを使用します。畳み込みフィルターの数は、パフォーマンスを最適化するために 16 の倍数として指定されます。ネットワークは、出力特徴マップに ReLU アクティベーション関数を適用し、オプションでフィルター サイズとストライド 2 の最大プーリングを適用します。したがって、各レイヤーの k 番目のフィルター マップは次の形式になります。

このうち、 l は層 l の特徴マップを表す 3 次元テンソルです。有効な畳み込み演算を採用します。これは、それらの出力ユニットのみを返すことに対応します。これらの出力ユニットは、それぞれ畳み込みフィルター (畳み込み演算) です。完全な畳み込み演算の結果は、フィルターと入力特徴マップ間の重複。

最後の畳み込み層のユニット i は単一のベクトルに平坦化されます。この畳み込み層の後には全結合層が続き、その後、単一のシグモイド出力ユニットである各シャム双晶間の誘導距離メトリックを計算する別の層が続きます。より正確には、予測ベクトルはσ がシグモイド活性化関数です。最後の層は、(L-1) 番目の隠れ層の学習された特徴空間にメトリックを導入し、2 つの特徴ベクトル間の類似性をスコア付けします。これは、トレーニング プロセス中にモデルによって学習される追加パラメーターであり、重み付けされたコンポーネントごとの距離の重要性です。これは、2 つのシャム双生児を接続するネットワークの最後の L 番目の全結合層を定義します。

検討したモデルの最大バージョンを示す例 (図 4) について説明します。このネットワークは、検証タスクでも最良の結果をもたらしました。

図 4. 検証タスク用に選択された最適な畳み込み構造。シアン双生児については説明されていませんが、4096 ユニットの全結合層の直後に結合されており、ベクトル間の L1 成分ごとの距離が計算されます。

3.2. 学ぶ

損失関数

M はミニバッチ サイズを表します。i は i 番目のミニバッチのインデックスです。

ここで、ミニバッチのラベル​​を含む長さ m のベクトルとしましょう。x1 と x2 が同じ文字クラスに属する場合、そうでない場合は仮定しますバイナリ分類器に正規化されたクロスエントロピー目標を課します。これは次の形式になります。

※ディープラーニングにおける一般的な損失関数の設定方法はこちら 違いは2つのものの比較ペアの具体例 ラベルは同じカテゴリかどうか 同じカテゴリを1、異なるカテゴリを0 。

※クロスエントロピー損失関数の計算式と正則化項の付加について理解する必要があります。

最適化

この目的は、標準的な逆伝播アルゴリズムと組み合わされており、結合された重みにより勾配がツイン ネットワーク上で加算されます。学習率、運動量正則化の重みを使用して層ごとに定義し、ミニバッチ サイズを 128 に決定します。 したがって、エポック T での更新ルールは次のとおりです。

ここで、▽は、ある層の j 番目のニューロンとその前の層の k 番目のニューロンの間の重みの偏導関数です。

※これは標準的な逆伝播アルゴリズムであり、パラメータはトレーニングによって更新されます。

重みの初期化

畳み込み層のすべてのネットワーク重みを、平均ゼロおよび標準偏差 10^-2 の正規分布に初期化します。バイアスも正規分布から初期化されますが、平均は 0.5、標準偏差は 10^-2 です。全結合層では、バイアスは畳み込み層と同じ方法で初期化されますが、重みは平均が 0、標準偏差が 2*10^-1 のより広い正規分布から抽出されます。

*ここでは、畳み込み層と全結合層の重みとバイアスを含む、ネットワークの重みとバイアスの初期化設定を示します。

学習スケジュール

尽管我们允许每一层有不同的学习率,但学习率在整个网络中以每个epoch 1%的速度均匀衰减(decayed uniformly)

我们发现,通过退火学习率(annealing the learning rate),网络能够更容易地收敛到局部极小值(converge to local minima),而不会陷入误差曲面(getting stuck in the error surface)。我们固定动量从每一层的0.5开始,increasing linearly each epoch,直到达到值,第j层的单个动量项。

*此处涉及到学习率的理解,以及添加动量的意义。

我们训练每个网络最多200个epochs,但在一组320个oneshot learning tasks上监测one-shot validation error,这些任务是由验证集中的alphabets and drawers随机生成的。

当validation error在20个epochs内没有下降时,我们停止并根据one-shot validation error在最佳epoch使用模型参数。如果validation error在整个学习计划(entire learning schedule)中持续减少,我们将保存此过程生成的模型的最终状态(final state of the model)。

*需掌握一些训练的技巧。

Hyperparameter optimization

我们使用了beta version of Whetlab,一个贝叶斯优化框架(Bayesian optimization framework),执行超参数选择。

*Whetlab用来进行超参数选择。

1) 对于学习进度和正则化超参数,我们设置了layerwise learning rate ,layer-wise momentum 和layer-wise regularization penalty

2) 对于网络超参数(network hyperparameters),我们让卷积滤波器(convolutional filters)的size从3x3变化到20x20,而每层卷积滤波器(convolutional filters)的number使用16的倍数从16变化到256。

3) 全连接层(Fully-connected layers)的范围从128到4096 units,也是16的倍数。

我们将优化器(optimizer)设置为最大化一次验证集(one-shot validation set)的准确性。分配给single Whetlab iteration的score是在任何epoch发现的该指标(metric)的最高值。

Affine distortions

*此处主要是对原始图像进行变化操作(常用的有旋转,翻转等),以增强数据,提高识别效果。

此外,我们用small affine distortions增强训练集(图5)

Figure 5. 为Omniglot数据集中的单个字符生成的随机affine distortions示例。

对于每一对图像,我们生成一对affine transformations 得到),其中由多维均匀分布(multidimensional uniform distribution)随机确定(determined stochastically)。

对于任意变换T,我们有,其中。转换的每一个组成部分的概率都是0.5。


参考文献

Koch, Gregory R.. “Siamese Neural Networks for One-Shot Image Recognition.” (2015).

おすすめ

転載: blog.csdn.net/qq_41958946/article/details/128848966
おすすめ