DEIM Forum 2019 A4-2

ニューラルネットワークにおける適応的二次最適化手法
本川 哲哉†

手塚 太郎††† 筑波大学情報学群知識情報・図書館学類 〒 305–8550 茨城県つくば市春日 1-2†† 筑波大学 図書館情報メディア系 〒 305–8550 茨城県つくば市春日 1-2
E-mail: †s1511567@u.tsukuba.ac.jp, ††tezuka@slis.tsukuba.ac.jp
あらまし 現在，ニューラルネットワークにおける重みパラメータ最適化では，確率的勾配降下法（SGD）をはじめとする一次最適化手法を用いることが一般的である．しかしながら，一次最適化には収束速度の遅さや，学習率のよ
うな調整の難しいハイパーパラメータが多いというデメリットが存在する．近年この問題を解決するために，損失関数の重みに関するヘッセ行列に基づく二次最適化によって重みパラメータの最適化を改善する試みが活発化している．
本研究では Hessian-free optimizaion（HF）と呼ばれる二次最適化手法を用いて，一次最適化で取り入られている適
応的な工夫を施すことを試みる．適応的一次最適化手法にもいくつか種類が存在するが，本研究では Momentum 法と Adam という手法の計算的工夫を適用した．
キーワード ニューラルネットワーク，適応的最適化，二次最適化，ヘッセ行列
一次微分である勾配のみに基づいて最適化していることに起因

1 はじめに
1. 1 背景

近年，深層学習は様々な機械学習タスクにおいて大きな成功

する．つまり損失関数をテイラー展開した時の一次微分の項までしか考えないため，二次以降の微分値に基づく誤差が含まれてしまうのである．これを，二次微分値まで考えて最適化を行う二次最適化によって解決しようとする試みがなされている．

を収めている．ニューラルネットワークとは，入力層・中間層・出力層という 3 種類の層から成るネットワークである．中間

1. 2 目的層を深くしたニューラルネットワークの学習に関する問題は，そこで本研究では，損失関数の二次微分値全体で構成され機械学習において最も注目されている研究領域の 1 つである．

るヘッセ行列に基づく二次最適化によって，より効率的な重みニューラルネットワークの学習とは，ネットワーク間の重みをパラメータ最適化を目指す．現在ニューラルネットワークにお入力と出力が適切な関係になるよう調整することである．具体

ける二次最適化には様々な研究が行われている [3] [4] [5]．本研

的には，まずニューラルネットワークにおける出力の予測値と，究では二次最適化手法として Hessian-free optimization [3] と与えられたデータの正解値との相違度を損失関数として定める．

呼ばれる最適化手法を用いる．特徴次元数の多い問題や重みそしてその損失関数を最小化する重みパラメータを見つけるこの次元数の多いニューラルネットワークでは，ヘッセ行列とそとで，最適化を行なっている．

の逆行列を求めるのは計算量的な観点で難しい．Hessian-free

現在この重みパラメータ最適化には，損失関数の一次微分，

optimization ではこの問題を明示的にヘッセ行列を求めないこつまり勾配に基づく一次最適化を用いることが主流となっていとで回避している．この手法は Hessian-vector product といる．確率的勾配降下法（Stochastic Gradient Descent，SGD)

うヘッセ行列とベクトルの積の高速な計算と，共役勾配法とをベースとして，適応的な工夫を取り入れた Momentum SGD，いう最適化手法に基づいている．本研究ではこの Hessian-free

Nesterov Accelerate Gradient，AdaGrad，RMSProp，Adam

optimization をもとに，パラメータ更新部分に Momentum 法のような一次最適化手法がよく用いられている．これらの手法と Adam の適応的な工夫を取り入れた手法を提案する．

における適応的な工夫とは，どの手法でも現在ステップの重みに関する勾配だけでなく，過去ステップにおける勾配も合わせて使用するという部分にある．これによって従来の SGD よりも効率的な学習が可能となった．しかし，一次最適化にはデメリットがある．まず，収束速度が遅いということが挙げられる．
これは訓練の 1 反復における計算にかかる時間のことではな
く，収束に至るまでの繰り返し回数が多くなってしまうという意味である．また，学習率のような調整の難しいハイパーパラ
メータが多く存在するということもデメリットして挙げられる．
ニューラルネットワークではハイパーパラメータを慎重に決めないと学習に失敗してしまうことが多々ある．これらは主に，

2 関連研究現在，ニューラルネットワークにおける重みパラメータ最適化に関する研究は活発に行われている．中でも確率的勾配降下法（SGD) をはじめとする一次最適化手法の研究は古くから盛んである．過去の勾配を用いる Momentum SGD [11] や，

Nesterov Accelerate Gradient [9] のような手法はシンプルな実装が可能で，理論的にも強力なため今でもよく用いられる．特に近年では，過去の勾配を使用すると共に，学習率をステップ数ごとに適応的に調整する適応的一次最適化手法が注目されて—1—

いる．代表例として AdaGrad [8]，RMSProp，Adam [12] のよ

