計算
解を求める手順の基礎
https://gyazo.com/2a1408449fcd4862e3c0fc0b5ef1470e
数値計算と精度保証付き数値計算
一つめは、エヌヴィディアの自動運転の研究である。映像のデータからハンドルやアクセルの操作をマッピングする学習を、エンド・トゥ・エンドで行う[Bojarski et al., 2016]。これには実際の映像がたくさん必要である。ところが実際の映像は取るのにコストがかかるので、シミュレータ上の映像を使って学習する。つまり、3次元のシミュレータで、道路や景色、対向車、歩行者などを映像として作り出し、それを使って、他者の物体検出や歩行者の認識、あるいはハンドルやアクセル操作などを学習する。この方法において、一方のGPUでは、現実世界を模擬する3次元のシミュレータが動き、もう一方のGPUでは、この映像を本物だと思ってニューラルネットワークが学習する。ちょっと考えると不思議な学習を行っている。
二つめの例は、アルファ碁である。ある局面が良いか悪いかを学習するためには、結果的にその局面から勝ったかどうかのデータが必要になる。そのために、自己対局を進め、結果的に勝ったかどうかを調べ、それを学習データとして加えるわけである。これも、計算機が計算した結果をもって、別の計算機が学習していると言い換えることもできる。
三つめの例は、画像認識である。考えてみれば、ある画像がネコであるというときの「ネコ」というラベルはどのように作っているのだろうか。もちろん、人間がその画像を見てラベルをつけている。人間はどのようにネコと判定しているのだろうか? 人間の脳が働いている。人間の脳という「リアルな神経回路網」がその画像をネコと判定し(複数人の多数決をとって)、ラベルがつけられる。したがって、これも、人間の頭脳という計算機(計算機に例えるのは適切でないかもしれないが)の結果を、別の計算機が学習していることになる。
つまり、三つの例ともに、「ある計算機で行った複雑な情報処理過程の結果を学習データとして使って、別の計算機が学習する」ことが行われている。その結果、より簡便な計算ですむ。つまり、学習というのは、複雑な計算過程をシンプルにするための方法という見方もできる。言い方を変えると、通常、教師あり学習として行われる場合の教師データの「ラベル」は、自明な計算によっては得られないものを仮定する場合が多い。一方で、教師あり学習や教師なし学習(自己教師あり学習)における入力データ中の各素性は、同一の確率モデルから生成されると見なせるものなど、何らかの相互の情報量が自明に含まれている場合が多い。つまり、いままでの機械学習の実践においても、「計算を省略する」ということが暗黙の問題設定であったと言うことができるかもしれない。
ここでは計算という言葉を使ったが、グレッグ・イーガンのSF『順列都市』では、すべてが計算で行われる世界を描いている。「世界は計算しているのか」というのは、古典的な問いであるが、「計算」という言葉自体が、記号系RNNからみた「記号原理主義」的な見え方である。そもそもこの世界には「なぜか分からないがもつれを紐解くと相関関係、因果関係のように見えるもの」しかないはずである。しかし、あえて記号系RNNの視点にたって手続き的に表現すれば、「複雑な計算過程を、完全な再現可能性を犠牲にしつつ、簡単にすることを学習では行っている」ということになる。