Hatena::ブログ(Diary)

shi3zの長文日記 RSSフィード Twitter

2017-09-20

ゲーマーとUnityと強化学習と最強空戦AIドローンの作り方 10:23

 Unityとディープラーニングの相性はなかなか良いとおもうわけだが、ようやくUnity社からもディープラーニング用のツール(?)が出てきた。


no title


 OpenAI Gymに対応してないのがイマイチどころかイマサンとかなのだが、ここまで完成してるのなら、戯れにOpenAI Gymへの対応をやる粋人が世界に256人くらいはいるだろう。それが登場するまでしゃがみ待ちするか、自分で作るか、悩ましいところだ。特にOpenAI Gymの環境は、作るのが異常に簡単なため、多少の気合があればすぐに作れると思う。むしろUnity社はなぜこんなドメドメのアセットを作ったんだろうか。真面目にやれ真面目に


 OpenAI Gymは素晴らしい。出た当初はあんまりありがたみを理解していなかったが、いざ強化学習を仕事で扱うようになるとOpenAI Gymのありがたさに涙がちょちょ切れる勢いである。


 何がありがたいのかというと、OpenAI Gymを使うと、環境とアルゴリズムを分離できるのである。

 たとえば単純なDQN(Deep Q-Leaning)でいいのか、それともA3CやICMを使うのか、もしくはもっと他のもっとイケてるアルゴリズムを誰かが開発するのか、そのアルゴリズムがOpenAI Gymに対応していれば、こっちはGym環境を作るだけですぐにそれをキャッチアップできる。一石二鳥なのだ。


 いわば、アルゴリズムを作るのは研究者の仕事で、環境を作るのはエンジニアの仕事、というように分担できる。こんなに鮮やかに研究者の仕事とエンジニアの仕事が分担されるのはかつてないことではないか。


 なのに! なんでだよ。UnityはOpenAI Gymに対応してない。20世紀か! AI研究者と開発者の分離を許さんのか。やだよTensorFlowの計算グラフ生で触るとか。Keras使わせろJK。


 誰か猛者が作ってくんないかな。てか本当は猛者である必要はぜんぜんない。暇な人、作ってくれい。



 OpenAI Gymはかなり素晴らしいのだが欠点もないわけではなくて、なんかとにかく全ての環境が適当に書かれて適当に動いてるので、ある環境に対応したニューラルネットワークが別の環境ではぜんぜん動作しないことがよくある。まあある程度は仕方ないんだけど。


 さらにOpenAI Gym Universeというのがあってこれまた素晴らしい。これはVNC経由で遊べるものは全部ゲーム化できる。プラウザゲームさえできる。アイマスとかのソシャゲーも頑張ればいけるかもしれない。おもにFlashゲームが沢山あるけど、ちょっと頑張ればなんでもいけそうな気がする。


GitHub - openai/universe: Universe: a software platform for measuring and training an AI's general intelligence across the world's supply of games, websites and other applications.

https://github.com/openai/universe

 

 なんでゲームと強化学習が関係するのかというと、強化学習するにはゲーム化の処理が入るからだ。

 たとえば最強空戦ドローンを作ろうと思ったら、ゲーム化するしかない。空中戦シミュレーションゲームを作って、シミュレーションの中で自己対戦してどんどん最強になってもらうしかないのだ。


 もしかすると、これからはカネをもらってゲームするのが当たり前になるかもしれない。

 空戦ゲームのエースパイロットとAIドローンが戦う。そんでもって、それに勝てるようになると自動的に最強のAIドローンが出来ているわけだ。これが作れるなら軍は喜んでカネを払うだろう。


 AIドローンだけの対戦だと、人間の操縦するドローンに勝てない可能性が高い。

 人間の動きを予測できないと、人間には勝てない。だから人間と戦って勝つドローンをつくるにはシミュレーションによる模擬戦闘(アグレッサー)が不可欠なのだ。


 同様のことは、自動車レース、モーターボートレースなど、あらゆる競技に言えるだろう。つまり、工業的な理由ではなく、実用的な理由からプロゲーマーが必要とされる時代がやってきたのかもしれないのだ。


 昔、ギートステイトっていう企画があったけど、もしかしたらマジでそうなるのかもしれない。人間のゲーマーは下手するとプロの空戦ドローンパイロットより強い可能性あるからな。ゲーマーの集中力とか半端ないし


 格闘戦ロボットというのがもしあるのなら、ウメハラとかときどみたいな格ゲーマーが必要かもな。でも格ゲーの場合は考慮すべき事項がもっとあるから難しいかもしれないが


 

