PAPAの独り言

PAPA(3児の父)が、いろいろ書きたいこと書きます。

人工知能はどのようにして「名人」を超えたのか?(山本一成)を読んで

 山本一成さんの『人工知能はどのようにして「名人」を超えたのか?』を読んだので、今回も備忘録として感想などを書きます。

最近、人工知能(AI)に興味があり、いろいろ読んでいるのですが、前回紹介した落合陽一さんの著書にも、人工知能に関する記述は出てきました。山本一成さんは、最強の将棋AI「ポナンザ」の開発者です。

【ポナンザについて】

人工知能、将棋AIについて全く知らない人に(僕も全く知りませんでした)、下記のNHKスペシャルの動画を紹介します。これを観るとポナンザがどういうものかが、イメージとしてよく分かります。


2017年 NHKスペシャル ~人口知能 天使か悪魔か2017年 羽生善治~

【コンピュータにできること】

そもそもコンピュータにできることは何か?これについて、山本さんは下記の「二つだけ」だといいます。

  • 簡単な計算(足し算や引き算)
  • 記憶

たったのこれだけです。この二つを組み合わせて、様々なことを実現しているのです。

【知能とは】

山本さんは知能とは「探索」と「評価」を合わせたものだ、といいます。

  • 探索(主観や判断を交えずに、未来を推測する=エミュレート)
  • 評価(何を優先的に探索し、何を探索しないようにするか、目星をつける)

【将棋AIへの誤解】

僕は「将棋AIは全ての局面を読めるだろうから、人間に勝てるのは当たり前なんじゃない?」と考えていました。ですが、それは違いました。将棋の局面は現在のコンピュータの性能では、とてもじゃないですが全て把握するのは無理なのだそうです。もちろん、コンピュータが更に発展すれば、可能になる日が来るのかもしれませんが、現状では無理なのです。つまり、現在の将棋AIでは「探索」能力に限界がある、ということです。

将棋よりも局面が少ないチェスでは、一秒間に一億回の探索を行ったとしても、宇宙開闢から100億年の間に全ての局面を読むことはできないそうです!そして、将棋の局面はそれよりも更に多いのです!(凄いですね!)

そして、探索能力に限界があり、将棋の全ての局面を読むことは不可能なので、「評価(どこを優先的に探索するかを決める)」をしているのだそうです。評価に絶対的な基準はありません。ですので、このタイプのAIは完璧ではなく間違いやミスをおかすこともあります

初期の将棋AIのプログラムでは、人間(プログラマ)がこの評価の基準を全て「経験と勘」を頼りに行っていました。プログラマから見て良い手を打つと1000点、悪い手を打つと500点など、点数を微調整していくことで、将棋AIを少しずつ少しずつ手作業で強くしていったのです。

ただし、この方法は時間がかかりすぎ、また将棋の複雑さを全て表すことはできませんでした。

【人間は自分自身を完全に理解していないし、説明できない】

70年前に生み出されたコンピュータの黎明期から、プログラマやコンピュータ科学に精通する研究者たちは、コンピュータにどうすれば人間と同じような知能をもたせることができるかを、考え続けて、試行錯誤を続けました。ですが、その試みはうまくいきませんでした。

なぜなら、人間は自分自身の思考や行動を完全に理解していないし、仮に理解していたとしても、それを人に伝わるように明確な言葉で説明できないからです。例えば、僕達はコップとマヨネーズを間違えることはありません。明確に区別できます。ですが、「どうやって区別しているのか?」「なぜ区別できるのか?」と聞かれたら、答えることはできないと思います。自分自身が理解していないことを他人に伝えることはできません。それと同じで、人間自身が理解していないことを、コンピュータに理解させることはできかったのです。

コンピュータの黎明期から、山本一成さんが研究を始めた2008年頃まで、ずっとこういう「人工知能の冬の時代」とも呼べる停滞期が続いたそうです。

【人間を理解し、コンピュータを人間に近づけることは諦めた】

そして、最終的にプログラマや研究者達は人間を理解して、コンピュータを人間の知能に近づけることは諦めました。人間の知能は人間自身にとっても理解できていない、ブラックボックスの状態です。ブラックボックスブラックボックスのままにしておこう、と決めたのです。

