先日のBuild 2013カンファレンスで,Microsoft ResearchのJames McCaffrey博士が,ニューラルネットワークを紹介する面白い講演を行った。タイトルでは"Visual Stduioを使ったニューラルネットワーク開発"とVisual Studio(VS)に限定しているが,実際はニューラルネットワーク(Neural Networks/NN)について学びたいと思う開発者すべてを対象とした内容である。博士は数学者だが,この興味深いプレゼンテーションでは,コンピュータサイエンスのバックグラウンドを持つ開発者を対象としている。
博士のアプローチは,ニューラルネットワークの概念への入門として役立つものだ。受講することによって,さらなる学習のための基礎の確立が期待できる。講演は,博士の提示するサンプル問題を中心として行われる。取り上げられた問題は,年齢や収入,性別,宗教をベースとして,個人の政治的指向を予測する,というものだ。フォローが簡単であること,NNを用いた実践的アプリケーション例であること,という2つの点から,このアプローチは有効なものだった。
講演の中で博士は,ニューラルネットワークを活用するための7つの中核概念,と自身が呼ぶものに言及している。
- フィードフォワード
- アクティベーション
- データのエンコーディング
- エラー
- トレーニング
- フリーパラメータ
- 過剰適合
博士の観察によれば,ニューラルネットワークの初学者の多くは,信頼できる資料の欠如という壁に突き当たっているという。この問題に対して博士は,信頼に値する情報ソースと自身が認めたものをリストアップすることで対処を図っている。テーマに対する博士の熱意は明白だ。しかしその一方で,NNベースのアプローチの強みと弱みを併記することによって,博士はこのようなリアクションを抑制もしている。さらにはニューラルネットワークの代案を6つ挙げた上で,解決すべき問題に基づくにはこれらの方が適しているかも知れない,という説明も加えている。
講演の最後に博士は,聴講者が実験を継続できるように,実際に動作するC#コードをニューラルネットワークのサンプルとして提供している。この例では,機械学習プログラムでは一般的なアヤメの計測値(Iris flower data set)を使用する。(ただし筆者の入手したコピーでは,プログラムをコンパイルするため,756行にセミコロンを追加しなければならなかった。)McCaffrey博士は4月のMicrosoft Management Summitでも同様のプレゼンテーションを行っているが,Buildで行ったものはそのスーパーセットと言ってよいだろう。一見の価値がある。