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

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

新規登録して質問してみよう
ただいま回答率
85.48%
深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

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

統計

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

Q&A

1回答

2786閲覧

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

IS.SEKI

総合スコア28

深層学習

深層学習は、多数のレイヤのニューラルネットワークによる機械学習手法。人工知能研究の一つでディープラーニングとも呼ばれています。コンピューター自体がデータの潜在的な特徴を汲み取り、効率的で的確な判断を実現することができます。

機械学習

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

統計

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

0グッド

2クリップ

投稿2018/04/14 14:39

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

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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

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

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

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

投稿2018/04/14 18:40

R.Shigemori

総合スコア3376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

IS.SEKI

2018/04/15 01:42

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

2018/04/15 03: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 分布のパラメータ:λ(μ,σ)そのものを出力させるのですね! ヒントでも頂ければ幸せです。
IS.SEKI

2018/04/18 10:49

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

2018/04/18 13:27 編集

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)であってもその子集が必ずしもそうではないですね。 いろいろ論理的な強引さを感じるのは 私だけでしょうか。
oookabe

2018/04/19 02:23 編集

現実に確かに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を生成する。 まあーーーー人間が自分の都合のよい方向へ一生懸命に考えようとすれば、何でも成立可能なわけ  (笑)
oookabe

2018/04/19 04:31

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

2018/04/19 05:01 編集

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問