質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.62%

  • 機械学習

    648questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

  • TensorFlow

    639questions

  • 深層学習

    139questions

  • 統計

    51questions

    統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

ある分布でサンプリングと出力とは?

受付中

回答 1

投稿

  • 評価
  • クリップ 2
  • VIEW 313

IS.SEKI

score 15

機械学習分野には
『XX分布でサンプリングする』とか『NNの出力をXX分布にする=XX分布であるようNNの出力をさせる?』という表現ありますが。
理解できません。

「サンプル(そのもの)がXX分布になっている」のような表現は分かりますが、
人間の意志によってわざわざ『特定の分布』でサンプリングするのはどうやって実現するのでしょうか。

同様に、どうやって『NNの出力をXX分布にする』のでしょうか。
例えば、
Variational Auto Encoder(VAE)のgeneratorの出力は(μ,σ)Gaussian分布にさせるとか。
要は特定の数値やパターンが出力するようにする事は分かりますが、
その数値やパターンを特定の分布に従わせる方法は分かりません。

どうぞ宜しくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

+4

統計においてxx分布とは、xx分布を表す関数のことを意味します。つまりxx分布にしたがいサンプリングするというのは、この関数に従った乱数を生成することと同義です。最もよく使うnumpy.random.normal(…)を例に取ると、この関数に平均と標準偏差のパラメータを与えるとそれらの正規分布にしたがった乱数がサンプリングされます。実際にこの関数を使って1万個ほどの乱数を生成して平均と標準偏差を計算すると、与えたパラメータと近似することがわかります。

以上より、「サンプル(そのもの)がXX分布になっている」ということはxx分布を表す関数で表現できるということになり、結果としてこの関数の応用してサンプリングできるということを意味します。