第 0 層，出力層が第 K 層，それ以外が中間層となる．K + 1

うな適応的一次最適化手法がニューラルネットワークの訓練に層のニューラルネットワークのノードにおける全ての重み行列はよく用いられる．ニューラルネットワークにおける目的関数

を W1 , ...WK ，バイアスベクトルを b1 , ..., bK とする．これらが形成するような高次元のパラメータ空間の場合，停留点の多がニューラルネットワークにおいて学習すべきパラメータであくは鞍点と呼ばれる勾配が非常に小さい点となる．適応的一次

る．入力 x が与えられた時のニューラルネットワークの出力

最適化手法はこの鞍点を効率的に抜け出す手法として有効だと

f (x, θ) = aK は以下の計算を再帰的に適用することで求めら言われている．現在のところ，適応的一次最適化手法は理論解れる．

析には乏しいが，様々な損失関数に対して何らかのチューニン
グなしに最適化が可能な手法として注目されている．
高次元空間の鞍点問題を解消する別のアプローチとして，自然勾配法 [15] という最適化手法が近年再注目されている．これは情報幾何学に基づいて定義される，フィッシャー情報行列と呼ばれる行列を勾配の再スケーリング要素として使用する．これは KL-Divergence と呼ばれるパラメータ空間の座標系によらない確率分布における距離構造を考慮した上で，損失関数を減少させる方向を決めている．
本研究では二次最適化手法として Hessian-free optimizationという手法を用いる．3. 5 で詳しく説明するが，Hessian-free

optimization の主なアイデアはヘッセ行列と勾配ベクトルの積を効率的に計算する部分にある．また，Hessian-free optimiza-tion には分散化に対応した手法も存在する [18]．ニューラルネッ
トワークにおける二次最適化手法には他にも多くの手法が存在

zi = Wi ai−1 + bi
ai = ϕi (zi )ここで，入力として a0 = x とし，ai はニューラルネットワー
クの活性と呼ばれる．また ϕ(・) は活性化関数と呼ばれており，
シグモイド関数やハイパボリックタンジェント関数のような非線形関数がよく用いられる．最近では，ニューラルネットワー
クを深層にした時に生じる勾配消失問題を解消するために有効な方法として，relu 関数という活性化関数が用いられることが多い，
学 習 に 用 い る デ ー タ セット を S と し ，単 一 の デ ー タ を(x, y) ∈ S とすると，上で計算した aK = f (x, θ) を用いて正解値である y との相違度を損失関数によって測る．最適化する目的関数は以下のように損失関数のデータセット S 全体の平均で与えられる．

する．最近注目が集まっている手法として，ヘッセ行列を Kro-

necker Factorization と呼ばれる行列におけるブロック対角近似

h(θ) =1 ∑L(y, f (x, θ))|S|(x,y)∈S

テクニックを用いる手法がある．これはブロック対角近似によってヘッセ行列の計算コストが減らせるだけではなく，Kronecker

ニューラルネットワークにおける損失関数としては，平均二Factorization の効果によって逆行列の計算もしやすくなるとい乗誤差やクロスエントロピーと呼ばれる関数がよく用いられる．

う利点がある．Kronecker Factorization を用いる代表手法とし学習フェーズでは損失関数の重みにおける勾配ベクトルが必て KFAC [4] や KFRA [5] がある．KFAC では，フィッシャー情要になる．勾配ベクトルを求めるためにはまず，出力に最も近報行列を Kronecker Factorization で近似して自然勾配法の枠

い重みによる勾配を求める．さらにその勾配に基づいて微分の組みで最適化を行う．また，Hessian-free optimization や他の連鎖則を再帰的に適用することで，入力に近い重みによる勾配

多くの二次最適化手法ではヘッセ行列を正定値行列にするためも求める誤差逆伝播法と呼ばれるアルゴリズムが用いられる．

に，対角成分に小さな正の値を足すというテクニックをとること

本論文でアルゴリズムを記述する擬似コード内では，簡単のたが多い．それに対して，Saddle-free newton method [13] といめ損失関数の微分に関する表記を以下のように定める．

う手法では負の固有値を無視するために，ヘッセ行列の対角成分
全ての絶対値を取った行列を勾配の再スケーリング要素として

Dv =∂L(y, ŷ)∂v

用いる．また Saddle-free newton method の重みパラメータ最適化部分では信頼領域法という制約付き最適化を適用している．
パラメータが信頼区間内にいるときは二次最適化を実行し，信頼区間外では一次最適化に切り替えるという工夫である．さらに，Saddle-free newton method と Hessian-free optimization
を組み合わせた Saddle-free Hessian-free optimization [14] という手法も存在する．

3 研究手法3. 1 ニューラルネットワーク
はじめにニューラルネットワークの定式化を行い，通常の勾配降下法に基づく重みパラメータ最適化の説明をする．全体
で K + 1 層のニューラルネットワークを考えると，入力層が—2—

Algorithm 1 誤差逆伝播法による損失関数 L の勾配計算

