結城浩
2005年1月17日
(食卓にて)
長男「ねえお父さん、ナンプレやろう!」」
私「今日はもういいや。ナンプレを解くプログラムってあるんだよ」
長男「えっ! …どうしてコンピュータにそんなことができるの?」
家内「2人とも、早くお風呂にはいってちょうだい!」
(お風呂に移動)
私「足し算と掛け算はどこが似ているだろう?」
長男「簡単。ええと整数…自然数同士を足したらもとの数以上になる。自然数同士を掛けたら元の数以上になる」
私「ほほう、なるほどね。他には? たとえば引き算や割り算と比べると?」
長男「うーんとね…自然数同士の掛け算や足し算はいつでもできるけれど、引き算や割り算はできないかもしれない。ほら、小さな数から大きな数を引けなかったり、割ったときに割り切れなかったりするから」
私「なるほど!そりゃすごいな。確かにそうだ」
長男「あとは、何かある?」
私「じゃあヒント。a+bとb+aについて考えてみよう」
長男「わかった!逆にしても同じ。掛け算と足し算どちらも、逆にしても同じになる」
私「そうだね。引き算や割り算は同じになるとは限らないね」
長男「他には?他には?」
私「じゃあこんどはa+b+cについて考えると?」
長男「カッコをどこにつけても同じだね(a+b)+cとa+(b+c)は同じ。」
私「そうだね。これは結合法則というよ。さっきのa+bとb+aが等しくなるのは交換法則。ところで(a÷b)÷cとa÷(b÷c)は本当に違うの?」
長男「(天井を見上げる)ええと、じゃあ(6÷3)÷2を考えると、2÷2で1になる。6÷(3÷2)は…割り切れないよ」
私「3÷2は2分の3だね。6を2分の3で割るということは、6に3分の2を掛けるってことだから…」
長男「6を3で割ると2。2×2で4になる。さっきの1とはやっぱり違う答えになるね」
私「そうだね」
長男「さっきの…結合法則だっけ。名前忘れたけれど、法則はもう1つあるよね。(a×d)+(b×d)+(c×d)が、(a+b+c)×dになるの」
私「それは分配法則だね。dをこう…分配してあげるの。分け分けするんだね」
長男「ところで、さっき言ってた話だけど、ナンプレを解くプログラムってどうすればできるの?」
私「そうだねえ。コンピュータは簡単なことしかできないけれど、それを複雑に組み合わせることや、人間にはできないほどのスピードでこなすことは得意だよ」
長男「うんうん」
私「だから、計算をどのように進めるかということを、きちんと言葉で書き表すことができるようなことは、コンピュータにもできる」
長男「じゃあさ、たとえば「絵を描く」っていうのはどう?コンピュータにもできる?」
私「それは、「絵を描く」の定義による」
長男「そうかなあ。絵を描くのはできないと思うけれど…」
私「たとえばカメラでパチリと」
長男「そういうの、なしだよ〜」
私「だから、「絵を描く」というのはどういうことなのかを定義しなければ、できるとも、できないともいえない」
長男「そりゃ、そうだけど」
私「たとえば、画像データになっているものを「油絵風」にしたり、「スケッチ風」にしたりすることはコンピュータにもできる」
長男「まあね」
私「でも、そうだなあ…。小さい子が描くような絵をコンピュータに描かせるのはちょっと難しいかも」
長男「どうして?」
私「そういう絵を描くには、どういうふうに描いたらいいのかを、言葉で説明することが難しいからだ」
長男「そりゃそうだね。じゃあ、家の見取り図みたいなものを描くのはどう?」
私「うん、コンピュータにはそっちのほうが得意かも」
長男「どうして? あのね、傾いたり、倒れたりしない家を作るんだよ」
私「かなりの部分が計算できると思うから、コンピュータでもけっこういけるんじゃないかな」
長男「そうかなあ」
私「概して、大学で勉強するようなことはコンピュータも得意。でも幼稚園でやるようなことはコンピュータは苦手なんだ。何だか逆みたいだけれど」
長男「どうして?」
私「大学で勉強するようなことの多くは言葉で伝えることができる。でも幼稚園でやることはうまく言葉で伝えられず、やっている子たちも無意識のうちにやっていることが多くあるからだよ」
長男「ふむふむ」
私「絵本を読んで聞かせて「どうしてこの子は泣いたのかなあ?」と尋ねたときに答えられるコンピュータを作るのは難しいと思う」
長男「なるほど。たしかに難しそう…。」
私「チューリングという人は、コンピュータが考えるかどうかを判定するテストを考案した。チューリングテスト、という。」
長男「チューリングテスト? 聞いたことあるなあ」
私「前もお風呂で話したことがあると思うよ」
長男「どういうテスト?」
私「2つの部屋があって、片方には人間、他方にはコンピュータが入っている。そのほかに判定する人が1人いるけれど、その人は、どっちの部屋にコンピュータがいるかを知らない。判定する人は、タイプを使って通信して、その部屋の中の人間やコンピュータと対話する。そして、判定する人が「どっちの部屋にコンピュータがいるか」を当てられなかったら、そのコンピュータは「考えている」と判断しよう…これがチューリングテスト」
長男「え? 判定するのに、人が必要なの」
私「それはなかなか鋭い指摘だけれど——チューリングテストでは人が必要だね」
長男「だって、計算問題を出したら、コンピュータはすぐに答えちゃうじゃない。すぐにわかっちゃうよ」
私「あ、そうそう。コンピュータは「できるだけ、人間のふりをする」んだよ。だから、計算問題にわざと遅く答えたりしても良い。ときどきは間違えたりしてね」
長男「えええ! わざと間違ってもいいの?」
私「そう。あなたがその判定者だったら、何て質問する?」
長男「簡単だよ。「あなたは人間ですか?」って聞く」
私「でも、両方とも「そうです」と答えるかもよ」
長男「人間は即座に答えられるじゃない」
私「いや、コンピュータは人間と同じくらいの速さで答えられると思うよ」
長男「じゃあ、「あなたは考えていますか」って…あああ、これでもだめだなあ」
私「こういうのはどうだろう。「あなたのお父さんのことを教えてください」」
長男「あ、そうか。コンピュータにはお父さんがいないから」
私「でも駄目だよ。だって適当なお話を作り出すかもしれないからね」
長男「ううう。ところで、そんなコンピュータって本当にあるの?」
私「だから、そういうコンピュータがあったとしたら、それを「考えている」ということにしようというんだよ」
長男「そっかー」
私「それがチューリングテスト」
上の日記を書いてから、 Wikipediaの「チューリング・テスト」の項を読んでいて、「中国語の部屋」というのを見つけた。 まあ、チューリング・テストのman-in-the-middleみたいなもの(違うって)。