人間のやり方(評価)を手作業で微調整していくのではなく、評価をコンピュータ自身にやってもらうことにしました。コンピュータは評価に関する大量の値の調整をするのが得意だからです。人間よりもはるかに多くの値を高速に調整できます。このような考え方・やり方を「機械学習(機械が自ら学ぶ)」と呼びます。評価に関するプログラムは人間(プログラマ)ではなく、コンピュータ自身が記述するのです。

この機械学習にも今のところ限界はありますが、人間が評価を行っていた時にはできなかったことが、実現可能になっています。特に、ディープラーニング機械学習の仲間)という手法により、画像認識(写真に写っているのはバナナではなくゴリラであると判断・区別する)の精度は既に人間を超えていると言われています。

画像認識を応用すれば、例えば、レントゲンなどの写真から、病気を明確に診断することで、医療に役立てることができます。

【コンピュータにとって、なぜ将棋が難しいのか?】

コンピュータにとって、将棋はチェスよりも難しいと言われています。それは、将棋の方がチェスよりも「何をどう評価すれば勝てるのか?(何をどう計算すればよいのか?)」がわかりにくいからです。何をどう計算すれば良いかがわかれば、コンピュータは計算が得意なので、将棋に勝つのも簡単なことです。そして、「何をどう計算すればよいか?」を人間は知らないので、コンピュータに教えることはできません。

【コンピュータ自身が、人間を手本にして、自ら学ぶ】

機械学習は「教師あり学習」とも呼ばれます。教師あり学習は、人間も普通に行っている「お手本を参考にして学ぶ」こと全般を指す言葉です。

では、将棋AIは何を教師として学び強くなっていったのでしょうか? 最初はプロ棋士が指した過去の手を大量に学ぶ(5万局のデジタルデータ)ことで、強くなっていきました。この学習には、研究で使う最新のPCでも数カ月以上の時間がかかるのだそうです。

機械学習の弱点】

機械学習にも弱点があります。それは、「教師が足りない(学習するデジタルデータが足りない)」という点です。人間は少ない教師(データ)から、多くを学び取ることができますが、コンピュータには、それは出来ないのです。(抽象化の能力が無いからかもしれません)

この弱点をカバーするために、「データのかさ増し」が行われます。例えば、将棋の局面は左右反転させても状況は同じなので、反転させたデータを使い、データの倍に増やすことができます。また、画像認識の分野でいうと、ゴリラの判別をさせるために、ゴリラの画像を10万枚用意するのではなく、インターネット上にある情報を使ったりします。

【将棋AIの強さはプログラマ次第】

「どのように評価するか」はコンピュータが自分で学習するのですが、「どのように探索するのか?」や将棋の基本的なルール、「評価の仕方をどのように学習するのか?」というメタ学習的なことはプログラマが考えてプログラムに記述します。そして、プログラムの書き方によって、プログラムの実行速度が変わります。なので、同じ機械学習を取り入れていたとしても、プログラマの書くプログラム(将棋AI)によって、その強さは異なるのです。

プログラマは経験や勘を頼りに将棋AIを作っている】

現在も日々プログラマは将棋AIに関するプログラムを微調整して、試行錯誤を行っています。ですが、それは「論理的に予測可能なこと」を行っているというよりも、「経験や勘を頼りに」という職人的な発想で行っているのだそうです。そして、行った改良がうまくいく確率はなんと2%!という低確率です。本当に暗闇の中を手探りで行っているのが、現状のようです。ポナンザについて開発者の山本さんは「なぜポナンザが、そういう手を打つのか、僕にも理由がわかりません」「なぜこのプログラムで強くなるのかわかりません」とのこと。

【ハードウェア(CPU)の性能と、その活かし方】

CPUはコンピュータにとっての「頭脳」にあたる部品で、トランジスタという部品の数が増えるに従ってCPUの性能は年々凄いスピードで上昇していきました。そしてコンピュータの速度が高速になると、自動的にプログラムの速度が高まり、将棋AIは勝手に強くなっていったのです。

ですが、ある時点からインテルなどのCPU企業は「トランジスタの数を増やして性能を高める」というのは技術的に限界があることに気付きました。そして、今度は「CPUのマルチコア化」という方法で性能を高めていくことになったのです。CPUひとつならシングルコア、2つならデュアルコア、4つならクアッドコア、というふうに増えていきます。