ルである．この速度ベクトルは指数関数的に減衰する負の勾配

input: a0 = x, θ mapped to (W1 , W2 , ..., WK , b1 , b2 , ..., bK )の平均で調整される．
「Momentum」という名前は物理学の現

for all i from 1 to K do

象に由来するもであり，負の勾配がパラメータ空間でニュート

zi ← Wi ai−1 + bi

ンの運動法則に従って他の粒子を動かす運動量のことを表して

ai ← ϕ(zi )いる．物理学において，運動量とは「質量」と「速さ」の積でend forある．Momentum 法を用いた学習アルゴリズムでは，単位質∂LDaK ← ∂a量を仮定し，速度ベクトル v は粒子の運動量とも考えられる．

K

for all i from K to 1 do
Dsi ← Dai ⊙ ϕ (zi )ハイパーパラメータである学習率 α ∈ [0, 1] は，これまで蓄積

DWi ← Dsi aT
i−1

されていた勾配の寄与が指数関数的に減衰する速度を調整する．

Dbi ← Dsi

更新式は以下のように与えられる．

′

Dsi−1 ← WiT Dsi
end forvt+1 = αvt − ϵ∇θt h(θt )output:θt+1 = θt + vt

Dθ as mapped from (DW1 , DW2 , ..., DWK , Db1 , Db2 , ..., DbK )3. 3 Adam
最後に，上のアルゴリズムによって得られた重みの勾配を現

現在，ニューラルネットワークの重みパラメータ最適化によ

在の重みから引くことでパラメータの更新を行う．SGD におい

く用いられる一次最適化手法の 1 つに，Adam（Adaptive mo-て t 回目の反復における更新すべきパラメータをまとめて θt ，ment estimation）と呼ばれる手法がある．Adam は適応的最学習率を α とすると，以下のような更新式になる．

適化手法と呼ばれる一次最適化手法の 1 つであり，Momentum法と同様に過去の勾配を用いて最適化を行う．Momentum 法

θt+1 = θt − α∇θt h(θt )とは異なる部分として，各ステップごとに適応的に学習率を変化させ，最適化を行う方向を変えるという工夫がある．これは，

3. 2 Momentum 法
ニューラルネットワークの重みパラメータ最適化においてパラメータ空間において損失関数の値が大きく変化する方向とSGD はよく使われる手法ではあるが，学習が遅くなる場合がそうではない方向が存在するために，ニューラルネットワーク

ある．これを解決する最もシンプルな手法に Momentum 法との訓練の前に適切な学習率を決めることが難しいという問題いうものが存在する [11]．本論文では Momentum 法を使用すを解決する．Adam では単に過去の勾配を使用するわけではな

る SGD のことを Momentum SGD と呼ぶ．これは SGD でのく，過去の勾配の重み付き 1 次モーメントと重み付き 2 次モー学習を高速化するための工夫が設計されており，特に損失関数メントを使用し，勾配に対して標準化を施してからパラメータの曲率が高い場合や勾配に含まれるノイズが大きい場合に大きの更新を行なっている．また重み付けは Momentum 法と同様な効果を発揮する．Momentum 法の主なアイディアは指数関

で，指数関数的に減衰する重みを用いる．標準化によって勾配数的に減衰する過去の勾配の移動平均を保存して，継続的にその統計的な分散が減らせるため，SGD や Momentum SGD なの勾配方向に進むという部分にある．Momentum SGD の効果

ど他の一次最適化手法よりも安定し，より効率的な最適化が可を図 1 に図示する．

能となる．

7.5

7.5

5.0

5.0

2.5

y

y

2.5
0.0

0.0
−2.5

−2.5

−5.0

−5.0

−7.5

−7.5
−10.0
−10.0

Adam

10.0

10.0

−7.5

−5.0

−2.5

0.0
x

2.5

5.0

7.5

10.0

図 1 Momentum 法による効率的な最適化の様子

−10.0
−10.0

−7.5

−5.0

−2.5

0.0
x

2.5

5.0

7.5

10.0

図 2 Adam による効率的な最適化の様子

図 1 において黒線が SGD の軌跡で，赤線が Momentum SGDの軌跡である．Momentum 法を SGD に適用するとより効率的に最適化が行えることが確認できる．定式化として，Momen-tum 法では速度の役割を果たす変数 v を導入する．これはパラメータ空間上でパラメータが進む方向と速さを含む速度ベクト—3—セ行列が必要なので，各重みに関する二次微分を計算する必要

Algorithm 2 Adam
Require: α: learning rateがある．これは 3.1 節で説明した，誤差逆伝播法による勾配のRequire: β1 , β2 ∈ [0, 1]: Exponential decay for the moment esti-

計算と同様に，ニューラルネットワークにおけるヘッセ行列もmates

誤差逆伝播法によって正確な計算が可能であることが示されてRequire: h(θ): Stochastic objective function with parameters θ
Require: θ0 : initial parameter vector

いる [7]．しかしながら，ニューラルネットワークにおける重みパラメータの数を k とすると，ニュートン法では k × k 行列

