JunK Engineering Blog

日々学んだ技術に関して記載しています。

「人工知能は人類を超えるか」読書メモ

読書の背景

次のプロジェクトで必要なスキルセットが、
1. 英語
2. 数学
3. 機械学習
だったが、機械学習人工知能を専門的に勉強したことがない。
とは言え、いきなり機械学習人工知能の技術書を読むのはハードルが高い為、先ずは“そもそも人工知能とは何か”から丁寧に解説しているこの本を手に取ってみた。

書籍紹介

グーグルやフェイスブックが開発にしのぎを削る人工知能
日本トップクラスの研究者の一人である著者が、最新技術「ディープラーニング」とこれまでの知的格闘を解きほぐし、知能とは何か、人間とは何かを問い直す。

「人工知能は人類を超えるか」は、人工知能がブームを迎えようとしているその理由と歴史、要素技術と今後訪れる未来に関して、専門家以外にも簡単に理解出来る様に説明している。
私も人工知能機械学習の違いすらよく分からない状態でこの本を手に取ったが、今後の勉強に繋がる基礎知識と心構えを得られた様に思う。

また、日々の人工知能に関するニュースの

  • 嘘 / 本当
  • 本当に凄いこと / 実はそんなに凄くないこと
  • 既に実現したこと / 夢物語

を正確に理解出来る様になれば、「人工知能に滅ぼされる」等の不安を払拭し、人工知能の発展により今後訪れるチャンスを掴むきっかけにもなる。

  • 日々の人工知能のニュースを精確に理解したい人
  • 私の様にAIの本を立ち読みしたが、難しくてやめてしまった人
  • 人工知能の発展がもたらす脅威と機会を見極めたい人

には、一読の価値があると感じた。

読書メモ

以下は、個人的な勉強の為のメモである。
理解を深める為に、他文献で学んだことも含めて記載している。

人工知能とは

人工知能の定義は、専門家により異なるし、一般人から見た時に、どんなものが人工知能と言うのかも明確に定義されてはいない。
著者による定義は、下記の通りである。

一般人からみた人工知能

機械がまるで何かを考えているかの様に見える時、人はそこに知能がある様に感じる。

専門家による定義

人工知能の定義は、専門家によって異なり、"これが人工知能である"とった明確な定義は無い。 著名な研究者による定義は、下記の通り。

  • 松尾豊(著者)
    人工的につくられた人間のような知能。
    人間のように知的であるとは「気づくことのできる」コンピュータ、つまり、データの中から特徴量を生成し現象をモデル化することのできるコンピュータという意味である

  • 中島秀之(はこだてみらい大学学長)
    人工的につくられた、知能を持つ実体。
    あるいはそれをつくろうとすることによって知能自体を研究する分野である。

  • 西田豊明(人工知能学会の元会長で京都大学教授)
    「知能を持つメカ」ないしは「心を持つメカ」

人工知能ができたかどうかを判定する方法

人工知能が出来たかどうか判定する方法として有名なものには、アラン・チューリングが提唱した、チューリングテストがある。

チューリングテストとは
コンピュータと別の部屋にいる人間が画面とキーボードを通じて会話をし、その人が、相手がコンピュータだと見抜けなければ合格というもの

「完全な人工知能が出来れば、インターフェースが同じ場合、相手が人間か人工知能かは見抜けない」という前提に立ったテストである。

人工知能とロボットの違い

人工知能とロボットの研究が同じであると思っている人は意外と多く、著者の研究室を訪ねて来る人の半分くらいは、これらの区別がついていないらしい。

人工知能はロボットの脳みそに当たるが、人工知能研究者はロボットの脳みそだけを研究している訳ではない。
将棋や囲碁の様なゲーム研究ではロボットの様に物理的な身体は必要ないし、医師の診断や弁護士の助言の様な、入力した情報を基に判断をする能力の研究にも身体は不要である。
つまり、人工知能研究は、「考える」ことを実現するために、抽象的な「目に見えないもの」を扱っている学問である。

