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
  • 1.1. Taylor展開と関数の1次近似、2次近似
  • 1.2. 連続最適化との関係

Was this helpful?

  1. 連続最適化

1. Taylor展開と関数近似

2020/1/4公開

Previous変分推論Next2. Taylorの定理と誤差の評価

Last updated 5 years ago

Was this helpful?

1.1. Taylor展開と関数の1次近似、2次近似

Taylor 展開による関数近似は直線探索法(line search method)と呼ばれる連続最適化手法を理解する上での基礎になる。

Taylor 展開可能な関数f ⁣:R→R ⁣:x↦f(x)f \colon \mathbb{R} \to \mathbb{R} \colon x \mapsto f(x)f:R→R:x↦f(x)の、点x‾\overline{x}xの周りの Taylor 展開は、x=x‾+Δxx = \overline{x} + \Delta xx=x+Δxの変数変換のもとで

f(x)=f(x‾+Δx)=∑n=0+∞1n!dnf(x‾)dxnΔxn=f(x‾)+df(x‾)dxΔx+12d2f(x‾)dx2Δx2+⋯(1.1.1)\begin{aligned} f(x)= f(\overline{x} + \Delta x) &= \sum _ {n=0} ^ {+\infty} \frac{1}{n!} \frac{d ^ n f (\overline{x})}{dx ^ n} \Delta x ^ n \\ &= f(\overline{x}) + \frac{d f (\overline{x})}{dx} \Delta x + \frac{1}{2} \frac{d ^ 2 f (\overline{x})}{dx ^ 2} \Delta x ^ 2 + \cdots \end{aligned} \tag{1.1.1}f(x)=f(x+Δx)​=n=0∑+∞​n!1​dxndnf(x)​Δxn=f(x)+dxdf(x)​Δx+21​dx2d2f(x)​Δx2+⋯​(1.1.1)

で与えられる。x‾\overline{x}xが定数でΔx\Delta xΔxが新たな変数である。つまり点x‾\overline{x}xからΔx\Delta xΔxだけ移動した点における点x=x‾+Δxx = \overline{x} + \Delta xx=x+Δxにおけるf(x)f(x)f(x)の値が (1.1.1) 式によって任意の精度で近似できる。

Taylor 展開をΔxn\Delta x ^ nΔxnの項で打ち切った関数

fn(x)=fn(x‾+Δx)=f(x‾)+df(x‾)dxΔx+12d2f(x‾)dx2Δx2+⋯+1n!dnf(x‾)dxnΔxn(1.1.2)f _ n (x) = f _ n(\overline{x} + \Delta x) = f(\overline{x}) + \frac{d f (\overline{x})}{dx} \Delta x + \frac{1}{2} \frac{d ^ 2 f (\overline{x})}{dx ^ 2} \Delta x ^ 2 + \cdots + \frac{1}{n!}\frac{d ^ n f (\overline{x})}{dx ^ n} \Delta x ^ n \tag{1.1.2}fn​(x)=fn​(x+Δx)=f(x)+dxdf(x)​Δx+21​dx2d2f(x)​Δx2+⋯+n!1​dxndnf(x)​Δxn(1.1.2)

をf(x)f(x)f(x)のnnn次近似という(nnn次の Taylor 多項式ともいう)。本書で紹介する連続最適化で使われるのは主に1次近似と2次近似であり、それぞれ

fI(x)=fI(x‾+Δx)=f(x‾)+df(x‾)dxΔxfII(x)=fII(x‾+Δx)=f(x‾)+df(x‾)dxΔx+12d2f(x‾)dx2Δx2(1.1.3)\begin{aligned} f _ {\rm I} (x) &= f _ {\rm I} (\overline{x} + \Delta x) = f(\overline{x}) + \frac{d f (\overline{x})}{dx} \Delta x \\ f _ {\rm II} (x) &= f _ {\rm II} (\overline{x} + \Delta x) = f(\overline{x}) + \frac{d f (\overline{x})}{dx} \Delta x + \frac{1}{2} \frac{d ^ 2 f (\overline{x})}{dx ^ 2} \Delta x ^ 2 \end{aligned} \tag{1.1.3}fI​(x)fII​(x)​=fI​(x+Δx)=f(x)+dxdf(x)​Δx=fII​(x+Δx)=f(x)+dxdf(x)​Δx+21​dx2d2f(x)​Δx2​(1.1.3)

