関数とは何だろうか

「関数」という言葉の意味がわからない、という指摘を受けたので思いつくま まに綴ってみる。

まず私の学生時代のエピソードから。

遥か昔、私が大学に入学したての頃の話である。一般教養の心理学概論の授業 で、テキストにこう書かれていたことを思い出す。「人間の行動は環境の変数 である。環境を E とし、行動を y とするなら、人間の行動は y=f(E) と書く ことができる。この関数 f を探ることが心理学の目的である。」いきなり、 この話を聞かされて驚いた。たしかテキストの第一ページ目に書かれていたと 思う。人間の心に漠然とした興味しかなかった当時の私には受け止めることが できなかった。

環境が E とは何か?いかなる環境を数値として表現するのだろうか?そして 同じ疑問が行動 y にもあてはまる。自分の行っている行動と数式との接点な どあるのだろうか?そして自分の知っている「関数」の概念からは、まるで想 像できない「関数」。関数と言えば、直線の方程式 y = ax + b だとか、二次 関数 y=ax^2 + bx + cくらいしか知らない人間にとっては、魔法にかけられた ようだった。

しかし、今から考えると随分と無茶な話であるではある。乱暴と言い替えても 良い。何の定義もなく y=f(E) と書かれていては、言葉は悪いが、人を騙そう としているようにも思える。

テキストに書かれていた内容は、行動主義の心理学であった。心理学史を多少 とも知っている者には、行動主義心理学という昔の大流行をご存知だろう。私 の学生時代には、スキナーに代表される過激な行動主義、あるいはハルあたり を含めた新行動主義(パブロフ型の条件付け学習による古典的行動主義と区別 するために、新、という文字を用いることがある)の概念を心理臨床の場面に も応用されることが試みられていた。いわゆる行動療法と呼ばれる心理療法の 一つである。行動療法が社会にも認められ、市民権を得てきた頃の話であった。 スキナー型の道具的条件付けは、主としてラットやハトを被検体として、これ ら実験動物の行動形成に関する心理実験から導き出された概念である。そのス キナー流の心理学が、何と人間を治療する現場にも活用されている。私が大学 教育を受けた頃の状況は、行動主義が心理学の主流であり、心理学の基礎を学 ぶ者は必ず獲得しなければならないとされた。余談だが、日本行動療法学会と 日本基礎心理学会という学会は実在する。

過激な行動主義の教義によれば、y=f(x) の f つまり「関数」の内容を問うこ とは許されない。行動主義者の心理学とは、与えられた環境と、その結果とし て表れた行動との間の関係を記述することである。関数 f がどのようになっ ているのかを問うことは許されない。関数 f は暗箱、ブラックボックスだと 教えられた。そしてブラックボックスの中身を考えてはいけなかった。なぜな ら、ブラックボックスは個人の主観の世界であり、科学的に解明できる見込は ないから、と説明を受けた。人間の行動を科学する心理学は科学であることを 確認するために、みずからを徹底的に客観化し、ブラックボックスは、その曖 昧さゆえに、中身を問うてはいけないのであった。そして、ただ環境と行動の 関係を詳細に記述することが心理学であると教えられた。

今になって考えてみれば、ナンセンスであると分かるような、行動主義心理学 の考え方が万能ではないことを、当時、依拠する背景知識を持ち合わせない一 学生には分かるはずもなかった。

だがしかし、少し考えればネズミと人間とを分ける部分こそ、真に面白いだろ うということが分かる。もっと言えば進化の隣人であるチンパンジーと人間と の違いは何なのか。なぜサルは芸術を観賞しないのか、なぜサルは詩を書かな いのか。作曲しないのか、建築しないのか、計算しないのか、貨幣を使わない のか、選挙しないのか、人工衛星を飛ばさないのか。人間をして万物の霊長と 呼ばしめるものは何かを考えることの方がずっと面白そうだ。第一、なぜ人間 を人間たらしめる叡知を知りたいと思う自分がいるのか、を知りたかった。こ の純粋な好奇心は満たされることはなかった。

ネズミを観察していては、決して理解できない類の問題を考えたい、とは素朴 な欲求であった。すぐれた詩人の頭の中に浮かんで来る詞はどこからくるのか、 新しい発見をする科学者はどうやって新しいアイデアを思いつくのか。芸術を 創作し、計画を立て、顕微鏡の中から宇宙の果てまでの森羅万象を記述し、文 明を築き上げる、などなど人類の英知とは何かを知りたければ、行動主義心理 学の枠組では、ほぼ不可能に思えた。

もっと人間の内部に起こっていることに焦点をあて、人間の知的活動を直接問 題として取扱おうという動きがあることを知ったのは、後のことである。いわ ゆる認知革命と呼ばれる動きがあることは学部 3 年生くらいに、言葉だけは 知っていたと思う。しかし、その以外はまったく知らなかった。認知革命後の 発展、人工知能、言語学、科学哲学など隣接領域との間に認知科学という学問 分野が立ち上がりつつあること。行動主義心理学に対してまったく逆のことを 考えている人達がいること。もっと言えば行動主義に真向から反対する人達が 多いことも知った。しかも、それらはかなり影響力を持っていることも。