f:id:junki-k:20170831203915p:plain

人工知能のレベル

人工知能は、出来ることと実装方法により、下記の様に4段階に分類出来る。
著者による分類は、下記の通りである。

Level 定義 説明
1 単純な制御プログラム マーケティング的に人工知能やAIと名乗っているだけで、実態はごく簡単な制御プログラム。「制御工学」や「システム工学」という名前で、既に長い歴史がある。
2 古典的な人工知能 振る舞いのパターンが極めて多彩な制御プログラム。推論,探索,知識ベース等の採用で、入力に対する出力が多彩になることで、一見考えている様に見える。掃除ロボット等がこれに当たる。
3 機械学習を取り入れた人工知能 機械学習を使い、サンプルデータを基にルールや知識を自ら学習するもの。最近の人工知能というと、これを意味する場合が多い。
4 ディープラーニングを取り入れた人工知能 機械学習をする際のデータを表すために使われる変数(特徴量と呼ばれる)自体を学習するもの。米国では、ディープラーニング関連分野の投資合戦・技術開発合戦・人材獲得合戦が熾烈を極めている。

人工知能の歴史

人工知能は、これまで2度のブームと冬の時代を過ごし、現在3度目のブームを迎えている。

時代 時期 概要 ブームが終わった理由
第一次AIブーム 1950年代後半~1960年代 コンピュータによる推論・探索の技術が進んだ トイプロブレムは解けても、複雑な問題は解けないことが分かった為
第二次AIブーム 1980年代~1995年頃 コンピュータに知識を入れると賢くなるというアプローチが全盛を迎えた 知識を記述、管理することの大変さが明らかになったこと
第三次AIブーム 1980年代 ビッグデータ機械学習ディープラーニングが生まれたことに加え、IBMのワトソンや将棋電王戦等、象徴的な出来事が重なり、ブームを迎えている。 継続中(2017年現在)

要素技術

第三次AIブームの主役であるディープラーニングは、これまで脈々と続いて来た人工知能機械学習の研究の上に成り立っている。
人工知能の歴史を振り返りつつ、それぞれの時代に研究開発された要素技術に関して、下記に記載する。

推論と探索

第一次AIブームの中心となった技術。
「推論」は人間の思考過程を記号で表現し実行するものであるが、処理としては探索と近い為、この本では探索を詳しく説明している。

探索とは、ある特定の状態を満たす解を、決められたルールで探すこと、要するに「場合分け」である。
例えば、迷路を解く様なプログラムを考える。
プログラムは、スタート地点から出発し、壁にぶつかる度に分岐に戻って、また次の分岐点まで進む。
この様に、迷路の辿り方に関するルールを定義し、そのルールに従って正解を探し出す行為が、探索である。
探索では、迷路の辿り方を木構造で表現することが出来る。
探索では、この木の枝を上から順番に辿り、答えを見つけ出す。

f:id:junki-k:20170905182644p:plain

勿論、迷路だけでなく、ハノイの塔等、場合分けをして正しい解を特定する問題であれば、何でも適用することが出来る。

探索には様々な手法があるが、有名なものは、深さ優先探索幅優先探索である。

  1. 深さ優先探索
    深さ優先探索とは、迷路が枝分かれした場合、行き止まりになるまで迷路に深く潜り、行き止まりになれば、最初の分岐に戻り、また可能な限り深く潜るという手順を繰り返す探索手法である。
    メリット
    分岐点を大量に記憶しておく必要が無い為、幅優先探索に比べてメモリの消費量が少ない。
    デメリット
    試行回数を重ねないと解に辿り着かない場合、非常に効率が悪くなる。
  2. 幅優先探索
    幅優先探索とは、分岐点に出会う度に、全ての分岐点を辿った後、次の分岐点まで掘り下げる手法である。
    木の全ての分岐を辿りながら、階層を掘り下げていくイメージである。
    メリット
    全ての枝を同時に掘り下げて行く為、解の位置に関わらず、基本的に同じコストで探索を完了することが出来る。
    デメリット
    全ての手順で辿る分岐点を記憶しておく必要がある為、分岐数が多い場合はメモリを大量に消費する。

