AIアプリ開発しました。

この度、AIと対戦できるまるばつゲームをiOSゲームとして開発し、App Storeに公開ました!詳細は上のボタンをクリックしてください。

まるばつゲームは単純なゲームなので、王道のアルゴリズムとしてミニマックス法などがありますが、このようなAIと対戦して面白いと思うユーザーはいないはずです。まるばつゲームのような単純なゲームだと、深く探索すれば完璧なプレーしかしないので強すぎるし、逆に探索の深さを浅くして、不完全なプレーしかしないAIを作ると、今度は弱すぎます。たまには勝つくらいの強さを持ちつつ、いろんな戦略に対して臨機応変に学習していくことができるAIがいれば、ユーザーも「面白い」と感じてくれるかと思います。

今回開発したAIは、強化学習の産みの親とも言われるリチャード・サットン氏が提唱する方法で開発しました。強化学習は、囲碁の世界チャンピオンをも降したアルファ碁が使う手法です。その中でもTD法という、実体験に基づいて動的に(走りながら)学んでいくことができる手法を今回のアプリの中では使っています。つまり、対戦すればするほど学習して強くなるということです。そしてTD法は正解であるΠに収束することが証明されています。ただし、かなり長い時間をかけてそこに収束することもあります。それこそ数万局という対戦を繰り返す必要があるかもしれません。

「そんなちまちまとAIが賢くなってるのを待ってたら陽が暮れっちまうよっ!」と江戸っ子風に思われた方、ご安心ください。AIの学習を早送りするための機能も搭載しています。これはアルファ碁も使った手法ですが、「自己対局」、つまりAIが自分自身と対局することによって経験値を積んでいく機能も搭載しています。矢印が向かい合ったボタンをタップすると自己対局モードに突入します。もう一度タップすると解除されます。

強化学習のAIがどんな風に考えているのか、ちょっと覗いてみたいと思われる方にも、「AIの思考を覗き見」する機能も加えてあります。目玉の形をしたボタンをタップすると作動します。

お子様にも親しみやすいように、かわいいアイコンにしてあります。地元の小学生とのコラボレーションでイラストに協力してもらいました。ロボットの絵なんか力作です。

ご興味がある方は是非App Storeで購入してください。3月19日まで特別価格の240円です。それ以降は通常価格の360円となります。

3月10日 MAKE MONEY Under30

3月10日に砧スタジオでMAKE MONE¥ under30 の収録を行いないました。

堀江貴文さん、佐山展生さん、箕輪厚介さん、岡島悦子さんと一緒に楽しみながら審査員をさせていただきました。若き起業家たちはみなさん20代で素晴らしい結果を残しており、感動いたしました。NewsPicksおよびdTVチャンネルで配信予定です。配信日が決まりましたらお知らせいたしますので、みなさまご覧くださいませ。




MAKE MONE¥_0029.jpg
MAKE MONE¥_0042.jpg

朝日新聞主催イベント「次代を拓く子どもの育て方」で講演致しました。

3月3日に、有楽町朝日ホールにて朝日新聞主催で「次代を拓く子どもの育て方」というテーマの講演会を落合陽一さん、和田孫博さんとご一緒にさせていただきました。私の小学生時代やアメリカ留学の頃の話を盛り込みながらこれからの時代を切り開いていける子どもの育て方についてお話させていただきました。

子育て中の方やお孫さんのために来てくださった方、学校の先生など、たくさんの方に雨の中お越しいただきまして、大変感謝しております。私の経験が少しでも皆様のお役に立てれば嬉しく思います。ありがとうございます!

1903_CD_0022_sample.jpg
1903_CD_0070_sample.jpg
1903_CD_0147_sample.jpg
1903_CD_0474_sample.jpg
1903_CD_0433_sample.jpg
IMG_9168.JPG
1903_CD_0692_sample.jpg
2019-03-03 15.44.55.jpg
1903_CD_0998_sample.jpg
1903_CD_1357_sample.jpg
1903_CD_1358_sample.jpg

HP主催のイベント「HP Reinvent World 2019」に登壇しました。

2月18日 東京ミッドタウンホールにてHP主催のイベントに登壇いたしました。

会場からの質問に答えながらトークセッションをするというスタンスで普段の講演とはまた違う刺激をもらいました。メガトレンドの日本経済への影響、人の働き方や企業ビジネスの変化などについてお話させていただきました。700名という多くの方に聴いていただき、感謝しております。

P2181024.JPG
P2181018.JPG
IMG_9050.JPG

千本様より新刊へのコメントをいただきました。

株式会社レノバ代表取締役会長の千本倖生様より読後コメントをいただきました。大変嬉しいです。ありがとうございます。

『〝日本の中小企業にこそAIの導入が必要だ〟と説く筆者をぜひ応援したいですね。そうすれば日本の国力増強に繋がると私も信じます。』

機械学習用のスーパーマシンをパーツから組み立てた理由

