第24回 北大人文学カフェ

コンピュータ間違ってもいいの?
論理学から人工知能へ

皆さんが家庭で使っているコンピュータ、最近よく耳にする「人工知能」という言葉。歴史を紐解けば、推論の正しさを研究する論理学がなければ、コンピュータも人工知能研究もなかったかもしれません。推論の正しさを研究、なんていうと、絶対に間違ってはいけない窮屈な感じがしてしまいますが、どんなふうにコンピュータの発想や、コンピュータに知能を与える発想がでてきたのでしょうか?この両方の問いに果敢に挑戦したのが論理学者・数学者であるアラン・チューリングです。彼によれば、コンピュータにはできないこともあるし、知的なことをする際には間違ってもよいそうです。チューリングはまるでコンピュータの優しい先生です。今回の人文学カフェでは、皆さんに少し手を動かしてもらい、論理学にも理解を深めながら、この「優しさ」の秘密に迫ってみましょう。


イベント開催日
2019年07月27日
会場
紀伊國屋書店札幌本店1階インナーガーデン
話し手
佐野 勝彦(さの かつひこ)
北海道大学大学院文学研究院
哲学倫理学研究室 准教授

プロフィール

※プロフィールは人文学カフェ開催当時のものです。

はじめに

今日のタイトル「コンピュータは間違ってもいいの?」という問いには、「間違ってもいいよ」と言いたいと思います。
私は、論理学者です。たまに間違えられるんですけれど、倫理学者ではありません。研究しているのは、必然性や可能性を扱う様相論理、知識や信念がどういうふうに変わるのかという動的認識論理です。それから、矛盾があるとどういう推論ができるのかという矛盾許容論理、さらには、疑問文を扱う論理も研究しています。また、今日の話に関係があるアラン・チューリングについても研究しています。『コンピュータ理論の起源: チューリング』という本を出しました。アラン・チューリングは、結構大事な仕事をしていまして、この本ではチューリング論文の翻訳と解説をしています。
今日はまず、推論とは何か?ということ、次にコンピュータは計算する人である、そして最後にコンピュータが知性を示すには?という3つの話題についてお話しします。

コンピュータ理論の起源〈第1巻〉
チューリング
伊藤 和行(編)、佐野 勝彦、杉本 舞(訳・解説)
出版年月日 2014年2月5日
ISBN 9784764904545

書香の森 出版社のページ

推論とは?正しい推論?

まず、推論とは何でしょうか。前提(知っていること言ってもいいです)から、ある結論が言える、というのが推論です。ことわざで、風が吹けば桶屋が儲かるというのがありますよね。かたちとしては推論です。風が吹くというのが前提で、桶屋が儲かるというのが結論です。その推論が正しいかどうかを考えるというのは、仮に風が吹いているということを受け入れてみたら、桶屋が儲かるかなと考えることです。それが、推論が正しいかどうかを考えるということです。

推論が正しいと言ったときには、2つの意味があります。2つの意味とは、「演繹」と「帰納」です。演繹というのは、前提を一旦受け入れたら結論は必ず正しい。でもそのかわり、結論は前提の中にある意味含まれている。これが演繹の特徴です。
帰納はそうではなく、前提から結論へ、真理を高い確率で保っている、おそらく保つだろう。そのかわり前提に含まれない新しい情報をもたらすというのが特徴です。しかし、そのために、間違いを犯す可能性が出てくるということですね。

では、コンピュータが、演繹と帰納のそれぞれできるのかということを考えていきます。

カラスが10万羽いました。全部黒い。それを受け入れた、としましょう。そこからありとあらゆるカラスが黒いと言えるかどうかです。白いカラスが2羽見つかった、としましょう。10万1羽目、10万2羽目のカラスが白かったので、99%の確率で黒い。これはおそらく正しい。帰納と言えます。

では、次の問題(下左図)。ペンギンは鳥、どの鳥も卵を産む、故にすべてのペンギンは卵を産む。正しいことを納得したいですね。ペンギンや鳥、卵を産むというのを、記号に変えてみます(下右図)。これはアリストテレスが言った定言三段論法というもので、すべてのAはB、すべてのBはC、そうしたらすべてのAはCであると言っていいということです。どうして正しいのかというと、いくつか納得の仕方がありますが、数の計算によってそれを証明してみましょう。

