シンガポールでアジアのエンジニアと一緒にソフトウエア開発をして日々感じること、アジャイル開発、.NET、SaaS、 Cloud computing について書きます。

機械学習

»

 シンガポールの大学でバイオ・インフォマティクスの修士課程の勉強をして1年、最終の試験もぎりぎり及第点を取れて、そろそろ僕の中年学生の1年も終わろうとしている。そこで、ITエンジニアに生物学を解説しても誰も興味がないだろうから、バイオ・インフォマティックスの一環として学んだ「機械学習」について、何回かに分けてコラムを書こうと思う。コラムだから、さらっと読み流せるものでないといけないが、かなり難しい。しかし、やってみる。

 実は、僕は現在、大学にパソコンと机を与えられて卒業研究をしている。普通マスターの学生には、そういう環境は与えられないのだが、たまたま当たった指導教授の学内での政治力の関係か、ここで『研究』をしている。実は、周りはphD、つまり博士号の学生ばかり。

 僕が在籍する学部は生物学科ではなく、情報処理の学科なので、みんな情報処理のphDを目指して、連日連夜休みなく、日夜パソコンの前で格闘している学生だ。ほとんどは中国からの留学生。

 彼らは、どんなことを研究しているのか? 実はほとんどは、この機械学習に絡むことをやっている。もちろん学生ごとに微妙に違う。グラフ理論を絡めて体内のたんぱく質の挙動を予想してみたり、時系列のデータを学習させて将来に証券市場で何がおこるかを予想してみたり、自律ロボットが自分で判断して動くため、周りの状況をパタン認識させたり。

 つまり、みんな基本はいわゆる『ビッグデータ』を機械学習で分析するような内容。ビッグデータが体内のたんぱく質間の連携だったり、証券データだったり、マーケッティングデータだったり、周りの視覚情報だったりするが。

 現在、現役のITエンジニアの中で機械学習を使って何かの開発をやっているような人はあまりいないかもしれないが、これからどんどんそういう分野の案件が増えてくるのは確実だと思う。何しろ、世界何十億人の人の日々のネット上のやりとりがすべてデータとして蓄積されていく昨今、宝の山がそこにあるのは確かなのだから。もちろん、機械学習の応用はネット上に蓄積されているデータの分析だけではなく、僕が今回大学で機械学習を学んだように生物学。さらに、自律ロボットや、自動車の自動運転、経済の予測、もしかしたら天気予報?など、応用分野は現代の産業のいたるところに現れる。

 機械学習は、基本的にアルゴリズムの集まりで、何かの現象のデータを機械つまりコンピュータに入力して、そのデータを基にコンピュータに必要なパラメータを推論させ、その後そのパラメータを使って、ものごとの判断をコンピュータにやらせようとするものだ。機械にデータを入力して『学習』させるわけなので、『機械学習』だ。しかし、今では、本当にAIと言ってもいいぐらいの応用ができる分野ゆえに、名前の野暮ったさをぬぐいきれない。

 機械学習を勉強していて最初に紹介されるのは、回帰分析。日本では、中学もしくは高校で習うのではないだろうか。縦軸に予測したい何かの数値を当てはめて、横軸に予想に使う数値を当てはめて、グラフ上に観測データをプロットして、そのプロットに最も近い直線を求める。直線は普通は、最小二乗法で求める。

 世の中で、行われる科学的分析、その他の説明でたいてい使われるグラフだ。誰でも直感的に理解できるゆえ、特に一般向けに科学を説明する時には不可欠のグラフだ。例えば、福島第一の事故以来、日本のマスコミで取り上げられない日がないぐらいのグラフが下のグラフ。

Graphsample

 被爆量とそれによる人体への影響を表すグラフ。このグラフでは、実データはプロットされず、その実データから回帰分析の結果得られる直線もしくは、曲線を表示しているだけだが、上のグラフにもそのグラフを予想するために必要だった実データが必ずあることを注意すべきだ。その点で少し問題があるのが、上の図中の下側のグラフ、つまり『確率的影響のグラフ』の点線の部分。『仮定』と書いてある部分。実は、この部分のデータは存在しないのだ。というか自然の放射線によるノイズの影響があまりに大きく、信頼性を置けるデータを採取出できないのだ。サイエンスの世界で、データから何かを回帰分析するとき、やってはいけないことの1つとして紹介されるのが、このExtraporate(外挿)というやつで、上のグラフはまさにそれをやっている。測定できない範囲まで、測定できた範囲で予想した直線を引き伸ばしているのだ。

 多分、低線量のデータはないが、何かの結論を引き出さなければ原子力の応用が前に進まないということで、本来はやってはいけないことを仕方なくやっているわけだ。上のグラフは、しっかりと『仮定』と注意書をしているので良心的だが、そうでないものも多い。

 ちなみにこの点線の部分、つまり低線量の被爆による体への影響の、本当のところはどうなのか? データがないため定説はまだない。しかし、3つの説がある。

 1つは、上の図の下側のグラフのように体への影響は直線的に減っていくという説(LNT仮説)。現在の日本政府はこの説を採った形で法律を制定している。一番安全性を重視する説なので、それはそれで政府としては正しい判断なのかもしれない。

 もう1つは、実は低線量での影響は、上図の上側のグラフ、つまり『確定的影響のグラフ』と同じで、ある一定以下の線量からは影響は限りなくゼロになるという説。

 そして、最後に、実は『低線量は体に良い』つまり、ホルメシス効果の説。ちなみに僕はホルメシス効果を信じる。生物をいろいろと学んだが、知れば知るほど、生物は体を外部の影響から守る仕組みを高度に発達させていることが分かる。太古の昔、地球は高濃度の放射線にまみれていた。現存する地球上の生物はすべてその時期を乗り越えて進化して来たわけで、多少の放射線の影響から体を守る仕組みがあるはずだ。

 だいたい、酸素と言う非常に危険な元素を使ってエネルギーを得ている生物である。放射線により発生するフリーラジカルと、酸素により発生するフリーラジカルも同じもの。結局のところは両者は同じぐらい危険なのであって、酸素のよるフリーラジカルの影響もなんのそので生きている我々は、放射線起源ののフリーラジカルも同じく、うまく対処しているに違いないのである。多少の『ばい菌』にまみれながら生きているのが我々であるのと同じように。

 機械学習と関係ない話を長々と書いてしまった。機械学習の最も初歩について紹介した後、一気に最も最先端の応用を紹介する。

 ということで、Googleが開発中の車の自動運転の機能。下の映像を見てほしい。車の屋根につけられたレーザ光の反射、そしてフロントグラスにつけられたカメラの映像情報などの情報の処理法を機械学習のアルゴリズムで学習させ、見事にサンフランシスコの公道を自動運転している。

 

Comment(2)

コメント

機械学習、興味があれば、このあたりから読んでみれば良いと思います。

http://gihyo.jp/dev/serial/01/machine-learning/0001

英語が出来て、本気なら、ここらああたり。ついて行くには
気合が必要。

http://www.youtube.com/watch?v=yDLKJtOVx5c

スタンフォードの講義 

http://www.youtube.com/watch?v=UzxYlbK2c7E&feature=list_other&playnext=1&list=SPA89DCFA6ADACE599

スタンフォードの講義の方はどうやら、無料で宿題の採点もしてくれる
らしい。

http://blogos.com/article/5952/

コメントを投稿する