FC2ブログ

positive phase vs negative phase

昨日の続きです。以下の式におきまして、

θlog p(x;θ) = ∇θlog p'(x;θ) - Ex~p(x)θlog p'(x) --- (1)

右辺第一項は"positive phase"、第二項は"negative phase"と呼ばれます。

左辺は、対数尤度のパラメタに関する微分ですから、これがゼロになったときが、最尤法におけるパラメタの最適値です。では、いつゼロになるかというと、右辺のふたつの項が釣り合ったときですね。

右辺第一項の意味ですが、これは訓練データから得られるxを使います。対して、第二項では、MCMCにより得られるxを使います(なぜか?モデル分布からのサンプルが必要なので)。なので式(1)というのは、モデルをデータに当てはめてやる過程を表現していると言えます。

"Deep Learning"本では、ここでneuroscienceの研究が紹介されます。すなわち、第一項は、ヒトが現実で経験することを表します。対して、第二項は、ヒトが寝ているとき、特にREM睡眠の状態を表します。つまりヒトというのは、現実を解釈するときには、寝ているときに、脳の持つモデルを現実に当てはめる処理をしているのではないか、ということです。

ホントかな?これはまだ、証明されていないということですが、面白い解釈をするひとがいるものです。
スポンサーサイト

Deep Learning (24)

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) November 18, 2016.

なんとか第18章まで来ました。"Confronting the Partition Function"、つまり「分配関数」の攻略です。

最初に、以下の式が登場します。同書では、式(18.4)です。

θlog p(x;θ) = ∇θlog p'(x;θ) - ∇θlog Z(θ) --- (1)

要するに、確率密度を正規化したものの対数をとり、それをパラメタで微分したものです。Z(θ)が悪名高き、「分配関数」。

式(1)の第二項は、以下のように書けることが示されます。同書では、式(18.5)です。

θlog Z(θ) = Ex~p(x)θlog p'(x) --- (2)

このふたつの式の解釈がいろいろと書かれているわけですか、これがかなり面白いです。最初はまるでわからなかったのですが、何度も読み直すうちに、わかりました。楽しいところです。

MCMC法 (4)

MCMC (Markov Chain Monte Carlo) という技術を知ってから、早や5年経ちます。最初はなんのことか、まるでわかりませんでした。

ベイズ統計において、パラメタの事後分布を求めるのによく使われるわけですが、"Deep Learning (2016)"の第17章に登場するのには、ちょっとびっくりしました。Deep Learningになにか関係がある?

それが関係ありそうなんです。"17.5 The Challenge of Mixing between Separated Modes"に、それに関連する、難しい話が書かれてあります。

Probabilistic PCA (2)

Probabilistic PCAを攻略しようと思って、自分でEMの計算方法を考えてみた。

第一主成分を求めようとします。まず、初期値、つまり主成分の方向を適当に決めてやります。

そうすると、各データ点からその方向への投影を求めることができます。これが各点に対応する隠れ変数。

隠れ変数の位置が求まると、その点に対応するデータ点を生成する確率が求められます。正規分布で生成されると仮定する。

ここまではよいと思うのですが、このあと、主成分の方向を更新するやりかたがわからない...

やっぱり、ちゃんとPRML読まないといけないのかな。

Deep Learning (23)

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) November 18, 2016.

ついにパートⅢに入りました。

13章~15章のつながりは、いまいちよくわからないのですが、16章~19章は、最終章20章の準備です。20章はなにかというと、泣く子も黙る、Deep Generative Modelsです。

準備は万端?です。気合いだけは...

Probabilistic PCA

"Deep Learning (2016)"の第13章に、Probabilistic PCAが紹介されています。

第13章は、Linear Factor Modelsというタイトルで、パートⅢの最初になぜこれが出てくるのかよくわからないのですが、それはともかく、Linear Factor Modelsの例として、Probabilistic PCAが紹介されているということです。

