全脳アーキテクチャハッカソンに審査員&メンターとして参加してきました!レポ

全脳アーキテクチャハッカソンに審査員&メンターとして参加してきました!レポ

Nextremer村上です。

10月8日から10日までの3日間、横浜市の慶応義塾大学日吉キャンパスにて、Nextremerが創設賛助会員となっている全脳アーキテクチャ・イニシアチブ(WBAI)主催の、第2回全脳アーキテクチャ・ハッカソンが開催されました。Nextremerからは、審査員として古川、メンターとして壹岐が参加してきましたので、2人にその様子をレポートしてもらいました。

  • 前半: 審査員としてハッカソンを見て・Nextremer賞受賞チームの紹介(古川)
  • 後半: ハッカソンに3日間参加して(壹岐)

前半: 【古川】審査員としてハッカソンを見る・Nextremer賞受賞チームの紹介

どうも、審査員として参加したエンジニアの古川です。
いきなりですが、まずはNextremer賞の受賞チームをご紹介します。

wbai%e3%83%8f%e3%83%83%e3%82%ab%e3%82%bd%e3%83%b3%e5%86%99%e7%9c%9f
Nextremer賞受賞の落合さん、都築さんチームです(中央2名)記念品として、弊社からはNextremer賞としてアマゾンギフト券をプレゼントさせていただきました。
■「Nextermer賞」受賞アイデアの内容

落合さんは制御系のエンジニア、都築さんは大阪大学の修士の学生さんです。
【手書き文字がいくつか書いてある画像に対し、小さい探索窓を移動させて次の探索窓の画像には何が見えるか?】を予測するというものでした。彼らを選んだ理由としては自分がニューラルネットなどを技術を扱うとき、数学的な仕組みや解き方に重点を置いて開発を行いますが、彼らは脳の働き方に基づいて機能を実現するようなやり方で、これまでの歴史も交えながら発表していた点が自分にとって新鮮だった点が大きいです。

■ハッカソン全体の感想

まずは3日間で何か発表できるものを作るという密なスケジュールをこなした皆さんに拍手を送りたいです。数日しか時間がないと環境構築すらままならないなどの問題が多発して、それをうまく乗り越えて作り上げていったのではないかと思います。うまくいきそうにないときに、まだ続けるのか?別の方向に行くのか?などの要領も必要とされる局面も多分にあったのではないかと思います。

また、受賞チームの他に印象的だったのは、生物的な動作を実現するために時定数を導入したシステムを開発したチームでした。要するにAIにブロック崩しなどのゲームをやらせると、やたら細かく刻んだ動きをするが、それは生物的ではないということでした。より連続的で生物的な動きをさせるために、少しの時間、判断を貯めて閾値を超えたら行動に移そうという考え方だったと思います。

これはスパイキングニューラルネットワークという技術に近いのでは?と感じましたが、同じ考えなのか、たまたま似ているのかはその場の発表では判断できませんでした。どちらにしてもなかなか面白い内容だなと感じました。

後半: 【壹岐】ハッカソンに3日間参加して

メンターとして参加した壹岐です。
今回のハッカソン参加をメンターの視点から振り返ってみたいと思います。

■ハッカソン1日目:顔合わせ

1日目は午後からです。
担当することとなった、Yasunori Ohto(おーとや)さん率いるチームメンバー(Yasunori Ohto(おーとや)さん・野村さん・かみと(@kamito300)さん)と、ここで初めて顔を合わせました。
チームの現状は次のようなものでした。

  • LIS(注1)を使いたい
  • LSTM(注2)を使ってLISのエージェントに記憶を持たせたい
  • ベンチマークとして脱出ゲームをさせたい
  • LISのコードを見ながら強化学習について勉強してきて、LSTMを入れたモデルも作ってみた

深層強化学習に効果的に記憶を取り入れるという課題は重要な課題(注3)です。
方向性は既に決まっているようなので、以下の点を中心にメンバーの皆さんと話し合います。

  • 何を目的としてLSTMを導入するのか
  • 目的のためにはどこにLSTMを入れるべきか
  • どんな問題を解かせたら効果が確認できるか

だいたい話がまとまったところで懇親会の時間になったため、いったん切り上げ。

注1: LIS (Life In Silico)
WBAIで管理されているAIエージェント作成のための基本コード群です。
基本的にはUnityとChainerとLISのコードを入手すればAIエージェントの開発が始められます。
環境を提供するゲームエンジンUnity側のC#のコードとエージェントの行動を決定するPythonのコードからなります。C#側ではエージェントの視界情報(画像)をPython側に送ります。Python側では画像を一般物体認識を行うネットワークであるAlexNetにとおして、中間層(pool5)の内容を特徴量として得ます。なお、この特徴量は空間的な情報も持ちつつ、物体認識に必要な特徴量が強調されたものであると考えられます。特徴量をもとに強化学習でエージェントの次の行動を選択します。
詳しくはLISのgithubのreadme.mdをご覧ください。