実際の探索では、幅優先探索深さ優先探索の良いとこ取りをした、最良優先探索等が使われる。
この探索と推論を用いて、様々な問題を解こうと研究が盛んに行われた。
しかし、結局このやり方では、トイプロブレムしか解くことが出来ず、少し複雑な問題を解こうとすると、場合分けする際に組合せ爆発を起こし、いつまで経っても探索が終わらないといった限界を迎えた。
つまり、現実の問題を解くことが出来ないことが分かり、第一次人工知能ブームは終焉を迎えた。

知識

第二次AIブームの中心となった技術。
第一次AIブームの中心であった推論と探索を用いると、迷路やパズル等の問題を解くことが出来た。
また、より現実的な問題の例として、ロボットの行動計画等も作ることが出来る。
ロボットの行動計画は、ロボットの置かれた状態に対して、行動結果を定義しておけば、ロボットは指示(インプット)を基に、目的を達成(アウトプット)することが出来る。
つまり、ロボットの置かれた状況を基に、取るべき行動を特定する為の木構造(決定木)を定義し、この木を探索する事で、ロボットの行動を特定する。
この探索では、細分化された大量のルールを登録すると、決定木の枝が増え、細かな振る舞いが可能になる為、より賢く見えるロボットを作ることが出来る。
この細かな振る舞いの基になるルールのことを、知識と呼んでいる。

第二次AIブームでは、知識を大量に登録することで、トイプロブレムだけでなく、現実の問題を解こうとする研究が盛んに行われた。
知識を用いると、様々な現実の問題を解くことが出来るのではないか。
例えば・・・
医者の代わりになるAIを作りたければ、大量の医学の知識を
弁護士の代わりになるAIを作りたければ、大量の法律の知識を
それぞれ登録すればいい。
そうすることで、知識を基にした細かな場合分けが行われ、賢い人工知能が出来るのではないか。
そう考えられたのが、第二次AIブームである。

第二次AIブームでは、専門家の代わりとなるエキスパートシステムが積極的に開発された。
エキスパートシステムとして実運用に耐えうるAIを作るには、専門家からヒアリングして大量の知識を取り出さなければならない。
しかし、これには膨大なコストと時間が必要であった。
また、知識の数が増えてくると、それらが矛盾しない様に整合性を保ったまま管理することが、非常に難しいことが分かってきた。
また、少し高度な分野でエキスパートシステムを作ろうと思うと、より広範囲な知識を扱う必要がある為、膨大な知識を登録しなければならず、登録する時間も維持管理の難しさも、コストに見合うものではなくなってしまった。
更に、膨大な知識を登録し終え、適切にメンテナンスが出来た場合でも、知識の取り出す際に別の問題が生じることも分かった。
例えば、ロボットが何か荷物を持って来るように言われた際、

  • ロボットの居る地面の材質は何なのか
  • 近くの壁の色は何色なのか
  • 今日の天気は晴れなのか雨なのか

等、本来の目的と無関係な知識が、与えられた命令にどう関連しているのかを判断出来ず、全ての知識を基に条件分岐を行おうとしてしまう。
その為、膨大な計算が必要となり、処理時間が現実的ではなくなってしまうことが分かった。
これをフレーム問題と呼ぶ。
この様に、人間なら簡単に行っている、本来の目的とは無関係の知識を排除して考えることを実現するのが、人工知能には非常に難しいことが分かったのだった。
その結果、知識を登録するだけでは、高度に実用的なエキスパートシステムは実現不可能であると判断され、第二次AIブームは終焉を迎えた。

機械学習

機械学習は、第三次AIブームの主役と言える技術である。
第二次AIブームでは、「知識」を大量に登録すれば、それらしい振る舞いはある程度実現出来た。
しかし、知識以上のことをすることは出来ないし、知識の登録と維持管理は困難を極めた。
そんな中、注目され始めた技術が機械学習である。

