Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Neural Processes #44

Open
Yagami360 opened this issue Nov 10, 2019 · 0 comments
Open

Neural Processes #44

Yagami360 opened this issue Nov 10, 2019 · 0 comments

Comments

@Yagami360
Copy link
Owner

Yagami360 commented Nov 10, 2019

0. 論文情報・リンク

1. どんなもの?

  • Conditional Neural Processes (CNP) のアーキテクチャにおいて、全入力データを集約させたガウス分布からのランダムサンプリングで得られる Global latent variable を追加することで、モデルにグローバルな不確実性をもたせ、不確実性に応じた出力の一貫性や多様性を可能にした教師あり学習モデルである Neural Processes (NP) を提案している。

2. 先行研究と比べてどこがすごいの?

  • 従来のニューラルネットワークでは、多くの種類の関数をうまく近似(回帰)できるものの、多量の学習用データセットが必要であるという問題があった。一方、ガウス過程では、回帰の不確実さも考慮することでより少ないデータでうまく関数を回帰できるものの、データ次元数に応じて計算コストが爆発的に増大するという問題があった。
    Conditional Neural Processes (CNP) は、これらニューラルネットワークとガウス過程の双方の利点を組み合わせることで、対象の関数を比較的少ない学習用データセットで学習可能かつ観測点追加の容易性の面で計算効率もよいモデルとなっている。
    しかしながら、CNP では、不確実性の高い状況下でも同じ入力データに対して様々な異なる近似関数を生成できないという問題が存在する。
    本手法では、この CNP に、全入力データを集約させたガウス分布からのランダムサンプリングで得られる潜在変数(global latent variable)を追加することで、モデルにグローバルな不確実性をもたせ、このような不確実性に応じた出力の一貫性や多様性の問題を解決している。
  • このモデルは、包括的で汎用性の高いモデルになっており、様々な教師あり学習のタスクに適用可能となっている。

3. 技術や手法の"キモ"はどこにある?

  • Global latent variable の追加(Conditional Neural Processes からの変更点)

    Neural Processes は、Conditional Neural Processes (CNP) をベースとしたモデルとなっている。
    但し、CNP では、同じ入力データに対して異なる近似関数を生成できないという、出力の一貫性や多様性の問題が存在するので、上図のアーキテクチャの概要図のように、この CNP に、全入力データを集約させたガウス分布からのランダムサンプリングで得られる潜在変数(global latent variable)を追加することで、モデルにグローバルな不確実性をもたせ、このような不確実性に応じた出力の一貫性や多様性の問題を解決している。

    より詳細には、右上図のアーキテクチャの詳細図のように、Aggregator a で各入力データの各特徴量を1つの特徴量 r に集約したもの(=グローバルな特徴量)を、ガウス分布の平均値 μ と分散値 σ を計算するためのパラメーターとして使用する。 そして、global latent variable をこのガウス分布からサンプリングされる潜在変数とする。

    潜在変数 z はこのガウス分布からサンプリングされる変数なのでランダム性をもち、又、このガウス分布の平均値と分散値は全ての入力データを集約から計算されているので、グローバルな不確実性を表現していることになる。
    その結果として、モデルに観測データのグローバルな不確実性を組み込むことが出来る。

  • アーキテクチャの主要コンポーネント(Conditional Neural Processes と同様)
    Neural Processes のアーキテクチャは、CNP と同様にして、以下の3つの主要コンポーネントから構成される。

    • Encoder :
      ニューラルネットワーク h を利用して観測データのペアを特徴ベクトル r_i に encode する。

    • Aggregator :
      encode した各特徴ベクトル r_i (i=1,2,…) を1つの固定次元の特徴ベクトル r に集約する。(例:平均化)
      この集約された特徴ベクトル r は、global latent variable z が従うガウス分布の平均値 μ と分散値 σ を計算するためのパラメーターとして使用される。

    • Decoder :
      ガウス分布からサンプリングされた global latent variable z を入力として、ニューラルネットワーク g でパラメーター を推定し、 そのパラメーター で出力データ y を推定する。
      特に回帰タスクでは、ガウス分布のパラメーター(平均値+分散値)を推定し、そのパラメーターで出力データを推定する。(平均値を回帰結果。分散値を回帰結果の信頼度とする)
      ※ ニューラルネットワーク g で出力データ y を直接推定するのではなくて、パラメーター を推定し、そのパラメーターで出力データを推定していることに注目。

    このアーキテクチャにより、学習用データ数 n + テスト用データ数 m に対しての計算オーダーは、 の計算オーダーで計算することができる。
    ※ ガウス過程での計算オーダーは、

4. どうやって有効だと検証した?

  • 1次元の関数回帰タスクで、Neural Processes の性能を検証している。

    Conditional Neural Processes と同様にして、も少ない学習用データ点で回帰が行えていることが見て取れる。
    又、データ数が少なく、不確実性が高い状況下では関数近似のばらつきが大きくなっており、逆にデータ数が多く、不確実性が低い状況下では関数近似のばらつきが小さくなっており、不確実性に応じた出力の一貫性や多様性が組み込まれていることが見て取れる。

  • 画像を回帰するタスクで、Neural Processes の性能を検証している。

    Conditional Neural Processes と同様にして、も少ない学習用データ点で回帰が行えていることが見て取れる。
    又、データ数が少なく、不確実性が高い状況下では多様な画像が生成されており、逆にデータ数が多く、不確実性が低い状況下ではある決まりきった画像が生成されており、不確実性に応じた出力の一貫性や多様性が組み込まれていることが見て取れる。

5. 議論はあるか?

  • 入力データの各特徴量を1つの特徴量にまとめた特徴量からガウス分布の平均値と分散値を計算し、その平均値と分散値を持つガウス分布から潜在変数(global latent variable)を得るが、このガウス分布からサンプリングされた潜在変数というのは、今考えている教師あり学習タスクの目的である推定問題 f : X → Y におけるグローバルな情報を含んでおり、またランダム性を含んでいるので、この潜在変数を組み込むことでモデルにグローバルな不確実性をもたせ、同じ入力データに対しても様々な近似関数を出力することを可能にしているという点がポイント。

6. 次に読むべき論文はあるか?

  • Deep Kernel Learning
  • Deep Neural Networks as Gaussian Processes
  • Attentive Neural Processes

7. 参考文献

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

1 participant