である。3次以上の項に着目することは少ない(c.f. self-concordant function)。

の変数変換のもとで、

で与えられる。一般項は表記が面倒な上に、どうせ2次の項までしか使わないので書かなかった。

として定義すると、

であるから、内積

を用いて、(1.1.4) 式の1次の項は

である。

2次の項についても同様の行列形式による表記を行いたい。次の

である。

1.2. 連続最適化との関係

目的関数が複雑な形状をしていても1次近似や2次近似は計算できることが多く、2次近似した関数の最適解は2次関数の頂点を求める問題とほぼ同じなので比較的容易に計算できる。

であって

同様に、Taylor 展開可能な関数f ⁣:Rn→R ⁣:x↦f(x)f \colon \mathbb{R} ^ n \to \mathbb{R} \colon x \mapsto f(x)f:Rn→R:x↦f(x)の点x‾\overline{x}xの周りの Taylor 展開は、

x=(x1x2⋮xn)=(x‾1+Δx1x‾2+Δx2⋮x‾n+Δxn)=(x‾1x‾2⋮x‾n)+(Δx1Δx2⋮Δxn)=x‾+Δxx = \left(\begin{matrix} x _ 1 \\ x _ 2 \\ \vdots \\ x _ n \end{matrix} \right) = \left(\begin{matrix} \overline{x} _ 1 + \Delta x _ 1 \\ \overline{x} _ 2 + \Delta x _ 2 \\ \vdots \\ \overline{x} _ n + \Delta x _ n \end{matrix} \right) = \left(\begin{matrix} \overline{x} _ 1 \\ \overline{x} _ 2 \\ \vdots \\ \overline{x} _ n \end{matrix} \right) + \left(\begin{matrix} \Delta x _ 1 \\ \Delta x _ 2 \\ \vdots \\ \Delta x _ n \end{matrix} \right) = \overline{x} + \Delta xx=​x1​x2​⋮xn​​​=​x1​+Δx1​x2​+Δx2​⋮xn​+Δxn​​​=​x1​x2​⋮xn​​​+​Δx1​Δx2​⋮Δxn​​​=x+Δx
f(x)=f(x‾+Δx)=f(x‾)+∑i=1n∂f(x‾)∂xiΔxi+12∑i=1n∑j=1n∂2f(x‾)∂xi∂xjΔxiΔxj+⋯(1.1.4)f(x) = f(\overline{x} + \Delta x) = f(\overline{x}) + \sum _ {i=1} ^ n \frac{\partial f (\overline{x})}{\partial x _ i} \Delta x _ i + \frac{1}{2} \sum _ {i=1} ^ n \sum _ {j=1} ^ n \frac{\partial ^ 2 f (\overline{x})}{\partial x _ i \partial x _ j} \Delta x _ i \Delta x _ j+ \cdots \tag{1.1.4}f(x)=f(x+Δx)=f(x)+i=1∑n​∂xi​∂f(x)​Δxi​+21​i=1∑n​j=1∑n​∂xi​∂xj​∂2f(x)​Δxi​Δxj​+⋯(1.1.4)

ここでナブラ演算子∇\nabla∇を列ベクトル

∇=(∂∂x1,∂∂x2,⋯ ,∂∂xn)T\nabla = \left( \frac{\partial }{\partial x _ 1}, \frac{\partial }{\partial x _ 2}, \cdots , \frac{\partial }{\partial x _ n} \right) ^ \mathrm{T}∇=(∂x1​∂​,∂x2​∂​,⋯,∂xn​∂​)T
∇f=(∂f∂x1,∂f∂x2,⋯ ,∂f∂xn)T\nabla f = \left( \frac{\partial f}{\partial x _ 1}, \frac{\partial f}{\partial x _ 2}, \cdots , \frac{\partial f}{\partial x _ n} \right) ^ \mathrm{T}∇f=(∂x1​∂f​,∂x2​∂f​,⋯,∂xn​∂f​)T
<a,b>=aTb=∑i=1naibi\left< a , b\right> = a ^ \mathrm{T} b = \sum _ {i = 1} ^ n a _ i b _ i⟨a,b⟩=aTb=i=1∑n​ai​bi​
<∇f(x‾),Δx>=∑i=1n∂f(x‾)∂xiΔxi(1.1.5)\left< \nabla f(\overline{x}), \Delta x \right> = \sum _ {i=1} ^ n \frac{\partial f (\overline{x})}{\partial x _ i} \Delta x _ i \tag{1.1.5}⟨∇f(x),Δx⟩=i=1∑n​∂xi​∂f(x)​Δxi​(1.1.5)

