目次


人工知能、機械学習、コグニティブ・コンピューティングの入門ガイド

Comments

人間はインテリジェント機械を構築するというアイデアを、世紀をまたいで追及してきました。その間ずっと、人工知能 (AI) は成功を収めたり、潜在能力が十分に発揮されていないことが明らかになったりと、浮き沈みを繰り返しています。最近では、新たな問題に対して機械学習アルゴリズムを応用するというニュースが溢れています。癌の発見と予知から、画像の認識と要約、そして自然言語処理に至るまで、AI が人間に力を与え、私たちの世界を変えつつあります。

現代の AI の歴史には、偉大なドラマに見られるあらゆる要素が揃っています。1950 年代の初め、思考機械およびアラン・チューリングやジョン・フォン・ノイマンなどの興味深い人物を中心に、AI は初の台頭期を迎えました。その後の数十年間は急成長期と停滞期の繰り返しでしたが、とてつもなく高い期待の中、AI とその先駆者たちが進歩を遂げたことは確かです。最近では、AI の重点は深層学習とコグニティブ・コンピューティングなどのアプリケーションと、それらを実現するテクノロジーに置かれていて、AI が持つ真の潜在能力が明らかになっています。

この記事では、AI とその副分野に伴う重要ないくつかの側面を見ていきます。まずは AI の歴史を辿った後、それらの要素について 1 つずつ詳しく探ります。

現代の AI の歴史

1950 年代の初め、現代の AI が焦点としていたのは「強い AI」と呼ばれるものでした。強い AI とは、人間がこなせる知的作業全般を実行できる AI のことを意味します。強い AI には進展はなかったことから、「弱い AI」と呼ばれる考えが生まれました。弱い AI は、限定した問題に AI テクノロジーを適用することを意味します。1980 年代に入るまでは、AI の研究は強い AI と弱い AI という 2 つのパラダイムに分かれていました。一方、1980 年頃になると、AI の研究においては機械学習が優勢を占める分野となってきました。機械学習の目的は、学習してモデルを組み立てる能力をコンピューターに持たせ、特定の分野で予測するなどといったアクティビティーを実行できるようにすることです。

図 1. 現代の AI の歴史
現代の AI の歴史を示すグラフ
現代の AI の歴史を示すグラフ

新世紀を迎えた頃、AI と機械学習の両方の研究に基づく、深層学習という分野が生まれました。コンピューター科学者たちは、新しいトポロジーと学習方式を使用した層をいくつも重ねた、ニューラル・ネットワークを使用するようになったのです。このニューラル・ネットワークという進歩により、さまざまな分野での複雑な問題が解決される結果となりました。

この 10 年間に、学習して人間と自然に対話できるシステムを構築することを目標とした、コグニティブ・コンピューティングが出現しました。コグニティブ・コンピューティングの力を実証したのは、アメリカのクイズ番組ジェパディで世界屈指の対戦相手に圧勝した IBM Watson でした。

このチュートリアルでは、以上の各領域を取り上げ、その領域を成功に導いた重要なアルゴリズムのいくつかを探ります。

基本的な AI

1950 年以前の研究で、脳を形成するのは、思考と意識に作用して何らかの方法で調整する、電気パルスのネットワークであるという考えが発表されました。アラン・チューリングは、どのような計算でもデジタルという形で実装できることを論証しました。この 2 つを考え合わせると、人間の脳を模倣した機械を構築するという着想が、的外れとは言えないでしょう。

初期の研究の大半では、このような強い AI という側面に重点が置かれていましたが、時を同じくして、現在のすべての機械学習と深層学習がベースとしている基本概念が発表されました。

図 2. 1980 年までの AI 手法の経緯
1980 年までの AI 手法の経緯を示すグラフ
1980 年までの AI 手法の経緯を示すグラフ