Probabilistic PCAは、PRML第12章で最初にみました。これを読んだときは、なにが書かれてあるのかよくわかりませんでした。雰囲気はなんとなく掴めたけれど...

上記のDeep Learning本では、さわりだけしか書いてないのですが、同書は本質をつく説明をします。すなわち、latent variableを用いて、条件付き独立(conditionally independent)を仮定してやるわけです。PCAというのは、独立となるような成分を抽出するわけですから(正しくは相関がない、ということですが)、観測されるデータの共分散行列は、対角行列としてモデル化できるわけです。なので、latent variableを周辺化してやると、主成分が得られるという仕組みです。

Deep Learning (22)

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) November 18, 2016.

第10章は、ついにRNN (Reccurent Neural Network) です。これが最後の難所です。

まずは、back-propagationの計算です。通常のものと変わりませんが、RNNでは、BPTT (back-propagation through time) というものを使います。

具体的な式は、(10.17)~(10.28)です。式(10.18)は、softmaxのcross entropyの微分です。これは既に習得しました。以下をご覧ください。

http://kanouy.blog9.fc2.com/blog-entry-2027.html

汎用的な設定では、教師データは総和してイチとなればよいのですが、式(10.18)は、ひとつの出力だけがイチ、ほかはゼロという特殊な場合を想定しています。

Deep Learning (21)

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) November 18, 2016.

第9章は、CNN (Convolutional Neural Network) です。もともとこれがdeep learningを流行らせた。2012年のことです。

ただ、この章にはCNNの学習方法がきちんと書かれていませんね。畳み込みフィルタの重みは共通なので、これの学習には工夫が必要なはずですが、これに関する記載がされていません。なぜ?

ちなみに、岡谷先生の「深層学習」には書かれてあります。6.7 勾配の計算、です。

Batch Normalization

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) November 18, 2016.

8.7.1 Batch Normalizationの記述が、いまいちよく解らなかったので、原著論文にあたってみました。

Sergey Ioffe, Christian Szegedy, Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift, 2015.

ネットで取れます。要するに、層ごとに正規化してやるということですね。たぶん...

Deep Learning (20)

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) November 18, 2016.

8.3.2 Momentumという節に、物理シミュレーションのような記述があります。

要するに、最適化計算の過程(=gradient descent)で、速度(velocity)というものを考えてやると、学習が速く進むという理屈です。これはどういうことかと言うと、エラー関数を力学でいうところのポテンシャルと見なすと、それの座標での微分というのは力です。そして、力は加速度に比例します。

このような観点から機械学習における学習を眺めると、学習率(learning rate)が一定というのは、加速度一定ということです。しかるに、物理においては、速度はどんどん速くなるわけです。この速度をうまく使って、学習率を更新してやることにより、学習が速く進むということです。お試しあれ。

Deep Learning (19)

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) November 18, 2016.

7.12 Dropout ですが、ここでも、振舞いの解析をしています。楽しい。

dropoutの解析は非常に困難なので、いろいろと言い訳(=近似)したあとで、簡単なsoftmaxの事例について、正確な解析しています。結果として、dropoutの確率が0.5のときは、重みを0.5にしてやればよいということがわかります。

よくやるな~という感じです。数学の勉強になります。

Deep Learning (18)

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) November 18, 2016.

7.8 Early Stopping ですが、ここの解説は面白いです。Early Stoppingは結局のところ、L2正則化と同じであるという結論なのですが、解析のお手本のような記載があります。

適当な計算で、L2正則化とEarly Stoppingの対応付けをします。それが、式(7.43)。

(I - εΛ)τ = (Λ + αI)-1 --- (1)

左辺がL2、右辺がEarly Stoppingです。ここで、両辺の対数をとり、更にlog(1+x)のテイラー展開で一次の項をとります。すると、

τ= (1/εα) --- (2)

