catalinaの備忘録

ソフトウェアやハードウェアの備忘録。後で逆引きできるように。

色々と本を読んでみた

桜の花も散ってしまって春から夏へと季節の移り変わりを感じます。かたりぃなです。
タイトルどうしようかと考えましたが、記事の内容が整理しきれない気配なのでここで一旦投稿としました。

図書館を歩いていてふと開いた本で新しい世界が開けました。
こういった不意に得られる情報というものが私はとても好きです。電子書籍にはない良さです。
デジタルに比べてアナログな書籍の良いところは

  • ふとした瞬間に有意義な情報が得られる偶然性(目的以外の一見ノイズとも思える情報の中から得られるものもある)
  • 人間の脳のアナログな記憶にアナログな本はマッチしている(何度も開いてクセがついている、後半のほうといったアナログな参照ができる)

だと思っています。

少し話がそれましたが、今回はニューラルネットワークの続きを少し調べてみたので簡単に整理してみようと思います。
脳科学については専門外なので解釈が乱暴で厳密性・正確性に欠ける部分が多々あると思いますが、ここでは機械学習(そしてディープラーニング)について理解することが目的なので正確性は犠牲にします。私にとっては脳をコンピュータ上で再現することが目的ではありませんので。
ニューラルネットワークの基本概念はこれで一段落にします。

ニューラルネットワークにおける教師無し学習

特徴抽出細胞(feature-extracting-cell)

色々と文献を漁ってみたところ、動物はどうやってものを認識しているのかという生物学的な話にまでさかのぼるようです。
まず「特徴抽出細胞」とはネコを使った実験で発見されたものらしいです。
その昔、ネコの脳の視覚野と呼ばれる部分に特定の傾きのスリット光に反応するニューロンが発見されたそうです。
またスリット光に反応するニューロンは集団をなしていて、ニューロンが反応するスリット光の傾きは連続的に変化していた。と。
なんか日本語おかしいですね。。。
どうやらこれを機械学習の観点から応用したらしく、ポイントは

  • 学習モデルの構造として単純な入力処理だけを行う視細胞と複雑な処理を行う視覚野の2つのモジュールに分けられる
  • 視細胞と視覚野の間にニューラルネットワークを構成
  • 特徴抽出細胞は後天的に形成されたものである
  • 特徴抽出細胞は教師無し学習によって得られたもの

だと理解しました。

この視細胞と視覚野を結ぶニューラルネットワークのことをトポロジカルマッピングというらしいです。
トポロジカルマッピングの代表的なモデルとして

  • willshaw-malsburg
  • kohonen

のモデルがあるそうです。

このままではよくわからないままなので、前回の記事のアルファベット認識の例で考えてみます。
機械学習の基本的な概念と歴史を追ってみた - catalinaの備忘録
このときの例の16x16pixel(256次元)のグレースケール画像を使った場合では、我々が画像を認識するうえで当然のように考えているものを落としてしまっていることになります。
もっと具体的にいうと、ピクセル間の距離や並びという概念が抜け落ちることになります。
ここで情報を再構成するための話が、先の生物学の話に出てきた猫のスリット光に反応する視覚野で得られる情報そのものなのですが、視細胞で得られた情報を視覚野で再構成(256次元から二次元に落とす)するための数理モデルのお話のようです。
wikipediaでいうとこのあたりでしょうか。自己組織化写像
自己組織化写像 - Wikipedia

トポロジカルマッピングの理論の中によく表れるキーワードとしてシナプスの競合と協調がありました。

  • 競合とは周囲のシナプスを抑制しあうこと
  • 協調とは周囲のシナプスを興奮させ合うこと

といった意味合いになります。

最近話題のディープラーニングで使われているという畳み込みニューラルネットワークでは、畳み込み層で二次元カーネルによって画像の局所特徴量を得ることに成功しているようです。
局所特徴量を得られているということは、先にあげた単純なニューラルネットワークでは失われていたピクセル間の影響をうまく抽出できているといえます。
ちなみにカーネルと言ってもOSのコアの話ではなく、画像フィルタで一般的に使われるカーネルのお話です。
具体的なカーネルの種類としてsobelやgaussian、laplacianといえば思い出す人も多いのではないでしょうか。
画像フィルタリング — opencv v2.1 documentation

マルコフのモデル

