エンジニアリング界をリードする著名人が「いま話を聞きたい」開発者を直接指名し、日頃なかなか聞けない開発トピックについて語り尽くすオンライントークセッション「DevLounge.jp」。
Session A-1では、機械学習に詳しいエンジニアでありライティング活動もしているpiqcyこと久保隆宏氏が、「あらゆる機械の自動化」を目指す株式会社DeepXの代表取締役CEO那須野 薫氏を迎え、機械学習のなかでもやや特異な特徴を持つ手法「強化学習」について語り合います。
「強化学習から得た人生の知見」というやや重めなテーマが与えられると、那須野氏がこれまで研究開発に携わったなかで得た知識や感覚、piqcy氏が強化学習に関する取材を通じて感じ取ってきたことなど、興味深いお話が次々と飛び出すことに。ここではそんなトークセッションの一部をダイジェストでお届けします。
piqcy(久保 隆宏)
企業のESG評価に自然言語処理を用いる研究、サービス開発に従事。予測や評価などいままでのシステムでは支援しきれなかった業務に機械学習、自然言語処理を活用すべく活動中。TIS株式会社戦略技術センター所属。機械学習に関するニュースや情報を週刊新聞的にまとめてニュースレターを送る「Weekly Machine Learning」運営。著書に「機械学習スタートアップシリーズ Pythonで学ぶ強化学習 入門から実践まで (講談社) 」など。
那須野 薫
東京大学工学部を卒業後、同大学大学院工学系研究科修士課程を工学系研究科長賞を受賞し卒業。東京大学松尾研究室にて、ビッグデータ解析、機械学習、ディープラーニング技術の応用研究等、幅広い研究開発に従事。松尾研究室にて博士課程在籍中に、人工知能技術を応用して社会課題の解決に貢献したいという思いから、2016年4月にDeepXを創業し、代表取締役Chief Executive Officerに就任。
強化学習という変わりもので扱いづらい手法
piqcy:本日のテーマとして掲げられている「強化学習から得た人生の知見」に入る前に、まずは「強化学習とは」ということから始めようと思います。那須野さんから、強化学習というものについてご説明いただけますか?
那須野:はじめに、ここ10年20年で機械学習技術が注目されるようになった理由からお話します。まずここ20~30年かけてインターネット技術が伸びてきて誰もが情報にアクセスし、アップロードをすることができるようになって、いわゆるビッグデータが蓄積されるようになりました。また、そうした大きなデータを処理できる計算基盤も整ってきました。
で、通信と計算という2つのコアな技術が進展してきたなかにちょうど機械学習というものがあります。その機械学習のなかに、「教師あり学習」や「教師なし学習」、「強化学習」というものがあり、このなかで強化学習は「けっこう変わりもので扱いづらい」と言われています(笑)。
教師あり学習というのは、ある画像があってそれが犬なのか猫なのかを判定したいというときに、画像と「これは犬です」という正解のラベルを用意する。そうした教師データを使ってAIに学習させていくわけです。
ところが強化学習は違います。強化学習には「報酬関数」というものがあって、報酬を得るためになにをすべきか、なにをすると褒められるのかということをAIが試行錯誤しながら学習します。ある状態のときにどういう行動をとるのが一番いいのかを最適化していく。直接的というよりは、少し間接的な形で学習が進んでいくので、そこが扱いづらいと言われるゆえんかなと思います。
piqcy:私は強化学習についての書籍を書かせていただいていますが、強化学習ってゲームを使ってトレーニングをして人間よりもハイスコアが出た、といった例がよく取り上げられます。で、「面白かったね。以上」みたいな(笑)。そこから先の、強化学習をビジネスに応用した例はないのかなとずっと探していました。そこで出会ったのが那須野さんのDeepXという会社です。DeepXさんは強化学習を使ったロボット制御の自動化などに挑戦されていますが、実際に強化学習で現実世界のロボットを動かす・自動化することの難しさ、またその効果を伺えますか。
那須野:たとえば我々の会社では油圧ショベルという、建設現場で使われる機械を扱っています。この油圧ショベルがどういう状態のとき、どうレバーを動かすと目的に沿った動きをしてくれるのかは、必ずしも自明ではないんですね。というのも油圧ショベルは油の圧力で動くので、気温が違うだけで油の流れが変わってくる。同じようにレバーを動かしても同じようには動かないという性質があるんです。人間の場合、いまどれだけレバーを倒すとこういうふうに動いているから、という「なんとなく」で動かし方を調整しています。
ということは事前に決められた「ある状態のときにはこう動かす」という教師データを並べても、必ずしもうまくいかないわけです。それより全体として掘るという目的を達成できていたらいいよねという。一瞬一瞬に合わせにいくわけではなく、全体の動きとして掘るということができていたらいい、そういうときに使えるのが強化学習です。
DeepXでは、そうした「自明ではないけれども人間がなんとなくやっていて、動かし方を記述するのが難しい」ということを、強化学習を使って実現させようとしています。
「Sim-to-Real」で成果が得られるように
piqcy:強化学習はシミュレータのような、何回でもトライ・アンド・エラーができる環境で学習させないと上手くいかないですよね。また、学習結果の再現性がないとやりづらいという特性もあります。コンピュータのなかでシミュレーションするだけでも大変なのに、現実世界でトライ・アンド・エラーをやろうとすると、万が一油圧ショベルのアームが人間に当たると大変ですし、何千回何万回動かすことで多くの電力や燃料がかかって大変ですよね。
那須野:そうなんです。実際に機械を動かすのは時間も費用もかかります。我々も実機での強化学習にチャレンジしていた時期がありますが、油圧ショベルで固い土や柔らかい土などいろいろな環境を準備したいとなったときになかなか難しいという壁に突き当たりました。固さは掘ってみないとわからないんですが、掘っていたら柔かくなるとか、または掘ってまた掘り直すには埋めなくてはならないとか。これらは強化学習領域でよく言われるんですけど、現実空間でタスクを用意するのが非常に難しいんです。
また、強化学習を続けているとある時期までは伸びていきますが、たまに学習に失敗して報酬ががくんと落ちることがあります。そのまま再スタートするのか、前に戻ってやり直すのかとか、いろいろな問題があって結論としては上手くいかなかった。
であれば、やり方を変えようと。まずシミュレータのなかで機械制御アルゴリズムを学習させて、次にそれを実機で試すという「Sim-to-Real」というアプローチでトライするようになりました。いまはこのやり方で学習したAIが現実で機械を動かせるようになっています。
piqcy:現実世界に即したシミュレータを作るのも難しいと思うのですが、どういうふうにされているんでしょう。
那須野:確かに「どこまで現実に近似させるのがいいのか」という判断は難しい。現実を簡素化して高速に計算できるようにするのがシミュレータです。必ず要素を捨象、つまり削っていると。そこで削っていい要素と、削ってはいけない要素があって、どこまで現実に近づけていくとシミュレータとして十分かは、正直やってみなければわからないんですね。
そのような取り組みを何年か続けてきて、ようやく上手くいき始めている状況です。油圧ショベルで言うと、油圧ショベルの動きには再現性がない、その再現性がないということをシミュレータに反映させるかさせないかで違ってくる。反映させていないシミュレータで学習したAIは、当然ながらレバーを倒せばいつでもその分だけアームが動くと信じているんです(笑)。しかしそれだと実機に持っていくと失敗する。人間が考えてわかりそうな要素は大体シミュレータに入れていく。具体と抽象の行き来を続けるということがポイントなのかもしれないですね。
将来の報酬を見据えて目の前の選択をする
piqcy:強化学習のやり方って、人間の学び方と通じるところがありますよね。
私が感じるのは、強化学習では報酬を目指して学習をしていくわけですが、エージェント(ある条件下で行動する主体)は基本的にあきらめない。その姿を見ていると、学習をするときはあきらめないことが大事なのかなと気付かされる(笑)。
あと印象的だったのは、強化学習のアルゴリズムのなかに「割引率」というものがあります。割引率は将来もらえる報酬をどれだけ現在の価値として感じられるかを示すパラメータで、割引率が高いほど将来の報酬を現在の自分の報酬として感じることができる。これがある程度高くないと上手くいかないんです。
人間でも将来目指す報酬があるときに、それが「目の前にある」と感じることが学習するときには重要なのかなと。
那須野:おもしろいですよね。別の言い方をすると、目の前にニンジンをぶら下げて走らされるのは限界があるんですよ(笑)。なかなか高みには行けない。
piqcy:一方であまり遠い報酬だと上手くいかないっていうのもあります。最近の研究では遠い報酬の場合には内発的な報酬がないと前に進めないため、エージェントに「好奇心」を与える技術もありますね。なるべく新しい状態にチャレンジする、という内発的な報酬を設定する。すると途中であきらめずに、最後の遠い報酬にたどり着ける。遠いところを目指すには、チャレンジするための自分の内部的なモチベーションが必要なのかな思います。
那須野:そこもアナロジーが感じられるところですね。見たことのないところにチャレンジして、それによって目の前の壁を突破する。
その観点で言うと、教師あり学習と強化学習という大きな区分けで考えると、学校教育は教師あり学習に近いんですよね。ある問題に対して「こう回答しなさい」と答えが与えられて、みんな「それを覚えて答えればいい」と理解する。ですが、いざそれを別の目的に使おうとしたときに上手く使えない。学校の成績がよくても、ビジネスシーンでそのまま優秀かというとそういうわけじゃない。
これは機械制御の領域ではよくある話で、昔から言われていることでもあるんですけど、たとえば熟練オペレーターの操作履歴を丸々機械に覚えさせるとします。すると上手くいきそうな気がするんですが、実際は全然上手くいかない。結局それはデータの量やバリエーションが足りないということでもあるんですが、それだけじゃなく「こういうときはこうやっておけばいい」という指示だけでは現実では上手くいかないんですよね。
大事なのは、ある状態のとき本来の目的である「高い報酬を得るにはどういうアクションしたらいいのか」がわかっているかどうかです。最終的なゴールを見据えた上で、「次に足元でなにをしなければいけないか」を設計できるということが強化学習でも必要だし、現実でも大事になってくると思います。
短絡的報酬のワナから抜け出すのはAIも人間も難しい
piqcy:強化学習のエージェントも報酬が得られやすいルートを走りがちで、一回チャレンジして、このルートは報酬が得られそうだから常にそっちに行っちゃう。でも、そこは本当のゴールじゃない。こういうところは、人間でもあるなと感じるんですよね。
実際、アルゴリズムのなかでもチートプレイみたいな、短絡的に報酬が得られやすいところにハマって出られなくなるという状態があるので、そこから出るのはアルゴリズム的にも難しいし、人間にとっても難しいと感じます。
那須野:まさにそうだと思っています。「上手くいくだろう」というところを突き進んでいくと、ローカル最適に陥ってしまう。考えている範囲内だとそこは最適だけど「すごく息苦しい」みたいな。人間もそこを抜けるのは大変ですが、私の場合はそんなときに、いままでやってこなかったことをとりあえず考えずにやってみます。また、ずっと前にやってダメだと思ったことでも時間が経っていたらやってみる。この2つをやっていた時期があり、人生の幅を広げてくれるいい期間でした。
piqcy:そのメソッドはまさに強化学習のアルゴリズムのなかにもある「探索と活用」という考え方ですよね。
那須野:そうですね。そこは非常に重要なポイントで、探索しないとやっぱり伸びない。もしかしたら自分が間違ってるかもしれないと考え、新しい道に足を踏み入れると、想定していなかったような結果が得られる。幅が広がって、今度は身構えずに一歩踏み出せると。
で、社会はよくできているので、大体の場合は死なずに帰ってこれる(笑)。ちょっとバカになった感じで、スティーブ・ジョブズ的に言えば「stay foolish」ということかもしれない。あまり考えずに一歩踏み込んでみると幅が広がってよりよいチャレンジが次にできる。そういうことなのかなと、私はポジティブに捉えています。
piqcy:現実世界で生きている我々もエージェントだという考え方は当然あると思うんですが、それで言うと現在の新型コロナウイルスの影響というのは、強化学習というフレームワークで捉えるとどいう状況だと考えていらっしゃいますか?
那須野:マクロに見るとシステムが変わったということだと思っています。身近な例だと、前は辛いことあったら友達と会ってお酒を飲むと回復して元気になれた。それがいまはなにか別のアクションを考えなければならない。というふうにシステムが変わったためにリカバリする方法を新たに考えるというようなことが起きていると思います。
piqcy:強化学習のなかでは「転移学習」というのも話題になっていますね。いままでの環境から似た、別の環境に我々が転移しなければならない状況になっているのもしれないですね。仰るように前とはシステムが変わって通用しなくなったアクションや新しいステートが出てきたときに、「我々にはどんな転移ができるか?」ということを試されているのかなと思ったりします。
那須野:まず状況が変わったことを適切に捉えられるかですね。おそらく今後10年20年はもっと世の中の変化のスピードが速くなっていく。じゃあ我々エージェントはどんな能力を持たなければならないのかということが試されていますよね。
世の中が変化すると自分も変化しないと、自分はどんどん役に立たなくなってしまう、適応できなくなっているということなので、そこは注意しなくてはならない。強化学習訓練でも環境を少しずつ変えていくという学習のさせ方がありますが、そうするとエージェントが学ぶスキルも変わっていきます。新しいスキルを身につけないと報酬が得られず、学習に失敗してしまうんです。その変化についていく、あるいは変化を超える形で過去の自分を置き換えていくことがが、いまのこの状況下では大事なのかもしれないですね。
piqcy:なるほど。というあたりで、今日のお題である「強化学習から得た人生の知見」という話に近づけたかなと思います。本日はありがとうございました。
当日のアーカイブはYouTubeでも配信中。イベントレポートではお届けしきれなかった話が盛りだくさん。気になった方はチェックしてみてください。
次のセッションはこちら
前のセッションはこちら
イベント詳細はこちら