教団「二次元愛」

リアルワールドに見切りをつけ、二次元に生きる男の生き様 (ニコニコでは「てとろでP」)

人間の脳の自然言語処理

2018-04-07 14:29:21 | 科学
さいきん趣味でロシア語をぼちぼち始めたのだが、
人間の脳の構造についておもしろいことを発見した。

それは何かというと……

人間の自然言語処理とは、脳内マクロを形成できるかどうかということだ。
それが実体験でわかったのだ。

これだけじゃあ何のことだか全くわからん。
順番に説明していこう。



とあるロシア語の文章があったとする。
例として↓こんなのをあげよう。

Меня зовут Сита.
ミニャー ザヴート シータ

もちろんロシア語をやってない人にはこれを読めるはずもない。

もし仮にロシア語をやってない人に辞書だけ渡して翻訳しろと言うとどうなるかをシミュレートすると……






(注:ここは読む必要はないよ!)

меняは人称代名詞яの生格か対格。
яは「私は」なので、меняはつまり「私の」または「私を」。

зовутは動詞зватьの三人称複数現在。
зватьは呼ぶ。
звать+対格+造格で「~を~と呼ぶ」。
ただし造格でなく主格でも可という文法上の特例がある。

Ситаはこの時点では何なのか不明だが、зватьを使っていることから推測するにたぶん何らかの名詞。

звать+対格+造格または主格のため、меняは「私の」ではなく「私を」で確定。

зовутが三人称複数であるため、Ситаが名詞の複数形と仮定すると「シトーたちは私を呼ぶ」となる。

または。
зовутの主語なしの不定人称文と仮定するとСитаは造格または主格のどちらかになるが、Ситаで造格なのは一般的な格変化では起こりえないのでСитаは主格と判断するのが妥当。
構文は「~を~と呼ぶ」であり単数のяであることからして、Ситаは単数である可能性が濃厚。
つまり「不特定多数の皆さんは私をシータと呼ぶ」となる。

状況から推測するに「不特定多数の皆さんは私をシータと呼ぶ」が日本語訳として妥当と判断する。






……とまあこんな具合。
非常に優秀なヤツなら以上のような構文解析を自力で行い正解にたどり着くことができる、かもしれないね。

ちなみにこれ、ラピュタのとあるシーンのセリフであり、「私の名はシータ」というあれだ。

これを辞書を引きながら翻訳していると20分以上かかるだろう。
辞書をまるごと暗記しているとしても、上記アルゴリズムにしたがって脳内で翻訳したとしたら1分くらいかかるだろう。

これは正しいのか?

受験英語のとおりの教え方にしたがえば、極めて正しい。

しかし人間の脳の自然言語処理はそうはなってはいない。

なぜか?

先に言ったとおり、上記アルゴリズムにしたがっていちいち脳内で翻訳していたら1分かかるのだとしたら、それは会話にならないからだ。

では何が正解か?

「Меня зовут [人名].」で「私の名は[人名]。」。
これが脳内でマクロ登録されていれば人間の脳くらいの処理能力でリアルタイム処理できる。

人間の脳はリアルタイム処理で構文解析などしない。
顕在意識というメインタスクから脳内マクロをサブルーチンコールするだけで人間は自然言語処理をしているのだ。



世の中にはおかしなことを言うヤツもいるものだ。
英語の教員の中には「英語は単語の暗記が命」みたいなことを言うやつがいる。
だからヒンズーの修行僧のように単語の暗記という苦行を積みなさいと語る。

これまたおかしな話で、会話くらいシビアなリアルタイム処理は必要としないが、辞書の持ち込みは不可な、リーディングの能力だけを試されるペーパーテストの点数を上げるだけの目的のときのみ、「英語は単語の暗記が命」で正しい。

そしてだいたいそんなことを言う英語の教員に限ってガチの外国人に英語で話しかけても通じない。
なぜなら、リーディングの能力に特化した訓練しかしていないからだ。

わたしだって英語は受験英語にしか使う気がなかったのでリーディングの能力に特化した訓練しかしていない。
結果としてTOEICのヒヤリングの部は全く聞き取れないが、大学院入試のペーパーテストまでは何とかしのいだので、案外最小の努力で目的をギリギリ達成しているとも言えなくもない。
まあそれはいいとして。



実はこれ、自然言語処理だけでなくて熟練を要するたいがいのものに当てはまる。

例えば将棋。
駒を見て「金は前後左右と斜め前に動けるから……」と構文解析しているとマトモに指せない。
盤面を見ると駒が勝手に動くくらいでないと人様に勝つことはできない。
これも脳内マクロをサブルーチンコールさせてタスクを実行ようにしておいて、顕在意識というメインタスクはなるべく処理しないようにできているわけだ。

だから人は将棋が強くなる。
そしてこれは、実生活に何の役にもたたない将棋マクロの生成に精を出しているだけのことであり、将棋をやれば頭が良くなるわけでも何でもない。



人間の脳はよくできている。
はじめて行う処理、またはめったに行わない処理は、顕在意識というメインタスクが1命令づつ翻訳しながら実行するというインタプリタ動作になっている。
ところが特定の処理を何度も反復実行していると、人間の脳は負荷を軽くするために勝手に脳内マクロを作りはじめる。
いったん脳内マクロができてしまえば顕在意識というメインタスクにはほとんど負荷をかけずに超高速に実行することができるようになる。
それも顕在意識というメインタスクからインタプリタ動作で実行している(慣れてない)人間から見ると、それこそ人間技とは思えないほど超高速にだ。

だが。
自分で自分を書き換えるというこの仕様でコンピュータを作るのはとても難しい。(※1)
なぜ難しいかというと、自分で自分を書き換えるようなものを作ってしまうとデバッグがとてつもなく難解になるからである。
多少は自分で自分をデバッグできるようになっている人間の脳に対し、現在の人類の作れるコンピュータはまだ追いついていない。
人間の脳が最もよくできている部分は、ひょっとしたらこの部分かもしれない。



たぶん努力は才能に勝るというのは、たぶんこの自己生成したマクロの処理能力の高さのことだ。
脳というCPUに個体差があって処理能力が倍くらい違ったところで、
顕在意識というメインタスクでインタプリタ動作しているヤツより、
脳内マクロをサブルーチンコールさせてタスクを実行できるヤツのほうが、
遥かに優秀なのは間違いないからだ。

ただし。
努力で挽回できるのはせいぜいこの程度まで。
それを宗教的に盲信しないほうがいいのは間違いない。






【※1 自分で自分を書き換えるコンピュータ】

これは実在する。
メモリ容量のとっても少なかった最初期のコンピュータではそうやってコードサイズを縮めることをしたケースがあったらしい。
プログラマがどの命令をどのアドレスに配置したかを知っている必要があるため、もちろんアセンブラで書くことになり、とっても生産性が悪い。
なお「A・Iが止まらない!」なるマンガのヒロインたちは自分で自分を書き換えるコードで書かれているという設定になっている。