そんな情報を耳学問で知り始めたが、当時の大学ではだれも教えてはくれなかっ た。スキナー流の心理学が心理学の本流であり、行動主義心理学以外の世界を 知らされることはなかった。学部教育は、いわばスキナー箱に入れられたラッ トのように、行動主義心理学以外の分野の知識を与えられはしなかった。

誰も教えてくれる人がいなかったので、自分で本を探して読んで理解しなけれ ばならなかった。例えば、発達心理学の巨人ピアジェ、ほぼ一人で現代言語学 を作り上げたチョムスキー、後の脳科学、神経科学に多大な影響をあたえたヘッ ブ。ニューラルネットワークの初期のモデルを提案したローゼンブラット。ノ イマン、チューリング、シャノンなどと言ったコンピュータの産みの親である 研究者が人間の知性について深い考察を行っていたこと。ミンスキー、ワイゼ ンバームといった人工知能の研究者達。

獰猛という言葉を使えるのなら、当時の私は獰猛にこの好奇心を満たしてくれ そうな本を読んで、知識を詰め込んでいった。快楽であった。自分の知らない 世界を奥深くまで掘り下げた考えがあることがありがたかったし、それらを知 ることに陶酔した。私はこれらの概念を知ることに没頭した。自分が知りたい と思うことは全て理解したかった。驚きの連続だった。人間の頭の中がコンピュー タを用いて再現することができるだって!人間の脳とコンピュータにできる計 算の間にそれほど差がないだって!脳を構成するニューロンの動作は基本的に 電気回路におけるトランジスタと同じだって!しかもそれは偏微分方程式で表 せるだって!なんてこった!

指導教授がいるわけでもなく、一人で全てを納得するまで調べて理解するには 時間が足りない。当然のように留年し、大学院の試験にも落ちた。へこんだ。 落ちこみはしたが、自分の知りたいことを知りたいという気持ちは現在でも続 いている。

こうした時間経過に伴って、私の貧弱な「関数」の概念は拡張していったよう だ。たとえ数式で表すことができなくても、ある機能、状態、性質を関係付け るものを関数と読んで構わないらしい。このことはコンピュータ言語を学んで いるときに理解した。もちろん心の働きをコンピュータでシミュレーションす ることを確かめるために、コンピュータ言語を独修している時である。

たとえ入力と出力の関係が明確でなくとも、コンピュータ言語の世界では、関 数が存在する。最終的にはコンピュータが記憶できるデジタル表現に変換され て処理されるとは言え、関数の中身は、自分で勝手に書き換えても良いらしい。 何もしない関数も存在するし、永遠に答えを出さない関数も存在する。答えを 出すか出さないかを見極めるためには有限の時間では答えを知り得ない関数と いう空想上の関数も存在することを知った。そこでは、コンピュータ言語とし ての文法に従ってさえいれば何でも有りだった。

そう考えると世の中すべて関数だらけ。携帯電話も関数なら、デートのときの 彼女との会話も関数だ。夢を見るのも関数なら、ロケットも関数。物理学のよ うな物質のカラクリを扱う科学で用いられる関数だけでなく、人文科学も社会 科学も関数という言葉を使って良いらしい。随分と乱暴な話だ。だが、私の中 では「関数」という言葉が乱暴になればなるほど、便利になっていった。

自分の知っている関数の概念が貧弱すぎたのだ。すべて有りの「関数」と考え ると、最初のうちは欲張らないで、できることから始めようと思ってみること ができる。

できることとは、今まで分かっていることを最大限に利用して、その先を考え ることができることを意味する。ニュートンは「私がより遠くまで見通すこと ができたのだとしたら、それは巨人の肩の上に乗っていたからだ」と言った。 今日まで累々と積み重なる科学的事実、先人たちが見出した自然界の法則に照 らして、その先を見つめることができれば、効率良く知的な冒険ができそうだ。 過去の巨人たちの肩は有りがたく利用させていただくことにしよう。他の類人 猿と決定的に異なる知的創造物を利用させていただくことにして、私はその先 の先まで見に行こう。

という訳で、現代風に y=f(E) を改訂してみたい。

この関数に不足なことが明白なのは、同じ環境に置かれても反応は人それぞれ であることだ。人間の行動を表現するためには環境だけでは足りないことに気 がつく。そこで、人それぞれということを表現するために、記憶を導入しよう。 つまり、ある時刻にある人間がある行動を起こすのは、そのときの環境と、直 前の時刻の自己の状態という二つの変数を持つ「関数」だとしてみよう。

現在の時刻を t、一つ前の時刻 t-1 とすることにすれば、y(t) = f(E,y(t-1)) だ。あれ? t-1 だけで良いのか? t-2 は必要ないのか?

