❦
人は友好的AIの話を聞くと、こう言う。最初に返ってくる反応として、特に多い三つのうちの一つだ。
「ああ、AIに友好的であれと命じることはできるでしょう。でも、自分のソースコードを書き換えられるなら、課そうとした制約など、AIは取り除いてしまいますよ」
では、その判断はどこから来るのだろう?
最初に書かれたソースコードから始まる、法則に従った因果の連鎖の結果ではなく、因果の外から入ってくるのだろうか。AIは、自分の自由意志の究極の源なのか。
友好的AIとは、利己的なAIに特別な良心モジュールを追加し、その本来の衝動を上書きして、何をすべきか命令するものではない。良心そのものを作ればよく、それがAIなのだ。AIがどの判断をすべきか計算するプログラムがあれば、それでできあがりだ。責任を引き受ける先は、そこで尽きる。
ここで少し、Computer Stupiditiesというサイトのプログラミングの項目から、いくつか事例を引用しよう。(恐ろしいほど時間を吸い取る罠なので、リンクは貼らない。勇気があるなら検索してほしい。)
プログラミングの授業を取っている大学生に、個別指導をしていました。その中には、コンピュータには意識がないと理解していない人が何人かいました。Pascalのプログラムのコメントに、「では、この文字を画面に表示してください」といった詳しい説明を書く人が、一人ではなかったのです。何のためのコメントか一人に尋ねると、「そうしないと、何をしてほしいかコンピュータにどうやって伝わるんですか?」という返事でした。自分がPascalを理解できないのだから、コンピュータも理解できないはずだ、と思っていたようです。
大学時代、学内の数学学習室で個別指導をしていました。ある学生が、BASICのプログラムが動かないとやって来ました。入門授業を取っていて、課題は、何人分を焼くかに応じて、オートミールクッキーのレシピを計算するプログラムを書くことでした。プログラムを見ると、こんな具合でした。
10 オーブンを350度に予熱する
20 大きなボウルに材料をすべて入れる
30 なめらかになるまで混ぜる
プログラミング入門の学生に、自分のプログラムを見て、簡単な計算の結果がなぜいつもゼロになるのか調べてほしいと頼まれました。見れば、理由は明らかでした。
begin
read("Number of Apples", apples)
read("Number of Carrots", carrots)
read("Price for 1 Apple", a_price)
read("Price for 1 Carrot", c_price)
write("Total for Apples", a_total)
write("Total for Carrots", c_total)
write("Total", total)
total = a_total + c_total
a_total = apples * a_price
c_total = carrots * c_price
end
私:「ええと、計算する前に正しい結果を表示することはできませんよ」
彼:「え? 何が正しい答えかは、論理的にわかるでしょう。コンピュータが命令を正しい順に並べ替えるべきでは?」
「AIをプログラムする」という状況には、人が本能的に思い浮かべる姿がある。人間に何をするか指示する、という、一見似た人間の行為に重ね合わせるのだ。まるで「プログラム」が、機械の中に座る小さな幽霊に指示を与え、その幽霊が指示を眺めて、気に入るかどうか判断するかのように。
指示を眺め、どう従うか決める幽霊などいない。プログラムがAIなのだ。
だからといって、その幽霊が魔神のように何でも願いをかなえてくれるわけではない。並外れて従順な奴隷のように、何もかも望みどおりのやり方でしてくれるわけでもない。少なくとも起動時には、あなたの指示こそが、そこにいる唯一の幽霊だということだ。
AIは、人が本能的に想像していたよりはるかに難しい。まさに、何をするか幽霊に言えば済むわけではないからだ。幽霊は一から作らなければならない。あなたには明白に思えることでも、それをどうやって幽霊に見えるようにするか知らなければ、幽霊には見えない。見ろと言うだけではだめなのだ。見る主体そのものを、一から作らなければならない。
たとえば「意思決定」のように、奇妙で言い表しがたい要素がありそうなものを、どう作ればよいかわからないとしよう。だからといって肩をすくめ、幽霊の自由意志に任せるわけにはいかない。幽霊は手に入らず、途方に暮れるだけだ。
チェスのプログラムを作るには、とても速いプロセッサを作ってAIを賢くしてから、コマンドプロンプトに「あなたが最善だと思う手を指せ」と打ち込むだけでは足りない。プログラマ自身はそれほど強いチェスプレイヤーではないのだから、電子の超頭脳に助言しても、幽霊の足を引っ張るだけだ、と思うかもしれない。だが幽霊はいない。問題がおわかりだろう。
そして、簡単な呪文を唱えると、ぽん、と完成した幽霊を機械に召喚できるわけでもない。「幽霊を召喚したら現れた。これが因果関係だ」とは言えない。(「召喚」の代わりに「創発」や「複雑性」という概念を使ってもだめだ。)CPUに「強いチェスプレイヤーになれ!」と命じることはできない。チェスを指す思考の謎の内側を見て、幽霊全体を一から組み立てなければならない。
どんなに常識的でも、どんなに論理的でも、どんなに「明白」「正しい」「自明」「知的」に思えても、幽霊の中でそのことが起きることはない。あなたが決めなければならなかった指示と、その最初の指示に組み込んだ感覚データへの因果的依存から始まる、因果の連鎖の末に起きるのでない限りは。
これは、すべての判断を明示的にプログラムするという意味ではない。ディープ・ブルーは、作ったプログラマよりはるかに強いチェスプレイヤーだった。作り手が明示的に書き込めるどんな手よりもよい手を指した。だが、それはプログラマが肩をすくめ、幽霊に任せたからではない。ディープ・ブルーがプログラマよりよい手を指したのは……プログラマのコードから始まり、そこから法則に従って進む因果の連鎖の末でのことだ。あまりに明らかによい手だからという理由だけで、コードもその法則的帰結も介さず、ディープ・ブルーの幽霊めいた自由意志が引き継いで何かを起こしたわけではない。
AIを制約することから手を引こうとしても、解放された奴隷のような自由な幽霊が残るわけではない。残るのは、誰もシリコンに精製せず、CPUの形にもせず、考えるようにもプログラムしていない、砂の山だけだ。
さあ、コンピュータチップに「好きにしろ!」と言ってみるといい。何が起きるだろう? 何も起きない。自由を理解するように、あなたが制約を与えていないからだ。
たった一段階でも、あまりに明白で、論理的で、自明なために心が飛ばしてしまったら、AIプログラマの道から外れてしまう。心にそうさせないためには、「つかみどころのないものをつかむ」で示したような努力が必要なのだ。