FC2ブログ

AIのための数学 (4)

「AIのための数学」、全12回ですが、売り先を探していましたが、お客さんがつきました!

これまでの関連記事はこちらです。

http://kanouy.blog9.fc2.com/blog-entry-2261.html
http://kanouy.blog9.fc2.com/blog-entry-2260.html
http://kanouy.blog9.fc2.com/blog-entry-2220.html

資料は作ってありますが、実地を踏んで、改訂していきます。楽しみです。
スポンサーサイト



Support Vector Machine (5)

Support Vector Machine(SVM)において、マージンが1/|w|というのが解りづらいと思い、以下に導出します。

ゼロの境界線上のベクトルをx0、プラスの境界線上のベクトルをx1とすると、

wTx0 + b = 0 --- (1)
wTx1 + b = 1 --- (2)

が成り立ちます。式(2)-式(1)をつくると、

wT(x1 - x0) = 1 --- (3)

となります。式(3)の両辺を|w|で割ってやると、

wT/|w|(x1 - x0) = 1/|w| --- (4)

となりますが、式(4)の左辺はまさにマージンの定義です。従いまして、式(4)の右辺、すなわち1/|w|がマージンとなります。

データ分析 (2)

ふとしたことから、知り合ったドイツ人P氏。データ分析を専門とし、イギリスの大学にいるのですが、いま日本に滞在中。

関連本、つまり、下記の書籍をあたっていたところ、

An Introduction to Generalized Linear Models, Third Edition

やはりというか、P氏は本書をご存知とのことでした。想定内。この分野でのバイブルのひとつですからね。

そのような経緯で、P氏のイギリスの大学での関連資料をいただきました。

データ分析

ふとしたことから、知り合ったドイツ人P氏。データ分析を専門とし、イギリスの大学にいるのですが、いま日本に滞在中。

P氏のプレゼンを聴く機会がありました。さまざまなデータを入力として、ある分析結果を出すのですが、最初に、もともとのパラメタを、「線形パラメタ」と「非線形パラメタ」に区分けしてやります。

全て線形パラメタとみなすのが、重回帰ですね。対して、非線形とするときは、別の関数を使えばよいのですが、それを統一的に扱うやりかたが、よくわからない。

そこで、最近開かない、以下の書籍、

An Introduction to Generalized Linear Models, Third Edition

をパラパラと見ていたら、ちょっと関連ありそうな箇所がありました。もう少し見てみます。

Approximate Inference

PRMLの第10章、"Approximate Inference"は難解なところですが、関連のことを少しやりましたので、ちょっと見てみました。

よく出てくる式、すなわち、

ln p(X) = ℒ(q) + KL(q || p) --- (1)

において(式に名前を付けて欲しい)、

ℒ(q) = ∫q(Z) ln {p(X , Z) / q(Z)} dZ --- (2)

です。それぞれPRMLでは、式(10.2)(10.3)。

ここでは、式(2)を調べます。まず、以下の仮定をおきます。