こんにちは、パロアルトインサイトCTOの長谷川です。

パロアルトインサイトでは、クライアント企業のニーズに応じてディープラーニングのモデルを開発することがあります。一昔前まではAWSのマシンをクラウド上で借り、そこでモデルを学習させることが多かったですが、最近は自作のマシンで学習させることが多いです。なぜかというと、クラウドのマシンはコスパがものすごく悪いからです。

まずコスト面では、弊社は用途に応じてp2.xlargeかp3.2xlargeというマシンを使っていますが、前者は月700ドル(約8万円)で後者は月2200ドル(約24万円)というコストがかかります。なぜこれだけクラウドのGPUマシンが高くなってしまっているかというと、実はNVIDIAのせいなのです。彼らは機械学習用のGPU市場を独占していることをいいことに、クラウドプロバイダーがより高価なGPUを購入することを余儀なくする条項をソフトウェア利用許諾書の中に記載しています。NVIDIAが作っているGPUには大きく2種類あって、一般消費者向けのGeForceシリーズと、データセンター向けのTeslaシリーズがあります。一般消費者向けのGeForceシリーズでも、かなりの演算能力があるため、ディープラーニングを行う上ではTeslaとほぼ同レベルの性能が出ます。それにも関わらず、AWSなどのクラウドプロバイダーは低価格のGeForceではなく、約10倍の価格のTeslaシリーズを買わなければいけません。いうまでもなく、そのしわ寄せを食うのがエンドユーザーであるクラウドで機械学習をしようとするデータサイエンティストです。

何が起きるかというと、24時間通常価格でクラウドのGPUマシンをフル活動させることはコストが高すぎるため、クラウドの運用でカバーするようになります。例えば、より不安定だが低価格のスポットインスタンスを使ったり、学習をしていないときはマシンを停止させたりといったことをしなければいけません。いうまでもなく、そういう運用を強いると24時間常にあるマシンに比べて面倒になるし、モデルを作るにもいちいち今回はどれくらい時間(すなわちコスト)がかかるだろうと心配する必要があります。

というわけで、昨年、PAIr-DL-001号(仮称)を作りました!

unnamed.jpg

ちなみにこのマシンのパーツからの組み立ての過程を動画でアップロードしていますので、ご興味がある方は是非みてください。YouTubeのリンクはこちらです。動画の説明にパーツリストもあります。メモリ64ギガバイト、CPU12コア最新Threadripper、NVIDIAのRTX2070など、かなり贅沢なマシンを作っても、なんと合計で$3000以下に収まります。そしてパフォーマンスはというと、AWSのp2.xlargeで学習させる時と比べて3倍ほど早いです。弊社のデータサイエンティストは今までのように時間当たりのコストを心配する必要がないので、大喜びしています。また、いろんな実験を重ねる土台にもなるので、良い成果に結びついています。

皆様も興味があれば是非自作でディープラーニングのマシンを作ってみてください。

ではまた。

長谷川

*これは弊社がニュースレター登録者の方に定期的に送る内容を後日ブログにした記事です。リアルタイムでこのような情報を自分のメールボックスに受け取りたい方はニュースレターに登録して下さい。登録はこちら。https://www.paloaltoinsight.com/newslettersignup *

永田様より新刊へのコメントいただきました

ダイセーロジスティクス株式会社代表取締役会長・永田勝志様より”いまこそ知りたいAIビジネス”へのコメントをいただきました。ありがとうございます。

「昨今AIという活字を見ない日はない。AIに関する

セミナーや著作も百花繚乱である。実際に、石角様にお会いするまで

我々のような中小企業にAIなんて時期尚早、不相応なものとしか

考えていなかった。しかし本書の事例にもされている弊社のAIプロジェクトは、パロアルトインサイト様の入念なお導きにより第1フェーズを予定通り立ち上げることに成功した。そして引き続き第2フェーズに挑戦している」


「この本は、単なるAIビジネス入門書ではない。これからの、AIとビジネスいわんや人間とのあるべき関係を、具体的な事例と深い知見と洞察からなる素晴らしい1冊であると絶賛します」

「京都ものづくりバレー」研究会で講演を致しました。

1月15日に、JOHNANイノベーションラボにてJOHNAN株式会社と京都大学主催で「2019年にAIビジネスにおいて何が起きるのか?」というテーマの講演をさせていただきました。

世界中のビジネスの現場でAIの存在がクローズアップされている中、AI活用において日米間の差はどこにあるのか・AI導入を考える際のステップの踏み方・今後のAIビジネスの課題や世界の最新AIビジネス、などに関して企業経営の視点から語らせていただきました。

多くの方にご参加いただきまして、大変感謝しております。

_HIR0003_00001.jpg

ハフマン符号

あけましておめでとうございます。CTO長谷川です。

