人工知能 AI)とは,どのような技術分野なのか,その概略を見て...

21
1 人工知能AI)とは,どのような技術分野なのか,その概略を見ておこう.

Transcript of 人工知能 AI)とは,どのような技術分野なのか,その概略を見て...

Page 1: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

1

人工知能(AI)とは,どのような技術分野なのか,その概略を見ておこう.

Page 2: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

2

そもそも,コンピュータの原理を考えたチューリングや,現実に動くコンピュータを作ったフォン・ノイマンは,機械によって知能を作り出す研究としてコンピュータの研究をしていたので,言ってみれば,コンピュータの研究自体が「人工知能」の研究だったということになる.

正式に「人工知能」(Artificial Intelligence; AI)という言葉が使われ始めたのは,1956年にこのような分野の研究者を集めてダートマスで開催された国際会議においてである.ただし,ここでAIという言葉の定義を厳密におこなったわけではないので,研究者ごとにその意味することが異なり,その後,異なる流儀を生み出すことになる.

1つは,哲学,心理学,脳科学などの学術分野の研究者のとるアプローチで,AIの研究目的は,人間の知能の仕組みを理解するためにコンピュータを活用してシミュレーションなどをおこなうというものだった.つまり,人間の脳の仕組みを解明し,その仕組みのとおりにAIを作ろうというわけである.しかし,産業的な応用を目指す立場が主流の現在ではこのアプローチはAIの主流にはなっていない.

現代のAIは,もう1つの考え方である工学的なアプローチが主流である.ここではAIの目的は「知能的」(あるいは,「かしこい」とか「合理的」と言ってもよい)なソフトウェアを構築することとされる.その目的を達成するためには,手段として「人間のシミュレーション」をする必要はないとする.人間の思考原理と違ってもよいから,とにかく,利用者から知的だと思ってもらえるソフトとか,利用者の知的作業を高めるためのソフトを作るのが目的となる.

実際には,この2つのアプローチが互いに良い影響を与えながら,AIが発展していくものと考えられる.

Page 3: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

3

作り上げたソフトウェアに「知能」があるのかどうかを判定するチューリングテストと呼ばれる実験方法が,1950年にチューリングによって提案されている.この方法では,人間の被験者を連れてきて,テレタイプ(=タイプライタ+キャラクタ・ディスプレイ)を通じてコンピュータと自由に自然言語(英語や日本語)で対話させる.そして,テレタイプの向こうにいるのがコンピュータか人間かを被験者に当てさせる.もし,被験者がそれを当てることができなければ,コンピュータはうまく人間のふりをしたことになるので,そのコンピュータ(ソフトウェア)には知能があると判断される.

しかし,すでに述べたように,現代のAIでは,AIプログラムは必ずしも人間と同じように

振る舞う必要はないとされるので,このチューリングテストが実際に用いられることはあまりない.たとえば,犬は英語で会話ができないが,飼い主を見てその顔を識別したり,盲導犬のような働きをするので,それなりに知能はあるのではないだろうか.また,被験者がわざとすごく難解な計算問題を入力したときに,AIは瞬時に計算できるにもかかわら

ず,チューリングテストに合格するためには,人間のふりをしてわざと時間をかけて間違った答えを出して見せたりしなくてはならないが,「知能」の定義にそこまで要求しなくても,私たちの社会に役立つ知能的といえるソフトウェアはいろいろ作ることができるのではないだろうか.

Page 4: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

4

現代のAIが作ろうとしている知能的なソフトウェアは,擬人化されてエージェントと呼

ばれることがある.人間型のロボットを思い浮かべよう.エージェントは何らかの環境に置かれる.それは周辺の物理的状況かもしれないし,ヒューマンインタフェースを介して対話をしているユーザや,情報ネットワークを介して通信している他の複数のエージェントかもしれない.

エージェントは,目や耳に相当するセンサー(sensor)を使って環境から情報を知覚(入力)し,頭脳に相当するAIアルゴリズムによって自動的に意思決定(計算)し,手足に相当するアクチュエータ(actuator)によって行動(出力)して環境に作用する.

知覚入力を情報媒体(メディア)に応じて理解するために,自然言語処理,音声認識,画像理解などの基礎技術が研究されている.

自動意思決定に関しては,探索,推論,予測,学習など,極めて多彩な実用技術がある.

行動出力として,ロボットの身体を動かす技術は,ロボティクスである.

なお,環境がユーザ(人間)であるときは,人間の知覚と行動を総合的に研究するヒューマンインタフェースの技術が重要となる.環境が他のエージェントであるとき,このようなシステムの全体は,マルチエージェントシステムと呼ばれている.