AI 分野の多くの問題は、総当たり探索 (深さ優先探索や幅優先探索など) によって解決できます。けれども、そこそこ複雑な問題の探索空間を考えると、基本的な探索では途端に歯が立たなくなってしまいます。探索手法としての AI の初期の例としては、チェッカー・プログラムの開発が挙げられます。アーサー・サミュエルが IBM 701 Electronic Data Processing Machine 上で開発した初のチェッカー・プログラムでは、アルファ・ベータ法という探索木の最適化を実装していました。彼は、プログラムが特定の一手に対する評価も記録するようにして、対戦を繰り返すたびにアプリケーションが学習できるようにしたのです (したがって、このプログラムは初の自己学習プログラムと言えます)。さらに、サミュエルはプログラムの学習速度を早めるために、プログラムに自分自身と対戦させて学習能力を高められるようにしました。

多くの単純な問題には探索を適用すると功を奏しますが、選択肢の数が増えてくると、この手法は瞬く間に効果を失ってしまいます。単純な三目並べのゲームを例に挙げると、対戦の開始時に○または×を書き込めるマスは 9 個あります。マスに書き込むと、対戦相手には 8 個の選択肢が残されます。三目並べのゲーム木には、(ローテーションの最適化によって重複が取り除かれていない状態では) 全部で 362,880 個のノードがあります。これと同じ思考実験をチェスや碁に当てはめてみると、探索手法の欠点がすぐに見えてくるはずです。

パーセプトロン

パーセプトロンは、単層ニューラル・ネットワークに使用された初期の教師あり学習アルゴリズムです。パーセプトロン・アルゴリズムでは、入力の特徴ベクトルに基づいて、入力を特定のクラスに属するものとして分類する方法を学習します。線形分類では、トレーニング・セットを使用してネットワークの重みとバイアスを更新できます。パーセプトロンは IBM 704 向けに初めて実装され、その後、画像認識を目的にカスタム・ハードウェア上に実装されるようになりました。

図 3. パーセプトロンと線形分類
パーセプトロンと線形分類を示すグラフ
パーセプトロンと線形分類を示すグラフ

パーセプトロンは、線形分離可能な問題には対応できましたが、線形分類子としてのパーセプトロンに伴う制約を説明する重要な例として、排他的論理和 (XOR) 関数を学習できない点がありました。この問題を解決したのが、多層パーセプロトンです。この多層パーセプロトンが、より複雑なアルゴリズム、ネットワーク・トポロジー、そして深層学習への道を切り開くことになりました。

クラスタリング・アルゴリズム

パーセプトロンを使用するときに採られていたのは、教師あり学習の手法です。教師あり学習では、ユーザーが提供したデータを使用してネットワークをトレーニングしてから、新しいデータに対してネットワークをテストします。クラスタリング・アルゴリズムでは、教師なし学習と呼ばれる、別の手法を採用しています。このモデルのアルゴリズムでは、データの 1 つ以上の属性に基づいて、一連の特徴ベクトルをクラスターに分けて編成します。

図 4. 2 次元の特徴空間内でのクラスタリング
2 次元の特徴空間内でのクラスタリングを示すグラフ
2 次元の特徴空間内でのクラスタリングを示すグラフ

わずかな量のコードで実装できる最も単純なアルゴリズムの 1 つは、k 平均法と呼ばれるものです。このアルゴリズムでの k は、サンプルの割り当て先として使用できるクラスターの数を表します。クラスターを初期化するには、ランダムな特徴ベクトルを使用できます。初期化した後、その他すべてのサンプルを、それぞれに最も距離が近いクラスターに追加します (各サンプルが機能ベクトルを表し、ユークリッド距離を使用して「距離」を特定することが前提となります)。サンプルをクラスターに追加するごとに、クラスターの重心 (つまり、クラスターの中心) が計算し直されます。その後、アルゴリズムでサンプルを再度チェックし、最も距離が近いクラスター内にあることを確認します。この処理を、サンプルによってクラスターのメンバーシップが変更されなくなるまで続けます。

k 平均法は比較的効率の良い手法ではありますが、k (クラスターの数) を前もって指定しなければなりません。データによっては、階層や分布に基づくクラスタリングといった別の手法のほうが効率的にデータを処理できる可能性があります。

決定木

クラスタリングに密接に関連するのが、決定木です。決定木とは、何らかの結論を導く観測に関する予測モデルを指します。結論は木の葉として表現され、観測内容が枝分かれする決定ポイントがノードとなります。決定木を構築するために使用する学習アルゴリズムでは、(再帰パーティション分割と呼ばれるプロセスを通じて) 属性値のテストに基づいてデータ・セットをサブセットに分割します。