Aを表すモノの集まりをa、Bを表すモノの集まりをb、Cを表すモノの集まりをcするとにしましょう。「すべてのAはB」というのはa(1-b)=0となります。カッコを開き移項すると、a=abと書き換えられます。ここで(2)を使って(「すべてのBはC」はb=bcと書けますね)、ab=a(bc)と書き換えられます。カッコをつけかえてa(bc) =(ab)cとなります。再度(1)のa=abをつかって、(ab)c=acとなって、結局 a=ac, すなわち「すべてのAはC」が言えたことになります。三段論法が数の計算という証拠によって正しいことがわかるということですね。

次の問題です。
「ある犬はすべての人に飼われている」ということですが、ブール(イギリスの論理学者)はハチ公を飼っている、フレーゲ(ドイツの論理学者)もハチ公を飼っている、そうするとハチ公はこの二人に飼われているんです。こういう状況であれば、どの人にも飼っている犬がいるということになってもよさそうです。この意味で「どの人にも飼っている犬がいる」というのは正しい、演繹です(下図左)。逆の「どの人にも飼っている犬がいる」は正しくないです。ブールはハチ公を飼っている。フレーゲはマサルくんを飼っている。そうすると、どの人にも飼っている犬がいます。でも一匹の犬にみんなの矢印が向いているわけじゃありませんから、これは正しくないだろうということです。これは演繹じゃない(下図右)。

※写真の出典:
ブール(George Boole)
フレーゲ(Friedrich Ludwig Gottlob Frege)
忠犬ハチ公

知識を手に入れるための推論には、演繹と帰納の2つがあるわけですね。今からのお話しでは、演繹中心にしたいと思います。演繹についての問題を考えるところからコンピュータが生まれました。これまで見てきた、「すべて」「ならば」「でない」が入っていて、関係をあつかうような推論が演繹かどうかという問題は、量子コンピュータを使っても絶対解けません。原理的に解けないことが知られています。

コンピュータは計算する人!

今からお話しするのは、アルゴリズム、計算するってどういうことかということです。アラン・チューリングは、映画「イミテーション・ゲーム、エニグマと天才数学者の秘密」の主人公です。戦時中に暗号研究をして、ナチスの作ったドイツの暗号を解いた天才数学者です。その暗号研究の話ではなく、彼の「計算可能な数について」という論文についてお話しします。

「計算可能な数について」の論文は彼が24歳の時の論文で、この仕事のおかげで計算機科学の父と呼ばれるようになりました。コンピュータの考え方がこの論文に出ています。
「計算可能な数について」は、(一階述語論理とよばれる範囲で)演繹関係が必ず正しいと判定できるかどうかという問題を扱ったもので、計算可能という概念の分析を使って解くことを検討してみたが、解けないよというのがこの論文です。

コンピュータというのは、今から考えると意外かもしれませんが、始めは計算する人間のことでした。例えば、singとかdanceとか-erつけたら人になります。computeも計算するという意味がありますから-erつけたら、計算する人というのが普通の意味です。1936年頃はcomputerは計算する人という意味で、computing machineが計算する機械でした。それがチューリングの論文の影響か、40年代後半から50年代初めにかけて、computerと機械が一緒になっていきます。計算する人が機械になっていくということがどういうふうに行われるか、みてみましょう。

今、31×11を計算してみましょう。計算しているときに、わたしたちは一体何をしているのかを意識してみてください。わたしたちは計算するときに、料理のレシピのように、計算レシピに従っていないでしょうか。レシピというのは指令書のようなもので、現代のことばでは、実効的手続き、アルゴリズムと言います。以下にその4つの条件を示します。筆算が実効的であるか見てみましょう。まず、有限個の正確な命令の計算レシピがある。31x 11の筆算では計算ステップが3つでした。2番目、間違いなく実行されると、たとえ時間がかかっても有限時間で、結果がいつかは出る。3番目、紙と鉛筆だけで、計算できそうです。最後は、ヒラメキもいらないですね。