が得られます。τはEarly Stoppingにおける計算ステップ数、εは学習率、αはL2正則項の比例定数です。

式(2)をみると、αが大きいほど、τは小さくなります。つまり、τが小さいということは、overfittingされる前に計算を打ち切るということですから、結果としてL2正則の効果が得られる、ということです。

Deep Learning (17)

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) November 18, 2016.

について、K大Mさん(実名でも問題ないと思われます)が、2.12についてFBでポストしてきました。PCAのところです。私も以前言及したところです。

http://kanouy.blog9.fc2.com/blog-entry-1964.html

議論としては、ここでは中心化(期待値を引く)をしていないけれど、それはよいのか、ということです。確かにここの記述は明確ではありません。私の理解では、中心化しない場合、いわゆる同次座標(CGではこう呼ぶが、統計ではなんと言うのか?)を導入すれば、同じ議論が適用できるのだと思います。

cross-entropyの謎 (3)

cross-entropyですが、softmaxにおける偏微分の計算をやっと習得しました。

まず、コスト関数(cross-entropy)ですが、

L = -Σktk log(pk(x)) --- (1)

です。tkは教師データで、pkは以下で与えられます(これがsoftmax)。

pk(x) = exp(xk) / Σjexp(xj) --- (2)

式(2)を式(1)に代入すると、

L = -Σktk log(exp(xk) / Σjexp(xj)) = -Σktk (log(exp(xk) - logΣjexp(xj)) = -Σktk(xk - logΣjexp(xj)) --- (3)

式(3)をxiで偏微分します。

∂L/∂xi = -ti + Σktk(exp(xi) / Σjexp(xj)) = -ti + (exp(xi) / Σjexp(xj))Σktk --- (4)

ここで、

Σktk = 1 --- (5)

に注意すると、式(4)は、式(2)を使って、

∂L/∂xi = -ti + p(xi) = p(xi) - ti --- (6)

となり、非常に簡単な式が得られました。計算の練習に最適?

AI数学

AI、というか、機械学習ですが、その習得には数学が欠かせません。その数学とは、大きくわけると以下のものです。

1.線型代数
2.微分積分
3.確率・統計

AIは最先端と言われていますが、その基礎となる数学は、非常に古いです。ほとんどが数世紀前に構築されています。逆説的でおもしろい。基礎が重要なことが、ここでも確かめられました。

一方では、AI数学は習得が困難と言われます。その理由としては、広範囲な数学の知識が必要なことです。つまり、いろいろと「つまみ食い」をしなければなりません。

個人的には、ベクトルと行列について、従来の数学ではきちんとカバーされていないことが出てくるのが、敷居を高くしていると思っています。たとえば、ベクトルをベクトルで微分すると行列になるというようなことです。工学ではこれは出てくるのですが、大学教養の数学ではやりません。

なので、AI数学というくくりで、再構築をする必要がありますね。最近のお気に入り、"Deep Learning (2016)"の第2-4章に書かれてあるようなことです。

Deep Learning (16)

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) November 18, 2016.

6.2.2.2 Sigmoid Units for Bernoulli Output Distributions は、バイナリの分類なので、簡単だと思ったのですが、違いました。

シグモイド関数の対数をとると、それがsoftplus関数になることから、それを元に振舞いを解析しています。ちなみに、softplus関数というのは、以下で表されます。

ζ(x) = log (1 + exp(x)) --- (1)

そうすると、シグモイド関数σとの関係は、以下となります。

log σ(x) = -ζ(-x) --- (2)

こういう説明は初めてみました。最初は戸惑いましたが、なかなかおもしろい。

Algorithms for Reinforcement Learning

先日のVR学会の日、東大本郷の書店に立ち寄りました。さすが東大、技術書は充実しています。

強化学習に関する本を見てみると、「速習 強化学習」と「これからの強化学習」の2冊が目にとまりました。暫し立ち読み。

