やわやわ人工知能考察

人工知能に関する話題を技術的側面だけでなく、もうちょっと俯瞰的に主観的に話してみようとするブログです。やわやわやっていきます。

スクリプトの外側にあるスクリプト

二郎系GANは富山ブラックラーメンの夢を見るかの続きのポストである。まず私の問題意識を知っていただきたい。

k-td.hateblo.jp

しかし書いてみて、どうあがいても二郎系に結びつかない。なので、新しいタイトルで0からのスタートを図りたいと思う。(ときすでに遅し)

まえがきにならないまえがき 

二郎系GANは富山ブラックラーメンの夢を見るかで私はこんなことを言った。

後編では、更にそのデータの外側に目を向けて、どうすれば、人間と同じように人工知能がデータの向こう側を感じるようになるのかを考えていきたい。

どうやら私は寝ぼけてそんなことを書いていたみたいだ。パターンの外側にあるパターンというものを感じ取る。かなりアバウトな話であるなと投稿から、10日間たって思う。データの外側にありえたかもしれないパターンってなんだ。どうやって人間はそれを作り上げているのか。と。しかも機械にそれを組み込むとは?

人間はデータの外側にあり得たかもしれないパターンを(もしくは秩序を)自分勝手に生み出しているのだ。それが真のデータと異なっていても、予想としてそれを想像したり妄想したりする。

結局の所、私はその「妄想」に支配されているだけかもしれない。しかし、妄想を現実にしてきた生物ーつまり人間ーの力とは侮れない。この力の駆動源や駆動系を議論することにこそ「知能」に迫れるのではないか。こういうことを議論してもバチは当たらないだろう。もしそれが構造的に決定できるのならば、機械にだって置き換えることはできるはずだ。それが人工知能ではないか。なんて思ったりもする。

そこで、今回はスクリプトに焦点を当ててデータの外側についての理解を深めていきたい。個人的に、スクリプトの外側について議論をするのは、イラストのデータの分布より難しいが例えることが容易であると判断したためである。

スクリプトの外側をどのようにして人間は開拓していくのか。そしてその開拓した部分をどのようにして広げていくのか。

対抗するわけではないが、近年の自然言語処理NLP)界隈では、データを盲目的に収集する人工知能、データ内部の特徴量構造を獲得するためのシステムが流行っている(これがすごい技術だから何も言えないのだが)。すこし引きで見ると本当に「知能」なのかと自問自答したくなる。データを食わせる、そして内部の特徴量をより細かくみる。それが知能なのだろうか?

私はあくまでも人工知能で知能に迫りたいと思っているのだ。それは途方もない夢かもしれないが。

前回のポストで足りなかった部分を脚注で付け加える。*1

スクリプトの外側

スクリプトの外側を考えるためには、スクリプトを用意して、その内と外の違いを見てみるのがいいのではないか。

種類にもよるが、とりあえず演劇のスクリプト(台本)を上げてみよう思う(あくまで私の趣味なのだが)。演劇のスクリプトは、スクリプトの外側とはなにかということを考える上で利点がある。

演劇はスクリプトの外側が簡単に出てくる。スクリプトの外側がむしろなくてはならないのだ。もしスクリプト(地の文)だけで演劇をしようとするならばとんでもないつまらない。シェイクスピアも筆を勢いよく居るだろう。

演劇はおそらくスクリプトで書かれたの外側に何かが存在するからこそ(そしてそれが無秩序でないからこそ)、古代ギリシャから現代にかけて観客を、役者を、演劇に携わる人間を魅了してきた。

スクリプトの外側、それは役者の動きも1つだろう。そしてセリフになりアドリブである。

ここであるスクリプト*2を見よう。舞台設定はある高校の授業終わりの昼休みである。

ピザ屋 こんにちはー、ピザCATです。

榎木 何ですか、あなたは。勝手に入ってこないでください。

ピザ屋 ピザの配達にまいりました

榎木 ピザの配達?そんなもの、誰も・・・。

紫藤 (むくっと起き上がり)あ、それ、僕です。

榎木 紫藤、お前な・・・