と書ける。幾何的な意味づけとしては∇f(x‾)\nabla f (\overline{x})∇f(x)は点x‾\overline{x}xにおける関数f(x)f(x)f(x)の勾配だから

grad⁡f=∇f(1.1.6)\operatorname{grad} f = \nabla f \tag{1.1.6}gradf=∇f(1.1.6)
H=(∇∇T)f=(∂2f∂x1∂x1∂2f∂x1∂x2⋯∂2f∂x1∂xn∂2f∂x2∂x1∂2f∂x2∂x2⋯∂2f∂x2∂xn⋮⋮⋱⋮∂2f∂xn∂x1∂2f∂xn∂x2⋯∂2f∂xn∂xn)H = (\nabla \nabla ^ \mathrm{T}) f = \left( \begin{matrix} \frac{\partial ^ 2 f}{\partial x _ 1 \partial x _ 1} & \frac{\partial ^ 2 f}{\partial x _ 1 \partial x _ 2} & \cdots & \frac{\partial ^ 2 f}{\partial x _ 1 \partial x _ n} \\ \frac{\partial ^ 2 f}{\partial x _ 2 \partial x _ 1} & \frac{\partial ^ 2 f}{\partial x _ 2 \partial x _ 2} & \cdots & \frac{\partial ^ 2 f}{\partial x _ 2 \partial x _ n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial ^ 2 f}{\partial x _ n \partial x _ 1} & \frac{\partial ^ 2 f}{\partial x _ n \partial x _ 2} & \cdots & \frac{\partial ^ 2 f}{\partial x _ n \partial x _ n} \end{matrix} \right)H=(∇∇T)f=​∂x1​∂x1​∂2f​∂x2​∂x1​∂2f​⋮∂xn​∂x1​∂2f​​∂x1​∂x2​∂2f​∂x2​∂x2​∂2f​⋮∂xn​∂x2​∂2f​​⋯⋯⋱⋯​∂x1​∂xn​∂2f​∂x2​∂xn​∂2f​⋮∂xn​∂xn​∂2f​​​

で定義されるHHHは Hesse 行列と呼ばれる。Hesse 行列を用いれば (1.1.4) 式の2次の項は

<Hx‾Δx,Δx>=∑i=1n∑j=1n∂2f(x‾)∂xi∂jΔxiΔxj(1.1.7)\left< H _ {\overline{x}} \Delta x, \Delta x \right> = \sum _ {i=1} ^ n \sum _ {j=1} ^ n \frac{\partial ^ 2 f (\overline{x})}{\partial x _ i \partial _ j} \Delta x _ i \Delta x _ j \tag{1.1.7}⟨Hx​Δx,Δx⟩=i=1∑n​j=1∑n​∂xi​∂j​∂2f(x)​Δxi​Δxj​(1.1.7)

と書ける。ただしHx=(∇∇T)f(x)H _ x = (\nabla \nabla ^ \mathrm{T} ) f (x)Hx​=(∇∇T)f(x)であり、どの点における Hesse 行列なのかを明記している。書物によってはHxH _ xHx​を単にHHHと書いていたりするので注意する。

Hesse 行列はユークリッド空間上での Hessian 演算子 Hess⁡f(x) ⁣:Rn→Rn\operatorname{Hess} f (x) \colon \mathbb{R} ^ n \to \mathbb{R} ^ nHessf(x):Rn→Rnの行列表記であり、ユークリッド空間では

Hessf(x)Δx=HxΔx(1.1.8){\rm Hess} f(x) \Delta x = H _ x \Delta x \tag{1.1.8}Hessf(x)Δx=Hx​Δx(1.1.8)

(1.1.4) 式に (1.1.5), (1.1.6), (1.1.7), (1.1.8) 式の結果を用いれば、関数f ⁣:Rn→Rf \colon \mathbb{R} ^ n \to \mathbb{R}f:Rn→Rの1次近似と2次近似はそれぞれ