m0 ← 0 Initialize 1st moment vectorの逆行列が必要となり，O(k 3 ) もの計算複雑性が生じる．またv0 ← 0 Initialize 2nd moment vector

更新毎に重みパラメータが変化するので，訓練の反復のたびに

t ← 0 Initialize timestep

ヘッセ行列とその逆行列を計算する必要が生じる．そのため，

while θt not converged do

ニュートン法を適用できるニューラルネットワークはパラメー

t←t+1

タの数が非常に少ないモデルに限られる．

gt ← ∇θ ht (θt−1 )mt ← β1 mt−1 + (1 − β1 )gt

3. 5 Hessian-free optimizationvt ← β2 vt−1 + (1 − β2 )gt2

ここでは本研究で使用する二次最適化手法の Hessian-free op-mtm̂t ← 1−βtvtvˆt ← 1−βttimization について説明する．Hessian-free optimization は，

1

元々は数値計算の分野における最適化手法として使われてい2θt ← θt−1 − α √m̂t

た Truncated-newton method という手法 [16] の 1 つである．

vˆt +ϵend while

Martens（2010）によってニューラルネットワークにおける重みパラメータ最適化への適用が考えられた [6]．
通常のニュートン法ではヘッセ行列を正確に計算しなければ

3. 4 二次最適化
二次最適化では，実数値ベクトルのパラメータ θ ∈ Rn に関する二回以上微分可能な目的関数 h : R → R の制約なし最nならないため，パラメータ数の多いニューラルネットワークにそのまま適用するのは難しい．これは空間計算量，時間計算量適化を考える．Hessian-free optimization のような二次最適化のどちらのコストも高いことから言える．そこで Hessian-free

手法は，古典的なニュートン法（Newton-Raphson 法とも呼ば

optimization ではパラメータの更新方向を決めるのに共役勾配れる）から導出される．これは，目的関数の局所二次近似モデ

法（Conjugate Gradient Method）という最適化手法を用いてルを反復的に最適化する．最も単純な方法として，現在のパラいる．

メータ θk が与えられると，k 回目の反復において，勾配および3. 5. 1 共役勾配法

曲率の情報を使用して形成された目的関数 h(θk + δ) の局所二共役勾配法は，訓練の反復時に降下する方向を勾配の共役方

次近似モデル Mk (δ) を最適化するという方法がある．局所二向に従うことで，ヘッセ行列の逆行列計算を効率的に回避する

次近似モデルとはより正確に，以下のような定式化ができる．

手法である．このアプローチの主なアイディアは，勾配に関連

Mk (δ) ≡ h(θk ) + ∇h(θk )T δ +1 Tδ Bk δ
2

づけられた方向へ反復的に直線探索を行う勾配降下法の欠点を注意深く検証した結果から得られている．訓練の t 回目の反復

ここで Bk は曲率行列（curvature matrix）と呼ばれ，標準的後に，直前の探索方向を δt−1 とすると，現在の探索方向 δt はな二次最適化ではヘッセ行列が用いられる．

以下のように定式化できる．

次に二次最適化手法の最も基礎的なアルゴリズムであるニュー

δt = ∇θ h(θ) + βt δt−1

トン法について説明し，ニューラルネットワークにおける適用を議論する．ニュートン法では式（1）の臨界点での解を求め

この βt を選択する際にヘッセ行列と勾配ベクトルとの積が必る手続きを逐次更新で行う．探索方向をヘッセ行列の逆行列と要となってくる．

勾配ベクトルの積とし，それを重みパラメータから引くことで共役勾配法は理論的にも非常に強力な最適化アルゴリズムであ更新を実行する．H を重みにおける損失関数のヘッセ行列，gる．t 回の反復後，Kt (A, r0 ) ≡ span{r0 , Ar0 , A2 r0 , ..., At−1 r0 }を勾配ベクトルとすると次のような更新式を得る．

として定義される Krylov 部分空間上の任意の凸二次関数 q(x)

θt+1 = θt − H −1 g

において最適解が見つかることが証明されている [17]．ここで，r0 = Ax0 − b であり，x0 は初期値とする．Hessian-free

ニューラルネットワークにおける目的関数のように，鞍点のよ

optimization では前処理付き共役勾配法（Preconditioned Con-

うな多くの問題を抱える非凸関数では，ニュートン法による適jugate Gradient method）と呼ばれる共役勾配法の 1 種を使用

切な最適化が期待できない．例えば鞍点付近でヘッセ行列の固する．これは係数行列であるヘッセ行列に対角化などの前処理

有値が全て正ではない場合，ニュートン法による更新は間違っを施すことで，ヘッセ行列の固有値分布を改善するという目的

た方向へ進んでしまう可能性がある．また，計算量的な観点に基づいている．反復法の収束速度は係数行列の固有値分布にからもニューラルネットワークへのニュートン法の適用は難し

依存している．固有値の分布に変動が少なく，最大最小固有値

い．ニュートン法におけるパラメータ更新では損失関数のヘッの比（条件数）が 1 に近いほど収束が速くなる．

