(大渡勝己氏:後編)独学でゲームAI優勝までたどり着いたエンジニアが語る、プログラミング上達の近道とは?【AI people:vol.5】

インタビュー

「AI people」5回目は、ゲームAIに魅入られてAIエンジニアになった大渡勝己(おおと・かつき)氏にお話を聞いてきました。大渡さんは東大在学中にゲームAIの面白さに目覚め、没頭。卒業後も1年間ニート状態でコードをひたすら書く時代を経て、自身の「大貧民AI」を作り、 UECdaコンピュータ大貧民大会で今年4連覇の快挙を遂げられました。前編では、大渡さんが参加された強化学習の書籍の共同翻訳プロジェクトについて伺いました。

後編では、大渡さんがスキルアップのためにしている取り組みと、ゲームAIの世界の魅力について伺いました。

 

独学での勉強法と、スキルアップのために心がけていること

 

- 大渡さんは情報系専門ですらなかった、とおっしゃいますが、大学卒業後に出場されたゲームAIの大会では優勝成績をおさめられています。プログラミングの知識は独学で学ばれたんですか。

 

大渡 大貧民のプログラムとかは過去のものを参考にしたところも多かったのですが、結構自分で情報を集めながら考えましたね。それと並行して、将棋とか、もっと強いプログラムも読みながら、それをいじるということもやっていました。自分のプログラムを書きながら、人のプログラムを読んでいじるということを並行してやる、という流れで勉強していました。

 

- お薦めの書籍をみなさんに聞いているのですが、何かありますか。

 

大渡 実家にあるので今日は持ってこれなかったんですが、『コンピューター囲碁 モンテカルロ法の理論と実践』。コンピューター囲碁の本で、アルゴリズムや実際に使えるコードなどが載っています。

結果としては、今ではGoogleの『AlphaGo』が出てきてしまったので、そちらが本流なのかもしれないんですけど。

私自身はこの本を読んで「探索」を確率で処理するところにすごく面白さを感じて。何かモノを探すときに、端から順番に見ていく方法がありますが、そうではなく、あたりを付けて見ていく方法もあるじゃないですか。そのアルゴリズムがすごくきれいだと感動して……個人的に確率の世界が好きなので。この本を読んで、ゲームの探索について学んだのは、私は面白かったです。

 

 

- エンジニアとしてのスキルアップの方法にはいろいろあると思うんですけど、心掛けていることや、実践されていることはありますか。

 

大渡 そうですね。私はすごく「外に出ること」を大事にしています。ただ知識を学ぶというよりは、どちらかというと会話することに意味を感じていて。

もちろん他の方のお話を聞くことで得られるものもたくさんあります。疑問を感じたら質問することもできますし。逆に自分から「こういうことやってます」と話すことにも価値があると思いますね。自分の中でもやもやしているものまではっきりさせて話すことで、迷っていたことでも結構自信を持って話せるんだなと気づく場面もありますし。逆に、ここはもうそんなに考えても仕方ないかな、と自分の中で方向性が見えるっていうところもありますし。あとはやっぱり人と話したほうがメンタルが安定しますね(笑)。エンジニアは鬱になっている時間が一番もったいないので。

 

- おお。

 

大渡 「常にテンションを高くできること」に意味があると思ってます。

あと、もう一点言えるとすれば、勉強会などの質疑応答では必ず最初に質問すると決めています。全然知らない学会などに遊びに行ったときも必ず。すごく幼稚な質問になることもあるんですが。

他の人の話を概略だけでも理解して何かコメントする、ということを心がけるようにしています。世の中にある全ての技術を理解するのは難しいですけど、要点だけでもつかめる力が付けばいいなとは思ってますね。

 

- チームAIの勉強会にもいらしていただいたんですよね。どうでしたか。

 

大渡 あまり他に類を見ないコミュニティだと思います。特に外国人の方が多くて、彼らといろいろ話す機会が得られるということだけでも貴重だと思いますね。それが貴重だということ自体がどうなのかという話もあるんですが、すごくいい、ありがたい場所だと思っています。

 

-海外のゲームAI学会にも参加されたことがあるとか。

 

大渡 ゲームAIと一口に言っても、取り上げ方にはいろいろありまして。例えばDeepMind社の『DQN』とか、『AlphaGo』とか、そのレベルのものは機械学習系のトップの学会で発表されるんです。私が参加したのはゲームのほうの学会です。機械学習の最先端を研究し発表するというよりは、ゲームをどういうふうに扱うかという方にフォーカスした学会です。

私が参加した『Advances in Computer Games』ではゲームAI大会も併設されていて、チェスの大会も行われていました。コミュニティとしては、日本、台湾の人が多かったのが印象的でしたね。

 

チェス・プログラミング・ウィキ。大渡さんのプロフィールが掲載されている。

 

- 参加されてみてどうでしたか。

 

大渡 そうですね。10日間ぐらいずっと英語を使い続ける環境に身を置いたのはすごく良かったですね。アルゴリズムなどの議論に及ぶと日常会話だけではないところも話さないといけないので単純に英語力が向上しました。

 それから何が流行りかはやっぱり日本と海外で違うので、俯瞰的に色々と考えることができたのも良い経験になりました。日本で扱っていた技術だけでは見えてこないものも海外に出るとわかりますし。逆に日本でやっていたこの技術をここに使えるんじゃないかなっていう気づきもありますし。みんなが同じ知識を共有しているわけではないので、とても意味があったなと思います。

 

プログラムが強くなっていくことで人間がもっと人間らしくなっていく

 

- これからの目標はありますか。

 

大渡 それは非常に難しい質問です(笑)。あんまり先のことは考えてないっていうところが正直なところなんですが。一つは「ゲームはコンピューターがやったほうが強い」「強いプログラムが生まれることは良いことだ」ということをある程度周知することに意味があるのかなと思っていて。

