質問: 情報工学における理論的研究・数学の意義 数学が好きで情報系で勉強しているものです。
回答: >>最近情報系で流行りは機械学習でSVMに投げるとかニューラルネットにぶちこむとかで理論的な解析をしなくてもできるような研究(「なぜうまくいくのか」が説明できない、ブラックボックス的な研究)が多くなってる気がします。 そういう研究はたいてい機械学習そのものの研究ではなく、本当に識別したい対象があって、それを達成する手法として機械学習を用いているのだと思います。つまり機械学習の応用研究です。自然言語処理や画像処理、音声処理などではきっとそうでしょう。 それに1つ言えるのは、工学では、とりあえず様々な条件で実験をしてみて事実から考察を行うというのは常套手段です。そういう研究が目立つのは普通のことだと思います。 まず1つ言えるのは、識別器自体には必ずしも物理モデルはいらないですし、物理モデルが正しいものとも限りません。もしも物理モデルを構築するとするならば、識別器の方ではなく、観測したいデータのほうです。例えば物体の質量と大きさと材料と振り子の長さとをデータとして、その周期を識別(あるいは回帰)したい場合は、識別器に突っ込むことなんて一切考えないはずです。なぜなら振り子を表現する微分方程式を知っているからです。大きさや材料、質量も明らかに冗長な情報で、周期は振り子の長さのみに依存します。そういう物理モデルを我々は知っているのです。まず考えるべきはそのようにこれから対象としようとするものに対して物理モデルを考えることです。これ自体は様々な分野普段から伝統的に行われていることですね。 そういう構造がわからないからこそ、とにかく回帰や識別を行うアルゴリズムがほしいということになるのです。 では次に、そのような識別器の中身についてです。 SVMの基本的な動作については分かっていますね。なぜ上手くいく(と考えられるのか)は、分離超平面付近に現れるであろうデータに対して、マージンを導入しているからです。これによってきわどいデータもしっかり分離できると考えているのです。もちろん、予測したいデータが誤りとされるのが識別面付近である保証など無いです。ふとした時に、全く反対側の領域の無限遠に現れるかもしれません。しかし、それは学習機械の問題というよりは、測定したデータの振る舞いのほうがよっぽど問題です。あるいは学習データがあまりにも限定的だったのかもしれません。 非線形な分離に関してはデータ点を多様体として高次元空間に埋め込むことで、高次元空間では線形分離できるようなデータになっていることを期待します。逆の言い方をすれば、データに対して線形分離が可能なような多様体への写像を見つければいいのです。しかしこれは一般に非常に困難です。しかし幸いなことに識別関数はそのような写像の具体的構造は必要とせず、高次元空間上での内積だけが分かれば良いことが分かります。ですから、非線形識別をするSVMでは、そのような内積(カーネル関数)を出発点にして、うまいカーネル関数の設計が課題になります。さらに、分離超平面付近でマージンを考えていただけでなく、写像をする際に分離超平面付近を拡大するようにすれば、特にその部分についての分解能が高まることになります。そこで、そのような拡大がされたようなカーネル関数を考えることがSVMでの研究の対象であったりします。このようにSVM自体がなぜそのように動作しているのかというのは分かっています。 とにかく汎化誤差を少なくする工夫が研究対象であって、それに関して必ずしも物理モデルは必要ないということです。 重要なのは観測したデータに対して、本当に必要な情報がどれなのかということです。振り子の例で言えば、長さだけが重要でした。これは物理モデルがあるから分かることでした。それを未知のデータに対して上手く行いたいというのが特徴抽出という工程です。 物理モデルあるいは理論的に知らなければならないのはこちらの方でしょう。 一方でニューラルネットワークというのは、中間層を適当に設けておけば上記で考えていたうまい写像が得られるんじゃないかと考えているのです。そうして最終的には線形分離をする出力層を設けておけば上手く分けてくれるであろうと期待を込めます。パーセプトロンの学習でもいいですし、出力にだけSVMのような学習を行わせてもいいです。 更に進むと、ニューラルネットワークの中間層を適当に設けるのではなく、うまい写像を見つけるように学習をさせることを考えるようになりました。逆誤差伝搬法ですね。しかしこの変になってくると確かに、どういう意図で写像の決定がなされているのか、その心得は全く分かりません。とにかくその場その場で誤差を小さくするような重み付けに更新しているだけです。 しかし識別器である以上、これが良い精度を出すのならばそれでいいはずです。 確かに、なぜ良い精度を出せるのかというのは考えなければなりません。これは後述します。 物理的な考察は、如何なるデータを学習データとするかの特徴抽出で考えるべきです。 一方でボルツマンマシンがあります。これはニューラルネットワークで実現できます。 このボルツマンマシンではその学習の過程にちゃんと心得があります。 それは、金属が熱して冷ますと結晶構造を変えることを真似るというものです。 結晶構造が変わるということは、ある安定な結合を一旦離れて別の安定な結合を見つけるということです。ですから、エネルギー関数なる最小化したい目的関数を設定して、統計力学に基づいた粒子の振る舞いを最適化したいパラメータに真似させれば、安定な構造、つまり局所的な最適解を見つけるであろうと考えたのです。しかも、温度の設定と冷ます速度の設定を上手くやれば、大域的最適解にたどり着くことが見出されました。そのような温度の設定と速度の設定を理論的に見つけたのです。ただ、コンピュータでこのような動作をシミュレーションさせるには非常に時間がかかります。要するに熱運動をシミュレーションしているのですから当たり前です。実用には至りませんでした。 そこでボルツマンマシンのユニットの結合を制限したRBMが提案され、これを多層にすることで上手く学習が進んだというのがディープラーニングの発端です。 更にこれのすぐ後にオートエンコーダーが考案されます。 様々な実用的手法が考案されてきて、最終的に至った状態というのが「特徴抽出も行う識別器」です。 つまり、もはや物理的考察を行うような過程すらも学習の中に取り込んでしまったのです。 ディープラーニングでは、人間が手作業で行ってきたデータの選定自体を自身で行うようになってしまったわけですね。 これが学習機械に投げると上手く行くような研究ばかりに見える理由です。 ここで我々はついに「なぜ良い精度を出せるのか」を真剣に考えなければならなくなりました。 >>理論的な解析をしてインパクトのある研究をするのは難しいのでしょうか?情報工学・計測工学で理論研究が復権する日はくるでしょうか? 学習という工程がいかなるものなのか、それを理論的な立場から解明しようとする試みはあります。しかし非常に難しい。機械学習で良い精度を出すこと以上に、良い精度を出せるような学習機械の構造と学習のメカニズムを解明することは難しいです。しかしこれが分かれば、更に良い学習機械の設計ができる可能性もあります。 そういえば、生物などに関する研究では理論面からのアプローチは殆ど無いですよね。 実験を行い、その事実を積み重ね、そこからそれらを説明するうまい理屈を見つける。そういう風に発展してきました。要するに理論的になぜかというのは分からないことが多いのです。 麻酔だってなぜ効くのか理論的には分かりません。そういうよくわからない何かだらけです。 学習機械の振る舞いが、いよいよそういう領域の「何か」近づいてきたわけです。 そういうわけでディープラーニングは汎用人工知能(私達の脳もよくわからない何かですね)として期待されています。 ディープラーニングなどの学習機械の構造とダイナミクスを研究することは、学習というのがいかにして行われるかの研究をするということです。これの数理的側面を明らかにするのは非常に難しいでしょう。 そして何よりもすぐには役に立たない。それが分かってきたとしても、それが識別器の精度向上になるかは分からないのです。なぜなら、私達が理論的に知らなかっただけでもしかしたら、そのような技術はすでに機械学習で実現しているかもしれないからです。そうしたら、あくまで機械学習の既存の手法が如何なるダイナミクスを持っているかを知っただけになります。応用上あまり興味のないことかもしれません。しかしそういう基礎研究なしにして、応用研究の発展はないでしょう。どこかできっと行き詰まります。私はそう思っています。 信号処理や最適化、機械学習、脳神経回路などの振る舞いを、数学的な立場から研究するために考案された情報幾何学という日本発の数学があります。 はっきり言うと難しいです。私の手には負えない。(数学の人や理論物理の人ならどうなのだろう。よく分かりません) この数学を使って、学習について研究している人たちはいます。 しかし、それの研究成果をあなたが見た事無いように(あったらごめんなさい)、世間一般にはやはり強烈な成果はないのかもしれないです。きっと難しいのでしょう。