注2: LSTM (Long-Short Term Memory)
このブログの読者の方には説明不要かと思いますが、LSTMはニューラルネットワークの構造の一種です。
もう少し詳しくは、通常の入力以外に自分の前回の出力(計算結果)も入力に使うことで記憶を実現するRecurrent Neural Network(RNN)の一つです。前回の出力を入力に使うことはネットワークを複数並べることと等価なため、RNNには昔の入力まで考慮してネットワークの重みを最適化することが難しいという問題があります。その困難を回避するためにいくつかの工夫を施した構造がLSTMとなります。
LSTMより簡単な構造で問題を解決しようとしているRNNがGated Recurrent Unit(GRU)です。私の知る限り、どちらの性能が高いかについては結論は出ていません。最近の機械翻訳などの研究ではGRUが使われている例も見かけます。その要因の一つには、GRUの方が構造が単純なため改造がしやすいことがあると思われます。

注3: 重要な課題
例えばpongというゲームのように環境に反射的に対応すればうまくいくタスクに関しては、ある程度技術が成熟してきているように思われます。タスクの途中で見たものを記憶しておいて、後からそれを思い出して行動を変えるようなものに関しては、発展段階のようです。
この周辺の内容を詳しく勉強して開発したい方は、ぜひWBAIの開発部に遊びにきてください。もちろん、弊社へのjoinも歓迎いたします。

■懇親会

キャンパス(慶應日吉キャンパス)内のファカルティラウンジに移動して懇親会、色々のバックグラウンドの方が参加されていました。学部生のうちに起業を経験して、再び人工知能の分野で起業することを目標に研究されている学生が印象深かったです。帰宅後、一応バックアップとして私も書きます。LISのコード(注4)と対峙したのはLISハッカソン以来ですが、ちょこちょこアレンジしつつ、必要な実装をしていると結構な時間が経過してしまいました。もう、会場に行く時間です(注5)。

注4: LISのコード
今回ベースとしたのはLISのVersion1ですが、今は改良版のLIS2が出ています。
注5: 徹夜はハッカソンの重要なファクターだと思います。

■ハッカソン2日目:

さて、2日目は実装です。まず、LISのコードを詳しく見ていって細かな実装を確認します。続いて、一通り書き換え。その後は、動かしながら、エラーが出るたびにその原因を説明していく形で実装を進めます。今回の場合はもともと書かれたコードの改造ということで、「ExperienceReplay(強化学習の特有の処理)・変数の次元・CPU/GPUのメモリーの使い分け」あたりはバグが出やすい部分でした。

途中、wifiが不安定になって手が止まることなどもありましたが、夕方には何とか動くところまで実装が終わりました。本来はここからハイパーパラメータやゲーム環境の調整を行いたいところですが、今回は今ある環境で学習を試して終わりになりそうです。

wbai_hackathon2_screenshot
Ohtoチームの作成物
緑色の物体がエージェント。白いスイッチに乗ると対応する黒い扉が開いて部屋から出られるようになります

深層学習部分の実装を担当された @kamito300さんのgithubをリンクしておきます。
https://github.com/kamito300/lis_lstm_interest

■最終日:結果発表

最終日。メンバーの皆さんにも疲れが見られました。午後からの発表に向けて、2日間で集められたネタをもとに発表資料の作成です。発表開始30分前に全て終わらせて、後は発表を待つだけです。

審査の結果ですが、Ohtoチームは賞の獲得には至りませんでした。記憶を取り入れた影響が伝わりやすくなるゲーム環境で試せていれば良かったのかもしれません。深層学習でハッカソンをやる場合、一回の学習に時間がかかる中、いかにして試行回数を稼ぐか、難しい問題です。ハッカソンにために強化学習を一から勉強し、発表を成し遂げたチームの皆様、本当にお疲れ様でした。

■まとめ

今回ハッカソンに参加しての私の収穫は、Chainerを使って深層学習をするための細かなノウハウを、これから始めようと思っている方に直接伝えられたことです。WBAIの目標、人工知能エンジニア10000人に、微力ながら貢献できたのではと思います。また壹岐は個人的にSIG-WBAの勉強会に継続的に参加させてもらっています。その繋がりがあったからこそ、今回はメンターという役割をやらせていただけたのかなと思います。今後も社外の方との交流を続けたいです。

ハッカソンの発表に注目すると、若手の会の方やWBAIオフ会のメンバーの方が多く参加されており、高レベルの発表が行われていました。WBAI関係者の皆様がご尽力されている成果があらわれたものだと思います。一方で、これから始めようとして参加された方には、少し厳しいイベントだったのではないかと感じています。今後、人工知能の発展にコミットしたい色々なレベルの人を巻き込んで離さないためには、イベント設計も重要な課題だと思いました。

Nextremerでは人工知能の勉強会も実施しています。
今は論文読み会が中心ですが、入門編の実施など企画のブラッシュアップも検討中です。
Nextremerの勉強会で力をつければ、来年のハッカソンでは賞を獲得できるかも...(壹岐)


以上、Nextremerの古川・壹岐による、第2回全脳アーキテクチャ・ハッカソンレポでした!
今後も人工知能に関する話題を発信していきますので、よろしくお願いします。