—4—

Algorithm 3 前処理付き共役勾配法（PCG）
inputs: b, A, x0 , P

積の微分：Rv (xy) = (Rv x)y + x(Rv y)
連鎖則：Rv (γ(x)) = (Rv x)Jγ (x)r0 ← Ax0 − b

Jγ (x) は γ(x) のヤコビ行列とする．Hv = Rv (∇h(θ)) である

y0 ← solution of P y = r0ことに注意すると，これらの規則を計算グラフに適用すること

p0 ← −y0でニューラルネットワークにおける Hv の誤差逆伝播法が導け

i←0る．以下，アルゴリズム中では Rv 演算子を R と略記する．

while solution is not satisfactory do
α←riT yipT
Api
ixi+1 ← xi + αi pi
ri+1 ← ri + αi Api
yi+1 ← solution of P y = ri+1
T
yi+1
ri+1

βi+1 ←

riT yiAlgorithm 4 ニューラルネットワークにおける Hv の誤差逆伝播法
input: v mapped to (RW1 , ..., RWK , Rb1 , ..., RbK )Ra0 ← 0for for all i from 1 to K do

pi+1 ← −yi+1 + βi+1 pi

Rzi ← RWi ai−1 + Wi Rai−1 + Rbii←i+1

Rai ← Rzi ϕi (si )′end while