機械学習のアプローチは、統計的自然言語処理を例に取ると分かり易い。
統計的自然言語処理は、翻訳を行う際に文法や意味を考えず、単に“この単語の組み合わせと順番の場合は、こう訳されることが多い”といった、訳される確率の高いものを当てはめるだけという、訳し方を機械的に見つけようという分野である。
機械学習では、仕分けの方法を人工知能のプログラムが自分自身で見つける。
この様に、プログラム自身が分け方を見つけ、その精度(正しく分けられる確率)を上げていくことを学習と呼ぶ。
機械学習には、大きく分けて教師有り学習教師無し学習の2つがある。

  1. 教師有り学習
    教師あり学習とは、「入力」と「正しい出力(分け方)」がセットになった訓練用のデータ(ラベル付きデータ)を予め用意し、入力が与えられた際に正しい出力となる様に、コンピュータに学習させる方法である。
    通常、人間が教師役として、正しい分け方を教える。
    例えば、ある画像を与えられた時、その画像に写っているのが猫なのかどうかを見分けたいとする。
    この時、機械学習のプログラムには、大量の猫の画像とこれは猫であるという答えをセットにしたものを、ラベル付きデータとして与える。
    すると、プログラムは、大量のラベル付きデータから、共通する特徴(猫である可能性が高い特徴)を見つけ出す。
    つまり、猫であるかどうかの分け方を自分で学習する。

  2. 教師無し学習
    教師無し学習とは、出力すべきもの(分け方)が決まっていない状態で、プログラムには答えの無い入力データのみを与え、どんな分け方があるのかを考えさせることである。
    教師無し学習は、あるデータの構造(そのデータが持つ一定のパターンやルール)を抽出することを目的に使われる。
    例えば、スーパーマーケットの購買データと顧客データを基に、「午後5時から7時の間に来店した男性客の内、おむつを買う人はビールを一緒に買う傾向がある」といったパターンを抽出することに使われる。

機械学習の課題 と ブレークスルー

機械学習を用いると、分け方をコンピュータが自分で学ぶことで、未知の特徴を特定することが出来る。
この特徴は、人間が与えた変数を基に特定される。
例えば、前述のおむつとビールの例の場合、購買した商品の組み合わせ・購入時間・購入者の性別等を変数として、この変数の値を基に特徴を特定する。
この特徴を特定する為にプログラムに与える変数のことを特徴量と呼ぶ。
特徴量を何にするのかによって、分け方の材料が異なる為、特徴量の設計は学習精度に大きく影響を与える。
従来の方法では、この特徴量を何にするのかを、人間が設計してきた。
ここに従来の機械学習の限界がある。
未知のものの分け方を特定したいにも関わらず、その分け方の基準となる特徴量は、人間が設計する必要があった。
この特徴量の設計が困難を極め、機械学習は壁にぶち当たっていた。

ところが近年、この機械学習の壁に風穴を開ける技術が登場した。
つまり、特徴量の設計を人間が行わず、特徴量自体を自ら学習する手法が発見されたのである。
この手法が、ディープラーニングである。

ディープラーニング

ニューラルネットワーク