この仕組みを、以下の図に示す例で説明します。このデータ・セット内では、3 つの要因に基づいて生産的な行動を観測できるようになっています。決定木の学習アルゴリズムでは、メトリックを使用することで、属性を特定できます (メトリックの一例は、情報獲得です)。この例の場合、生産性の第一の要因は心的状態であるため、上機嫌 (「Good mood」) であるか (「Yes」)、そうでないか (「No」) によってデータ・セットを分割します。「No」に分岐する場合は、単純に、非生産的という結論になるだけです。一方、「Yes」に分岐されるデータ・セットは、他の 2 つの属性に応じてさらに分割する必要があります。観測が葉ノードに至る場所を示すために、以下の図ではデータ・セットを色分けしています。

図 5. 単純なデータ・セットによる決定木
単純なデータ・セットを記載する 4 列 x 9 行の表と、それによって生成された決定木を示す図
単純なデータ・セットを記載する 4 列 x 9 行の表と、それによって生成された決定木を示す図

決定木が有用な点は、系統立っていることにあります。そのため、項目を分類した方法を簡単に (グラフィカルに) 説明することができます。よく使われている決定木の学習アルゴリズムには、C4.5 と分類回帰木があります。

ルール・ベースのシステム

Dendral と呼ばれた、ルールと推論に基づく初のシステムはすでに 1965 年に作成されていますが、いわゆる「エキスパート・システム」が本領を発揮したのは 1970 年代になってからのことです。ルール・ベースのシステムとは、知識と情報の両方を保管して、推論システムによって結論を引き出すシステムを意味します。

一般に、ルール・ベースのシステムはルール・セット、知識ベース、(ルールの前向きまたは後ろ向き連鎖を使用した) 推論エンジン、そしてユーザー・インターフェースで構成されます。以下の図では、知識 (「ソクラテスは人間である」) とルール (「人間であれば、死ぬ運命にある」) に従って、誰が死ぬ運命にあるかについてやりとりしています。

図 6. ルール・ベースのシステム
フローチャート形式のルール・ベースのシステムを示す図
フローチャート形式のルール・ベースのシステムを示す図

ルール・ベースのシステムは、音声認識、計画・管理、疾患識別に適用されてきました。ダムの安定性を監視して診断するために 1990 年代に開発された Kaleidos というシステムは、現在も運用されています。

機械学習

機械学習は、統計および数理最適化に端を発する、AI とコンピューター・サイエンスの副分野です。機械学習では、教師あり学習と教師なし学習での手法を、予測、アナリティクス、データ・マイニングに適用します。深層学習に限らず、このセクションでは機械学習という驚くほど効果的な手法を導き出したいくつかのアルゴリズムを取り上げます。

図 7. 機械学習手法の経緯
機械学習手法の経緯を示すグラフ
機械学習手法の経緯を示すグラフ

逆伝播法

ニューラル・ネットワークの真の力は、多層によるバリアントにあります。単層パーセプトロンをトレーニングするのは簡単なことですが、それによって形成されたネットワークはそれほど威力を発揮しません。このことから、複数の層からなるネットワークをトレーニングできるようにはどのようにするのかが課題となりました。その答えとなったのが、逆伝播法です。

逆伝播は、多数の層からなるネットワークをトレーニングするためのアルゴリズムです。逆伝播法は 2 つのフェーズで機能します。最初のフェーズでは、ニューラル・ネットワークを通して最終層まで入力を伝播します (このフェーズは、フィードフォワードと呼ばれます)。2 番目のフェーズでは、この逆伝搬法というアルゴリズムで誤差を計算し、(重みを調整した上で) その誤差を最終層から最初の層に逆伝播します。

図 8. 逆伝播法の要約
逆伝播プロセスのフェーズ 1 と 2 を示す図
逆伝播プロセスのフェーズ 1 と 2 を示す図

ネットワークの中間層は、トレーニングの間に入力空間の一部を出力空間にマッピングするために自身を編成します。教師あり学習を使用した逆伝播法では、入力と出力のマッピングにおける誤差を識別し、その結果に応じて (学習率を使用して) 重みを調整することによって誤差を修正します。ニューラル・ネットワークの学習では、常に逆伝播が重要な側面になります。計算リソースが高速化し、安価になる中、より大規模でより高密度のネットワークにも、引き続き逆伝播法が適用されています。