この授業の取り扱う範囲は, 主に自動的な「意思決定」の基礎となる部分である.

Page 5: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

5

AIの基礎技術には,このスライドに書いたような項目が含まれている.この授業「認知システム論」では最初の5項目を取り扱う.

Page 6: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

6

AIの応用には,さまざまなものがある.その典型的なものを眺めておこう.

Page 7: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

7

「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英語などのような実際の人間が使っている言語のことである.自然言語を何らかの意味で情報処理の対象とする技術分野は,伝統的にAIの分野だった.

現在,日本語入力のために完全に実用的に使われている「仮名漢字変換」も自然言語処理と言えるであろうが,それは実用化されて,もうほとんど研究の対象ではないので,今ではAIの分野とはみなされていない.言葉の基礎となる要素を文書から切り出して自

動分析する「形態素解析」と呼ばれる技術もワードプロセッサの技術と関連して発展してきており,文書にどのような単語がどのくらい出現するかなどの情報を用いて,WEBなどから得られる大量の文書の特徴を表現して,文書検索に利用するようなシステムが開発されている.

日本語を英語に翻訳したり,英語を日本語に翻訳したりする「自動翻訳」の分野は,現在,研究開発中のAI技術であり,分野を限れば,ある程度実用的に使えそうなシステムが開発されている.

自然言語を「理解」するというのは,さらに難しい技術で,将来的な課題である.たとえば,「私は手にバラを持っている」という日本語を “I have a rose in my hand.” くらいの英語に翻訳するくらいは,現在の技術でも可能である.しかし,その翻訳ソフトは,この日本語文を「理解」していることにはならないだろう.もし,「理解」していれば,そのソフトは「手にトゲがささらないように気を付けてくださいね.」くらいの声を掛けてくれるかもしれない.

また,文章の論理的な内容ばかりではなく,物語を読んで登場人物の「感情」を推測するなどの研究も始められている.

Page 8: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

8

昔は,データベースの検索といえば,図書館などに配備されているシステムで文献検索をしたりするような技術分野であったが,最近では,おもにWEBの検索の話となっている.WEBなどに蓄積されているテキスト(文字列)データを検索して何らかの有益な知識を見つける技術を「テキストマイニング」と言っている.Googleが開発した「リンク」を分析する「ページランク」に基づく検索手法はこの分野に大きな影響を与えている.

現在は,言葉の表面的な「文字列」だけを検索するのではなく,様々な言葉の意味を辞書的に体系立てた「オントロジー」に基づいて,さらに検索の精度を上げようという方向にある.

また,最近では,デキストばかりではなく,画像,映像,音声などのマルチメディアを検索の対象とした研究が進んでいる.

Page 9: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

9

「知覚」,すなわち,機械が「見る」「聞く」という技術は,音声認識や画像認識という分野で開発されている.

音声認識は,話者が特定人物に固定されていて,話す言葉の種類も限定されていて,マイクに口をすごく近づけて音声にノイズが入らないようにしてくれれば,ある程度の実用性がある.

画像認識は,たとえば,事前に登録された指紋や顔など,特定の分野に限定すれば,ある程度の実用性がある.また,WEB上で画像を検索するときには,画像の特徴を表

現するために画像認識の技術が用いられる.風景画像のように,日光や日陰の影響で色合いが変化するような様々なオブジェクトが画面に含まれているようなものは処理が困難である.

映像認識は静止画像を大量に処理することになり,さらに大きな計算量が必要な処理となる.

Page 10: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

自然言語(テキストまたは音声)による質問に対して,自然言語で答えを返すシステムが質問応答システム(Question and answering system)である.最近では,IBMが開発し

た「ワトソン」というシステムが,米国のクイズ番組で人間に勝利したことで注目度が上がった.また,簡単な内容ならば,スマートフォンなどでもサービスが始まっている.

10

Page 11: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

11

エキスパートシステムは,様々な分野の専門家(エキスパート)の知識をデジタル化してデータベース(AIでは「知識ベース」と呼んでいる)に蓄積し,それを利用して,コンピュータに専門家並みの仕事をさせようとするものである.

機械の故障や人間の病気の判定をしたり原因を追及するような診断の分野で技術が開発され,その後,化学物質などの構造推定や,機械や電子回路などの設計などの分野で,ある程度実用化した.

しかし,その実用的な技術は,基本的に「浅い知識」(表面的な知識)に基づくものであり,本当の人間が行うような,様々な原理的知識や常識を必要とする「深い知識」に基づくものではない点で限界もある.

Page 12: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

12

数学者のかわりに「定理」を自動的に証明する「定理自動証明」の分野は,昔の(そしてある程度は今も)多くのコンピュータ科学者が数学者だったこともあり,昔からAIの主要テーマのひとつであった.