今年は基礎に立ち返って色々なアルゴリズムの復習をするという目標を一つ立てたので、面白いアルゴリズムを取り上げてはブログ記事を書いていこうと思います。今回は情報圧縮技術を勉強していました。圧縮技術は通信速度に限りがあるインターネットの世界ではものすごく重要な位置付けにあります。例えば、ネットで見る画像や動画はほとんどjpgやmp4などで圧縮されたものですし、zipファイルに固められたフォルダなんかも様々な圧縮技術が使われています。

今回はその中でも面白かったハフマン符号という文字の圧縮方式を紹介します。この圧縮方式はデイビッド・ハフマン氏が1951年、若干25歳のMIT学生時代に発明したものです。情報理論の授業で単位を取得するために、期末試験を受けるか、もしくは期末論文を書く選択があり、その論文のテーマが「文字や数字などの情報を最も効率的に表現する手法を探せ」というものでした。ハフマン氏は、その期末論文の回答としてハフマン符号を発明したのです。今でも例えばZipファイルなどの圧縮方式の一部として世界中で使われている圧縮手法を25歳のときに授業の宿題の一環で発明してしまうとは、まさに天才的です。

さて、ハフマン符号とはどのようなものでしょうか。この符号化の方式は、我々が使う文字の頻度に格差があることを利用して情報量の圧縮を実現します。例えば、英語ならば母音の「e」という文字が最も頻繁(英文字の12.5%)に出現し、「z」は最も稀である(全文字の0.09%)という統計をグーグルのPeter Norvig氏が発表しています。この統計を利用して、より頻繁に起きる文字をより少ないスペースで、より稀に起きる文字をより多くのスペースで表現しようというものです。

モールス信号もこれと同じ原理で組まれています。頻繁に起きる文字である「e」には、最も短い信号「.」、稀な文字である「z」には、長い信号「--..」が割り当てられています。

例えば、このブログ記事の冒頭の「あけましておめでとうございます。CTO長谷川です。」という文をハフマン符号化すると、次のようになります。

10000101100001001010111100010010111010011101011010011001111100000100111011011011110101111111000001111100100111

長さにして110ビット(0か1の上記の並びが110桁)です。元々の文は25文字ですが、日本語はUTF8というユニコードで機械の中では表現されており、日本語のユニコード1文字に付き24ビット消費します。

例えば、ひらがなの「あ」はコンピュータから見るとこう見えます。

111000111000000110000010

つまり、元々の文は25文字ですが、データ容量としては600ビット使っているということです。

もっと長い文章ではどうでしょうか。例えば、夏目漱石の「こころ」で試してみたところ、以下のような結果になりました。

Original character count:  174549
Original string bits:     4179584
Encoded string bits:      1268100

元々の文字数は約17万字、符号化による圧縮はなんと70%もデータ容量をセーブできます。

どのように符号化がなされるかというと、ハフマン符号化をするに当たって、以下のような辞書を作成します。前述した通り、頻繁に起きる文字を短いビット数で表現するようにします。

char       n                code
--------------------------------
の      7662               11111
い      6989               11010
私      2695              100010
が      2649              100000
生       784            10110110
事       747            10101101
わ       680            10001110
先       677            10000111
め       644            01111101
人       625            01110011
ろ       586            01100001
時       560            01000100
や       516            00100011
ば       480           111101010
分       470           111011111
出       469           111011110
見       453           111011000
自       415           110001111
K       411           110001110
み       409           110001100
奥       401           110001001
父       388           101101010
来       385           101101000
間       352           100110010
彼       348           100101111

上記の辞書は漱石のこころから算出したものです。漱石のこころに登場する人物たちが見事に符号化されています。「私」、「先生」、「K」などの符号化の順番などを分析していると面白いです。やはりというべきか「私」という文字が「K」という文字の前に来ていますね。この辞書を作るに当たって気を付けなければいけない点として、重複したコードが発生しないようにしなければいけません。例えば、「の」は「11111」ですが、もっと頻度が少ない文字、仮に「z」が「111110」のようなコードだと、「の」に続いて「0」が一つあるのか、「z」なのか分からなくなってしまいます。これを回避するために、内部では以下のような木構造を作ります。

tree structure

(出典:wikipedia)

この木を作成する簡易的なアルゴリズムとして、まずそれぞれの文字の頻度を算出し、頻度が少ないもの同士を繋げて一つの木に合体させていくということをするだけで、ハフマン木ができます。そのハフマン木を今度は天辺から下に辿っていって、右にいくときは1、左にいくときは0とコードを繋げていくと、上記の辞書が出来上がります。

コードを書いてみるとそのアルゴリズムのシンプルさと分かりやすさに感嘆します。私が書いたものを弊社のGitHubにて公開していますので、良かったら見て実行してみてください。

新刊へのコメント

日本電産の専務執行役員であり中央モーター基礎技術研究所長の福永泰様より読後コメントを頂きました!感謝です。 「AI時代のビジネスインパクトを出すには、なるべく離れた分野の知を組み合わせたほうがいい、という箇所がよかった。日米の懸け橋、よろしくお願いします」