後者は内容的にかなり敷居が高そうなので(分筆本によくある)、前者が適当ですが、これは翻訳ですね。私は基本的には技術書の翻訳ものは買わないので、そのあとネットで原書を調べてみたところ、以下の本でした。

Csaba Szepesvari, Algorithms for Reinforcement Learning (Synthesis Lectures on Artificial Intelligence and Machine Learning) – 2010/10/1

「速習 強化学習」の前書きによると、これはセミナのノートのようですね。書評も見当たりません。謎の本ですが、注文しました。到着が楽しみです。少し読んだら、レビューを書きます。

PRESS statistic (2)

PRESS statisticの導出なのですが、

それと等価なLOOCVの説明が、「イラストで学ぶ機械学習」式(4.4)に絡んで出てきますが、おそらくこの記述だけで導出方法がわかるヒトは、ほとんどいないのではないでしょうか。もちろん私もわかりませんでした。

諦めていたのですが、まったくの別ルートから知った、以下の本、

'Introduction to Linear Regression Analysis (Wiley Series in Probability and Statistics) 5th Edition (2012)'

の、APPENDIX C.6-7に非常に詳しく書かれてありました。「逆行列の公式」の使い方も、これでやっとわかりました。

PRESS statistic

"PRESS statistic"、これはおそらく日本ではほとんど知られていないのではないでしょうか。ググっても、日本語のページは引っかかりません。Wikipediaの当該ページも、英語のほかは、ドイツ語のみ。

PRESSとは、predicted residual error sum of squares、のことです。ただ、英語でも統一されていないようで、prediction error sum of squares、としているものもあります。

これは実は、機械学習における、Leave-one-out cross-validation(LOOCV)と同じことです。コミュニティが違えば、用語も異なるというよい例ではないでしょうか。

PRESSを知ることになったのは、例の難解な、「イラストで学ぶ機械学習」の式(4.4)が、そのあとに出てくる複雑な、「逆行列の公式」でなぜ導かれるのかを、いろいろと調べていたことが理由です。

いまさらながら、やっと導きかたがわかりました。1年かかりました。ちなみにこの「逆行列の公式」は、正確には、Sherman-Morrison-Woodbury theorem、と呼ばれます。でも、これも呼び名がいろいろあって、ややこしいところです。

cross-entropyの謎 (2)

わかりづらいcross-entropyですが、"Deep Learning (2016)"、に以下の記述がありました。129ページです。

Many authors use the term "cross-entropy" to identify specifically the negative log-likelihood of a Bernoulli or softmax distribution, but that is a misnomer. Any loss consisting of a negative log-likelihood is a cross-entropy between the empirical distribution defined by the training set and the probability distribution defined by model. For example, mean squared error is the cross-entropy between the empirical distribution and a Gaussian model.

すばらしい!よくわかりました!でも、219ページには、以下の記述もあります。

One of these algorithmic changes was the replacement of mean squared error with the cross-entropy family of loss functions.

なんかこれ、矛盾していませんか?だって、最初のパラグラフでは、mean squared errorはcross-entropyである、と言っているのですから...でも、まあ、わかりました。

Deep Learning (15)

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) November 18, 2016.

4.5 Example: Linear Least Squaresは、第4章の技術を使った例です。ノルム最小の制約を付けたものなので、簡単だと思っていました。でも、違いました。

金谷先生の「最適化...」の同じような事例と見比べるとよくわかるのですが、定式化が違うんです。DL本では、

L(x, λ) = (1/2)|Ax - b|2 + λ(|x|2 - 1) --- (1)

としているのですが、金谷本(125ページ)では、

L(x, λ) = (1/2)|x|2 - λT(Ax - b) --- (2)

としています。つまり、最小化したい項と、制約条件が逆。

式(2)の形は別本でも見るのですが、式(1)は初めてです。こちらのほうがややこしい。実際のところ、不等式制約ですから...

Deep Learning (14)

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) 2016.

