機械学習モデルの「容量」とは何ですか?


15

Carl DoerschによるVariational Autoencodersに関するこのチュートリアルを勉強しています。2ページ目には、次のように記載されています。

このようなフレームワークの中で最も人気のあるものの1つは、このチュートリアルの主題であるVariational Autoencoder [1、3]です。このモデルの前提条件は弱く、逆伝播によるトレーニングは高速です。VAEは概算を行いますが、この概算によって導入されるエラーは、大容量モデルを考えると間違いなく小さいものです。これらの特徴は人気の急速な上昇に貢献しています。

私は過去に、大容量モデルに関するこの種の主張を読みましたが、それについて明確な定義を見つけられないようです。私はこの関連するスタックオーバーフローの質問も見つけましたが、私にとっては答えは非常に満足できません。

モデルの容量の定義はありますか?測定できますか?

回答:


13

容量は非公式な用語です。モデルの複雑さに関しては、(同義語ではないにしても)非常に近いです。これは、モデルが表現できるパターンや関係がいかに複雑かを語る方法です。容量が大きいモデルは、容量が小さいモデルよりも多くの変数間のより多くの関係をモデル化できると期待できます。

容量の口語的な定義から類推を引き出すと、それは、モデルが情報で完全に「満たされる」まで、ますます多くのデータから学習する能力と考えることができます。

容量を定式化して数値を計算する方法はさまざまですが、重要なのは、容量の「操作化」の一部にすぎないことです(美しさを計算するための公式を思いついた場合とほぼ同じです)。公式は、美しさの誤った解釈の1つにすぎません)。


VCディメンションは、容量の数学的に厳密な定式化です。ただし、モデルのVC次元とモデルがデータを適合させる実際の能力との間に大きなギャップが生じる可能性があります。VC dimを知ることはモデルの一般化誤差に限界を与えますが、これは通常、あまりにも緩く、ニューラルネットワークでは役立ちません。

ここ参照する別の研究ラインは、容量の尺度としてニューラルネットワークで重み行列のスペクトルノルムを使用することです。これを理解する1つの方法は、スペクトルノルムがネットワークのリプシッツ定数を制限することです。

モデルの容量を見積もる最も一般的な方法は、パラメーターの数を数えることです。パラメータが多いほど、一般的に容量が大きくなります。もちろん、多くの場合、小規模なネットワークは、大規模なネットワークよりも複雑なデータをより適切にモデル化することを学習するため、この測定も完全とはほど遠いものです。

容量を測定する別の方法は、ランダムラベル(Neyshabur et。al)でモデルをトレーニングすることです。ネットワークがランダムラベルとともに大量の入力を正しく記憶できる場合、基本的に、モデルがそれらすべてを記憶できることを示します。個別にデータポイント。「学習」できる入出力ペアが多いほど、容量は大きくなります。

これを自動エンコーダに適応させると、ランダム入力を生成し、ネットワークをトレーニングしてそれらを再構築し、エラー未満で正常に再構築できるランダム入力の数を数えることができます。ε


1
これは、stackoverflowの回答よりも良い回答です。ありがとうございます。緩やかに定義された用語が何か他の理由として使用されているのを見ることにはまだ問題がありますが、それがこの分野が進んでいる方法だと思います。
アンドレス・Marafioti

1
「モデルのVCディメンションとモデルの実際の容量との間に大きなギャップが存在する可能性があります。」「実際の容量」が正確に定義されていないため、これは非常に誤解を招く記述です。実際、VCディメンションはモデルの容量の適切な尺度です。ニューラルネットワークは特定の問題を解決しているように見えるだけで、「高度な能力」を発揮しません。実際、ほとんどの場合、人々はニューラルネットワークが問題を解決していると考えていますが、はるかに単純な問題を解決しており、実際、破滅的に失敗することがよくあります(単純な問題を解決するために「予期せず」訓練されたため)。
nbro
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.