2017年3月25日土曜日

進学校あるある

ある日突然、先生が挨拶してくれるようになった

あれは忘れもしない。高校3年生の6月だった。
僕の通っていた高校は地元では有数の進学校で、前の週にはとても難易度の高い実力テストが実施された。採点結果がぼちぼち返ってきた。僕の得点は高くなかったが、級友たちの得点は輪をかけて悪かった。そのテストは、国の指導要領改訂を無視して、何年も同じような問題を使うことで、年度ごとの生徒全体の力量を定点観測する特別なもので、まだ習っていない事柄も容赦なく出題されていた。
その日の朝、厳しくて評判の社会の先生とすれ違った時、「おはよう、最近頑張っている西川君!」と勢いよくあいさつされた。その先生が僕の名前を憶えていたことに驚き、へんてこな挨拶に違和感を感じた。
へんてこな挨拶の理由については心当たりがった。先週のテストの僕の得点はちょっと悪かったくらいだったのだが、級友たちの得点は、目も当てられないほどひどかった。100点満点で平均点が30点に届かない科目もあった。僕の得点はいつもの定期テストよりすこし低いくらいだったので、相対的に僕は高得点ということになる。
僕の高校では、昔ながらにテストの席次が張り出される。それまでの僕は最高30位くらいだったのだけど、後日発表された席次は、2位か3位だったように思う。理系科目に絞れば、ダントツにトップだった。大躍進ということで、目立ったのだろう。社会の先生の大袈裟な挨拶は、こういう理由だった。あまりに態度が豹変したので、僕は気持ち悪くなった。

物理の時間はもっとひどかった

物理に関しては、単独のテストでは生涯最高の偏差値100を達成した。その結果、物理の時間、僕は特別待遇になった。先生の代わりに授業しろ、くらいの信頼を得た。物理の先生は新任のとても若い先生だったんだけど、ちょっと怒られたんじゃないかな。というのも、物理の平均点はきわめて低く、20点くらいだったからだ。指導不足と言われても仕方がない点数だ。でも、その先生のせいじゃないんだけどね。その後、僕は先生を超える扱いをされるようになった。
正直言おう。僕は物理の授業に関しては、「できる生徒」では全然なかった。試験前にちょっと復習して、ようやく意味が分かる、という程度で、予習もしないので、授業内容もよくわかっていなかった。でも、僕は、物理の授業では特別扱いになった。吐きそうだった。物理の先生は好きだったけど、物理の時間は嫌いになった。

進学校のいびつさ

進学校では、大学合格実績がすべてだ。現場の先生にはそのプレッシャーが直接のしかかる。テスト範囲を限定しない実力テストは大学入試の形式に近いので、大学合格実績に直結する。定期テストでは平凡なのに、実力テストで突出した成績を収めるタイプの生徒は、学校にとっては思いがけないプレゼントみたいなものだろう。
たった1回のテストの結果で、先生が手のひらを反す、というのが進学校の現実だ。僕の場合は極端だったけど、すべての進学校で同じようなことが今も起こっている。というか、今の方がもっとひどいかもしれない。

こんなことを書こうと思った理由

この思い出に通じる事件が、とりあえずの区切りを迎えた。名古屋大学の学生の事件だ。彼女は高校時代から怪しい言動があったそうだが、周りは黙殺した。僕の経験からすると、進学校において、急に成績が伸びた生徒というのは特別待遇なので、少々の異常な言動には目をつぶるのだ。それが学校で起こったのは、想像に難くない。不幸だったのは、家庭でも起こったらしいことだ。すでに病みはじめていた精神は、さらに病み、歯止めを失い、そして暴走した。
彼女と彼女の周囲では、勉強ができることが絶対的な価値だったのだろう。彼女の異常さは、そんな環境の中ではぐくまれたのだろう。幸か不幸か、彼女は名古屋大学に進学した。名古屋大学レベルの大学では、単に勉強ができるというのは、大した価値と認められない。むしろ、勉強の価値を否定したうえで、多様な価値をはぐくむのが大学だ。大学2年生というは、勉強以外の価値観に対するプレッシャーが最も高まる時期だ。彼女がそのタイミングで、一線を越えたのは完全に説明がつく。彼女にとって勉強以外の唯一の特別な価値観、人を殺すこと、に彼女はしがみついたのだろう。
平凡な学生は、価値観云々なんて想像すらせず、目の前のレールに乗って、何も考えず社会の歯車になる。彼女は、とても頭が良く、賢いのだろう。本来の大学は、彼女のような規格外の人材を多様性として学術の世界に取り込んでゆく装置だ。それが機能しなかったということは、大学人として残念だ。
彼女のようになった可能性は僕にもあっただろうか?高校3年のとき、僕は単一の価値観に基づいた組織(社会)の危うさを感じた。僕はそれを拒絶した。彼女なら、それを嬉々として受け入れ、最大限利用したろう。僕が思うに、そこがPoint of No Returnだった。


2017年3月21日火曜日

作問についての論考

試験を受ける人と作る人

僕は職業柄、試験問題を作ることがあります。大きく分けて、講義の試験問題と、入試の試験問題があります。自分が試験を受ける側だったときは、試験問題というのは、できそうでできないギリギリのラインを突いてくるものだと思っていました。もっと言えば、ゲームの一種だと思っていました。でも、問題を作る側の思いってそれとはずいぶん違うものだと、今は感じています。
試験を受ける側と作る側で大きなギャップがあって、それが教育に良くない影響を与えているんじゃないかと感じています。試験を受ける側が、試験を作る側の意図を理解すれば、勉強の方向性が良い方向に変わると思うのです。だから、試験問題を作る側の心理を吐露することで、何かしらの利益があると僕は思います。
「入試」の画像検索結果

定期試験の問題作成

定期試験の目的は、学習効果の確認です。講義(授業)で言及した事柄をちゃんと理解しているか、あるいは実践しているかを計測します。講義内容には、いくつかのレベルが存在します。すなわち、必ず理解しているべき内容、実践が期待される内容、できたらいいなという内容という具合です。実践が期待される内容というのは、例えば、英作文や数学の式変形などをイメージしてください。日常的な学習では、これらに加えて、日常的な訓練を欠かしていないか、ということも問題になります。例えば、漢字や英単語の学習です。定期試験では、これらの項目をなるべくまんべんなく問うことになります。
概ね60%くらいは「必ず理解しているべき内容」が占めます。問う方法も平易です。この部分の得点率は80%~90%を想定します。そして20%~30%は、「できたらいいなという内容」になります。「できたらいいなという内容」は得点率が50%くらいになるように調整します。すると、定期試験では、平均点が70%~75%になります。「必ず理解しているべき内容」の正答率が低い場合、教える側に問題があると考えるべきで、授業・講義の形式や内容を見直す目安になります。
まとめると、定期試験では、学習目標に沿った問題設問がなされ、学習効果を確認するための内容になっているということです。応用力や対応力を測るために、少し難易度の高い問題も含めますが、それは将来予定される入試に向けて、偏差値を算出するために必要なもの、という扱いです。100点を簡単に取らせないという教育的配慮もあるかもしれません。

センター試験の問題点

入試の場合、得点分布の分散が大きくなるような問題が良いとされています。得点が低すぎると受験生の気持ちが萎えるので、平均点が60点くらいになるように配慮します。また、内容に関する細かな要請はありません。言い換えると、定期試験と違って、ゲームの要素が大きいということです。

単に得点分布を広げるのが目的であれば、運が左右するような設問にするのが一番です。例えば、極めて難しい4問択一とかで正答率が25%だとほぼ乱数なので、得点分布=標準偏差が最大化されます。また、一問間違えるとその後の設問が全滅になる将棋倒しタイプとかは、ちょっとしたミスや運で得点に大きく得点が変化し、連鎖する設問の標準偏差が直和の形になります(通常は、標準偏差の2乗が和の形になる)。運やミスは偶然が支配するので、得点分布は極端に広がります。しかし、それでは得点と受験生の能力の対応が失われ、本来の入試の意味が損なわれます。模試や私立大学の入試は運の要素が多いような気がします。

センター試験は科目によって異なりますが、運の要素を排するための工夫がいくつか見られます。特に顕著なのは、物理です。物理は本来は深い考察が重要な科目です。考察が深いということは、序盤でミスると最後まで到達できないということです。それを避けるため、センター試験ではそもそも序盤・終盤をなくし、比較的シンプルな短い設問を、たくさん出題するように最適化しました。その結果、問題量が極めて多くなり、速読即解ゲームになりました。それはつまり、本来の物理とは全く異なる代物なわけです。
社会科は別の進化を遂げました。歴史などの特定の領域について、段階的に細かな内容を問うようになりました。その結果、難易度が高い設問は、重箱の隅をつつくようなものになりました。また、そういう形式では、問題量が増える傾向にあるため、出題範囲を広くとることができません。すなわち、ヤマが当たるか当たらないかというギャンブルゲームになりました。
現代文では、複雑な論理を問う問題が出題されるようになりました。そのためには、かなり難解な文章を題材にする必要があります。高品質な論説文というのは、問題設定を適切に絞り込むことで、複雑な論理を避け、平易で理解しやすく書かれています。こうした高品位な論説文では、現代文が取り扱いたい複雑な論理が排されています。そのため、現代文では、比較的低品質の論説文を題材にする傾向があるようです。高校生たちには「良い文章」を読ませたいと思うのが親心ですが、実際には「良くない文章」を一心不乱に読ませるという、まったく不毛なことを行っています。
他にも多くの問題点を指摘することができますが、そういうことが積み重なって、センター試験を廃止する、みたいな短絡的な解決に傾いていて、とても心配です。
「大学入試センター」の画像検索結果

2次試験で問われること

僕が携わるのはセンター試験ではなくて、2次試験の方です。2次試験ではセンター試験では測れない能力の測定を目的にする傾向があります。そして、かなりの自由度が与えられます。自由があるということは、その選択に対して責任を持つということです。自分たちの哲学に基づいて、問題作成に取り組むということが求められるのです。

「哲学」なんて難しい言葉を使いましたが、対象が入試ですので、そんなに複雑にはなりません。我々が入試の問題作成をする場合、最初に考えるのは、「何のために入試をするのか」です。結構哲学的でしょ?
もう少し具体的にいうと、「どんな人に合格してほしいか」ということです。これをもっと掘り下げてブレイクダウンすると、「入試で何を測るのか」「それはどうやったら測定できるのか」というのが最終的な問いになります。その答えとして、入試の問題が出来上がります。

どんな人に合格してほしいかというのは、一般論として述べることができます。
「運の良い人」は要りません。
「勤勉さ」はとても重要です。
「正確さ」「集中力」は重視します。
「独創性」は、あった方がよいですね。

勤勉さ・正確さ・集中力・独創性は、大学や学科・分野に応じて重みが変わります。東大は勤勉さを高く評価し、京大は独創性を見逃さないという印象があるかもしれません。

