新しい情報をディリクレ事前配布に組み込むにはどうすればよいですか?


8

私の問題はこれです。私は、それぞれが一連のクラスにわたって分布を生成する予測子のアンサンブルを持っています。

私がやりたいことは、最初にこのラベル分布がどのように見えるかについて非情報的な前もってあり、次にアンサンブルの各メンバーの予測でそれを更新することです。

そのため、以前は情報量の少ないディリクレを使用することを考え、それを予測として得られる各サンプル分布で更新しました。

私の質問は次のとおりです。このアプローチは有効ですか。そうである場合、以前のサンプルをどのように更新すれば、より多くのサンプルが蓄積されるので、より明確になりますか?


Latent Dirichlet Allocationで正確に実行できることを知っています。彼らはデータを使用して、多項尤度の前にディリクレを更新します。詳細については、これらのリンクを参照してください。dirichlet.net/pdf/wallach09rethinking.pdfpeople.eecs.berkeley.edu/~jordan/papers/hdp.pdf
KenHBS

回答:


6

ディリクレ事前分布は適切な事前分布であり、多項分布の前の共役です。ただし、これを多項分布ロジスティック回帰の出力に適用するのは少し難しいように思われます。これは、このような回帰には多項分布ではなく出力としてソフトマックスがあるためです。しかし、私たちができることは、多項式からのサンプルです。その確率は、softmaxによって与えられます。

これをニューラルネットワークモデルとして描画すると、次のようになります。

ここに画像の説明を入力してください

これから、順方向に簡単にサンプリングできます。逆方向の扱い方は?Kingmaの「自動エンコーディング変分ベイズ」ペーパー、https: //arxiv.org/abs/1312.6114からの再パラメーター化トリックを使用できます。つまり、入力確率分布が与えられた場合、多項式描画を決定論的マッピングとしてモデル化します。そして標準のガウス確率変数からのドロー:

xout=g(xin,ϵ)

ここで:ϵN(0,1)

したがって、ネットワークは次のようになります。

ここに画像の説明を入力してください

そのため、データ例のミニバッチを転送し、標準正規分布から引き出し、ネットワークを介して逆伝播できます。これはかなり標準的で広く使用されています。たとえば、上記のKingma VAEペーパー。

微妙なニュアンスは、多項分布から離散値を描画していることですが、VAEペーパーは連続した実出力の場合のみを処理します。ただし、最近の論文であるGumbelトリックhttps://casmls.github.io/general/2017/02/01/GumbelSoftmax.html、つまりhttps://arxiv.org/pdf/1611.01144v1.pdfがあります。およびhttps://arxiv.org/abs/1611.00712。これにより、離散多項式論文からの描画が可能になります

Gumbelトリック式は、次の出力分布を提供します。

pα,λ(x)=(n1)!λn1k=1n(αkxkλ1i=1nαixiλ)

ここでのは、さまざまなカテゴリの事前確率であり、これを調整することで、最初の分布を、分布が最初にどのように分布できると思われるかを推し進めることができます。αk

したがって、次のようなモデルがあります。

  • 多項ロジスティック回帰が含まれます(線形層とそれに続くソフトマックス)
  • 最後に多項式サンプリングステップを追加します
  • 確率の事前分布を含む
  • 確率的勾配降下法などを使用してトレーニングできます

編集:

だから、質問は尋ねます:

「(学習者の集団からの)単一のサンプルに対して複数の予測がある場合(および各予測が上記のようにソフトマックスになる可能性がある場合)、この種の手法を適用することは可能ですか?」(下のコメントを参照)

あ、はい :)。そうです。マルチタスクラーニングのようなものを使用します(例:http : //www.cs.cornell.edu/~caruana/mlj97.pdfおよびhttps://en.wikipedia.org/wiki/Multi-task_learning)。マルチタスク学習を除いて、単一のネットワークと複数のヘッドがあります。複数のネットワークと1つのヘッドがあります。

「ヘッド」は、ネット間の「混合」を処理する抽出レイヤーで構成されます。「学習者」と「ミキシング」レイヤーの間には、ReLUやtanhなどの非線形性が必要になることに注意してください。

あなたはそれぞれに「独自の」多項式ドロー、または少なくともソフトマックスを与えることをほのめかします。全体として、最初にミキシングレイヤーを設定し、その後に単一のソフトマックスと多項式ドローを設定する方が標準的だと思います。引き分けが少ないため、これにより分散が最小になります。(たとえば、「ローカルパラメタリゼーション」と呼ばれる手法である分散を減らすために、複数のランダム描画を明示的にマージする「バリエーションドロップアウト」ペーパーhttps://arxiv.org/abs/1506.02557を見ることができます)

このようなネットワークは次のようになります。

ここに画像の説明を入力してください

これには次の特性があります。

  • それぞれに独自のパラメータを持つ1人以上の独立した学習者を含めることができます
  • 出力クラスの分布に事前分布を含めることができます
  • さまざまな学習者の間で混合することを学びます

なお、これが学習者を組み合わせる唯一の方法ではないことに注意してください。また、ブースティングのような「ハイウェイ」タイプの方法でそれらを組み合わせることができます。

ここに画像の説明を入力してください

この最後のネットワークでは、各学習者は、独自の比較的独立した予測を作成するのではなく、これまでにネットワークによって引き起こされた問題を修正することを学びます。このようなアプローチは、ブーストなど、非常にうまく機能します。


1
これは本当に役に立ちますが、質問には未回答の側面があります。単一のサンプル(のアンサンブルから)に対して複数の予測がある場合(および各予測が上記のようにソフトマックスになる可能性がある場合)は、この種の手法を適用できますか?学習者)。サンプルはiidではないので、私の推測はそうではありません
バー

@バー:良い点。複数の学習者向けに更新
Hugh Perkins
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.