人工知能とは?

 最近、この言葉を聞く機会が多くなりました。こんな専門用語が普通にテレビや新聞などに出てくるのですね。ナイーブに言えば、人間の大脳の能力を機械で実現したもの、あるいは、するための技術という事でしょう。そして、そんなことができる機械はコンピュータに決まっています。

 MIT:マサチューセッツ工科大学ミンスキーが50年くらい前に書いたSteps Toward Artificial Intelligenceによれば、パターン認識、問題解決、定理証明、プラニング、自然言語処理、ゲームプレイングなどがその例になります。パターン認識とは文字認識、画像認識などのことですが、文字認識、画像認識などに知能が要る?という疑問が浮かびます。その意味では、知能などというより、日本のSFなどに昔からある人工頭脳の方が適切なんでしょう。

 問題解決、プラニングなどは言葉が一般的過ぎて分かりにくいと思います。たとえば、室内にバナナが天井から吊り下げられている状況があるとします。床上2mの所だとしましょう。身長1.2m、手を上に延ばしても1.6mしか伸びないロボットに、そのバナナを取りなさいという問題を与えます。これを解決することが、問題解決なのです。人間なら、バナナの下に行って飛び上がる。部屋の中に踏み台になるものがないか見回す、箒があればそれで叩き落とすなど、解決のための工夫をすることでしょう。

 勿論、この状況に限定した問題解決プログラムを書くことはできますが、それでは真の人工知能とは言えません。その同じプログラムで「年末の混雑しているアメ横を子供と歩いていたら、突然、『おしっこ』と言われた」という問題も解決できなくてはならないのです。人工知能の初期の研究者たちは一般的にという事を強く意識していたので、自分たちの問題解決プログラムにGeneral Problem Solver(GPS)というような名称をつけていました。

 その頃のプログラムでバナナ問題を実行したところ、シミュレーション上のロボットは部屋を見回し、片隅にスツールがあることを見出し、そこまで移動してスツールをバナナの下まで運ぶと思いきや、運ぶ前にスツールに乗ってしまったという逸話があります。それでバナナに届くかどうかをまず確認したのでしょうが、人間なら目の子で高さを測り乗らずに運ぶことを先にするでしょう。まあ、どちらが正しいという事は言えないでしょうが。

 この世界で生きるということは、毎日が問題を解決していることです。どんな問題が起きるか予測もできません。それでも、なんとか解決していますね。あらゆる問題をあらかじめ予測してすべての解決法をプログラムしておけるなら人工知能の実現も簡単なものですが、そうはいきません。ここに人工知能のすべての難しさが凝縮しています何が起きるのかわかっていない問題、その解決法があるかどうかも分からない問題、そういうものを解決できるプログラムをあらかじめ書いておけるかという問題です

 プラニングは計画のことですので、計画をプログラムしておけるかという問題になります。たとえば、4LDKのマンションから3LDKの一戸建てに引っ越したとしましょう。まず、問題になるのは家具の配置(という計画)です。4LDKに入っていた家具を3LDKに入れるのですから、100点の配置などはまずできないでしょう。あちら立てればこちら立たずばかりです。ベッドを部屋のどこに、どの向きに置くかだけでも悩みます。きっと妥協の結果の配置になるでしょう。

 8泊9日でヨーロッパ旅行をしたい。パリ、ロンドン、エディンバラ、ベルリン、ミュンヘン、ローマは必須というような旅程をホテルの予約、航空便の確保、鉄道の利用などを考えて家族の要望を入れた完全な形で計画することができるでしょうか。きっと、乗り継ぎがうまくいかない、ホテルの場所が不満だ、1日無駄になるなどの問題が起きてしまいます。人間が行っても難しいのですが、このような計画を立てるのもプラニングなのです。

 もっと難しい一般のプラニングの問題を解決するプログラミングって、一体どのようにできるでしょうか?

 数学の定理証明などは、中高の頃を思い出せば、その難しさは容易に想像できます。大抵の人は、どこから手をつけて良いかわからず、手を拱いているばかりでしょうね。フェルマーの最終定理xn + yn = znとなる 自然数 (x, y, z) の組が自然数nが3以上において存在しない証明などどこから手を付けていいのかもわかりませんが、これだけでなく、どんな定理が与えられても証明するプログラムなどどうやって書けばいいんでしょう。

 人工知能というのは、このように深遠な問題に向かう技術なのです。かつても今も、なんでもない家電機器に人工知能が入っているというコマーシャルがされていますが、あれは人工知能でもなんでもなく、チャチなコンピュータプログラムで動いているということにすぎません

 かつて、人工知能の実現など不可能であるという哲学的な議論がされたこともあります。根拠はゲーデル不完全性定理です。この定理は人工知能を否定するものだと、誰が言ったのでしょう。数学もコンピュータ科学も知らなかった哲学者かも知れません。恐らく、不完全性定理が数学の厳密な定理であることを忘れ、日常生活的話題として「解決できない問題があることが証明された」とでも解釈したのではないかと思います。確かに、人生は答えのない問題だらけですが・・・

 ちょっと引用してみましょう:

 「ゲーデル不完全性定理: 自然数論を含む帰納的公理化可能な理論が、ω無矛盾であれば、証明も反証もできない命題が存在する」