fI(x)=fI(x‾+Δx)=f(x‾)+<∇f(x‾),Δx>=f(x‾)+<grad⁡f(x‾),Δx>fII(x)=fII(x‾+Δx)=f(x‾)+<∇f(x‾),Δx>+<ΔxTHx‾,Δx>=f(x‾)+<grad⁡f(x‾),Δx>+<Hess⁡f(x‾)Δx,Δx>(1.1.9)\begin{aligned} f _ {\rm I} (x) = f _ {\rm I} (\overline{x} + \Delta x) &= f(\overline{x}) + \left< \nabla f(\overline{x}), \Delta x \right> \\ &= f(\overline{x}) + \left< \operatorname{grad} f(\overline{x}), \Delta x \right> \\ f _ {\rm II} (x) = f _ {\rm II} (\overline{x} + \Delta x) &= f(\overline{x}) + \left< \nabla f(\overline{x}), \Delta x \right> + \left< \Delta x ^ \mathrm{T} H _ {\overline{x}}, \Delta x \right> \\ &= f(\overline{x}) + \left< \operatorname{grad} f(\overline{x}), \Delta x \right> + \left< \operatorname{Hess} f(\overline{x}) \Delta x, \Delta x \right> \end{aligned} \tag{1.1.9}fI​(x)=fI​(x+Δx)fII​(x)=fII​(x+Δx)​=f(x)+⟨∇f(x),Δx⟩=f(x)+⟨gradf(x),Δx⟩=f(x)+⟨∇f(x),Δx⟩+⟨ΔxTHx​,Δx⟩=f(x)+⟨gradf(x),Δx⟩+⟨Hessf(x)Δx,Δx⟩​(1.1.9)

と書ける。grad⁡\operatorname{grad}gradやHess⁡\operatorname{Hess}Hessを用いた表記は幾何的な意味との対応がついているので、ユークリッド空間以外でもgrad⁡,Hess⁡\operatorname{grad}, \operatorname{Hess}grad,Hessを定義すれば適用できる(本書でも Riemannian 最適化で登場する)。

現代科学で扱われる大抵の問題は目的関数の最適解が直接的(代数的)には求まらない。代わりに「関数を近似する→\to→近似した関数の最適解へ進む」という手順を繰り返して最終的に近似する前のもとの関数の最適解に到達するような手法を構成する(解析的に求める)。

また連続最適化は、点x(k)x _ {(k)}x(k)​からある方向m(k)m _ {(k)}m(k)​にα(k)\alpha _ {(k)}α(k)​だけ進んだ点x(k+1)=x(k)+α(k)m(k)x _ {(k+1)} = x _ {(k)} + \alpha _ {(k)} m _ {(k)}x(k+1)​=x(k)​+α(k)​m(k)​がk→+∞k \to +\inftyk→+∞の極限で最適解(または極値)に収束するような手法として構成されることが多いので、ある点の近傍での関数の形状を近似する Taylor 展開が連続最適化でよく登場するのである。

点x(k)x _ {(k)}x(k)​は探索の起点であり固定するから Taylor 展開におけるx‾\overline{x}xとみなせて、α(k)m(k)\alpha _ {(k)} m _ {(k)}α(k)​m(k)​は点x‾\overline{x}xからの変化なのでΔx\Delta xΔxに対応する。つまり

x‾=x(k),  Δx=α(k)m(k)(x(k),m(k)∈Rn,α(k)∈R)(1.2.1)\begin{aligned} \overline{x} = x _ {(k)}, \,\, \Delta x = \alpha _ {(k)} m _ {(k)} \quad (x _ {(k)}, m _ {(k)} \in \mathbb{R} ^ n, \alpha _ {(k)} \in \mathbb{R}) \end{aligned} \tag{1.2.1}x=x(k)​,Δx=α(k)​m(k)​(x(k)​,m(k)​∈Rn,α(k)​∈R)​(1.2.1)
x=x‾+Δxx(k+1)=x(k)+α(k)m(k)(1.2.2)\begin{aligned} x &= \overline{x} + \Delta x \\ x _ {(k+1)} &= x _ {(k)} + \alpha _ {(k)} m _ {(k)} \end{aligned} \tag{1.2.2}xx(k+1)​​=x+Δx=x(k)​+α(k)​m(k)​​(1.2.2)

の2式が対応している。今後はx(k)x _ {(k)}x(k)​などを用いる方の説明がメインになるが、(1.2.1), (1.2.2) 式を用いた式の書き換えは断りなしに行うことがあるので注意してほしい。