畳み込みニューラル・ネットワーク

畳み込みニューラル・ネットワーク (CNN) は、動物の視覚野に発想を得た多層ニューラル・ネットワークです。そのアーキテクチャーは、画像処理をはじめ、さまざまなアプリケーションで役立ちます。最初の CNN は、Yann LeCun 氏によって作成されました。その当時、CNN のアーキテクチャーで重点が置かれていたのは、郵便番号を読み取るといった、手書き文字認識タスクです。

LeNet 氏の CNN アーキテクチャーは複数の層からなり、これらの層によって特徴を抽出し、続いて分類を行います。画像は複数の受容野に分割され、これらの受容野が畳み込み層に取り込まれて、そこで入力画像から特徴が抽出されます。これに続くステップはプーリングです。このステップでは、抽出された特徴の次元性を (ダウンサンプリングにより) 減らして最も重要な情報だけを (通常はマックス・プーリングにより) 残します。その後、別の畳み込みおよびプーリング・ステップを実行し、このステップで、前のステップで処理された特徴を完全に結合された多層パーセプトロンに取り込みます。このネットワークの最終出力層は、画像の特徴を特定する一連のノードです (この場合、識別された数字ごとに 1 つのノードがあります)。ユーザーはこのネットワークを、逆伝播法によってトレーニングできます。

図 9. LeNet CNN のアーキテクチャー
LeNet CNN アーキテクチャーにおけるフェーズを示す図
LeNet CNN アーキテクチャーにおけるフェーズを示す図

処理層、畳み込み層、プーリング層、そして完全結合分類層を重ねて使用するという方法は、ニューラル・ネットワークの新しい数々のアプリケーションへの門戸を開くことになりました。CNN は画像処理だけでなく、映像認識にも、自然言語処理の分野での多くのタスクにも適用されて成功を収めています。また、CNN は GPU 内にも実装されて、GPU のパフォーマンスを大幅に向上させています。

長期/短期記憶

逆伝播法の説明で、トレーニングされるネットワークはフィードフォワード・ネットワークであると述べたことを思い出してください。逆伝播法のアーキテクチャーでは、ユーザーがネットワークに入力をフィードし、隠れた層を介して出力層へと前方に入力を伝播します。一方、これとは異なるニューラル・ネットワーク・トポロジーも多数存在します。ここではその 1 つとして、ノード間を接続して有向閉路を形成するために使用できるニューラル・ネットワークを取り上げます。これらのネットワークは、再帰型ニューラル・ネットワークと呼ばれ、前の層や、層内の後続のノードへと逆向きにフィードすることができます。この特性により、再帰型ニューラル・ネットワークは時系列データには理想的な手法となります。

1997 年に、長期/短期記憶 (LSTM) と呼ばれる特殊な再帰型ニューラル・ネットワークが作成されました。LSTM を構成するメモリー・セルは、ネットワーク内で短期間または長期間、値を記憶します。

図 10. 長期/短期記憶ネットワークとメモリー・セル
LSTM の仕組みとメモリー・セルを示す図
LSTM の仕組みとメモリー・セルを示す図

メモリー・セル内には、セルに対する情報の入出力を制御するゲートがあります。入力ゲートが新しい情報をメモリーに取り込めるタイミングを制御し、忘却ゲートが既存の情報を保持する期間を制御します。そして出力ゲートが、セルに保管されている情報をセルの出力内で使用するタイミングを制御します。メモリー・セル内には、各ゲートを制御する重みも含まれています。これらの重みは、トレーニング・アルゴリズムとしての経時的誤差逆伝播法 (逆伝播法のバリエーション) により、最終的な誤差に応じて最適化されます。

LSTM は、音声認識、手書き文字認識、テキスト音声合成、画像のキャプション生成をはじめ、さまざまなタスクに適用されています。LSTM については、この後すぐに再び取り上げます。

深層学習

