MML
  • 数学プログラミング置き場
  • 数学記号記法一覧
  • 機械学習のための数学
    • 確率論
  • 機械学習・データサイエンス
    • 1. 機械学習・データサイエンス(概要)
    • 2. 機械学習
      • 2.1. 機械学習をこれから始める人へ
      • 2.2. 回帰問題
        • 2.2.1. 線形回帰の基礎
        • 2.2.2. 線形回帰モデルと正則化
        • 2.2.3. 線形基底関数モデル
          • いろいろな基底関数
        • 2.2.4. ベイズ線形回帰モデル
        • 2.2.5. カーネル回帰
        • 2.2.6. ガウス過程回帰
        • 2.2.7. 一般化線形モデル
        • 2.2.8. 一般化加法モデル
        • 2.2.9. 分位点回帰
        • 2.2.10. 3層ニューラルネットワーク
        • 2.2.11. 深層学習
        • 2.2.12. 深層学習とガウス過程
      • 分類問題
        • 線形判別分析
        • SVM
        • カーネルSVM
      • 強化学習
    • 3. データサイエンス
      • 主成分分析
      • 白色化
      • 低ランク行列近似
      • 行列補完
      • NMF
      • スパースモデリング
        • LASSO
          • FISTA
          • ADMM
        • 全状態探索法
    • 4. ニューラルネットワーク
      • CNN
      • GAN
      • VAE
      • GNN
      • word2vec
    • 5. ベイズ推論
      • 確率
      • 確率分布
      • ちょっとだけ振り返って
      • MCMC
      • ギブスサンプリング
      • 変分推論
  • 連続最適化
    • 1. Taylor展開と関数近似
    • 2. Taylorの定理と誤差の評価
    • 3. 最適化問題
    • 4. 直線探索法
      • 4.1. 最急降下法
      • 4.2. Armijo条件・Wolfe条件
      • 4.3. ニュートン法
      • 4.4. 共役勾配法
        • 4.4.1. 原始的な共役勾配法
        • 4.4.2. PRP法
        • 4.4.3. HS法
      • 4.5. 準ニュートン法
        • 4.5.1. DFP法
        • 4.5.2. BFGS法
        • 4.5.3. L-BFGS法
        • 4.5.4. Bryoden family of methods
        • 4.5.5. Broyden法
    • 5. 確率的最適化
      • 5.1. 確率的勾配降下法(SGD)
      • 5.2. 確率的準ニュートン法(SQN)
  • 行列計算
    • QR分解
    • コレスキー分解
    • 一般化コレスキー分解
    • 固有値分解
    • 一般化固有値問題
    • 特異値分解
  • その他
    • 位相限定相関法
  • カーネル法
    • カーネル法(概要)
  • Riemannian最適化
    • Riemann多様体って?
    • Riemannian最適化(概要)
    • 概説
    • 詳説
      • 解析学
      • 線形代数学(反変性・共変性・不変量)
      • テンソル解析
      • リーマン積分と微分形式
      • 位相空間論
      • 多様体論(解析幾何学)
      • Riemann多様体
  • プログラミングサイドブック
    • はじめに
    • Step 0. 勉強の仕方
      • いつ始める?どれくらい勉強する?
      • どうやって勉強する?
      • どこから手をつけたらいい?
    • Step 1. インターネットで調べる
    • Step 2. コンピュータの仕組みを学ぶ
    • Step 3. 開発環境を整える
    • Step 4. プログラミング言語を学ぶ
    • Step 5. 次のステップへ進むには
    • Step 6. 情報科学を学ぶ
  • プログラミング
    • プログラミング(概要)
    • システムの構成
    • サーバーのセットアップ
      • OSセットアップ
        • ユーザの作成
        • SSHの設定
        • ファイアウォールの設定
      • ドメインの取得と設定(Google domain)
    • Dockerによる仮想化
    • サーバーサイド(golang/gin)
    • リバースプロキシの設置(nginx)
    • SSL/TLS(Let's Encrypt)
    • フロントエンド(Elm)
    • Authentication(Firebase)
    • DB(MySQL)
    • KVS(Redis)
  • 数学勉強ノート
    • 0. 数学勉強ノート(概要)
    • 1. 第1群(基礎1)
      • 1.1. 集合
      • 1.2. ファジィ集合
      • 1.3. 論理学
      • 1.4. 位相
      • 1.5. 代数学
        • 1.5.1. 群
        • 1.5.2. 環
        • 1.5.3. 体
      • 1.6. 多様体論
    • 2. 第2群(基礎2)
      • 2.1. 線形代数学
      • 2.2. 解析学
        • 2.2.1. 常微分
        • 2.2.2. 全微分/偏微分
        • 2.2.3. 反変・共変と不変量
        • 2.2.4. リーマン積分
        • 2.2.5. 外微分
        • 2.2.6. ベクトル解析
      • 2.3. 複素解析学
      • 2.4. 圏論
      • 2.5. 測度論
      • 2.6. 確率論
    • 3. 第3群(情報科学)
      • 3.1. 情報理論
      • 3.2. 通信符号理論
      • 3.3. 暗号理論
      • 3.4. グラフ理論
    • 4. 第4群(基礎3)
      • 4.1. 位相幾何学
      • 4.2. 微分幾何学
      • 4.3. 関数解析学
      • 4.4. 偏微分方程式論
      • 4.5. 数値解析学
        • 4.5.1. 常微分方程式
        • 4.5.2. 偏微分方程式
        • 4.5.3. 固有値問題/特異値分解
      • 4.6. 数理統計学
    • 5. 第5群(物理学)
      • 5.1. 古典力学
      • 5.2. 剛体力学
      • 5.3. 流体力学
      • 5.4. 解析力学
      • 5.5. 電磁気学
      • 5.6. 相対性理論
      • 5.7. 熱力学
      • 5.8. 統計力学
      • 5.9. 量子力学
    • 6. 第6群(電気・機械工学)
      • 6.1. 電気回路学
      • 6.2. システム制御理論
    • 7. 第7群(基礎4)
      • 7.1. 情報幾何学
      • 7.2. 確率解析
  • 書籍メモ
    • 書籍メモ(概要)
  • 論文メモ
    • 論文メモ(概要)
    • 線形代数
      • The Matrix Cookbook
      • ON THE EARLY HISTORY OF THE SINGULAR VALUE DECOMPOSITION
      • The tensor rank decomposition
    • 行列分解
      • Probabilistic Matrix Factorization
      • Probabilistic Matrix Factorization with Non-random Missing Data
      • Graph Regularized Non-negative Matrix Factorization for Data Representation
      • Alternating least squares for personalized ranking
    • 連続最適化
      • Quasi-Newton Methods: Superlinear Convergence Without Line Searches for Self-Concordant Functions
    • 確率・統計
      • Statistical inference of Langevin distributionfor directional data
      • Bayesian Inference over the Stiefel Manifold via the Givens Representation
      • あとで読む(Langevin distribution)
    • Riemannian最適化
      • A Broyden Class of Quasi-Newton Methods for Riemannian Optimization
      • Riemannian stochastic quasi-Newton algorithm with variance reduction and its convergence analysis
      • Primal-Dual Optimization Algorithms over Riemannian Manifolds: an Iteration Complexity Analysis
      • Extending FISTA to Riemannian Optimization for Sparse PCA
    • RCD空間
      • On the geometry of metric measure spaces. I
      • On the geometry of metric measure spaces. II
      • Cohomology and other analyticalaspects of RCD spaces
      • Untitled
  • 雑記帳
    • 球面幾何(楕円幾何)
    • 双曲幾何
  • なんかの部屋
    • データの表現について
Powered by GitBook
On this page
  • 線形基底関数モデル
  • ガウス基底関数
  • 確率モデルと正則化

Was this helpful?

  1. 機械学習・データサイエンス
  2. 2. 機械学習
  3. 2.2. 回帰問題

2.2.3. 線形基底関数モデル

Previous2.2.2. 線形回帰モデルと正則化Nextいろいろな基底関数

Last updated 5 years ago

Was this helpful?

今まで扱ってきた線形回帰や重線形回帰は直線や平面に合わせることしかできず、現実世界の非線形なモデルを扱うには表現力が乏しすぎる。

ニューラルネットについて知りたい人は今回を読んだあとで

まで飛ばしてよい。

線形基底関数モデル

実は前回の線形回帰モデルから変更点はひとつしかない。前回は「切片の項がアンバランスだから」という理由でϕ(x)\phi(x)ϕ(x)という関数を定義したが、実は線形基底関数モデルを見越してのことである。今回はこのϕ(x)\phi(x)ϕ(x)を任意の写像とするだけであり、解法や正則化の議論はまったく変わらない。

説明おしまい。

と締めくくってはあまりにも不親切なので、具体例としてガウス基底関数を紹介したあと、確率モデルの観点から正則化を導出する。

線形回帰モデルで扱っていた関数ϕ ⁣:Rn→Rn+1\phi \colon \mathbb{R} ^ n \to \mathbb{R} ^ {n+1}ϕ:Rn→Rn+1は

ϕ(x)=(ϕ0(x),ϕ1(x),⋯ ,ϕn(x))Tϕi(x)={1if  i=0xiotherwise(2.2.3.1)\begin{aligned} \phi (x) &= (\phi _ 0 (x), \phi_1(x), \cdots , \phi _n(x)) ^ \mathrm{T} \\ &\phi _ i (x) = \begin{cases} 1 & {\rm if} \,\, i = 0 \\ x _ i & {\rm otherwise} \end{cases} \end{aligned} \tag{2.2.3.1}ϕ(x)​=(ϕ0​(x),ϕ1​(x),⋯,ϕn​(x))Tϕi​(x)={1xi​​ifi=0otherwise​​(2.2.3.1)

であった。線形基底関数モデルでは任意の写像ϕ ⁣:X→Rn\phi \colon \mathcal{X} \to \mathbb{R} ^ nϕ:X→Rnを用いてよい。すなわち個々の写像はϕi ⁣:X→R\phi _ i \colon \mathcal{X} \to \mathbb{R}ϕi​:X→Rで

ϕ(x)=(ϕ1(x),ϕ2(x),⋯ ,ϕn(x))T(2.2.3.2)\phi (x) = (\phi _ 1 (x), \phi_2(x), \cdots , \phi _n(x)) ^ \mathrm{T} \tag{2.2.3.2}ϕ(x)=(ϕ1​(x),ϕ2​(x),⋯,ϕn​(x))T(2.2.3.2)

である。このϕ\phiϕを基底関数(basis function)または特徴量写像(feature map)という。

ϕi\phi _ iϕi​の添字が 0 から始まったり 1 から始まったりしているが、切片の項にあたる定数写像ϕ0(x)=1\phi _ 0 (x) = 1ϕ0​(x)=1はモデルに付け加えたり外したりがよくあるので、添字 0 を割り当てておくと楽である。つまり線形基底関数モデルでも

ϕ(x)=(ϕ0(x),ϕ1(x),ϕ2(x),⋯ ,ϕn(x))T(2.2.3.3)\phi (x) = (\phi _ 0 (x), \phi _ 1 (x), \phi_2(x), \cdots , \phi _n(x)) ^ \mathrm{T} \tag{2.2.3.3}ϕ(x)=(ϕ0​(x),ϕ1​(x),ϕ2​(x),⋯,ϕn​(x))T(2.2.3.3)

と書けば切片の項があるものとし、

y=∑i=0nwTϕi(x)+ε(2.2.3.4)y = \sum _ {i = 0} ^ n w ^ \mathrm{T} \phi _ i (x) +\varepsilon \tag{2.2.3.4}y=i=0∑n​wTϕi​(x)+ε(2.2.3.4)

と書けば切片ありのモデル、

y=∑i=1nwTϕi(x)+ε(2.2.3.5)y = \sum _ {i = 1} ^ n w ^ \mathrm{T} \phi _ i (x) +\varepsilon \tag{2.2.3.5}y=i=1∑n​wTϕi​(x)+ε(2.2.3.5)

と書けば切片なしのモデルであると約束しておくと数式を書き直す手間が省けてよい。

また特徴量写像ϕ\phiϕの定義域X\mathcal{X}Xは任意の集合である。つまり必ずしも数値データである必要はなく、画像、文字列、グラフといったより一般の対象を入力に取ることができる(ここでは紹介しないがカーネル法の書籍などに具体例が載っているだろう)。

ガウス基底関数

入力が実数値であるときに用いることができ、特徴量写像には次のϕ ⁣:R→Rn\phi \colon \mathbb{R} \to \mathbb{R} ^ {n}ϕ:R→Rnを用いる(nnnは使用者が適当に決めてよい)。

ϕj(x)=exp⁡(−(x−μj)22s2)(μj∈R, j∈{0,1,2,…,n})(2.2.3.7)\phi _ j (x) = \exp \left(- \frac{(x - \mu _ j )^2}{2 s ^ 2} \right) \quad (\mu _ j \in \mathbb{R}, \,j \in \{0, 1,2, \ldots, n \}) \tag{2.2.3.7} ϕj​(x)=exp(−2s2(x−μj​)2​)(μj​∈R,j∈{0,1,2,…,n})(2.2.3.7)

個々のμj\mu _j μj​にどんな値を割振るかも使用者が適当に決める。

他によく使うものについては

にいくつか書いておいたので、必要ならそちらを参照してほしい。

確率モデルと正則化

線形基底関数モデルの正則化は確率モデルからも導くことができ、重みベクトルに事前分布を設定してMAP推定を行うことと等価である。

線形基底関数モデルについて、出力yyy、入力xxx、重みwwwの同時確率分布を以下のように設計する(今回はこう仮定する、という意味であって仮定が異なれば結果は異なる)。

p(y,x,w)=p(y∣x,w)p(x)p(w)(2.2.3.8)p(y, x, w) = p(y|x,w)p(x)p(w) \tag{2.2.3.8}p(y,x,w)=p(y∣x,w)p(x)p(w)(2.2.3.8)

したがって、入力xxxが与えられたときの出力yyyと重みwwwの同時確率分布(joint probability distribution)は

p(y,w∣x)=p(y,x,w)p(x)=p(y∣x,w)p(w)(2.2.3.9)p(y, w | x) = \frac{p(y,x,w)}{p(x)} = p(y|x,w)p(w) \tag{2.2.3.9}p(y,w∣x)=p(x)p(y,x,w)​=p(y∣x,w)p(w)(2.2.3.9)

である。また、wwwが観測されたあとでの各サンプリングは条件付き独立であるとすれば、NNN個のデータを持つデータセットの確率分布は

p(Y,w∣X)=p(w)∏i=1Np(y(i)∣x(i),w)p(Y, w | X) = p(w) \prod _ {i=1} ^ N p(y ^ {(i)} | x ^{(i)}, w)p(Y,w∣X)=p(w)i=1∏N​p(y(i)∣x(i),w)

である。あとは上式の確率分布に対して、出力yyyを観測したあとで重みwwwを変数として確率密度を最大化する。つまり

で定義した確率密度の表記を用いれば、

ρw(y,w∣x)=ρw(y∣x,w)ρw(w)(2.2.3.10)\rho_w(y,w|x) = \rho _ w(y|x,w) \rho _ w(w) \tag{2.2.3.10}ρw​(y,w∣x)=ρw​(y∣x,w)ρw​(w)(2.2.3.10)

を最大化する問題

arg⁡max⁡w  ρw(y,w∣x)(2.2.3.11)\underset{w}{\operatorname{arg} \operatorname{max}} \,\, \rho _ w (y,w|x) \tag{2.2.3.11}wargmax​ρw​(y,w∣x)(2.2.3.11)

を解くことになる。(2.2.3.10)(2.2.3.10)(2.2.3.10)式の右辺を慣習的に「事後確率」とか「事後分布」と呼ぶが、実際には確率密度(または確率質量)であって、一般には確率でも確率分布でもないことに注意する。

ρw(y,w∣x)=ρw(w)∏i=1Nρw(y(i)∣x(i),w)\rho _ w (y, w |x) = \rho _ w(w) \prod _ {i=1} ^ N \rho _ w (y ^ {(i)} | x ^ {(i)}, w)ρw​(y,w∣x)=ρw​(w)i=1∏N​ρw​(y(i)∣x(i),w)

モデルは

p(w)=N(w∣0,λIn)=1(2π)nλnexp⁡(−λ2wTw)p(w) = \mathcal{N}(w | 0, \lambda I _ n) = \frac{1}{\sqrt{(2 \pi) ^ n \lambda ^ n}} \exp \left(- \frac{\lambda}{2} w ^ \mathrm{T} w \right)p(w)=N(w∣0,λIn​)=(2π)nλn​1​exp(−2λ​wTw)
p(y∣x,w)=N(y∣wTϕ(x),λ−1)=12πσ2exp⁡(−(y−wTϕ(x))22σ2)p(y | x,w) = \mathcal{N}(y | w ^ \mathrm{T} \phi(x), \lambda ^ {-1}) = \frac{1}{\sqrt{2\pi \sigma ^ 2}} \exp \left( - \frac{(y - w ^ \mathrm{T} \phi(x)) ^ 2}{2 \sigma ^ 2} \right)p(y∣x,w)=N(y∣wTϕ(x),λ−1)=2πσ2​1​exp(−2σ2(y−wTϕ(x))2​)

とすると、

ln⁡p(w)∏i=1Np(y(i)∣x(i),w)=λwTw+∑i=1N(y−wTϕ(x))2\ln p(w) \prod _ {i=1} ^ N p(y ^{(i)}|x ^ {(i)}, w) = \lambda w ^ \mathrm{T} w + \sum _ {i=1} ^ N (y - w ^ \mathrm{T} \phi(x)) ^ 2lnp(w)i=1∏N​p(y(i)∣x(i),w)=λwTw+i=1∑N​(y−wTϕ(x))2

が求まる。

2.2.10. 3層ニューラルネットワーク
いろいろな基底関数
確率論