機械学習は、前述の様に、あるものの分け方を特定する方法であるが、分け方には様々な種類がある。
ここでは、ディープラーニングや、その基盤技術であるニューラルネットワークを説明する前に、分け方に関して簡単に述べる。
これまで考案された分け方には、下記の様な手法がある。

  • 決定木
    前述の木構造を用いて、「ある特徴が存在するかどうか」で仕分けを行う方法である。
    例えば、ある文章が何に関して述べているのかを分類したいとする。
    この時、文章に含まれる単語を基に仕分けルールを作ることが出来る。
    文章に「与党」という言葉が登場した場合は、政治に関する文章
    「為替」という言葉が登場した場合は、経済に関する文章
    といった具合である。
    実際は何重にも条件を重ねて分岐を行う(木が枝別れを繰り返す)が、この様に木構造を使って仕分ける方法が、決定木である。
  • ナイーブベイズ
    ナイーブベイズ法は、ベイズの定理を使って、あるデータがどの分類に属する確率が高いのかを求める方法である。
    例えば、 分類「政治」には、"与党"という単語が5回、"為替"が1回含まれ、
    分類「経済」には、"為替"が3回、"与党"が1回、"物価"が2回
    それぞれ登場するとする。
    今、新しい文章が与えられ、この文章には、"与党"が2回、"物価"が3回、"為替"が1回含まれている。
    この含まれている単語の数から、新規の文章が政治と経済どちらに分類される可能性が高いかを求めるのが、ナイーブベイズ法である。
    ナイーブベイズ法は、迷惑メールの振分けルール等でよく使用されている。
  • 最近傍法
    最近傍法は、属性の分類に座標空間を利用する方法である。
    例えば、ある文書を分類する際、その文書に含まれる単語「与党」の数をx軸、「為替」の数をy軸とした座標系を考える。
    f:id:junki-k:20170911001007p:plain
    この座標系において、
    xが5, yが1以上の領域は政治
    xが2, yが3以上の領域は為替
    といった具合である。
    この様な座標系がある時、新規の文章をプロットし、それがその分類の属性に最も近いのかを計算し、新規文章の分類を特定する方法が、最近傍法である。
  • サポートベクターマシン
    サポートベクターマシンは、ここ15年ほど流行っていた手法で、マージン最大化という考え方です。
    例えば、「政治」に関する文章と、「経済」に関する文章が複数存在する環境で、これらを白黒真っ二つに分けたいとする。
    これを実現するには、政治の集合の最も経済よりにある点(A) と 経済の集合の最も政治よりにある点(B) との間に、線を引く必要がある。
    この時、最も明確に分けることが出来る境界線は、点Aと点Bからの距離がちょうど同じになる線、つまり、お互いの集合から基も離れたところに引かれた線である。
    このお互いの集合から最も離れた所に線を引く、という分け方のことを、サポートベクターマシンという。
    サポートベクターマシンは精度が高く、汎用性にも優れていた為、実用化も多く行われた。
    しかし、データ量が大きくなると計算量が膨大になるなどの欠点もあった。
  • ニューラルネットワーク
    ニューラルネットワークとは、これまでに述べた分け方とは少し異なり、人間の脳の神経回路網を数式で模したモデルを使用して、仕分けを行う手法である。
    ニューロン
    神経細胞(ニューロン)は、電気信号を発して信号を伝達する特殊な細胞である。
    1つの神経細胞は、長い軸索と木の枝の様な樹状突起が伸びている。
    これらの突起が、他の神経細胞と繋がり合い、複雑なネットワークを形成している。
    脳は、千数百億個のニューロンが絡み合って出来ており、脳の全ての神経細胞から伸びる軸索や樹状突起を繋げると、1万Kmにもなるという。
    f:id:junki-k:20170910224903p:plain 信号の伝達
    樹状突起は、他のニューロンからの電気信号を受け取る為の受信機である。
    樹状突起から信号を受信したニューロンは、軸索から他のニューロンに信号を伝える。
    軸索と樹状突起の接合部(シナプス)は、直接接触しておらず、空間があり、ここでは電気信号ではなく化学物資による伝達が行われている。
    電気信号が軸索の先端に達すると、軸索の先端から神経伝達物質と呼ばれる化学物質が放出される。
    樹状突起の先端には、この神経伝達物質を受け取る受容体(レセプター)があり、ここに神経伝達物質が到達すると、受け取った側のニューロンで電位が発生する。
    ニューロンの細胞内は、通常外側よりも低い電位を保っているが、この細胞内外の電位差を膜電位と呼ぶ。
    樹状突起から入力があると、膜電位一時的に高くなるが、入力が一定以下の場合は、またすぐ元に戻る。
    しかし、閾値を越える入力があった場合は、膜電位が急激に高くなり、軸索を伝って他のニューロンに信号が伝達される。
    つまり、レセプターが一定数以上の神経伝達物質を受け取り、一定以上の電位が発生して初めて、他のニューロンに信号が伝達される。
    学習の仕組み
    先程述べた様に、レセプターが一定以上の神経伝達物質を受け取り、膜電位が一定以上に高まり閾値を越えなかった場合は、他のニューロンに信号が伝達されることはない。
    これが人間の思考や記憶等に関係している。
    繰り返し信号が来ると、レセプターの数が増え、そのシナプスの感受性が高まり、よりスムーズに情報が流れる様になるのだ。
    この仕組を数学的にモデル化し、プログラミングしたものが、ニューラルネットワークである。
    数学的モデルでは、あるニューロンに対し、他のニューロンから0か1の入力があると、その入力値に重み付け(これがシナプスの感受性に当たる)を行う。
    重み付けされた値が一定の閾値を超えると1になり、超えなければ0になる。
    1になった場合は、それがまた次のニューロンに受け渡されるという具合である。
    実際のニューロンでは、学習によってシナプスの結合度が強化されていき、感受性が高まる。
    ニューラルネットワークでは、重み付けを変化させて最適な値が出力される様に調整を行い、精度を高めていく。
    ニューラルネットワークによる学習
    ニューラルネットワークでは、適用したい問題に合わせてラベル付きデータを大量に用意する。
    例えば、手書きの数字を認識する様に学習させたい場合を考える。
    手書きの数字を学習させたい場合は、MNISTというデータセットが良く用いられる。
    MNISTとは、Mixed National Institute of Standards and Technology databaseの略であり、手書きの数字0~9の画像、に正解ラベルが付与されたデータセットである。
    この画像をピクセル単位に分解してニューラルネットワークに入力する。
    ニューラルネットワークには、入力層, 隠れ層, 出力層の3種類の層があり、入力されたデータは、
    入力層 隠れ層 ・・・ 隠れ層 出力層
    と順に出力される。
    出力層は、0から9を表す10個のニューロンで構成されており、例えば8に対応するニューロンに出力された値が最も高い場合は、入力された画像は8であると判定したことになる。
    あるニューラルネットワークに、手書き文字の「3」を与えた時、もし間違えて8という結果が出たとすると、入力層と隠れ層を繋ぐ部分の重み付け, 隠れ層と隠れ層を繋ぐ部分の重み付けをそれぞれ変更してみて、正しい答えが出る様に調整を行う。
    この調整を何度も行うことで、最終的に正しく3と認識する様に精度を上げていくのだ。
    この様に、答え合わせをして間違える度に重み付けを調整して精度を向上させていく学習方法の代表例に、誤差逆伝播がある。