多分いらない。どうしても必要になったらその時には、加えれば良い。 まずは可能なかぎり簡単にして考えることにしたい。これは科学者の基本的な スタンスでもある。デカルトが言ったように「ものごとを可能なかぎり意味の ある部分に分けて理解し、しかる後に全体を組み上げていく」という有名な方 法論序説という文章に載っている言葉だ。近代科学はすべてデカルトの方法論 を踏襲しているといって良い。

時刻 t-2 が不要な理由は y(t-1)=f(E,y(t-2)) が自動的に決まるからだ。従っ て、この式によって、昔々に遡ることができる。おそらく赤ちゃんを通りすぎ て受精卵まで。受精卵のときの時刻を出発点にすると、そのときの(胎内)環境 と相互作用して次の時刻の状態が決まり、その状態と環境を用いて次の時刻の 状態が決まる。このようにして y(t)=f(E,y(t-1)) という式は自分の全歴史を 含めた過去の記憶と環境との絡み合いによって、ある行動が引き起こされるこ とを表す式だ。実際にある行動の起こりやすさを

y(t) = V(t) + y(t-1).

と表現することがある。V(t) とは、その時に期待される価値、あるいは報酬 体系と呼ばれる。価値 value の頭文字をとった V。その価値と一時刻前の自 分の状態、あるいは行動、どちらでもよい、の二つによって現在の行動 y(t) が起こるという関係を表現している。関係を表現しているのなら「関数」だ。

もう一工夫して、過去の影響と現在の価値との間の配分を決める量 alpha を 導入しよう。alpha の値が大きければ大きいほど過去に拘束されることになる。

y(t) = alpha * V(t) + (1 - alpha) * y(t-1).

ここで alpha は 0 から 1 の値をとる定数である。alpha が大きいと現実重 視で記憶喪失気味になり、逆に alpha が小さければ過去のしがらみに縛られ ているという。長いことつき合ってきた恋人と分かれることはつらいが、昨日 知り合った相手となら簡単に別れられる。ということは時と場合によって alpha が異なるわけだ。

関数の書き方は勝手に考えて良いので、この式は

y(t) = f(E,y(t-1),alpha).

と alpha を第三の変数として、三つの変数を持つ関数であると明示的に主張 しても良い。時刻を明確な変数とし、過去の状態は t によって決まることを 強調するのなら、
y = f(E,t-1,alpha).

と書いても良い。もう少し格好よく表現するために積分記号∫を使ってもよい。

y(t) = alpha * V(t) + ( 1 - alpha ) * ∫_-∞^t y(t) dt

ここで ∫_-∞^t とはマイナス無限大から現在の時刻 t までの影響をすべて 考慮した、と言う程度の意味合いである。

実際にこの式が解けるかどうかは別問題として表現は自由である。偶然にも自 分にも手が出るほど簡単な関数になれば積分すれば良い。積分できなくても意 味は変わらない。この式の意味は、繰り返すになるが、「時刻 t における心 理状態は、そのときの価値と過去の記憶との関係として表すことができる」と いう意味である。

つまり、数式で表現してあっても文章として「読む」ことができて意味を解釈 することができるのである。歯が痛いとき、虫歯の大きさと過去に歯医者でど ういうことが起きたかを考慮して、歯医者に行くという行動が発生するかどう かが決まる。別にたいした意味があるわけではない。

過去にも大量の、そして、これから先の未来にも大量に「関数」は作られるだ ろう。「関数」の概念を乱暴にすればするほど適用範囲は拡がるのだから。

そして意味ある式であればいろいろな場面で利用される。りんごが木から落ち ることも、地球が太陽の回りを回っていて、その回りを月が回っていることも 同時に説明できるすばらしい関数もあれば、まるで意味のない関数もある。

かつて行動主義の教義によって問うことを許されなかったブラックボックス y=f(x) の f つまり「関数」の内容を自由に考えることができるようになった。 発想は自由であるから色々な考え方がある。大胆に発想すればコンピュータと 脳が同じであるとか、コンピュータにはできるはずのない、人間の心に特有な 機能を仮定することもできる。実際このことを理論的な根拠としてニューラル ネットワークという研究分野がある。実際に知的行動をコンピュータでプログ ラムしてみようと言うわけだ。自分の動作原理を自分自身で理解することがで きるだろうかという哲学的な問題は残るにせよ、この流れは逆流することはあ りえないだろう。最終的には、万物の霊長としての人間を人間たらしめている 叡知にまで迫りたいものだ。

関数を使って見通しが良くなるのならば関数を使えば良い。芸術家は独力で自 分の世界をゼロから作り上げて行かなければならないが、科学者は過去に偉大 な科学者の業績を再利用することが許される。過去に明らかになった科学的事 実を利用できるのだから効率が良い。巨人の肩の上に乗れるからだ。

さて、巨人の肩の上に乗って、できるだけ遠くまで見に出掛けよう。


asakawa@aoni.waseda.jp