CPUのマルチコア化とは、CPUの数を増やし(頭脳を増やし)、処理速度を高める方法です。これを「並列処理」と言います。これは、一部のプログラムには効果があったのですが、将棋AIには直接的には効果がありませんでした。これは、大人数で一つの料理を作ると逆に効率が悪くなる、ということと似たような現象で、実際にデュアルコア(二つ)であれば非常に効率良く探索できるそうです。

ここで生まれた方法が「怠惰な並列化」です。大人数で一つの料理を作るのではなく、それぞれが同じ料理を別々に作るのです。そして、一番早く出来上がった料理を食べる、というイメージです。各コアは別々に処理するのですが、発見された良い情報は全てのコアで共有されます。そうすると、実際にすごく効率よく動くのだそうです。ちなみに、この怠惰な並列化についても、専門家は「なぜこれでうまくいくか、完璧には説明できない」のだそうです。

ディープラーニング(深層学習)】

ディープラーニング(深層学習)は機械学習の一種です。グーグル傘下のディープマインド社が作った囲碁プログラム「アルファ碁」が世界トップクラスの囲碁棋士、イ・セドルを破るなど、世界中の研究者がディープラーニングの研究に没頭しています。

ちなみに、将棋AIのポナンザはディープラーニングを使用しておらず、同じ機械学習の一種であるロジスティック回帰を使っています。正確性よりも、速さや軽さに優れているそうです。また、ディープラーニングはあまり速くはありませんが、画像認識に最高の力を発揮します。

機械学習には下記のようなものがあります。

世界中で研究されているディープラーニングですが、10年前は散々な扱いだったそうです。ディープラーニングの前進の技術は「ニューラルネットワーク」と言います。ニューラルネットワーク自体はコンピュータが生まれるのとほぼ同じ時期、つまり70年ほどの歴史があります。

ですが、科学者達の期待とは裏腹に、ニューラルネットワークは70年間ほぼ何も成果を残しませんでした。しかし、世間の空気に負けず、粘り強く研究を続けた研究者たちの手によって、2006年頃から、ニューラルネットワークを何層も重ねた学習に成功した、とう論文が複数発表されます。その時に、「ディープラーニング」という名前が誕生したのです。

今では、画像認識の分野でディープラーニングの技術を使えば、コンピュータや人間よりも高い精度で画像の判別をできるようになっています。

誕生から10年が経ち、ディープラーニングは凄く複雑化したので、ある程度の規模のディープラーニングになると、全体がどんな理屈で動いているかを明確に説明できる人はいなくなりました細部や個別の仕組みは理解できていても、それらを組み合わせた時に、なぜ今のパフォーマンスを発揮できるか、分からないのです。

【今、ディープラーニングでできること】

現在、ディープラーニングの活躍の場はどんどん広がっており、その全貌を把握するのは難しいようです。ですが、「言葉」「音声」「画像」が大きな応用先になるはずだと、山本さんは言います。

まず、「言語認識」の技術ですが、以前からグーグルが「グーグル翻訳」という様々な言語間の翻訳サービスを運用しています。このグーグル翻訳で2016年からディープラーニングが使われているのです。以前よりもかなり正確性の高い翻訳ができるようになっています。

次に、「音声認識」の技術です。音声入力の精度もかなり向上してきているようです。2015年、グーグルは音声入力にもディープラーニングを取り入れると、わずか1年で音声の誤認識率が23%から5%に下がったことを発表しています。

画像認識に関しては、前述したように、人間の精度を超えるようになっています。映っている猫や花の種類も特定できるようになりました。

ディープラーニングに使われる黒魔術的技術】

現在のディープラーニングでは様々なテクニックが使用されており、そのテクニックはほぼ黒魔術化(なぜそれでうまくいくか説明できない)しています。そして多くの黒魔術は、技術的に不安定で、結果を出すのに職人芸的なノウハウが必要になっています。昔の機械学習の現場では数理的な数式を使った説明があったのに対し、現在では「ディープラーニングの気持ち」について語る研究者が多くなっているそうです。

【教師あり学習から強化学習へ】

最強の将棋AIポナンザは最初は、プロ棋士を手本として「教師あり学習」を行い、強くなっていきました。ですが、ある程度強くなってくると、今度はプロ棋士よりも更に強くなるために、「教師なし学習(強化学習)」を行います。教科学習では、未知の環境であっても、投機的に調べて、結果をフィードバックすることで、少しずつ学習していくのです。