これまでの課題とブレークスルー

課題
前述の機械学習によって、分け方をコンピュータ自身が見つけることで、未知のものを認識・予測することが出来ることが分かった。
しかし、この技術にも、与える特徴量で精度に大きな違いが出てしまうという、大きな弱点がある。
つまり、結局の所、特徴量をどうするかという、最も難しい所は人間に依存しており、不適切な特徴量設計をしてしまった場合、いつまで経っても精度が上がらないといった問題にぶつかってしまうのだ。
例えば、ある人の属性データから年収を予測する場合を考える。
与えられたデータから、性別, 居住地域等を使って年収を予測することは、前述の機械学習アルゴリズムが行ってくれる。
しかし、分け方の材料となる特徴を何にするのかは、入力を与える人間が設計しなければならず、ここで年収に相関が無い様な特徴(誕生日や身長,体重等)を特徴量として与えてしまった場合、良い結果を期待することは出来ないだろう。
年収の場合は簡単に想像出来るかもしればいが、もっと複雑な問題に機械学習を適用しようとした場合、特徴量設計は非常に難しい。
この特徴量の設計が、機械学習における最大の関門であり、この特徴量設計を人間が行わなければならなかった為に、これまで人工知能は実現出来なかった。
しかし、近年この特徴量自体をコンピュータに生成させる技術が出来つつある。
このブレークスルーがディープラーニングである。
ブレークスルー
ILSVRC(Imagenet Large Scale Visual Recognition Challenge)という、世界的に有名な画像認識のコンペティションがある。
このコンペでは、ある画像に写っているのがヨット, 花, 動物, 猫のいずれであるのかをコンピュータで識別し、そのエラー率(間違える確率)を競う。
2012年、このコンペで、東大, オックスフォード, ゼロックス等の名だたる研究機関が開発した人工知能を抑え、初参加のトロント大学が開発した人工知能が圧倒的なエラー率の低さで優勝した。
これまでの画像認識では、画像を識別する為の特徴量を人間が設計していた。
しかし、優勝したトロント大学人工知能SuperVisionでは、特徴量をコンピュータが自ら獲得する技術であるディープラーニングが使用されていた。
ディープラーニングは、ニューラルネットワークを何層にも深く(ディープに)重ねた、多階層のニューラルネットワークである。
ニューラルネットワークを深くすることは、当然の試みとして昔から行われてきた。
人間の脳は何層にも重なった構造をしているし、3層ニューラルネットワークで上手くいくのだから、それを4層5層と深くしていけば更に精度が良くなるだろうと予測するのは、当然の試みである。
しかし、どうしても上手くいかず、精度が上がらなかった。
深い層には、誤差逆伝播が届かないのである。
ディープラーニングでは、