黒田 (赤間に)あれ、お前食べないの?

赤間 うん、ダイエット、ダイエット。(お腹がなる) 

高校生がピザを頼むというのはかなり無理があるだろう、がそれは本題ではない。この部分のスクリプトは、授業終わりで弁当を食べるシーンなのだ。授業終了後、紫藤がピザを頼み、先生である榎木が呆れ返っているシーンだ。しかし登場人物は彼ら5人だけではない。黒田や赤間が話を続けようとする。さらに、10人以上の高校生役の役者がその舞台に立っているのだ。

ただ突っ立って・・・?そんなことはない。彼らは彼らの舞台上の関係性を持って、何かを話しているのだ。いわゆるアドリブ*3である。

このアドリブこそパターンの外側を考えるヒントになるのではないか。我々はスクリプトにはない言葉を、スクリプトを利用して生み出している*4

このスクリプトをじっくり見ると、榎木のセリフのあとに次のように続いていることがわかる。

榎木 紫藤、お前な・・・

黒田 (赤間に)あれ、お前食べないの?

赤間 うん、ダイエット、ダイエット。(お腹がなる)

変哲のないスクリプトだが、この3行から、スクリプトの外側にあるパターンを役者は大量に生み出さなければならない。榎木は「お前な・・・」というセリフのあと、何かを言おうとしている。しかし、メインスクリプトは黒田と赤間に変わっている。ストーリ的には黒田・赤間が優先されるが、榎木がそこで停止しているわけではない。その後も紫藤に対してなにか言わなければならない。何をいえばいいのか。

もう1つは黒田と赤間に対してである。榎木と紫藤、ピザ屋がやり取りしている間、二人は突っ立っているわけではない。黒田は赤間に何も食べていないことをこのやり取りの間でおそらく気が付かなくてはならない。

短いスクリプトからスクリプトに書かれたこと以外を想像しなければならない。

おそらく榎木は紫藤に「いくらなんでも、ピザはないだろう」とか、紫藤が榎木を無視して「いやあ、ピザ食べたかったんですよ」ということも想像できるだろう。他にも考えられる、ピザ屋が「代金です」といって、紫藤に向かってピザ代を請求する。お金を持っていない紫藤は、榎木に「先生ごめん、立替えてくれ」というアドリブも可能なのだ。こうしてみるとこのスクリプトの外側は自由度が高い。しかし自由度が高いが、無秩序ではない。なぜならば、おそらく榎木は「俺も食べたいな」は言わない様なきがする。なぜだろうか。

もう一つの例はややこしい。紫藤と榎木がバトルしている際に急に乱入するスクリプトである。黒田はどのようにして赤間が弁当を食べていないことを気づくのだろうか。無関係で進行していた二人がいきなり榎木のセリフにかぶるように話すこともありえない話ではない。しかしそれは可能性の1つである。急展開で話が展開されるのではなく、その前におそらく様々なアドリブが生じることが期待できる。例えば赤間から「黒田の弁当美味しそうだね」と言って会話が始まることもあれば、黒田が「なあなあ、今日の弁当なに?俺はね・・・」という自分の弁当を自慢することから始まるかもしれない。それでもおそらく、赤間が「こんちくしょう。ふざけやがって」とは言わない様な気がする。

スクリプトの外側にあるスクリプトを予期する役者。しかしそれはスクリプトで書かれたパターンからの逸脱ではない。そのパターンを予期して、アドリブを生成する。自由度は高いが逸脱ではないのだ。スクリプトの外側にあるスクリプトを予期して我々はスクリプトのないスクリプトを生成しているのだ。役者に限ることではない。観客もそれを自然に予期してしまう。

だからこそ、セリフ(榎木の「食べたいな」や赤間の「こんちくしょう」)は当てはまらないのかもしれないと思ってしまう。この8セリフという短いスクリプトでさえ、我々はスクリプトの逸脱さえも予期する。それは我々がこの8個のセリフに対して、見えない外部を予期し、自然なスクリプトを構成しているからかもしれない*5

スクリプトの外側は内側ではないか?

