機械学習や深層学習を学ぶ上で、数学は言語である
以前、学びたい機械学習のレベルに応じて、どんな数学が必要になってくるのかを紹介しました(以下の記事)。
そのときにも述べましたが、数学というのは何らかの操作を非常に簡潔に表現してくれます。要するに情報をギュッと圧縮して伝える手段でもあるのです。
前回は「機械学習のレベル→必要な数学」という観点でしたが、今回は「数学の分野→機械学習での活躍」という形で紹介します。
線形代数学
行列とベクトルを使って計算を行う分野です。
元々は効率の良い連立方程式の解法を考えていた分野でしたが、これが非常に広い応用範囲を持つということで、数学の一大分野に成り上がりました。
行列とベクトルは連立方程式を解くための記法
連立方程式は行列表記にして、逆行列を求めることで解けるなんてのは、一番最初に習うことです。そのときの感想は、「普通に解いたほうが速いわ!」と言ったところでしょう。
大事なのは、いつでも同じ形で書けるということなのです。変数の数、式の数、色々違うかもしれませんが、いつも連立方程式はなどという形をしています。連立方程式の違いは、行列のランクやベクトルの次元に任せてしまいとりあえずいつでも同じ形で書いておけます。
しかも連立方程式が解けるのか解けないのか、そういう問題は、行列の性質を調べるだけでいいという素晴らしい性質も持ち合わせていました。
機械学習での活躍
表記が楽です。書けばわかります。多次元のデータを自然に扱うことができるのです。
線形代数が一大分野に成長できたのも、連立方程式を解けるからではなく、連立方程式を記述できるから、すなわち多次元を記述できるからです。機械学習を学ぶ上では言語と呼ぶに相応しい数学の分野になっています。
線形代数自体が発見した数学的成果が直接機械学習で大活躍しているというわけではないのですが、それでも必ず学んでおくべき分野でしょう。
伝統的な機械学習の手法には固有値問題が出てくることがある場合もあるので、この問題を解くのは線形代数の直接の成果と言えるでしょう。行列と線形変換の対応を理解できるのも大きなポイントです。
どこまで学ぶか
線形代数も学べば奥が深いですが、例えば教科書を開けば出てくるジョルダン標準系などまで理解する必要はないでしょう。範囲としては普通の固有値問題、固有値分解までできれば十分と言った感じです。
線形「代数」とは言っても、互換だとかベクトル空間の性質だとかを大真面目にやる必要はないかと思いますし、実情、行列とベクトルの計算をしっかり行えればいいでしょう。理解を深めるのは機械学習を学びながらでも良いはずです。
最適化数学
最適化数学は機械学習においては「学習」を行う際に用いられます。
学習とは
学習とは、突き詰めると何らかの評価関数を最大化あるいは最小化するということです。こういう問題を解く場合には大抵最適化数学の力を借りることになります。評価関数に正解が組み込まれていれば教師あり学習で、無ければ教師なし学習というわけです。
教師あり学習
入力データに対する正解データが手元にある場合に、
となるようなモデルを構築したいというのが教師あり学習です。
は普通の関数かもしれませんし確率分布関数かもしれませんが、教師あり学習では手元のデータは正解が分かっているという下で、モデルの出力がちゃんと正解に近づくように最適化を行います。
教師なし学習
入力データに対する正解の情報を知らないが、データ自身が何らかの違いを持っているはずであるという場合に使うのが教師なし学習です。
データをプロットしてみれば複数の塊に分かれているかもしれません。入力データの情報だけから、「データ点が近い物同士は似たデータであると考える」、「データ点が繋がっていれば同じ部類のデータ」などと評価基準を決めてやることで、最終的にはやはり最適化問題へと帰着されます。
最適化を行う際の重要ワード「正則化」
機械学習では最適化(学習)を行う際、その評価関数に正則化項なるものを入れます。評価関数をいじっているので、評価の方法に少し手を加えていることになります。
従って学習の精度を大きく変える役割を持っています。
2ノルム正則化や1ノルム正則化などは頻出なので、それぞれ何をしようとしているのか(どんな評価を加えているのか)を理解しておくといいでしょう。
以下の記事では正則化の効能を述べています(実は確率モデルでの最尤推定とMAP推定の違いは、この正則化と大きく関係があります)。
どこまで学ぶ必要があるか
学習の根幹を担う分野ですから、割としっかりやっておいて損はないでしょう。
特に線形計画法や二次計画法、勾配法は抑えておくべきです。
線形計画法と二次計画法は適用できれば必ず最適解が求まります。今から解こうとしている問題がココに落とし込めるというのであれば、そもそも機械学習をする必要はないはずです。それでもなぜか使ってみようとしてしまう回り道を避けるためにも存在は知っておきたいと言ったところでしょう。
勾配法はどんな問題にでも適用できる万能選手ですが、一般に最適解に行く保証はありません。しかし、機械学習ではこの勾配法を主に、色々な改良を加えて良い解を見つけようという試みが非常に多いです。
機械学習をやるという前提ならば、基本的に勾配法とその周辺の改良技術を知っていれば、結構通用するかもしれません。
確率・統計
確率は、すぐに想像がつくサイコロや、くじ引き、ギャンブルなどのイメージで結構でしょう。数学でいう確率論はルベーグ積分を基礎にした解析学の一分野と言えますが、そういうレベルは求められていません。
最低限知っておくべき定理や性質
加法定理
乗法定理
周辺化
ベイズの定理
独立性
これらは自由に取り扱えてほしいところです。中心極限定理とかマルコフ性とか、そういう話は必要に応じてで十分ですが、よく出てくるものではあるので抑えておきたいところです。
最低限知っておくべき推定法
最尤推定
最大事後確率推定(MAP推定)
こいつらだけです。統計をやると、検定方法も色々ありますが、機械学習で検定なんて表現見たことがありません。検定に相当するものは、機械学習では予測の精度で確認を取るというところでしょうか。唯一「交差検定」という表現がありますが、これは結局学習に用いなかったデータを予測してみるということを、色々な組み合わせで試すだけです。(「交差検証」とか「クロスバリデーション」という表現がされることが多いです。)
確率分布には見慣れるしかない
正規分布は頻出する分布ですが、これですら初めて見ると怖気づくかもしれません。
これは見慣れるしかありません。そういう分布を表現するためには、そういう数式にならざるを得なかったということで納得しましょう。慣れてしまえば、重要なのは平均と分散という2つのパラメータだけであると理解できます。
他の分布も、その分布の式に見慣れたら、あとは分布の形状を決定づけているパラメータが何なのかを確認しましょう。統計で推定したいと考えるのは、結局そのパラメータ達だけですから。
ちなみに推定の際にも最適化問題が現れます。そして確率的なモデルの場合は、この推定が学習に相当します。
何に役立つのか
機械学習では、入力データに応じて、その出力が確率的に生起するというモデルを考える場合があります。その場合のモデルは条件付き確率によって記述できます。
あとはそのモデルがどんな分布であると仮定するかを決め、その後その分布のパラメータを推定できたならば、あとは入力データに応じて得られる出力を確率的に知ることできます。
回帰の問題では期待値が、分類の問題では最も生起確率の高いクラスを用いる場合が多いでしょう。
情報理論
前回の記事では登場させていない分野です。
情報を記述するために現れた数学の応用分野です。
情報を確率で記述する
確率をやっていれば、実は情報理論はさほど難しくありません。
情報という観点に立ったときの評価の仕方を定めた結果、異様に式が複雑に見える場合がありますが、意味を理解すれば難しくはないはずです。
ワードとしては、「エントロピー」や「ダイバージェンス」特に「KLダイバージェンス」を知っていれば良いかと思います。情報理論を学ぼうとすると、他にも符号化への応用を見据えた通信路の話や、ハミング符号などの話題が出てきますが、機械学習ではあまり関係ありません。
あまり慣れ親しみのない分野ですが、以下のことがわかれば十分であると思います。
何に役立つのか
情報理論自体が確率を用いで記述された分野です。
従って機械学習に対して確率モデルを適用しようと思った場合に、情報理論の考え方が使える場合があるのです。KLダイバージェンスは確率分布がどれだけ似ているのかを評価することができます。これが学習の際の評価関数になり得るのです。
情報幾何学
ほとんど見ることはないでしょう。
機械学習そのものを研究をする場合にのみ必要となる数学です。ニューラルネットを使ってデータを分類しようという場合には必要ありませんが、ニューラルネットの学習の中身を解析しようと思った場合には必要になります。
発祥は日本
計算論的神経科学者、甘利俊一によって生み出された数学です。
機械学習での役割
学習自体を全て確率モデルで考えることになります。実際、多くの識別的なモデルも、確率モデルにすることができます。そして、その確率モデルの学習は、先に述べた通り分布のパラメータを推定することです。このパラメータをデータから推定する際には、逐次学習の方法が取られることが多いです(例えば確率的勾配降下法、ベイズ更新など)。その際、パラメータを座標に取った空間を考えれば、ある確率分布の形状はパラメータ空間での1点に相当します。学習に応じてその点位置が変化していくわけです。その振る舞いを考えることができれば、パラメータが結局どのように収束していくのかを議論できます。
それを可能にするのが情報幾何学というわけです。
海外での方が有名?
情報幾何学の英訳は「information geometry」です。
実はwikipediaには日本語版の情報幾何学のページはありませんが、英語版の方にはしっかりとページが存在しています。(Information geometry - Wikipedia)
数学に余裕がある方は学んでみてもいいかもしれません。