--ゲーデルの不完全性定理 - Wikipedia

 ここでは、「証明も反証もできない命題が存在する」が問題になるのです。上で、「解決できない問題がある」と言ったのはこの事です。「Aである」も「Aでない」も証明できない、そんな「A」があるというのです。Aは「5は3よりも大きい」のような命題です。

 論理体系が無矛盾でなければならないことは最低限の条件ですので、こういう当然のことをすべて前提として不完全性定理の骨格をあぶりだすと、下記のようになります。

 ゲーデル不完全性定理の本質:「算術論理はすべて不完全である

 「算術論理」とは「自然数論を含む論理」、「不完全」とは証明も反証もできない命題が存在する」ことです。

 不完全性定理を簡単に説明することは厄介なことです。岩波文庫から林晋氏の翻訳が出ていますが、そのどこかに「ゲーデル不完全性定理を理解するには脳の成熟が必要だ」というような事を書かれていたと記憶しています。歳を取らないと理解できないらしいのです*。そこを無視して敢えて簡単に言ってしまうと、矛盾のない(ある命題とその否定の両方が証明されることがないということ)論理体系ならば、証明も否定もできない命題が必ず存在する、ということです。ω(オメガ)無矛盾というのは、定義を少し緩やかにした無矛盾性です。無矛盾には変わりはありません。なにしろ数学ですから、この辺りは厳密なのです。

 誤解を顧みずに超簡単化して言えば、Fn(x)(nは自然数)の形式の命題(

F1(x), F2(x),・・・)が証明されるのに、なぜかF99(x)については証明できないし、その否定の~F99(x)も証明できないということです。おかしいのですが、そういうことが必然的にあるのだということをゲーデルは証明してしまったのです。

 気を付けないといけないのは、ゲーデルは一般的な論理体系に対してそう証明したのではなく「自然数論を含む」論理体系に対してそう証明したのです。

 では、人工知能は「自然数論を含む論理体系」から成り立っているかと言うとそんなことはありません。ということで、今ではこんな議論をする人はいないと思います。

 最近目覚ましい発展を遂げている人工知能の分野に将棋があります。チェスは1997年に人類のチャンピオンであるカスパロフIBMのDeep Blueという名のコンピュータに負けてしまいました。将棋にはチェスのような唯一最高のチャンピオンという立場の人がいないので、まだ人間のチャンピオンがコンピュータに負けたとは言いにくいのですが、今年、二人の9段が負けてしまっていますから羽生さんを攻略する日もそれほど遠くないかも知れません。

 人工知能のもう一つの面白い性質に「アルゴリズム(処理手順)が判明していない処理をheuristics=経験的方法を駆使して実現する」という点があります。逆に言えば、完全なアルゴリズムが発見されたら、それはもう人工知能ではなくなるという言い方もされるのです。

 将棋の例で言えば、将棋の指し方は大変簡単です。これを実現することは人工知能ではありません。王の動き、飛車の動き・・・歩の動きといくつかの規則をプログラミングすれば将棋は指せます。人工知能の目指すものは「必ず勝つ将棋の指し方」です。これは難しいでしょう。実は将棋には必勝法がありますし、そのアルゴリズムは難しくありません。最後まで手を全部読めば必ず勝てますね。問題は相手の王を詰むまで全部の手を読むのにどれほど時間がかかるかということです。将棋のすべての手数は確か、10の220乗だったかと思います。これではコンピュータがいくら速くなっても全てを読むなどということはできません。つまり、必勝法のアルゴリズムはあるが意味のある時間内に実行できないということです。もし、実行しても、一手を指す頃には人類は滅亡し、いや、太陽系が消滅し、この宇宙も消滅していることでしょう。となると、経験的な、記憶と、考え方と、勘が物をいうことになります。典型的な人工知能の分野なのです。

 :たとえば、こんな事がすぐに分かりますか:

 ・クレタ人がクレタ人はみな嘘つきだと言いました。

  クレタ人は嘘つき?正直?

自己言及のパラドックス - Wikipedia

 ・1と2の間に有理数・・分数・・は無限にあります。ところで、有理数自然数とではどちらが沢山あるでしょう。答えは意外ですよ。

無限を最短で紹介するよ : ギズモード・ジャパン