しかしこれについて簡単に反論があるかもしれない。

この様な日常シーンは前にも存在したのではないか。似たようなセリフがスクリプトに書いてあるのではないか。だからパターンの外側では厳密ではないんではないか。*6

つまりこの様なアドリブは、スクリプトのどこかに同じ様な文章が書いてあるからこそできるのではないかという反論である。確かにそうかもしれない。3幕目でこのスクリプトがあるならば、類似したスクリプトが2幕目や1幕目に出ているかもしれない。ここで全スクリプトを上げるのは引用上困難である。なので、私が嘘をついて上記のアドリブを、スクリプトのどこかから持ってきて再構築している(私が私自身を人工知能化している)だけかもしれない。

身近な例でいうと「まんがか」のセリフを創るために大量のデータを利用している・・・そんな感じだろうか*7。この場合は、スクリプトの並び順を飛ばしてキャラクタのスクリプトを再構成したものを表示している。最近の研究では、言語(スクリプト)もGANで生成できるようになり、かなり精度が上がっている*8。なるほど、それらしい文章はデータさえあれば作れるのだ。スクリプトの内側に存在すれば、我々は新しい文章を生成することができる。 

そうであれば、役者がという職業はただ単に、スクリプトをどこかから拝借するだけの自動機械になる。それはそれで機械にとって現状でも難易度は高いのだが。

しかし、アドリブは必ずしもスクリプトの内側に存在するものではない。役者がスクリプトにないセリフを話そうとするとき、それは定常状態の場面だけではない。事件が起こり、なんとかしなければいけないというときに、今までにない新しい言葉を作らなければならなくなる。そのとき、そのセリフはスクリプトの内側を見ていても永久に見えてこない。舞台は動き続けるからだ。

舞台が動くとき

例えば先程のスクリプトの続きを見てみよう。

榎木 よかったな、赤間。これでお腹いっぱい・・・

赤間 ・・・いらんし

榎木 え?

赤間 こんなん、いらんし!先生ひどい!

少し間をおいてこのように話が展開していく。そこには、「ダイエット」と言い訳をして昼ごはんを食べなかった赤間の姿はいない。 舞台が動く瞬間である。緊急事態だし、スクリプト全体をみても1回もそういう状況にはなったことがない。

それでも役者は食らいつかねばならない。その役者が何を言っているか・・・。その時何を言うべきなのか、何を行動しなければならないのか。これらはスクリプトにはない。今までのスクリプトには決してのっていない。役者は、台本に書かれている「安易なキャラクター」からハズレ、スクリプトの外側にある、そのキャラクターの延長を、スクリプトがなくとも演じなくてはならない。しかし、そのスクリプトの外側は、その状態に対して秩序的なものを持っていないといけない。

ここで例えば紫藤が「ピザのお金明後日返すわ」とか言ってもいいのだろうか。まだ紫藤ならという感じもする。紫藤というスクリプトの外側にはこの状況と対峙しても、このセリフが出てくることがまだ予期される。「おい、赤間」といって追いかけることもできるだろう。「あーあ。なんかかったりーな。別の教室でピザ食うわ」でもあるかもしれない。

しかし、無限にアドリブが用意されているわけではない。例えば、いきなり「うんちょこちょこちょこぴー」と発言した場合どうだろうか?スクリプトの外側に存在する言葉である。だが、紫藤はそれを言うことができるのだろうか。確かにスクリプトの外側にはある。もしここで紫藤(を演じる役者)が言ってしまった場合、演出からこう言われるだろう。

「お前は何を言っているんだ」

もし大会ならばこの瞬間予選敗退が決定してしまう。そして、周りの同級生から3週間ほど口を聞いてもらえない状況になる。

それだけ「うんちょこちょこちょこぴー」はおそらスクリプトの外側には存在しないような気がしてしまうセリフなのだ。

ではなぜ同じデータの外側にある文章であるにもかかわらず、そこに線を引くことができてしまうのだろうか。つまり、上記のアドリブはスクリプトの外側であり、「うんちょこちょこちょこぴー」はさらに外側のランダム的エリアに入ってしまっていると我々は思ってしまうのだろうか。