もう少しこれを一般化したいと思います。もっと計算を単純にして、両方向に無限に長いマス目が並んだ1本のテープに書くような感じにできないか、注意を向けているマス目を右や左に動かす、ヒラメキも工夫もいらない、それだけでできないかということです。では、「010101010…」と書こうとしたら、どんなレシピが書けますか。まず、(1) 空白に0を書いて、注意を向けるマス目を一つ右へ移動し、次に(2)空白に1を書いて、注意を向けるマス目を 一つ右へ移動 (1) へ移る。これを繰り返す。これが計算の指令書、アルゴリズムになります。

チューリングがつくったのは、こういう仮想的な機械です。この制御部分に計算レシピが入っていて、行ったり来たりして計算する。かけ算もできるし、割り算もできるし、素因数分解だってできるし、いろいろできます。この仮想的機械というのは、コンピュータみたいに形のあるものではなくて、紙の上のもの、数学的なモデル、という意味です。

さらに素晴らしいのは、万能チューリングマシンです。現在のプログラム内蔵型計算機の理論的原型です。足し算、引き算、かけ算、何でもできる、そういうのを全部真似できる1台の万能な機械(プログラム)があることを意味します。チューリングマシンで解ける問題、というのは、プログラム(指令書)があって、その問題に対して有限時間内にYesかNo、1か0の答えを返せる、そういう問題です。

論文の中では「0プリント問題」はチューリングマシンで解けないと説明されています。「0プリント問題」とは、テープ上にいつか0をプリントするかどうかを判定してください、という問題です。0がすぐに出たらいいのですが、0が出ない時には、有限時間内に求める答えを出せるかどうかわかりません。これは、述語論理の演繹関係の判定問題と似ています。演繹の時も解ける証拠が1個でも見つかったら「演繹です」と言えます。できないときは、どんな証拠をもってきてもダメと言わないといけない。「0プリント問題」がチューリングマシンで解けないことを使うと、「すべて」「ならば」を含んでいて関係を扱う(一階)述語論理での推論が、演繹かどうかの判定問題はアルゴリズム=コンピュータでは解けないことがわかります。演繹に関しては「コンピュータには述語論理の推論が演繹か否かは絶対に判定できない」ことを示すためにコンピュータの概念が生まれたということです。これはアイデアが生まれたときからできないことがありました。演繹の説明では、結論は既に前提の中に含まれていると言いましたが、コンピュータには絶対知らないことが残るのです。

コンピュータが知性を示すには?

それでは、コンピュータが知性を示すためにはどうしたらいいのかな、間違ってもいいんだよ、というお話しをしたいと思います。
チューリングは、第二次世界大戦でエニグマ暗号を解いて、戦争の勝利に大きく貢献した後、実際にコンピュータを模型としてつくるという仕事と、機械に知能を与えられないかなという仕事を始めました。1947年から1950年にかけて発表した「ロンドン数学会での講演」「知能機械」「計算機械と知能」で人工知能の先駆け的な議論をしています。

「ロンドン数学会の講演」の中で、機械に知能を与えるために3つの要件を示しました。まずひとつ目。機械は経験から学習できること。子どもに何か教えて、自分より要領よくやったらこれは知性を認めます。チューリングは、これは要領よくすることはできるけれど、できることは増やさない、と言います。できることを増やすには以下の2つが必要です。2つめは機械が誤りを犯すことを許すということです。機械は勿論演繹関係の判定はできないけれど、それ以上に人間はよく間違えるのだから、機械にもっと寛容じゃなければいけないということです。そして3つ目は、人間が教育を受けて知性を発揮しているように、機械が人間と接触することを許して知性を発揮させないといけないということです。

「知能機械」という論文は、人間の脳と比較から、脳をモデルとした知的なふるまいを示す機械を作りましょうという話です。ここで特に大事なのは独創力です。囲碁では、一局の手でたくさんの手があります。そういうときにしらみつぶしに全部チェックするのではなく、効率よくこの手がいいよ、まあ、ピカッと光ってみえると言ったりする人がいますが、そこに独創力が関わるんだということです。