数式の四則演算や,因数分解,微分・積分などの「数式処理」という分野は実用化され,現在では Mathematica など,パソコン用のソフトウェアが市販され,科学者に重宝されている.

「計算」を超えて,「証明」を行う技術分野では,「述語論理」や等式を扱う「等式論理」という基本的な論理体系の枠組みでは,かなり実用的な研究成果が得られている.

ただし,数学的帰納法を扱うような「帰納的定理」の自動証明はまだ困難な点が多い.

Page 13: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

13

コンピュータで証明できる等式の例を群論と呼ばれる数学の分野から1つ紹介しよう.

「群」とは,線形代数における行列の「積」やその他の演算の共通的な性質を抽出した抽象的な計算システムであり,

- 左単位元の存在

- 左逆元の存在

- 結合率

の3つの性質を満たすものとして,演算(スライドでは,*で示している)が定義される.

このとき,「積の逆元」が「逆元の逆順の積」であることを数学者でない人間が証明することはかなり難しいが,コンピュータだと1秒以内で証明することができる.

Page 14: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

14

コンピュータは,幾何学の定理もある程度証明できる.しかし,コンピュータは人間のように空間を直観的に把握することはできないので,多くの場合,幾何的な情報を論理式や代数式に変換して取り扱う必要がある.それでもこのスライドにある「シンプソンの定理」などは簡単に証明できる.

Page 15: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

15

スピルバーグ監督の映画「A.I.」により,一般の人がAIといえば「ロボット」を思い起こすかもしれない.

しかし,自動車工場などで実用的に使われている工業用ロボットと呼ばれるものは,あまり知能的とはいえないので,AIとは関係ない.

2足歩行ロボットは,長年,困難な技術的課題の一つであったが,いまでは,ほぼ実用化されている.この技術はAIによるものと言える.ただし,「知能的」と言っても,脳の

反射神経的な運動能力を実現できたことに相当する.デモなどでは,あらかじめ決められた動作を行って観客を喜ばせている.

状況に応じて臨機応変に自律的に行動する「自律ロボット」が研究開発されている.

Page 16: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

16

コンピュータのプログラムを書くというのは相当知能的な作業であり,これをある程度自動化するのはソフトウェア技術の究極の夢である.

昔は,わかりやすい数式などを使用できる「高級言語」のプログラムを機械語に翻訳するコンパイラがAI技術の1つと考えれていた時代もあったようである.もちろん,いまは当たり前の技術であり,AIの技術とは考えられていない.

人間が書いたプログラムが,事前に与えられた性質を満たすという意味で正しいかどうかの検証を自動的に行う技術は,ソフトウェア工学とAIの境界領域的な分野として,現在盛んに研究されている.

また,WEBアプリケーションなど,ある程度,応用とプログラム構造が限定された分野では,プログラムの自動生成を行うこともできる.

Page 17: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

さまざまな機器からなる複雑なシステムを最適に制御するプログラムを伝統的なソフトウェア技術で書き下すのは非常に困難である.そのため,しばしばAIを応用した準最適な制御が行われる.

17

Page 18: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

前のスライド「制御」の一例として,再生可能エネルギーを含めた複雑なエネルギーシステムの制御がある.

18

Page 19: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

インターネットや携帯電話,スマートフォンの普及により,さまざまなデータが通信回線上を流れている.AIの応用にとっては,それらはデータの宝庫であり,機械学習の手法などにより,それらのデータから有益な知識を求める応用は無数に考えられる.

19

Page 20: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

ビジネスシーンにおいても,リアルタイムかつ大量なデータ(ビッグデータ)をAIで分析して,経営に有益な知識を発掘(マイニング)しようという試みがなされている.

20

Page 21: 人工知能 AI)とは,どのような技術分野なのか,その概略を見て …lis2.huie.hokudai.ac.jp/~kurihara/classes/AI/intro.pdf · 「自然言語」とは,プログラミング言語などのような人工的な言語に対して,日本語や英

人間のように知的なゲームをAIに行わせようとする試みは昔からあった.20世紀の終わ

りには,AIがチェスの世界チャンピオンに勝利している.日本では,そろそろAIが将棋の王者に勝ちそうな勢いだ.しかし,囲碁については,打つべき手(探索の範囲)が相当広く,まだまだプロに勝つのは困難である.ビデオゲームなど,リアルタイムにプレイするゲームは,そのゲームの内容にもより,一般的な状況は述べにくい.研究レベルでは,シミュレーションあるいはロボットの実機にサッカーを行わせる試み(ロボカップ)も行われている.

21