映画を見ているときでも我々はそういうことをしているはずだ。おそらく、ストーリーがちゃんと理解できるとき、われわれは次のシーンを予測しながら観ている。ところが、とんでもないことが起きるとき(舞台が動くとき)、私たちは妙な感覚を感じる。それは、自分の中にあるスクリプトから大きく逸脱したからだろう。それでも、私たちは瞬時にその逸脱したスクリプトを利用して新しい外側を作っていくことができる。しかも無限にあるストーリーから、限定的なスクリプトを利用して秩序的な見えないスクリプトを作っていく。

ドラえもん映画を見ているとき、鉄腕アトムの登場を我々は予期しない。(手塚治虫は平気でそういうことをやるのだが…。)

舞台が動くとき、スクリプトの外側にあるスクリプトを作っていかなければならない。そうでないと我々は映画どころか生活も楽しむことができないのではないか。

スクリプトの外側にあるスクリプトを生み出す力

この我々のスクリプト秩序的外側と、その向こう側ランダム的な部分に線を引いて、その範囲内で物事を考えること。スクリプトの外側にあるスクリプトを考えるとき、スクリプトの内部から外側を見つめ、ランダムと秩序に線を作り、新しい秩序を再構築する能力。

スクリプトの外側を作っていくとき、永遠に終わらない対話がそこに存在する。アドリブを言うときに、瞬時にこういうことを計算しなければならない。このセリフはありえるだろうか?いえるセリフの限界はどの辺だろうか。流石に無理がある。いくらなんでもスクリプトの外側にはこのセリフは存在しない。我々はスクリプトの逸脱さえも予期している。逸脱した結果そのセリフは棄却され、スクリプトから放棄される。

このように、アドリブをするためだけに、役者は秩序的なスクリプトの外側を見つけようと、今までのスクリプトと照らし合わせながら再構築しているのかもしれない。出てきたアドリブがパターンの外側の秩序的部分であるかそれとも、逸脱か。自己言及を繰り返しながら、そして外に(我々に聞こえるように)セリフを出す。

これがスクリプトの外側にあるスクリプトを生み出す力である。

セリフが適切だった(何が適切かは議論が必要かもしれないが)場合、そのアドリブは舞台演出を効果的に盛り上げる。もしランダムと秩序のぎりぎりを言ってしまった場合、それはさらに深いものになる(お笑いはそのエッジがさらに研ぎ澄まされた状態だと思うのだが)。

スクリプトの内側を探求するだけではない、外側を作っていく力。 外側は内部の見えない構造から影響を間違いなく与えるだろう。今あるスクリプトが正しく認識できない場合は、スクリプトの外側を探求してもランダムなものになってしまう。スクリプトの内側をちゃんと認識することで、外側にあるべき新しい秩序を生み出せるかもしれない。スクリプトの外側を見つけるためにはは、既に存在する秩序(データ)からあるはずのないスクリプトを再構成しなければならない。

それは「パターンの外側」を自己生成する力である。そしてパターンの外側と内側のぎりぎりを見つける力である。

その力によって、まっとうなアドリブや、逸脱したアドリブ不気味なアドリブを感じてしまう。もっと大きい話ならばストーリー展開さえも予測できる。限られたデータから、データの外側の秩序、その内側を限られたデータから再構成し、そしてそのエッジ(edge of chaos)のぎりぎりまで自己言及し続ける*9。データの内部を見つめてもそれはできない。その向こう側を作るためには、データの内部を飛び出さなければできない仕事である。

自己言及は、自分だけではなく、他者と出会うことでさらに洗練される。例えば、アドリブを一度外に出し、相手の承認を受けると(練習で演出に今のアドリブいいねとか言われると)、そのアドリブはスクリプトの内側に組み込まれる。内側に存在してもよいという許可を得られたスクリプトは、それをもとにさらに外側を探求して新しいアドリブを見つけることもできるだろう。

これらの能力は、単なるデータ内部からの延長ではない。自己言及による、外側の再構築、再発見が必要ではないだろうか。