2017-09-19

情熱の値打ち 14:01

 仕事上の付き合いがある某外資系企業の人と飲んでいたら、彼がゴトーと「ときど」の話で盛り上がった。


 「ときど」と言われて何のことだか分かる人はこの先読まなくてよろしい。


 もちろんオレはさっぱりだ。

 どうもプロゲーマーの人らしい。


 プロゲーマーといえばウメハラ氏が有名だが、オレの世代ではブンブン丸とか池袋サラとか新宿ジャッキーとかのほうがピンと来る。まあいいか。


 二人があまりにも熱くときどの話を語り、その場で「この本を読んで下さいよー」とウザ絡みしてくるので仕方なく買ってみた。


 ちなみに最近、必然性のない酒はやめていて、その日もオレだけシラフだったのだが、シラフの人間が飲み会で酔っぱらいに交じるとどんな気分になるのか、という気分を存分に味わった。


 そこで買ってみた「ときど」の物語。


 どれどれ・・・と読んでみると、なるほどこれはけっこう面白い。


 ちなみにオレはゲームは遊ぶがゲーマーではない。川上さんの本の中で勝手にゲーマーということになっているが、オレがゲーマーを名乗るのはゲーマーに失礼だと思う。オレは基本的に、楽しみのためにゲームはやらない。作るためにやっていた時期はある。


 最近は楽しみのためのゲームをやることもあるが、ゲームがしたくてしたくて仕方がないというよりも、他にすることもないし仕事のことはひとまず忘れたいからゲームをしているに過ぎず、いつでも辞められるという意味でまったくもってゲーマーとは名乗れない。


 少年の頃もゲームセンターに通ったが、それは最新技術のプログラムを見学するのが主な目的で、遊ぶことはぜんぜん目的じゃなかった。たまに遊ぶときは、そのプログラムの癖やアルゴリズムを見極めるためだけだ。


 ゲーマーからしたら僕みたいなのは許せないだろうが、要するにそういうあんまりゲームと近くないところにいた人間から読んでも、この物語はものすごく面白かった。


 ときどは、エリートである。

 大学教授の父を持ち、子供の頃から東大を目指して勉強してきた。


 東大受験のための勉強以外はゲームしかしてなかった。

 麻布中学に進学したんだから、小学生の頃からそれなりにできる方だったんだろう。


 中学時代にゲーム大会で優勝し、国際大会にも出場して世界一のプレイヤーになった。そして一浪して東大に進学した後、大学院に進学。しかしそこで大きな挫折を経験して、中退しプロゲーマーになる道を選ぶ。


 ときどは「勝つためには手段を選ばない嫌な奴」と評判だったらしい。それはゴトーも言っていた。そのときどが最後に気づいたのは何か。情熱である。


 論理を積み重ね、クレバーに勝ちだけにこだわった結果、ときどが最後の拠り所としたのは、なんと情熱、心の炎だったのだ。


 東大に入ったのにやる気のない同級生を見て「こんなやつらゲーマーとしては通用しないな」と思ったりするのが面白い。どこの世界にもやる気はないけど勉強だけはできるやつというのはいる。利口すぎて、ほどほどの成績をほどほどにとって満足するような人たちだ。僕もそういう人たちに対して興味を持てないとおもう。


 全編を通じて大きな挫折もあるが、基本的にときどは前向きで、イキイキしている。それは彼の父親の影響も大きかっただろうし、麻布学園という環境も大きかったのだろう。


 本書は全編を通して東大を出てプロゲーマーになるのが、いや、まさにそれこそが、正しい選択なのだと、なぜか勇気づけられる内容だ。


 オレはよく、講演などで「これから求められるのは好きなことを好きなようにやってみんなから愛される、Youtuberみたいな職業が生き残っていく」とうそぶいているが、ときどの生き方を見ると、まさにそうなのではないかと思う。本書の影響を受けて付け加えれば、「好きなことに情熱を持って」という言葉が相応しいかもしれない。


 情熱というのは内なる炎だ。消そうとしても消えないのが情熱である。

 そしてときどによれば、情熱の炎は伝播する。それが本書の素晴らしいところだ。


 子供を持つ親の視点として読んでも、一人の少年が一人前の男になっていくサクセスストーリーとしても面白い。時たま登場する彼の父親が実に良い。自分の息子にこんな風に思ってもらえるならさぞかし嬉しいだろう。


 なるほど、二人が夢中になるわけだ。


 ゲームとかプロゲーマーシーンに全く詳しくなくても楽しめるし、なによりこれから必要とされる人材のロールモデルとして非常に稀有な例だと思う。オススメです。

 

