当ウェブサイトは安全と利便性向上のためにクッキー(Cookies)を使用しています。詳細はこちら

法人向けクラウド・ネットワークサービスのPacketFabric

人工知能(A.I)とかDeep Neural Netとか

2016年03月30日

世間では「人工知能が現役囲碁九段最強棋士に勝った」と話題になりましたが、「人工知能」についての一般的イメージと、実際の機械学習、深層学習(ディープラーニング)やDeep Neural NetworkやConvolutionalやらRecurrentやらDeep Q-Network やらの仕組については結構乖離があるような気がする今日この頃、CEOの「AIは麻雀にも勝てるんじゃないか」という話から一本書ける、と思い、あまりググらずに勢いで書いてみました。アシモフみたいに周辺事情も書いてしまうエンジニアブログ、ご指摘ご意見ご感想、次回のセミナーのお題などのご要望も受け付けております。(なお、関連事項へのリンクを本文に埋め込んでおりますが、他サイトへの参照となります。外部参照先の内容を保証するものではございません。ご了承ください)


人工知能とは?
一般的な人工知能というと、スマートフォンなどに搭載されているパーソナルアシスタント的なものを想像されるか、もしくは「機械が人間のように意思を持つ」というSF的な想像力を働かせる方が多いと(個人的には)思っているのですが、そもそも「意識とは何か」つまり意思や意識の定義や、意識って何なのという質問の答えもはっきり定まっていない中で機械が意識を持ち得るかと聞かれても、答えがないのが現状ではないでしょうか。

では人工知能とは何だ、ということになりますが、今言われている人工知能(AI)の隆盛からすると、

  1. 与えられたデータを解析して
  2. 現在や未来を把握、予測し
  3. その現在or未来に対応したアクションを返す

ていうシステムの中での進歩だと考えていますので、それらシステムを人工知能と呼ぶのかな、と。与えられたデータを元に何らかのアクションを決定する際に、ランダムに決めるか、既存データと照らし合わせてアクションを決定するのが今までのコンピュータだとすると、単純に照らし合わせるのではなく、データの中からパターンを見つける方法が新しいのではないかな、と思うのです。

また、結局3番目のアクションで「人類は絶滅するべき」て結論が出るかもしれない恐怖については、そもそもアクションの範囲は人間側で定義するもので、「人には逆らわない」とかロボット三原則(Wikipediaへのリンク)を定義しておけば済む話ですし、「意識が芽生えたプログラムが機械の体を乗っ取って脱走した挙句、深夜トラックに轢かれる」(同じくWikipediaへのリンクです)という話にはそんなに簡単にはならない、と考えています。いやSF者としてはそうなったら面白いとかなり本気で思いますけれども。

人工知能、エキスパートシステム
古いAIやLISPの教科書によく出てくるEliza(Siriに質問すると面白い話が聞けるかも)など、質問(データ)を受け取り返事(アクション)するシステムは80年代から「エキスパートシステム」という人工知能システムとして存在していました。

エキスパートシステムを簡単な会話プログラムとして考えると、プログラムはあらかじめランダムな定型文「火曜日」「はい」「いいえ」「シャワー」「風呂」などを用意しておきます。質問者は「今日は暑いですね」など、質問を入力します。プログラムは文章中の「今日」「暑い」などの単語を抽出し、「今日」だったら「今日は火曜日です」とか、「暑い」なら「帰ったらシャワーですね」などの返す答えを決めておきます。試しに「今日は暑いですね」と入力するとランダムにどちらかの答えが返ります。

「今日は暑いですね」
「今日は火曜日です」

これは会話ではありませんが、もう一回やってみて

「今日は暑いですね」
「帰ったらシャワーですね」

こっちはちゃんと会話になりました。この「文章から返すべき定型文やアクションを選ぶ」ところの改良を突き進めると今のスマートフォンに搭載されているパーソナルアシスタントになるから不思議なものです。

機械学習(マシンラーニング)
機械学習というのは、上のシステムの1の部分において、大量のデータを解析する新しい手段だと考えています。なお、ディープラーニングは機械学習の一種です。

会話プログラムを再度例としてあげますが、先のプログラムは質問中の単語だけを抽出して定型文の返事を拾っていました。しかしより正確な把握のためには単語の抽出だけではなく、文章の意味など様々な要素を判断する必要があります。(日本語形態素分析とか調べると結構面白いです) そして文章の意味をコンピュータが正確に把握するために、文章を正確に解析し、正確に評価するプログラムを書かなくてはいけません。たとえば

「流れよ我が涙、と税務官は言った」

この一文に関して、「税務官って誰?」「誰に言ったの?」「涙を流すシチュエーションて何?」「ていうかフィリップ・K・ディックの小説をもじってる?」などの解析を、文節に区切った単語の集まりから行うのは極めて難しいのではないかと思います。

そこで、「解析方法をプログラムするのではなく、大量のデータを元に、機械に解析方法を作らせる」方法が提唱されました。つまりこれが機械学習です。大量のデータと、データからの解析結果の答えを大量に用意してコンピュータに渡します。コンピュータはそれらのデータと答から、何らかのパターンを見つけ出し、新しいデータに対して「パターンに基づく答え」を返すのです。会話プログラムで言うと、大量の「質問」と「答え」データを与えて機械に学習させると

「流れよ我が涙、と税務官は言った」
「その税務官は電気羊の夢を見たんでしょうね」

など、フィリップ・K・ディックの小説をもじった返事ができるプログラムにまで成長するわけです(ここまで成長するかな?)。実際には、大量の英文データと対訳の仏文データを与えて学習させることで、英文から仏文への自動翻訳プログラムができたという実例があります。

機械学習のポイントは、「特定エリアのアルゴリズム(解析方法)を作る方法」ではなく、「コンピュータがアルゴリズム(解析方法)を作る方法」である点です。つまり、大量のデータがあるなら、いろんなエリアに適用することが可能なわけですね。

ここから、DeepMindを率いるDemis Hassabis(“Republic”とか素晴らしいアイデアのゲーム作ってましたね昔)が囲碁AIを作る話につながっていくのです。


深層学習、Deep Neural Network、CPUは麻雀で勝てるかについては次回掲載です。

各種お問合せ、お見積もり、資料請求に関するご質問を承っております。まずはお気軽にご連絡ください。

ページトップ戻る