だからデータを食わせれば良い問題ではない。失敗しても自分の中でランダムと秩序の間を見つけていく創発作業によって生まれる。外側をどのように進むのか。それが一つの向きだけでは多様性が保証されない。個体差、個性によってデータの外側は様々な方向に広がっていくだろう。また、データの内側をより鋭く見れる存在は、さらに外側への再構築に対しても鋭敏ではないだろうか。様々な予測がたてられる。

 機械にデータの外側を見てもらいたい

さて、問題はこれらだ。もしこれらの議論がある程度正しいならば、機械に必要なのは、外側の予期と再帰的な自己への取り込みである。

どうして我々は、外部を予期できるのだろうか。どうやって端っこを確認しているのだろうか。

果たして機械でできるのか?機械はどのような仕組みなのか。そしてそこに知能は存在するのか?これらの問題をを考えていきたい。

 

ご意見やご感想がありましたらコメントをぜひよろしくお願いします。また間違いの訂正もぜひよろしくお願いします。

 

*1:ところで、生成系システムと分類システムは根本的に違う。AE(オートエンコーダ)の中間層が生成系で利用しないように(AEは原理的にはできるのだが、考え方は分類や〇〇と同じである)、分類システムが生成でそのまま利用することはできない。しかし、データを空間で認識するという点においてはおおよそ同じであろう。であるから前回、線形分類を例にとって私の考えを伝えたかった。NNは線形分類できる形に変形している。なら、その端っこはどうなっているかと・・・。4と7のクラス分類の端っこはそれでも4と7なのか。機械学習的にはそれはYESだ。そこには学習したデータは存在しない。ところが、我々はそのパターンの外側に存在するパターンを感じ取ることができる。

機械にとってはずーっとそれは7のクラスなのかもしれない、そこには何もないのかもしれない。では、人間はそれを超えることはできるのか。

 それが本ポストの主題である。

*2:2008年中部日本高校演劇創作脚本集・中部日本高校学校演劇連盟より「食べ終わるまで残ってなさい」中山みるく著 から引用

*3:本来はアドリブとは音楽用語であり、演劇では動きもアドリブの一部に入る。しかし今回はスクリプトの話をしたいので、セリフアドリブとして言及していきたい

*4:アドリブを認めるか認めないか、これは演出によってかなり差がある。完全に舞台をコントロールしたい演出はアドリブさえもコントロールする。今の所幸い私はその様な演出に出会ったことがない。しかし、本文でも記述したが、アドリブは1回目はアドリブなのだが、2回め以降は、スクリプトになってしまう。それでも多彩なパターンが出るということは、アドリブはスクリプトの外側の秩序的な無限性を秘めているような気がしてならない

なお、ここでのアドリブとは、スクリプトの裏側に潜むアドリブであり、スクリプトを自分勝手に書き換えて変更することではない。あしからず。

*5:もしお笑いならばこれらのセリフは成立するかもしれない。セリフにかかる文脈依存は、何もスクリプトの表面的意義ではなく、かなり深い問題に根付いていると私は直感的に感じている。文脈によって正しくなる・もしくは正しくない(笑いに変換される)スクリプトが存在するというのは、スクリプトの外側を別の面で拡張する際に様々なレイヤーを生じているのではないか

*6:もっと大きい反論として、スクリプトの外側は、我々が生活してきてなんとなく生じているものじゃないのか?というのがあるかもしれない。でもこの大きな反論は内側と外側を切断する人工知能にとって致命的な反論である。この問題はおいおい考えていきたい

*7:

mangaka.tech

*8:言語処理におけるGANの展開のスライドが公開されていた。翻訳だけかと思ったら、生成でも利用されている。また古典的にはマルコフ連鎖を利用したデータベースをもとにした言語生成や、単純なリカレントニューラルネットワーク(LSTMが多いかもしれないが)を利用した言語生成の研究もある。

www.slideshare.net

qiita.com

qiita.com

*9:個人的には、この自己言及・再帰的言及は人工知能の研究対象を飛び出し人工生命に近い何かではないかと思っている