次の「計算機械と知能」という論文です。この論文では、「機械は考えられますか」という問いに取り組んでいます。この問題に対して、チューリングは次のようなテストを考えます。一方に判定する人がいて、もう一方に人間と機械があります。判定者が発信した対話に対して、人間と機械が返信する。判定者はどちらが人間でどちらが機械かを当てます。もし機械が判定者を上手くだませたなら、機械が知的な振る舞いをしていると言える。こういう判定者をだます機械が作れるのかということです。我々が使っているPCに独創力を入れればできる、とチューリングは言っています。まず、子どもの脳をプログラムし、それに教育をしていく。教育プロセスで、罰や報酬を与えコンピュータと記号言語で意思疎通をする。子どもプログラムに推論システムを内蔵していく考え方で、これは論理型AIにも通じる考え方です。そのうえで、知的な振舞いとはなんだというと、計算に関係した完璧に統制のとれた、決まり切った振舞いからの逸脱、ちょっとずれる、間違えるということです。しかし、ランダムな振舞いや無意味な反復性を引き起こさないようなわずかなずれがある、ということです。これは次に見るように、見事にチェス・プレイヤー、ガルリ・カスパロフ、の未来を予測していました。

チェスで初めてコンピュータに負けてしまったのはガルリ・カスパロフさん。カスパロフは、1985年に当時最強のコンピュータ32台と戦い、32台全部倒しましたが、1997年にIBMのDeep Blueというコンピュータと対戦して負けてしまいました。この時、実は一局目は勝ったんです。その一局目の、44手目にDeep Blueが置いた駒が、ちょっと突飛な手で、強い駒を自殺的な位置に動かしたんです。なぜだろう?というわけです。カスパロフは、熟考の結果、型にはまった一手を Deep Blue が打っても20手以上先で自分が勝てることに気づき、Deep Blueは最後まで計算して、早めに負けたのだろう、と結論づけました。でも、実はこれはバグだったんです。44手目は実は見落とされたバグで、完全にランダムに打たれたものでした。カスパロフはこの手に関して、直観に反する手は優れた知性の徴だと結論付けたそうです。決してそれが単なるバグだとは思わなかった。それまでDeep Blueは完全に統制の取れた振る舞いをしていたけれども、44手目のような知的な振る舞いは、1手だけ間違いを犯してしまったのです。その一手自体はランダムに打たれたものですが、その後のランダムな振舞いや無意味な反復性を引き起こさないようなわずかな逸脱で、それがカスパロフには知的な振る舞いに見えてしまった。見事にそれをチューリングは予想していた、と思えるわけですね。

まとめ

現在のコンピュータ、人工知能にも原理的にできないことがあります。述語論理の演繹かどうかの判定なんて、絶対できないです。帰納やひらめきを実行するときには間違えうる、むしろ許さないといけない、間違っていいよということですね。
チューリングは機械が知性を示すための三つの要件を考え、それを実現するニューラルネットとか、論理型AIにつながるようなアイデアを考えていました。
これからAIがどういうふうな出力をしているか、その意味を考えることが、すごく大事になってくるかもしれません。みなさんも怖がらないで、コンピュータの出力がもつ意味をよく考えていきましょう!

話し手からもう一言

一つ一つのステップは当たり前でも、全体としての推論が驚くべきものになる。これは、シャーロックホームズが推理について述べていたことですが、論理学の定義として挙げる人もいます。当たり前の推論を一つ一つ積み重ねていくことで、人文学カフェでお話したような、計算できない問題やコンピュータの発想に至るのには驚くべきところがありますね。逆にいうと、全体としての驚くべき推論を、それ以上遡れない当たり前のステップへと分解していくのも、論理学の仕事だ、とも言えます。この点で、論理学では自明なもの(当たり前とみなされるもの)が限りなく少なく、それが魅力の一つにもなっています。人文学カフェで論理学に興味をもたれた、という方は、論理学や人工知能についての話題を、平易な言葉で、しかし、レベルを損なわないで解説している、次の二つの書籍を手にとってみて下さい。

  • 内井惣七『論理的思考のレッスン』 ちくま学芸文庫、筑摩書房、2013年
  • 川添愛『働きたくないイタチと言葉がわかるロボット 人工知能から考える「人と言葉」』、朝日出版社、2017年