強化学習は教師を必要としないため、未知の環境でも学習ができますが、「投機的(適当)に調べる」だけなので、膨大なコンピュータリソースと労力を割いても、本当に少しずつしか向上しないのです。ポナンザの場合、合計で300コアになるマシン数台を数カ月も動かし続けて(電気代は毎月数十万円以上!)、少しずつ強くなっていったそうです。人工知能開発には非常にお金と時間がかかります

囲碁と強化学習】

前述したディープマインド社は、グーグルが買収した人工知能のエキスパート集団の会社です。彼らが特に得意なのが、ディープラーニングと強化学習でした。

囲碁は将棋と違い、「何を評価すればよいか分からない」ため、以前は強いAIを作ることが難しかったのです。ですがモンテカルロ法と呼ばれる手法、ディープラーニング、そして強化学習の3つの手法をうまく使って、最強の囲碁AIの開発に成功しています。その開発の過程で数千万回以上の対局がコンピュータ上で行われています

【シンギュラリティといい人理論】

人工知能の話題に必ずついてまわるキーワードに「シンギュラリティ(技術的特異点」という言葉があります。人工知能が人間の知能をはるかに超えて、爆発的・加速度的な成長・進化をとげることで、人間には全く未知で予測不可能な世界に突入していく時がくるだろう、という未来予測の話です。提唱者のレイ・カーツワイル(グーグルの社員で、AIの総指揮を行っている)は、その時期が来るのは2045年だと予測しています。

このシンギュラリティに対しては、懸念を表明する科学者達(スティーブン・ホーキング博士など)もいます。人工知能の進化が必ずしも、人間の幸福に繋がらないのでは、という疑問を抱く人もたくさんいるのです。

グーグルの写真管理アプリである「グーグルフォト」では、ユーザーが管理しやすいように写真に自動的にタグをつけるサービスがあります。ところが、肌の黒い人が写っている写真を「ゴリラ」と誤ってタグ付けをしてしまったことがあります。これには、人工知能が画像認識の学習をする際に、おそらくインターネット上の大量のデータを使用したことが原因と、推測されます。つまり、ネット上には、肌の黒い人に対して「ゴリラ」と揶揄する言葉が溢れていて、それをAIが学習してしまった、ということです。

AIは最初、何もできません。赤ちゃんのようなものです。人間の赤ちゃんが大人から全てを模倣して学ぶように、AIの赤ちゃんは人間社会に存在するデータを模倣して学んでいきます。人間にも様々なタイプの人間がいます。データも様々です。「良いデータだけ」を与えれば、「良いAI」に育つし、「悪いデータばかり」を与えれば、「悪いAI」に育つということです。ですので、AIが危険、というよりは、「与えるデータ」の問題なんだと思います。

【印象に残ったことリスト】

  • 人間はコンピュータよりも少ないデータから学べる(一般化・抽象化能力)
  • 人間は目的(ゴール)を決めれるし、目的を変えれる
  • 人工知能は目的にたどり着くための、最短ルートを高速で探す
  • 人工知能の研究はハードウェアも大切(大量データの高速処理)
  • ハードの制約が無ければ人工知能の進化は指数関数的(超爆発的!)
  • 人工知能の研究にはビッグデータが不可欠(大量のデジタルデータが必要)
  • そもそも知能が何なのか未解明
  • 人工知能は職人芸的なセンスで作られる部分が大きい
  • 人工知能の研究開発にはお金と時間がかかる
  • 人工知能は人間(のデータ)を模倣して学習する

【まとめ・感想など】

非常にいろんな学びがあり、参考になったのですが、一番驚いたのは、「人工知能について、人工知能の専門家すら理解できていない」ことが多々ある、ということでした。つまり、謎めいた部分があり、逆にその「謎(未解明)」の部分があることが、人工知能(AI)についての知的好奇心をくすぐるのかな、とも思います。

シンギュラリティ(技術的特異点)に関しては、僕はまだ正直「予想は当たるかもしれないし、はずれるかもしれない」という意見です。もっともっと、勉強しないとわかりません。そもそも、「未来を予測して当たる人」というのは、世の中少ないと思います。

どちらにしても、今後しばらくは人工知能開発は世界の注目の的ですし、様々なところで「いつのまにか」実用化されていってるのは間違い無いでしょうから、今後が楽しみです。また、人工知能関連の情報を調べたら、ブログに載せます。

 

 ↓AI(頭脳)だけでなく機械(体)を知りたい方はこちらの記事がおすすめです

papa365.hateblo.jp