私自身、VAEのコードを書いたことがないので、「generatorの出力は(μ,σ)Gaussian分布にさせる」ということがどのような処理を意味するのか厳密には理解していませんが、感覚的には平均μ、分散(標準偏差)σのガウス分布にしたがうものとして何らかの処理をしているという意味合いかと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/15 10:42

    同じ意見です。

    VAEについては、ニューラルネットワークとしての解釈とグラフィカルモデル(確率モデル)としての解釈が説明されている以下のリンクがわかりやすいかもしれません。

    https://jaan.io/what-is-variational-autoencoder-vae-tutorial/

    キャンセル

  • 2018/04/15 10:42

    R.Shigemori様
    ご解説ありがとうございます。
    そうですね、もし単純に生成された乱数そのものを処理の対象とすれば、分かりますが、
    気になるのは既存のサンプルデータ(例えば、特徴vectorの集合)からある特定分布で各インスタンスを取り出して利用する場合はどう解釈すれば良いのでしょうか。
    通常『平等に』ランダム的にサンプル集合から一つを取り出すのは自然に「一様分布」に従う事になるので、問題ないですが、その他の特定の分布に従わせることに、理解できません。
    NNの出力に関してもそうですね。
    出力vectorの値に対する制限は分かりますが、そのvectorがある分布に従って生成されるのはどういう事? という実現方法は分かりません、いや、概念的に分かっていません。

    キャンセル

  • 2018/04/15 12:30

    mkgrei 様
    リンク有難うございます。 
    さっそく下記の論文
    https://jaan.io/what-is-variational-autoencoder-vae-tutorial/
    を拝読しましたが、この中に下記の表現にやはり理解できません。
    【Let’s make the connection to neural net language. The final step is to parametrize the approximate posterior qθ(z∣x,λ)​​ with an inference network (or encoder) that takes as input data x and outputs parameters λ 】

    なんと、NNよりGaussian 分布のパラメータ:λ(μ,σ)そのものを出力させるのですね!
    ヒントでも頂ければ幸せです。

    キャンセル

  • 2018/04/15 18:45

    https://arxiv.org/pdf/1606.05908v2.pdf
    https://qiita.com/cympfh/items/50b19933fd3834e86862

    このあたりの説明も参考にされてはいかがでしょう。

    キャンセル

  • 2018/04/18 19:49

    mkgrei 様
    特に一番目の論文、結構手掛かりになりますね。
    本当にありがとうございました!

    キャンセル

  • 2018/04/18 22:17 編集

    2番も良いですね。
    ただし、zは『潜在変数』と言ってxを生成する。。。ところが、実際、zはDNNで生成されます、
    そしてsample xが入力とされます。そうすると、xはzの『潜在変数』と言っても論理的に問題ないでは?
    なんで片一方xの分布は自由で、zが必ず正規分布N(0,I)でなければならないのでしょうか。

    そして仮令潜在変数がzであって、正規分布N(0,I)とみなされて良いとしても、
    果たして『CNNなどより生成された』zは正規分布N(0,I)であるかどうか,どう証明します?
    CNNなどがxの潜在変数zを生成できても、せいぜいzの子集で、zの母集がN(0,I)であってもその子集が必ずしもそうではないですね。

    いろいろ論理的な強引さを感じるのは 私だけでしょうか。

    キャンセル

  • 2018/04/19 11:18 編集

    現実に確かにzはサンプル{x}から生成されますね(VAE)。
    通常生成されたものはその生成元のsampleの具体的なinspanceに依存します(避けたい事)。
    訓練時サンプル{x}のサイズが大きければ、
    zの分布が{x}の個々具体instanceから影響を受け難くなります。← ここまでははっきり言えます。from : <<Sample-based non-uniform random variate generation>>

    ただ、xの分布が知らないので、DNNに入力して、出力(z)の分布は必ず正規分布であるかどうか?
    確かに分かりませんね。
    でも以下のような「仮定」ができます:
    ① zは必ず正規分布(神様の命令)
    ② {x}--->z は『zの還元』だと考え、多量のxによるzの還元設計(DNNのパラメータ)によって生成されたzも当然正規分布だろう。
    ③ 今度は『正規分布』としてのzを使って新しいxを生成する。
    まあーーーー人間が自分の都合のよい方向へ一生懸命に考えようとすれば、何でも成立可能なわけ  (笑)

    キャンセル

  • 2018/04/19 13:31

    > 何でも成立可能なわけ  !
    それにしても、上のmkgreiさんが案内された文献【https://arxiv.org/pdf/1606.05908v2.pdf】の中に、なんと、autoencoderは[μ(X), Σ(X)]というGaussian分布で潜在変数zを出力すると図で書いていますが、これは超可笑しいですね。Xとzは通常次元(dimension)でさえ異なるもんで、どうして生成されたzの分布の中心がμ(X)になるのでしょうね???? 
    次元が異なる別なvector空間であるのに、希望値が同じって?!

    キャンセル

  • 2018/04/19 14:00 編集

    むー
    【https://qiita.com/cympfh/items/50b19933fd3834e86862】も上記文献参照されているせいか、同じデタラメな事を書かれていますね。
    ZとXは通常次元の違うvectorであると書いておきながら、
    P(Z|X) = N( Z | μ(X), Σ(X) )だと書かれておりますね。
    ※ 要は、Zの希望値= μ(X) ----次元が違うvector同士どうして希望値が同じなの?????

    どなた、解釈してくださいませ!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.62%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    PHPのglob()は大小文字の区別なしのファイル検索は可能ですか?(PHP)

    PHPのglob()は大小文字の区別なしのファイル検索は可能ですか? 全てのPDFファイルをディレクトリーに入れたいので、 glob(foo/bar/*.PDF') と書きました

  • 解決済

    あるディレクトリに移動した後に別のコマンドを同時に実行したい

    あるディレクトリに移動した後に、別のコマンドを実行したいのですがどうすれば良いでしょうか? 例えば移動後にlsを実行するみたいなイメージです。

  • 解決済

    【PHP】抽象クラス抽象メソッドのメリット

    独学でPHPを学んでいる初心者です。 PHPの抽象クラスでつまづいたので質問します。 聞きたいのは2つです。 ・抽象クラス内における抽象メソッドと具象メソッドの違い ・抽象クラス

  • 解決済

    Perlのクラス変数について

    Perlでクラス変数を扱う方法は、2通りあるかなと思っています。 # パターン1 my $hoge; # パターン2 sub new {     my $class = shi

  • 解決済

    coffeescriptでgetterを定義する方法

    javascriptではgetキーワードを使って、プロパティを取得する際に呼び出されるメソッドを定義することを知りました。これをcoffeescriptで使うにはどのように書けばい

  • 受付中

    apache の rewrite 方法について。.htaccess

    お世話になっております。Ezです。 apacheのrewrite方法についてご教授頂いてもよろしいでしょうか? http://hoge.com というサイトがあり

  • 受付中

    計算のミス?

    ガチャのコンプリートまでに引く回数を計算するプログラムを作りたいです。  具体的には、まず1種類キャラクターがいるときにコンプリートするまでにかかる回数=1、次に二種類キャラクタ

  • 解決済

    正規表現で、URLをAorBで抽出する

    正規表現一致でURLを抽出するクエリを書きたいです。 REGEXP_LIKE(rl,'^https://aaa.jp/$')=TRUE THEN '1_トップページ' このよ

同じタグがついた質問を見る

  • 機械学習

    648questions

    機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

  • TensorFlow

    639questions

  • 深層学習

    139questions

  • 統計

    51questions

    統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。