├── README.md ├── code.tex ├── machinelearning.pdf ├── 数学科向け機械学習入門(体験版).pdf └── 機械学習原論.pdf /README.md: -------------------------------------------------------------------------------- 1 | # machinelearning_text 2 | 現在執筆中の数学科向け機械学習テキスト 3 | 機械学習の測度論的再構築、並びに既存モデルの統一と新モデルの開発を目指す。3章からが本気。 4 | ある日飲み会で研究室の同期及び指導教官に「お前のtexコードはひどすぎる」と説教を受けて猛省し、書き直しに着手中。 5 | 6 | 円天アドレス(送金してくれると著者のやる気がアップします)   7 | YTePm8qX29kBPzr6vEEQz9k7ZtQHaHweWu 8 | 9 | 2018/02/22 ver3.02 10 | 11 | -------------------------------------------------------------------------------- /code.tex: -------------------------------------------------------------------------------- 1 | \documentclass[dvipdfmx, a4paper]{jsarticle} 2 | \usepackage{mathtools} 3 | \usepackage{graphicx} 4 | \usepackage{amsmath, amssymb} 5 | \usepackage{type1cm} 6 | \usepackage{bm} 7 | \usepackage{amsthm} 8 | \newtheorem{theo}{定理}[section] 9 | \newtheorem{defi}{定義}[section] 10 | \DeclareMathOperator*{\argmin}{argmin} 11 | 12 | 13 | \title{数学科向け機械学習入門(体験版)} 14 | \author{} 15 | 16 | \begin{document} 17 | \maketitle 18 | 19 | \section{はじめに} 20 | 世は空前の人工知能ブーム。猫も杓子もAIだディープラーニングだと、なんでも機械学習に任せてしまえばいいという考えが蔓延している。 21 | 22 | 機械学習エンジニアの待遇の良さや需要の高さを耳にする機会は多いことだろう。かつて数学徒の目指す職種としてありがちだったクオンツやアクチュアリーと違い、スーツを着ることを強要されるのが少ないという点も魅力的だ。そうなると「自分も機械学習を学んでAIエンジニアになり、ガッポガッポ大儲け。タワーマンションの上層階でたくさん女侍らして、高級ワインを飲むんじゃあ!」という思考になり、機械学習の本に手が伸びる数学徒も少なくないことかと思う。 23 | 24 | しかし、勉強をし始めた多くの数学徒は匙を投げてしまう。その理由の大半が「あまりに数学的に適当すぎて読んでいられない」というものだ。 25 | 26 | その気持ちはよくわかる。かく言う私もそうだった。世間には「一般向け」と称した、あまりにも粗雑な機械学習の入門書が溢れかえっており、数学的にまともな文献は少数派だ。もちろん一部存在はするが、とてもじゃないが初学者が読んで役立てることはあまりに難しい。 27 | 28 | 数学的に適当、とは具体的にどういうことなのか。これは大きく分けて3つあるように思う。 29 | 30 | \begin{enumerate} 31 | \item 確率測度と確率密度関数が区別されていない 32 | \item 確率変数であるものと確率変数でないものが区別されていない 33 | \item 目の前の関数がどこからどこへの写像かわからない 34 | \end{enumerate} 35 | 36 | ある程度わかってくるとなんとなく忖度して雰囲気で読んでいくことができるようになるが、厳密に読んでいく訓練を受けてきた機械学習初学者の数学徒にはなかなか酷な話だ。 37 | 38 | そのため、本書の前半ではなるべく数学科の解析学の授業で習う用語、流儀を用いて、機械学習の基礎を書くことを心掛けた。本書の内容を理解すれば、そう苦労せず一般向けの機械学習資料を読んでいくことができるはずだ。 39 | 40 |   41 | 42 | 前半部分の前提知識は数学科学部レベルの関数解析学、確率論、数理統計学とする。後半はその限りではない。 43 | 44 | 体験版追記:本書は体験版ということで、ページ数も限られるのもあり、具体的な手法についてあまり詳細な解説はできていない。特にベイズを用いた推定の具体的なやり方についてはほとんど解説できなかったと言っていい。興味のある人は自力で調べてみてほしい。本書を読みこなせた人なら難なく学べるはずだ。 45 | 46 | \newpage 47 | \section{機械学習入門} 48 | 49 | \subsection{問題設定} 50 | \subsubsection{大枠設定} 51 | まずおおもとの完備な確率空間$(\Omega,\mathcal{F},P)$を設定する。 52 | 53 | 特に表記がなければ、すべての可測空間のσ加法族はボレル集合族、線形空間に対応する体は実数体であるものとする。 54 | 55 | 線形距離空間$\mathcal{X}$を特徴量空間、線形距離空間$\mathcal{Y}$をラベル空間と呼び、それぞれの元$x,y$を「特徴量」「ラベル」と呼ぶ。 56 | 57 | ここで、データから何らかの「よい」写像$f:\mathcal{X}\to\mathcal{Y}$を構成するのが「機械学習」である。機械学習とは、関数近似の機構なのである。 58 | 59 | ここで、独立同分布な確率変数列$\mathcal{D}\coloneqq\{D_i(\omega)\}_{i=1}^n$を考える。各$D_i$は$D_i\colon\Omega\to\mathcal{X}\times\mathcal{Y}$となる可測関数である。この確率変数列$\mathcal{D}(=\{D_i\}_{i=1}^n)$を入力データと呼び、確率変数$D_i$の$\mathcal{X},\mathcal{Y}$への射影をそれぞれ$X_i,Y_i$と表記する。 60 | 61 | 増大情報系$\mathcal{F}_0\subset\mathcal{F}_1(\subset\mathcal{F})$を考える。$\mathcal{F}_0$はデータ観測前の保持情報、$\mathcal{F}_1$はデータ観測後の保持情報である。すなわち 62 | \begin{align} 63 | \mathcal{F}_1\coloneqq\mathcal{F}_0\vee\sigma([D_i]^n_{i=1}) 64 | \end{align} 65 | 66 | 67 | 連続写像$f\colon\mathcal{X}\to\mathcal{Y}$の満たす集合全体を$\mathcal{Z}$と表記する。モデルに対応した$\mathcal{Z}$の部分集合(詳細は後述)を$\mathcal{Z}_M$と書く。 68 | 69 | 連続汎関数$F\colon\mathcal{Z}\rightarrow\mathbb{R}$の集合を$\mathcal{Z}^*$と書く。$\mathcal{Z}^*$の位相は弱位相であるとし、$\mathcal{F}_1$-可測な確率変数$F^*\colon\Omega\rightarrow \mathcal{Z}^*$によって定義される評価関数$F_\mathcal{D}\coloneqq F^*(\omega)$に対して 70 | \begin{align} 71 | \hat{f}\coloneqq argmin_{f\in \mathcal{Z}_M}F_\mathcal{D}(f) 72 | \end{align} 73 | 74 | を満たす$\hat{f}\in \mathcal{Z}_M$を見つける。これが機械学習における大枠の問題設定である。 75 | 76 | \subsubsection{パラメータを通した$\hat{f}$の構成方法} 77 | パラメータを導入する。パラメータの集合となる2つの線形位相空間を$\Theta_0,\Theta$と表記する。写像$\theta^*:\Theta\to\mathcal{Z}$はあらかじめ一つ固定しておき、確率変数$\hat{\theta}_0(\omega)\colon\Omega\to\Theta_0,\hat{\theta}(\omega)\colon\Omega\to\Theta_1$を考える。実際に機械学習問題を解くにあたっては、この$\hat{\theta}$を構成することを通して関数$\hat{f}$を構成する。今後は、分かりやすくするために$\theta^*(\theta)$を$f(\cdot,\theta)$と表記する。 78 | 79 | 今後本書では、$\theta_0$をハイパーパラメータ、$\theta$をパラメータと呼び、単にパラメータといった場合は後者のみを指すものとする。ハイパーパラメータはパラメータの数や後述の事前分布の分散など、パラメータにまつわる数値を決定するものである。 80 | 81 | (ここで、聡明な読者は「$\mathcal{Z}_M=Im(\theta^*)$でいいのでは?」と思うかもしれない。しかし、これではベイズ的な機械学習おいて非常に困る事態が起こってしまう。$Im(\theta^*)\subset\mathcal{Z}_M$は常に成り立つが、逆は頻度論でしか成り立たない) 82 | 83 | $\hat{\theta}$の$\mathcal{F}_0$-条件付き確率、$\mathcal{F}_1$-条件付き確率をそれぞれ事前確率、事後確率と呼ぶ。またそれらの確率測度に$\Theta$上のルベーグ測度とのラドンニコディム導関数が存在すれば$p(\theta),p(\theta|\mathcal{D})$と書き、事前分布、事後分布と呼ぶ。 84 | 85 | \subsubsection{問題設定} 86 | ここでいよいよ統一的な問題設定を定義する。 87 | 88 | 特徴量空間$\mathcal{X}$、ラベル空間$\mathcal{Y}$、データ$\mathcal{D}$、評価関数$F_\mathcal{D}$、事前分布$p(\theta)$、事後分布$p(\theta|\mathcal{D})$、超事前分布$p(\theta_0) 89 | $、パラメータ$\hat{\theta}$の可測性、パラメータと$f$の関係$\theta^*(\theta)$をまとめて$(\mathcal{X},\mathcal{Y},\mathcal{D},F_\mathcal{D},p(\theta),p(\theta|\mathcal{D}),p(\theta_0),\hat{\theta}-mesurable,\theta^*(\theta))$と表記し、これを今後「機械学習問題」と呼ぶことにする。 90 | 91 | これができるだけ「よい」関数になるよう調整したい。このとき$\hat{f}$が実現できる範囲の集合こそが$\mathcal{Z}_M$であり、一般には「仮説集合」と呼ばれる。(ちなみに、$\hat{\theta}_0,\hat{\theta}$が共に$\mathcal{F}_1$-可測であれば、これは$Im(\theta^*)$と一致する) 92 | 93 | また、$\hat{\theta}_0$が$\mathcal{F}_0$-可測で$\hat{\theta}$が$\mathcal{F}_1$-可測である場合を頻度論的機械学習問題と呼び、$\hat{\theta}_0$が$\mathcal{F}_0$-可測だが$\hat{\theta}$が$\mathcal{F}_1$-可測でない場合をベイズ論的機械学習問題と呼ぶ。ベイズ論の解説は次章にて。 94 | 95 | また、$\hat{\theta}_0,\hat{\theta}$が共に$\mathcal{F}_1$-可測でない場合を階層ベイズ論的機械学習問題と呼ぶが、本書では扱わない。つまり$\hat{\theta_0}$はすべてデータ観測前の段階であらかじめ決まっている定数であるものとする。 96 | 97 | 98 | \subsection{代表的なモデル} 99 | いよいよここから機械学習における代表的なモデルについて説明する。ここまでの問題設定が難解だった分、ここからはかなりあっさり進んでいくことができる。 100 | 101 | 解説するモデルは大きく分けて3つ、「線形回帰」「カーネル回帰」「ニューラルネットワーク」である。カーネル回帰とニューラルネットワークは後の章で詳細な数学的研究について解説するため、この章では触りだけで済ませる。 102 | 103 | このいずれに対してもある関数を決め、最終的に構成される関数はそれとパラメータの積の和とするのが普通である。 104 | 105 | \begin{align} 106 | 線形回帰(基底関数) \{\phi_i:\mathcal{X}\to\mathcal{Y}\}^n_{i=1}(Nはハイパーパラメータとして定める)\\ 107 | カーネル回帰(カーネル関数) k:\mathcal{X}^2\to\mathcal{Y}\\ 108 | ニューラルネットワーク(活性化関数) \eta:\mathbb{R}\to\mathbb{C} 109 | \end{align} 110 | 111 | \subsubsection{線形回帰} 112 | 最も基本的なモデルである。 113 | 114 | 写像$\theta^*:\Theta\to\mathcal{Z}$は次のように定義する。 115 | \begin{align} 116 | \theta^*(\theta)(x)\coloneqq \Sigma^d_{j=1}\Sigma^N_{k=1} \theta_{kj}\phi_k(x_j) 117 | \end{align} 118 | 119 | ただし、$\theta_{kj}$は、行列$\theta\in\mathbb{R}^{N\times d}$の$kj$成分である。 120 | 121 | そして、入力データ$\mathcal{D}$に対して、評価関数$F_\mathcal{D}\colon \mathcal{Z}\to\mathbb{R}$は次のように定義する。 122 | \begin{align} 123 | F_\mathcal{D}(f)\coloneqq \frac{1}{2}\Sigma^n_{i=1}||Y_i-f(X_i)||_\mathcal{Y}^2 124 | \end{align} 125 | 126 | これを最小化するような行列$\theta\in\mathbb{R}^{N\times d}$を求めればよい。ただし、$||\cdot||_\mathcal{Y}$は$\mathcal{Y}$上の距離である。 127 | 128 | 129 | ところで、聡明な読者はこう疑問に思ったかもしれない。「Nを際限なく大きくとれば、どんなデータに対しても完璧に近似できるのでは?」と 130 | 131 | その予測は正しい。確かに$n_\mathcal{H}=f(x) 306 | \end{align} 307 | 308 | 厳密にいえば、対称非負定置関数に対して、それを核とする再生核ヒルベルト空間が一意に存在する。 309 | \end{defi} 310 | 311 | \subsection{カーネル表現定理} 312 | 上記の設定を踏襲したうえで、$f\in\mathcal{H},b\in\mathcal{Y}$と置く。前々章の問題設定でいうと$\mathcal{Z}_M=\mathcal{H}+\mathcal{Y}$と書ける。ここで損失関数は一般には次のように表記できる。 313 | \begin{align} 314 | F_\mathcal{D}(f+b):=L(f+b;\mathcal{D})+\Psi(||f||_\mathcal{H}) 315 | \end{align} 316 | 317 | ただし、$L:\mathcal{Z}_M\to\mathbb{R},\Psi:\mathbb{R}\to\mathbb{R}$であり、$\Psi$は単調非減少関数である。このとき、次の定理が成り立つ。 318 | \begin{theo}カーネル表現定理 319 | 320 | $f+b\in\mathcal{Z}_M$とする。このとき、$F_\mathcal{D}$を最小化するような$\hat{f}\in\mathcal{H},\hat{b}\in\mathcal{Y}$が存在すれば、そのような$f\in\mathcal{H}$の中に 321 | \begin{align} 322 | f(x)=\Sigma^n_{i=1}\hat{a}_ik(x,X_i) 323 | \end{align} 324 | 325 | と表記できるものが存在する。 326 | 327 | ただし、$\{\hat{a}_i\}^n_{i=1}\in\Theta$である。 328 | \end{theo} 329 | 330 | 331 | 332 | \newpage 333 | \section{ニューラルネットワークの積分表現理論} 334 | この章では、「中間層のノード数が無限大であれば学習結果を解析的に決定できる」という理論に基づく、ニューラルネットのアルゴリズムについて簡単に解説する。 335 | 336 | 中間層のノード数が無限大だった場合、ニューラルネットの計算はある関数$T(a,b)$を用いて次のように書ける。 337 | \begin{align} 338 | f(x)=\int_{\mathbb{Y}^{d+1}}T(a,b)\eta(a\cdot x-b)dadb 339 | \end{align} 340 | 341 | 近似したい関数$f:\mathbb{R}^d\to\mathbb{C}$に対して、リッジレット関数$\psi$と活性化関数$\eta$が適当な条件を満たす場合、リッジレット作用素と呼ばれる線形作用素$\mathcal{R}_\psi$を用いて 342 | \begin{align} 343 | f(x)=\int_{\mathbb{Y}^{d+1}}(\mathcal{R}_\psi f)(a,b)\eta(a\cdot x-b)dadb 344 | \end{align} 345 | 346 | が$\mathcal{X}$上ほとんどいたるところで成り立つ。つまりこのリッジレット作用素によって、学習結果であるはずの$T(a,b)$を解析的に計算できてしまう。 347 | 348 | もちろん実際には有限のノードしか使えないので近似が必要だが、この理論を用いて初期値を決定すると、精度、速度ともに向上がみられる。 349 | 350 | \subsection{活性化関数が有界な場合} 351 | まずは$\eta\in L^\infty(\mathbb{R}\to\mathbb{C})$が成り立つ場合について解説する。 352 | 353 | \begin{defi}リッジレット変換 354 | 355 | $f\in L^1(\mathbb{R}^d\to\mathbb{C})$のリッジレット関数$\psi\in L^\infty(\mathbb{R}\rightarrow\mathbb{C})$によるリッジレット変換は、次のように定義される。 356 | \begin{align} 357 | (\mathcal{R}_\psi f)(a,b):=\int_{\mathbb{R}^{d}}f(\bm{x})\overline{\psi(a\cdot\bm{x}-b)}|a|^sd\bm{x} 358 | \end{align} 359 | ただし、$s$は非負実数。0か1を使うことが多い。 360 | \end{defi} 361 | 362 | このリッジレット作用素の双対作用素はこのようになる。 363 | 364 | \begin{defi}双対リッジレット変換 365 | 関数$T\in L^1(\mathbb{{Y}^{d+1}}\rightarrow\mathbb{C};|a|^{-s}dadb)$の、活性化関数$\eta\in L^\infty(\mathbb{R}\rightarrow\mathbb{C})$による双対リッジレット変換は 366 | \begin{align} 367 | (\mathcal{R}^*_\psi T)(x):=\int_\mathbb{Y}^{d+1}T(a,b)\eta(a\cdot x-b)|a|^{-s}dadb 368 | \end{align} 369 | となる。 370 | \end{defi} 371 | 372 | このリッジレット関数と活性化関数に対して、次の許容条件を定義する。 373 | 374 | \begin{defi}許容条件 375 | 関数$f$に対して、$\hat{f}$で$f$のフーリエ変換を表すとする。 376 | 377 | 次の積分$K_{\eta,\psi}$が収束し、かつ0でないとき、この活性化関数とリッジレット関数の組$(\eta,\psi)$は許容的であるという。 378 | \begin{align} 379 | K_{\eta,\psi}:=(2\pi)^{d-1}\int_\mathbb{R}\frac{\overline{\hat{\psi}(\xi)}\hat{\eta}(\xi)}{|\xi|^d}d\xi 380 | \end{align} 381 | \end{defi} 382 | 383 | そして、次の式がニューラルネットによる近似可能性の一つの答えを出す定理である。 384 | 385 | \begin{theo}再構成公式 386 | $f,\hat{f}\in L^1(\mathbb{R}^d\rightarrow\mathbb{C})$で、$(\eta,\psi)$は許容的な組み合わせであるとする。 387 | \begin{align} 388 | \mathcal{R}^*_\eta\mathcal{R}_\psi f(x)=K_{\eta,\psi}f(x) 389 | \end{align} 390 | 391 | が、$\mathcal{X}$上a.eで成り立つ。 392 | \end{theo} 393 | 394 | \subsection{活性化関数が有界でない場合} 395 | 機械学習に取り組んだことのある方は疑問に思ったことだろう。「じゃあ$\eta$がReluやSwishのような、どう見ても$L^\infty$じゃない場合はどうするのか」と。 396 | 397 | 実際既存の積分表現理論は、活性化関数の有界性に甘えていた。しかし、Reluが有用である理由の一つに「勾配が消失しない」というものがあり、これは非有界性と切り離すことができない。2015年に出た論文である[10]によって、ようやく非有界な活性化関数の一部に対しても積分表現理論を行えるようになった。([10]を読めば、非有界な活性化関数を持つニューラルネットを数学的に扱うことがいかに大変で、論文著者が苦労したかよくわかる) 398 | 399 | 活性化関数のクラスを拡張した代償は、リッジレット関数の範囲である。活性化関数を$L^\infty$から$\mathcal{S}^`$に広げた代わりに、リッジレット関数がとれる範囲は$L^\infty$から$\mathcal{S}$まで縮小している。 400 | 401 | それに加え、一定の条件を満たせばリッジレット変換は$L^2$に一意的に拡張でき、$L^2$関数に対する再構成公式も定義できる。 402 | 403 | この関数解析的な議論を活かしたアルゴリズムについては[5]を参照。 404 | 405 | 406 | \newpage 407 | \section{数学×機械学習} 408 | この章では、ある程度機械学習の経験があり、数学知識も豊富な人向けに、機械学習の数値計算への応用や、逆に数値計算の技法を機械学習に応用する方法について解説する。 409 | 410 | \subsection{ニューラルネットワークの数値解析への応用} 411 | ここでは、PDEs(放物型偏微分方程式)の境界値問題への数値計算に応用する手法について解説する。 412 | 413 | PDEの数値解析理論は、現状空間が4次元以上だと誤差がひどいことになってしまう。株式の銘柄の数だけ次元が増えるファイナンスなど、SDEやPDEの応用分野ではこれが大いに問題になることも多い。 414 | 415 | 今回扱う半線形放物型PDEの境界値問題は次のような形をしている。 416 | \begin{align} 417 | \frac{\partial u}{\partial t}(t,x)+\frac{1}{2}(\Delta_xu)(t,x)+f(u(t,x),(\nabla_xu)(t,x))=0\\ 418 | u(T,x)=g(x) 419 | \end{align} 420 | 421 | 422 | ただし、$x$の取りうる空間は$\mathbb{R}^d$,$f:\mathbb{R}\times\mathbb{R}^d\rightarrow \mathbb{R},g:\mathbb{R}^d\rightarrow\mathbb{R}$は既知の連続関数であるとし、$u:[0,T]\times\mathbb{R}^d\rightarrow \mathbb{R}$は$C^{1,2}$級とする。 423 | 424 | \begin{theo}非線形ファインマンカッツの公式 425 | 426 | $W$を$d$次元標準ブラウン運動。確率空間をそこから生成されるものとし、$Y,Z$は適合過程で、$f,g$は先ほどと同じで、$\xi\in\mathbb{R}^d$とする。 427 | 428 | \begin{align} 429 | Y_t=g(t,\xi+W_T)+\int^T_tf(Y_s,Z_s)ds-\int^T_t 430 | \end{align} 431 | 432 | は、上記の半線形熱方程式終端値問題の解$u$に対して次を満たす 433 | 434 | \begin{align} 435 | Y_t=u(t,X_t),Z_t=\nabla_xu(t,X_t) 436 | \end{align} 437 | ただし、$X_t:=\xi+W_t$ 438 | \end{theo} 439 | 440 | このブラウン運動は、学習の反復1回ごとにオイラー丸山法で実装する。 441 | 今回、このニューラルネットワークを用いた強化学習で学習させる対象は、写像$Z_t=F_t(X_t)$。 442 | 通常の強化学習での評価関数にあたるものは$Y_t=Q(t,Z_t)$と定義される。 443 | 444 | そしてこの評価関数は、終端時刻$T$にて、 445 | \begin{align} 446 | \psi(\theta)=||Y_T-g(X_T)||^2 447 | \end{align} 448 | で評価され、通常の強化学習と同じく更新されていく。 449 | 450 | つまり、時刻がN分割の場合、「毎回N回の行動をとった後に一度だけ報酬が与えられる状況での強化学習」と見なして、$X_t$に対する最適戦略$Z_t$と$Y_t$を導き出して、それを偏微分方程式の数値解析結果にするという考えである。 451 | 452 | 通常のQ-学習と違い、状態$X_{t_n}$と方策$Z_{t_n}$と前時刻での評価$Y_{t_{n-1}}$から一意的にこの式で$Y_{t_n}$が定まるため、その意味では楽だといえる。 453 | 454 | \begin{align} 455 | Y_{t_{n+1}}\approx Y_{t_n}-f(Y_{t_n},(\nabla_xu)(t_n,\xi+W_{t_n}))(t_{n-2}-t_{n-1})+<(\nabla_xu)(t_n,\xi+W_{t_n}),W_{t_2}-W_{t_1}> 456 | \end{align} 457 | ニューラルネットは各時刻で用意する。つまりこれはRNNではなく、単純に$N$個のニューラルネットが存在するのみである。時刻が違う中間層同士のつながりはない。 458 | 459 | 損失関数$\psi(\theta)$で計算された結果から、新たなパラメータを決定する。すなわち、学習$m$回目のパラメータを$\Theta_m$とおくと 460 | \begin{align} 461 | \Theta_{m+1}:=\Theta_{m}-\nabla_\theta\psi(\Theta_m) 462 | \end{align} 463 | 464 | これは要するに確率的勾配法による学習で、ニューラルネットワークに偏微分方程式の正しい関数を近似させようとする取り組みだ。 465 | 466 | ただし、普通の確率的勾配法はデータの集合$\mathcal{D}$上の一様測度の元で行われていたが、今回は$C([0,T])$上のWiener測度の下で確率的勾配法を行っているのである。 467 | 468 | 「ならばAdam法などをこの手法に適用してはどうか」「ということは確率過程になるので、抽象Wiener空間上の解析を離散化したものと捉えて収束証明ができるのではないか」「カメロン-マルティン部分空間が絡んでくるのではないか」という当然の疑問が浮かんでくる読者もいるだろうが、それは今後の課題である。 469 | 470 | \subsection{数値解析の深層学習への応用} 471 | 472 | \subsubsection{深層学習とは} 473 | これまでの章で扱ったニューラルネットワークは、入力層と隠れ層と出力層が1つずつであったが、ここからは隠れ層が2つ以上のもの、つまり$N$層パーセプトロン$(N>3)$を扱っていく。 474 | 475 | 近年、結果をあげている深層学習アルゴリズムの層数は圧倒的に深くなっている。数年前は結果を出しているのはせいぜい8層、22層程度だったが、2015年に某大会で152層のニューラルネットワークが成果を上げたのを皮切りに、現在では1000層を超えるネットワークも使われている。 476 | 477 | \subsubsection{残差学習とは} 478 | なぜそのような超深層学習が可能になったのか、そのカギを握るのは。残差学習という概念だ。 479 | 480 | これまでの章を読んでもらえばわかる通り、通常のニューラルネットワークは入力$x$に対して、学習させたい写像$H(x)$を直接学習させる。 481 | 482 | しかしこの手法は3~6層程度のパーセプトロンなら有効だが、層の数が劇的に増えてくると意味をなさなくなってくる(勾配消失・発散)。それを突破するためにいろいろな方法が考えられたが、どれも中間層の数が数百、数千層単位になる超深層学習には対応できなかった。 483 | 484 | そこで登場するのが残差学習である。学習させる対象は、$H(x)$ではなく、残差$F(x):=H(x)-x$、これを学習させ、そこに$x$を加えた値を次の層の入力とする。 485 | 486 | ここで、この残差関数$F$の、$n$番目の層での値を$F(t_n,\cdot)$と表記する。また、$n$番目の層の入力を$x_{t_n}$と表記する。 487 | 488 | すると、この残差学習はこう書ける。 489 | \begin{align} 490 | x_{t_{n+1}}=x_{t_n}+F(t_n,x_{t_n}) 491 | \end{align} 492 | 493 | これまで数学を学んできた読者ならすでにお気づきだろう。これは常微分方程式のオイラー近似に他ならない。 494 | 495 | すなわち、残差学習による超深層ニューラルネットで行われていることは、常微分方程式の離散近似なのである。 496 | 497 | 近年の主な超深層学習と常微分方程式数値計算の関係を簡単にまとめると 498 | \begin{align} 499 | ResNet &-& 前進オイラー法\\ 500 | RevNet &-& 後退オイラー法\\ 501 | PolyNet &-& 前進オイラー法(連立常微分方程式)\\ 502 | FractalNet &-& 2次ルンゲクッタ法 503 | \end{align}  504 | さらに[5]の著者は、別の常微分方程式の数値計算技法を使うことで、さらなる計算の高速化及び精度の向上を可能にした。 505 | 506 | \subsubsection{確率的超深層学習と確率微分方程式} 507 | ここまで書かれたのは、決定論的な超深層学習である。ここにノイズ付加やドロップアウトなどの確率要素を加えると、必然これらの議論は確率微分方程式の話に突入する。 508 | 509 | shake-shake-model 510 | 511 | しゃけしゃけモデルとは、その「シェイクシェイク」と2度も言うことからわかる通り、まさに計算結果をシェイクするモデルである。 512 | 513 | $\gamma_n$を(0,1)上の一様分布に従う確率変数とする。これはブロックごとステップごとに新たに生成される乱数である。そして$n$ブロック目の入力を$X_n$と置くと 514 | 515 | \begin{align} 516 | X_{n+1}=X_n+\gamma_n f_1(X_n)+(1-\gamma_n)f_2(X_n) 517 | \end{align} 518 | 519 | これは、確率微分方程式の離散近似と見做せ、[7]の著者は別のSDE数値解析技術を用いて精度の向上を行った。 520 | 521 | \subsection{確率的勾配法と確率微分方程式} 522 | 最近、機械学習界隈(の極一部)で盛り上がっている考察である。 523 | 524 | 近年は、ミニバッチ学習のことを確率的勾配法と呼ぶことが多く、この場でもそれに倣う。 525 | 526 | 通常のバッチ学習において、勾配はこのように決定される。 527 | \begin{align} 528 | \frac{dC}{d\omega}:=\Sigma_{i=1}^n \frac{dC_i}{d\omega} 529 | \end{align} 530 | 531 | ただし、$C_i$は、データ$D_i$に対する損失である。 532 | 533 | 確率的勾配法においては、勾配はこう書ける。 534 | 535 | \begin{align} 536 | \frac{d\hat{C}}{d\omega}:=\frac{n}{B}\Sigma_{j=1}^B \frac{dC_{i_j}}{d\omega} 537 | \end{align} 538 | 539 | 確率的勾配法における1ステップごとのパラメータ変化は 540 | 541 | \begin{align} 542 | \Delta\omega=\frac{\epsilon}{n}(\frac{dC}{d\omega}+(\frac{d\hat{C}}{d\omega}-\frac{dC}{d\omega})) 543 | \end{align} 544 | 545 | と書ける。ここで$\frac{dC}{d\omega}$は、$\mathcal{F}_t$-可測だが、$\alpha := (\frac{d\hat{C}}{d\omega}-\frac{dC}{d\omega})$はステップごとに独立な確率変数である。$E[\alpha]=0,E[\alpha^2]=n(\frac{n}{B}-1)F(\omega)$($F(\omega)$は$\omega$毎に定まる定数)であり、$\alpha$は$\mathcal{F}_{t+1}$-可測であるため、伊藤の表現定理より、ある確率1で$[t,t+1]$上$L^2$である適合過程$f(s)$が存在し 546 | \begin{align} 547 | \alpha = \int^{t+1}_t f(s)dB_s 548 | \end{align} 549 | 550 | と表記することができる。$\alpha$の分散と伊藤積分の等長性より、$f(s)=\sqrt{n(\frac{n}{B}-1)F(\omega)}$が成り立ち、それによって(45)式は 551 | \begin{align} 552 | d\omega=\frac{\epsilon}{n}\frac{dC}{d\omega}dt+\frac{\epsilon}{n}f(t)dB_t 553 | \end{align} 554 | 555 | という確率微分方程式の離散化だと見做すことができる。 556 | 557 | だから何だと思うかもしれない。同感だ。実際、確率的勾配法を確率微分方程式と見做すことによる明確な御利益は現時点ではない。([11]ではこれによって最適なミニバッチサイズがバッチサイズに比例することを導き出したと主張しているが、それは$\alpha$の平均分散を求めれば十分であり、わざわざSDEの議論に持ち込む意味はない。おそらく論文著者が確率微分方程式を使ってみたかっただけである) 558 | 559 | 応用数学には予言性が必要だ。つまり、「数学的なこんな概念で記述できた」だけでは意味はなく、その応用先の学問を発展させて初めて価値を持つ。カタストロフィー理論はそれができずに廃れた。 560 | 561 | 例えば、積分表現理論はそれによってアルゴリズムの改善につながり、またニューラルネットによる近似可能性を証明したから価値がある。カーネルトリックの研究も、それによってカーネル法がうまくいく理由を証明できたことによって存在価値が保証された。6-2で解説した残差学習を微分方程式の離散化と捉えた研究も、このことにより超深層学習の設計に対して新たな一石を投じたから意味があるのだ。 562 | 563 | そのため、このSGDをSDEと捉える考え方にも、現時点ではほぼ価値がない。だが、この考察がなんの意味もない無駄なものだったかというと、私はそうは思わない。この先、確率解析学の言葉を用いた議論による発展で、新たなアルゴリズムが開発されたり、「経験的にうまくいっている」だけだったアルゴリズムに収束性の証明が成されたりするかもしれないのだ。 564 | 565 | 私はここからマリアヴァン解析の議論に持ち込み、渡辺-吉田理論を用いて漸近的な性質を示したりできるのではないか、などと考えているが、それは今後の課題である。 566 | 567 | 568 | \newpage 569 | \section{あとがき} 570 | 如何だっただろうか。正直、(原稿締め切りとページ数制限と就活の狭間で慌てふためいたせいで)まだまだ解説しきれていない部分はたくさんある。特に、解説できたのがマルチタスクでない回帰問題のみというのが痛い。これからも加筆修正してgithubに上げていくが、お前の遅い筆を待つ気はない!という方はぜひとも参考文献リストの書籍や、その他書籍やQiita記事などを読んでいってほしい。 571 | 572 | ここまで読んでくれた方なら、一体機械学習とは何をやっているのか、機械学習の背後にはどれだけ数学的な議論が隠れているのか、その一端を知ることができているはずだ。 573 | 574 | 本書の内容を理解した方であれば、きっと一般向けの機械学習書籍を読んでいくこともできるようになっているかと思う。是非とも、機械学習の勉強を進め、積極的に実践経験を積んでいってほしい。この手の分野は自分で手を動かしてナンボだ。本書はそこに辿り着くまでの手助けをしているに過ぎない。 575 | 576 | では、読者の数学徒諸君と、機械学習の議論ができる日を楽しみにしながら、いったん筆を置くことにする。本書は常に修正・加筆に取り組んでいるため、意見等があったら気軽にメッセージを送ってほしい。面白い機械学習の数学的研究の資料の紹介なども大歓迎だ。 577 | 578 | 579 | 580 | 581 | \begin{thebibliography}{99} 582 | \bibitem{キー} 確率論(実教理工学全書),西尾真紀子(1978) 583 | \bibitem{キー} Machine Learning: A Probabilistic Perspective (Adaptive Computation and Machine Learning series),Kevin.P.Murphy (2012) 584 | \bibitem{キー} ルベーグ積分入門-使うための基礎と応用-,吉田伸生(2006) 585 | \bibitem{キー} 関数解析,黒田成俊(1980) 586 | \bibitem{キー} 深層ニューラルネットの積分表現理論,園田翔(2017) 587 | \bibitem{キー} Deep learning-based numerical methods forhigh-dimensional parabolic partial differential equationsand backward stochastic differential equations,Weinan E,Jiequn Han,Arnulf Jentzen(2017) 588 | \bibitem{キー} BEYOND FINITE LAYER NEURALNETWORKS:BRIDGING DEEP ARCHITECTURES AND NUMERICAL DIFFERENTIAL EQUATIONS,Yiping Lu,Aoxiao Zhong,Quanzheng Li(2017) 589 | \bibitem{キー} カーネル法の新展開ーその理論と応用ー,福水健次(2012) 590 | \bibitem{キー} 統計的学習理論,金森敬文(2015) 591 | \bibitem{キー} Neural Network with Unbounded Activation Functions is 592 | Universal Approximator,Sho Sonoda,Noboru Murata1(2015) 593 | \bibitem{キー} A BAYESIAN PERSPECTIVE ON GENERALIZATION AND 594 | STOCHASTIC GRADIENT DESCENT,Samuel.L.Smith,Quoc.V.L(2017) 595 | \bibitem{キー} Non-Convex Learning via Stochastic Gradient Langevin 596 | Dynamics: A Nonasymptotic Analysis,Maxim Raginsky,Alexander Rakhlin,Matus Telgarsky(2017) 597 | \bibitem{キー} 数理統計学,吉田朋友(2006) 598 | \end{thebibliography} 599 | 600 | 601 | 602 | 603 | 604 | \end{document} 605 | -------------------------------------------------------------------------------- /machinelearning.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Runnrairu/machinelearning_text/505f6a8d66e77d22117f04cb837ab21376ca49c7/machinelearning.pdf -------------------------------------------------------------------------------- /数学科向け機械学習入門(体験版).pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Runnrairu/machinelearning_text/505f6a8d66e77d22117f04cb837ab21376ca49c7/数学科向け機械学習入門(体験版).pdf -------------------------------------------------------------------------------- /機械学習原論.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Runnrairu/machinelearning_text/505f6a8d66e77d22117f04cb837ab21376ca49c7/機械学習原論.pdf --------------------------------------------------------------------------------