第2回/第3回集合知プログラミング読書会

もはや議事録ですらないメモ書きですが。

題材

集合知プログラミング

集合知プログラミング

第2回

日時 2010/01/31 10:00 - 12:00
場所 都内某所
挑戦者 id:marqs id:daisukebe id:shiumachi
今回の範囲と担当
範囲 担当 資料
5章 id:shiumachi http://www.slideshare.net/shiumachi/programming-collective-intelligence-100131
4章 id:daisukebe Coming soon...
質疑応答:4章 ニューラルネットワーク
  • 最初のコネクションは全くないの?
    • 学習が前提なのでないということはない
  • hiddenノードは自分で定義するの?
    • そうなる
  • 実際にはどういうとこで使われている?
    • カーナンバーの認識や新製品のユーザビリティテストに使う

第3回

日時 2010/02/13 10:00 - 12:00
場所 都内某所
挑戦者 id:marqs id:daisukebe id:shiumachi
今回の範囲と担当
範囲 担当 資料
6章 id:shiumachi http://www.slideshare.net/shiumachi/programming-collective-intelligence-100213
7章 id:daisukebe Coming soon...
8章 id:marqs Coming soon...
k近傍法

id:marqs がk近傍法のサンプルプログラムを用意。
当初重みづけしてなくて精度がいまいちだったが、その場でみんなで単純なy=1/xで重みづけしてみたところ、結構精度が上がって驚いた。

感想

リコメンデーションとかスパムフィルタといった、現代のwebサービスやプログラムではありふれている「魔法のような技術」を簡単に作ることができるという点ではすごく面白かったです。
とはいえ、理論的ことが詳しく書いているわけでもないので、あくまで入門書という位置づけだと感じました。ここから先は自分で頑張ってね、という感じ。
特に9章のSVMなんかは理論的背景ゼロでただ使うだけなので、真面目に勉強するには適しません(だからこの勉強会は8章までで終了)
また、データの保存やら計算量やらを全く考慮していないソースコードなので、単にコピペするだけでは通常のシステムにおいては使い物になりません。
私の場合はPHPで実装していたのでそもそもソースコードほとんど読まずに自分で一から実装してました。

このデータと計算量の問題は、この「集合知プログラミング」に書いてあるような情報処理を行うにあたって避けては通れない問題です。扱うデータにもよりますが、データ量も既存のベタなWebアプリケーションに比べて軽く1,2桁増えることもあります(実際手元で動かしたときは、ちょっとしたデータだけで数百MB〜数GBいきました)こうした技術を使ってシステム組もうと思ったら真面目に設計する必要があるでしょう。(ディスクを増やすか、アルゴリズムを軽いものに変えるか)

それにしても、データマイニングの世界は面白いです。id:marqsが、「これからの時代は全てのエンジニアがデータマイニングの技術が必須になる」なんて言っているのも頷ける話です。一昔前は研究者がスパコンを使って実施していたのでしょうが、今はスパコン並のノートPCがあり、「集合知プログラミング」のような技術書が簡単に買えます。毎日たくさんのデータに触れているITのエンジニアがこうした技術を身につけたら、世界はもっと面白くなるでしょう。

次回から新しい本

次これやります。

Unix/Linuxプログラミング理論と実践

Unix/Linuxプログラミング理論と実践

3/6(土) 10時から

場所は不明。みんなでディスプレイ見ながらわいわいコーディングするみたいなことしようかなと考え中。