集合知プログラミング

機械学習のコンパクトなアルゴリズムのカタログ。


Amazon のレコメンデーションエンジンやスパムフィルタ遺伝的アルゴリズムなど機械学習のアルゴリズムのカタログ的な本。それぞれの機械学習の特性と Python によるコード例があり、コンパクトでありながら実際に動作するものなので手を動かしながら読むタイプの人には良い。

Web2.0(笑)で頻繁に使われるようになった印象がある機械学習だが、学問的には以前から研究されているだけあり多くの手法がある。それらを一気に読むことができるのだがそれだけに理解するのは難しい。

残念なのは各機械学習アルゴリズムの詳細が無いこと。前置きなしに「重み付けを行う」と言われても知識が乏しい者には理解しにくい。フローチャートも無いので Python コードを読みながら理解することになる。初めて Python を読む俺にとっても Python コードはわかりやすく、かつコードも短いので読み解く作業はそれほど困難ではないがフローチャートには負ける。


それにしてもこのようにほんの小さな変数が群れを成すと意味のある結果を出力するということから、脳を創れるのではないかという疑問を持たずにはいられない。新皮質にはシナプスが30兆個くらいあって、シナプス一個は状態を4つしか取らないらしいので2bitで表せる。ということは合計で約7TB。めちゃくちゃ現実味がある数字だ。なんと夢のあること!

ニューロン同士の接続はそれぞれにコネクションを張るとそれだけで膨大なリソースを消費してしまうので、ニューロンが分布している各地域に等間隔に太いコネクションを張ることで解決できる。

あとは時間の概念をニューラルネットワークに持ち込み、得た入力から将来を推測できるようになれば多分脳っぽい処理はできるのではないか?もちろんランダムに各ニューロンをつなげるのではなく新皮質の構造に従って階層構造を持ってさ。時間の概念ってのはどう表せばいいんだろ。これが出来れば良いと思うのだよ。

そう簡単に言っても困難極まりないわけだが脳は始めから言語野や視覚野があるわけではなく、あくまで汎用的な「なんらかの入力に対し意味のある出力を返す」という処理の群れが自己組織化的に言語野や視覚野を作ったと考えれば、おそらくあと数十年で脳と同様の処理システムはできる。つまり、いずれ将来を推測できるシステムが登場する。

もし脳が創れちゃったらコピーできちゃうし入力は肉体に束縛されないし計算する速度も速いしいくらでも大きくできるし、凄いことになるよ。


脳みたいに推測できる仕組みができたら、きっと世の中、トランジスタの発明くらい変わるだろうなぁ。

集合知プログラミング

集合知プログラミング