マルコフ性とは、未来の状態は現在の状態からのみ決定され、過去の挙動とは無関係であるとするものです。
情報処理技術者試験の午前問題で単純マルコフ過程が頻出問題だったと記憶しています。
例えば、
ある日の天気が雨であり、翌日が晴れの確率は30%, 曇りの確率は50%, 雨の確率は20%のとき、2日後の天気が晴れとなる確率は?
などです。
実際の出題では曇りの日や雨の日の翌日の天気がどうなるかといった確率をまとめた表と、これが単純マルコフ過程であると限定したうえでの出題なので、単純な確率計算で答えは求められます。

少し複雑なものでマルコフモデルにおいて直接観測されない状態を含むモデルのことを特に隠れマルコフモデルと呼ぶそうです。

このマルコフのモデルをもとに行うシミュレーションがマルコフ連鎖モンテカルロ法として知られていて、マルコフのモデルの下でシミュレーションを繰り返すと、値が収束していくという特性があります。
情報処理の試験が役に立たないと言われるのは、こういった話にまで踏み込まないで簡単な計算問題や概論だけで止まってしまっているからだと思います。

さて、このマルコフ連鎖モンテカルロ法ですが、何に応用できるのかと疑問に思っていました。
色々と調べてみたところ、後述のベイズのモデルにおける推定のための分布を求めるために利用されるようです。
応用分野においてこの2つがセットで語られることが多いのはこういった関係があったからなんですね。

ベイズのモデル

ベイズの定理を使った推測のモデルです。
認識すべき入力パターンがどの母集団から発生したと考えるのが尤もらしいかをベイズの定理をもとに識別します。
事後分布は事前分布と尤度の積に比例するというのが基本的な考えのようですが、まだ理解が追い付いていないので詳細はまたの機会に。

感想と今後の展望

思いっきり話がぶっとびますが、その昔の有名なゲームにCLANNADというのがありました。人生ですね。
ヒロインの一人、一ノ瀬ことみ(ひらがなみっつでことみ。呼ぶ時はことみちゃん)のご両親は物理学者で、この世界を表す数式を研究しているという設定でした。
もしこの現実世界を理路整然とした数式で表現できるとすれば、ディープラーニングの先にあるものはことみちゃんの両親が研究していた数式なのかもしれなません。夢のある話ですね。
とは言っても、我々人類が置かれている事象の内側だけしか観測できないのと同じように、ディープラーニングも与えられた事象に対してのみ働くだけになるかもしれません。

そんなくだらないことを考えつつも機械学習についてもっと知りたいと思ったので、本を買って読みはじめました。
足りない情報や基礎理論は図書館を利用することにしました。

一冊目。ハズレでした。少なくとも私にとっては。
一通りの理論を理解し終えた人が机の上にリファレンスとして置いておくにはいいのかもしれませんが、参考書としての最初の一冊としては情報不足でした。
www.amazon.co.jp

二冊目。図書館で借りて読みました。
確率の基本理論から入って同時分布、条件付確率、そしてベイズの定理へと理論的で分かりやすい本でした。
全部は理解しきれていないので、また復習するときにお世話になりそうです。
www.amazon.co.jp

三冊目。これは買っておきました。
上下巻セットにするとお小遣いがほとんど消えてしまうので、まずは上巻を買いました。
まずは一通り概要を読んでみましたが良書だと思います。
一回読んだだけで全部理解するのは困難なので、演習問題に挑戦しつつじっくり読み進めたいと思います。
www.amazon.co.jp

その他。
図書館で借りて読みました。
3Dグラフィックの行列とベクトルで詰まった人におすすめしたい本です。
上記のパターン認識の本を読んでいると行列やベクトルの計算が出てくるのですが、正直ほとんど忘れてしまっているのでちょっと時間をとって復習してみました。
この本はただの行列の計算方法だけでなく、基底や直交(一次従属、独立)の話から始まり、ベクトルを異なる基底へと変換する……いわゆる座標変換まで丁寧に解説されていました。
行列を習った学生の時分、何の使うかわからない面倒な計算が本当に苦痛で、便利になるどころか計算の手間が増えただけじゃないかとすら思ってました。
3Dグラフィックの分野では必須ともいえるものですが、この「計算が面倒」という先入観も相まって、当時最新鋭のPentium100MHzのPCで行列の乗算なんて重い処理を避けて、どうやって高速化するかなんて考えてました。
上京してきたばかりの貧乏学生には3Dグラフィックアクセラレータ(今でいうGPU)なんて高級品、手が届くはずもないので。
そんな過去を振り返りつつ楽しく読めました。
www.amazon.co.jp

今回はこれくらいで。