end foroutput: xi∂L) = ∂a∂RDaK ← R( ∂a3. 5. 2 Hessian-vector product
共役勾配法ではヘッセ行列と勾配ベクトルの積，つまり最終的にはベクトルのみが必要となる．これをそのまま行列ベクト
ル積として扱い，ニューラルネットワークで誤差逆伝播が出来るような計算的工夫を取り入れる．そうすることで，ヘッセ行
列とその逆行列の明示的な計算を避けることが可能となる．以

∂L

K ∂aK

K

2

∂ L
RaK = ∂a
2 RaK
K

for all i from K downto 1 do′′′

RDsi ← RDai ⊙ ϕi (si ) + Dai ⊙ R(ϕi (si )) = RDai ⊙ ϕi (si ) +′′Rai ⊙ ϕ (si ) ⊙ Rsi
T
RDWi ← RDsi aT
i−1 + Dsi Rai−1

RDbi ← RDsi
RDai−1 ← RWiT Dsi + WiT RDsi
end for

下ではその計算的な工夫を説明する．
ヘッセ行列と勾配ベクトルの積（Hessian-vector product，output: Hv as mapped from (RDW1 , ..., RDWK , RDb1 , ..., RDbK )Hv と略記する）を効率的に計算するために，ヘッセ行列が勾配ベクトルに関するヤコビ行列であることに着目する．つまり，

3. 5. 3 一般ガウスニュートン行列

Hv は勾配ベクトルに関する ∇h(θ) の方向微分として扱うこと

Hessian-free optimization では，さらなる計算効率化のためにヘッセ行列を一般ガウスニュートン行列（The generalizedができる．

∇h(θ + ϵv) − ∇h(θ)ϵ→0ϵ

H(θ)v = lim

上の方程式は実装上は有限差分を取った数値計算アルゴリズム

Gauss-Newton matrix）で近似する．以下で一般ガウスニュー
トン行列 G の定式化を行う．

h(θ) =

として扱うことができる．しかしながら，ニューラルネットワー
クのような高次元の非線形関数を扱う場合，有限差分は数値誤差の問題が避けられず一般的には向かない．そこで有限差分を(x,y)∈S∇h(θ) =1 ∑ T
Jf ∇L(y, f (x, θ))|S|(x,y)∈S

利用せずに，安定的に方向微分を計算する方法を説明する [1]．
最適化理論の分野でニューラルネットワークや他の関連モデル

1 ∑L(y, f (x, θ))|S|

H(θ) =m∑
1 ∑ T
Jf HL Jf +[∇f L(y, f (x, θ))]i H[f (x,θ)]i|S|(x,y)∈Sのために発見した Pearlmutter（1994）の説明に従う．この方

i=1

法は「前方微分（forward-diﬀerentiation）」として知られてい上記のヘッセ行列の式における第 2 項を無視した以下のようなる．勾配を求めるための誤差逆伝播法の考え方と同様に，計算行列を，一般ガウスニュートン行列と定義する．

グラフ内の全てのノードに対して微分の連鎖則を繰り返し使う
ことで前方微分の値を求めることができる．以下のように Rvという演算子を導入して定式化する．

x(θ + ϵv) − x(θ)∂x
Rv x = lim
=
v
ϵ→0
ϵ
∂θ
Rv 演算子は線型性，積の微分，連鎖則という通常の微分の規則が成り立つ．
線型性：Rv (x + y) = Rv x + Rv y

G≡

1 ∑ T
Jf HL Jf|S|(x,y)∈S

例えば損失関数 L が平均二乗誤差の時は，出力層におけるヘッセ行列が HL = I （単位行列）となるので一般ガウスニュート
ン行列 G はヤコビ行列の積 J T J として表される．この時の最適化アルゴリズムはレーベンバーグマーカート法（Levenberg-

Marquardt algorithm）として知られている．
ここまでで一般ガウスニュートン行列がヘッセ行列の近似—5—であることは説明した．しかしながら，実際に Hessian-free

ニューラルネットワークのように非常にパラメータ数の多い非optimization において一般ガウスニュートン行列が有用である

凸な目的関数を考えるとき，そのヘッセ行列が正定値であるとためには行列ベクトル積 Gv を効率的に計算するアルゴリズム

いう保証はない．二次最適化ではこの問題を回避するために，が必要となる．古典的なガウスニュートン行列を乗算するアル曲率行列に対して Damping という工夫を施す．特に本研究でゴリズムは，数値最適化の文脈ではよく知られている [1]．こは，Tikhonov Damping という Damping 手法を用いる．これ

れらの方法は以下で説明するアプローチを用いて，一般ガウスは曲率行列 B に対して λI を足すことで，固有値の値を正にしニュートン行列について Schraudolph（2002）によって一般化

ようとする手法である．つまり Hessian-free optimization にされた [2]．

おいては，Gv の代わりに Gv + λIv = (G + λI)v を用いるこ1
G ≡ |S|∑J T HL Jf と定めたように一般ガウスニュー(x,y)∈S fとに相当する．G に負の固有値が存在してもそれが 0 に近い場

トン行列は 3 つの行列の積のデータセット S に関する平均とし合，非常にうまく機能することが知られている．またこのようて表すことができる．この行列とベクトル v との積 Gv を計算な Damping は一般的な機械学習における正則化として機能すするには，それぞれの行列との積を逐次的に計算すれば良い．

ることも分かっている [6]．

まず，出力におけるヤコビ行列とのベクトル積 Jf v を計算する．

Hessian-free optimization で は λ の 決 め 方 と し て ，

これは Rv (f (x, θ)) を計算することに等しい．次に損失関数のLevenberg-Marquardt (LM) heuristic が有効であるとされて

2∂ L
出力におけるヘッセ行列 HL = ∂a2 は通常簡単に求まるので，いる [6]．LM heuristic では以下のように定義される縮小比率

それと先ほど求められたヤコビ行列ベクトル積 Jf v （つまりベreduction ratio）ρ を用いて λ の調整を行う．

Kクトル）との積を計算する．最後に誤差逆伝播法によって，ヤコビ行列の転置行列 JfT と今求めた行列ベクトル積 HL Jf v とρ≡h(θk + δk ) − h(θk )Mk (δk ) − Mk (0)の積を計算すれば単一データ点 (x, y) におけるガウスニュート

縮小比率 ρ では δk によるパラメータ更新後と更新前に評価されン行列が求まる．データセット全体に対してこの計算をして平る目的関数の差 h(θk +δk )−h(θk ) と，ニューラルネットワークの均を取れば一般ガウスニュートン行列の計算が可能となる．

局所二次近似モデルによって予測される減少量 Mk (δk ) − Mk (0)Algorithm 5 ニューラルネットワークにおける Gv の誤差逆伝播法
input: v mapped to (RW1 , ..., RWK , Rb1 , ..., RbK )の比率を測定する．ρ が 1 よりもはるかに大きい場合，二次近似モデルは予測の減少量を過大に評価してしまっているので，

λ を増加させるべきである．逆に ρ が 1 に近い場合，二次近似が δk 付近ではかなり正確である可能性が高いため，λ を小さRa0 ← 0

くすることが可能になる．LM heuristic では具体的に以下のよ
for for all i from 1 to K do
Rzi ← RWi ai−1 + Wi Rai−1 + Rbi′

うな更新規則を定めている．

3
2
then λ ← λ43
3
1
if ρ < then λ ← λ42if ρ >Rai ← Rzi ϕi (si )end for2∂ L
RDai ← ∂a
2 RaK
Kfor all i from K downto 1 do′

RDsi ← RDai ⊙ ϕi (si )RDWi ← RDsi aT
i−1
RDbi ← RDsi
RDai−1 ← WiT RDsi
end foroutput: Gv as mapped from (RDW1 , ..., RDWK , RDb1 , ..., RDbK )Algorithm 6 Hessian-free optimization
inputs: θ1 , λδ0 ← ⃗0k←1
while solution is not satisfactory do′

Select a mini-batch S ⊂ S of training cases for the gradientb ← −∇h(θk ) on S′

Select a mini-batch S′′⊂ S of training cases for the curvature

Compute a preconditioner P at θkCompute a damping matrix Dk

3. 5. 4 Damping

Define A(v) ≡ G(θk )v + λDk v on S

Gv の計算的な工夫によって，Hessian-free optimization に

Choose a decay constant ξ ∈ [0, 1]

共役勾配法をより効率的に適用することが可能となった．しかしながら，ニューラルネットワークに二次最適化を適用する上で，ヘッセ行列の正定値性という非常に大きな問題が残されている．ヘッセ行列が正定値の時，局所二次近似をした損失関数
が狭義の凸関数となるため凸最適化が可能となる．凸最適化が′′δk ← PCG (b, A, ξδk−1 , P )Update λ with the Levenberg-Marqurt method
Choose/Compute a learning rate αθk+1 ← θk + αδkk ←k+1end while

可能ということは，本来の目的関数における局所最適解が近似関数においては大域最適解になることを意味する．一般に—6—

3. 6 Adaptive Hessian-free optimization

MNIST

5

本研究では，Hessian-free optimization のパラメータ更新部
分に Momentum 法と Adam における計算的な工夫を取り入れ

SGD
Momentum SGD
Adam
HF
HF+Momentum
HF+Adam4
cross entropy loss

た 2 種類の最適化手法を提案する．つまり，アルゴリズム (6) 中のパラメータ更新部分，θk+1 ← θk + αδk で Momentum 法の指数関数的に減衰する速度ベクトル v を導入する工夫と，Adamの標準化に相当する計算的な工夫を取り入れる．Momentum法の工夫では，降下方向である δ の一次モーメントのみを保持

3

2

1

しておき，速度ベクトル v によって過去の δ の寄与を調整する．
0

Adam の工夫では，降下方向である δ の履歴情報を保持してお

0

250

500

750
1000
iteration

1250

1500

1750

き，その一次モーメントと二次モーメントを計算し，それらを図 3 MNIST での訓練損失の減少

用いてパラメータの更新を行う．これにより δ の統計的な分散を減少させ，より安定した最適化を期待する．また，パラメー
タ更新部分には Momentum 法と Adam 以外の適応的一次最適10化手法の工夫を取り入れることも可能である．

9

CIFAR-10
SGD
Momentum SGD
Adam
HF
HF+Momentum
HF+Adam8
cross entropy loss

4 研究手法の評価実験
実験には学習モデルとして，入力層・中間層 1 層・出力層という 3 層の浅いニューラルネットワークを使用した．中間層のユ

7
6
5
4
3

ニット数は 300 個に設定した．データセットには，MNIST 手

2

書き数字データセット，CIFAR-10 データセットと CIFAR-100

1

データセットを用いて画像分類タスクを行なった．以下にデー0

タセットの詳細を記す．

200

400

600

800 1000
iteration

1200

1400

1600

図 4 CIFAR-10 での訓練損失の減少

4. 1 データセット
MNIST
0 から 9 の 10 クラスにラベル付けされた，28 × 28 サイズの犬や飛行機など 10 クラスにラベル付けされた，32 × 32 サイ

15.0
cross entropy loss

CIFAR-10

SGD
Momentum SGD
Adam
HF
HF+Momentum
HF+Adam

17.5

60,000 枚の手書きの数字が描かれたモノクロ画像データセット．
50,000 枚を訓練用に用いて 10,000 枚をテスト用に用いた．

CIFAR-100

20.0

ズの 60,000 枚のカラー画像データセット．50,000 枚を訓練用

12.5
10.0
7.5
5.0

に用いて 10,000 枚をテスト用に用いた．

2.5

CIFAR-1000100 クラスにラベル付けされた，32 × 32 サイズの 60,000 枚のカラー画像データセット．50,000 枚を訓練用に用いて 10,000

200

400

600

800
1000
iteration

1200

1400

1600

図 5 CIFAR-100 での訓練損失の減少

枚をテスト用に用いた．

4. 2 実 験 方 法

4. 3 実 験 結 果

それぞれのデータセットごとに，一次最適化手法として実験の結果，どのデータセットでも二次最適化手法の方が，SGD，MomentumSGD，Adam，二次最適化手法として HF，訓練損失が収束に到るまでの反復回数においては大幅に改善

HF+Momentum，HF+Adam という合計 6 種類の最適化手法

されているいることが分かる．二次最適化手法どうしの比較を用いて訓練損失に関する学習曲線の収束の様子を比較した．

をしてみると，MNIST では分かりにくいが，CIFAR-10 と通常，機械学習タスクでは訓練誤差ではなく汎化誤差をどれだ

CIFAR-100 においては AdaptiveHF が HF よりも最終的な損け減らせるかが重要となる．しかしながら，汎化性能をどれだ

失関数の値が低くなっていることが分かる．

け向上させられるかは最適化手法の性質よりもモデルの性質に依存する場合の方が多いため本研究の実験では訓練損失にのみ注目することにした．

5 結論

本研究では，Hessian-free optimization という二次最適化手法を用いて，そのパラメータ更新部分に適応的一次最適化手—7—

法の計算的な工夫を取り入れた手法を提案した．3 種類の画像

for second-order gradient descent”, Neural Computation,

データセットを用いて分類タスクの実験を行なった結果，訓練

2002.

損失を損失を最小化するという意味では AdaptiveHF が有効であることが示唆された．CIFAR-10 と CIFAR-100 においては，最終的な損失関数の値が AdaptiveHF の方が HF よりも小さくなっているだけではなく，HF の値よりも安定していることが分かる．今回の実験では，画像分類タスクに使用したモデル[3] J. Martens, “Deep learning via Hessian-free optimization”,
In ICML, 2010.
[4] J. Martens and R.Grosse, “Optimizing neural networks withkronecker-factored approximate curvature”, 2015.
[5] A. Botev, H. Ritter, D. Barder, “Practical Gauss-Newton
Optimization for Deep Learning”, In ICML, 2017.

として中間層 1 層の浅いフィードフォワードニューラルネット[6] J. Martens and I. Sutskever, “Training Deep and Recurrent

ワーク（FNN）を用いた．これは実装上，FNN 以外の複雑なNetworks with Hessian-Free Optimization”, Neural Net-

ニューラルネットワークモデルに HF を適用することが難しいためである．一般に画像分類のようなタスクでは，浅い FNNによる汎化性能は期待できない．今後の課題として，畳み込
みニューラルネットワーク（CNN）や再帰型ニューラルネット
ワーク（RNN）の重みパラメータ最適化に HF をはじめとする

works: Tricks of the Trade, p.479-535, 2012.
[7] C. M. Bishop, “Exact Caluculation of the Hessian Matrix for
the Multi-layer Perceptron”, Neural Computation, p.494501, 1992.
[8] J. Duchi, E. Hazan, Y. Singer, “Adaptive Subgradient
Methods for Online Learning and Stochastic Optimization”,

二次最適化手法を用いるということが挙げられる．これによっ

Journal of Machine Learning Research, 12, 2121–2159, 2011.

て汎化誤差を改善することが可能になり，より実用的なアプリ[9] Y. Nesterov, “A method for unconstrained convex mini-

ケーションとして Adative HF を用いることができるようにな

mization problem with the rate of convergence o(1/k2)”,

る．また，本研究では Hessian-free optimization のパラメータ

Doklady ANSSSR (translated as Soviet.Math.Docl.), vol.

更新部分 θt+1 ← θt + αδt に適応的な工夫を加えたが，一般ガ
ウスニュートン行列と勾配ベクトルとの積 Gv を計算する部分にも同様の工夫を取り入れることが考えられる．この工夫は過269, pp. 543– 547, 1983.
[10] I. Sutskever, J. Martens, G. Dahl, G. Hinton, “On the importance of initialization and momentum in deep learning”,
2013.

去の曲率行列を用いることで，現在の曲率行列のみで損失関数[11] N. Qian, “On the momentum term in gradient descent learn-を局所二次近似したモデルよりも安定した近似が可能になり，

ing algorithms”, Neural Networks : The Oﬃcial Journal of

効率的な最適化につながるのではないかと考えられる．二次最the International Neural Network Society, 12(1), 145–151,

適化手法として，Hessian-free optimization はヘッセ行列の逆行列計算を Hv の効率的な計算によって回避した手法である．

KFAC や KFRA のような逆行列計算自体を近似的に計算する手法で，過去の曲率行列を使用するという Adaptive な計算的工夫を取り入れるということも効率的な最適化を行う手法として期待できる．

1999.
[12] D. P. Kingma and J. L. Ba, “Adam: a Method for Stochastic Optimization”, ICLR, 2015.
[13] Y. Dauphin, R. Pascanu, C. Gulcehre, K. Cho, S. Ganguli,
Y. Bengio “Identifying and attacking the saddle point problem in high-dimensional non-convex optimization”, 2014.
[14] A. Martin, “Saddle-free Hessian-free Optimization”, NIPS
Workshop on Nonconvex Optimization for Machine Learn-

6 謝ing, 2016.

辞[15] S. Amari, “Natural Gradient Works Eﬃciently in Learning”,

本研究に取り組むに当たって，ご指導してくださった筑波大
学図書館情報メディア系手塚太郎准教授に心より感謝いたします. 日頃から様々な観点からアドバイスを頂き，本論文を執筆することができました. また，筑波大学図書館情報メディア系
若林啓助教授には手塚若林研の合同ゼミや合同合宿でアドバイ

Neural Computation, 1998.
[16] G. Stephen, “A survey of truncated-Newton methods
Stephen”, 1999.
[17] J. Shewchuk, “An introduction to the conjugate gradientmethod without the agonizing pain”, 1994.

スを頂き，大変参考になりました. ありがとうございます. 幸[18] H. Xi, M. Dheevatsa, S. Mikhail, T. Martin, “Distributed

運なことに筑波大学情報学群知識情報・図書館学類の手塚研究

Hessian-Free Optimization for Deep Neural Network”, 2016.

室，若林研究室の友人や先輩にも恵まれました. 友人や先輩との議論によって，大変有意義な研究生活を送ることができました. 本当にありがとうございます. また、本研究は JSPS 科研
費 JP16K00228,JP16H02904 の助成を受けたものです．感謝いたします。

文

献[1] J. Nocedal and S. J. Wright, “Numerical Optimization”,
1999.
[2] N. N. Schraudolph, “Fast curvature matrix-vector products—8—