深層学習とは、機械学習を抜本的に変える比較的新しい一連の手法を指します。深層学習はそれ自体がいわゆるアルゴリズムではなく、教師なし学習を使用した深層ニューラル・ネットワークを実装するアルゴリズムの集まりです。これらのネットワークは非常に深い階層になっているため、構築するには (計算ノードのクラスターに加え) GPU などの新しい計算手法が必要になります。

これまでのところ、この記事で取り上げた深層学習のアルゴリズムには CNN と LSTM の 2 つがあります。この 2 つのアルゴリズムが結合されることで、驚くほどにインテリジェントな数々のタスクが達成されています。以下の図に示されているように、CNN と LSTM は写真や映像を識別し、それを自然言語で説明するために使用されています。

図 11. 畳み込みニューラル・ネットワークと長期/短期記憶ネットワークの結合による画像の説明
元の子猫の画像と、畳み込みニューラル・ネットワークと長期/短期記憶ネットワークを組み合わせて画像を説明する仕組みを示す図
元の子猫の画像と、畳み込みニューラル・ネットワークと長期/短期記憶ネットワークを組み合わせて画像を説明する仕組みを示す図

深層学習のアルゴリズムは、顔認識、結核の特定 (96 パーセントの正確さ)、自動走行車をはじめ、数多くの複雑な問題に適用されています。

深層学習のアルゴリズムを適用することによる成果は明白ですが、解決しなければなければならない問題は残っています。最近の深層学習を適用した皮膚癌検出で、皮膚専門医よりも深層学習アルゴリズムのほうが正確であることが明らかになりました。ただし、皮膚専門医はさまざまな判断要素を列挙して診断結果を導くことが可能であるのに対し、深層学習プログラムで分類の際に使用した要素を特定する手段はありません。この問題は、深層学習のブラック・ボックスと呼ばれています。

Deep Patient という別のアプリケーションでは、患者の医療記録に基づいて病気を予測することに成功しています。このアプリケーションは、医師よりも遥かに正確に病気を予測できることを実証しており、予測するのが難しいことで知られる統合失調症でさえも予測することができます。このようなモデルは大いに役立つとしても、その理由については、大規模なニューラス・ネットワークの内部を調べてもわからないのです。

コグニティブ・コンピューティング

AI と機械学習には、生物学関連のインスピレーションの例が数え切れないほどあります。初期の AI でも、人間の脳を模倣した機械を作るという壮大な目標を中心に据えていました。現在、この目標の達成に向かって着々と進んでいるのが、コグニティブ・コンピューティングです。

ニューラル・ネットワークと深層学習をベースとするコグニティブ・コンピューティングは、人間の思考プロセスをシミュレーションするシステムを構築するために、認知科学からの知識を適用していますが、1 つのテクノロジー・セットのみに重点を置くことはしていません。コグニティブ・コンピューティングは、機械学習、自然言語処理、視覚、人間とコンピューターの相互作用を含め、複数の分野をカバーしています。

コグニティブ・コンピューティングの一例としては、IBM Watson があります。Watson はクイズ番組の質疑応答で最先端の対話をデモンストレーションしましたが、IBM はそれ以降も一連の Web サービスによって Watson を拡張し続けています。これらのサービスでは、視覚認識、音声テキスト変換、テキスト音声変換の機能、言語理解および翻訳、そして会話型エンジンのためのアプリケーション・プログラミング・インターフェースを公開し、強力な仮想エージェントを作成できるようにしています。

さらに詳しく調べてください

この記事では、AI の歴史の一端と、ニューラル・ネットワークおよび深層学習の最新の手法を紹介しました。これまで、AI と機械学習の歴史は浮き沈みの繰り返しではあったものの、深層学習やコグニティブ・コンピューティングなどの新しい手法により、この 2 つの分野での水準が大幅に上がっていることは確かです。まだ意識を持つ機械を実現するまでには至らないかもしれませんが、人々の生活をより良いものにするためのシステムは、すでに存在しています。

深層学習を利用して異常検出に対応するコグニティブ IoT ソリューションの開発方法について詳しくは、このリンク先のチュートリアル「深層学習および長期/短期記憶ネットワークの紹介」を参照してください。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=Cloud computing
ArticleID=1050510
ArticleTitle=人工知能、機械学習、コグニティブ・コンピューティングの入門ガイド
publish-date=10052017