東大卒プロゲーマー (PHP新書)

東大卒プロゲーマー (PHP新書)

2017-09-13

iPhoneXは久々に燃えるデバイスだ。いっちょやるかぁ! 06:59


事前にCoreMLで遊んどいてよかった。

なんかヤバイ予感はしたんだ。


なんせiOSのプログラム書くの久しぶりだったからプロビジョニングとかで手間取ったけど。

こいつぁヤバイぜ。


今日はこれから福岡でイベントがあるので、そこで急遽iPhoneXとCoreMLの話もしたいと思います。

席は告知不足でかなり余裕があるので、ぜひ福岡市近郊の方は当日でもお立ち寄り下さい。


要するに、iPhoneはこれからAIとARの世界に真正面から飛び込んでいくというコト。

これをAIの人たちは無視できないよね。もはや

Deep Learning Lab × NVIDIA DLI in 福岡 - connpass

https://dllab.connpass.com/event/63428/

2017-09-06

ミサイルと戦争から個人防衛するために買ったもの 17:36


 昨夜、新潟の友人が「ふだんは旅客機さえこない田舎なのに、戦闘機が飛び回っていて騒音で眠れない。どうなっちゃうの?どうすればいい?」と心配している。


 いままで北朝鮮がミサイルを打ったことは何度もあったんだけど、これまでと今とどう状況が違うのか。


 ひとつは、アメリカの大統領がトランプになってしまったこと。トランプはいくらバカそうに見えても核の発射ボタンは押せるし米軍を独断で動かすことができる最高司令官でもある。


 中央集権の弊害を一身で体現している人物と、同様に北の独裁者である金正恩がガチで殴り合いをしようとしている。


 さらに、今の北朝鮮は経済封鎖で追い込まれつつある。かつて日本がABCD包囲網を敷かれ、ハル・ノートを突きつけられてやむなく開戦に突入したのと似た状況にあり、これが非常に危機的状況だと言われている。


 戦闘機が田舎を飛んでる理由はいくつか言われていて、たまたま僕の友人の住んでいるあたりが北朝鮮と地形が似ていて、練習しているのだという説と、万が一ミサイルが東京に向かってくる場合、日本海側で撃ち落とさなければならないので警戒出動しているのだという説がある。


 昔、新潟に一時期引っ込んでた頃、暇つぶしに北朝鮮が日本に攻めてくるという小説を読んでいた。



 心の準備をするなら一読をお勧めする。特に新潟から侵略することになってるので新潟の人は読んだほうがいいかもしれない。


 北朝鮮軍のうち10万人は特殊部隊だ。特殊部隊というのは、特殊戦(非正規戦)専門の部隊なので、この人たちが都内や地方都市などあちこちでゲリラ戦を展開するだろう。狙われる可能性が高いのはテレビ局やデータセンター、軍事施設、国会議事堂や首相官邸など政治に関係する施設、原子力発電所などである。


 単なるテロリズムではないので民間人を無駄に殺したりはしないはずだ(無駄だから)。




 まあ戦争になったら我々民間人は逃げるしかないので、自衛手段があるかといえばほとんどないんだけど、まず「なにが起きるのか」ということを小説でもシミュレーションでも見てとりあえず覚悟しておく。一番怖いのは想像力がないことだ。なにをしたらなにが起きそうかということを普段から想像しておかないと、いざというときに困る。


 3月11日、「津波が来るぞ」という警報が鳴り響いた。義父は「どうせいつものようにたいしたことないよ」と逃げるのを渋ったが、義弟が「いや、前回逃げなかったら姉ちゃんがめちゃくちゃ怒ってたからいったんは逃げよう」と説得して、無理やりクルマに乗せたそうだ。


 彼らが逃げる準備をしていたとき、隣の家の人は「津波なんかどうせたいしたことない」と笑っていたという。


 彼らの家は完璧に流された。その隣人がどうなったのか僕は聞いてないが、想像力がないというのは人の命を奪うこともある。


 要するに正常性バイアスが働いてしまうのだ。


 「どうすればいい?」という言葉に対するアドバイスとしては、「心の準備」をしておく、ということしかない。


 まず、移動は基本的にスニーカー、万が一のための保存食と水を最低二週間ぶんは用意しておく。これは大地震を経験した都市圏の人は既に準備できてるかもしれない。



 携帯式ガイガーカウンターも買っておく。僕は常時これを携帯している。


