ディープラーニングコースを受講した生徒からの興味深い質問(3/4)

AI

1.ディープラーニングコースを受講した生徒からの興味深い質問(3/4)まとめ

・batchnormは使用した場所により効果が異なりSGDの分析が困難になる側面がある
・embedding次元を決定する際はできるだけ大きなニューラルネットを使用する事が目安
・類似度がいくつ存在し、それらをどのようにエンコードされるかは事前に不明なため

2.embedding次元の決定方法

以下、kyunghyuncho.meより「A few QA’s from the course F’20 <Deep Learning>」の意訳です。元記事の投稿は2020年12月7日、kyunghyun choさんによる投稿です。

アイキャッチ画像のクレジットはPhoto by NeONBRAND on Unsplash

4.VAEでのバッチ正規化

畳み込みVAEモデルを実装しているときに、BatchNormレイヤーを削除すると、モデルが期待どおりにトレーニングできることに気付きました。BatchNormがVAEモデルでこの問題を引き起こすのはなぜですか?

残念ながら明確な答えはありませんが、なぜそうなるのかについて少し推測することができます。 私の答えは、batchnormが使用された場所によって異なります。もちろん、以下の回答を読む前に、batchnormの実装にバグがないことを確認してください。

approximate posterior(エンコーダー)でbatchnormが使用された場合、approximate posteriorは定義上何でもかまいませんので、実際には問題ではありません。これは、現在の観測に依存するだけでなく、このapproximate posteriorからtrue posteriorへのKL発散を最小限に抑えるのに役立つ他の任意のものにすることができます。ですから、エンコーダーにbatchnormを残してもまったく問題がなくても、私は驚かないでしょう。

デコーダーでbatchnormが使用された場合、尤度分布(生成分布)は潜在変数構成を条件とする観測空間上にあるため、問題になる可能性があります。代わりにbatchnormを使用すると、デコーダーは潜在変数構成のミニバッチ全体、つまり他の事例の潜在変数構成を条件とします。これは、学習の初期段階での最適化を妨げる可能性があります。(ただし、学習の後期段階では、それほど重要ではありません)。

一般に、batchnormはトリッキーな手法であり、各ミニバッチ内の事例ごとの確率的勾配に相関が生じるため、SGDの分析が困難になります。

5.embedding次元の決定

半教師ありVAEでは、各クラスのembedding次元をどのように決定すれば良いですか?また、BERTは位置を表すために位置embeddingを使用しましたが、BERTで位置embeddingの次元を決定するにはどうすればよいですか?

この質問には2つの角度から答えることができます。

(a)ネットワークサイズ

embedding次元はニューラルネットの一部であり、ニューラルネットワークのサイズを決定する一部と考えることができます。一般化の観点から利益を最大化するために、利用可能な計算機資源および予算内でできるだけ大きなニューラルネットを使用することは大まかな目安です。

もし、貴方が以前に(「ある事柄を説明するためには、必要以上に多くを仮定するべきでない」と言うオッカムの剃刀の原則に従って)最も簡潔なモデルを選択する事が望ましいと学んでいた場合、この目安は直感に反するように聞こえるかもしれません。

しかし、ニューラルネットでは、モデルのサイズだけでなく、最適化と正則化に何を選択するかがおそらく更に重要になります。特に、来週学習するように、SGDは本質的にパラメータ空間の低次元部分空間で機能しており、パラメータの空間全体を探索することはできません。ネットワークが大きいからといって、過剰適合しやすいということにはなりません。

(b)なぜ複数次元が必要になるのか?

クラスのembeddingについて考えてみましょう。(なお、同じ論点が位置embeddingにも当てはまります)

手書きの数字分類の例として、クラスが0、1、2、..、9で構成されている場合を考えてみましょう。これらのクラスの背後にあるのは1次元構造であり、必要なのは1次元のembeddingだけです。なぜ多次元クラスのembeddingが必要なのでしょうか?

これらのクラス間には複数の観点から類似性があり、これらのクラス間の類似性は状況に依存することがわかります。つまり、入力と見なされるものに応じて、クラスの類似性が変化します。例えば、入力が斜めに傾斜した3(3が時計回りに大きく回転)の場合、数字の3は数字の2のように見えますが、8または0のようには見えません。入力が直立した3の場合、3または8のように見えますが、2ではありません。言い換えると、入力が傾斜した3の場合、クラス3と2は互いに類似していますが、入力が直立した3の場合、クラス3と8は互いに類似しています。

各クラスを表現するために複数の次元を持つことで、クラス間のこれらの異なる程度の類似性を捕捉できます。3と2のクラスembeddingのいくつかの次元は同様の方向に傾いた際の特徴を指し、3と8のクラス埋め込みのいくつかの他の次元は別の同様の方向を指します。入力が傾斜した3の場合、特徴表現抽出器(畳み込みネット)は、最初の数次元を強調し、他の次元を抑制して3と2の類似性を利用するベクトルを出力します。

同様のメカニズムは、最初のいくつかの次元を抑制し、3と8の間の類似性を利用するために後のいくつかを強調する、直立した3の特徴表現ベクトルにつながります。

そのような類似度がいくつ存在し、それらをどのようにエンコードするかを事前に知ることは不可能です。そのため、離散的な入力を一度にエンコードするには、可能な限り高次元のembeddingを使用する必要があります。

3.ディープラーニングコースを受講した生徒からの興味深い質問(3/4)関連リンク

1)kyunghyuncho.me
A few QA’s from the course F’20 <Deep Learning>

2)openreview.net
Evaluating biological plausibility of learning algorithms the lazy way

3)leon.bottou.org
Online Learning and Stochastic Approximations(PDF)

4)proceedings.neurips.cc
Identifying and attacking the saddle point problem in high-dimensional non-convex optimization

5)arxiv.org
The Lottery Ticket Hypothesis: Finding Sparse, Trainable Neural Networks

6)drive.google.com
A speculative lecture on optimization in deep learning

7)proceedings.mlr.press
Deep Learning Made Easier by Linear Transformations in Perceptrons(PDF)

コメント

タイトルとURLをコピーしました