以上に基づいて、具体的に入試の問題作成を考察しましょう。
まず、運の要素を排するには、選択問題を避けるという方法が有効です。また、設問間の依存関係も避けるようにします。
「勤勉さ」とは、どれだけしっかり学習してきたか、と言い換えることができます。例えば、設問で扱う知識範囲を広くとることで、勤勉さを測ることができます。その結果、周辺知識を問う場合が多くなります。また、教科書の通り一遍の知識ではなく、実体験や観察に基づく問いが設定される傾向にあります。例えば、ふつうは色だけ尋ねる場面で、においを考察させるなんてのは、気が利いています。
「正確さ」は計算をさせると簡単に測ることができます。「集中力」は少し複雑な誘導についてこれるかどうかで測ることができます。「独創性」を測るには、数学なんかで別解を複数用意しておくという方法がとられるかもしれません。
さらに、難易度のグラデーションに注意し、受験生の能力と得点が強く相関するように心がけます。受験生の運や記憶が強く反映されるような問題は徹底的に排除されます。

問題作成側がそのように考えるということは、問題を分析すればわかるはずです。であれば、受験生側の戦略として、問題作成者が合格してほしいと望む人物を目指すというのが合理的になるはずだ、というのが、問題作成者の意図するところです。でも、実際のところは、受験生は手っ取り早く得点を上げたいので、小手先の傾向と対策に明け暮れているように思います。

そういう不幸な事態の原因は、我々問題作成者の思いというものを、受験生、高校等の先生、入試関連業界の人々が、ちゃんと理解していないことだと思うのです。問題作成業務というのはトップシークレットで、問題作成者が思いを伝える機会はほとんどありません。しかしながら、そういう状況は受験システムひいては、高校教育に歪みを与えているんじゃないか、と僕は思っています。通常の作問において、作問者は受験生に問いたい明確なテーマを持っています。そのテーマは作問者の良心に基づいており、学校教育に対するメッセージが含まれています。それをきちっと伝えることで、高校等での教育に良い影響があると僕は思っています。

入試をギャンブルにしてはいけない。

問題作成が教育者を鍛える

ある入試の問題作成の会議で、ある先生が「我々は他人の優劣をランキングするという、罪深いことをしようとしている」とおっしゃいました。入試というのは、無い方が良いものなのです。本来は、合格点が取れたら、本学での教育が可能であることが証明されるという、資格試験のようなものであるべきなのです。入学定員というものが設定されているので、相対的に優秀なものを合格として、入学を許すわけです。不合格の人にも、本学で学ぶ能力が十分に認められるのです。だから、皆、一発勝負でギャンブルするのです。それは本来あるべき入試ではないのです。
その言葉を聞いてから、僕なりにいろいろ考えました。その中で、試験をゲームのように考えないということを真剣に実践するようになりました。他人の人生をゲームで決めるなんて、不謹慎この上ないですからね。
そんなわけで、問題作成を厳密な基準に従って行うようになりました。通常の講義の場合には、期末試験で問う基準を自然に超えられるように、講義内容を整理するようになりました。それはつまり、教育の質について、真剣に考えるようになったということです。

大学の講義では、講義内容を自分の裁量で決定し、計画し、わりと自由気ままに講義します。そういういい加減な雰囲気は、講義を受ける側にも伝わります。そういうのはダメですよね。
期末試験である知識の理解度を問いたいとします。でも、なぜ僕はその知識を学生に理解してほしいのでしょう?その知識を理解するとは、どのくらいの深さを想定するのでしょう?なぜその深さが必要なのでしょう?そういうことに一通りの決着をつけたのち、その知識を講義するには、どのような方法が最適でしょう?と問います。すべての知識を深く掘り下げるのは無理です。なので、それぞれの知識について、あるいは知識体系について、学生はどこまで理解すべきか、を細かく設定します。とても骨の折れる作業です。でも、そういうことをしないと、筋の通った講義にはなりません。逆に筋の通った講義をするには、ゲームではない試験本来の姿を追求するという作業が、とても大事だと思っています。ビジネスの言葉で言うなら、アウトプットを常にイメージする、ということです。

逆に、試験問題を作る作業に真剣に取り組むと、教える側の意識もちょっと変わってくる、と思うのです。高校の先生は、「大学入試のために」定期試験をする傾向が少なからずあります。すなわち、「これに関連する内容が入試によく登場するので、定期試験でもテストしとかなきゃ」ということが当たり前のようになっていると思うのです。本来は、「学生(生徒)には、これを知っておいてほしい」ということをテストすべきです。そのためには、それをテストする理由を、教師と生徒で共有している必要があります。そういうコンセンサスに達するには、なぜその科目を勉強するのか、ということに対して、入試対策以外の意味を見出している必要があります。それが、本来の教育だと僕は思います。

理科なんかは、動機づけが簡単です。教えたい知識に関連した事象について、説明を試みると、その知識が不足するために失敗します。そこから、勉強が始まります。化学だったら、酸化還元と錯体の化学の導入の際に、鉄はさびると赤茶色になり、銅はさびると緑色になるという紹介をするだけで、色って何だろう?となります。さらに、古代より、様々な顔料(絵具)が発明されてきて、その多くが金属酸化物であるというのは、一連の勉強の締めくくりにふさわしいエピソードです。あるいは、陶磁器の絵付けの話も面白いと思います。そういう動機づけをしっかり行うというのが教育だと思います。

試験問題を作成する時には、大きな自由があります。自由の裏には、責任があります。つまり、ちゃんとした理由を説明できないへんてこな問題を出題してはいけないのです。逆に、出題に値する問題・知識って何だろう?と問うことになります。そのとき、大学入試対策という、安易な理由を排除してほしいのです。大学入試の問題作成者たちは、大学入試を取り巻くいびつな環境を改善したいと思っているのです。だから、大学入試対策が無駄になるような問題を作成しようと頭をひねっています。高校が、大学入試対策をあきらめない限り、いたちごっこが続きます。この連鎖を断ち切るのは、入試改革ではなく、高校の先生方です。


2017年3月6日月曜日

考える機械

考えるとは何か

ゴリラは考えるか?と言えば、たぶん、イエス。

改めて「考える」とはどういう行為なのかと問われると、なかなか答えるのが難しいと思います。我々は漠然と「考える」という行為を理解しているのですが、「考える」プロセスを明文化しようとすると、普通は戸惑います。

「考える」という行為に僕が興味を持ったのは、コンピュータのプログラミングを始めたばかり、14歳の頃です。プログラミングというのは、処理手順を厳密に記述する行為にほかなりません。何か対象とする操作や処理があったとき、コンピュータに実行させる手順書がプログラムです。対象がコンピュータでなくても、手順書を作成する際には、まず自分がやってみて、それを整理し、明文化するという段階を経ます。コンピュータに対して手順書を書く場合に難しいのは、コンピュータが理解できるように細かな部分まで明文化しないといけない点です。
人間相手の手順書というのは、いろんな部分があいまいでも構いません。手順書を読む人があいまいさを勘案して、うまい具合に調整してくれるからです。でも、コンピュータ相手だとそういういい加減さは許されません。そのため、各処理手順において、普段は検討しないような細かなことまで一つ一つ記述しなければなりません。その際、普段は意識しない判断基準なんかを掘り起こす必要が出てきます。つまり、手順を確認している最中に「今、どういう風に考えたっけ?」と自問するわけです。プログラミングというのはそういう自問の連続です。そういうのを繰り返すうち、「今、どういう風に考えたっけ?」という問いに答えるのが、案外難しいということに気づきました。

僕らは「考える」という行為の大部分をほとんど意識しないレベルで行っています。そのプロセスはかなり複雑で大規模なのです。もしかすると、あまりに複雑すぎて我々の知覚能力を超えているのかもしれません。そのため、意識しようとしてもできないのかもしれません。少なくとも、プログラミングで必要とされるレベルの「考えるプロセスの知覚」ですら、かなりの苦痛を伴います。だから、プログラミングは難しいのです。プログラマは「考えるプロセスを知覚する」というスキルを常に磨くことになります。その点で、普通の人とはちょっと違ってくるのです。
「考えるプロセスを知覚する」のが難しいので、それを明文化するのも困難なわけです。明文化が困難なので、コンピュータに「考えさせる」ことは難しく、その結果、人工知能というものがなかなか実用レベルに至らなかったのだと思います。

僕の個人的なこと

僕にはちょっとした特殊能力があります。それは、その場で答えがでないような難しい課題を、とりあえず記憶しておいて、数か月後に思い出すと、その時には答えがわかる、という能力です。途中、その課題のことはすっかり忘れているのですが、何かのきっかけでその課題が話題になると、頭の中に答えが浮かんでいます。課題の難しさによって、答えが浮かぶまでの期間が違ってきます。一週間程度で思いついている場合も多いですが、数年かかることもあります。まるで、僕の頭の中に、もう一人の僕がいて、代わりにずっと考えてくれているとしか思えないような、魔法のような体験です。この能力のおかげで、いろいろ楽をさせてもらっています。
これはPHPのコードだと思うけど、よくわからない。僕はPHPを使えるんだけどね。

プログラミングの際には、別の特殊能力があります。優秀なプログラマにはよくあるんじゃないかなと思いますが、一瞬で複数のアルゴリズムを思いついて、それぞれの効率の良し悪しを判定できるというものです。同時に知覚できるのは、2、3種類ですが、時間をかけて整理すると、20種類くらいのアルゴリズムを検討した結果、優秀なものを2,3ピックアップした、ということがわかります。数学の問題で、正攻法と別解があって、どっちを答案にしようかと迷う感じに近いです。普通の人は、正攻法を思いついて、面倒そうだなと思った時に、別解がないか検討すると思います。この能力の場合、正攻法と別解を瞬時に思いついてそれぞれの利点と欠点が自動的に理解できる、という感じです。おかげで僕は数学でも楽させてもらいました。
ベテランプログラマになると、たいていのことについてプログラムできることは当たり前で、さらに上のレベル、つまり効率よくプログラムすることが求められます。具体的には、複数の候補の中から最適なものを選び取るというステップが加わります。効率というのは、プログラムのサイズ、処理能力、スピード、拡張性、汎用性などが基準になります。複数の観点がありますので、どれが最適なのかは自明ではありません。つまり、どの基準を優先するかによって、最適なプログラムが変化しうるのです。正しく選び取るには、それぞれのプログラムをシミュレートして検討する必要があり、結構な労力になります。僕の場合、それが一瞬で完了します。おそらく、スーパープログラマと呼ばれる人たちは、みんなそれができます。

なぜそんなことができるかはわかりません。頭の中に自分の分身がいて、いろんな候補をせっせと検討してくれている感覚です。僕が知覚するのは、各候補の概要と検討された項目の結果です。それらの結果を見比べて、与えられた条件に最適なものを選び取るのが、僕の役目です。選び取ったら、その候補に意識を集中するだけで、詳細が知覚されます。あとは、その詳細にしたがって、プログラムを書きます。
プログラミングにおけるこの能力は、最初に述べた特殊能力と本質的に同じだと僕は思っています。プログラミングというのは問題が限定的で、あいまいさが少なく、探索範囲が限定されます。そのため、一瞬で答えが浮かびます。一般の問題になると、多くのあいまいさがあり、必要とされる知識の範囲も限定されません。そのため、一瞬では探索が終わらないのだと思います。そのままバックグランドタスクとなって知覚できないレベルで、こっそり、ゆっくりと探索が進んでいるのでしょう。
木城ゆきと「銃夢」の一場面。脳をチップで置き換えられた人。