第6章は、feedforward networkのおさらいです。もう知っていると言うなかれ。必ず新しい知見が得られます。

167ページに、有名な「XOR学習」の話題が提供されています。隠れ層のないNNでは、これは学習できない。よく知られた話です。なので、ここでの記述は、以下のように結果だけです。

After solving the normal equations, we obtain w = 0 and b = 1/2. The linear model simply outputs 0.5 everywhere.

この事実を実際に確かめたい人は、以下のようにします。まず、計画行列(design matrix)は、

Φ = {{1, 0, 0}, {1, 0, 1}, {1, 1, 0}, {1, 1, 1}} --- (1)

出力は、XORなので、

y = {{0}, {1}, {1}, {0}} ---(2)

Mathematicaで試したので、その記法となっています。これを解くと、

(b, w) = (ΦTΦ)-1ΦTy = {{1/2}, {0}, {0}} --- (3)

が得られました。

Deep Learning (13)

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) 2016.

第5章は、機械学習のクイックサマリです。よくこのように短くまとめられるものです。感心します。

111ページに、VC dimension (Vapnik-Chervonenkis dimension) の説明があります。これまでよくわからなかったのですが、読んでみました。すなわち、

The VC dimension is defined as being the largest possible value of m for which there exists a training set of m different x points that the classifier can label arbitrarily.

これは要するに、直線の場合だと、VC dimention = 2、ということですかね?点が2つであれば、どうラベル付けしても、直線で分類できます。でも、3つだと、配置によっては直線だとムリ。

イラストで学ぶ機械学習 (22)

ある仕事で、弱分類機が使えそうなので、それを調べるため、手元にあった、以下の書物を参照しました。

The Elements of Statistical Learning: Data Mining, Inference, and Prediction, Second Edition, 2008/12/1
Trevor Hastie,‎ Robert Tibshirani,‎ Jerome Friedman

実はこれ、一時は手放そうと思っていたものです。落書きも消して、さて売るぞと思ったところに、なにかで必要となりました。それで、まだ手元にあります。

ただ、同書を見ても、よくわかりません。なぜかというと、いろいろなところに関連事項が分散されて書かれてあるんです。ちょっと読みづらい。というわけで、やはり「イラスト」。自宅にあるのですが、すぐに見たかったので、近くの本屋さんに行って、立ち読みしました。

実のところ、同じところでつまずいていました。またおバカなことをやってしまった。以下の記事に書かれていたようなことです。

http://kanouy.blog9.fc2.com/blog-entry-1775.html

最初に、これを見ればよかったわけですね。認めると、記憶から消えるということ?

なんでこれが理解できなくなるのかというと、理由はこうです。なぜ、このような複雑な境界を持つ分類機を、弱分類機のたんなる平均で作ることができるのか、ということ。種明かしとしては、この境界は「コンタ」なんです。境界線が、explicitに表現できているわけではない。これをきちんと記憶にとどめること(自分に言い聞かせる)。

Deep Learning (12)

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) November 18, 2016.

3.13 は、情報理論のクイックガイドです。こんなに重要なものが、わずか4ページ!

73ページにcross-entropyの説明があります。これは分かりづらいもののひとつです。この定義と、PRMLの4章に出てくるcross-entropyは、同じものなのでしょうか?

PRMLをみてもよくわからないので、Wikipediaを見てみました。日本語版は、いつものとおり整備されていないのですが、英語版の、"Cross-entropy error function and logistic regression"を読んで、なるほどと思いました。書物よりも、記述が明快です。

Deep Learning (11)

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) November 18, 2016.

2.12 はPCAの例ですが、これは面白いです。次元の圧縮と復元が、線型代数を駆使すれば導けて、それがPCAと等価であるということが、4ページもの数式で詳しく紹介されます。数式の変形を丁寧に追うことにより、線型代数のさまざまな技術を習得することができます。