q(Z = Πqi(Zi) --- (3)

つまり、各変数間は関連がないですよ、ということです。PRMLでは、式(10.5)。

さて、式(3)を式(2)に代入し、計算を進めると、

ℒ(q) = ∫qj ln p~(X , Zj) - ∫qj ln qj dZj --- (4)

となります。PRMLでは、式(10.6)です。ちなみに、p~(X , Zj)というのは、Zj以外で平均をとったという意味です。さて、式(4)によると、これは負のKLダイバージェンスなので、qjはp~(X , Zj)のときに最適化される、という理屈となります。

そのあと、ガウシアンなどで例をあげています。このあたりは重要なところのようです。

周辺対数尤度 (2)

どこかから送られてきた資料に、以下の式を示せという課題が出ていました。

log(p(X)) = ℒ(q) + KL(q||p)--- (1)

PRMLのEMアルゴリズムや変分法で出てくる、魔法の式です。機械学習における代表的な式のひとつ。同じ内容の記事を以前書きました。

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

以下に、再掲しておきます。自身の復習を兼ねて。まず、ベイズの定理により、

p(X, Z) = p(X)p(Z|X) --- (2)

これの対数をとり、移項すると、

log(p(X)) = log(X, Z) - log(Z|X) --- (3)

Zに関する確率密度q(Z)を考えてやると、

log(p(X)) = log(p(X, Z)) - log(p(Z|X)) - log(q(Z)) + log(q(Z)) = log(p(X, Z)/p(Z)) - log(p(Z|X)/q(Z)) --- (4)

両辺にq(Z)を掛けて、積分すると、左辺は変わらず、

log(p(X)) = ∫q(Z)log(p(X, Z)/p(Z))dZ - ∫q(Z)log(p(Z|X)/q(Z))dZ = ℒ(q) + KL(q||p)--- (5)

ところで、式(1)または式(5)の右辺第一項は、名前がないのでしょうか?

Deep Learning (29)

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

久しぶりに、最近また開いています。さて、

4.3.1 Beyond the Gradient: Jacobian and Hessian Matrices

のところで、以下の式(4.9)が出てきます。

f(x(0) −εg) ≒ f(x(0)) − εgTg + (1/2)ε2gTHg

要するに、2次までのテイラー展開です。εは学習率で、これをどのように決めればよいかが問題となります。そのあと、式(4.10)として、

ε = gTg / (gTHg)

が導かれます。式(4.10)がどのように導かれるかは説明がありませんが、これは、式(4.9)をεに関して微分して、それをゼロと置くことにより出てきます。

AIのための数学 (3)

「AIのための数学」、全12回うち、10回と11回は、「誤差逆伝播法」の習得にあてます。略してbackprop(backdropではない)。

しかるに、backpropとはなにか?これは、要するに、「合成関数の微分」と「偏微分」の組み合わせです。これらは大学初年度でやるので、理系のみなさまには既知のはず。しかし、このふたつが、非常に一般的な設定で適用されます。そこが解りづらい。

ニューラルネット(NN)が登場してから、backpropが開発された間には、かなりの年月があるわけですが、私はその間の事情を知りません。初期のNNはどうやって学習したのでしょうね。隠れ層がなかった時代なのでしょうか。いまの謎です。私はbackpropが登場した1980年代後半、NNを初めて知り、当時それでブームとなったことを記憶しています。

AIのための数学 (2)

「AIのための数学」、全12回の内容は以下です。

第01回:イントロダクション、AIまたは機械学習の基礎、達成目標の提示
第02回:線型代数(ベクトル/行列)
第03回:重要な関数(多項式/指数/対数)
第04回:微分(多項式/指数/対数)
第05回:最適化計算(勾配法/ニュートン法)
第06回:確率・情報理論
第07回:ニューラルネットワークの基礎
第08回:クロスエントロピー
第09回:クロスエントロピーの微分
第10回:誤差逆伝播法①
第11回:誤差逆伝播法②
第12回:まとめ、補足事項

前半は必要な数学のクイックコース。そのあとニューラルネットをやりますが、重要なのが誤差関数です。これはクロスエントロピー。クロスエントロピーは重要ですが、書籍ではほとんど取り上げられていません。ここをきちんとやりたい。

トピックモデルによる統計的潜在意味解析 (18)

佐藤一誠先生著、「トピックモデルによる統計的潜在意味解析(2015)」輪読会、第12回(2019年4月8日)は私の担当です。三回目。内容は、「5.2 系列データのモデリング」、です。

系列データは苦手なのですが、ここは思いのほか理解できたような気がします。LDAとHMMはくっつけやすそうです。構造が似ているのではないでしょうか。

場所は、コワーキングスペース秋葉原 Weeyble(ウィーブル)。
(http://weeyble.com/)
東京都千代田区神田須田町2丁目19−23(野村第3ビル4階)。

以下が、次回の輪読会URLです。
https://weeyble-data.connpass.com/event/126599/

IRLS

IRLSとは、Iterative Reweighted Least Squaresの略です。

これは、ロジスティック回帰の解を求めるために使われます。回帰問題だと、一般逆行列で一発で求められますが、ロジスティックは非線形なので、そうはいかない。なので、繰り返し法を使います。

IRLSは面白いです。一般逆行列に重み行列を組み込んでやればよろしい。さらに、これは凸問題なので、必ず最適解が求まります。このあたりは、PRMLの207~208ページに詳しく書かれてあります。

最近のツールでは、このような解はライブラリで簡単に求まるはずです。ただ、そうなると、完全にブラックボックスとなり、解を求める原理がわかりません。このあたりは、数式をきちんと理解したいところです。でないと、応用が利かない。

トピックモデルによる統計的潜在意味解析 (17)

佐藤一誠先生著、「トピックモデルによる統計的潜在意味解析(2015)」輪読会ですが、第12回(2019年4月8日予定)も担当することになりました。三回目です。内容は、「5.2 系列データのモデリング」、です。系列データは苦手なのですが、なんとか頑張ります。

場所は、コワーキングスペース秋葉原 Weeyble(ウィーブル)。
(http://weeyble.com/)
東京都千代田区神田須田町2丁目19−23(野村第3ビル4階)。

トピックモデルによる統計的潜在意味解析 (16)

佐藤一誠先生の、「トピックモデルによる統計的潜在意味解析(2015)」輪読会、先日(2019年3月18日)の第九回は、私が再度プレゼンしました。そのあとお二方による実装発表会。これで第3章は終了です。本書の冒頭、「おそらく、この3章が本書の最初の「山場」である。多くの読者が本書で挫折するとすれば、この章である」、とありますが、なんとか(?)切り抜けました。

さて、今後ですが、GW前にすべて終了させるという野心的な試み。あと5回で第4章、第5章をカバーします。私が再々度担当するかは未定であります(あと一枠)。

場所は、コワーキングスペース秋葉原 Weeyble(ウィーブル)。
(http://weeyble.com/)
東京都千代田区神田須田町2丁目19−23(野村第3ビル4階)。

以下が、次回の輪読会URLです。
https://weeyble-data.connpass.com/event/124760/

最尤推定 (3)

しつこく、最尤推定の話です。

統計・機械学習本だと、尤度を表したのち、計算を簡単にするため、などと称して、対数を取ります。それで、パラメタを求めるために、偏微分などをやる。

ただ、尤度を最大=cross-entropy最小、の原理を使うのであれば、cross-entropyとしては、対数は必須なので、対数化は必然ということになります。ここについて明記された書物は、いまのところ発見できません。謎のところです。

最尤推定 (2)

最尤推定から、cross-entropyを求めるところ、すなわち、

(1/n)log(L) = (1/n)Σlog(q(xi)) --- (1)

から、

(1/n)log(L) = Σp(xi)log(q(xi)) --- (2)

に「ジャンプ」することろですが、直観的にはわかりますし、書籍でもこのように書いているものもあります。

ただ、数学的な根拠についてはよくわからないので、先日知人の数学者STさんに訊いてみたところ、この根拠は「中心極限定理」ではないか、ということでした。ふ~ん、そうなんだ。

最尤推定

最尤推定、理解していたと思っていたのですが、尤度を最大にすることと、cross-entropyを最小にすることは同じというところで、少し混乱しました。

尤度Lは以下で表されます。

L = Πq(xi) --- (1)

ここで、q(x)はモデル(=求めたい確率密度)です。対数を取りますと、

log(L) = Σlog(q(xi)) --- (2)

ここで、機械学習的な式変形をやります。式(2)のxiは、真の分布p(x)からサンプリングされたのだから、

(1/n)log(L) = Σp(xi)log(q(xi)) --- (3)

と書くことができます。式(3)の右辺は、cross-entropyの符号を逆にしたものなので、尤度を最大にすることは、cross-entropyを最小にすることです。そのようなq(x)を見つければよいことになります。これが機械学習。

トピックモデルによる統計的潜在意味解析 (15)

佐藤一誠先生の、「トピックモデルによる統計的潜在意味解析(2015)」輪読会、昨日(2019年3月11日)第九回開催のはずが、諸事情によりドタキャンとなりました。

振替は、3月18日にやることになりました。

場所は、コワーキングスペース秋葉原 Weeyble(ウィーブル)。
(http://weeyble.com/)
東京都千代田区神田須田町2丁目19−23(野村第3ビル4階)。

以下が輪読会のURLです。
https://weeyble-data.connpass.com/event/122196/

トピックモデルによる統計的潜在意味解析 (14)

佐藤一誠先生の、「トピックモデルによる統計的潜在意味解析(2015)」輪読会、本日(2019年3月11日)が第九回です。担当(のひとり)は私です。以下が担当範囲。

3.7 評価方法
3.8 各種学習アルゴリズムの比較
3.9 モデル選択

場所は、コワーキングスペース秋葉原 Weeyble(ウィーブル)。
(http://weeyble.com/)
東京都千代田区神田須田町2丁目19−23(野村第3ビル4階)。

以下が輪読会のURLです。
https://weeyble-data.connpass.com/event/122196/

当日でもご参加可能のはずです。お待ちしております!

トピックモデルによる統計的潜在意味解析 (13)

佐藤一誠先生「トピックモデルによる統計的潜在意味解析(2015)」輪読会、次回で3章を終わるのですが、4章、5章もやる予定になっています。

4.2 潜在意味空間における回帰(4.1含む)
4.3 潜在意味空間における分類
5.1 相関構造のモデリング←担当者決定
5.2 系列データのモデリング
5.3 時系列データのモデリング(最後まで)←担当者決定

おそらく、人員的に、もう一回くらいやらないといけないと思われますが、5.2は難しそうです。系列データは苦手です。思案してます。

トピックモデルによる統計的潜在意味解析 (12)

佐藤一誠先生の、「トピックモデルによる統計的潜在意味解析(2015)」、の輪読会、第九回も担当することになりました。担当範囲は以下です。

3.7 評価方法
3.8 各種学習アルゴリズムの比較
3.9 モデル選択

場所は、コワーキングスペース秋葉原 Weeyble(ウィーブル)。
(http://weeyble.com/)
東京都千代田区神田須田町2丁目19−23(野村第3ビル4階)。

以下が輪読会のURLです。
https://weeyble-data.connpass.com/event/122196/

お時間のあるかたのご参加を、お待ちしております!

AIのための数学

ある程度、AI(というか機械学習)の技術に携わってきたところで、「AIのための数学」という資料をまとめてみました。全12回です。

ターゲットは、”Deep Learning (2016)”の6.1節に載っている、XORを実現するニューラルネットワーク(NN)の学習です。つまり、誤差逆伝播法(backpropagation、短くはbackprop)。

backpropは、30年以上前の技術ですが、なぜこれをターゲットとするのかというと、最近の生成モデル(generative models)、つまりVAE(variational autoencoders)およびGAN(generative adversarial networks)では、backpropで学習できることがウリなのです。backpropは、非常に明確に定義されたアルゴリズムです。

また、backpropを習得するにあたり、それに必要な数学のセットがちょうどよい。線型代数・微分積分・確率の三点セットが、うまくブレンドされているわけです。

資料を作るにあたり、参考にした書籍は、"Deep Learning (2016)"と、"PRML (2006)"です。ともに名著。

cross-entropyの謎 (7)

cross-entropyの計算、いろいろと習得できたのですが、いまだはっきりとわからないのが、最尤推定からcross-entropyを導くところです。

PRMLでは、ややこしい式から、cross-entropyを導きます。4.3. Probabilistic Discriminative Models のところです。岡谷先生の「深層学習」でも、同じ道筋を踏襲。

一方、DL本では、5.5 Maximum Likelihood Estimation において、まったく異なる(と思われる)道筋が示されます。これは面白い議論ですが、この両者が同じことを言っているのかどうか、よくわからない。

もう少し考えますが、簡単な道筋のほうがいいですね。

cross-entropyの謎 (6)

softmaxにおける、cross-entropyの偏微分計算、やっとできました。場合分けが必要です。すなわち、

L = -Σktk log(yk) --- (1)
yk = exp(xk) / Σiexp(xi) --- (2)

としたときに、

∂L/∂xk = Σj(∂L/∂yj)(∂yj/∂xk) --- (3)

を計算します。

∂L/∂xk = Σj(-tj/yj)(∂yj/∂xk) --- (4)

ですが、ここで、k=jのときと、k≠jのときで結果が異なりますので、場合分けをしなければなりません。

まず、k=jのとき、式(4)は、

∂L/∂xk = (-tk/yk)(∂yk/∂xk) = (-tk/yk)(exp(xkiexp(xi)-(exp(xk))2)/(Σiexp(xi))2 = (-tk/yk)(yk-yk2) = -tk(1-yk)--- (5)

一方、k≠jのときは、

∂L/∂xk = Σj(-tj/yj)(-exp(xj)exp(xk))/(Σiexp(xi))2 = Σj(tj/yj)yjyk = ykΣjtj = yk(1-tk)--- (6)

式(6)では、最後のΣはイチとはなりません。k=jのときを省いているからです。ここで間違えました。

さて、式(5)と式(6)を足したものが答えなので、

∂L/∂xk = -tk(1-yk) + yk(1-tk) = yk - tk --- (7)

直接代入してやると、対数のおかげで場合分けは不要です。対数というのは、計算を簡単にしてくれる、魔法のツールです。

cross-entropyの謎 (5)

softmaxにおける、cross-entropyの偏微分計算、習得したのですが、

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

L = -Σktk log(yk) --- (1)
yk = exp(xk) / Σiexp(xi) --- (2)

ここで、式(2)を式(1)に代入せずに、

∂L/∂xk = Σj(∂L/∂yj)(∂yj/∂xk) --- (3)

としてやってみようとしました。同じことだし、このほうが簡単にできると思ったのです。

しかしながら、場合分けをする必要が出てきて、ややこしくなり、挫折しました。添え字が三つでてきて(微分したい添え字/偏微分の総和の添え字/確率の正規化の添え字)、混乱したのですが、おかしいな...相変わらず計算力はない。

cross-entropyの謎 (4)

計算の練習で、2クラス分類における、cross entropyの微分を計算してみました。

L = -t*log(y) - (1-t)*log(1-y) --- (1)

と、cross entropyを定義します。これをyで微分すると、

∂L/∂y = -t/y + (1-t)/(1-y) = (y-t)/(y(1-y)) --- (2)

ここで、

y = 1 / (1 + exp(-x)) --- (3)

ですが(シグモイド関数)、これは、以下が成り立つことが知られています(計算してもよい)。

dy/dx = y(1-y) --- (4)

式(2)と式(4)を組み合わせると、

∂L/∂x = y - t --- (5)

となり、非常に簡単な式が得られました。機械学習における、重要な結論のひとつです。

トピックモデルによる統計的潜在意味解析 (11)

本日(2019年2月4日、20時~22時)は、佐藤一誠先生著、「トピックモデルによる統計的潜在意味解析(2015)」、の輪読会です。第六回、私が担当します。担当範囲は以下です。

3.3.6 LDAの変分ベイズ法 (2)
3.3.7 LDAの変分ベイズ法 (3)
3.3.8 LDAの周辺化変分ベイズ法

場所は、コワーキングスペース秋葉原 Weeyble(ウィーブル)。
(http://weeyble.com/)
東京都千代田区神田須田町2丁目19−23(野村第3ビル4階)。

当日でもお申込みが可能です!(おそらく)
https://weeyble-data.connpass.com/event/118495/

Deep Learning (28)

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

某所にて、同書の説明会を行いました。予定としては一時間程度。

しかるに、パートⅢの時間がなくなりました。さらに、もうこの部分も徐々に古くなっています。いまや、生成モデルと言えば、GAN(Generative Adversarial Networks)になっています。特に、MCMCの人気がなくなった。

したがって、ここは端折りまして、最新の論文を解説しました。この結果にはご参加いただいたかたも結構驚かれ、これからはfakeの情報であふれるのではないか、などという議論となりました。

実際のところ、GANは、realかfakeか識別できないように学習するわけですから、そのような帰結ができるわけです。考えようによてはかなり恐ろしい。

トピックモデルによる統計的潜在意味解析 (10)

佐藤一誠先生著、「トピックモデルによる統計的潜在意味解析(2015)」、の輪読会ですが、次回は私が担当です。担当範囲は以下。

3.3.6 LDAの変分ベイズ法 (2)
3.3.7 LDAの変分ベイズ法 (3)
3.3.8 LDAの周辺化変分ベイズ法

一応、資料はほぼ作成しました。直前にやれるようなシロモノではありません。難書です。

やはり、いろいろと疑問点があります。誤植と思われる個所も何ヵ所か発見しました。ウェブにアップされている正誤表には記載されていないものです。

そこで前回です。75ページ上段の式の符号が四か所間違っているので、それを指摘したところ、どうも噛み合いません。それもそのはず、最新版(4刷)では修正されていたのです。私のは2刷です。1刷→2刷の誤植表はネットで取れたのですが~

とはいえ、最新版に買いかえる気もないです。こういうときのために輪読会はある。

トピックモデルによる統計的潜在意味解析 (9)

佐藤一誠先生著、「トピックモデルによる統計的潜在意味解析(2015)」、輪読会の報告です。三回目の参加でした(全体では五回目)。

今回は、以下の内容でした。

3.3.3 変分ベイズ法 (2)
3.3.4 LDAの変分ベイズ法(準備)
3.3.5 LDAの変分ベイズ法 (1)

プレゼンターさんがきれいにまとめてくれまして、たいへん参考になりました。こういうのが楽しい。

次回ですが、私がプレゼンします。担当は以下です。すべてキビシイですが、最後の3.3.8が難関です。

3.3.6 LDAの変分ベイズ法 (2)
3.3.7 LDAの変分ベイズ法 (3)
3.3.8 LDAの周辺化変分ベイズ法

トピックモデルによる統計的潜在意味解析 (8)

佐藤一誠先生著、「トピックモデルによる統計的潜在意味解析(2015)」、輪読会の報告です。二回目の参加でした。

プレゼンターさんの手際がよく、サクサクと進みました。結果的に、3.3.2 変分ベイズ法(1)まで終了。次回は、3.3.3 変分ベイズ法(2)からです。

ディリクレ分布からのサンプリングについて質問しましたが、質問の意図がよく伝わらなかったので、欲しかった解答は得られませんでした。ディリクレ分布の確率密度はよいとして、ここからどのようにサンプリングするのかが、疑問のままです。

正規分布については、一様乱数を発生させ、正規分布の累積の逆関数から得られますが、このようなやりかたが、ディリクレ分布で可能なのでしょうか?引き続き疑問であります。
プロフィール

加納裕(かのうゆたか)

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(Professional Member)/情報処理学会(正会員)/3Dコンソーシアム(賛助会員)/URCF(特別会員)

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

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


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

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

この人とブロともになる

QRコード
QRコード