重要なのは、ここに述べた僕の特殊能力は、ほとんど自動的だということです。僕の制御をほとんど受け付けません。僕の意識から切り離されて動作するコプロセッサみたいな感じです。僕は、そこにタスクを投げて、ときどき進捗をチェックするわけです。それは僕の一部ではあるのですが、中身は知覚できません。ある種のブラックボックスです。僕はそれを「考える機械」と呼んでいます。
僕は、僕の中の「考える機械」は自動的に四六時中動作していると考えていますが、もしかすると、僕が意識した時だけ動作しているのかもしれません。「考える機械」は様々な知識や要素の無数の組み合わせを瞬時に生成するだけかもしれません。でも、そうすると、最適なアルゴリズムを選択的にかつ瞬時に思いつくという効率の良さを説明できません。また、難しい課題ほど答えを見つけるのに時間がかかるということも説明できません。今のところ、僕の中の「考える機械」は非人間的で不完全だけれども独立した人格だと、思っています。

年をとるにつれて、僕は「考える機械」の使い方を少しずつ開拓しています。僕は職業柄、いろんな人から相談事をされます。自分の本業の研究のことが多いですが、その周辺に関するいろんなことが話題に上ります。その中で、様々な可能性を話すことがあります。その時、「考える機械」を使って検討しています。
最近、日産が発電専用のガソリンエンジンを搭載した自動車を市場に投入しましたが、そのコンセプトは10年くらい前に、自動車の未来に関して相談を受けた際に、最有力候補としてお話したものと同じです。僕の話が日産に伝わったとは思いませんが、先入観なしにいろんなことを検討した結果、それが最も良いということが「わかる」のです。発電専用のエンジンならば、もっと小型でよいはずなので、今後、そういうバランスを採用した自動車が登場するでしょう。そういうのが、雑談のなかで、瞬時に検討できるというのが、僕の強みになっています。
僕の中の「考える機械」は、プログラミングスキルを向上させる過程で形成され、いつの間にか大きく複雑になってきた気がします。
e-POWER型の自動車がこれからもっと流行するはず。

AIは考える機械と言える

僕の中の「考える機械」は、様々な可能性を検討し、評価を与えるという典型的な思考プロセスのひとつを自動化したものだと理解できます。評価関数をどのように設定するかは自明ではありませんが、経験や知識から構築されるようなもののはずで、それは機械学習が得意とする分野です。なので、僕の中の「考える機械」は、最近主流の機械学習型AIに近い気がしています。
機械学習型AIは万能ではありません。機械学習型AIは結局のところ、非常に複雑な評価関数でしかありません。しかも、出力は極めて単純です。プログラムの効率に関して議論したように、現実の問題では、評価の観点がたくさんあり、ケースバイケースで観点の重みが変わってきます。そういう柔軟性を持たせつつ、万能な評価関数が構築できれば、とても素晴らしいことです。
万能な評価関数というのは、平たく言うと「価値観」と言えます。人間の個性は価値観の違いに基づくわけですから、人間の数だけ「価値観」があります。そういう多様性はAIには難しいんじゃないかな、って僕は思います。

さて、僕の中の「考える機械」は、プログラミングの問題においては、すでに出来合いの評価関数を持つはずで、だから一瞬で答えが出てきます。一方、一般の問題に対しては、
評価関数を自分自身で構築するところから行いますから、時間がかかります。もちろん、評価関数のひな型はあるはずです。それは、サイエンスの方法論だったり、論理学だったりするかもしれません。あるいは、勉強しているうちに構築された論理体系かもしれません。「考える機械」の部分は、僕の一部でありますが、僕自身では中身を知覚できないのです。ある候補を入れると、ぼんっと答えが出る、そういうブラックボックスのように感じるのです。
人工知能は人間の知性に似て非なるもの。

「考える機械」がAI的だと思うと、AIの限界が見えてくる気がします。例えば、動機づけが外的要因に頼っているのは、弱点だと言えます。あらゆる可能性を網羅的に探索するので、効率面では改善の余地があります。答えが正しいかどうかということは二の次になることも問題かもしれません。単なる評価関数なわけですから、何かしら数値のようなものが結果になります。それがベストかどうかは、別の問題なのです。

多くの人が指摘するように、動機づけが通常の人間の価値観から逸脱するかもしれない点は、AIの欠点です。AIの中に動機づけを含ませることも原理的に可能です。しかし、肉体の制約を持たないAIは人間の価値観に本質的にそぐわないことを注意すべきです。極めて限定的な指標(数値)で評価を決するという構造的な問題はAIについて回るでしょう。
こうしたAIの欠点はすなわち「考える機械」の欠点でもあります。それは非人間的で不完全な印象を与える原因になっています。僕の場合、「考える機械」以外の普通の人間の部分が「考える機械」を制御することで、良いバランスが保たれています。この構造はAIにも適用可能なはずです。ある種の良心に基づくモチベーションによって、AIが健全に運営される、そういうソリューションがあるはずです。良心に基づくモチベーションというのは、直接人間が担うべき役割なのかもしれません。結局のところ、AIであっても、使うのは人間だ、ということなんでしょう。

考えるプロセスの一般論

もう一つ話題があります。普通の意味での「考える」という行為の分析です。何かを「考える」というとき、我々はどのような処理を頭の中で行っているでしょうか?

「考える」にもいろいろあるので、例えば、数学の問題を想定しましょう。大学入試くらいになると、かなり難しい問題もありますが、そういう一部の例外を除くと、出題パターンは限られます。50種類もあれば、90%をカバーするでしょう。なので、典型的な出題パターンとの類似性を検討し、当てはめる、ということが「考える」ということになります。
つまり、データベース化された出題パターンを「検索」して、「当てはめる」という2つの段階があるわけです。検索の際の判断基準は、類似性になります。当てはめるというのは、類似性を解析して、解答例を修正するという作業です。類似性が高ければ、当てはめが可能なので、もっとも類似のパターンを探し出すという部分に最も時間がかかります。

実のところ、大学入試レベルの「考える」というのは、ほとんどが「勉強したことの検索」に尽きます。なので、ぼやっと生きていると、「考える」=「検索」と短絡しているかもしれません。しかしながら、何か新しいパターンの課題に対しては、この方法は無力です。また、「検索」ならコンピュータの方が早くて正確で、人間はかないません。「考える」というのが脳内検索にとどまるレベルでは、お話になりません。

ブレインストーミングというのは、一人のアイデアマンの成果をみんなで奪い合うゲームと言える。

次に、アイデア出しにおける「考える」を考察してみましょう。ブレインストーミング(BS)というやつです。BSでは、キーワードから連想される項目をとにかくあげつらいます。それはすなわち「脳内検索」そのものです。通常の検索では、評価関数をうまく設定して候補を絞り込むというのが重要になりますが、BSでは評価関数を甘くして、なるべく多くの候補をひっかけるということを行います。しかし、普通はあんまりうまくいきません。脳内で検索対象となる項目は、せいぜい1000個くらいです。実際に言葉で挙げようとすると、100個くらいから苦しくなるものです。全体の1%くらいがヒットあるいは脈ありとすると、BSで採用できるのはたったの10個程度となります。
BSで活躍する人を観察すると、ある特徴があるはずです。それは、組み合わせです。基本要素が100でも、2個組み合わせると1万通りになります。ヒット率が同様に1%とすると、100の候補が得られます。もし、3個の組み合わせなら、爆発的に候補が出てきます。つまり、それはアイデアが豊富ということです。
この事例からわかるのは、「脳内検索」だけでなく、「組み合わせの検討」が「考える」という行為に加わっているということです。実のところ、組み合わせこそが、「考える」という行為の本質だと、僕は思っています。

「考える」達人への道

まとめると、「考える」行為の本質は、①要素を列挙し、②組み合わせを考え、③それぞれを評価する、ということになります。そうすると、「考える」というプロセスを最適化するには、要素を増やし、網羅的な組み合わせを検討し、最適な評価法を構築する、の3つを実現すればよいでしょう。
要素を増やすということは、情報のインプットを増やすということです。いろんな勉強をし、いろんな刺激を受け、いろんな体験をする、という積み重ねが大事です。一人では限界があるので、BSではこの段階を皆で行うわけです。
つぎは、得られた候補にに関して、網羅的な組み合わせを検討します。方法論を理解すれば、機械的な作業です。なので、これが最も簡単です。BSの後の検討会ではこれを皆で行うべきところです。しかし、形式的なBSだと、その次の段階である評価ばかりやってしまいます。だからBSはうまくいかないのだと思います。最後のポイントは、評価法の最適化ですが、これが最も自由度があります。というか、それこそ多様性の問題になります。一般の問題において、答えが唯一に定まらない理由です。

評価の結果、ランキング上位を結果として取り出すことを、「検索」と呼びます。そのとき大事なのは、評価の方法で、Googleは稀に評価法を変更するので、それがニュースになります。「考える」ことが究極のアルゴリズムだとするならば、要素の列挙や網羅的な組み合わせは、実はコンピュータの得意とするところです。最後の評価のところをどのくらい柔軟性を持たせて最適化するかというのが、究極のアルゴリズムに向けての勝負どころであることがわかります。だからこそ、評価法の変更は重大事なのです。
現在、評価法として最有力なのが、機械学習です。機械学習は厳密にはAIではなく、単なる評価法です。データを入力すると、評価値としての結果が出力される、そういう装置です。中身の演算には無数の隠れパラメータが存在し、あらゆる評価法を模倣することができます。この機械学習に、要素の組み合わせを網羅的に入力し、検索することで、「考える機械」が完成するという仕組みです。こうして出来上がった人工知能に、人間が勝てる見込みは極めて少ないと言えます。これがシンギュラリティ2045年問題の本質です。
人工知能がすべての人間の知性を置き換えると考えるのは、単純に過ぎる。
もし、人工知能のような巨大な集合知性が効率的なら、生物はそのように進化したはずだ。

5なぜ運動

いやいや、「考える」ってのはそんなに単純じゃないよ、という意見もあります。反論として挙げられるのが、「5なぜ運動」です。「5なぜ運動」はトヨタの社員教育で提案され、完成されました。何かの問題・課題があったときに、とりあえず「答え」が見つかったとします。でもその「答え」に満足せず、なぜその「答え」に至ったのか、その「答え」が意味することは何なのか、と次に問います。「答え」に対する問いにたいして「答え」見つけたならば、さらにその「答えの答え」に対して問いを設定します。そのようにして、5回ぐらい掘り下げると、「真の答え」にたどり着く、という経験則があり、それゆえ、「最初の答え」に満足せず、5回くらい掘り下げよ、という方法論が「5なぜ運動」です。

前節までは、一つの「答え」にたどり着くためのプロセスのことを「考える」としていました。その「答え」では満足すべきでないというのが「5なぜ運動」です。5なぜ運動は効果がありますし、真の理解に至るにはとても良い方法論です。なので、これを取り込むと良いでしょう。それは簡単に見えます。
しかしながら、実際に5なぜ運動を実行するのは結構難しいのです。難しい理由は、とりあえず見つかった「答え」に対して、適切な問いを設定するのが難しいからです。これを行うには訓練が必要です。形式的には5回の問いかけを繰り返すわけですが、もちろん5回より多くても少なくても構いません。深い思考では、無数のなぜを繰り返すというのが理想です。しかし、問いかけを重ねてゆくほど、問いの設定が困難になります。ふつうの人は5回くらいで限界じゃね?というのが「5なぜ運動」の示す経験則です。

要素の組み合わせを網羅的に評価する基本の「考える」プロセスを何度も繰り返すというのが「考える」達人に至る道のような気がします。単純な繰り返しなら、コンピュータの得意とする分野であり、人間に勝ち目はありません。でも「なぜ」の繰り返しにおいて、「適切な問い」を設定し続けるという手順があり、それが難しいということがわかります。実際のところ、「適切な問い」というのが、極めてあいまいな問題として残っているのです。あいまいということは、いろんな可能性があるということです。それはつまり、評価法が定まっていないということです。もっと言うと、多様性が存在するということです。その多様性こそ、人工知能が不得手とし、100億にも届こうという人類が持つ最大の利点なのです。さて、今、「5なぜ運動」やりましたよ!
なぜなぜ分析
僕はトヨタは好きじゃないですけど、なぜなぜ分析は方法論として正しいと思います。

人工知能は究極の「考える」達人になりえるか

我々が「考える」達人に至るために、長い時間をかけて訓練すべきなのは、「問いかける能力」だと僕は思います。それはつまり、問いを発するモチベーションだと、喝破します。人工知能は、肉体的制約がないため、自己保存という生物が本質的に持つモチベーションを持ちません。単にそういうモチベーションを持たないというだけでなく、実のところ、一切のモチベーションを持たないのです。

映画「ターミネーター」で描かれたディストピアでは、人類の存続のためには、地球の保全が必要で、そのためには人類の数を減らす必要がある、という論理で大量殺戮が生じるという設定です。人類の存続という短絡的なモチベーションを持つと、人工知能が極端な結論に至るというのは十分にあり得ます。

アイザックアシモフは、ロボット三原則において、人を傷つけないという原則だけでは不十分であることに気づいて3つの原則を設定しました。
(第一条)ロボットは人間に危害を加えてはならない。また、その危険を看過することによって、人間に危害を及ぼしてはならない。
(第二条)ロボットは人間にあたえられた命令に服従しなければならない。ただし、あたえられた命令が、第一条に反する場合は、この限りでない。
(第三条)ロボットは、前掲第一条および第二条に反するおそれのないかぎり、自己をまもらなければならない。
この原則に従うと矛盾が生じるシチュエーションがあり、アシモフはそれについて、多くの物語を書いています。さらに、ロボットの能力が「人類」全体より高い場合には、ロボット三原則の「人間」を「人類」に読み替えることが理論的に可能であるということにアシモフは気づきます。つまりアシモフはシンギュラリティの存在に気づいたのです。そのアイデアを熟成させ、ロボット三原則の書かれた1963年の「われはロボット」から20年以上経って、1986年の「ファウンデーションと地球」において、ロボット三原則第0条を発表しました。
第0条は条文としては存在しませんが、作中に登場するロボットのセリフで語られます。「人類全体に対する危害を阻止することは、特定の個人に対する危害の阻止に優先すると考える」

このテーマは、多くのSFで繰り返し登場します。その一つが「ターミネーター」ですし、「マトリックス」でも扱われています。
I, robot
映画「I, Robot」より。ロボットのようなスタンドアローンシステムでは自己保存圧力が働くかもしれない。

でも人間はそのように考えません。それは我々が肉をまとった生物であるからです。哲学者たちは人間の肉の部分と精神とを分離し、純粋な精神を追及してきました。しかしながら、それはまだまだ自己満足です。肉から精神を分離できたかもしれません。でも生から精神を分離できていません。まだまだ純粋な精神からは程遠いのです。しかし、それは人間が望むものではないと僕は思います。人工知能は、生まれながらに肉をまとわず、生と死から解放されています。哲学者たちが渇望する純粋な精神と言えるはずです。しかしながら、それは人類が理想とするものとは全く違います。

早晩、人工知能がある種の万能性を獲得するでしょう。でもその万能性は人間のそれとは違うものでしょう。1960年代にアシモフが思い描いたコンピュータ(ロボットの陽電子頭脳)は極めて人間的なものでしたが、現実のコンピュータの能力は限定的なものであることを我々は知っています。それと同じように、現在我々が思い描く人工知能は人間のほとんどの能力を置き換えるものだと思われています。もちろん、人間の多くの能力を人工知能が置き換えるでしょう。しかし、利用が進むにつれ、人工知能は人間を完全に置き換えるものではないということがだんだんとわかるでしょう。

人工知能は「問い」を発しません。モチベーションが内在しないからです。デカルトの「我思うゆえに我あり」は人間の根本的なモチベーションが自己存在の肯定であることを意味しています。人工知能には自己存在を問う理由がないので、「我思うゆえに我あり」は真だと答えますが、そのような問いを発し、それに特別の意味を見出すことはないでしょう。
僕の中の「考える機械」は近い将来登場する万能型人工知能に極めて近いものだと思っています。僕の自我が「問い」を作成し、「考える機械」が推論するという役割分担は、人類が人工知能とうまく付き合ってゆくためのモデルケースなんだろうな、と漠然と思っています。
デカルト
デカルトが現代に生きていれば、人工知能のことを考慮して、違う言葉を考え出すかもしれない。

2017年3月1日水曜日

数学的センスは測定できるか?

この記事は、facebookのノートという機能を使って作成した記事の転載です。

モチベーション

2015年11月末に行われた京都大学特色入試では、一風変わった問題が出題されました。それを検討し、出題者の意図を考察したいと思います。まず、問題を示し、僕の考える模範解答を示したのち、ちょっと掘り下げます。
ちなみに、僕は数学者じゃないし、数学の専門教育を受けたこともありません。でも、試験問題を作る機会もあるので、作問者の視点というのがあって、そういう視点で見ると興味深いのです。

問題

n枚のコインを用いて一人で以下のゲームを行う。
・まず、ゲームの初期状態として、n枚のコインを円周上に等間隔に並べる。各コインは表または裏である。
・以下の操作を何回か繰り返す。
操作…並べたコインから連続するk枚を選び、選んだコインを全てひっくり返す。
・この操作を何回か行った結果、すべてのコインを表にすることができれば、ゲームは終了する。

初期配置の図


(1)n=7、k=3とする。初期状態が図1のとき、このゲームを終了させることができることを示せ。また、すべてのコインを表にするまでに必要な操作の最小回数を求めよ。
(2)n=6、k=3とする。初期状態が図2のとき、このゲームを終了させることができないことを示せ。
(3)どのような初期状態であっても必ずこのゲームを狩猟させることができるための、n、kに関する必要十分条件を求めよ。

答案概要

まずは、答案を作ろう。僕が予想する模範解答の概要は以下のようなものだ。

m番目のコインからk枚のコインを裏返す操作は、(可換)かつ(相殺)であるので、組み合わせで実現できる「簡約」な操作を考えることができる。簡約操作の総数はコインの状態の総数と一致するので、簡約操作に重複がない場合には、操作と状態が1対1写像になる。それは、任意の1枚のコインを裏返す操作が存在し、パズルが可解であることと同値である。

答案

定義 特にことわりのない限り、mを1~nまでの任意の整数とする。また、答案中に使われる文字変数はすべて整数である。
定義 m番目のコインからk枚のコインを裏返す操作をKmと書くことにする。また、Km=K(m)と書いてもよいとする。例えば、k=3のときは、3(1)のように書くことにする。
定理1 n枚のコインの表裏で決まる状態の種類は、2のn乗である。
証明 自明なので省略
定理2 (逆元・相殺)同じ操作を2回くらい返すと、元に戻る。すなわち、Km Km =φ。ただし、φは操作なしを意味する。
証明 自明なので省略
定理3 (可換)a, b=1 … n として、Ka Kb = Kb Kaである。
証明 ほとんど自明なんだけど、いちおうやっとく。
本系では、コインが円環状に配置されているので、a=1かつa<bとしても一般性を失わない。a+m≤bのとき、KaとKbはオーバーラップを持たないので、命題は自明。
a<b<a+kのとき、b番目から、a+k-1番目まで、オーバーラップがあることになるが、オーバーラップ域は、コインが2度反転して元に戻るだけ。これは順序が入れ替わっても同じ。なので、命題が成立する。
定理4 操作Kmを組み合わせて実現できるすべての操作の総数は2のn乗である。
証明 Kmの組み合わせは、Π(i=1…) K(1…nのいずれか)であらわされるが、定理3によって、操作順序を入れ替えることができるので、K1^Q1 K2^Q2 K3^Q3 …. Kn^Qn と書くことができる。ただし、Qiは正の整数。
さらに、定理2より、Qiは2の法とすることができるので、
Π(i=1…n) Ki^(Qi mod 2)=Π(i=1…n) Ki^(0 or 1)
つまり、n種類のKiのそれぞれについて、使うか使わないかという組み合わせ=可能な操作、となる。このようにKmの重複をなくした操作のことを簡約操作と呼ぶことにする。可能な簡約操作の組み合わせは、あきらかに、2のn乗である。
定理4’ 簡約操作は、特定のコインの状態に対応させることができる。
説明 Kmはコインの状態だけを変化させる操作である。したがって、任意の状態のコインに対し、あらゆるKmの操作とその組み合わせを適用することで、コインの状態が変化するものの、コイン以外の状態が変化することはない。例えば、すべて裏の状態を初期状態と仮定すれば、簡約操作のそれぞれは、何らかのコインの状態に対応付けることができる。数学用語で、「閉じている」という状態である。逆に、2つ以上の簡約操作が同じコインの状態に対応付けられるとき、重複していると言い、それらの簡約操作は等しいと言う。
定理5 n枚のコインの任意の1枚をひっくり返す操作が存在することの必要十分条件は、Kmの組み合わせで実現できる2^n個の簡約操作のすべてに重複がないことである。
証明 任意の一枚をひっくり返すことができれば、それを繰り返すことで、あらゆるコインの状態を実現できることは自明である。
定理4’により、コインの状態と簡約操作が対応し、定理1、定理4により、コインの状態と操作の総数が同じなので、重複があると、コインの状態数と操作の総数が対応しなくなり、すべてのコインの状態を作り出すことは不可能。任意の1枚のコインをひっくり返せるということと矛盾する。したがって、命題は正しい。
定理6 p、rを正の整数とし、n=pk+rのようにp、rを決める。このとき、Kmの組み合わせによって、~Rmを作ることができる。ただし、~は全コインの反転を表す。すなわち、~Rmはm番目からr枚のコインを残してすべて裏返す操作である。
証明 ほとんど自明。
~Rm=K(m+r) K(m+r+k) … K(m+r+(p-1)k)である。
定理7 kが奇数の時、全コインの反転~φ=Π(i=1…n) Kiである。
証明 ほとんど自明。
Π(i=1…n) Kiにおいて、すべてのコインは、k回の(裏返し)操作を受ける。kが奇数であれば、反転することになる。
定理7’ kが偶数の時、1(m)の操作をつくることができない。
証明 定理7と同様に、Π(i=1…n) Kiで、各コインはk回の操作を受ける。kは偶数であるので、Π(i=1…n) Ki=φとなる。簡約操作に重複があることになるので、定理4によって、任意の1枚のコインをひっくり返す操作1(m)は存在しない。
定理8 nとkが割り切れるとき、1(m)の操作をつくることができない。
証明 pを自然数として、n=pkとする。k=1のときはゲーム自体が成立しないので、除外できるため、kは2以上を考える。
2つの簡約操作Π(i=1, 1+k, … 1+(p-1)k)KiとΠ(i=2, 2+k, …, 2+(p-1)k) Kiを考える。これらの操作では、ともに、すべてコインが1回の反転操作を受ける。すなわち、
Π(i=1, 1+k, … 1+(p-1)k)Ki=Π(i=2, 2+k, …, (p-1)k) Ki=~φ
簡約操作に重複があるので、定理4によって、任意の1枚のコインをひっくり返す操作1(m)は存在しない。
定理9 定理6において、~φが存在するとき、Rm=~φ ~Rmである。
証明 自明
定理10 定理6において、k<rかつk=tr+sかつs=( k mod r)としたとき、Sm=Km R(m+s) R(m+s+r)…R(m+s+(t-1)r)である。
証明 ほとんど自明。
Kmで裏返したコインのうち、s枚を残してそれ以外のコインを1回あるいは複数回のR(m’)の操作によって再び裏返す。これにより、s枚のコインだけを裏返す操作Smを作ることができる。この操作を式で表すと、定理10となる。

(1) n=7、k=3
7=2×3+1なので、定理6において、p=2、r=1とすることができる。定理9によって、1m=~φ3(m+1)3(m+4)である。(ちなみに、1mの簡約操作は5回の操作で構成されるので、この表示の方がわかりやすいし、あとの計算が楽になる。)
コインの表を○、裏を●で表わし、コインの配置を○●○●●○●とする。左から、1…7の番号を割り当てる。裏返すコインは、2番4番5番7番の4枚になるので、1(2) 1(4) 1(5) 1(7)の操作を行えばよい。

1(2) 1(4) 1(5) 1(7)=(~φ)^4 3(3) 3(6)  3(5)  3(8-7)  3(6)  3(9-7) 3(8-7) 3(11-7) = 3(3) 3(6) 3(5) 3(1) 3(6) 3(2) 3(1) 3(4) = 3(2) 3(3) 3(4) 3(5)

この操作は簡約である。定理5より、任意の1枚をひっくり返す操作が存在するときには、簡約操作とコインの状態が1対1に対応する。したがって、この4回の操作が最小回数である。
補足 1mの操作があるときには、簡約操作に重複がないので、この簡約操作以外に図1の状態を全て表にする簡約操作は存在しない。とまで言及するのは蛇足か?あるいは、それを言わないとこの操作が最小手順であることを示したことにはならないか?

(2) n=6、k=3
前問と同様に、コインの配置を○●○○●●とし、左から1…6の番号を割り当てる。
3(4) 3(2)の操作を行うと、
○●○○●● 3(4) 3(2) =○●○●○○ 3(2) =○○●○○○
3番のコインだけ、裏となり、すべてを表にするには、1(3)の操作が必要になる。
n=6がk=3の場合、nがkで割り切れるので、定理8より、任意の1枚を裏返す操作は存在しない。したがって、1(3)の操作を作ることができない。ゆえに、解はない。

(3) パズルに解が存在する条件
任意の1枚をひっくり返せる場合、すなわち、1mが存在するには、パズルに必ず解があるのは自明である。逆に、任意の1枚だけをひっくり返した状態からスタートした場合、必ず1mが必要になるので、1mがない場合には、解けない場合が生じる。以上より、パズルに解が存在する必要十分条件は、1mの操作が存在することと結論できる。
定理10は、sをrに読み替えて、繰り返し適用することができる。定理6において、0≦r<nとすると、rはnをkで割った時の余りになる。すると定理6⇒定理10はnとkを対象にしたユークリッドの互除法になっていることがわかる。ユークリッドの互除法のあまりが最終的に1になれば、定理9によって、1mを作ることができるのは自明である。ユークリッドの互除法で、あまり1になるのは、nとkの最大公約数が1であるということである。普通には、nとkは既約と呼ばれる。
また、定理8より、kが偶数の時には1mを作ることができないので、これを除かなければならない。
まとめると、パズルに解が存在する必要十分条件は、kが奇数かつnとkが既約あること、である。

Discussion

この問題は明らかに、数学者としての「センス」を試すために作られている。高校までの数学は計算に大きなウェイトがあり、計算の手法を熟知し、自由に組み合わせる能力が高いほど、有利になっている。斯く言う僕も、ごく最近まで、数学=計算と思っていた。その意味では、数学というより算数と呼ぶことを好んでいた。その最近、ある本を読んで、現代数学というのは、数字を取り扱うことが目的じゃなくて、様々な事象に数学的構造を見出し、その構造を明らかにすることが本来の目的で、数というのはいろんな数学的構造のモデルを作り出すためのツールなんだ、ということを学んだ。それはまさしく、算数と数学の違いだ。大学では、本当の意味での数学をやっていかないといけないわけで、その素養を見たいというのはよく理解できる。ちなみに、そういうことをちゃんと説明してもらえなかったので、僕は学生の時に数学を完全に放棄した。

数学に対する一般の認識を受けて、大学入試では、計算の組み合わせに長けた人=数学に向いている人となっており、本当の意味での数学者の卵を選抜する仕組みになっていない、というのが大学側のジレンマとしてあったのだろう。その思いが、この問題から感じ取れる。Webで見ると、7x7や6x6の行列をつかった力技の解法が示されているが、いくらmod 2の系であっても、そんなに高次の逆行列を手計算で求めるのは大変だし、高校では高次の行列を扱わない。というか、最近は行列をやらない。行列を用いた解法は将来の受験生に対する誤ったメッセージになってしまうので、出題者側は避けるはずだ。代数的方法でパズルを解くと、このパズル自体の代数的構造をスルーしちゃうので、数学にならない。だから、出題者は、僕の答案のようなアプローチを期待してたと思う。

このコインのパズルは、典型的な群になっている。単位元φが存在し、逆元は同形で、可換で、というちょっと特殊だけど、立派な数体系(群)だ。その数体系を探り、性質を明らかにし、境界を見極めるという、数学の本来のありかたを比較的短い時間で達成できるように練られている。n=7のつぎにn=6を持ってきて系を単純化させて、解なしを導かせるのは、かなりのヒントになっている。これがn=5からn=6だと、ダメなのだ。このコインのパズルに数学的構造が存在することが、n=7によってピンとくるようになっている。というか、n=7をパズルとして解こうとするとちょっと難しい。n=7だと、必勝法を見つけなくてはならないと感じる。n=7だと、必勝法は比較的容易に見つかる。それは、任意の1枚をひっくり返す操作である。でもそれを組み合わせても最適解にはならない。最適解にするにはどうしたらよいか?すると、コインを反転する操作の性質(可換・逆元)を見つける。その性質を使って、公理系を構築することで、解の最適化に到達する。
最適化された解が、最少手数なのかどうかを証明するためには、もうひと山超えないといけないが、自前の演算系を構築し、運用できるセンスがあれば、超えることができると踏んだのだろう。そこを超えれば、あっという間に最後まで到達する。僕は3分だった。ただ、細部を詰めるには、数時間かかった。制限時間内で完全な答案を作成するのは僕には無理だ。

さて、高校生がこの問題を解けるか?と考えたとき、ちょっと難しいように思う。この問題は典型的な有限群で、操作に制限があって、対称性があるときとないときを議論するように設定されている。専門レベルの数学を知らない状態でアドリブで解けるなら、Abel級の才能かもしれない。出題者は明らかにそれを狙っているが、それは虫が良すぎるかもしれない。
こうしたパズルに数学的構造を見出すのはよくあることだ。このコインの話を一般化するとルービックキューブに近いものを作ることができる。1面3x3のルービックキューブは制限のついた単一の操作と有限の状態数で構成されたパズルで、今回のコインパズルに通じる。ただ、ルービックキューブを見て、数学的構造を解析する高校生は多分いない。でも出題者はそういう感性を持った人を望んでいるのだろう。成功したのかどうか、気になる。

ちなみに、京大数学科では、大学院は2種類あるそうだ。学者を目指すコースと、修士卒で民間に就職するコースだ。昨今、理系は修士卒じゃないとダメらしく、数学科も修士卒に対応しているらしい。従来、京大数学科の大学院は学者養成を目的としていて、ほとんど人を取らないことで有名だった。入試問題も強烈で、試験時間は4時間だったか5時間だったかで、とりあえずたっぷり与える。数問出題されるけど、1問完答できれば、文句なしで合格というものだ。ちょうど、今回の特色入試と似ている。というか、試験が数学オンリーな点も含めて、特色入試は数学科の学者コースの青田刈りなんだろう。それを思うと、今回の問題は高校生用にかなり調整されている。院試では、より抽象的で、解けるか解けないかギリギリな感じの問題が出題されると聞いている。もちろん、ノーヒントで。それを思うと、このコインの問題は簡単だと言える。だって、僕が数分で方針を立てられるんだから。

京大数学科の大学院の2つのコースは、数学を作る人と、使う人の差だと理解できる。このコインの問題は、数学を「作る能力」が試される。群論の知識なしでそれができるのなら、数学を作る能力が証明されることになる。ただ、数学マニアが受験することを考慮すると、もしかすると、僕のレベルの初等の群論は「知っている」可能性がある。「知っている」のと「使える」のにはかなりの差があるとはいえ、スレた数学マニアは排除したいというのが出題側の思いだろう。数学マニアが背伸びして及第というレベルは願い下げのはずだ。余裕ぶっこくくらいの人材が欲しいはず。ふれ込み通りなら、1題完答で合格なんで、このコインの問題だけでも解ければ合格になるはず。理学部は募集5名に対して、5名の合格者を出したので、1題完答では合格になっていない可能性が高い。スレた数学マニアが合格した可能性があって、残念なことにならないか心配だ。

追記:追跡調査のインタビュー記事で、部分点だけでの合格者が存在することが明らかになっている。というか、出題者が意図した完答はなかったのかもしれない。この試験後、難易度の高さが問題となり、次の年の試験では、かなり凡庸な問題が出題された。

さて、どのくらいの数学的厳密さを答案では要求するのだろう。僕は、自明と思えることにもかなり丁寧に説明を加えたけど、どのあたりで手を打つかは難しいところだ。現答案ですら、厳密さにおいては、いろいろ不足している。本当に完全な答案は、ほとんど論文になるだろう。だって、特定の数体系を解き明かすわけだから、それが新しければ、立派な論文だ。高校生たちにとっては、きっと「新しい」ので、論文作成と大差ないだろう。そういうレベルを入試で要求するとは思えない。採点基準は、アプローチのセンスの良さで決めるんだろうな。(3)は数学者としては重要なんだけど、それは厳密さが要求されるので、表現が難しい。僕は数学の専門教育を受けていないので、書き方がさっぱりわからない。(3)のゴールが見え見えなのもよくない。であれば、必勝法を少し一般化させて、n=7p+3、k=7の時に2mのあるなしを議論させるなんていうのも面白いかも。

僕の答案だと、最初に山ほど定理をつくって、設問は、ほぼ自明というパターンだけど、もし、作問者がこんな答案を候補に考えていたとするとちょっと違和感がある。それは、高校で一般的な数学の答案とは形式が大きく異なるからだ。それに、答案の一番のポイントは定理4と定理5で、ここでほとんどクライマックスだ。これを超えるとあとは作業でしかない。(1)はちょっと面白いけど、(2)は定理8で証明しちゃってます。(3)に到達しようとすると、定理8は必要なんだよね。そういうことを考えると、道具を全て作って本丸に攻め入るという典型的な数学の論文の体裁が効率的なわけです。それを高校生にやらせるのはちょっとどうなのかな、とも思う。
それよりも、定理5の山を越えてからが長いというのは問題だ。能力の測定は、定理5の時点で可能だ。それ以後の作業は試験時間の無駄にしかならない。能力を測定するという観点からは効率が悪い。
(3)の別解として、n、kが既約でない場合は、qn=pk(ただし、p、qは自然数で、p<n)となるp、qがあって、その場合にはk個の重複操作を簡単に見つけることができるので、1mが否定される、簡単に書くこともできる。ただし、nとkが既約の場合に1mができることを肯定しないので、別途1mの存在を証明しなくてはいけない。僕はユークリッドの互除法に類似の必勝法を提示したが、群表の性質を知っていれば、nとkが規約のときに、qn=pk+1となるp、qが見つかるのは自明で、それを使えば、必勝法をかなり簡単に作ることができる。僕は群論はちょっとしか知らない(ちゃんと勉強したことがない)ので、群表の性質をよく知らないし、その知識を高校生に求めるのはどうかと思う。

数学的構造に気づき、モデリングし、適切な介入(定理作成)を行う、というのは数学の作法だから、それができないとプロとしてやれませんよ、ということで良いと思う。僕の答案では、一見関係なさそうな手順を踏みながら、最後にバサバサ切り込んでゆく感じが数学チックで、僕は確かに楽しかった。
特に面白いのは、全反転操作の有無が重要だという点だ。そして、kが奇数の場合に作った全反転操作が、kが偶数の場合には全反転ではなく、無操作と重複するという点で、とっても面白い。それだけを見ると無味乾燥だが、1対1写像の場合には、1m操作の否定に結びつくというのが意外だ。多分、そういうのに、面白さを感じない人は、数学をやっちゃダメなんだと思うな。

僕は数学のプロパーではないので、もっと素晴らしい解法がある可能性を否定できない。しかしながら、(1)の計算はとても気持ちが良いもので、捨てがたい。いくつか思いついたとしても、この計算を答案に書かないという選択肢はないだろう。

設問を見ると、部分点を稼げる形になっている。すなわち、(1)は純粋なパズルなので、正解の4手順を見つけられるかもしれない。ただ、それが最小手順かどうかを示すことはできない。それに部分点を与えるのか?
(2)はコインの表裏の数の差の偶奇性からも証明できる。でもそれは発展性がない。部分点を与えても良いかもしれないが、それは計測したい能力とはほとんど無関係だ。特色入試は部分点で合否判定するような入試ではなかったはず。
(3)は必要十分条件を示すという点でちょっと難易度が高い。僕は1mの存在が必要十分条件で、それは簡約操作に重複がないことと同値だということをあらかじめ示したので、比較的簡単に証明できているけど、必要条件と十分条件を別々に示すのは、ちょっと難しい。結局、僕はそれが難しいと踏んで、たくさんの補題と代数的構造を調べることにした。(1)と(2)は捨てて、(3)だけを証明し、そのついでに(1)と(2)を解答するという形になっているのは、結構回り道した結果だ。そういう回り道できる能力を試すのなら良いが、時間の限られた試験という形式で、そのような判断を迫るのは理不尽だし、それを短時間で判断する能力は、数学的能力とはあんまり関係がない。

また、答案が長くなりすぎるのも問題だ。僕は「解けた」と確信するまでには数分だったけど、細部を詰めた答案作成には数時間かかった。問題の構造からして、定理5までできたら、ほぼ終わりだ。しかも、定理5まではほとんど自明。定理6は自明ではないけど、そこから先は作業でしかない。でもそこから詰めるのが大変だ。完全な答案を1時間程度で作成する能力は、数学的能力とは別物だ。特に、証明等の記述能力は大学生になってから磨けばよいものだと思う。入試の時点でそれを測る形式になっているのは良くない。何とか数学的な発想力だけを測定するうまい方法はないものか。

2017年2月16日木曜日

Google翻訳、すげぇ

定期試験

僕はGoogle翻訳を定期的にテストしています。早晩、機械翻訳が実用レベルに達すると確信しているからです。さっき、翻訳を試したら、あまりに高い精度なので、びっくりしました。

機械翻訳の勃興

機械翻訳を初めて目にしたのは、Microsoft Developer Network (MSDN)のサイトです。ソフトウェアの開発にかかわる人は、開発環境に関する様々な情報が必要です。インターネットが今ほど発達していない時代、そのような情報を得るのは、とても骨の折れることでした。1990年ころなら、専門書が数冊、1000ページ以内でよかったのですが、Windowsが出てきて、 それが一気に10倍くらいになりました。最悪なのは、それがおよそ2年で陳腐化するのです。そして、ほとんどの情報が最初は英語なのです。
開発環境の劣化は、開発者の減少を招くので、Microsoftは開発環境の整備を精力的に行いました。その取り組みのひとつがMSDNです。最初のMSDNは書籍として提供されました。総重量20Kgくらいありました。あまりにあほらしい量なので、次からは、CDでの提供になりましたけど。
その総重量20Kgの書籍が全部翻訳なわけです。ページ数にして、5万とか10万とかになるので、1ページ1000円で翻訳したとしても億単位のお金がかかります。開発環境なんて、そんなにたくさん売れませんから、コストが回収できません。しかも、時間がかかります。すぐに、翻訳に1年、2年かかるようになりました。開発環境は2年くらいで刷新されるので、開発環境の刷新サイクルと、マニュアル類の刷新サイクルが完全にずれてしまいました。日本語訳の提供は限定され、多くは英語のまま提供されるようになりました。
それでも追いつかなくて、そのうち、Webでの情報提供になりました。Webで順次日本語への翻訳を進めることで、最善の努力で日本語訳が得られるようになりました。しかしながら、それでも追いつかないので、ほとんどの項目は英語でした。
2000年ごろだったかなぁ、突然、日本語訳が多くなりました。しかも、へんてこな日本語でした。翻訳コストをケチって、非日本人に翻訳を外注したのかな、なんて思いました。でも、下の方をよく見ると「このページは、機械翻訳されました」とありました。
その頃は、機械翻訳は意味不明なことが多かったので、英語の原文で内容確認するのが普通でした。もちろん、重要な部分は、優先的に人力で翻訳されてました。ところが、2010年を過ぎたあたりから、すべてのページが、素人翻訳レベルになりました。つまり、機械翻訳がある程度の実用レベルに達したのです。開発環境のマニュアルという限定された対象だと、文法や用語がかなりしぼられるので、翻訳の質を上げやすいという事情があります。さらに、2015年頃には、すべてのページが機械翻訳になりました。
おそらく、これの経緯が機械翻訳の実用レベルで運用の最初の例だと思います。

Google翻訳

コンピュータサイエンスの世界では自然言語の翻訳はとても人気のある研究分野です。古くから多くの研究があります。GoogleはWebから利用できる翻訳サービスを何年も前から提供しています。
結構な精度を達成していて、ちゃんとした日本語を入力すると、ちゃんとした英語に直してくれました。逆に、英語を日本語に翻訳すると、ちょっと違和感がありました。僕らは日本語を母語としているので、日本語のニュアンスの違いに敏感だというのが理由のひとつです。もう一つの理由として考えられるのは、開発者に英語を母語とする人が多いので、英語のちょっとした違いを敏感に修正できるので、必然的に他言語⇒英語の翻訳の開発が先行することです。実際、ロシア語⇒日本語の翻訳は全然ダメです。ロシア語⇒英語、英語⇒日本語はそれぞれそこそこの精度です。でも、ロシア語⇒日本語の場合、ロシア語⇒英語⇒日本語と処理していて、誤差が蓄積するのだと推測されます。
状況が変化したのは、2016年の秋です。GoogleがAI翻訳を導入しました。導入時に試しましたが、そんなにすごいとは思いませんでした。しかし、さっき試して、びっくりしました。精度が極端に上がってる!!

今日の結果

僕のフェイスブックの最近のエントリーでGoogle翻訳を試しました。
https://www.facebook.com/yukihiro.nishikawa.14/posts/1173999572714281?notif_t=like&notif_id=1486083991260932

入力:
こうなってることは、事故直後から様々なデータが暗示していたので、驚きはしません。個人的には滴り落ちた水が心配です。
気になったのは、読売新聞の記事にある「数メートル離れると、推定放射線量は10分の1以下に下がった」の一文。これが観測されるためには、ほぼすべての線源が530Sv/hの付近に密集していなければなりません。ということは、ほぼ全ての核燃料が落下していることを意味します。放射能の封じ込めという点では悪いニュースですが、廃炉作業場所が限定されるという点では、良いニュースです。

出力:
It is not surprising that this kind of data was suggested from immediately after the accident. Personally I am worried about dripping water.
What I became concerned is a sentence in the article of the Yomiuri Shimbun "A few meters away, estimated radiation dose fell below 1/10". In order for this to be observed, almost all sources must be dense near 530 Sv / h. That means that almost all nuclear fuel is falling. Although it is bad news in terms of containment of radioactivity, it is good news in that the location of the waste furnace work site is limited.

これはかなりすごいです。英語と日本語の感性の違いがあるので、ちょっとした違和感は残りますが、十分に理解できます。ちゃんとした文書だと修正が必要ですが、日常会話なら通用します。というか、僕が英語でしゃべるより上手かも?

ロシア語⇒日本語もためしました。こちらはからっきしでした。なんでだろう?

Google翻訳の実力は?

Google翻訳はクラウドサービスなので、時々刻々進歩します。ですが、現時点ですら、大学入試のレベルをかるく凌駕すると、僕は思います。僕の学生で、これほどの英語を書けるのは見たことがありません。少なくとも、語彙はリッチですね。

前節の文例では、that this kindo of data was suggested...に違和感があります。それは日本語の原文があいまいだからだと思われます。because many data, even just after the accident, has suggested this situationというのが本来のニュアンスですが、Google翻訳のような読み方も理論的には可能です。でも、そのレベルのあいまいさが重要になるくらいにまで、到達しているわけです。
後の部分は、違和感はありますが、間違いではない気がします。少なくとも、会話では通じると思います。

さらに、英語にした文章を即座に読み上げる機能もあります。翻訳して、読み上げるということは、writingとspeakingのスキルをコンピュータがやってくれるということです。英語⇒日本語の精度はもう少しな感じですが、時間の問題でしょう。すると、readingも肩代わりしてくれるということです。残るlisteningは、これはすでにかなり良いのです。というのも、英語圏の人々は日常的にスマホに語り掛けているからです。

listening/speaking/writing/readingという4つの言語スキルをすべてコンピュータで代替できる時代が、思っていたよりも早く来そうです。要するに、英語を勉強しなくてよいのです。その代り、僕たちには、英語に自動変換可能な「完璧な日本語を書くスキル」が必要になります。学生の書いたヘボイ日本語は、不正確な英語にしかなりません。あいまいで不完全な文章では、どんなに優秀な翻訳家でも翻訳できないのが道理です。

日本における英語教育は、早急に方針転換すべきだと僕は思います。

関連記事:日本人は英語ができない

2017年2月9日木曜日

錯視について

錯視にまつわる一般論

特定の図形において、長さを間違って知覚したり、あるはずのないものが見えたりすることを、錯視と呼びます。人間の視覚認識におけるエラーと考えられており、主に心理学の一分野とみなされています。錯視の程度に個人差は認められますが、錯視の有無に個人差はほとんどありません。
錯視は高度に発達した人間の脳に特有の現象だと思う人も多いかもしれませんが、錯視は多くの哺乳動物で確認されています。また、魚類にも錯視があると言われています。視覚にかかわる脳の働きに関係があるため、脳科学としても研究されています。
さて、錯視が生じるメカニズムはどんなものなんでしょう?よくわからないので、人気の研究分野です。

錯視の個人差

有名な錯視のパターンの一つが下に示したミュラーリアーの錯視図形です。どのくらい長さが違って感じるかには、個人差がありますが、誰でも下の方が長く感じます。みなさんご存知の通り、長さは同じです。錯視のない人は、基本的にいません。

ミュラーリアーの錯視図形

動物に錯視があるということで、錯視は脳の錯覚ではなくて、光学的あるいは物理化学的な現象だということを示している、と考える人もいるかもしれません。物理や化学が錯視に作用するのは、ちょっと想像できませんが、画像処理的には、少しだけですが、ミュラーリアーの錯視を説明することができます。それは細線化と外挿です。細線化というのは、線を細くする画像処理です。図形を骨格だけにする操作で、人間は頭の中で線画を細線化処理している可能性があります。鋭角の図形を細線化すると、角の位置は少しだけ内側に寄ります。最大で線幅の半分移動します。逆に鈍角の場合は、線幅の半分まで外側の移動する可能性があります。ミュラーリアーの図形では、直線部は少しだけ錯視の通りに補正されます。しかし、最大でも線幅までです。先の図だと、もともと線が細いので移動量はほんの少し。そして、それよりはるかに大きな錯視を我々は感じます。だから、細線化では錯視を説明できません。
外挿というのは、図形が直線で構成されていると仮定して、交点を推定する操作を、ここでは仮にそう呼びました。この操作は、細線化で移動する位置を補正する方向に作用するので、錯視とは逆です。細線化も外挿も画像処理・解析の類なので、数学の範疇です。しかし、それも錯視を説明できません。

錯視はソフトウェアかハードウェアか

さて、誰でも同じように錯視があるなら、錯視の有無はDNAで決まっている、と考えることもできます。魚類にだって錯視があるわけだから、DNAの奥深くに錯視の秘密があるかも知れません。でも直接錯視にかかわっているのは、我々の脳の知覚です。DNAに錯視の情報が組み込まれているなんてことがあるのでしょうか。
我々がDNAについて知っていることは、DNAは体の設計図であるということです。「体」というのは、つまるところハードウェアです。つまり、DNAの情報というのは、主にハードウェアに関するものです。いやいや、生物が異性を生殖のパートナーに選ぶというのはソフトウェアの問題で、それはDNAにプログラムされている、という反論もあるでしょう。でも、そういう感情面の制御は脳内化学物質のバランスが重要で、感情はおおむねハードウェア制御と言えるかもしれないのです。一方、理性は後天的な要素なので、ソフトウェアと考えられます。人間のソフトウェアは、脳内の神経細胞のネットワークで構成されていて、DNAでは、細かなネットワークの構造を記述するには情報量が不足します。だから、DNAをいくら調べても、錯視のメカニズムの記述は見つからないでしょう。
錯視は我々の知覚の問題だと考えると、脳内のネットワーク、すなわちソフトウェアの問題とするのが妥当です。脳内ネットワークの構造は個人で違うはずなのに、なぜ同じように錯視があるのでしょう。錯視に関するソフトウェアが各個人の脳内で自然に発生するなんてことがあり得るのでしょうか。
我々は視覚を赤ん坊のころに発達させています。赤ん坊は目の焦点を合わすのが下手で、視覚はちゃんとあるけど、ものをよく見ることができない、と考えられています。目の焦点を合わせるには、視神経からの入力を脳内で画像として認識し、焦点が合った画像が得られるように眼球にかかわる筋肉を適切に制御する必要があります。最初は焦点が合った画像というのを認識できませんので、どのように合焦機能がビルドアップされるのか、興味が尽きません。一つ確実なのは、これはかなり高度が画像処理だということです。そのような高度な処理を、我々は無意識でやっています。同じような画像処理は最近のデジカメもやっていますが、十分な精度と速度が達成できるようになったのは2010年頃で、ごく最近です。そういう高度な処理なので、赤ん坊のころは、うまくできません。でも、すぐに、みんなできるようになります。できない人を見たことがありません。
視覚にかかわる脳内ソフトウェアに限らず、たくさんの入力を受けると自然に適切なソフトウェア(神経ネットワーク)が発達するというのが、脳の素晴らしい機能です。でも、これ、よく考えると、最近流行の機械学習と同じです。赤ん坊は、合焦機能の次に、空間認識を発達させます。そのとき、物体を線画で抽象化し、形状を推測し、大きさや距離を知覚するようになります。そのプロセスの中で錯視が生まれると考えられます。先のミュラーリアーの錯視図形は三次元空間での物体の認識機能と関係していることが指摘されています。

人工知能は錯視をするか?

さて、錯視が脳内で機能する機械学習プロセスの産物らしいと考えると、すべての人が錯視するということをDNAと関係なく説明できます。また、動物にも錯視があることも説明できます。逆に、錯視が視覚機能の獲得プロセスの副産物であるならば、同じような機能獲得プロセスを持つ系では、同じような錯視が現れる、ということにもなります。つまり、脳の機能獲得プロセスを模倣していると実証されてつつある最近流行の機械学習に基づく人工知能も、錯視を獲得する可能性がある、ということです。人工知能が進歩して、空間認識を獲得するに至ると、ミュラーリアーの錯視が生じると、僕は断言します。それは、その気になれば、結構すぐに実証できるでしょう。もうあるかも。機械学習に基づく画像分類サービスで、黒人とゴリラを取り違えた事件がありましたが、よく見ると誤認しても仕方ないケースがあることが分かります。錯視はそれの延長にあるんじゃないか、ということです。
さて、人工知能が錯視を生じることが実証されてしまうと、錯視の研究は心理学ではなくなります。ギリギリ人工知能心理学という新しい学問を定義できるかもしれません。たぶん、そのうちそういうものが出てくるでしょう。でもそれは、普通の意味での心理学ではありません。
また、普通の意味での脳科学でもなくなるでしょう。脳を数理モデルとして理解するために、人工知能の錯視の研究は脳科学にとどまるかもしれません。でもそれはむしろ数学の範疇かもしれません。
錯視研究は心理学の花形分野の一つです。でも、近い将来、それは心理学ではなくなるということです。これは心理学にとっては激震です。でもそれは、いつ起こるかだけの問題で、確定済みだと僕は思っています。

おまけ:我々の視覚はとても高度だ

僕は重度の糖尿病で、ちょっとだけ網膜症があります。ちょっと前に視野がかけました。そのとき、いろんなことが分かりました。僕たちは何かを見つめているときでさえ、眼球を絶えず動かしているということに気づきました。僕は網膜の一部の神経がかけているのでその部分は灰色に見えます。なぜ灰色なのかわかりませんけどね。
普段、脳の補完機能が働いているらしく、視野が欠けているという事実はほとんど知覚できません。そのため、ほとんど不便はありません。しかし、本を読む場合に、時々知覚します。
本の文字を見つめていると、視野の中心から外れたとこりに見えない部分があって文字がわからないので、それとわかります。少し見つめていると、見えない部分が時々瞬間的に移動していることに気づきました。サケードとかサッケードと呼ばれる眼球運動が理由です。眼球が運動するので、視野も移動するはずなのですが、なんと視野は移動しないのです。いや、視野欠けしている領域は移動しているので、見ている視野は移動しているはずなのですが、知覚している視野は移動していないのです。びっくりしました。
実は、眼球は絶えずぴくぴく運動しているのですが、脳がその運動を補正して、視野を固定しているのです。僕たちはその補正を普段は知覚できません。僕も網膜の一部を失うまでは気づきませんでした。視線検出機で視線を表示すると、不規則なジグザグ線となり、思った以上に視点が移動している、というのをよくテレビで見ます。不規則なジグザグになるのは、視線の検出精度の問題ではなくて、眼球が不規則に運動しているからです。にもかかわらず、僕たちは、そのような不規則な眼球運動に気づくことはありません。僕たちの脳は、高度な画像補正を行い、視野を統合して知覚していると考えられます。
一見無駄に見えるサケードですが、いくつかの利点があります。例えば、多くの視野を統合するので、広い視野が得られます。また、サケードは僕たちの体の運動の知覚と連動していると思われます。自分の体の運動がないのに視野が移動すると、視野の補正がくるってしまい、脳が混乱します。典型例は、乗り物酔いです。また、細かいサケードによって、超解像を得ている可能性があります。つまり、網膜細胞の大きさよりずっと細かな眼球運動で得た画像を合成することで、網膜細胞よりずっと細かな解像度を得ているかもしれない、ということです。これは我々が物体を線画で認識する傾向にあることと関係しているかもしれません。
眼球運動は、細かな直線で構成されていると思われますが、一つの直線運動に着目すると、眼球運動時に輝度の変化が小さい部分は「その方向の線」だということが分かります。逆に、大きい部分は輪郭と判断できます。複数の方向の眼球運動の情報と合わせると、視野を線画、あるいは輪郭にすることができます。それを瞬時に行っているのかもしれません。このレベルの画像処理は、未だコンピュータが到達していない領域です。奥が深いです。

2017年1月29日日曜日

天才の数学的考察

天才の定義にまつわるあいまいさ

何を以て天才とするかというのは、人によって異なります。なぜそういうことが起こるのでしょうか?
普通の人は、自分が出会った中で最も優秀な人を「天才」と形容するかもしれません。あるいは、自分が見聞きしたなかで、最も優秀な人を「天才」と形容するかもしれません。また、分野ごとに「天才」を定義することができるでしょう。いずれにしても、特定の分野で希少な「良い」能力を指すのが、「天才」という言葉です。「希少」ということは、統計的に出現確率が低い、ということです。「特定の分野」というのは、条件付き、ということです。つまり、「天才」という形容を、統計学的に見てゆくことで、基準が見えてくる、というの本論の趣旨です。

偏差値とチェビシェフの不等式