エアカウンターS

エアカウンターS


 さらに、万が一、化学兵器や核兵器が使用された場合に備えて、防じんマスクと放射能防護服を揃えておく。まあそこまでしなくてもいいと思うけど。気休めに。


3M 防毒マスク 面体 6000F Mサイズ  6000F M

3M 防毒マスク 面体 6000F Mサイズ 6000F M


 あとは防災用リュックやテントがあるとなおいい。

 

 ガイガーカウンターを持ち歩くだけでも、多少は意識が変わる。

 放射能防護服やガスマスクは持ち歩くわけにもいかないので、本当に気休め程度だ。ただ、3/11のときもそうだったけど、「ああ、買っておけばよかった」というタイミングでこの手のグッズは売り切れてしまうし、そもそもインフラも混乱するので注文したからといってなかなか届かない。


 まあでも9/9を乗り切れば落ち着くんじゃないかと思うけどねえ(正常性バイアス)


 いざ開戦となったら、もう覚悟するしかない。開戦すると、ビットコインと金の値段が上がると思う。お守りだと思って5000円くらいビットコインを買っておくのもいいのかもしれない(特に勧めはしない)。


 データ類は海外のクラウドに保存しておくのがいいだろう。北米は広いが、北米のデータセンターは意外と都市部にあるのでやばいかも。ロシアかな。


 

2017-09-04

