はじめに
機械学習研究の第一人者として世界的に認知され、東京大学大学院教授であり、理化学研究所革新知能統合研究センター長の杉山将教授にお話を伺いました。
今回は求職者の方が身につけておくべきAI技術と、採用される企業様のAIにおけるリテラシについて分かりやすく解説して頂いております。まずはAIを再定義し、AIの枠組みを捉えるために「そもそもAIとは何か」から質問を始めてみました。
後半ではAIを取り巻く日米の状況もお話して頂いております。併せてお楽しみください。
誤解されているAI
AIをどう定義するかによりますが、研究する立場から狭く定義すると、機械学習の技術が使われているシステムやサービスだと言えます。
しかし今や、ITの先端的なものは全てAIだという雰囲気があります。AIを広く定義すれば,それもあながち間違いではないですが、マーケティングの用語としてAIという言葉が使われていますので、そうするともはやAIという単語自体に意味がなくなっているような気がします。
またAIという製品があって、それが「何か問題を解決してくれる」という感覚を持つ方が一定数いますが、それは正しくありません。皆様がビジネスでAIを活用される際に、AIに「何をしてもらいたいか」をユーザがきっちりと把握している必要があります。
残念ながら現在のAIは、人間の意図を汲み取って適切な答えを自動的に返してくれるというレベルにはまだまだ達していません。AIの内部の仕組みを深く理解することは一般には難しいかと思いますが、表面的に何をしているのかは比較的容易に理解できるかと思います。
AIの中身を知らないと、AIが物事を自分で考えているように見えます。実際、AIが主語になっていて「AIが作りました」や「AIが考えてこうなりました」と言われることがよくありますが、正しくは「エンジニアがAIの背後にある機械学習のプログラムを作って,それを一生懸命操作して結果を出しました」なんです。
AIというと生き物のようなイメージが強くなってしまいますが、機械学習というとそうは言われないので、ちょっと安心して話ができます。
AIに「何をしてもらいたいのか」を自分で考え、それが「今の技術で可能なのか」をある程度判断した上で、AIで実現していくのが現実的です。
機械学習の「教師付き学習」
上記で触れた機械学習を簡単に解説しますと、大きく分けて3種類あります。
「教師付き学習」と「教師なし学習」そして「強化学習」です。これらコンセプト3つを知っているだけで、AIに対する見方が大きく変わります。
「教師付き学習」は、人間が教師となってコンピュータを学習させる方法です。例えば、人間の脳波パターンとそれに対応する人間の意図を学習させれば、脳波を通してコンピュータに人間の意図を認識させることができます。
先日の講演で紹介した手を使わず脳波でゲームをする映像は15年ほど前のものですが、この研究は最近も大きく発展しています。
現在は、車椅子を動かしたり、脳波で家電を操作したりする実証実験も行われています。かなり実用的なレベルまできており、ゲームに関しては商品化されているものもあります。
機械学習の「教師なし学習」
「教師なし学習」は教師がいない状況で学習する枠組みです。
例えば、データを生成するメカニズムを推定することが、典型的な教師なし学習です。画像をたくさん集めて画像の確率分布を学習すると、新しい似た画像を自由に生成できるようになります。
例えば犬の写真をたくさん集めると別の犬の画像が生成できたり、アニメのキャラクタをたくさん集めるとそれに似たアニメのキャラクタが自動生成できたりします。音楽を作ったり文章を作ったりも可能です。
クオリティの担保にはまだ課題にありますが、似たものを生成するのではなく、新しいものを生成する研究もされています。もちろん、歴史に残るようなクリエイティブな芸術作品の生成は、今のAIではまだまだ実現できませんが。
機械学習の「強化学習」
「強化学習」は、教師付き学習と教師なし学習の中間のスタイルで、教師から直接答えを教わるのでなく,コンピュータが自分で考えたことを教師に評価してもらい、その評価をもとに自分で学習を進めていきます。
最近では、人間のチャンピオンに勝利した囲碁のシステムの学習に用いられたことで有名になりました。他にも、車やドローンを自動的に操縦するなど多くの応用があり、今では多くの企業が技術開発に取り組んでいます。
囲碁の場合は,全てコンピュータの中で学習できるので、何千万回トレーニングしたり対決したりできました。
しかし自動車やドローンなどの現実世界の問題では,例えば、実際にドローンを壁にぶつけて落とすことはできません。そのため、墜落したデータが集められず、結果として壁を避ける知識が身に付けられません。
そこで、コンピュータの中にバーチャルな世界を作って、バーチャルなドローンを飛ばして壁にぶつけて落とします。これを何回も繰り返し、バーチャルな世界の中で学習を行ないます。
しかし、そうして得られた学習結果を実世界のドローンに実装して検証すると、なかなか思い通りに飛んでくれません。
先日の講演で紹介したバスケットボールのロボットも、シミュレータではあっという間にうまくいくようになるのですが、実際のロボットで人手をかけて実験すると、学習に丸々1日かかってしまいます。
なぜならば、強化学習は基本的にはトライアル&エラーだからです。最初は何も教えていないので、まずは試しにランダムにボールを投げてみて、ちょっとうまくいったら自分の動きを更新して、更新した先でまたランダムにいくつか試して、うまくいったら更新して、というプロセスを繰り返していきます。
もの凄く、効率が悪いですね。もちろん教師付きで教える方がいいのですが、明示的に教えるのが大変なので、うまく自動化できる部分は自動化してコンピュータの中でやってしまおうというのが強化学習です。
強化学習はまだ発展途上の技術で、現実世界で使えるようになっていくのは、これからだと思います。一方、バーチャルな世界では十分に実用レベルに達しています。囲碁やコンピュータのゲームは、人間を超えるレベルになりました。
求職者のロードマップ 5年後にも活躍するには?
求職者の方が5年後を見据えているのは当然だと思います。しかし,直近や10年、20年先ではなく5年後が,予測をするには一番難しい距離感です。新しい技術が次々と出てきますので、具体的な技術の予想は困難です。
5年後に役立つこと、求められる人材を目指すなら「今の技術の延長をしっかり身に付けていくこと」「今の技術の基礎となっていることを身に付けること」が大事ですね。
表面的なものはどんどん変わっていきます。今はディープラーニングのある特定の開発環境が流行り、それが使えるとデータサイエンティストとして有能だという話もありますが、来年再来年になるとコロッと変わるかもしれません。
ですから、その背後にある基礎的な部分を学ぶことが重要です。我々が研究している機械学習の基礎の数学的な部分は、50年前の教科書とほとんど同じことが書いてあります。今きちっと勉強しておけば、5年後にも間違いなく役に立つでしょう。
実際、何を勉強すればいいのか?
科目としては線形代数、微分積分、確率・統計と、わりと普通なんですが、それらをある程度理解していれば、全然問題ないです。逆に、それらが全然分からないと、機械学習の本を開いても何が書いてあるかさっぱり理解できないと思います。
機械学習の本を読むための最低限の知識として、そこだけは押さえておく必要があります。
あとコンピュータの技術も必要ですね。最低限のプログラミングの技術や、ネットワークの仕組み等の知識ですね、初心者レベルで問題ないです。あと何かコンピュータ言語をひとつ使える必要があります。今から勉強するならPythonがよいでしょう。言語が変わっても考え方はそんなに変わりませんので、一つ身につけておけば、それほど苦労せず別の言語も使えるようになると思います。
あと重要なのが、数学とプログラムを両方バランスよくできるかという点です。プログラムができる人はたくさんいますが、それだけでは厳しいと思います。差別化を図るには、機械学習の技術の裏にある数式の部分を理解できる能力が重要だと思います。これで決定的な差がつきます。
これまでのITエンジニアは、コンピュータのソフトがうまく動かない時はプログラムを直せば大丈夫でした。しかしAIの時代になると、プログラムは合っているはずなのにデータを入れるとうまくいかないということが、ごく普通に起こります。その時に、プログラムをデバッグするのではなく、プログラムの裏にある数式を見直す必要があります。
やや高度ですが、見直した数式をもとに、プログラムを作り直すという作業が必要になります。いわゆる軽い意味でのデータサイエンティストは今あるツールを使ってデータ解析をするのが仕事で、うまくチューニングする技術が必要ですが、それだけだと今後は差別化を図れないかと思います。
もう一つ上のレベルに上がるには、プログラムの裏にある理論なり数式なりをそれなりに把握していることが重要となってきます。
実際、プログラムを読むより数式を読んだ方が、アルゴリズムの流れがわかりやすいことも多々あります。
数学は習得に時間がかかりますが、高度な数学を勉強する必要はありません。高校生~大学1年生ぐらいの知識は必要ですが、理系の人がちょっとやればわかるレベルで十分です。
記憶をリフレッシュして高校や大学1年生の時の教科書を手元に置いておけば良いと思います。わざわざ数学だけ勉強するのは大変なので、なにかしているときにわからないことがあったら教科書を開いて確認するという感じです。
産業界の人は、日常業務があるので大変だと思いますが、多少の数学を知っているかどうかが今後5年で差がつく部分だと思います。
データ解析ツールは,それほど専門知識がない人でも簡単に使えるようになりつつありますので,自分の特殊性が活かせなくなります。Pythonもみんなができるようになってしまったあと、5年後に数学を始めても遅いかもしれません。
ですが、数学の勉強を今始めておけば、5年後にある程度できるようになっていますよね。結局変わらないものは基礎の技術なので、そこだけはちゃんと押さえておく必要があります。その上に乗るプログラミング言語は、時代とともに変わりますので、柔軟に対応していけば良いと思います。
AIを取り巻くアメリカと日本の状況
研究分野では世界中の優秀な頭脳がアメリカに集結するので、アメリカが最先端だと思います。一方、学生のレベルを見ると、アメリカが特別に凄いかというとそんなことはないです。
人数が多いのは事実ですが、レベルでは日本人が劣っているとは思いません。むしろ、日本の方ができる人の割合は多いかなという印象ですので、その辺は楽観的に考えています。ただ“数”が足りないのはどうしょうもないです。
AI関連のどこの会社もAI人材を獲得したい状況ですが、人が足りない。それなりのスキルのある人は、引っ張りだこですよね。あらゆる業種がAI関連の人材を必要としているので、それを満たすだけの数が必要です。
今まではIT業界にプログラマが多かったですが、AIになるとモノづくりから金融まであらゆる業界でAIエンジニアが必要となります。大学でコンピュータ系の学科はそれほど大きくないので、今後爆発的に増えることも期待できません。
そういう意味では別の手段で人を増やしていくしかありません。例えば,すでに社会人になっている人で転職を考えている方や、これから新しいスキルを身に付けようとしている方が、今後のAI業界で重要な役割を担っていくと思います。
企業に関しては、アメリカの大手IT企業は桁違いに高価なコンピュータを持っていますので、日本の企業と大きな差がついています。プログラムの技術だけじゃなくて、持っているハードウェアとデータで、当然出口のクオリティも変わってきます。
その辺では日本は残念ながら劣勢に立たされていると感じます。アメリカの大手IT企業は、何兆円という圧倒的な規模の資金をAIに投入しています。一部の日本の企業もAIの分野に投資し始めていますが、いまだ様子を見ているところが多いと感じます。
また人材に多くのお金を出せないところは、日本企業の弱点かもしれません。海外のIT企業で働いている人は、日本の企業の数倍もの給料を貰っていることも少なくありません。現状の日本の会社では難しいですよね。中途で転職してきた人にいきなり1億円は出せないと思います。
また、海外の大手の企業は、必ずしも目に見える短絡的な成果を求めているとは限りません。「AIをやっている」ということそのものが、その会社のブランドにもなりますし、次の世代の人材を集めてくる原動力にもなります。
AI分野のスター人材を自分の会社に囲い込むことによって、そこに集まってくる人やモノも同時に集めることができます。そのスター人材が一人で何か製品を作るわけではないので、これは広報活動の一種ですよね。スポーツ選手をスポンサーしてマーケティングするのと似たようなものだと感じます。
課題と目標
技術的にはまだまだできていないところが多いので、流行りに流されず、脈があるかわからない新しいことに挑戦していきたいです。そして、その成果を産業化や新しいサービスに繋げていけたらと思います。
またAIの基礎を理解できる人材をもっと増やすとともに、文系的な人、技術とは直接接点のないビジネス分野の方にも、機械学習に何ができるのかを伝えていきたいですね。
AIを使った新しいビジネスやサービスの展開を技術から提案するのではなく、ビジネスサイドから提案できるようになれば理想的です。
今まではビジネス側の人が技術側の人に全く関係ないベクトルでアイデアを提案し、その結果お互いにギャップが生じていました。ですが、少しでもビジネス側の人がAIの中身を理解し「こういうことはAIで実現できるだろう」と問いかけられると、技術者は頑張れると思います。
その距離を縮めていけたら、国際的に競争力の高いことができるようになると思います。