ちなみに、この例の一般化が、「イラストで学ぶ機械学習」、13.2 主成分分析、で示されています。ただし、こちらのほうは、結果だけが示されますので、なぜそうなるのか解らない人には解らないと思います。以前の記事で導出しましたので、ご興味おありのかたは、下記をご覧ください。

http://kanouy.blog9.fc2.com/blog-entry-1821.html

イラストで学ぶ機械学習 (21)

「イラストで学ぶ機械学習」、最後まで到達したのですが、全部理解したかというと、それは甚だ怪しい。難書です。

そうしたところに、こちらも、再読する機会を得ました。がんばります!

Information Theory: a Tutorial Introduction (2)

ある事情により、情報理論を勉強したくなったので、1年以上前に購入した、以下の本を読むことにしました。

James V Stone, Information Theory: A Tutorial Introduction, February 1, 2015

同著者による、ベイズ本とICA本を読み、なかなか書き方が面白かったことから(最初は簡単なふりをして、後半いきなり難しくなる)、同書も購入しておいたのですが、なかなか読み出すきっかけがありませんでした。楽しみです。以前の関連記事はこちらです。

http://kanouy.blog9.fc2.com/blog-entry-1324.html

Deep Learning (10)

Ian Goodfellow , Yoshua Bengio , Aaron Courville
Deep Learning (Adaptive Computation and Machine Learning series) Hardcover – November 18, 2016.

以前、何度か輪読をしましたが、今回、もう少しちゃんと読めそうな機会をいただきました。というわけで、本書にまた挑戦します。新しい知見が得られましたら、適宜報告いたします。

ポアソン分布 (2)

ポアソン分布は、以下の式で表されます。

p(x;μ) = (μxe)/x! --- (1)

pが最大となるxはμです。なぜか、これを導きたいと思いました。

式(1)をxで微分すればよいと思いきや、xはゼロ以上の整数です。なので微分はできません。でもやってしまう。

その前に、式(1)の対数をとります。計算を簡単にするためです。これは合法的。

log(p) = xlog(μ) - μ - log(x!) = xlog(μ) - μ - Σlog(x) --- (2)

式(2)をxで微分します。これは非合法。

d(log(p))/dx = log(μ) - Σ(1/x) --- (3)

式(3)をゼロとおいて解けばよろしい。

式(3)を見ると、第二項を積分とみなせば、log(x)ですね。なので、x=μが導けました。以上、連続離散混合計算でした!
プロフィール

加納裕(かのうゆたか)

Author:加納裕(かのうゆたか)


[略歴]
1983年3月東京工業大学工学部機械物理工学科卒業
1983年4月(株)図研入社
1987年1月同社退社
1987年2月(株)ソリッドレイ研究所を6名で設立、取締役
1994年3月同社退社
1994年4月(株)スリーディー入社
1996年10月同社取締役
1999年12月上海大学兼務教授
2002年10月同社代表取締役
2009年9月ものつくり大学非常勤講師~現在
2009年10月同社代表退任/退社
2010年1月ソフトキューブ(株)入社~現在(横浜オフィス)
2017年4月湘南工科大学非常勤講師~現在


[業界団体・学会活動]
電気学会・第三期次世代インタラクティブディスプレイ協同研究委員会(幹事)/最先端表現技術利用推進協会・アカデミック部会(旧:三次元映像のフォーラム)(副部会長)/日本バーチャルリアリティ学会ハプティクス研究委員会(委員)/ACM・SIGGRAPH(Professional Member)/情報処理学会(正会員、CVIM会員)/3Dコンソーシアム(賛助会員)/3DBiz研究会(個人賛助会員)/URCF(特別会員)

----------------

前職:立体映像産業推進協議会(幹事)/日本バーチャルリアリティ学会・論文委員会(委員)


[資格]
TOEIC805点
数学検定1級(数理技能)
中型・普自二免許
サッカー4級審判員

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード