V-1 学習

 

 1

 

 午後になって博士に会いに行った。

 博士は昨日と同じように寝ていたらしい。僕が入る前にイロハに様子を見てきてもらうと、妹は「5分、待ってください」と言ってからもう一度部屋の中に入っていった。

「博士はここに住んでるのか?」

 扉の向こうのイロハに聞く。

「ええ、そうなんです」

 イロハが答えた。

「ていうか博士って何なの?」

「母さんの協力者です。博士に言わせると共同研究者兼雇い主って感じらしいですが」

 イロハが言う。どうやら住み込みで研究している研究者らしい。あるいはパトロンと科学者みたいな関係か。随分と時代的な話だと思った。あるいは中世的か。

 

「それで、今日は何の話をするんでしたっけえ?」

 ベッドの上に座った博士が言う。昨日と同じ丸眼鏡をかけて、くたくたのシャツに長いスカートを履いている。

 部屋の中は相も変わらず乱雑としていた。

 そこかしこに本やコピー用紙、ハードディスクや液晶ディスプレイなんかが置いてあった。僕は博士に訊ねた。

「あの人と一緒にやっていることについてです」

「あの人ってだれですかあ?」

「神崎恭子」

 ああ、そういえばそうでしたねえ、と博士は首を縦に振った。

「世界の最後の言葉について知りたいんでしたっけ?」

 僕は頷いた。

「で、昨日は機械学習とかの話からなぜか知能とかいうふわふわした話になって終わったんですよね」

 イロハが言う。

「思い出しました。とは言っても私はもう言いたいことは大体言ってるんですけどねえ」

「大体言っている?」僕にはわからなかった。

「機械学習ってご存知ですか?」

「なんとなくなら」

 僕は自分の知識を引っ張り出す。

 機械学習とは何か、一番イメージしやすいのは文字認識である。

「文字認識?」

 イロハが首をかしげる。

「例えば『あ』っていうひらがなを書けって言われたらイロハはどうする」

 僕が聞く。イロハは即答した。

「『あ』って書きます」

「もうちょっと具体的に」

「横棒を一つ書いて、それに交差する弧を描いて、最後にその弧に巻き付けるように曲線を描きます」

 言いながらイロハはそばにあったホワイトボードに『あ』と書いた。僕もその横に『あ』と書く。博士は二つの『あ』の間に『じ』と書いた。『あじあ』。

「これは?」僕が冷たい目で博士を見る。

 博士は少しの間黙って僕を見て、それから目を伏せて言った。

「……ごめんなさい、面白いかと思ってえ」

 博士はやはりあほだった。僕は容赦なく『じ』を消した。

「で、この『あ』がなんだと言うんですか?」

 イロハが話を戻す。

「いや例えば僕たちは同じ『あ』を書いた」

「はい」

「でも違うだろ?」

「違う、とは?」

「厳密に言うと形が違う」

「まあ兄さんは字が汚いですからね」

 イロハは辛辣に言う。

「僕の字が上手いか下手かは置いておいて、でも誰だって全く同じ字なんて書けない。それにもかかわらず人間は同じ『あ』だと認識できる。これは何故だと思う?」

「なぜって」イロハは少し考えた。「だってわかりますもの。これは『あ』だっていう特徴をなんとなく理解しています。たとえばそうですね、穴の数とか」

「『め』だって穴の数は同じだ」

「『め』には横棒がありません」

「じゃあ横棒があって穴が二つ開いた文字、例えば『目』は『あ』か?」

「それこそ全然違うじゃないですか」イロハは憤慨する。「確かに言葉できちんと説明できませんけど、でも『あ』は『あ』だって、経験的にわかるんです」

「その言葉にできないけど経験的に学習していることを機会にやらせたいっていうのが、機械学習ですう」

 なぜか博士が胸を張った。

 

「コンピュータによる機械学習の基礎概念はとっても簡単ですう」博士が言う。「数学的にはコンピュータに入ってくる情報は数列ですう。例えば先ほどの文字の認識について考えてみましょう。入ってくる情報は画像です。ここではビットマップイメージを考えましょう。ビットマップは画像を細かい点に分けて、その各点の色を記録しているだけですう」

 博士はホワイトボードの前に立った。

「例えば100マス×100マスの画像にひらがなを書くことを考えましょう。点の数は10000個、色を単純に白黒だけとして2色だとしましょう。この画像は10000個の穴に0か1の数字が入ったベクトル空間――より正確には加群ですが――と等価です。つまりそのベクトル一つ一つとどのひらがなが対応するかを調べれば、100×100の画像と文字の対応がわかるわけです」

「そういうことになりますね」

 僕は頷く。

「もちろんすべてのベクトルに一つ一つ対応を決めてもいいのですが、それはとても大変です。ならもっと単純にやってしまいましょう。欲しいものはひらがな50音と10000次元のベクトルの対応です――聖女ちゃんはついてこれてますかあ?」

「ええ、たぶん」イロハは眉根に深い谷間を作りながら頷く。

「もしもこのベクトルに何かの行列をかけて、それで一発で答えが出るならすごく魅力的じゃないですかあ?」

「行列?」イロハが繰り返す。

「もっと単純に足し算掛け算でもいいです。10000個の0と1を適当な係数で足し引きします。すると何か数字が出ますよね? それで何か50個の数字を作ります。それらの数字に一度特別な操作をします。例えばその数字が0以下なら0に、0以上ならなにもしないという操作を加えます」

 頭の中で数字をこねる。0と1を適当な係数で足し引きして数字を50個作る。それだけなら何でもない。

「その数字を見ると元の画像がどのひらがなになっているかが調べられるなら、例えば各数字がひらがなの50音に対応していて、その数字が一番大きな数字がまさに入力した文字だってなってたら、すごく魅力的ですう」

「……」イロハは難しい顔をして僕を見た。

「なぜ僕を見る」

「だって兄さん」

 イロハは少し考えて言った。

「それは素敵かもしれませんが、でもそんな魔法みたいな係数見つけられるんですか?」

「それを見つけるのが機械学習ですう」博士が言った。「例えば最初は0から1までの乱数係数で足し算引き算をしてみましょう」

「でもそんなことしたって意味のある数字が出るとは思えません」イロハが言う。

「そうです。たぶん全然意味不明な結果が出るでしょう。例えばもしも元の画像が『え』なのに『ろ』だという結果が出たとします。もちろんそれは間違った係数です、なので係数を調整します。調整の仕方はいろいろあるのですが、そのベクトルに対して『え』という結果に一番急速に近づく方向に係数をずらします。ずらす幅は最初に決めておきますう」

「その方向はどうやって決めるのですか」

 僕が問う。

「普通に微分しますう。10000個の係数について微分して、『え』の確率は最も早く増えるように、他の確率は最も急激に減るように、係数を変化させます」

 イロハが僕を見る。

「10000個の数字って考えるとわかりにくいだろうから二個の数字で考えるといい。例えば f(x,y)=a x + b y という関数を考えよう。x=-y=a=b=1とするとf(1,-1)=0だ」

「はい」

「この係数a,bを変化させて f(1,-1) をできるだけ大きくしたいと思おう。どうしたらいい?」

「待ってください……今a-bをできるだけ大きくしたいって言っていたんですよね。それなら簡単ですaをできるだけ大きく、bをできるだけ小さくすればいいんです」

「正解だ。じゃあもう少し問題を難しく使用。aとbそれぞれの変化量の二乗の和は1でなければならない、という条件がかかっているとするとどうなる?」

「ええと、二乗の絶対値ですから……」イロハが考え込む。少ししてイロハは白旗を上げた。「わかりません」

「答えはaを1/√2だけ増やし、bを1/√2だけ減らすことですう」

 博士が代わりに答えた。

「何でですか」

「図を描くのが一番わかりやすいんじゃないかな」

 イロハはホワイトボードに図を描き始める。

 それからイロハに理解してもらうのに30分ほどの時間がかかった。数式を使って話せるってとても助かることなのだと僕はその日初めて理解した。

 

「とにかくですねえ、この係数の調整をたくさんの入力について繰り返します。するとなんということでしょう。だんだん係数は欲しい係数に近づいていくじゃないですか、これが機械学習の基礎です」

 ようやく博士は話を戻した。

「1960年代にこのようなマシンはパーセプトロンとして実現されて、その限界も含めて、いろいろ調べられました。それがいわゆる第1次ニューロブームですう」

「60年ってずいぶん昔ですね」

「結局わかったのは線形な問題なら解けるだけとわかってしまったので、それ以上発展しなかったんです。で、一回廃れるんですけど、そのあとよみがえったんです。それが深層学習いわゆるディープラーニングってやつですう」

「確かに聞きますけど、それは何ですか?」

 イロハは聞く。

「さっき例で出したのは一回計算して終わりですけど、あれを何回も繰り返すんですう」

「繰り返す?」

「ベクトルに行列を掛けて何か別のベクトルを作って、非線形な操作を施して、それをまた別の行列で変換してって、それを何層にも繰り返すんですう」

「はあ」イロハが気のない返事を返す。

「それだけですう」

「それだけ?」イロハがぽかんとして博士を見る。

「だってそれじゃあ何も変わってないじゃないですか」

「変わってますよお」

「何がですか?」イロハが聞く、

「非線形操作の数が」

「数って、やってることは同じなんでしょう」。

「なんで深層学習は上手くいくんですか?」

 僕が聞く。

「わかりませんー」

 博士が答えた。

「わからないって」

 イロハは呆れた。

「いえ本当にわからないんですう。なんで多層にしたらうまくいくのか、その答えは誰も知りません。そんな方法で上手くいくって誰も思っていませんでした。でもできちゃったんです。だからみんな利用しているんです。その原因を調べてるんですう」

「なんだか滑稽な話に聞こえるのですが」イロハが言う。「なんだかわからないけど上手くいくから利用するって、それは本当に化学なのですか?」

「科学ってそういうものです。聖女ちゃんはヒュームの懐疑論とか知ってますかあ?」

「兄さん?」

「……例えば僕がこのペンを離すとどうなる?」僕はホワイトボードマーカーをつかみ言う。

「落ちます」イロハが言う。

 僕は手に取ったペンを離す。手から離れたペンは床に落ちた。

「でもどうして僕がする前の行動を知っていたんだ?」

「いくら私でも重力くらいは知っています」

「でも重力の法則はどうして正しいんだ?」

「それは、今までずっとそうだったからです」

「その通り。でも別に次の瞬間物理法則が変わっても、別にいいだろう?」

「いやよくありません」

「なぜ?」

「なぜって……」イロハが言葉に詰まる。

「ヒュームの懐疑論はこう言って、帰納的な発見そのものについて疑問を投げかける。逆に言えば、科学なんてその程度の”正しさ”しか持っていない。深層学習も同じだって言っているんだ」

「……ただの極論な気がするのですが」イロハが不満そうに僕を見る。

「極論だよ。だからそのあとポパーの反証主義やクーンのパラダイム論に広がっていくんだ」

 僕が言った。

 で、機械学習に戻すとですね、と博士が言う。

「私たちは言葉についてそれを適用しようとしています」

 ここからが本題だった。

 

  • Xで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る