という2つの技術を使用し、この問題を解決した。

  • 自己符号化器(オートエンコーダー)
    オートエンコーダーでは、2つのことを行っている。
    1つ目は、隠れ層の次元を小さくすること
    2つ目は、入力と出力を同じにすること
    である。
    ニューラルネットワークでは、教師有り学習を行うフェーズが必要である。
    手書きの3を入力として与え、その正解データとして「3」を与えていた。
    しかし、オートエンコーダーでは、入力と出力を同じにする。
    つまり、手書きの3の答え合わせとして同じく手書きの3を与える。
    これに何の意味があるのか。
    オートエンコーダーでは、隠れ層の次元が小さい為、小さな情報量に圧縮して次の層に伝えなければならない。
    また、入力と出力が同じである為、圧縮した情報を復元しなければならない。
    つまり、このニューラルネットワークでは、情報を復元可能な特徴に圧縮する何らかの方法を学習しなければならない
    f:id:junki-k:20170910230303p:plain こうして、高次元の特徴量をコンピュータが自ら獲得するのである。
  • 階層毎の学習
    オートエンコーダーでは、高次元の特徴量を獲得することが出来た。
    階層毎の学習では、この高次元と特徴(隠れ層の出力)を一旦入力層と同じ次元に復元し、次の層への入力とする。
    つまり、手書き文字の高次元の特徴として取り出した抽象的な画像を次の入力として渡すことを繰り返す。
    こうして得られた深い階層にある抽象的な画像は、復元可能で抽象的な画像、つまり手書き文字の3の概念と言える特徴が得られる。
    この様に手書きの3の概念を獲得していく学習手法を、ディープラーニングと呼んでいる。
    ロバストネス
    今後、この技術が飛躍を遂げるかどうかは、頑健性(ロバストネス)を高められるかどうかに掛かっている。
    例えば、ある地域の天気を予測したい時、たまたま教師データで、ある地域とある地域の天気が似ている日が続いたとする。
    これをそのまま与えると、このたまたま続いた同じ天気を相関があると勘違いして学習してしまうのである。
    これを防ぐ為に、インプットとなるデータにノイズを混ぜたり、隠れ層のニューロンを一部停止させた状態で学習させたりする。
    こうすることで、例外が与えられたとしても、ある特徴量が他の特徴量をカバーする様に学習が行われ、ちょっとやそっとのノイズでは、びくともしない頑健な学習結果が得られるのである。

今後の進化

