読者です 読者をやめる 読者になる 読者になる

PRML読書会【ニューラルネットワーク】

機械学習 PRML 勉強会

先週休んでしまったので、4章終わってしまってます。。。というわけで上巻最後の章、ニューラルネットワークです。1月、遅くとも2月にはPRMLの上巻終わっちゃいそうなんだけど、その後どうしようかなー。

SVMとの関連の付近

5.1の前の付近。SVMとNNは全く別物と思っていたんだけど、そういうわけではないらしい。

SVMとNNの比較

トレードオフだよ!!!

モデル モデル作成の速度 テストデータとかを回す時の速度
SVM 目的関数が常に凸になるので、最適化が比較的簡単。 データが増えると負荷も増えて大変になってしまう。
NN 尤度関数がもはやモデルパラメータの凸関数とならない。そういうわけで最適化が大変。 新規データをすばやく処理できるという利点がある。

フィードフォワードネットワーク関数

式(5.1)
y(\mathbf{x},\mathbf{w})=f\left(\sum^M_{j=1}w_j \phi_j(\mathbf{x})\right)
が分かりずらかったりしたんだけど、基底関数に関して線形になっているということ。P226の最後のほうに「ここでf(\cdot)はクラス分類では非線形活性化関数であり、回帰では恒等写像である」と書いてある付近を読み逃していて、途中ではまるなどしていた。あとで分かってきたんだけど、非線形基底を取れば、非線形変換はもう一度かます必要がないということなのかな。というか、分類のやつは0-1の間で返さないといけないから、そっちは特別にもう一度0-1の間に押し込めるような非線形関数をかます必要がある、と考えたほうがいいのかもな。

式(5.1)は最終的に2層のNNだと(5.9)式
y(\mathbf{x},\mathbf{w})=\sigma\left(\sum^M_{j=1}w^{(2)}_{kj} \left(\sum^D_{i=0}w^{(1)}_{ji}x_i\right)\right)
という感じになる。言葉で書けば、「線形和→非線形変換→線形和→非線形変換」というような感じになっている。この式は解釈として図(5.1)のようなネットワークと考えることができて、こういうのを情報の順向き伝播(forward propagation)というらしい。あとのバックプロパゲーションを予想させますね。

あとは

  • 層を飛び越えた結合も考えられるけど、そういうのも上のやつで考えられるよね
  • 多層パーセプトロンってかなり関数の近似能力高いよね

などなどのトピック。

重み空間対称性

なんか分かったような分からなかったような感じのところ。活性化関数が奇関数になっていて、一部の重みの符号を反転させても、ネットワークが表わす入出力関数は変化しない→同じ入出力を表わす2つの異なる重みベクトルを見つけることができる、とある。対称性があると言っているんだけど、なんか例がないとよく分からないところである。。。

あと、同じ入出力なものがあるということは、(あとでパラメータ最適化するときとかに)解が一意でないということだと思うんだけど、どっちのほうがいいとかそういう問題は怒らないのだろうか。と疑問に思っていたら、「ただし、5.7説では、このことを考慮しなければならない状況に遭遇する」とあった。ふむ。

ネットワーク訓練

いつものごとく二乗和誤差関数の最小化の流れから。でも、tを確率的に解釈すると多くの利点(どういうのでしたっけ→P44のところかな)があるよね、ということでそっちのほうこうに持っていく。予測したい変数tがxに依存すう平均を持つガウス分布に従うと仮定した場合(こういう状況)を考える。

P233の終わりからP224の頭にかけて「(5.12)で与えられる条件付き分布に大しては、出力ユニットの活性化関数は恒等写像に取れば十分である。というのは、そのようなネットワークで任意の\mathbf{x}からyへの連続関数を近似できるからである」と書いてあるんだけど、根拠がよく分からない。

とりあえずそういうことにしておいて、i.i.d.サンプルな観測地からの尤度関数を考える。負の対数尤度を取ると(5.13)式
\frac{\beta}{2}\sum^N_{n=1}\{y(\mathbf{x}_n,\mathbf{w}) - t_n\}^2 - \frac{N}{2} \ln \beta + \frac{N}{2} \ln (2\pi)
が得られて、この中に二乗和誤差関数が登場してくる。確認的な意味合いだけど、「尤度関数を最大化すること」と「誤差関数を最小化すること」は同値な命題ではないよね?

式(5.13)を最大化するわけだけど、まず
E(\mathbf{w}) = \frac{\beta}{2}\sum^N_{n=1}\{y(\mathbf{x}_n,\mathbf{w}) - t_n\}^2
について最大化して、それを利用して、\betaのほうも出していくという形を取る。\betaのほうを最初にやって、\mathbf{w}を出してもいいんじゃないかなーと思ったけど、\betaのほうを最初に出そうとすると\mathbf{w}も入ってきてしまうので、\mathbf{w}から求めたほうがいいんじゃないのか、という感じでした。

2クラス分類も同じような条件付き分布の形で考えていくと式(5.21)
E(\mathbf{w}) = - \sum^N_{n=1} \{t_n \ln y_n + (1-t_n) \ln (1-y_n)\}
が出てきて、これは交差エントロピー誤差関数(cross-entropy error function)になる。この名前は3章か4章に出てきたので、あとで確認しないとだな。

で、これを拡張してやったK個の異なる2クラス分類問題というのも考えることができる。これはマルチラベルを付けられるような状況(いくつ属してもいいような場合)であって、あとのほうの1-of-Kのほうとは違うということに注意しないといけない。どれか一つに属するというような標準的な多クラス分類問題(これが1-of-Kというやつ)も同じように誤差関数を考えるんだけど、出力ユニットの活性化関数はソフトマックス関数
y_k(\mathbf{x},\mathbf{w}) = \frac{\exp{(a_k(\mathbf{x},\mathbf{w}))}}{\exp{\sum_j(a_j(\mathbf{x},\mathbf{w}))}}
を与える。

こういう感じで、解くべき問題の形によって

問題 使う関数
回帰問題 線形出力関数と二乗和誤差関数
2クラス分類問題 ロジステックシグモイド関数および交差エントロピー誤差関数
多クラス分類問題 ソフトマックス関数とそれに対応する多クラス交差エントロピー誤差関数

おちう感じに使いわける。

パラメータ最適化

この辺はアルゴリズムな感じの話だからまあ書かなくてもいいか。

局所二次近似

誤差関数を二次関数で近似して考えましょうというよくある話。ああ、ヘッセ行列、正定値。。。

話の流れとしては、(5.32)式のあたりで一回切れる。そこから行列の一般的な性質の話になって、それを使ってあげると(5.32)式は(5.36)式のように書ける。この辺ではヘッセ行列は一般に正定値とは言えないけど、正定値じゃなかった時はこれはどうするんかね?ということがトピックに上がっていたと思う。なんかこの辺の十分条件と必要条件は書き出したほうがいいのかね。

関連

www.yasuhisay.info
パターン認識と機械学習 上

パターン認識と機械学習 上

  • 作者: C.M.ビショップ,元田浩,栗田多喜夫,樋口知之,松本裕治,村田昇
  • 出版社/メーカー: 丸善出版
  • 発売日: 2012/04/05
  • メディア: 単行本(ソフトカバー)
  • 購入: 6人 クリック: 33回
  • この商品を含むブログ (18件) を見る