例えばゲームでプロになるようなレベルの人ってすごいじゃないですか。ただその一方で、逆に言えば、そこまでやらなかったら、どうせプログラムのほうが強い。それで中途半端にやるぐらいだったら、他のことやればいいし。もしコンピューターという、はるかに強い存在があって、それでもそこに挑戦していきたいっていう人がいれば、それは本当に、そのプログラムに意味があると思いますし。

そういう意味で、プログラムが強いということは人間にとってすごく良いことだと思うんです。

プログラムが強くなっていくことで人間がもっと人間らしくなれるんじゃないかなと、エゴかもしれないですけど、期待しています。

 

- コンピューターが強くなっていくことで、人間が人間らしくなっていく…。それって、どういうお話なんでしょう?

 

大渡 ゲームAIの開発をしていく中でアルゴリズムを書いていると、「計算に落とし込める部分はどこなのか」という思考回路になるんです。人間がゲームをやる場合と、多分別のアプローチを取ってるんですね、コンピューターは。

じゃあ人間としてどういうことをやっていったらそのゲームが面白くなるのか。コンピューターを多くの人が理解することで、その「人間にしかできない部分」がもっと解明されていくんじゃないかな、そうなればいいなと勝手に思ってるんです。雲をつかむような話で申し訳ないんですが。

 

自分は弱かった。だからAIに任せるべきだと思った

 

- すごくそれ、大渡さんならではの視点だなと思います。私、超文系なので……、「ゲームって自分でするから面白いんじゃないの?」って思ってました。

 

大渡 本当に、そういう素直なコメントを言っていただけるのがすごくありがたいことで(笑)。実は、私自身はあんまりゲームをやらないんですよね。

 

- えっ、そうなんですか。

 

大渡 大学時代までずっとスポーツをやっていて、ゲームを自分でプレイする感性はあんまりなくて。やったこともあるんですけど、むっちゃ弱かった(笑)。だからこれはコンピューターに任せるべき所だって。

 

- ゲームに弱いから、これはコンピューターにやらせたほうがいいだろうと思ってた、と(笑)。

 

大渡 はい。コンピューターがやったほうがはるかに強い可能性があるっていうことは最初から分かっていたので。

「勝ち負けがつくんだったら勝ちにいく」というのが私のポリシーなんですが、ゲームでも何でも、弱いんだったら自分はそれをやるべきじゃないし、もっと得意なコンピューターに任せるべきだと思っているんです。

 

- ちなみに、スポーツって何をやっていらしたんですか。

 

大渡 ソフトテニスをやってました。

 

- じゃあ、大学でも。

 

大渡 はい。体育会の部活で。キャプテンでした(笑)。

 

- そうなんですか。へえ。

 

大渡 なので、全然、学生時代は勉強も何もしてなかったですけどね。

 

- プログラミングを勉強し始めたのは子どもの頃からだとおっしゃってましたけど、何歳ぐらいから始めたんですか。

 

大渡 12歳です。そんなに若くはないです。最近、5歳からプログラミングやってる子とかも出てきてますけど。

きっかけは、BASICという言語でプログラムを勉強する家庭用の教育ソフトがあって、それに触ったのが小学校6年の頃。その後、実際にホームページみたいな動くものを作りたくなったので、JavaScriptとか、ウェブで動くようなものをちょっとやってみたりとか。本当に遊びのレベルだったんですが。

 

- じゃあ、基本はマスターされていたんですね。

 

大渡 いや、全然。超我流だったんですよ。

 

- 子供の頃から自分でプログラミング組んで遊ぶって、90年代生まれ以降から出てきた流れじゃないかと思うんですよね。

 

大渡 いや〜、でも、人次第だと思いますけど。周りでやってる人はいなかったので。

 

- 少数派だったかもしれませんね。どっちかっていうと、90年代ってずっとパソコンばっかりやってたら親から怒られたりとか、そういう時代だったと思うんですよ、まだ。

 

大渡 それで実際、運動部に入らされましたしね、中学1年のときに(笑)。

 

- そうなんですね。そこからテニスに(笑)。

 

大渡 そこからは、プログラミングは冬の寒い期間だけ、こたつに入ってやってたぐらいの感じで。でもスポーツは全然センスがなかったので、スポーツが終わったらプログラミングのほうしかやることが残ってなかったんです(笑)。

 

- 面白すぎる!(笑) 

 

大渡 まぁ要するに、ゲームを楽しんでいただく方には、コンピューターはすごく強くて、人間は楽しめばいいって思っていただければ、それもいいかなと思っています。

 

- 大渡さんは、これからもエンジニアとして生きていくんでしょうか。

 

大渡 いや、どうなんでしょう。

 

- そこも含めて、どうなんでしょうな感じなんですか。

 

大渡 そうですね。でも今は少なくとも、ゲームAIがまだ見せなきゃいけない所はあるので。もうちょっとやることはあるかなと思っています。

 

- ありがとうございました!今後も大渡さんのご活躍に期待しています。ぜひ、TeamAIの勉強会にもまた遊びにきてくださいね。

 

前編はこちら:(大渡勝己氏:前編)ゲームAIに魅了され、エンジニアの道へ。勉強会から始まった書籍の共同翻訳プロジェクトとは?【AI people:vol.5】

 

Team AIでは渋谷で無料勉強会を実施中です。詳細は以下からご確認ください。

connpass   meetup

Team AI Careerはデータ分析・機械学習系に特化した仕事紹介エージェントです。

最新深層学習案件等に参画しキャリアアップしませんか?

正社員・業務委託の方も是非ご登録下さい