現在のディープラーニングは、画像の特徴量を抽出することが出来る様になった。
今後は、マルチモーダルな特徴量、つまり圧力センサや音声による画像以外の感覚的なデータを抽象化することが可能になると筆者は予想している。
それが出来る様になると、コンピュータ自らの行動とその結果を抽象化出来る様になる。
そうして試行錯誤の連続的なデータを得ることで、より高度に現実世界の特徴量を切り出せる様になる。
この様にして、より人工知能の実現に近づいていく。
とは言え、シンギュラリティで議論されている様な「真に自己を設計出来る人工知能」の実現は程遠く、現在のところその糸口すらつかめていない。
しかし、人工知能が社会インフラになることは確実であり、様々な問題が生じる前に対応策等を議論し尽くす必要がある。

産業への影響

人工知能は、知識のOSと筆者は述べている。
ビッグデータを活用するサービスは、人工知能という汎用的な学習技術の基盤の上に構築される。
その汎用的な学習技術を押さえた組織・国が、業界を横断して独占的な市場を築くことは想像に難くない。
PC市場を俯瞰すれば分かり易いが、OSをMicrosoftに、CPUをIntelに握られている日本のメーカーが苦しんでいる様に、人工知能でも同じことが起こり得る。
また、人工知能では、学習部分を特定の企業に握られてブラックボックス化され、学習済みの製品だけが世に出回る様な状況になると、更に逆転が難しい。
学習済みの製品をリバースエンジニアリングして、仕様や仕組みを特定することが出来ないからである。
日本では、下記の様な問題を解消しなければ、この競争に破れ、辛酸を舐めることになる可能性がある。

  • データの利用に関して、非常に警戒心が強い
    個人情報保護やプライバシーを強調し過ぎて、ビッグデータの利用が進まない
  • データの利用に関する法整備が遅れている
    日本の様に情報を横に束ねるプレーヤーが少ない国では、データ活用の為の法整備は必要不可欠
  • ものづくり優先の思想
    OSやWeb技術等の目に見えないものに対する理解が得られ難い環境であり、人工知能にピンと来ない人も多い
  • 人工知能に悲観的な学会・業界 これまで人工知能は、2度の冬の時代を乗り越えてきた。
    3度目のブームが来ているが、人工知能に対する期待値を適切にコントロールし、3度目の春が終わらない様にせねばならない。
  • 人工知能に投資できる企業が少ない
    日本には、GoogleFacebookの様に、人工知能への投資が短期的に正当化出来る企業が少ない。
    つまり、残念ながら日本には、「機械学習の精度が上がると売上が莫大に伸びる」というビジネスモデルを築いている企業がほとんどいないのである。

では、これらの危機的状況を乗り越え、日本が逆転するにはどうすれば良いのか。
日本は古くから人工知能の研究に取り組んで来た為、人材が沢山おり、研究が盛んに行われている。
つまり、日本は人工知能に関する人材の厚みの面では、諸外国に比べて恵まれているのである。
現在の機械学習の研究は、まだアルゴリズムの開発競争の段階であるが、次の段階では、データを大量に保有している所ほど有利な世界になる。
そうなった場合、日本には世界的なプラットフォーム企業が存在せず、データを大量に保持している外国の企業に太刀打ち出来ない。
そうなる前に、出来る限りのアドバンテージを持つ必要があり、あまり時間的猶予は無い。
逆転の鍵を握るのは、人工知能の活用である。
我々が、日々の仕事や生活の中で、人工知能をいかに活用していけるのかが、残り少ない時間で日本が逆転出来るかどうかを左右するだろう。

感想

機械学習人工知能に関する書籍を読んだのは初めてであるが、上記に記載した様な内容を自分で調べ、初心者なりにアウトプット出来る所まで案内してくれた。
今後、より詳しく勉強していくつもりであるが、その為の準備体操を終えることが出来た様に思う。
仕事で人工知能機械学習に関して知る必要がある人は、この本を一度手にしてみてはどうだろうか。