将来起業したいので、エンジニアになりたいです 09:36

 将来起業したいので、エンジニアになってみたい、という学生に会ってびっくりした。

 たぶん悪気はぜんぜんないし、いい人なんだけど。


 そういう動機であれプログラミングをするのはいいことだと思う。「普通の人がプログラミングをする世界」というのは要するにそういうことだ。だけどプログラマーやエンジニアというのは、「道」であって、なんかのついでに小手先のスキルみたいに身につけるものではないんじゃないかと僕は思う。いや、人それぞれ解釈があっていいんだと思うけど。


 確かにエンジニア出身の経営者は少なくないし、わりと成功しているパターンが多い。

 けど、経営者をやろうと思ってエンジニアになった人はあんまりいないんじゃないか。よしんばそう思っていたとしても、心の中に秘めておいて、まずはエンジニアという「道」を極めようとするのが筋じゃないか。


 僕が社長になることにしたのは、エンジニアを諦めた時だ。プログラマーではいたいと思ったが、エンジニアとしてとことん現場を突き詰めるというのは、どうも自分に向いてないと思った。考えるべきことが多すぎるし、マネジメントも一種のプログラミングであると考えるようになってから、自分が直接コンピュータを操るよりも、自分以外にコンピュータを操ってもらうほうがより大きなスケールの仕事ができることに気づいたからだ。そしてそれは比較的、他人よりも得意だった。僕は目標設定が得意なのだ。コードを書くのが得意という人は他にもっとたくさんいる。


 この気付きがなければ僕は一生を二流のエンジニアとして終えただろう。要は自分がそれに向いてないと悟ったのだ。


 起業したい、という学生の気持ちは、僕は半分理解できるけど半分理解できない。そりゃ、みんなと同じスーツを着ておんなじような質問におんなじように答えて、「選んでもらう」みたいな就職活動は面倒くさいだろう。苦労して就活した挙句、誰も知らない会社に入るくらいなら、いっそ自分で会社を立ち上げたいという気持ちもわからないでもない。


 が、僕がわからないのは、学生の頃にそれなりに優秀なエンジニアをやっていれば、既に仕事には困ってないはずなのだ。むしろ就活するどころかあちこちから仕事の声がかかってプライベートの時間がなくなっているというのが普通ではないか。


 だから起業するといっても、それはもう仕事が来すぎて秘書が必要だとか、自分ひとりでは抱えきれないから助手が必要だとか、要するに「必然的な起業」であって、「起業するためにエンジニアになる」というのは順番が逆な気がするのだ。


 強いて言えば、フリーランスのプログラマーとして活動できれば、それは既に起業している状態であり、昔からそんな人はあちこちにいた。


 プログラムを書くフリーランスで収入を得ている、という意味では僕は高校生の頃からそうだったし、それで「会社つくんないの?」と何度か言われたけど、「自分の面倒も見れないのに人の面倒を見るなんて冗談じゃない」と断り続けた。


 僕の思う理想的なプログラマーというのは、誰に言われなくても自分でプログラムを書く人である。エンジニアを目指す人というよりも、気がついたらエンジニアになっていた人だ。まあしかし本当はエンジニアという言葉をプログラマーに使うのは、内燃機関の人に失礼な気もずっとしている。


 うちの親父はボイラー屋で、発電システムの設計者だから、まあエンジニアと言えるだろう。ITの場合、エンジニアと言う言葉の指す範囲がとても広い。たぶんコンソールを触る人は全部エンジニアじゃないだろうか。


 僕が「なれるSE」を読んで驚いたのは、プログラムを書くシーンがほとんどないことだ。それどころかプログラムを書く必要があるときになると主人公たちは社内のプログラマーに頼んでプログラムを書いてもらう。


 プログラムを書かないITエンジニアというのが本当に存在しているということにショックを受けた。でももしかしたら、そっちの世界では当たり前のことかもしれない。設計図を書かない発電屋がいても成立しそうだし。クルマの話でいえば、エンジンの設計をする人だけをエンジニアと呼んでしまうと、ほとんどの人は仕事がなくなってしまう。


 エンジンに直接触れる人はぜんぶエンジニアと呼ぶのならば、設定画面を開いてる人はエンジニアと呼ぶべきだろう。


 そのうちAIエンジニアみたいな言葉が生まれるんだろうか。


 深層学習はかなりブラックボックスの要素が強いから、設計者よりも利用者のほうが頭を使う局面が多そうだ。CPUの設計者は尊いが、それだけではFacebookGoogleをつくれないということだ。CPUの設計者は世界的にみてごく少数だが、ソフトを作る人、サービスを作る人となると膨大になる。つまり、これから絶対数が増えてくるのは、ニューラルネットの設計者ではなく、利用者だ。それをAIエンジニアと呼ぶようになるのかもしれない。

 

 日々仕事をしていると、この先AIとかかわらない仕事はなくなっていくんだろうなと思う。そのプロセスを乗り越えると、もしかしたらみんなが遊んで暮らせる世界がやってくるのかもしれないが、乗り越える直前までは、スーパーAI戦争みたいなのが勃発することは目に見えていて、今はその助走状態にあるのではないかと思う。


 スーパーAI戦争は、ようするに製品開発競争で、AIをいかにうまく効率的に作り、それを使うか、というアイデアの競争になるだろう。自動運転や顔認識といったごく単純な応用例だけでは差別化が難しいから、むしろトンチの勝負になる。


 ことトンチということに関しては大企業だろうがベンチャーだろうがほとんど同じ土俵にあるので、個の力で大組織の力に対抗できる見込みがある。大組織は大組織なりの欠点があるので、そこをベンチャーの機動性ですり抜けることが出来るか。そう考えると、いよいよ面白い時代がやってきそうな気がする。