確率のことを考えるときに非常に便利な定理があります。それはチェビシェフの不等式と呼ばれるものです。ある事象Xについて、Xの標準偏差がσ、平均値がμだったとします。その時の確率について、
$P \left( | X-\mu | \le k \sigma \right) \le 1 / k^2 $
が成り立ちます。この式にいくつかの仮定を加えて計算すると、偏差値が10上がると、出現確率がおよそ1/10になるという簡単な法則が導かれます。逆に、数値化できない事象でも、出現確率を考えることで、偏差値に割り当てることができます。すなわち、ある確率Pの事象の偏差値は、
$50- 10 \log{P} / \log{10} $
となります。
例えば、高校野球の場合、高校3年生の競技人口はおよそ5万人。一方、プロ野球のドラフト会議の指名選手はおよそ100名。ざっくり計算すると、プロ野球選手になるのは、500人に一人の確率になります。すると、おおよそ偏差値が77ということになります。野球の能力というのは数値化しにくいものですが、確率から類推することで、偏差値を推定でき、分野が異なったとしても、同じ尺度で議論できるようになります。
偏差値には、条件付き確率を考える際にとても便都合の良い性質があります。非常に大きな集団があり、その集団の一部での偏差値がAとします。部分集団の平均値から計算させる集団全体における偏差値をBとすると、集団全体での偏差値は、
$(A-50)+(B-50)+50=A+(B- 50) $
と推定できます。
この性質は、高校での定期テストの偏差値を、全国模試に対応させる、といったことを可能にします。高校での定期テストというのは、特定の高校内にとどまり、全国的なテスト結果と直接比較できません。そこで、高校生たちは、全国規模の模試を受けます。
実のところ、全国模試では、特定の高校の生徒の平均値というものが、その高校にこっそり送られてきます。高校はそこから、自分の高校の全体での偏差値を見積もります。多くの生徒の平均値なので、統計的に安定しており、模試ごとの変動というのはそれほど多くありません。学校平均の偏差値が55だったとします。一方、特定の生徒の定期テストでの偏差値が60だったとします。定期テストは模試よりも頻繁に行われるため、生徒の成績の変動を見るにはよい方法ですが、毎回基準が変動するため、大学入試の参考となる全国規模の成績判断には使いにくいものです。しかしながら、偏差値のもつ性質を使うと、その生徒の全国基準の偏差値は、60+(55-50)=65と推定されます。これによって、その生徒の成績の変動を全国基準で議論可能になります。これは特定の高校という条件の付いた成績と、そういった条件がない場合の成績の相互変換を提供する一般的な方法です。
この方法は、勉強以外にも適用可能です。再び野球を例にとると、高校三年生はおよそ100万人なので、野球部員である確率は20人に一人であり、形式的な偏差値は、およそ63です。野球部員の中でプロ野球選手になるときに偏差値73なので、一般の高校生がプロ野球選手になる時の、偏差値は77+(63-50)=90となります。これはおよそ1万人に一人の確率であり、それは高校三年生の人口とドラフト指名人数の比に一致します。
ここから、ある条件を考慮する場合は、その条件の偏差値(から50引いたもの)をどんどん足したり、引いたりすればよいことになります。条件の種類は、不問というところがポイントです。野球の場合、女子は対象から外すとすると、母集団はおよそ半分になります。それは偏差値を-3することに対応します。なので、男性の中では、プロ野球選手の偏差値は87と推定されます。

今まで出会った中で最も優秀

「天才」の基準のひとつに、今まで出会った中で最も優秀という基準があります。この基準の偏差値を推定してみましょう。
この場合、今まで出会った人の数を知る必要があります。その数は、当然単調増加であり、年齢を経るごとに増えてゆきます。なので、中学校の頃に天才と感じた、というのと、高校の頃に天才と感じるのでは違ってきます。中学校くらいだと、直接出会うのは、500人くらいかな、と思います。高校になると、2000人くらいにはなるかもしれません。その中で最も優秀という基準で偏差値を考えると、中学生で77、高校生で83になります。しかしながら、年齢による差を考えて能力を勘案すべきだと考えると、同学年、あるいは、±1年の3歳の範囲を抽出すべきかもしれません。すると、対象人数は、それぞれ半分くらいににはなるでしょう。すると、偏差値だとー3して考えるべきで、中学生で74、高校生で80となります。
どのくらいの偏差値かというのをイメージするために、テストの成績で考えてみます。今は、1クラス30名程度なので、クラスで1番というと偏差値は65くらいになります。常にクラスで1番か2番という成績でも、74や80には足りません。65と74の差はおよそ10なので、10クラスに一人というくらいの成績が必要になります。小さな学校だと、学校全体で一番勉強ができる、くらいが偏差値74です。なので、直接出会って話をするかどうか、というくらいの希少さに対応し、中学生くらいだと、偏差値74くらいで、「天才」という形容になります。
高校生だと80が基準になります。65との差は15なので、30クラス集めて、そのトップというくらいのレベルです。それは、普通の学校にいるかいないか、どっちかといういない、みたいなレベルになります。つまり、近隣の学校を合わせた中で、1番みたいなレベルを称して「天才」と感じるわけです。個人競技だと、市や区の大会で優勝するレベルというとわかりやすいかもしれません。この考察は、結構いい線いっていると思います。進学校だと、学校平均の偏差値が70くらいまで行きますので、有名進学校のトップは「天才」ということになります。
高校生くらいまでは、同年齢くらいが「天才」の評価対象ですが、大学あるいは一般になると、対象年齢に制限がなくなります。つまり、偏差値は+3されます。また、母集団も高校時代の倍くらいになるので、これでも偏差値は+3になります。したがって、高校生の基準+6の86が「天才」の基準になります。勉強のテストで考えると、偏差値86は全国トップのレベルです。それは、一般的に考えても、「天才」と呼んで良い気がします。ちょうどプロ野球選手の推定偏差値に一致することから、プロ野球選手は知人たちにとってすべからく「天才」という評価になると思います。

天才は何人いるかという基準

「個人的に出会った中で最も優秀」という基準での「天才」は、偏差値86ということになりますが、これはおよそ4000人に一人であり、日本の人口を1億とすると2万5千人もいる計算になります。これは「天才」の客観的な基準としてかなり甘いということになります。このあたりが「天才」という形容のあいまいさの根源だと思います。
じゃ、日本で10傑という基準にすると、10^7人に一人ということになるので、偏差値は120(50+7x10)と推定されます。しかしながら、「天才」というのは分野ごとに考えるというのが普通です。例えば、イチローは野球については天才ですが、勉強については天才ではありません。そこで、分野の数を大雑把に100くらいとすると、偏差値は-20されて、偏差値100が全国に10人くらいのレベルの「天才」です。いわゆる「トップクラス」という表現がぴったりです。その中で、「トップ」となると、+10になるので、偏差値が110くらいとなります。
勉強のテスト偏差値100を達成するのは、ほとんど不可能です。というのも、ほとんどの場合、満点であっても偏差値100には届かないからです。僕は一度だけ偏差値が100あったのですが、その時の平均点は100点満点で20点、標準偏差が10点。そのテストで70点でようやく偏差値が100という感じでした。100点満点で平均点が20点というテストは、はっきり言って、テストになってません。そのような極端な場合にしか高偏差値は出現しないのです。だから、勉強のテストにおいて、そのような偏差値をみることはないし、そのような偏差値の人にであうことも、まずありません。もっと言えば、同年齢でそのような人を探すことも無理かもしれません。それは例えば、10年に一度の逸材という表現がぴったりです。しかしながら、その言葉は、濫用傾向にあります。
ちなみに、1億人でトップだと偏差値130相当ですが、これは現在生きている人全部ということになります。野球の場合は、現役以外も含めます。だから、イチローの偏差値は、もうちょっと低くなります。現役の期間は全人生の5分の1としましょう。すると、偏差値は−7になるので、123というのが野球で現役トップという偏差値になります。プロ野球選手はいろいろ入れて、800名くらいなので、その中のトップと計算すると、90+29=119となります。90という偏差値は母集団に女子も含めた値です。誤差は4で、異なる根拠で見積もった偏差値であることを勘案すると、良い一致だと思います。なので、120くらいがプロ野球のトップの偏差値と考えてよいでしょう。
ここまでは、話を日本に限ってましたが、科学の分野は国際化しており、母集団として世界を考えなければなりません。世界人口を75億=10^9.7とします。その場合のトップは偏差値が147になります。そのうち、現役は半分くらい(-3)、さらに、教育が行き届いているのは4分の1くらい(-6)、また、科学の分野は細分化されており、分野の数をざっくりと500くらいに想定する(-27)とします。トータルで、111となります。これが科学の世界における「天才」の基準だということです。
科学の世界における主役は学者です。学者は難関の大学入試をクリアし、さらに大学でセレクションされ、博士号を取り、運よく職を得た人たちです。そのセレクションを考察することで、学者の偏差値を推定することができます。
僕の例を挙げると、当時の京都大学工学部の偏差値は70~75、40名のクラスで毎年4名程度が博士号を取得し(+10)、3分の1(+5)くらいがアカデミックポストを得ます。トータルで、偏差値が85~90くらいになります。京都大学理学部は偏差値が高いことで有名で、85とされています。そのうち、半数が博士課程に進み(+3)、さらに半数がアカデミックに残ります(+3)。すると偏差値91になります。京都工芸繊維大学の偏差値は60くらいで、30名に一人が博士号を取得し(+15)、さらにアカデミックポストに残るのは10人に一人(+10)です。この場合、偏差値は85相当になります。
これらの例から、学者というのは、85~90の偏差値に相当するということが分かります。一流(世界クラス)の学者というのは5人に一人くらい(+7)で、さらにトップとなると5~10%くらいでしょう(+10~17)。トータルすると、102~114となります。世界基準の科学の「天才」は111と推定しましたが、おおむね同じ値になります。
さて、これは「現役」という条件を課していました。しかし、科学の世界に名を残すほどの「天才」というのは、さらにセレクションを受けます。どの教科書に名前が出てくるレベルの「天才」の偏差値はさらに+20(100人に一人)くらいでしょう。

知能指数を基準にした天才

知能指数をもって、「天才」の基準とするのはわかりやすいものです。じゃ、どのくらいの知能指数で「天才」となるのでしょう。知能指数の統計にはいくつかの流儀があって、それぞれちょっとずつ値が違います。最も一般的ではっきりしているのは、知能指数+15が偏差値+10に対応するというものです。知能指数120でかなり賢いとされていますが、これは、偏差値で63くらいに対応し、クラスで一番、というくらいです。確かに、「賢い」という基準でしょう。
知能指数が140に達すると、特別な教育を施すべきだという意見があります。偏差値に換算すると、77くらいで学校で1番くらいの基準です。
逆に、科学の天才というのは、偏差値が111ということなので、知能指数に換算すると191になります。実測された知能指数の世界記録は200くらいなので、知能指数でトップクラスなら、科学の天才であっても、さもありなんという感じです。
ただし、知能指数というのは、分野を限定しない単独の指標です。単一分野で競った時の偏差値は、ガチの偏差値ですが、多数の分野を想定した偏差値は、分野の数の定義があいまいなので、割引いて考える必要があります。例えば、学者の偏差値は90くらいと推定され、知能指数160に相当するものの、実際の知能指数が160もあるかというと、疑わしいと思います。知能指数は、テストの領域が狭いので、偏差値で考えた方が、汎用の評価基準として、適切だと思います。

まとめ

概ね、偏差値100以上というのが広く通用する「天才」の基準として、おおむね納得できるかな、と思います。それは10万人に一人という確率であり、直接的な知り合いの中に見つけることを期待できないというレベルです。
だから、「天才」という形容を使うとき、「出会った中で一番優秀」という基準は、相当に甘いということがわかります。そういう意味での「天才」は、偏差値がせいぜい80くらいで、その100倍すごい人でないと、「天才」としては恥ずかしいね、ということです。
ほんとのところ、僕は本論で行ったような計算が大好きなだけなんです。ごめんなさい。