Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
講義ノート(改訂版:2016.07.22)
「今日からできるスパースモデリング」大関真之 1
京都大学 大学院情報学研究科システム科学専攻
1 目標本講義では、「圧縮センシング」と「ボルツマン機械学習」を通して、高次元データからの確率的情報処
理に基づき、本質を自動的に抽出するスパースモデリングの実践的学習を行う.「今日からできる」とあるように、実際に何を計算すれば所望の量が得られるのか、ということを中心に紹介する.奥深い数理的な背景に至るまで網羅するつもりはなく、即実践できるようにするのが目的である.そもそもスパースモデリングとは何か.スパース性と呼ばれる本質部分に関わるものが疎であるという
性質を駆使して、高次元データから説明変数のうち本質的な寄与をするものだけを自動的に抽出することができるように工夫をする枠組みである.その威力を最も分かりやすい形で発揮する圧縮センシングを取り上げ、高次元データからの本質の抽出を行い、高精度の識別精度を持つ深層学習の基礎ともなるボルツマン機械学習を取り上げる.
2 圧縮センシングの基礎知りたいものがあるときには、必ずその知りたいものに触れる必要がある.その結果、知りたいものに関
する情報を収集すること、これを観測と呼ぶ.情報の収集を行う計測の困難さに伴うコストがかかり、十分な情報を得ることができない場面が多々ある.そのときに不足した情報から、知りたいものを満足の行く形で再現できるか?できるとすれば、少ない情報から多くの重要な知見を得ることができる.できるとすれば、コストのかかる観測を減らすことができる.圧縮センシングは、観測過程と不足した情報から知りたいものを再構成する技術を組み合わせることで、上記の期待に応える新技術である.
2.1 連立方程式中学生のときから登場した連立方程式.いい思い出も悪い思い出もあるかもしれない.このときに教わっ
たことは、「未知数の数と方程式の数が同じ」ではないといけないよ、ということだ.例えば、
2x1 + x2 = 1 (1)
を解きなさいといわれたとき、どうだろう.x2 = −2x1 + 1と式変形をして戸惑うだろう.いろんな x1 に対して、x2が決まり、結局一組の (x1, x2)を完全に決定することはできない.いわゆる不定というやつだ.この事実は大学生になり、行列とベクトルを自在に操るようになり、線形代数に親しんだ後でも変わらない.N 次元の実数値ベクトル xにたいして、以下の方程式が存在するとしよう.
y = Ax (2)
このときにM 次元の実数値ベクトル yの詳細が分かっているとする.また行列 AはM ×N 行列であり、方程式の中身について表しており、これも分かっているとする.そのとき未知数 xを求めなさい.立派な連立方程式の問題である.
1E-mail: [email protected]
3
あ、逆行列を求めればいいんだ!大学の学部教育の薫陶を受けただけある、良い反応だ.しかしながらM = N の場合でなければ逆行列を求めることはできない.わざわざM とN と文字を変えたのだから、異なる場合を考えたい.しかもM < N という、方程式の数が少ない劣決定系を扱う.(逆は優決定系(過剰決定系)と呼ばれる.)教科書通りでは、ここで終わってしまう.
2.2 解選択方程式の数が足りないということは、決定する条件が足りないということだ.条件が足りないのだから、
もう少し条件があれば解を決定することができる.例えば予め解が分かっているのであればそれを代入しておくことで、実効的にN を減らすことが可能である.それでは予め解が分かっていて、xの各成分がほとんど 0であるとする.この場合は 0をとる成分は方程式から除外することができる.非零の個数をK とすると、M 個の方程式から、実質的にはK 個の非零成分を求めるという話になるのだからM < N であったとしても、M > K であれば、解くことが可能である.このようにほとんどの成分が零を持つ、または持つだろうと期待される性質をスパース性と呼ぶ.またそうした性質を持つ解をスパース解と呼ぶ.�劣決定系におけるスパース解 �
N 次元の未知ベクトル xに対して、M 次元の実数値ベクトル yとM ×N の観測行列 Aにより、以下の関係を持つとする.
y = Ax (3)
ここでM < N であっても xの成分のうちほとんどが零をとる(スパース性を持つ)とき、非零成分の個数K がM > K であれば、解が求められる.� �しかしその本質的なK 個の非零成分はどこにあるのか?については未知であるとしよう.そのときにど
うすれば解が求められるか?残念ながら、決定的な方法は存在せず、N 個の成分の中からK 個の成分を取り出し、ひたすら y = Axを満たすものを探すという方法をとらざるを得ない.N 個のなかからK 個を取り出す組み合わせの数は、N が大きくなるにつれて、一般に指数関数的に増大していく.非常に高次元な問題について、このような計算を行うのは現実的ではない.またK 個の非零と気楽にいうが、K という数字は知っているのだろうか?これも知っているとは限らない.そのため、この非零成分の個数についても未知であるときに、どのような方策をとり、y = Axの方程式を満たす解を探せばよいだろうか.
2.3 L1再構成解がスパース性を持つとすると、方策として考えられるのは、できるだけ非零の成分を少なくして(零成
分を多くして)方程式の解を満たすものを探すというものである.�L0 再構成 �スパースな解を求めるために、以下の最小化問題を解く.
minx
∥x∥0 s.t. y = Ax (4)
ここで ∥x∥0 を xの L0 ノルムと呼び、xの非零成分の個数を表す.� �しかしながらこれを厳密に解くためには、非零成分の個数を動かしながら、そのときにどこが 0になる
のかを仮置きして方程式を満たすものをひたすら探すしかない.そのため計算量爆発の問題があり現実的ではない.そこで、上記の L0ノルムの代わりに、L1ノルムを使ってみよう.L1ノルムとは、各成分の絶対値の和のことである.
∥x∥1 = |x1|+ |x2|+ · · ·+ |xN | (5)
4
この L1ノルムは、零成分を持てば持つほど小さくなり、非零成分については大きさが影響するため、L0ノルムとは違う性質を持つが、L1ノルムをできるだけ小さくすることで、零成分が比較的多めの解を見つけ出すことができるのではないか?という苦肉の策である.しかしこの苦肉の策が意外に良い結果を導いてくれるというのが、スパースモデリングと呼ばれる枠組みの成功の鍵を握る.�L1 再構成 �
スパースな解を求めるために、L0 再構成の代わりに、以下の最小化問題を解く.
minx
∥x∥1 s.t. y = Ax (6)
ここで ∥x∥1 を xの L1 ノルムと呼び、xの各成分の絶対値の和を表す.� �なるほどそういうノリでよければ、L2ノルムはどうだろうか?L2ノルムは、各成分の 2乗和を取り、ルー
トをとったものである.∥x∥2 =
√x21 + x2
2 + · · ·+ x2N (7)
�L2 再構成? �スパースな解を求めるために、L0再構成の代わりに、以下の最小化問題を解いたらどうだろうか?
minx
∥x∥2 s.t. y = Ax (8)
ここで ∥x∥2 を xの L2 ノルムと呼び、xの各成分の二乗和をとり、ルートをとったものである.� �それでは L1 ノルムと L2 ノルムによる最小化問題を比較しながら、スパースな解を求めることができる
か、試してみよう.�例題CS-I:L1 ノルムと L2 ノルムの比較 �以下のふたつの最小化問題を解いてみよう.
minx1,x2
{|x1|+ |x2|} s.t. y = Ax (9)
minx1,x2
{√x21 + x2
2
}s.t. y = Ax (10)
ここで観測行列 Aは、単なる行ベクトルに過ぎず、
A =(
2 1)
(11)
とする.y = 1とする.� �さて、このまま最小化問題を解く前に、制約条件にされている y = Axから、
1 = 2x1 + x2 (12)
であることに注目したい.(x1, x2)の 2次元座標空間上で、傾き −2の直線を描くことがわかる.xを知るために観測行列 Aを作用させた結果、たったいひとつの yを得た.その yから、元の xを求めたいというのがやりたいことである.しかし得られた yは 1次元であり、一方知りたいものは 2次元であるので、この条件だけでは、どの 1点を知りたいものの素性とするべきかは定まっていない状況というわけだ.まずは x2 について解いてみると、
x2 = −2x1 + 1 (13)
を得るので、この結果を最小化するべきふたつのノルムに組み入れてみよう.最小化(または最大化)され
5
る関数のことをコスト関数と呼ぶ.コスト関数が L1 ノルムの場合は
|x1|+ | − 2x1 + 1| (14)
である.絶対値記号を外すために、場合分けを駆使すると
|x1|+ | − 2x1 + 1| =
3x1 − 1 (1/2 ≤ x1)
−x1 + 1 (0 ≤ x1 < 1/2)
−3x1 + 1 (x1 < 0)
(15)
となることがわかる.最小値をとる (x1, x2)を求めてみると、(x1, x2) = (1/2, 0)であり、スパースな解を選ぶことに成功している.一方 L2 ノルムの場合は、最小化するべきコスト関数は√
x21 + (−2x1 + 1)
2=
√5
(x1 −
2
5
)2
+1
5(16)
となり、最小値をとる (x1, x2)を求めてみると、(x1, x2) = (2/5, 1/5)であり、スパースな解とはならないことがわかる.このように明確に最小化するべきコスト関数部分により、うまく解が選択されて、スパースな解を求めるには、L1 ノルムが有効であることがわかる.ここで強調したいのは、制約条件だけでは定まらない、すなわち観測情報だけからは完全に解を定める
ことができない.しかしその中で、適切なコスト関数の利用により、スパースな解を選ぶことにしている.その解が正しいかどうかはまだ議論していないが、スパースな解を選んでいることに注意したい.少なくともスパースな解を得たいというとき、スパースな解が十分に期待される場面では強力な処方箋であることがわかる.この事実は読み方を変えれば、劣決定系の問題が与えられたときに、色々な解がある中で積極的にスパー
スな解を選ぶことにより、その条件を満たすために重要な成分はどこなのか?ということに答えることができる.これがスパースモデリングのひとつの重要な技術となる変数選択である.
2.4 直観的な理解上記の具体的な計算による慣れがあるなら、次の図の説明による理解が更に助けとなることだろう.2次
元座標空間 x1, x2)上で、これまで扱ってきた例題 CS-Iについて幾何学的に考察してみよう.まず制約条件は x2 = −2x1 + 1という直線を描く.L2ノルムは、x2
1 + x22 = r2とおけば、半径 rの円を描くことが分か
る.制約条件を満たす原点を中心とする円を描くと、ちょうど円と直線が接するときであることがわかる(図 1).一方 L1 ノルムは絶対値の場合分けを繰り返すことにより、x1、x2 軸上に先端を持つ原点を中心とする菱形で表すことができる.制約条件を満たす菱形を描くと、同様に菱形と直線が接するときであることがわかる.なおかつ原点に近い先端を持つものが最小化問題の解である.(図 2)この図を見ると明らかなように、L1ノルムは尖っているために、スパースな解を出す能力に長けているということがわかる.そうかなるほど、尖っているならばそれで良いではないか、他のノルムはどうだろうか?ベクトルの Lpノルムを以下のように定義する.
∥x∥p = p√
|x1|p + |x2|p + · · ·+ |xN |p (17)
用語が割と混同されて使われることが多いので適宜定義に注意するべき量である.この pを p → 0と持っていった極限が上記で利用したL0ノルムである.しかしL0ノルムは、ノルムの性質(斉次性:f(ax) = akf(x))が満たされないため、やや違和感が残るが、圧縮センシングでは便宜のため、L0「ノルム」と呼ぶ.さて0 ≤ p ≤ 1であれば、図で描けば分かるように、「尖っている」ため、L1ノルム同様にスパース解を得る能力は十分にある (図 3).
6
図 1: L2 ノルム最小化の様子.
図 2: L1 ノルム最小化の様子.
2.5 圧縮センシングさてノルムの性質により、このような解選択の技術が得られることがわかった.そのときに問うべき問題
は、本当にスパースな解が欲しいのか?本当の解はスパースな解なのか?である.前者は、変数選択について焦点を絞ったものである.方程式の真の解に興味が無く、少なくともその方
程式を満たすことのできる数少ない変数の組み合わせは無いか?という探索を行う場合に重要な問いである.これは身に覚えがある人がいるだろう.色々あれやこれやと説明を繰り返されたときに、要するに何が重要なの?という問いをしたくなるときがある.その重要な部分を自動的に抽出するのが変数選択である.これは多くの実験屋が求めている方策ではないだろうか.次に後者は、変数選択というよりも真の解を求めるという立場に立ったときに、スパースな解が妥当であ
るかどうかについて考える必要がある.本来的にスパースな解を持つ方程式の問題に対して、スパース解を選択的に選び出す方法は絶大な効果を持つ.�圧縮センシング �
知りたいものを表す N 次元の入力ベクトル x0 に対して、観測と称して線形変換を施す.その変換行列を Aとしたときに、M 次元の出力ベクトル yを得るとする.
y = Ax0 (18)
7
図 3: Lp ノルム最小化の様子.
このとき、知りたいもの x0はスパース性を期待することができるとする.そのとき L1ノルム等を利用してスパースな解 xを得るときに、ある条件のもとでは x = x0 となることがある.� �実際の実例を紹介しよう.N = 1000次元のうちK = 20個のみが正規分布に従うランダム変数を持つ原
信号と正規分布に従うランダム変数を持った観測行列を適用して得られたM = 100次元の出力ベクトルを図 4に示す.これを L1ノルム最小化によってスパースな解を得ると見事に入力ベクトルと一致する結果を
0 100 200 300 400 500 600 700 800 900 1000−2.5
−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
index of x0
ampli
tude
of si
gnals
0 10 20 30 40 50 60 70 80 90 100−15
−10
−5
0
5
10
15
index of y
ampli
tude
of si
gnals
図 4: N = 1000次元のうち K = 20個の非零をもつ入力ベクトル(左)とM = 100次元の出力ベクトル(右).
得る.一方 L2 ノルムではそのような結果は得られない(図 5).ここで注意したいのは、圧縮センシングという枠組みは、劣決定系の方程式からスパースな解を得るノルムの性質を活かして、更に厳密に知りたいものを当てる.情報科学の名探偵なのだ.特に L1 ノルムの最小化による原情報推定を基底追跡(Basis
Pursuit)と呼ぶ.�基底追跡(Basis Pursuit) �以下の最小化問題を解くことにより、M 次元の出力ベクトル yからスパースな原情報 x0 を高い
8
0 100 200 300 400 500 600 700 800 900 1000−2.5
−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
0 100 200 300 400 500 600 700 800 900 1000−2.5
−2
−1.5
−1
−0.5
0
0.5
1
1.5
2
index of x by L1 norm
ampli
tude
of si
gnals
index of x by L2 norm
ampli
tude
of si
gnals
図 5: L1 ノルムによる再構成結果(左)と L2 ノルムによる再構成結果(右).
確率で得ることができる.
minx
∥x∥1 s.t. y = Ax (19)� ��例題CS-II:原信号推定 �スパースな原信号ベクトル xT
0 = (1/2, 0)に対して、A = (2, 1)を作用して y = Ax0 = 1のみが得られているとする.基底追跡により、スパース解を選択することにより原信号ベクトルを推定せよ.� �例題 CS-Iと解くべき最小化問題は同じである.そのため推定される解は xT = (1/2, 0)である.ぴった
りと原信号と一致しており、正解を当てていることがわかる.おお、すごいと単純に思ってはいけない.スパースな原信号ベクトルが実は xT
0 = (0, 1)であった場合はどうだろうか?そのとき A = (2, 1)を作用すると y = Ax0 = 1が再び得られるため、推定される解は xT = (1/2, 0)であるから、原信号と異なる.しかしながらそういう意地悪な例でなければ、とりあえず当てることができるようだ.この性質は一般に成立するのだろうか?その問いに答えるには積分幾何学 [1, 2]または情報統計力学 [3, 4]による解析を行う必要があるので、とりあえずは解答をするに留める.�圧縮センシングの性質 �
観測行列 Aが各成分平均 0、分散 1のガウス分布から生成されるとき、以下の条件を満たす曲線を境にして、αが大きく,ρが小さい領域では、L1ノルム最小化により非常に高い確率で原信号の推定に成功する.
1
α= 1 +
√π
2te
t2
2 {1− 2Q(t)} (20)
ρ
1− ρ= 2
(e
−t2
2
t√2π
−Q(t)
)(21)
ここで α = M/N、ρ = K/N であり、
Q(t) =
∫ ∞
t
ex2
2
√2π
dx (22)
である(図 6).� �9
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
図 6: L1 ノルム最小化による再構成が可能な領域と不可能な領域の相境界の様子.
この発見が圧縮センシングの隆盛のきっかけとなり、実際にMRI画像等の応用例 [5]により爆発的な流行を迎えた.ただスパース解を選択するだけではなく、そこに正解を当てるという要素があり、適当なものを選ぶというわけではないところが重要である.そこでより観測の実態に根ざした現実的な状況において、圧縮センシングの枠組みを適用することを考えて行こう.
2.6 ノイズ有り圧縮センシング観測にはノイズがつきものであり、これまで扱って来た等式制約が適切ではない場合がある.加法的ノイ
ズが存在する状況で、線形変換で記述される観測を行った場合に得られる信号は、
y = Ax+ σ0w (23)
と表すことができる.ここでwはM 次元のノイズを表すベクトルであり、σ0 はノイズの強度を表す.ノイズの存在により、y = Axを満たすものからスパースな解を選択するというのはやや無理がある.まずそもそも等式を満たすことができるとは限らないためだ.そこで yと Axのズレをできるだけ小さくしつつ、L1ノルムを小さくするという方策が考えられる.そこで観測に加法的ノイズが入った場合には、以下の最小化問題を解くことでスパースな信号 xを推定しようとする.
minx
{∥y −Ax∥22
}s.t. ∥x∥1 ≤ a (24)
これは Tibshiraniによって提案され、LASSO(Least Absolute Shrinkage and Selection Operators)と呼ばれる [6].不等式制約条件は、スパースな解を得るために導入したものであり、aはスパース性を制御するパラメータである.コスト関数部分は、最小二乗法で用いられるものであり、観測結果との誤差を押さえつつ、スパース性を獲得した解を得るものと解釈できる.ラグランジュ未定乗数をもちいて、以下の最小化問題に帰着させることができる.
minx
{1
2λ∥y −Ax∥22 + ∥x∥1
}(25)
λ > 0はどの程度ズレを許容するかを表すパラメータ(ラグランジュ未定乗数)である.λ → 0とすれば、少しでも yと Axの間にズレが生じるとコスト関数が非常に大きな値をとり、ズレに対して鋭敏な変化を示すようになる.少しのズレも許容しない.つまり等式制約 y = Axを課した場合と同様となる.一方 λを緩めて大きな値を使うと、多少のズレがあっても許容できるするという格好だ.ノイズの強度があまりに
10
大きくて、yが信用ならない場合には λを大きめ、逆に yを大事にしたい場合は λを小さめにするという直観的な方策のもとパラメータを決定する.圧縮センシングを実際のデータに適用する場合には、式(25)を解くことにより実践する.(また式(25)を称して LASSOと呼ぶことも多い.)
2.7 ベイズ推定との関係LASSOは素直に導入できる最小化問題であり、取得されたデータ yと観測方法における詳細Aから原情
報にあたる xを推定する直観的なアルゴリズムといえる.もう少しだけ数理的背景を理解するために、入出力関係に基づいて得られた出力情報から背後にある入力関係を推定する確率的推論の枠組みについて紹介しよう.ある入力情報にある変換を経たのち、出力情報が得られるときの関係を入出力関係と呼ぶ.このときに不
確実な要素が取り込まれた場合に確率的推論の枠組みが必要となる.決定的な入出力関係であれば、それを表現するには関数が用いられる一方で、確率的な入出力関係を取り扱うためには、条件つき確率が用いられる.今の場合、入力情報 xと観測の詳細 Aが与えられたときに、出力情報 yを得る確率であるから、P (y|A,x)という条件付き確率を考える.条件付き確率に慣れ親しんでいない読者もいるだろう.この条件付き確率は、一般に以下の定義を持つ.
P (A,B) = P (A|B)P (B) = P (B|A)P (A) (26)
ここで P (A,B)は Aと Bの事象が同時に起こる確率.P (A|B)は Bが起こった上で、Aが起こる条件付き確率、P (B|A)は Aが起こった上で、Bが起こる条件付き確率である.3つ以上の事象間の関係でも同様である.
P (A,B,C) = P (A|B,C)P (B,C) = P (A,B|C)P (C) (27)
さてこの定義にもとづき、ベイズの定理を紹介しよう.�ベイズの定理 �条件付き確率の間には、以下の関係が成立する.
P (A|B) =P (B|A)P (A)
P (B)=
P (B|A)P (A)∑A P (A,B)
=P (B|A)P (A)∑A P (B|A)P (A)
(28)
ふたつめの等式では P (B) =∑
A P (A,B)となる事実を用いた.� �ベイズの定理を用いると、Aと Bの事象の順番が反転していることに注意したい.またベイズの定理を
利用するときにはこの表式に拘る必要はない.結合確率と条件付き確率の定義から導けばよい.このベイズの定理を用いて、出力情報 y、観測の詳細 Aを知っているときに入力情報を確率的に推定す
る方法を考える.まずベイズの定理(結合確率と条件付き確率の関係)を機械的に用いれば、
P (A,x,y) = P (x|A,y)P (A)P (y) = P (y|A,x)P (A)P (x) (29)
であるから、P (x|A,y) = P (y|A,x)P (x)
P (y)(30)
となる.これを用いて入力情報 x の推定値を計算すればよい.ここで少しだけ用語の説明をする.まずP (y|A,x)であるが、条件付き確率と同じ格好をしているが意味合いは異なる.yは既に得られているので、の実現値を代入するべきで、その実現値がA,xに対してどれだけ尤もらしいかを表す尤度関数と呼ばれる.Aはもちろんのこと xもどのようなものを入れるかにより、yの実現があり得るかあり得ないかは変わるはずで、その度合いを示している.さらに P (x)は xに対する事前確率と呼ばれており、xが選択される確率を示している(実現値が存在しないのでこちらは確率!)これらの積からできる左辺は、P (x|A,y)は事
11
後確率と呼ばれる.yおよび Aという実現値を持っているときに xが選ばれる確率を示す.この事後確率にもとづき、確率的に xを得ることで確率的推論を行う.後に述べるマルコフ連鎖モンテカルロ法などにより、サンプリング的に xを求めることも可能であり、この事後確率の最大化により最頻値の xを求めることも可能である.特にここでは最大事後確率(Maximum A Posteriori)推定を紹介する.最大事後確率推定は以下の最大化問題を解くことで実行できる.
xMAP = argmaxx
{logP (x|A,y)} (31)
それでは圧縮センシングの問題において、この事後確率を求めてみよう.まず必要なのは、尤度関数P (y|A,x)
である.これは観測行列 A、入力情報 xが与えられたときに yがどのような確率に従って出力されるかを考えれば良い.ノイズ有り圧縮センシングにおいては、式(23)をみてもらうと、ノイズという不確実要素がある.この不確実要素であるノイズが、ガウス分布に従うと仮定する.
P (w) =1√2π
exp
(−1
2wTw
)(32)
Aと xからノイズを含んだ形での出力情報 yを得る確率は、ノイズがどのような値をとるかの確率によってきまる.そこでノイズwについて式(23)を変形すると、
w =1
σ0(y −Ax) (33)
であるから、尤度関数は
P (y|A,x) = P (w) =1√2π
exp
(− 1
2σ20
∥y −Ax∥22
)(34)
であることがわかる.次は事前確率である.xについてどんなものがあり得るかを導入することができる.例えば大きさがそこまで大きくならないとすれば、
P (x) =
√κ
2πexp
(−κ
2∥x∥22
)(35)
というものを設定しても良いかもしれない.このときに最大事後確率推定を行えば、解くべき最適化問題は、
xMAP = argmaxx
{− 1
2σ20
∥y −Ax∥22 −κ
2∥x∥22
}(36)
となる.符号を変えれば、これは LASSOの L1 ノルムの代わりに L2 ノルムを利用したものとなっていることがわかる.そうなれば要領は得ただろう.事前確率として L1 ノルムを用いた形
P (x) ∝ exp (−κ ∥x∥1) (37)
を利用すれば、最大事後確率推定により、
xMAP = argmaxx
{− 1
2σ20
∥y −Ax∥22 − κ ∥x∥1
}(38)
λ = κσ20 とすれば、LASSOの最小化問題(25)に帰着することが分かる.つまり圧縮センシングは、解の
事前情報としてスパース性を採用した最大事後確率推定により原情報推定を行うことと理解することができる.
3 圧縮センシングの実践ここまでくれば、圧縮センシングの心自体は大分理解できているものと思われる.出力情報と入力情報の
関係性について注目しつつ、入力情報の事前知識にもとづいて解の選択を行う.実際に解がスパース性を持つものであれば、L1ノルムによる解選択の性質を利用して正解に到達することができる.それでは次に実践編として、LASSO型の最小化問題を解く方法について学んで行こう.
12
3.1 そもそもスパースな解ってなんだろう?圧縮センシングは、解のスパース性に注目して劣決定系の連立方程式を解くことで、少ない観測数から重
要な情報部分となる非零成分を推定する.その解のスパース性は、そもそもどれだけ期待できるものなのだろうか.その回答の典型的なものが、実際の画像圧縮に用いられるフーリエ変換やウェーブレット変換による疎性の獲得であろう.ここでウェーブレット変換をしたのちに、ウェーブレット係数の 95%を絶対値が小さい順から 0にして、ウェーブレット逆変換を施して得られた画像をみてみよう(図 7).見た目にはそれほど影響しないことが見て取れるであろう.このように xそのものではなく、何らかの変換を経て、
original image reconstructed image
図 7: 原画像と絶対値の小さいものから 95%のウェーブレット係数を 0にしたものからの再構成結果の比較.
そして本当には零となっていないものの、本質的な部分だけに注目すれば、その部分だけを残すことで、スパース性を獲得することが期待される場合がある.そのようなスパース性を促す変換を求めることも、圧縮センシングの幅広い応用を可能とさせるため重要な発展に資する.このようにある線形変換 B をした先で、スパース性が期待される場合、解くべき最小化問題は、
minx
{1
2λ∥y −Ax∥22 + ∥Bx∥1
}(39)
とするべきであろう.この場合は逆変換 B−1 が存在する場合、z = Bxとおき、
minz
{1
2λ
∥∥y −AB−1z∥∥22+ ∥z∥1
}(40)
を代わりに解けば良いので、本質的に LASSOを解けば良いことに変わりは無い.逆変換が非自明な場合は、このような単純な計算回避はできないが、計算アルゴリズムの工夫により回避する.
3.2 観測過程次に観測行列 Aについてである.そもそも線形観測で表現できる問題があるのだろうか.圧縮センシン
グはMRIを始めとする医療画像での応用例が豊富である.MRIではプロトンの密度を測定するために、核磁気共鳴を利用して、核スピンの歳差運動から生じる電磁波を外部の受信コイルで誘導起電力として感受することにより情報取得を行う.この過程は実はフーリエ変換、つまり線形変換で記述することができる.そのため圧縮センシングの典型的な定式化に乗せることが容易い.本来はM = N に及ぶ情報取得を行わなければならないところを、圧縮センシングの適用により、M < N として縮減することが可能であり高速撮像が実現する.スパースモデリングの利用例で挙げられる(NHKサイエンス ZEROでも取り上げられ
13
た)ブラックホール撮像の例では、電波望遠鏡で受光する情報がやはり同様にフーリエ変換で記述されるものである [7].この場合は本質的に観測数が不足しているため、見られなかったものを見られるようにするテクノロジーとして圧縮センシングが利用されている.これまでは実空間上で観測対象を順序よく観測していたものを、あえて変更して線形変換で書かれる観
測過程にすることで圧縮センシングの適用を試みるものもある.その最たる例がシングルピクセルカメラである [9].また更に言えば、先ほど見たように圧縮センシングの背後にはベイズ推定があり、解くべき最小化問題は
最大事後確率推定から定式化されることがわかっている.特に観測にかかるノイズがガウス分布に従うものと仮定したときに LASSO型の最小化問題に帰着した.ガウス分布以外の特性を持つノイズの場合であっても、同様に最大事後確率推定から定式化することによって圧縮センシングの適用範囲を拡大することができる.非常に広い応用範囲があることが理解されよう.
3.3 再構成アルゴリズムさてそれでは圧縮センシングの重要性や数理的背景をおさえたところで、実際に使うために、原情報推定
のための再構成アルゴリズムを理解していこう.非常に多くのアルゴリズムが提案されているが、根本となる基本知識で十分に理解ができるものを選んで紹介する.L1ノルムを含む最小化問題で一番厄介だったのは絶対値関数の扱いであろう.その絶対値関数部分を外
すためには場合分けをしていたためだ.そこで絶対値関数があることの難しさについて、再び考えてみよう.最小化(または最大化)問題を解くときに、慣れ親しんだ方法はどんな手法があるか?微分を調べるというものであろう.微分が 0を取るとき、関数の変化が上昇から下降、または下降から上昇に転じるためだ.そのため最小値、最大値を調べるときには微分をとるというのが常套手段であった.この性質を数値計算の方法として採用したものが勾配法である.�勾配法 �
以下で与えられる最小化問題を解くことを考える.
minx {f(x)} (41)
コスト関数 f(x)が微分可能であるとき、その微分により、適当な初期点 x[0]から次の反復計算を行う.
x[t+ 1] = x[t]− δ∇f(x) (42)
ここで δは更新幅を決めるパラメータである.� �ここでコスト関数は凸関数であるとする.凸関数である場合には単純な勾配法の適用と適切な更新幅に
よって、最適値に行き着くことが知られている.圧縮センシングで取り扱われる問題は、幸いなことに凸関数であるため、勾配法の適用で、最適値に行き着くことができそうだ.しかし L1ノルムを含むコスト関数の最小化をしようと考えると、絶対値関数は微分可能ではない関数のため、素朴な勾配法の適用ができない.これは困ったことだ.ただし以下で考察するように最小化問題を解くために必ずしも微分を必要とはしないことに注意しよう.�例題CS-III:絶対値関数のある最小化問題 �
以下の最小化問題を解け.
minx
{|x|+ 1
2λ(y − x)
2
}(43)
ここで yは適当な実数、λ > 0である.� �14
絶対値関数があるときは、場合分けをすればよい.まず x > 0のときを考えてみよう.
minx>0
{x+
1
2λ(y − x)
2
}(44)
これは簡単な平方完成で解くことができる.まずコスト関数は、以下のように変形することができる.1
2λ{x− (y − λ)}2 + y − λ
2(45)
頂点の位置から x = y − λが最小値をとるところであるといいたくなる.しかし x > 0という条件に注意しなければならない.y − λ > 0のときは、頂点を採用して、一方、y − λ ≤ 0のときは、放物線が頂点から離れるほど単調増加であることから、xの定義域のなかで頂点に最も近い x = 0が最小値を与える (図8).よって、x ≤ 0の場合も同様にして最小値 x∗ は、
図 8: x > 0に限った場合のコスト関数の振る舞い.
x∗ = Sλ(y) (46)
となる.[問:確認せよ]
ここで
Sλ(y) =
y − λ (y > λ)
0 (−λ ≤ y ≤ λ)
y + λ (y < −λ)
(47)
とした.Sλ(y)を軟判定しきい値関数(Soft thresholding function)と呼ぶ (図 9).このように絶対値関数でも、1次元であれば頑張って場合分けをして最小化問題をとくことはできる.多次元であっても、以下のような状況であれば解くことができる.�例題CS-II:L1 ノルムのある最小化問題 �
以下の最小化問題を解け.
minx
{|x|+ 1
2λ∥y − x∥22
}(48)
ここで λ,yは適当な実数である.� �L1ノルムも、L2ノルムも分離性を持つ.分離性とは、各成分独立に計算が実行できる形をもっているこ
とである.実際、L1 ノルムはその定義から
∥x∥1 = ∥x1∥+ ∥x2∥+ · · ·+ ∥xN∥ (49)
15
図 9: 軟判定しきい値関数の振る舞い.
と各成分の絶対値の和であり、L2 ノルムも、2乗すれば、
∥x∥22 = x21 + x2
2 + · · ·+ x2N (50)
と各成分の 2乗和であるので、各成分毎に解くことが許される.よって最小値は、各成分毎に軟判定しきい値関数を適用することで、
x∗i = Sλ(yi) (51)
となる.これを以下のように簡単に表記することにする.
x∗ = Sλ(y). (52)
しかしながら圧縮センシングの問題では、解きたい最小化問題はもう一歩だけ込み入っている.行列による線形変換を経ているため、ここまで単純ではない.だが絶対値関数があるからといって諦める必要はなく、ちょっと考えてみる価値がありそうである.
Fast Iterative Shrinkage Thresholding Algorithm (FISTA) 行列による線形変換を経て、L2ノルム部分がやや込み入っていることが問題であるなら、そこの部分を変化させることを目標としたのが Iterative
Shrinkage Thresholding Algorithm (ISTA)ないしその高速版である FISTAである [8].その基本原理は、メジャライザー最小化 (Majorizer Minimization)と呼ばれる手法である.�メジャライザー最小化 �微分がリプシッツ定数 Lのリプシッツ連続である凸関数 g(x)に対して、以下の関数を定義する.
qL(x,y) = g(y) + (∇g(y))T(x− y) +
L
2∥x− y∥22 (53)
このとき g(x) ≤ qL(x,y)が成立する.この qL(x,y)を g(x)のメジャライザーと呼ぶ.元の関数 g(x)
による最小化の代わりに、メジャライザーの逐次最小化を考える手法をメジャライザー最小化と呼ぶ.� �まずリプシッツ連続という慣れない言葉が出てきた.ここでそのリプシッツ連続の定義を紹介する.�リプシッツ連続 �関数 f(x)がリプシッツ定数 Lのリプシッツ連続であるとき
∥f(x)− f(y)∥2 ≤ L ∥x− y∥2 (54)
を満たす.
16
� �右辺がユークリッド距離であることを考慮して、イメージをすると、遠くなればなるほど関数の値は左辺
のように確かにそれなりに変化するが、それほど急激な変化を起こすわけではなく、ユークリッド距離程度で押さえられるということを示している.ここである凸関数 g(x)の微分がリプシッツ定数 Lのリプシッツ連続であるということは、
∥∇g(x)−∇g(y)∥2 ≤ L ∥x− y∥2 (55)
を満たす.このときメジャライザー qL(x,y)は、平方完成から qL(x,y) ≤ g(y)を満たすことがわかる
qL(x,y) = g(y)− 1
2L∥∇g(y)∥22 +
L
2
∥∥∥∥x−(y − 1
L∇g(y)
)∥∥∥∥22
(56)
メジャライザーの最小値は、必ず g(y)を下回る.等号成立条件は∇g(y)が 0となるときである.またこのメジャライザーの平方完成による表式をみると、ベクトルの L2 ノルムで書くことができることがわかる.ここで思い出してほしい.絶対値関数がでてきたとしても、最小化問題は分離性があれば解くことがそこまで難しくない.このベクトルの L2ノルムで表現されるというメジャライザーの性質を利用して、圧縮センシングに登場する最小化問題を解くことを目指す.逐次的にアルゴリズムを実行することを想定して、tステップ時に得られた解を x[t]とするとき、メジャ
ライザーの最小値を求める.x[t+ 1] = argmin
xqL(x,x[t]) (57)
このときメジャライザーの性質から、以下の関係を得る.
g(x[t+ 1]) ≤ qL(x[t+ 1],x[t]) ≤ g(x[t]) (58)
が成立している.よって逐次的にこれを繰り返すことにより最小化問題の最適解へと到達することを目指す.リプシッツ連続の条件は区分的であってもよいので、全領域に渡って満たす必要は必ずしもない.メジャライザーが最小値をとるところまでの区間についてリプシッツ連続の条件が満たされており、メジャライザーの性質である g(x) ≤ qL(x,x[t])が成立していればよい (図 10).
図 10: メジャライザーの振る舞い.赤線が g(x).青線が全領域についてメジャライザーとなる場合.青破線が最小値を取るところまでメジャライザーとなる場合、青点線は最小値をとるところですらメジャライザーとはなり得ない.
さて解きたい問題は、式(25)にある最小化問題である.ここで g(x) = ∥y −Ax∥22 /2λ、∇g(x) = −AT(y−Ax)/λとして、メジャライザーを構成する.このときリプシッツ定数は L =
∥∥ATA∥∥2/λであることが定義
17
に従った計算により分かる.[問:リプシッツ定数を確認せよ.]
このようにL1ノルムを取り入れても、メジャライザーの性質である上から押さえる g(x)+∥x∥1 ≤ qL(x,x[t])+
∥x∥1 が保存されていることに注目する.そこで逐次的に解く最小化問題を
x[t+ 1] = argminx
{qL(x,x[t]) + ∥x∥1} (59)
として、L1ノルムによる効果を取り入れて更新をしていくことで求めたい最小解へと目指す.ここで逐次的に解く最小化問題が手で以下のように解けることを利用する.
x[t+ 1] = argminx
{L
2
{x−
(x[t] +
1
LλAT(y −Ax[t])
)}2
+ ∥x∥1
}(60)
= S1/L
(x[t] +
1
LλAT(y −Ax[t])
)(61)
つまり逐次代入をするだけで、最小解へ到達することができる.�Iterative Shrinkage Soft-thresholding Algorithm (ISTA) �1. t = 0とする.初期化 x[0].(例えば x[0] = ATy)
2. 平方完成により g(x)の 2次関数近似の頂点を求める.
v[t] = x[t] +1
LλAT(y −Ax[t]) (62)
3. 軟判定しきい値関数を適用する.x[t+ 1] = S1/L (v[t]) (63)
4. 終了基準を満たすまでステップ 2-4を繰り返す.� �更新する際に過去の情報を利用することで、収束までの反復数を減らすことで、より高速な FISTAにつ
いても提案されている.�Fast Iterative Shrinkage Soft-thresholding Algorithm (FISTA) �1. t = 1とする.初期化 x[0]、β[1] = 0、z[1] = x[0]
2. 平方完成により g(x)の 2次関数近似の頂点を求める.
v[t] = z[t] +1
LλAT(y −Az[t]) (64)
3. 軟判定しきい値関数を適用する.x[t+ 1] = S1/L (v[t]) (65)
4. [高速化部分]β[t]を更新する.
β[t+ 1] =1
2
(1 +
√1 + 4 (β[t])
2
)(66)
5. [高速化部分]z[t]を更新する.
z[t+ 1] = x[t+ 1] +β[t]− 1
β[t+ 1](x[t+ 1]− x[t]) (67)
6. 終了基準を満たすまでステップ 2-6を繰り返す.
18
� �FISTAは導出を見たあとに実装を試みればわかるように、非常に簡単な作りをしているため、理解もし
やすくメジャライザー最小化の枠組みと共に L1ノルムを伴う最小化問題の入り口として最適である.さてFISTAには以下のような別解釈も存在する.後に詳しく述べるが、制約条件を 2次の罰金項として追加する罰金法というのがある.この罰金法を利用すると、FISTAで利用したメジャライザー最小化に次のような別解釈ができる.
• コスト関数に罰金項 L ∥x− x[t]∥22 /2の導入により、暫定解 x[t]の近傍にある解を探索する.
• 暫定解の近傍で最小化を行うので、コスト関数の一部 g(x)を以下のように近似することができる.
g(x) ≈ g(x[t]) + (∇g(x))T(x− x[t]) (68)
このふたつの操作により、得られるのがメジャライザー最小化の方法ともいえる.(但し罰金項の係数については非自明.)
Bregman反復法(Bregman iterative method) ノイズがある場合に LASSO型の最小化問題はそれなりに意味のあるものであることはベイズ推定の観点から理解できる一方で、ノイズが全くない場合には非常に小さい λによる LASSO型の最小化問題を解いても、y = Axを満たすものを得るのは不可能である.仮に y = Axを満たす解のなかで、LASSO型の最小化問題と基底追跡型の最小化問題の両者の解になるものを探すと x = 0という自明な解を得ることがわかる.そこで本質的にノイズのない問題を取り扱う場合に、基底追跡問題を解く際に LASSO型の最小化問題を経由して最適解へ到達することを可能にするのが以下で紹介する Bregman反復法である.次の Bregman divergence(以下 BD)を、凸関数 f(x)に対して定義する.
Dpf (x,y) = f(x)− f(y)− pT(x− y) (69)
ここで、pは関数 f(x)の劣勾配とする.劣勾配については聞き慣れないひともいるだろう.まずは劣勾配の定義の為に劣微分を定義する.
∂f(x) :={p|f(u) ≥ f(x) + pT(u− x) ∀u
}(70)
劣勾配は、この劣微分のなかの特定の実現ベクトルを指す.任意の uについて、という条件から、(非常に小さい uを考えていわゆる微分を行う)微分可能な関数の場合には劣勾配は唯一に定まる.一方で微分可能でない場合は、劣微分は集合となる.要するにちゃんと決められない (図 11).Bregman反復法では、逆にこの性質を用いて、この劣微分を順次定めていきながら、解きたい最小化問題の解へと近づくことを目指す.[問:BDが非負であることを確認せよ.]
この BDを用いるとどんなことができるだろうか.まず L1ノルムに現れる絶対値関数は、微分可能でない関数の代表例である.このときに BDを計算してみよう.y < 0のときに BDを調べてみると、
D−1f (x, y) = |x| − |y|+ (x− y) = |x|+ x =
{0 (x < 0)
2x (x ≥ 0)(71)
となり、0から急激に増大するようになる (図 12).y > 0のときも同様に、
D1f (x, y) = |x| − |y| − (x− y) = |x| − x =
{−2x (x < 0)
0 (x ≥ 0)(72)
19
図 11: 劣勾配の様子.微分可能でない関数は、要するに尖っているところで勾配(青線)を一意に定めることができない.赤点線で囲まれた領域内を尖っているところを中心として回転する.
図 12: 絶対値関数に対する BD.y < 0のとき.
となる.こちらも符号が変わるところで急激に増大することがわかる.y = 0のところでは劣勾配の値を適当に仮定した上で、
Dpf (x, y) = |x| − |y| − p(x− y) = |x| − px =
{−(1 + p)x (x < 0)
(1− p)x (x ≥ 0)(73)
少し傾いた形に絶対値関数が変更されていることがわかる (図 13).この観察から、BDは起点となる y
における勾配できまる一次関数からのズレが顕著になるとおおきくなることがわかる.この勾配は、最適化問題においては最適値を求めるための更新時の方向と距離を決める、いわば勢いである.L1ノルムの最小化の代わりにこの BDを用いるとどうなるだろうか.勾配の指定するまま進むときに、元の関数からの乖離が激しくなるとペナルティとして BDが大きくなることがわかる.たとえば絶対値関数の場合、y < 0
から始まると勾配 −1で最小化の場合は正の方向に更新される.これは絶対値関数の最小化には有効である.しかし一旦 x = 0を跨ぐと最小化にはならないので、BDの効果で勾配を変更するようにアルゴリズムを組めばよいだろう.さて、上記の考察を経て、以下の最適化問題を解くことを考えよう.
minx {f(x) + g(x)} (74)
ここで g(x)は微分可能な関数であり、ノイズ有り圧縮センシングの問題設定では ∥y −Ax∥22 /2λのこと、f(x)は微分可能でない関数であり、∥x∥1のことだと思って良い.Bregman反復法では、上記の最適化問題
20
図 13: 絶対値関数に対する BD.y = 0のとき.
の代わりに、minx
{D
p[t]f (x,x[t]) + g(x)
}(75)
を逐次的に解く.初期条件は x[0] = 0及び p[0] = 0とする.こうすることで、LASSO型の最小化問題から出発する.ここで x[t]は前回までの更新によって得られた値であり、更新は上記の最適化問題を解くことにより、
x[t+ 1] = argminx
{D
p[t]f (x,x[t]) + g(x)
}(76)
とする.一方、p[t]は前回の更新結果から以下のように定める.
p[t] = p[t− 1]−∇g(x[t]) ∈ ∂f(x[t]) (77)
なぜこのように定めるか?最適化問題を解くということは、微分が 0となるところを探せばよい.そこで最小化したいコスト関数の(76)の微分を調べてみると、p − p[t] +∇g(x[t]) となることがわかる.ここで pは劣微分 ∂f(x)の劣勾配である.pをいくつにするべきか迷うところが、微分を 0にしたいという最適性の要請と、今回の更新で x = x[t+ 1]とするので、
p[t+ 1] = p[t]−∇g(x[t+ 1]) ∈ ∂f(x[t+ 1]) (78)
とすることにしようというわけだ.このような更新則を選ぶと、最適性を満たしつつ更新の度に g(x)の実現値が減少していくことが分かる.
g(x[t+ 1]) ≤ g(x[t+ 1]) +Dp[t]f (x[t+ 1],x[t]) (79)
≤ g(x[t]) +Dp[t]f (x[t],x[t]) (80)
≤ g(x[t]) (81)
1行目では BDの非負性を用いた.2行目では 1行目右辺の量が最小値であることを用いた.3行目は BD
の自明な性質を用いた.この性質により yと Axを近づけることを優先する.LASSO型の最小化問題に適用した場合、劣勾配の更新は、
p[t+ 1] = p[t] +1
λAT(y −Ax[t]) ∈ [−1, 1] (82)
となる.この更新則を採用する場合、一旦 y = Ax[t]となる解を到達したとき、それが L1 ノルムの最小解を与えることを示すことができる [10].問題は最小化問題(76)を解くところである.ここはメジャライザーを用意して ISTAや FISTAと同様の手続きによって最小化問題を解けば良い.(他の方法で解いてもよい.)
21
圧縮センシングの問題での具体的なアルゴリズムを以下に紹介しよう.�Bregman反復法 �1. t = 0とする.初期化 x[0] = 0、p[0] = 0
2. 劣勾配 p[t]を用いて、
x[t+ 1] = argminx
{∥x∥1 − p[t]T(x− x[t]) +
1
2λ∥y −Ax∥22
}(83)
を解く.これは、サブルーチンとして、
v[s] = x[s] +1
L
(1
λAT(y −Ax[s]) + p[t]
)(84)
を用意して、軟判定しきい値関数を適用する
x[s+ 1] = S1/L (v[s]) (85)
で解いてよい.(ISTA同様、FISTAでの加速法を利用しても良い.)
3. 劣勾配の更新をする.p[t+ 1] = p[t] +
1
λAT(y −Ax[t]) ∈ [−1, 1] (86)
4. 終了基準を満たすまでステップ 2-4を繰り返す.� �Bregman反復法の内部で解かれる最適化問題(76)について、メジャライザー最小化の方法を適用して
みよう.x[t+ 1] = argminx
{D
p[t]f (x,x[t]) + (∇g(x[t]))
T(x− x[t]) +
L
2∥x− x[t]∥22)
}(87)
ここで Lは前述のリプシッツ定数である.このとき劣勾配の更新を以下のように変更する.
p[t+ 1] = p[t]−∇g(x[t])− L(x− x[t]) ∈ ∂f(x[t+ 1]) (88)
これを線形化された Bregman反復法と呼ぶ [10].圧縮センシングにおける LASSO型の最小化問題においては、
x[t+ 1] = argminx
{∥x∥1 −
(1
λAT(y −Ax[t]) + p[t]
)T
(x− x[t]) +L
2∥x− x[t]∥22)
}(89)
となる.但し Bregman反復法そのものと同等の性能を示す Lの値に設定しないと期待された性能を発揮しないので注意しよう.この方法を FISTAと比較してみよう.LASSO型の最小化問題に対して、メジャライザー最小化による
方法を採用して、以下の最小化問題を逐次的に解くものが FISTAであった.
x[t+ 1] = argminx
{∥x∥1 −
(1
λAT(y −Ax[t])
)T
(x− x[t]) +L
2∥x− x[t]∥22)
}(90)
一次の項に注目すると劣勾配の存在の分が異なる.この項に注目してみると FISTAは x[t]の近傍を罰金項を導入して探索するものと解釈したが更に 1次の項が加わり、同様に (p[t])
T(x−x[t])という形、すなわち
ラグランジュ未定乗数を利用して、制約条件 ∥x− x[t]∥1 < ϵを課していることがわかる.つまり Bregman
反復法はラグランジュ未定乗数と罰金項の導入により、暫定解の近傍点を探索する方法であることがわかる.
22
拡張 Lagrangian法(Augmented Lagrangian method) このようにラグランジュ未定乗数と罰金項の両者を導入した最適化手法を拡張ラグランジュ法と呼ぶ.拡張 Lagrangian法は、制約付きの最適化問題を解く方法として最近提案された強力な方法である.まず制約付きの最適化問題を解く基本について押さえておこう.以下の制約付き最適化問題を考える.
minxf(x) s.t. ci(x) = 0 (i = 1, 2, · · · ,m) (91)
ここでラグランジュの未定乗数法により、制約条件を組み入れた新しいコスト関数を定義する.
L(x;λ) = f(x) +m∑i=1
hici(x) (92)
この新しいコスト関数について改めて最小化を考えるというのがラグランジュ未定乗数法である.例題を解きながら、考えてみよう.�例題AL-I:制約付き最小化問題 �以下の制約付き最小化問題を考える.
minx{x21 + x2
2
}s.t. ax1 + bx2 − c = 0 (93)
ここで a, b, cは適当な実数であるとする.つまり直線上でしか動けない点 (x1, x2)があったときに、原点からの距離が最小となる点を探せという問題である.解は原点から直線へ垂線を下ろせば直ちに分かる問題だ.� �ラグランジュ未定乗数法により、新しいコスト関数を定義する.
L(x1, x2;h) = x21 + x2
2 + h(ax1 + bx2 − c) (94)
元の最小化問題を代わりに、このコスト関数の最小化を考えよう.そのためには各変数による微分を 0にする解を求めればよい.
∂
∂x1L(x1, x2;λ) = 2x1 + λa = 0 (95)
∂
∂x2L(x1, x2;λ) = 2x2 + λb = 0 (96)
∂
∂hL(x1, x2;h) = ax1 + bx2 − c = 0 (97)
まず x1、x2 に関する微分から未定乗数 hに応じて、
x1 = −ha
2(98)
x2 = −hb
2(99)
となることがわかる.この解を用いて、未定乗数についての最適化問題を解く.このとき最小化問題から、最大化問題へと変化していることに注意したい.
L(x1, x2;h) = −(a2 + b2)h2
4− hc = −a2 + b2
4
(h+
2c
a2 + b2
)2
+2c2
a2 + b2. (100)
この最大化問題の解は、h = −2c/(a2+ b2)が最適解であるとわかり、x1 = ac/(a2+ b2)、x2 = bc/(a2+ b2)
であるとわかる.確かに垂線となっていることも確認できる.このようにラグランジュ未定乗数法では、制約条件有りの最適化問題を解くことができる.簡単なものであれば、手で解くことが可能である.その際に未定乗数によるもうひとつの最適化問題が登場する.
23
�ラグランジュ未定乗数法による解法 �制約条件を満たした最適化問題を解く処方箋.未定乗数によるもうひとつの最適化問題が登場し
て、それを解けば最適解を求めることができる.� �この新たに登場したもうひとつの最適化問題を双対問題と呼ぶ.このとき片方で最適解を持てば、もう
片方も持ち、元の問題の最小値は、双対問題の最大値と一致することが知られている(双対定理).双対問題は、制約条件を既に考慮したものであるから、その最適化問題は制約なしで比較的扱いやすいものと変わっている.この双対問題に対して、これまでに考慮してきた勾配法を適用してもよい.一方、ラグランジュ未定乗数とは異なり、制約条件を 2乗をしたもの(罰金項)を加えたコスト関数を考
えることで制約付き最適化問題を解く方法がある.罰金法(Penalty method)と呼ぶ.
Lpen.(x) = f(x) +µ[t]
2
m∑i=1
c2i (x) (101)
勾配に基づき更新して行く際に、罰金項の係数 µ[t]を徐々に大きくさせることで最適解に収束させられることが知られている.例題について、試してみよう.罰金項の係数を固定して、コスト関数の微分が 0となるところを調べる.
∂
∂x1Lpen.(x1, x2;µ[t]) = 2x1 + µ[t]a(ax1 + bx2 − c) = 0 (102)
∂
∂x2Lpen.(x1, x2;µ[t]) = 2x2 + µ[t]b(ax1 + bx2 − c) = 0. (103)
連立方程式をとくことにより、この最適化問題の解は、
x1 =µ[t]ac
(2 + µ[t](a2 + b2))(104)
x2 =µ[t]bc
(2 + µ[t](a2 + b2))(105)
となることがわかる.ここで µ[t]を非常に大きな値を取れば、確かに最適解に収束して行くことが分かる.この問題のように連立方程式が手で解けないような場合は、勾配法による更新を行い最適解に徐々に近づけていくことになる.但し、制約条件を満たすようにするためには、罰金項の係数 µ[t]を最終的に非常に大きな値にしていかないといけない.それに応じて勾配が大きくなり、単純な勾配法の適用下では収束しないことが考えられる.そこで更新幅を適切に小さくすると、今度は必要な計算時間が長くなる傾向にあるという問題点がある.�罰金法による解法 �
制約条件を満たした最適解に収束させるためには、罰金項を非常に大きくしないといけない.そのために計算時間が長くなる傾向があり厄介である.� �制約条件付きの問題を解く場合には、上記のように、ラグランジュ未定乗数法及び罰金法がある.しかし
ラグランジュ未定乗数法は、双対問題を扱うことになり元々の問題が見えにくくなる.そして罰金法には安定性の問題がある.そこで両者の良いところを組み合わせるために、拡張ラグランジュ法が提案されている.拡張ラグランジュ法は、ラグランジュ未定乗数法と罰金法の両者を組み合わせた方法である.
Laug.(x;h) = f(x) +
m∑i=1
hi[t]ci(x) +µ
2
m∑i=1
c2i (x) (106)
ここで罰金項の係数は固定するところに注目したい.但し更新則はやや変わっており、未定乗数について、
hi[t+ 1] = hi[t] + µci(x) (107)
24
と更新する.単純な罰金法と比較して、罰金項の係数を大きくする変わりにラグランジュ未定乗数による効果で制約条件を満たすようにしむけるという作戦である.再び上記で挙げた例題について考えてみよう.コスト関数の微分が 0となるところを調べてみよう.
∂
∂x1Laug.(x1, x2;h[t], µ) = 2x1 + h[t]a+ µa(ax1 + bx2 − c) = 0 (108)
∂
∂x2Laug.(x1, x2;h[t], µ) = 2x2 + h[t]b+ µb(ax1 + bx2 − c) = 0. (109)
連立方程式をとくことにより、
x1 =µac− h[t]a
2 + µ(a2 + b2)(110)
x2 =µbc− h[t]b
2 + µ(a2 + b2)(111)
を得る.この解を用いて、ラグランジュ未定乗数の更新がどうなるかを調べてみると、
h[t+ 1] =−µ[t](a2 + b2)
2 + µ[t](a2 + b2)
(h[t]− c2
a2 + b2
)(112)
となり、必ずしも大きくない µ[t]で h[t]が最適解に収束することが分かる.�拡張ラグランジュ法による解法 �ラグランジュ未定乗数と罰金法を組み合わせた方法.罰金項を大きくしなくても、ラグランジュ未
定乗数も含めた最適解へと到達する.� �拡張ラグランジュ法におけるコスト関数 Larg. は、平方完成により、
Laug.(x;h) = f(x) +µ
2
m∑i=1
(ci(x) +
hi[t]
µ
)2
(113)
と変形できる.このとき ui[t] = hi[t]/µとして利用すると見やすい.
Laug.(x;h) = f(x) +µ
2
m∑i=1
(ci(x) + ui[t])2
(114)
このとき ui[t]の更新則は単純に、ui[t+ 1] = ui[t] + ci(x) (115)
となり、制約条件において満たされない誤差部分が ui[t]に追加されて補正されていくという描像が得られる.
拡張ラグランジュ法による基底追跡 これを素朴に圧縮センシングの代表的最適化問題である基底追跡型の最適化問題に適用してみよう.まず、最小化したい関数は f(x) = ∥x∥1である.制約条件は c(x) = y−Ax
である.拡張ラグランジュ法を利用すると、以下のコスト関数の最小化問題に帰着する.
Larg.(x;h[t], µ[t]) = ∥x∥1 + (h[t])T(y −Ax) +µ
2∥y −Ax∥22 (116)
ラグランジュ未定乗数の更新則は、
h[t+ 1] = h[t] + µ(y −Ax) (117)
である.ここでラグランジュ未定乗数はM 個の制約条件の分(h[t] = h1[t], h2[t], · · · , hM [t])、利用していることに注意したい.ここでラグランジュ未定乗数の更新則の両辺に AT(制約項の微分)をかけると、ATh[t] = p[t]と置き換えることで、
p[t+ 1] = p[t] + µAT(y −Ax) (118)
となることがわかる.µ = 1/λとおいたとき、右辺第二項が −∇g(x) = AT(y − Ax)/λであることからBregman反復法における更新則(82)と等価であることが分かる.
25
Alternating Direction Method of Multipliers(ADMM) 上記の古典的な拡張ラグランジュ法を改良したものが次に紹介するADMMである [11].アイデアは単純である.先ほどまで議論していた拡張ラグランジュ法を用いて、
minx {f(x) + g(x)} (119)
という LASSO型最小化問題のようなふたつのコスト関数の組み合わせによる最適化問題を制約付きの最適化問題と一旦考え直す.
minx,z {f(z) + g(x)} s.t. x− z = 0 (120)
基本的には、この制約付き最適化問題に対して拡張ラグランジュ法を適用するというアイデアである.新しいコスト関数は、拡張ラグランジュ法により、以下のように与えられる.
Laug.(x, z;h[t]) = f(z) + g(x) + (h[t])T(x− z) +µ
2∥x− z∥22 (121)
これもやはり平方完成して利用する方が見やすいので変形しておこう.
Laug.(x, z;h[t]) = f(z) + g(x) +µ
2
∥∥∥∥x− z+h[t]
µ
∥∥∥∥22
(122)
この L2 ノルムで新たに導入した変数 zと元の変数 xがうまく調整し合っていると直観的には理解できよう.この拡張ラグランジュ法を利用した変形により、f(z)及び g(x)のそれぞれの関数を分離して解くことが ADMMの工夫である.ADMMという名前の通り、以下のように交互に更新する.
x[t+ 1] = argminx
{g(x) +
µ
2
∥∥∥∥x− z[t] +h[t]
µ
∥∥∥∥22
}(123)
z[t+ 1] = argminx
{f(z) +
µ
2
∥∥∥∥x[t+ 1]− z+h[t]
µ
∥∥∥∥22
}(124)
そしてラグランジュ未定乗数については、
h[t+ 1] = h[t] + µ(x− z) (125)
として更新する.ADMMを LASSO型の最小化問題に適用してみよう.まず u[t] = h[t]/µとおき、変数の煩雑さを減らし
ておく.次に f(x) = ∥x∥1 および g(x) = ∥y −Ax∥22 /2λであるから、解くべき最小化問題はそれぞれ
x[t+ 1] = argminx
{1
2λ∥y −Ax∥22 +
µ
2∥x− z[t] + u[t]∥22
}(126)
z[t+ 1] = argminz
{∥z∥1 +
µ
2∥x[t+ 1]− z+ u[t]∥22
}(127)
である.xについての最小化問題は 2次関数であるから平方完成または単純な微分が 0となる条件により以下の通り計算される.
x[t+ 1] =
(µI +
1
λATA
)−1(1
λATy + µ(z− u)
). (128)
一方 zについては、L1 ノルムおよび L2 ノルムの分離性を利用して軟判定しきい値関数による解が直ちに求まる.
z[t+ 1] = S1/µ (x[t+ 1] + u[t]) . (129)
つまり何が凄いって、FISTAのように暫定解の近傍付近で、という制限はなく、しかし単なる代入の繰り返しだけで最適解を求めることができることだ.
26
これらの結果を統合して、LASSO型の最小化問題を解くアルゴリズムを以下のように組むことができる.�ADMM for LASSO �1. t = 0とする.初期化する.(例えば x[0] = ATx、z[0] = x[0]、h[0] = 0)
2. x[t]の更新
x[t+ 1] =
(µI +
1
λATA
)−1(1
λATy + µ(z− u)
). (130)
3. z[t]の更新z[t+ 1] = S1/µ (x[t+ 1] + u[t]) . (131)
4. u[t]の更新u[t+ 1] = u[t] + (x[t]− z[t]) (132)
5. 終了基準を満たすまでステップ 2-4を繰り返す.� �罰金項の係数 µを変化させないという方針のため、ステップ 2の逆行列の計算は予め行っておけばよい.
この逆行列の計算は基本的には LASSO型の最小化問題を解く際に避けられていた.計算量が膨大な分類O(N3)に入るためだ.これまでに様々なアルゴリズムが提案されてきたが、その歴史は如何にして逆行列の計算を避けるかにかかっており、反復の内部で逆行列の計算がないように工夫をしてきた.ADMMはその意味で禁じ手を使っている.しかし 1回だけ前処理的に用意しておくだけである.ADMMは非常に収束が早いため、逆行列の計算とADMMの反復計算にかかる合計時間が、LASSO型の最小化問題を解く FISTA
等の方法よりも圧倒的に短いため許されている.特にスパース性が期待できる基底がある変換を通して見つかる場合、すなわち L1 ノルムの項が ∥Bx∥1
となるときにADMMは効果が絶大である.先ほどの LASSO型の最小化問題を解いたのと同様に、敢えて制約付きの最適化問題に置き換えよう.
minx,z
{∥z∥1 +
1
2λ∥y −Ax∥22
}s.t. Bx− z = 0 (133)
拡張ラグランジュ法の手続きに従い、以下の新しいコスト関数を最小化すれば良い.
Laug.(x, z;h, µ[t]) = ∥z∥1 +1
2λ∥y −Ax∥22 +
µ
2∥Bx− z+ u[t]∥22 (134)
解くべき最小化問題はそれぞれ
x[t+ 1] = argminx
{1
2λ∥y −Ax∥22 +
µ
2∥Bx− z[t] + u[t]∥22
}(135)
z[t+ 1] = argminz
{∥z∥1 +
µ
2∥Bx[t+ 1]− z+ u[t]∥22
}(136)
である.先ほどの例と同様に解くことができる.前者は単純な微分、または平方完成により、後者は分離性を zに注目して行えば直ちに以下の最適解を得ることができる.
x[t+ 1] =
(µBTB +
1
λATA
)−1(1
λATy + µBT(z− u)
)(137)
z[t+ 1] = S1/µ (Bx[t+ 1] + u[t]) . (138)
これは他の方法に比べて極めて有利な性質である.実は L1 ノルムの中身がある線形変換 B をされたものであるとすると、FISTAの適用は直ちに行えるわけではない.その変換専用の方法を必要とすることがしばしば発生する.その最たる例が、全変動(Total Variation)においてスパース性が期待できる問題である,画像等の応用例でよく利用されるもので、隣接するピクセル間での差を取る演算である.定義は様々なので論文等を読むときには注意してほしい.この場合、逆変換は非自明(多くの場合に B は正則ではな
27
い)であり、その変換専用の解法を必要とする.全変動に対しては、メジャライザー最小化と組み合わせた Fast Gradient Projection(FGP)が提案されている [12].また複数の基底でスパース性が期待できる場合、L1 ノルムの項を複数もつ最小化問題を解くことがある.この場合についても FISTAは苦手としていたが、最近 Fast Composit Splitting Algorithm(FCSA)の登場によりその難点は克服している [13].それでもなおADMMはそういった難点を未定乗数と罰金項の追加だけで柔軟に対応するため、特段の苦労なく利用できる意味で圧倒的に有利である.また解析的に解いた最適解を逐次代入するだけで解けるというところも圧倒的な利用数の獲得に一役買っているだろう.最後に基底追跡型の最適化問題に対するADMMを紹介して、この章を終えることにしよう.基底追跡型
の最適化問題では、L1 ノルムの最小化だけではなく。制約条件 y = Axを満たす必要がある.思わずこの制約条件に対して、拡張ラグランジュ法を適用してしまいそうになるが、まずはラグランジュ未定乗数法を利用して、以下のコスト関数を考えることにする.
L(x) = ∥x∥1 + νT(y −Ax) (139)
ここで ν はラグランジュ未定乗数である.ラグランジュ未定乗数法の精神は、双対問題へのマップである.そのときには微分をして、最適解における未定乗数と元の変数の関係を明らかにする必要がある.しかし、ここで xの位置が悩ましいことに気付くだろう.絶対値関数がある.そこで、ADMMの手続きを施す.
Laug(x, z;u[t]) = ∥z∥1 + νT(y −Ax) +µ
2∥x− z+ u[t]∥22 (140)
こうしておけば、xについて微分を行うことができる.まず xについて微分を行い、最適解を求めようとすると、
∇xLaug(x, z;h[t]) = −ATν + µ (x− z+ u[t]) = 0 (141)
より、x =
1
µATν + (z− u[t]) . (142)
この解をコスト関数に代入して、ν に関する最適化問題に置き換える.
Laug(ν, z;h[t]) = ∥z∥1 + νT (y +A(z− u))− 1
2µ
∥∥ATν∥∥22. (143)
ここで ν について 2次関数であるから容易に最大化を行うことができて、最適解は、
ν = µ(AAT
)−1(y +A(z− u)) (144)
である.これを再び xの最適解に代入すると、
x = AT(AAT
)−1y +
(I −AT
(AAT
)−1A)(z− u[t]) . (145)
を得る.この解は y = Axを常に満たしている.つまりアルゴリズムのどの時点で止めても、制約条件が満たされているという顕著な性質を持っている.残るは zと uの計算であるが、これはこれまでの例と全く同様にして計算できるので心配は要らない.結果として基底追跡型の最適化問題を解くために ADMMを適用したアルゴリズムは、
x[t+ 1] = AT(AAT
)−1y +
(I −AT
(AAT
)−1A)(z[t]− u[t]) (146)
z[t+ 1] = S1/µ (x[t+ 1] + u[t]) (147)
u[t+ 1] = u[t] + (x[t+ 1]− z[t+ 1]) (148)
を繰り返して代入して行けば良い.
28
4 圧縮センシング実装編それでは理論はよくわかった、とにかく実装してみたいという人のために、実際に圧縮センシングの問題
を解くためのプログラムを組むことをやってみよう.基本的にはmatlabを使ったコードを以下に紹介するが、同様の操作を行えば基本的には動く.matlabを使用した理由は、行列やベクトルが入り混じった計算部分や操作などについて、数式表現のまま感覚的にコーディング出来ることにある.同様のコーディングが可能なものとして Octaveや Pythonなどフリーに利用できるものがある.随時そのコードも公開していきたい.まずは実験のために、人工的に問題設定をする部分を作成しよう.
% 再 構 成 し た い 信 号 の 次 元N = 100;
% 観 測 数M = 50;
% 正 解 の 原 信 号 の 次 元K = 10;
% 観 測 行 列 Aの設定A = randn(M,N);
% 原 信 号 x 0の設定x0 = [randn(K,1); zeros(N-K,1)];
x0 = x0(randperm(N));
% 観 測 信 号 yの設定y = A*x0;
ここまでで、N = 100次元の中で、K = 10個しか非零成分がない原信号 x0 を作っている.その原信号の非零成分は標準正規分布に従う乱数(randn(K,1)がK × 1次元の乱数を生成する部分)で生成した.観測行列は簡単のため randn(M ,N)により、標準正規分布で各成分をランダムに生成した.もちろんご自身の問題設定に合わせて変えて構わない.y = Ax0 として、原信号から観測行列を経て、観測信号 yを取得した状況を考える.この後では原信号は使わない.あくまで推定して、x0 を当てに行く.
4.1 ISTAの実装さて、それでは手始めに ISTAを実装してみよう.初期条件として、xは x = ATyから始めるとしよう.
% 初 期 条 件x = A’*y;
LASSO型の最適化問題を解くので、L1 ノルムの係数 λを適当に設定する.% L 1ノルムの係数の設定lambda = 1.0;
またメジャライザー最小化を用いるために、リプシッツ定数 Lを考えなければならない.問題によっては事前に手で計算することができるが、汎用的に使えるように、ここではラインサーチ法を用いて探索することで Lを適応的に変える方法を取る.初期値は L = 1としておく.% リ プ シ ッ ツ 定 数 の 初 期 条 件L0 = 1;
さて準備は整った.ISTAは繰り返し計算で、徐々に正解へと近づく方法だ.そのためプログラムとしては、for文を使えば良い.とりあえず 100回程度の計算をすることにしよう.% 100回 反 復 計 算T=100;
for t = 1:T
29
% 前 回 の 結 果 を k xに格納 kx = x;
% 前 回 の 結 果 に お け る コ ス ト 関 数 の 計 算 ( L 2ノルム部分のみ) ktemp = 0.5* norm(y-A*x ,2)^2;
% 適 応 的 に 変 化 さ せ る リ プ シ ッ ツ 定 数 を リ セ ッ トL = L0;
(以 降 登 場 す る コ ー ド を 記 入)
end
繰り返し型の計算をする場合には、前の計算結果を利用したり比較することが多いので、for文の中身部分の最初の時点で前回の計算結果を格納しておく.norm(*,*)はノルムを計算する便利な関数である.norm(*,2)
であれば L2ノルム、norm(*,1)であれば L1ノルムを計算することができる.用意されていない言語であっても、定義に従って計算する関数を用意すれば良い.さて ISTAの中心部分を書いてみよう.% 勾 配 計 算grad_x = -A’*(y-A*x);
% 更 新 候 補 点 へ 移 動MMx = x - grad_x/L;
ISTAの基本は勾配法であるから、まずは勾配を計算したものを用意する.問題が変われば、この勾配部分を変更をすれば良い.Mmxは仮に勾配法で進んだ場合の候補位置である.メジャライザー最小化によれば、コスト関数のうち ∥y −Ax∥22 /2の部分を上から押さえるメジャライザーとなる二次関数を用意すれば良い.%コ ス ト 関 数 の 一 部 を 計 算temp = 0.5* norm(y-A*MMx ,2)^2;
%メ ジ ャ ラ イ ザ ー を 計 算MMtemp = ktemp + grad_x ’*(MMx -kx )+0.5*L*norm(MMx -kx ,2)^2;
もしもこの時にコスト関数とメジャライザーを比較してコスト関数が上回ることがあってはいけない.その時はリプシッツ定数を変えることで、そうならないように変更する必要がある.それはメジャライザーが上回るまで繰り返す必要があるため下記のように続ける.while MMtemp < temp
%リ プ シ ッ ツ 定 数 を 大 き く し て み るL = L*1.1;
%更 新 候 補 位 置 再 計 算MMx = x - grad_x ./L;
%コ ス ト 関 数 の 一 部 を 再 計 算temp = 0.5* norm(y-A*MMx ,2)^2;
%メ ジ ャ ラ イ ザ ー を 再 計 算MMtemp = ktemp + grad_x ’*(MMx -kx )+0.5*L*norm(MMx -kx ,2)^2;
end
ここで差し込んだ while文の中身で実行していることがラインサーチ法と呼ばれるものである.Lを単調に大きくしていくために 1.1倍している.ここの比率を変えても構わない.大きくすればざっくりとした探索になり、細かくすれば丁寧であるが時間がかかるようになる.そして最後に軟判定しきい値関数を適用すれば ISTAの実装が完了する.%軟 判 定 し き い 値 関 数 の 適 用x = SoftThr(MMx ,lambda/L);
ここで SoftThrは以下のように定義した.function y = SoftThr(x,lambda)
%と り あ え ず 全 て0 に セ ッ ト
30
y = zeros(size(x));
%し き い 値 を 超 え る 集 合 を t e m pに格納temp = find(x > lambda );
%し き い 値 を 超 え る も の だ け lambda分削るy(temp) = x(temp) - lambda;
%し き い 値 を 下 回 る 集 合 を t e m pに格納temp = find(x < -lambda );
%し き い 値 を 下 回 る も の だ け l a m b d a分増やすy(temp) = x(temp) + lambda;
軟判定しきい値関数の定義通りのものがこれで組み上がる.以上で ISTAが実装できる.FISTAもこれを基本にして、β[t]の更新を for文の中に入れることで実装できる.その実行結果を図 15に掲載する.問:FISTAを実装してみよ.
0 10 20 30 40 50 60 70 80 90 100-7
-6
-5
-4
-3
-2
-1
0
1
2
0 10 20 30 40 50 60 70 80 90 100-2
-1.5
-1
-0.5
0
0.5
1
1.5
index
図 14: 左:原信号(青丸)と推定信号 (赤十字)の比較.右:log10(MSE)(青丸)、log10(Cost)(赤十字)の減衰の様子.
4.2 ADMMの実装さらに進んで FISTAよりも柔軟性があり、高速に最適解に近づくことが知られている ADMMを実装し
てみよう.こっちの方がずっとシンプルで実装にはてっとり早い.まず登場する変数が増えるので、以下のように初期条件を設定する.% 初 期 条 件x = zeros(N,1);
z = zeros(N,1);
u = zeros(N,1);
BP型の最適化問題を解くので、λを設定する必要はない.代わりに罰金項に相当する µを設定する必要がある.この係数により、だいぶ振る舞いが変わることには注意したい.% 罰 金 項 の 係 数 の 設 定mu = 1.0
また何度も同じ行列が登場するので先にその部分を計算しておき、メモリに格納しておくとしよう.A1 = A’*inv(A*A’);
A2 = eye(N,N)-A1*A;
さてそれでは ADMMも反復計算であるから for文を利用しよう.
31
% 50回 反 復 計 算T=50;
for t = 1:T
% A D M M更新式x = A1*y + A2*(z-u);
z = SoftThr(x+u,1/mu);
u = u + x - z;
end
これだけだ.ISTA・FISTAに比べて圧倒的にコードはシンプルである.しかも結果を見てみると驚きの性能である.図??に 50ステップ実行した後の結果を載せる.半分ほどのステップであるにもかかわらず、やや振動しながらほぼ原信号と完全一致する結果を得ることに成功している.ISTAや FISTAではメジャラ
0 5 10 15 20 25 30 35 40 45 50-7
-6
-5
-4
-3
-2
-1
0
1
2
0 10 20 30 40 50 60 70 80 90 100-2
-1.5
-1
-0.5
0
0.5
1
1.5
index
図 15: 左:原信号(青丸)と推定信号 (赤十字)の比較.右:log10(MSE)(青丸)、log10(Cost)(赤十字)の減衰の様子.
イザー最小化を行っているため、着実にコスト関数を下げるという性質がある.一方でADMMは交互に更新を行う影響で、必ずしもコスト関数が下がるというわけではない.しかし全体としては急激にコスト関数を下げることで、ISTAや FISTAよりも速くコスト関数の小さい解を得ることができる.また正則化項を増やしても、変数の増加は生じるが、柔軟に対応することが可能であり、今や基本的には圧縮センシングにおいて再構成を行う場合には ADMMによる方法や派生したアルゴリズムが実装されていることが多い.しかし発展目覚ましい分野であるので他の方法論も生まれて置き換わっていくことの繰り返しである.ただし基本的な精神は同一のものが多いため、ここで学んだことは役に立つことも多いだろう.
5 圧縮センシングと情報統計力学ある条件下のもとでは、L1 ノルム最小化により、スパースな解を得て、しかもその解が入力ベクトルと
一致する.このことが圧縮センシングの驚異的な力を示している.それではその条件を少し変わった方法で明らかにしてみよう.
5.1 スピン系の統計力学ここで統計力学の処方箋について、簡単に紹介する.あるエネルギー関数(ハミルトニアン)のもとで
の平衡状態を調べるためには自由エネルギーを計算すればよい.ここで全結合型のイジング模型のエネル
32
ギー関数を用意する.E(x) = − J
N
∑i<j
xixj (149)
xi は各点におかれたイジングスピンで xi = ±1をとる.相互作用の強度を J として強磁性的な相互作用(J > 0)を考える.カノニカル分布の平衡状態にあるとき、スピンの状態はつぎの確率分布に従う.
P (x) =1
Zexp
(−E(x)
T
)(150)
ここで Z は規格化定数であり分配関数である.自由エネルギーを計算するためにはこの分配関数を計算すればよい.それでは分配関数の計算を実行してみよう.
Z =∑x
exp
J
NT
∑i<j
xixj
(151)
よく利用される以下の恒等式を用いて分配関数を書き換えよう.指数の肩に現れている和はいわゆる和の 2
乗を計算したときのクロスターム部分であるから、
1
N2
∑i<j
xixj =1
2
(
1
N
N∑i=1
xi
)2
− 1
N2
N∑i=1
x2i
≈ 1
2
(1
N
N∑i=1
xi
)2
+O
(1
N
)(152)
とかける.この表示を用いると分配関数は、
Z =∑x
exp
NJ
2T
(1
N
N∑i=1
xi
)2 (153)
ここで現れる∑N
i=1 xi/N はスピンの揃い具合を表している磁化である.このように微視的自由度の平均的性質を推し量る物理量を秩序パラメータと呼ぶ.そこで秩序パラメータである磁化
m =1
N
N∑i=1
xi (154)
に注目して、特定のmを与えるものについて xの和を取り、そしてmの積分を実行することにしよう.
Z =∑x
∫dmδ
(m− 1
N
∑i=1
xi
)exp
(NJ
2Tm2
)(155)
この操作は以下の恒等式を分配関数の中身に挿入したと考えてもよい.
1 =
∫dmδ
(m− 1
N
∑i=1
xi
)(156)
ここで少し意味合いを考えよう.ある磁化mを持つ微視的状態 xの組み合わせに付いて全て和を取るというのは、状態数の数え上げに他ならない.その対数を取ったものをエントロピーと呼ぶ.本来状態数はエネルギーを引数としてもつが、この場合エネルギーに相当する部分はNJm2/2であるからエネルギーの代わりにmを用いても意味は変わらない.そこで以下のように文字をおく.
− 1
Te(m) =
J
2Tm2 (157)
s(m) =1
Nlog∑x
δ
(m− 1
N
∑i=1
xi
)(158)
このとき、分配関数はZ =
∫dm exp
{N
(−e(m)
T+ s(m)
)}(159)
33
という表示を持つ.ここで統計力学の前提であるN → ∞(熱力学極限)を考慮すると、積分の主要な寄与は鞍点からのみ決まるので
Z = exp
{N
(−e(m∗)
T+ s(m∗)
)}(160)
となる.ここでm∗ はm∗ = argmax
m
{−e(m)
T+ s(m)
}(161)
から決まる最大値をとるときのmである.分配関数の対数を取り、N で割ることで 1スピンあたりの自由エネルギーを求めると、
−f =T
NlogZ = max
m{−e(m) + Ts(m)} (162)
という熱力学でよく知られた変分原理を再現する.(ヘルムホルツの自由エネルギーはエネルギーからエントロピーの効果を引いたものの最小化で与えられる.)それでは計算の話に戻ろう.残る計算するべき量はエントロピーである.デルタ関数の積分表示を用いて、以下のように書き換える.
δ
(m− 1
N
N∑i=1
xi
)=
∫dm exp
{m
(Nm−
N∑i=1
xi
)}(163)
この表示によりエントロピーは、
s(m) =1
Nlog
{∫dm exp (Nmm)
N∏i=1
∑xi
exp (mxi)
}(164)
と変形できる.ここで ∑x
N∏i=1
f(xi) =N∏i=1
∑xi
f(xi) (165)
という関係を用いた.xi についての和をとると
s(m) =1
Nlog
{∫dm exp (Nmm+N log 2 cosh m)
}(166)
ここでも同様にN → ∞を考慮して鞍点法を適用すると、
s(m) = mm∗ + log 2 cosh m∗ (167)
を得る.ここで m∗ はm∗ = argmax
m{mm∗ + log 2 cosh m∗} (168)
である.全ての結果をまとめると、自由エネルギーは次のmと mについての最小化問題を解けばよいことがわかる.
f = minm,m
{Jm2 + Tmm+ T log (2 cosh m)
}(169)
この最小化問題を解くと、m = − tanhmが成立するので、mについての自己無撞着方程式が得られる.
m = tanh
(J
Tm
)(170)
この自己無撞着方程式を反復代入により固定点を求めることで解くことができる.
m[t+ 1] = tanh
(J
Tm[t]
)(171)
温度と結合の変化に応じて、全結合相互作用をするイジング模型の相転移を議論することができる.[問:K = J/T として、K を変化させたときの磁化の振る舞いについて数値的に調べよ.]
34
5.2 基底追跡の性能評価ベイズの定理により、最大事後確率という観点で、LASSO型の最適化問題を定式化することができた.
同様に λ → 0とすると、P (x|A,x0) ∝ δ (y −Ax0) exp (−κ ∥x∥1) (172)
という事後確率を用いて、基底追跡の最適化問題を最大事後確率という観点で議論できる.この最適化問題が入力ベクトルを正しく推定できるかどうかを議論しよう.事後確率に β 乗した重みによる平均を
⟨· · · ⟩βx|A,y =
∫dx · · · × P β(x|A,y) (173)
とすると、推定結果が典型的に入力ベクトルと一致するかどうかは、以下の最小二乗誤差の事後平均を議論すれば良い.
MSE =
⟨1
N∥x− x0∥22
⟩β
x|A,y
(174)
β = 1とすれば事後平均そのものを議論することができるし、事後確率の最大化による推定結果を議論するためには β → ∞を議論すればよい.このような期待値を計算するには統計力学の処方箋が有用である.事後確率(の β 乗)をカノニカル分布と考えれば、先ほどのスピン系の統計力学と同様に自由エネルギーの評価を通じて、期待値がどのように振る舞うかが計算できる.さてそこでノイズなしの観測を行った場合に、基底追跡型の最適化問題を解くことにより得られる推定解
が元の入力ベクトルとどれだけ一致するのかという問題を考えよう.前提条件として下記の設定を置こう.
• 観測行列 Aは各成分、平均 0、分散 1/N に従うランダム変数であるとする.
• 入力ベクトル x0 の各成分は、ρ = K/N 程度の非零要素があり、非零要素は正規分布に従うと仮定する.
P0(x) = (1− ρ)δ(xi) + ρ1√2π
exp
(−1
2x2i
)(175)
• 出力ベクトルは y = Ax0 によって与えられる.
熱力学的諸量の計算 基底追跡型の最適化問題に相当する事後確率は、式(172)で与えられるので、次の分配関数を評価することを考えよう.
Z(A,x0) = limλ→+0
∫dx exp
(− 1
2λ∥y −Ax∥22 − β ∥x∥1
)(176)
ここでδ(y −Ax) = lim
λ→+0exp
(− 1
2λ∥y −Ax∥22
)(177)
とデルタ関数を極限で表現する.ちょうどこれは再構成アルゴリズムの章でいうところの罰金法を利用していることに相当する.次に注目したいのは観測行列Aと出力情報 x0である.分配関数、すなわち自由エネルギーがその実現値に依存している.しかしながらN → ∞の熱力学的極限では、1自由度辺りの自由エネルギーはある特定の典型的な値を取り、その値が平均に収束するという性質が知られている.自己平均性と呼ばれる性質である.そこで典型的な自由エネルギーの評価を行うために、Aと x0についての平均操作を行う.
−f =
[1
NlogZ(A,x0)
]A,x0
(178)
ここでAと x0の実現値に関する平均を(相互作用や磁場がやはりランダム変数の問題である)スピングラス理論の用語を借りて、配位平均と呼ぶ.この対数の外からの平均操作は非常に難しいため、レプリカ法と呼ばれる数学的恒等式と解析接続を利用した計算を展開する.
35
�レプリカ法 �対数の外からの平均操作のために以下の恒等式を用いる.
[logZ(A,x0)]A,x0= lim
n→0
[Zn(A,x0)]A,x0− 1
n(179)
ここで分配関数の冪が現れるが、一旦 nが実数であることを忘れて、自然数であると仮定して同じ系のコピーが存在するものとして計算を進める.最終的に nに関する式を得たときに実数であることを思い出して解析接続を行う.� �それではレプリカ法にもとづき、分配関数の冪乗の平均を計算してみよう.
[Zn(A,x0)]A,x0= lim
λ→+0
[∫dxa exp
(− 1
2λ
n∑a=1
∥y −Axa∥22 − β
n∑a=1
∥xa∥1
)]A,x0
(180)
冪乗をとった影響で n個のコピーをもつシステムの統計力学に帰着した.さてまずは Aについての平均であるが、Aが登場する項について注目すると、ta = Ax0 −Axa というM 次元のベクトルの部分に現れるのみである.また Aがガウス分布に従うことから taも多変量正規分布に従う.この量の平均を調べると A
に関する仮定より 0であり、共分散を調べると
(ta)Ttb =1
N
((x0)Tx0 − (x0)Txa − (x0)Txb + (xa)Txb
)(181)
となることがわかる.それぞれ
qab =1
N(xa)Txb (182)
と定義する.これはスピン系の統計力学で利用した磁化m =∑N
i=1 xi/N と同じように微視的状態の組み合わせからなる量の経験平均で秩序パラメータを定義している.その秩序パラメータを固定して、微視的状態について先に和を取り、あとで秩序パラメータを変化させるというのが統計力学の処方箋にもとづくアプローチであった.そこで分配関数の内部にやはり同様に、
1 =∏a,b
∫dqabδ
(qab − 1
N(xa)Txb
)(183)
なる恒等式を代入して、xaについての積分、x0についての平均をまとめてエントロピーとして定義しておこう.
s({qab}) = 1
Nlog
∫ n∏
a=0
dxa
exp(−β
n∑a=1
∥xa∥1
)∏a,b
δ
(qab − 1
N(xa)Txb
)x0
(184)
分配関数の計算は今の段階で、
[Z(A,y)]A,w,x0= lim
λ→+0
∫dqab
[exp
(− 1
2λ
n∑a=1
∥ta∥22
)]ta
exp(Ns({qab})
)(185)
と変形させることに成功した.ここで taについての平均は、先ほど考察したように多変量正規分布に従うので、次の確率分布に従い計算をする.
P (ta|Q) =
(√det(Q−1)
(2π)n
)N
exp
−1
2
∑a,b
(ta)T(Q−1)abtb
(186)
ここで行列Qが共分散行列であり、(Q)ab
= qabを指す.注意したいのがQは n×n行列であることだ.添字 a, bについて和をとっており、ta は N 次元のベクトルである.そのため行列 Qによる 2次形式につい
36
てのガウス積分が同様にN 回登場するという格好である.分配関数に現れるエントロピー以外の項をまとめて内部エネルギーを得ることができる.
−e({qab}) = 1
Nlog
[exp
(− 1
2λ
n∑a=1
∥ta∥22
)]ta
(187)
こうすることでスピン系の統計力学と同様に、
[Z(A,y)]A,w,x0= lim
λ→+0
∫dqab exp
(−Ne({qab}) +Ns({qab})
)(188)
分配関数の評価は鞍点評価に落ちる.
レプリカ対称解の仮定と内部エネルギーの評価 まず内部エネルギーの計算をしてみよう.対数の内部に注目すると、残る計算は、∫
dta
(√det(Q−1)
(2π)n
)N
exp
−1
2
∑a,b
(ta)T(1
λδab + (Q−1)ab
)tb
(189)
というガウス積分を行えばよい.�ガウス積分 �ガウス積分の公式 ∫
dx
√a
2πexp
(−a
2x2 + bx
)= exp
(b2
2a
)(190)
及びそのN 次元への一般化∫dx
√det(A)
(2π)N
exp
(−1
2xTAx+ bTx
)= exp
(1
2bTA−1b
)(191)
を用いる.以降頻繁にガウス積分が登場するので∫Dx =
∫dx√2π
exp
(1
2x2
)(192)
と書く.� �実際に ta についてガウス積分を実行すると、
−e({qab}) = −α
2log det
(I +
1
λQ)
(193)
を得る.ここで α = M/N であり、ta の次元が M であったことに注意してもらいたい.有名な公式log det(A) = Tr log Λ(Λ は A の対角化によって得られる対角行列)を用いれば良いことがわかる.つまり問題は固有値問題に帰着した.しかしながら共分散行列Qについてどんな特徴があるだろうか.計算を押し進めるために以下の考察にもとづき共分散行列の構造を仮設する.添字 0は特別であるとして、aについては同じ系のコピーに過ぎないのだから、添字の入れ替えについて対称であると仮定することには無理がないだろう.そこで以下のようなレプリカ対称解をおく.
q0a = m (a > 0) (194)
qaa = Q (a > 0) (195)
qab = q (a = b) (196)
と置くことにする.q00 = ρは定義より定まっている.これをレプリカ対称性の仮定と呼ぶ.(レプリカ対称性の破れとは、この対称解があるパラメータ領域では不安定化することを指す.)このとき共分散行列は以
37
下の構造を持つ.
Q =
ρ− 2m+Q ρ− 2m+ q · · · ρ− 2m+ q
ρ− 2m+ q ρ− 2m+Q · · · ρ− 2m+ q...
. . ....
ρ− 2m+ q ρ− 2m+ q · · · ρ− 2m+Q
= (Q− q)In + (ρ− 2m+ q) 1n (197)
ここで Inが n× nの単位行列、1nが n× n全成分 1の行列である.よって I +Q/λの固有値を求めると、1個の 1 + (Q− q)/λ+ n(ρ− 2m+ q)/λと n− 1個の 1 + (Q- q)/λという固有値を持つことが分かる.[問:固有値を確認せよ.]
よって以下の最終的な表式を得る.(ここで nが非常に小さいということを使っている.)
−e(ρ,Q,m, q) = −nα
2
ρ− 2m+ q
λ+ (Q− q)− n
2log
(1 +
1
λ(Q− q)
)(198)
エントロピーの評価 スピン系の統計力学の場合と全く同様にしてデルタ関数のフーリエ積分表示を行うことで実行できる.まずレプリカ対称解を仮定したので出てくるデルタ関数は 3つのタイプがある.
δ
(Q− 1
N(xa)Txa
)=
∫dQ exp
{Q
2
(NQ− (xa)Txa
)}(199)
δ
(q − 1
N(xa)Txb
)=
∫dq exp
{− q
2
(Nq − (xa)Txb
)}(200)
δ
(m− 1
NxT0 x
a
)=
∫dm exp
{−m
(Nm− xT
0 xa)}
(201)
それぞれ積分変数の符号を変えたり係数を変えているのは後々の便利のためである.これらの積がエントロピーの対数の内部に現れるので、その部分にまず注目してみよう.∏
a,b
δ
(qab − 1
N(xa)Txb
)= exp
(N
n
2QQ−N
n(n− 1)
2qq −Nnmm
)
×n∏
a=1
exp
(−1
2Q(xa)Txa + mxT
0 xa
)∏a=b
exp
(1
2q(xa)Txb
)(202)
最後の項は見覚えがある.レプリカの添字についてのクロスタームであることに気づくと、
∏a=b
exp
(1
2q(xa)Txb
)= exp
q
2
(
n∑a=1
xa
)2
−n∑
a=1
(xa)Txa
(203)
さらにガウス積分を逆に利用したハバード・ストラトノビッチ変換を利用すれば、∫Dz
n∏a=1
exp
(√qzTxa − q
2(xa)Txa
)(204)
を得る.�ハバード・ストラトノビッチ変換 �ガウス積分の公式を逆に利用して、指数関数の肩の部分にある項を 1次に減らすことができる.∫
Dz exp(√
azTx)= exp
(a2xTx
)(205)
代わりにガウス積分が増えることになるが、xが何かの和であるとか入り組んでいる場合に、1次の項にすることで解きほぐすことが可能となるメリットがある.� �
38
最終的にエントロピーの項に現れる対数の内部にあるデルタ関数の積は、∏a,b
δ
(qab − 1
N(xa)Txb
)= exp
(N
n
2QQ−N
n(n− 1)
2qq −Nnmm
)
×n∏
a=1
∫Dz exp
(−1
2
(Q+ q
)(xa)Txa +
(√qz+ mx0
)Txa
)(206)
という形を持つ.ここで xaについての積分を考えると、n個の積は全く同等のものがあるので単純に積分の結果を n乗してもかまわない.また xaのN 個の成分についても全く同等であるので積分の結果をN 乗してかまわない.最終的にエントロピーに関係する積分部分は、∫ n∏
a=1
dxa exp (−β ∥xa∥1)∏a,b
δ
(qab − 1
N(xa)Txb
)= exp
(N
n
2QQ−N
n(n− 1)
2qq −Nnmm
)× exp
{Nn log ϕ(x0, z; {Q}, {Q})
}(207)
ここでまとめて
ϕ(x0, z; Q, q, m) =
∫dx exp
(−1
2
(Q+ q
)x2 +
(√qz + mx0
)x− β|x|
)(208)
とおいた.指数の肩にすべてN がかかっているため、Q, q, mによる鞍点評価をすれば良い.結局エントロピーは、Q, q, mによる鞍点を用いて、
s(ρ,Q,m, q) = maxQ
{n
2QQ− n(n− 1)
2qq − nmm+ n
[∫Dz log ϕ(x0, z; Q, q, m)
]x0
}(209)
という格好となる.内部エネルギーもエントロピーも nについての 1次の項があるため、レプリカ法の処方箋に乗っ取って、nの 1次の寄与を見れば確かに有益な情報が引き出せそうだ.残る問題は、ϕ(x0, z; Q, q, m)
の評価である.これは L1ノルム、つまり絶対値関数を含む積分であるので難しい.しかし β → ∞の極限をとることで、積分をせずに鞍点評価を行うことでこの問題点を回避することができる.
β → ∞の極限 やや天下りであるが、β を有限に留めたままで計算を実行したのちに β → ∞としたときの以下の問題点
• Q− q ∼ O(1/β)で Qと qが近づく.
• Q+ q ∼ O(β)及び m ∼ O(β)、q ∼ O(β2)で発散していく.
を解消するために、β(Q− q) → χ、Q+ q → βQ、q → β2χ、m → βmと変数変換を行う.内部エネルギーについては、λ → +0も合わせてとると、
−e(ρ,Q,m, q) = −nαβ
2
ρ− 2m+Q
χ+O(1) (210)
となる.一方エントロピーについては
s(ρ,Q,m, q) = nβmaxQ
{1
2QQ− 1
2χχ− mm−
[∫Dzmin
x
{Q
2x2 −
(√χz + mx0
)+ |x|
}]x0
}(211)
x0 についての積分を実行して、√χz + mx0 =
√χ+ mtという変数変換を行うことにより、
s(ρ,Q,m, q) = nβmaxQ
{1
2QQ− 1
2χχ− mm− (1− ρ)
∫DzΦ(z; Q, q, 0)− ρ
∫DtΦ(t; Q, q, m)
}
39
を得る.ここで
Φ(z; Q, q, m) = minx
{Q
2x2 −
√χ+ m2zx+ |x|
}(212)
とおいた.この最小化問題は実は簡単に解くことができて、
Φ(z; Q, q, m) = − 1
2Q
(∣∣∣√χ+ m2z∣∣∣− 1
)2Θ(|√χ+ m2z| − 1
)(213)
である.ここで
Θ(x) =
{1 (x > 0)
0 (x ≤ 0)(214)
である.[問:最小化問題を実際に解いてみよ.]
Φ(z; Q, q, m)の z に関するガウス積分は丁寧に場合分けと部分積分を行えば実行できる.全ての結果をまとめると、1自由度あたりの自由エネルギー −βf = 1
N [logZ]A,x0をみてみると、
−f = maxQ,Q
{α
2χ(ρ− 2m+Q) +
1
2
(QQ− χχ
)−mm+
(1− ρ)
QG(χ+ m2) +
ρ
QG(χ)
}(215)
という表式を得る.ここで
H(a) =
∫ ∞
a
Dz (216)
G(a) = (a+ 1)H
(1√a
)−√
a
2πexp
(− 1
2a
)(217)
と定義した.あとは Q、Qについての鞍点を調べれば良いだけである.それぞれ偏微分することで以下の鞍点方程式を得る.
Q =α
χ(218)
χ =α(ρ− 2m+Q)
χ2(219)
m =α
χ(220)
Q =2ρ
Q2G(χ+ m2) +
2(1− ρ)
Q2G(χ) (221)
χ =2ρ
QH
(1√
χ+ m2
)+
2(1− ρ)
QH
(1√χ
)(222)
m = 2ρm
QH
(1√
χ+ m2
)(223)
これを適当な初期条件のもと、反復代入を行うことで固定点を探す.パラメータ αと ρについて変化させると次のMSEが急激に変化するところが出現する.
MSE =
[⟨1
N∥x− x0∥22
⟩β→∞
x|A,x0
]A,x0
= ρ− 2m+Q (224)
その振る舞いにより基底追跡の相境界が明らかとなる (図 16).このようにして統計力学的な処方箋により、基底追跡や LASSO型の最適化問題の性能評価など、圧縮センシングの問題を解く際に利用される最適化問題の性質を明らかにすることができる.観測行列をガウス分布にしたがうランダム行列としたが、直交行列をランダムに選んだものでの性能評価など実際に使われる圧縮センシングの問題に近い状況についても実行することができる.信号の特性や、ノイズが混入した場合など拡張も様々であり、習得するとよい技術である.
40
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
図 16: 基底追跡のレプリカ解析の結果.MSEが 0.001を境目として、黒がMSEが大きい領域(失敗相)、白がMSEが小さい領域(成功相).曲線は図 6のもの.
5.3 近似メッセージ伝搬法後に続くボルツマン機械学習でも登場する統計力学由来の推定アルゴリズムについて紹介する.ベイズ
推定を含む確率的な推論においては、確率分布を取り扱う必要がある.圧縮センシングの実践において用いる LASSOを始めとする各種最適化問題にも、背景には事後確率の最大化を通して確率分布を利用していた.ここで確率分布を通して、推定を行うための手法について紹介しよう.確率的な挙動を示す変数(確率変数)に対して、ある程度の指標を持って推定を行い、後に出てくる値を
予測することを確率的推論と呼ぶ.指標となるものは、確率変数がどの程度の起こりやすさを持っているのかを示す確率分布をできるだけ正確に取り扱うことが求められる.しかしながら正確に取り扱う際に、確率変数同士が複雑に絡み合っており、独立性が担保できない場合がある.そこで大きく二つの確率的推論の方法がある.
• 平均場近似を始めとする近似的手法
• マルコフ連鎖モンテカルロ法を始めとするサンプリング手法
のふたつである.これらのふたつは、のちのボルツマン機械学習においても利用されることになる.そこで手法としての導出や性質の詳しい解説は後に譲るとして、ここでは圧縮センシングの問題に近似的手法による確率的推論を利用する事例について紹介する.結果として導出されるアルゴリズムは、先に登場したメジャライザー最小化を基本とした ISTAに似た形となるため、最適化問題と統計力学の関係を探る意味でも非常に興味深い内容を含む.
確率的推論に利用される近似手法 先ほど紹介した統計力学的手法は、あるルールに基づいて生成されていると想定される観測行列、そして原信号に対して、正しく推定できるかどうかの典型的な性能(鞍点の意味で尤もらしい状態)を評価している.その意味で平均的な性質について焦点を当てている.ここで紹介するのは、それとは真逆で、具体的にある観測行列、原信号をもってきたときに、もっともらしい信号として推定するためのアルゴリズムである.方法として利用することを念頭におくため、細かい導出方法は傍において、平均場近似の一種であるメッセージ伝搬法(信念伝搬法)を、天下り的に導入する.多数の確率変数 xが絡んだ確率分布P (x)を持つモデルが与えられたとしよう.確率変数同士の関係を、変
数ノードと称して、丸印と線で結んでグラフィカルに表示する.たとえば 4つの確率変数 (x = (x1, x2, x3, x4)
41
が絡む確率分布P (x) = f(x1, x2)f(x2, x3, x4) (225)
が与えられたとしよう.f と gは適当な非負の関数を表すとする.このとき、x1と x2は f を通して相互に関係しており、また x2、x3と x4は gを通して関係している.その様子を図示したものが図 17である.統
図 17: 確率分布と変数ノードによる表示.
計力学の言葉では、確率変数を微視的自由度(つまり粒子の座標やスピンの向きなど)と呼び、確率変数同士が絡んでいる様子を指して、相互作用をしていると表現する.この確率変数同士の関係部分を分離して、四角でグラフィカルに表現したのがファクターノードと呼ばれるものである(図 18).ファクターノード
図 18: 確率分布と変数ノード、ファクターノードによる表示.
につながっている変数ノード同士が、絡んでおり相互作用をしているというわけだ.ファクターノードを通してつながっていない変数ノードは無関係、つまり独立に振る舞うというわけだ.よく文献等で見られる慣習に従い、以下ではファクターノードを µとギリシャ文字で表し、変数ノードをアルファベットで表現する.ファクターノード µについている変数ノード kは、k ∈ ∂µと表示する.一方変数ノード kについているファクターノード µは、µ ∈ ∂kと表記する.繰り返しになるが、変数ノードは確率変数の要素を表しており、ファクターノードは、確率変数間の関係を記述する.そのようなグラフィカルな表現に基づくと、確率分布関数を以下のように記述することができることが
わかる.
P (x) =N∏
k=1
fk(xk)∏µ
fµ(x∂µ) (226)
fµ(x∂µ))は、確率分布関数のうち、ファクターノード µの周辺にある変数が関係した項(相互作用項)であり、fk(xk)は変数ノード kだけに依存する項(バイアス項)である.目的は、この確率分布関数を指標として組み込むことで、もっともらしい推定を行うことである.指標のひとつは、実現する確率が最大となることである.最大事後確率推定はこれに相当する.その場合、LASSOや BPなど対応する最適化問題を解く必要が出てくる.他にも期待値を計算することで、その期待値を推定結果として利用することが考えられる.その場合、各確率変数の期待値、相関を計算するのに有用な周辺分布を必要とする.本来であれば周辺分布は、以下のように注目した確率変数以外について和を取ったもので定義される.
Pk(xk) =∑x/xk
P (x) (227)
42
しかしながら確率変数が複雑に絡み合っている場合、和を取るのは容易ではない.そこで周辺分布はそれぞれ以下の表示を持つと近似しよう.
Pk(xk) = fk(xk)∏µ∈∂k
Mµ→k(xk) (228)
(229)
また同様にファクターノードに関係した変数ノードの周辺分布についても以下の表示を持つとする.
Pµ(x∂µ) = fa(x∂µ)∏k∈∂µ
Mk→µ(xk) (230)
ここで Mµ→k とMk→µ はメッセージと呼ばれる.このメッセージは以下の反復方程式を経由して構成される.
M[t]µ→k(xk) ∝
∫dx/kfµ(x∂µ)
∏l =k∈∂µ
M[t]l→µ(xl) (231)
M[t]k→µ(xk) ∝ fk(xk)
∏ν =µ∈∂k
M[t−1]ν→k (xk) (232)
図 19に例示するように、変数ノードとファクターノードによる二分グラフの構造の性質を利用して、変数ノードからファクターノードへのメッセージとファクターノードから変数ノードへの繰り返し更新によるアルゴリズムと見ることができる.これはボルツマン機械学習の項で述べられるように、確率分布関数の強
図 19: メッセージと変数ノード、ファクターノードの位置関係.
い複数の確率変数間の相関関係を断ち切る近似を行うことで得られる方法である.さて上記のメッセージ伝搬法について、我々の目的とする圧縮センシングの原信号推定に利用してみよ
う.まずは基底追跡型の最適化問題について考えよう.観測行列 A、観測信号 yが与えられたときの事後確率はベイズの定理を利用して、以下のように与えられる.
P β(x|A,y) ∝N∏
k=1
exp (−β|xk|)M∏µ=1
δ(yµ − aTµx
)(233)
ファクターノード µにたいして、変数ノードは全て繋がっている.グラフィカル表示を行うと、図 18のような格好を持つ.また aµ は観測行列の行ベクトルを抜き取ったものである.β → ∞の極限において、L1
ノルム最小化を利用して、スパースな解を得るという格好をしているのはこれまで通りである.制約条件を表すデルタ関数部分を罰金法にあるように、制約条件から決まるガウス分布で表現することも可能である.そこで一般に以下の形で与えられる確率分布関数を以降取り扱うことにする.
P β(x|A,y) ∝N∏
k=1
exp (−β|xk|)M∏µ=1
f(aTµx|yµ
)(234)
43
そのままメッセージ伝搬法を利用しても良いが、更に変数の数が多い(N → ∞)という問題の性質を利用して、近似を施すことにより計算量の更に低いアルゴリズムを構成することができる.これを近似メッセージ伝搬法(Approximate Message Passing:AMP)と呼ぶ.それでは近似メッセージ伝搬法の導出を行う.N → ∞の極限での計算であるから、先ほどの統計力学に
よる解析手法が参考になる.まずメッセージの更新式(231)の計算を進める.以下の恒等式を利用する.
1 =
∫duµδ
(uµ − aTµx
)(235)
この恒等式をメッセージ更新式(231)に挿入しよう.
M[t]µ→k(xk) ∝
∫duµ
∫dx/kf(uµ|yµ)δ
(uµ − aTµx
) ∏l =k∈∂µ
M[t]l→µ(xl) (236)
さらにデルタ関数をフーリエ積分表示(後の便宜のため虚数単位を用いた表示)をする.
M[t]µ→k(xk) ∝
∫duµ
∫duµ
∫dx/kf(uµ|yµ) exp
{iuµ
(uµ − aTµx
)} ∏l =k∈∂µ
M[t]l→µ(xl) (237)
積分される変数に注目して、xl についての積分の積として表示する.
M[t]µ→k(xk) ∝
∫duµ
∫duµf(uµ|yµ) exp {iuµ (uµ − aµkxk)}
∏l =k∈∂µ
∫dxl exp (−iuµaµlxl)M
[t]l→µ(xl)
(238)
ここで観測行列は慣例に従い、平均 0、分散 1/M のガウス分布に従うものを仮定する.そのとき aµl が分散 1/M 程度の微小な値を持つことをから、xl に関する積分の中身を展開する.[t] その際に以下の平均と分散を定義する.
mk→µ[t] ≡∫
dxkxkM[t]k→µ(xk) (239)
Vk→µ[t] ≡∫
dxkx2kM
[t]k→µ(xk)− (mk→µ[t])
2(240)
これにより xl に関する積分を aµk について 2次まで展開したのちに実行したつもりになり、再び指数関数の肩に引き上げる.
M[t]µ→k(xk) ∝
∫duµ
∫duµf(uµ|yµ) exp {iuµ (uµ − aµkxk)}
∏l =k∈∂µ
exp
(−iuµaµlml→µ[t]−
u2µ
2a2µlVl→µ[t]
)(241)
ここで uµ についてガウス分布関数となっていることに注目して、積分を実行する.
M[t]µ→k(xk) ∝
∫duµf(uµ|yµ) exp
{− 1
2Vµ(uµ −mµ[t] + aµk(xk −mk→µ[t]))
2
}ここで
mµ[t] ≡∑k
aµkmk→µ[t] (242)
Vµ[t] ≡∑k
a2µkVk→µ[t] (243)
と定義した.途中∑
l =k ml→µ[t] = mµ[t]−mk→µ[t]、∑
l =k Vl→µ[t] = Vµ[t]− Vk→µ[t]として丁寧に主要に寄与する項を考慮しながら計算する.さらに aµk が小さいので、更に展開をする.
M[t]µ→k(xk) ∝
∫duµf(uµ|yµ) exp
{− 1
2Vµ[t][t](uµ −mµ[t])
2
}×
{1 + aµk(xk −mk→µ[t])
(uµ −mµ[t])
Vµ[t]−
a2µk2
(xk −mk→µ[t])2
{1
Vµ[t]− (uµ −mµ[t])
2
(Vµ[t])2
}}(244)
44
ここで uµ についての積分を実行する.そこで以下のモーメントを定義する.
c(k)µ =
∫duµf(uµ|yµ) exp
{− 1
2Vµ[t](uµ −mµ[t])
2
}(uµ −mµ[t]
Vµ[t]
)k
(245)
このモーメントを利用してメッセージは以下のようにガウス分布関数となることがわかる.
M[t]µ→k(xk) ∝ c(0)µ exp
{mµ→k[t]xk − 1
2Vµ→k[t]x
2k
}ここでメッセージによる平均と分散にかかわる xk の 1次、2次の係数は
mµ→k[t] = aµkg0(mµ[t]|Vµ[t])− a2µkg1(mµ[t]|Vµ[t])mk→µ[t] (246)
Vµ→k[t] = −a2µkg1(mµ[t]|Vµ[t]) (247)
であり、gr(mµ|Vµ)は以下のように定義した.
gr(mµ|Vµ) =∂r
∂mrµ
log c(0)µ (248)
この量は f(uµ|yµ)を(245)式のようにガウス積分することで得られる.つまりメッセージ更新式(231)については評価が終わっている.この中に登場するmµ、Vµ の評価のためにもう片方のメッセージ更新式(232)に目を向ける.ここでメッセージによるモーメント
d(r)k→µ =
∫dxkx
rkM
[t−1]k→µ (xk) (249)
を計算することを考えてみよう.r = 1のときmk→µ[t− 1]、r = 2を利用して Vk→µ[t− 1]を得ることができる.ここでメッセージ更新式の定義(232)をみると、評価するべきは以下の積分であることがわかる.
d(r)k→µ =
∫dxkx
rk exp
−β|xk|+∑ν =µ
mν→k[t− 1]xk − 1
2Vν→k[t− 1]x2
k
(250)
例によって絶対値関数があるため積分の実行は難しい.しかしながら β → ∞を考えるため、積分するする詐欺で、鞍点評価に逃げることができる.そこでmν→k[t−1] → βmν→k[t−1]、Vν→k[t−1] → βVν→k[t−1]
とスケールを変更する.さらに
mk[t− 1] =∑µ
mµ→k[t− 1] (251)
Vk[t− 1] =∑µ
Vµ→k[t− 1] (252)
を定義する.レプリカ法による計算のときと同様な計算にするため、先んじて以下の量を計算する.
I(a|b) = log
{∫dx exp
(−β|x|+ βax− 1
2βbx2
)}≈ β
2b(|a| − 1)
2Θ(|a| − 1) (253)
ここから d(r)k→µ = (∂/∂βa)
rI(a|b)より、
mk→µ[t] = S1/(Vk[t−1]−Vµ→k[t−1])
(mk[t− 1]−mµ→k[t− 1]
Vk[t− 1]− Vµ→k[t− 1]
)≈ S1/Vk[t−1]
(mk[t− 1]
Vk[t− 1]
)− mµ→k[t− 1]
Vk[t− 1]Θ (|mk[t− 1]| − 1) (254)
βVk→µ[t] =1
Vk[t− 1]− Vµ→k[t− 1]Θ (|mk[t− 1]−mµ→k[t− 1]| − 1) ≈ 1
Vk[t− 1]Θ (|mk[t− 1]| − 1) .
(255)
45
これで一般的に確率分布関数 f(uµ|yµ)の形が与えられたとき、メッセージをそれぞれガウス分布関数に近似したうえで、その 1次と 2次の係数についての関係式を以下のように得る.
mk[t] =1
β
M∑µ=1
aµkg0(mµ[t]|Vµ[t])−1
β
M∑µ=1
a2µkg1(mµ[t]|Vµ[t])S1/Vk[t−1]
(mk[t− 1]
Vk[t− 1]
)(256)
Vk[t] = − 1
β
M∑µ=1
a2µkg1(mµ[t]|Vµ[t]) (257)
mµ[t] =∑k
aµkS1/Vk[t−1]
(mk[t− 1]
Vk[t− 1]
)− Vµ[t]g0(mµ[t− 1]|Vµ[t− 1]) (258)
βVµ[t] =∑k
a2µk1
Vk[t− 1]Θ (|mk[t− 1]| − 1) . (259)
LASSOに対する近似的メッセージ伝搬法 さて LASSO型の最適化問題に対する近似メッセージ伝搬法のアルゴリズムを書いてみよう.それは f(uµ|yµ)を
f(uµ|yµ) = exp
{− β
2λ(yµ − uµ)
2
}(260)
とおけばよい.式(248)に従い、まず c(0)µ を計算すると、
g0(mµ|Vµ) =β
λ+ βVµ(yµ −mµ) (261)
g1(mµ|Vµ) = − β
λ+ βVµ(262)
であるから βVµ → χµ として、
mk[t] =M∑µ=1
aµkλ+ χµ[t]
(yµ −mµ[t]) + Vk[t]S1/Vk[t−1]
(mk[t− 1]
Vk[t− 1]
)(263)
Vk[t] =M∑µ=1
a2µkλ+ χµ[t]
(264)
mµ[t] =∑k
aµkS1/Vk[t−1]
(mk[t− 1]
Vk[t− 1]
)− χµ[t]g0(mµ[t− 1]|χµ[t− 1]) (265)
χµ[t] =∑k
a2µk1
Vk[t− 1]Θ (|mk[t− 1]| − 1) . (266)
ここでさらに近似を行う.(いわゆる近似メッセージ伝搬法は、この近似を行ったもの.上記は正確には緩和信念伝搬法(relaxed Belief Propagation)と呼ぶ.)大数の法則(非常に多くの確率変数の和からなる量は期待値に収束する)より
∑µ a
2µk = 1および a2µk = 1/M としてもよい.ここで ISTA等前述したアルゴ
リズムとの対応をより見やすくするために、∑
µ a2µk = L、a2µk = L/M とおく.さらに χµ[t] = χ[t]および
Vk[t] = V [t]とする.
mk[t] =M∑µ=1
aµkλ+ χ[t]
(yµ −mµ[t]) + V [t]S1/V [t−1]
(mk[t− 1]
V [t− 1]
)(267)
V [t] =L
λ+ χ[t](268)
mµ[t] =∑k
aµkS1/V [t−1]
(mk[t− 1]
V [t− 1]
)− χ[t]
λ+ χ[t− 1](yµ −mµ[t− 1]) (269)
χ[t] =L
M
N∑k=1
1
V [t− 1]Θ (|mk[t− 1]| − 1) (270)
46
それぞれガウス分布関数の係数をあらわしている.そこで期待値に軟判定しきい値関数をくぐらせたものから各成分の信号を推定することにしよう.
xk[t] = SΛ[t]
(mk[t]
V [t]
)(271)
この各時刻の推定値に関する反復方程式であるとみて、式変形をしてみる.
xk[t+ 1] = SΛ[t]
(xk[t] +
1
L
M∑µ=1
aµkzµ[t]
)(272)
zµ[t] =(yµ − aTµx[t]
)+
K[t− 1]
Mzµ[t− 1] (273)
Λ[t] =λ
L+
Λ[t− 1]
MK[t− 1] (274)
ここで
K[t] =
N∑k=1
Θ
(∣∣∣∣∣xk[t] +1
L
M∑µ=1
aµkzµ[t]
∣∣∣∣∣− Λ[t]
)(275)
また V [t] = 1/Λ[t]とした.上記 2つの反復方程式を称して、圧縮センシングの再構成アルゴリズムとしての有名な AMPと呼ぶ.3つめの反復式(274)は、圧縮センシングの再構成の可能性を表現する重要な式である.(その割にあまり目にしない.)第 2項は、N 成分あるうち非零の成分がいくつあるのかを数えている.そのため復号される信号の非零成分の個数K[t]がK[t] < M であれば、基本的には 1より小さい係数が Λ[t− 1]にかかる.そのため Λ[t]は収束することが期待される.一方で非零成分の個数がK[t] > M であれば発散してしまうため復号ができない.zµ[t]は各時刻での各行における残差 yµ − aTµx[t]に由来する項であり、第一項までとすれば ISTAと一致することに注意したい.統計力学由来の AMPにより更に非自明な補正項が登場する.λ → 0とすれば LASSO型から基底追跡型の最小化問題に対応するが、一般にはISTAによる計算は不安定なものとなる.しかしこの補正項により、ISTAの計算不安定性を弱める性質があることが知られている.その意味でAMPは ISTAより有用であり盛んに応用的な研究やその性質についての理論的研究が進められてきた.
5.4 状態発展法AMPは ISTAをひな形として、補正項を付け加えることにより安定な動作をする.それでは果たして、
その収束先はレプリカ法で議論したものと一致するかどうか?非常に気になるところである.反復法により得られた結果が、どれだけ知りたい情報と一致しているかを表す量に注目して、その時間発展を追うことにより、反復法の性能を知ることができる.ここでは基底追跡法に対する ISTAを例にとって解析してみよう.Aを各成分、平均 0、分散 1/M の独
立同分布のガウス分布から生成される場合を考える.このときリプシッツ定数は L = 1である.その ISTA
の更新式は以下の通りである.
x[t+ 1] = Sλ
(x[t] +ATz[t]
)(276)
z[t] = y −Ax[t] (277)
ここで x[t]を y = Ax0[t]であることを使い、正解 x0 と推定された解 x[t]との関係が明らかとなるように書き換えてみよう.
x[t+ 1] = Sλ
(x0[t] + (ATA− I)(x[t]− x0)
). (278)
ここで大数の法則により、非常に大きいシステムサイズN → ∞では、ATA− I は対角成分、非対角成分共に分散 1/M のガウス分布に従う.また正解と推定された解の間の平均二乗誤差(MSE)を
(σ[t])2=
1
N∥x[t]− x0∥22 (279)
47
とおくと、平均 0分散 1のガウス分布に従う乱数wで x[t]− x0 = σ[t]wと書くことができる.これらの事実を使うと、式 (278)からMSEの更新式を導くことができる.
(σ[t+ 1])2= Ψ
((σ[t])
2)
(280)
ここで
Ψ((σ[t])
2)=
∫Dw
∥∥∥∥∥Sλ
(x0[t] +
√N
Mσ[t]w
)− x0
∥∥∥∥∥2
2
(281)
である.平均二乗誤差が様々な観測結果に対してどのように振る舞うのかを評価するには、経験平均を評価すれば良い.ここで更に大数の法則を利用することで、経験平均の代わりに期待値を計算することにしよう.x[t]については yすなわち x0により完全に決定されるので、その統計性は正解 x0にゆだねられる.そのため x0 についての期待値を取ることが望ましく、
Ψ((σ[t])
2)=
∫dx0P (x0)
∫Dw
∥∥∥∥∥Sλ
(x0[t] +
√N
Mσ[t]w
)− x0
∥∥∥∥∥2
2
(282)
とすれば良い.ISTAの性能解析がこの非線形関数の性質で決まる単純な格好となる.この非線形関数が、平均二乗誤差 (σ[t])
2= 0付近で安定かどうかを調べれば、誤差のない完全な再構成が可能かどうかの領域
が定められる.d
dσ2Ψ(σ2)∣∣∣∣
σ2=0
< 0 (283)
このように平均二乗誤差の変化を期待値の計算によって調べる方法を状態発展法 (state evolution)、または密度発展法 (density evolution)等と呼ぶ.レプリカ法による評価よりも容易であるため、最適化問題で用いられる反復計算の性能限界を調べるために重宝される方法である.実際の計算は、定義通りに従い代入すれば良い.
6 ボルツマン機械学習同じ猫の画像であったとしても、画像データは様々な形態をもつ.しかしながら人間が知覚しているよう
に、様々な猫の画像を見ても、猫である.これはどういうことだろうか.人間は自然と、高次元のデータが与えられたときに、そのデータの本質的な構造を抽出しているということだ.その結果猫であると認識していると考えられる.ボルツマン機械学習は、多次元ベクトルに過ぎない高次元データが与えられたときに、そのデータを創りだしている本質部分である、生成モデルを明らかにする枠組みである.この生成モデルが明らかとなれば、同様の性質を有する高次元データを自在に用意することが可能であり、また生成モデルそのものの特徴から、データの背後にある本質に迫ることができる.ビッグデータ時代と呼ばれて久しい現代において、データを取得する量は増加する一方である.しかし大
量のデータを得るだけ得ておいて、何をしたら良いかわからない、といった声も一方で聞かれる.何もできないという状況を打破するひとつのツールとしてボルツマン機械学習をここでは学習してみよう.
6.1 問題設定計測技術や信号処理技術、そして情報処理そのものの質の向上により、我々は大量のデータを取得するこ
とが可能となった.N 次元のベクトル x(d) で表される大量のデータ(d = 1, 2, · · · , D)が与えられたときに、そのデータの起源を少数の説明変数で表した生成モデルを解明する処方箋のひとつがボルツマン機械学習である.ここで大前提として、データは確率的に出力されて得られているものと考える.ボルツマン機械学習では、統計力学で基本となるカノニカル分布に従ってデータが出力されると考える.
P (x|u) = 1
Z(u)exp {−E(x|u)} . (284)
48
ここで Z(u)は分配関数、uはデータの構造を表すエネルギー関数 E(x|u)を形作るパラメータである.例えばN 次元の 2値データがイジング模型のカノニカル分布から生成されたと仮定する場合には、
E(x|u) =N∑i=1
∑j∈∂i
Jijxixj +
N∑i=1
hixi (285)
とする.xi = ±1であり、パラメータ u = (J,h)によりエネルギー関数が特徴づけられている.j ∈ ∂iは、Jij = 0で繋がっている成分 iに関与する jについての和である.他にもN 次元の連続値を持つデータがガウス分布から生成されたと仮定する場合には、
E(x|u) = 1
2xTJx+ hTx (286)
とする.xiは連続値であり、やはりパラメータ u = (J,h)によりエネルギー関数が特徴づけられている.上記の仮定のもと、与えられた大量のデータの経験分布
PD(x) =1
D
D∑d=1
δ(x− x(d)) (287)
に最も近いカノニカル分布を探してくることがボルツマン機械学習の目標である(図 20).その結果、パラ
図 20: データの経験分布に合うボルツマン分布を求めるボルツマン機械学習.
メータ uによりデータの経験分布を「もっともらしく」再現する確率分布を得ることができる.パラメータそのものからデータの特徴を調べることも可能である.
6.2 最尤法さてそうなると 2つの異なる確率分布を持ってきたときに、それらが近いか遠いかを調べるための計量
が必要だ.最も一般的に用いられるのがカルバック・ライブラー(KL)情報量である.
DKL(P |Q) =
∫dxP (x) log
(P (x)
Q(x)
)(288)
この KL情報量の意味で、データの経験分布に最も近い確率分布を与えるパラメータ uを求めてみよう.Q(x)を未知のパラメータを持つ P (x|u)に、P (x)をデータの経験分布 PD(x)としよう.このときKL情報量は、
DKL(PD|Pu) =
∫dxPD(x) log
(PD(x)
P (x|u)
)(289)
となる.パラメータ uが関与する部分に注目すると、以下の最大化問題と等価であることが分かる.
u∗ = argmaxu
L(u). (290)
49
ここで L(u)は対数尤度関数(の経験平均)と呼び、以下のように定義される.
L(u) =1
D
D∑d=1
logP (x = x(d)|u). (291)
ベイズ推定の説明に現れた尤度関数が再び登場した.ボルツマン機械学習は、この対数尤度関数の最大化(最尤法)を行うことで、得られたデータに適合する「もっともらしい」パラメータの推定を行うとも言い換えることができる.少し計算してみると明らかとなるが、対数尤度関数は、
L(u) = − 1
D
D∑d=1
E(x = x(d)|u)− logZ(u). (292)
という形を持つ.第一項がエネルギー関数(の経験平均)の符号を変えたものであり、第二項が分配関数の対数であるから、自由エネルギーである.統計力学の言葉でいえば、自由エネルギーとエネルギー(温度は1として)の差であるエントロピーが最大となるようなエネルギー関数の形を求めることがボルツマン機械学習の中心的な問題であることが分かる.それでは最尤法を実行するために、お得意の勾配法を試してみよう.
u[t+ 1] = u[t] + η∂L(u)
∂u(293)
ここで η は学習係数と呼ばれる量で、小さければ小さいほど正確であるが計算時間の長大化に繋がるのでほどよい値をとることが要求される.対数尤度関数の微分が必要となるので、パラメータ uについて対数尤度関数の微分を取ってみる.
∂L(u)
∂u= − 1
D
D∑d=1
∂E(x = x(d)|u)∂u
+
⟨∂E(x|u)
∂u
⟩u
. (294)
第 1項はエネルギー関数の形を知っていれば評価は容易である.データに関する経験平均をとるだけだ.一方第 2項は熱平均の計算 ⟨· · · ⟩u =
∑x · · · × P (x|u)が必要となる.ただ一度きりの計算であれば、やる気
にもなるだろう.しかし勾配法の手続きは、適当な初期条件 u[0]のもと、以下の反復計算を行うため何度も何度も勾配の計算、熱平均の計算が必要であることが分かる (図 21).これがボルツマン機械学習の運
熱平均の計算求ム!
熱平均の計算求ム!
熱平均の計算求ム!
図 21: 最尤法の様子
命を決めた.正確な実行のために必要な計算量が非常に膨大となり、現実的な学習法ではないと、かつてその黎明期では判断された.しかしながら 2000年代に入ってから、データ数の大規模化と新しい計算手法の提案を契機に現実的な計算手法であると受け入れられて今日に至る.その代表的なものを以下では紹介していこう.
50
6.3 ボルツマン機械学習の学習方法ボルツマンの名前を冠する通り、統計力学の手法による学習方法がいくつか提案されている.それぞれに
得手不得手があるので、利用する場合にはそこに注意してほしい.話を具体的にするため、エネルギー関数をイジング模型のものにした場合(285)を考えよう.この場合必要となる熱期待値は、⟨
∂E(x|u)∂Jij
⟩u
= ⟨xixj⟩u (295)⟨∂E(x|u)
∂hi
⟩u
= ⟨xi⟩u (296)
である.つまり統計力学の言葉で言えば相関関数と局所磁化である.
平均場近似(Mean Field Approximation) 熱平均または分配関数を計算するには計算量困難を伴うので、いっそのこと近似で諦めるとしよう.熱平均や分配関数の計算で困難さの原因となるのは確率変数間の相関である.そこでその変数間の相関がない独立な分布で近似するとしよう.
P (x|u) ≈N∏i=1
Pi(xi|u) (297)
ただしその近似はできる限りボルツマン分布を利用した場合に近いものにしたい.そこでKL情報量を利用して、ボルツマン分布にできるだけ近くなるように Pi(xi|u)の関数形を決めよう.
PMFi (xi|u) = arg min
Pi(xi|u)
{∫dx
N∏i=1
Pi(xi|u) log
(∏Ni=1 Pi(xi|u)P (x|u)
)}(298)
ここで∫dxiPi(xi|u) = 1という等式制約を課す.この等式制約を考慮してラグランジュ未定乗数を導入し
て新たなコスト関数を導入すると、
PMFi (xi|u) = arg min
Pi(xi|u)
{∫dx
N∏i=1
Pi(xi|u) log
(∏Ni=1 Pi(xi|u)P (x|u)
)+
N∑i=1
λiPi(xi|u)
}(299)
となる.このコスト関数を定義に従い、少し変形してみる.N∑i=1
∫dxiPi(xi|u) logPi(xi|u) +
∫dx
N∏i=1
Pi(xi|u)Ei(xi|x/i,u) + logZ(u) +N∑i=1
λiPi(xi|u) (300)
ここで Ei(xi|x/i,u)はエネルギー関数を以下のように和の形で分解したものである./iは添字 i以外のものを表している.
E(x|u) =N∑i=1
Ei(xi|x/i,u) (301)
具体例を書いてみると、イジング模型のエネルギー関数の場合は
Ei(xi|x/i,u) =∑j∈∂i
Jijxixj + hixi (302)
である.さて Pi(xi|u)について変分をとると、
0 = logPi(xi|u) + 1 + Ei(xi|m/i,u) + λi (303)
なる条件を得る.ここでmi =∫dxixiPi(xi|u)であり、まさに求めたい局所磁化である.等式制約につい
て注意しながら Pi(xi|u)を求めると、
Pi(xi|u) =1
ZMFi (u)
exp(−Ei(xi|m/i,u)
)(304)
51
を得る.ここで ZMFi (u)は規格化定数である.�イジング模型の平均場近似 �
具体的に Pi(xi|u)の場合について計算すると、
Pi(xi|u) =exp
(−∑
j∈∂i Jijximj + hixi
)2 cosh
(∑j∈∂i Jijmj + hi
) (305)
である.局所磁化mi について自己無撞着方程式を得ることができる.
mi = tanh
∑j∈∂i
Jijmj + hi
(306)
� �相関関数については、線形応答
∂
∂hj⟨xi⟩u = ⟨xixj⟩u − ⟨xi⟩u⟨xj⟩u (307)
を利用する [14].問:熱平均の定義とイジング模型のエネルギー関数にもとづいて上記の線形応答の関係式を示せまず自己無撞着方程式の両辺に対して tanh−1 をとる.
tanh−1 mj =∑k∈∂j
Jjkmk + hj (308)
ここからhj = tanh−1 mj −
∑k∈∂j
Jjkmk (309)
であるので、dmi
dhj=
(dhj
dmi
)−1
=
(δij
1−m2j
− Jij
)−1
(310)
を得る.ここで Jji = Jij を利用した.これらの結果を利用して、勾配法に必要な熱平均値 ⟨xi⟩u および⟨xixj⟩uを近似的に得る.平均場近似のよいところはその計算の速さにある.精度を多少犠牲にしてでも高速に計算ができる.但し最近平均場近似の様々な矛盾を解消することで、平均場近似の精度向上を試みる研究が一気に進み、相当な精度の良さを達成することに成功している [16, 17].また平均場近似では独立な確率分布 Pi(xi|u,x/i)による変分を用いたが、さらに 2変数による確率分布からの変分による信念伝搬法(Belief Propagation)、その一般化によるクラスター変分法など多数の進展があり、いわゆる統計力学におけるベーテ近似との関係もあり豊富な研究成果がある.
疑似最尤法(Pseudo Likelihood Estimation) 平均場近似と似た精神を持っている簡単な仕組みでありながら、データ数Dが非常に大きい場合に漸近的に最尤法と一致する解を得る手法である [18].平均場近似と同様に、エネルギー関数が変数毎の和に分解できる(E(x|u) =
∑Ni=1 Ei(xi|x/i,u))場合に、「得ら
れたデータ」を利用した近似を分配関数についておこなう.
Z(u) ≈N∏i=1
∑xi
exp{−Ei(xi|x/i = x
(d)/i ,u)
}. (311)
イジング模型の場合には、
Z(u) ≈ 2NN∏i=1
cosh
∑j∈∂i
Jijx(d)j + hi
. (312)
52
とする.この分配関数を利用した尤度関数を疑似尤度関数と呼ぶ.この結果にもとづき、
⟨xi⟩u ≈ tanh
∑j∈∂i
Jijx(d)j + hi
(313)
⟨xixj⟩u ≈ x(d)i tanh
∑j∈∂i
Jijx(d)j + hi
+ x(d)j tanh
∑i∈∂j
Jjix(d)i + hi
(314)
ここで Jij = Jjiであることを用いているため、相関についてはふたつの項が現れる.どうも先ほどの平均場近似と非常に似ているが、疑似最尤法はmiではなく x
(d)i 、つまり「得られたデータ」を利用していると
ころが大きく異なる.
マルコフ連鎖モンテカルロ法 統計力学を知る読者は、熱平均の計算にマルコフ連鎖モンテカルロ法(MCMC
法)を採用したらよいのではないか、と考えたかもしれない.マルコフ連鎖モンテカルロ法は、所望の確率分布に収束するマスター方程式を計算機上でシミュレートすることにより、期待値を計算する手法である[19].イジング模型のマルコフ連鎖モンテカルロ法について簡単に触れておこう.イジング模型の確率分布の時間発展を考えるために離散時間マスター方程式を考える.
P[t+1](y) =∑x
Wu(y|x)P[t](x) (315)
ここでWu(y|x)が状態 xから yへと遷移する確率であり、P[t](x)が現時刻で得られている確率分布である.この確率過程の収束先の定常分布がボルツマン分布であることを要求する.そのためには釣り合い条件が成立すれば良い.�釣り合い条件 �
所望の定常分布 Pss(x)を持つための遷移確率の条件は、∑x
Wu(y|x)Pss(x|u) = Pss(y|u) (316)
を満たせばよい.� �問題はこの釣り合い条件を満たす遷移確率を、できるだけ簡単に用意したいということだ.そのための処
方箋として、詳細釣り合い条件を更に課すことが多い.�詳細釣り合い条件 �以下の詳細釣り合い条件を満たす遷移確率は
Wu(y|x)Wu(x|y)
=Pss(y|u)Pss(x|u)
(317)
釣り合い条件を満たす.� �ここで注意したいのは、釣り合い条件を満たすものを見つけるために更に制限の厳しい詳細釣り合い条
件を課したことである.所望の定常分布に行き着くためには釣り合い条件を満たせば良い.(細かいことを言えば任意の 2状態へ有限のステップで遷移する確率が存在するというエルゴード条件も必要.)その十分条件として詳細釣り合いがある.この詳細釣り合い条件を満たすとき、平衡系と呼び定常状態は特別な名前が冠される、平衡状態である.最近ではその詳細釣り合い条件を破ったマルコフ連鎖モンテカルロ法がいくつか提案されており、その高速な緩和が注目されているが、これは別の機会に譲ろう.いくつかの文献を挙げるに留める [20, 21, 22].さてイジング模型のマルコフ連鎖モンテカルロ法を実行するために詳細釣り合い条件を満たす解を探し
てみよう.代表的なものはある特定の 1スピンをフリップするルールを採用して、以下の遷移行列によるふ
53
たつが挙げられる.ランダムに選んだある特定のスピン iを xiから−xiへと変化させる.この状態を xとする.そのとき遷移確率を
Wu(x|x) = min
(1,
Pss(x|u)Pss(x|u)
)= min
1, exp
−2∑j∈∂i
Jijxixj − 2hixi
(318)
とする.これをメトロポリス法と呼ぶ.一方遷移確率を
Wu(x|x) =Pss(x)
Pss(x|u) + Pss(x|u)=
1
2
1− tanh
∑j∈∂i
Jijxixj + hixi
(319)
とする熱浴法(グラウバーダイナミクス)がある.[問:それぞれ詳細釣り合いを満たすことを確認せよ.]
メトロポリス法が実装が簡単なため、アルゴリズムを紹介しておく.�メトロポリス法によるマルコフ連鎖モンテカルロ法 �1. x[0]を初期化する.例えば一様分布からサンプリングする.
2. スピンを反転するサイト iを選ぶ.
3. 反転に必要なエネルギー∆E(x[s]|u)を計算する.
∆E(x[s]|u) = −2∑j∈∂i
Jijxi[s]xj [s]− 2hixi[s] (320)
4. エネルギーが下がるときはスピン反転を受け入れる.そうでない場合は一様乱数 rが以下の不等式を満たすときに反転を受け入れる.
r ≤ exp
(−2∆E(x[s]|u)
T
)(321)
5. 終了基準を迎えるまで、ステップ 2-4を繰り返す.� �十分な時間 tw の緩和を待った後、平衡状態に到達していると考えられるため、得られた確率分布関数か
らサンプリングを行うことで、以下のように期待値を計算する.
⟨f(x)⟩u ≈ 1
T
T+tw∑s=tw+1
f(x[s]) (322)
tw が十分におおきく、T も多く取ることにより期待値の計算は非常に高精度で行うことができる.そのため精度を要求すると、マルコフ連鎖モンテカルロ法は、平衡分布への緩和に時間がかかるため計算量が膨大なものとなる.
最小確率流法(Minimum Probability Flow) 尤度関数の代わりに新しいコスト関数を導入して、パラメータ推定を行う最近の手法を紹介しよう.最小確率流法(Minimum Probability Flow、以下MPFとする)は疑似最尤法よりも収束性に優れた手法として知られる [24].この方法は、連続時間マスター方程式に基づく確率分布の時間発展に注目した方法である.そのため統計力学の観点からの研究が待たれる非常に興味深い手法である.まずマスター方程式を以下のように書き下す.
dPt(y)
dt=∑x
Wu(y|x)Pt(x). (323)
54
ここで最小確率流法では、初期条件は与えられたデータによる経験分布とする.
P0(x) =1
D
D∑d=1
δ(x− x(d)) (324)
そこから指定したパラメータ uにより決まるボルツマン分布への緩和を考えてみよう.このとき仮のパラメータが与えられたデータに適合するものであれば、初期分布は定常分布に非常に近いものと考えられる.そのためマスター方程式による分布の変化は非常に小さいものとなるだろう.この考察に基づいて初期分布から微小時間経過したときの KL情報量を最小化する方法が最小確率流法である.まずはマスター方程式の遷移行列をボルツマン機械学習で導入した確率分布を定常分布としてもつよう
に設計する.つまり釣り合い条件を満たすようにする.さらに扱いが容易になるように詳細釣り合いを課した 1スピンフリップによる遷移行列として、以下の遷移行列を採用する.
Wu(x|x) = exp
{−1
2(E(x|u)− Ej(x|u))
}. (325)
xは先ほどと同様に xから 1スピンだけフリップした状態を示す.最小確率流法の処方箋に従い、以下のように初期分布と微小時間後の分布との KL情報量を考えてみる.
DKL(P0|Pt) ≈ DKL(P0(x)|P0(x)) + dtd
dtDKL(P0(x)|Pt(x))|t=0 . (326)
マスター方程式を思い出して計算をすることで以下の量を得る.
DKL(P0(x)|Pt(x)) ≈dt
D
D∑d=1
∑y∈∂x(d)
exp
{−1
2
(E(y|u)− E(x(d)|u)
)}. (327)
[問:確認せよ.]
ここで和の添字 y ∈ ∂x(d) は x(d) から 1スピンフリップで移れる状態のみで和を取ることを意味する.先ほどの議論に基づいて、この量が小さいときほど、初期分布は定常分布に近いものと考えられる.定常分布はパラメータによって決まるため、この量が最小となるようなパラメータを計算することで推定値を得る.これが最小確率流法である.注意したいのはこの方法は実際にマルコフ連鎖モンテカルロ法を用いてマスター方程式による分布の変化を追う必要はない.あくまで式(327)を与えられたデータに基づき計算して最小化をすればよい.そのため最尤法のように勾配法に基づく解法を行うことができる.対数尤度関数の代わりに以下のコスト関数を定義する.
LMPF(u) ≡ − 1
D
D∑d=1
∑y∈∂x(d)
exp
{−1
2
(E(y|u)− E(x(d)|u)
)}. (328)
このコスト関数をパラメータ uについて微分をとると、
∂LMPF(u)
∂u=
1
2D
D∑d=1
∑y∈∂x(d)
(∂E(y|u)
∂u− ∂E(x(d)|u)
∂u
)exp
{−1
2
(E(y|u)− E(x(d)|u)
)}(329)
を得る.それでは実際にイジング模型の場合について、コスト関数(328)の最小化してみよう.1スピンフリップであるという条件を考えると、どこかひとつの iにおいて、yi = −x
(d)i となるので、
E(y|u)− E(x(d)|u) = 2x(d)i
hi +∑j∈∂i
Jijx(d)j
(330)
であることが分かる.一旦固定した iを後で動かして和を取れば同等のものが得られる.
LMPF(u) =1
D
D∑d=1
N∑i=1
exp
−
hi +∑j∈∂i
Jijx(d)j
x(d)i
. (331)
55
このことから各勾配は、
∂LMPF(u)
∂Jij=
1
D
D∑d=1
x(d)i x
(d)j exp
−
hi +∑j∈∂i
Jijx(d)j
x(d)i
(332)
∂LMPF(u)
∂hi=
1
D
D∑d=1
x(d)i exp
−
hi +∑j∈∂i
Jijx(d)j
x(d)i
(333)
となることがわかる.この勾配にもとづき、パラメータを更新することで効率のよい学習が達成できる.
6.4 更なる複雑度への挑戦ボルツマン機械学習は、提案当初の黎明期はその計算量の要求に応えられず、歓迎されたものではなかっ
た.平均場近似を始めとする高速な計算手法では精度を犠牲にしてしまう.擬似最尤法ではデータの量が重要である.マルコフ連鎖モンテカルロ法では計算時間が膨大なものとなる.しかしながら、近年の計算機の性能向上とデータの取得量があいまって、ボルツマン機械学習を実行することはそう難しくなくなってきた.そうなれば、更なる複雑度への挑戦である.エネルギー関数 E(x|u)を複雑にすればするほど生成モデルの表現の幅が大きく向上する.例えば 3体相互作用、4体相互作用といったように、エネルギー関数の中身に Jijklmn···xixjxkxlxmxn · · · といった複数の積からなる項を用意することが考えられる.一方で、マルコフ連鎖モンテカルロ法によるカノニカル分布への収束が遅くなり、平均場近似による精度の悪化が顕著になる.また擬似最尤法等データの量による精度向上も期待できなくなる.やはり難しくすればする程、大変なものとなってしまうのだ.その計算量と複雑度のギリギリを攻めることを考える.その結実のひとつが深層学習の基礎となる隠れ変数有りボルツマン機械学習である.その隠れ変数有りボルツマン機械学習について、単純で有名な例を通して理解していこう.隠れ変数有り
ボルツマン機械学習では、データを表現する可視変数 vと、そのデータと結合して、しかしデータの表現に直接は関わらない隠れ変数 vを導入する.これらの間にあるエネルギー関数 E(v,h)を仮定して、ボルツマン機械学習を行うことを考える.典型的な例は、混合ガウスモデルである.可視変数 vは平均 µh、分散 σ2
hのガウス分布に従うとして、隠れ変数 hは 1~K 個の添字を表すとして、それぞれ重み whをもつ場合、以下の確率分布に従う.
P (v,h|u) = P (v|h,u)P (h|u) = ph
√1
2πσ2h
exp
{− 1
2σ2h
(v − µh)2
}(334)
ここで ph = wh/∑K
h=1 whである.またパラメータ uは、(µh, σh, ph)のセットを表す.エネルギー関数による表記をすれば、自明な定数を除き、
E(v,h|u) = 1
2σ2h
(v − µh)2+
1
2log σ2
h − log ph (335)
となる.また事実上観測される可視変数のみの周辺確率を計算すると、
P (v|u) =K∑
h=1
ph
√1
2πσ2h
exp
{− 1
2σ2h
(v − µh)2
}(336)
となり、混合ガウス分布と呼ばれるものである.典型的な隠れ変数を有する問題設定である.ここでは隠れ変数は、どのガウス分布からデータが生成されたかを示している.いわば 2段階の構造を取っていることがわかる.隠れ変数により選ばれたガウス分布に従い、データを表す vが出力される.隠れ変数は、我々の観測結果からは見ることのできないものである.このように隠れ変数が存在するときに、観測できるデータ vは不完全であるという.仮に隠れ変数についての情報も知り得る場合、そのデータ v,hは完全であるという.
56
この隠れ変数の導入により、単純なガウス分布から多少の変更で複雑なデータの生成過程を表現していることに注目してもらいたい.少しだけの変更で、ガウス分布の構造は著しく損なうことがなく生成モデルの複雑度は増している.ガウス分布ならではの計算のしやすさや、数値計算上での実装のしやすさ等はある程度保持したまま、より多彩なデータの構造を表現することができる.しかしながら、この隠れ変数がある問題では、尤度が極大の解が多く存在して、学習の効率を悪化させることがよくあることが知られている.こればっかりは多彩なデータを表現するための犠牲でもあり、ある程度は仕方がないことである.
期待値最大化法 この混合ガウス分布に対する最尤法の解法として、有名なものが期待値最大化法(Expectation-
Maximization)である.仮に完全なデータの経験分布が得られたとしよう.その経験分布に一番適合するP (v,h|u)を得ようという場合、KL情報量最小化から尤もらしいパラメータが得られる.しかしながら我々が得ることのできるものは、可視変数だけである.その経験分布は可視変数の周辺分布を近似してくれるだろう.そこで以下の対数尤度関数の最大化を考える.
L(u) =D∑
d=1
logP (v(d)|u) (337)
式(336)にあるように可視変数の周辺分布には和が含まれており、そのままでは計算がしやすい格好にはない.そこで、条件付き確率を用いて以下のように周辺分布を書き換える.
L(u) =
D∑d=1
{logP (h,v(d)|u)− logP (h|v(d),u)
}(338)
書き換えるのは勝手だが、このままでは hについては、確率変数のままであるので都合が悪い.何らかの確率分布で平均をとることにしよう.
L(u) =D∑
d=1
{∫dhQd(h) logP (h,v(d)|u)−
∫dhQd(h) logP (h|v(d),u)
}(339)
左辺はそもそも隠れ変数には依存しないので、これは任意の確率分布Qd(h)について成立する.KL情報量の形で書き直すことを狙うと以下の式を得る.
L(u) =D∑
d=1
{∫dhQd(h) log
(P (v(d),h|u)
Qd(h)
)−∫
dhQd(h) log
(P (h|v(d),u)
Qd(h)
)}(340)
KL情報量の非負性より、右辺第二項を落とすことで、対数尤度関数の下限を得ることができる.
L(u) ≥D∑
d=1
{∫dhQd(h) log
(P (v(d),h|u)
Qd(h)
)}(341)
等号成立条件は Qd(h) = P (h|v(d),u)が成立するときである.ここで、logP (h,v|u)は和が含まれず、容易に計算が実行できることに注目したい.等号成立条件が成立する場合、事後確率 P (h|v,u)に関する事後平均を計算すれば良いことがわかる.一方で、事後確率の対数 logP (h|v,u)については計算が複雑なままである.そこで一歩後退して、任意の Qd(h)で下限となる事実を利用して、メジャライザーの逆、マイナライザーとなる次の関数を定義する.
Q(u,w) =
D∑d=1
{∫dhP (h|v(d),w) log
(P (v(d),h|u)P (h|v(d),w)
)}(342)
この関数は u = wのとき L(w)となり、かつ式(341)より L(u) ≥ Q(u,w)である.さらに自明に成立する不等式 Q(u,w) ≥ L(w)が成立する.この性質は、圧縮センシングの ISTAを構成する際に利用したメジャライザーと同様である.最尤法では、最大化を目指すため、下限を持ってくるため不等号は全て逆を
57
とっている.このようにメジャライザーと同じ構造をもつことから、逐次更新のアルゴリズムを組み立てることができる.特に Q(u,w)の関数の最大化を行う際に、uに依存している部分が、和を含まない結合確率 P (v,h|u)にしか含まれないところが重要である.�期待値最大化法(Expectation-Maximization algorithm) �
1. t = 0とする.適当な初期条件で u[0]を初期化する.
2. マイナライザーである Q(u,w)を計算する.(E-step)
3. 以下の最大化問題をとく.(M-step)
u[t+ 1] = argmaxu
{Q(u,u[t])} . (343)
4. 終了基準を迎えるまで、ステップ 2-4を繰り返す.� �制限ありボルツマン機械 隠れ変数の導入により、複雑度をあげながら、しかし計算はしやすい構造をとる生成モデルを用意することができた.この性質を巧みに利用したのがいわゆる深層学習である.可視変数部分からデータが表現される一方で、多彩なデータの構造は、背後にある複雑なもので表現されるものとして、隠れ変数にゆだねるという発想である.そこで最も単純なものとして、可視変数同士、隠れ変数同士には結合を考えず、可視変数と隠れ変数だけに結合がある制限有りボルツマン機械を導入しよう.
P (v,h|u) = 1
Z(u)exp
Nv∑i=1
bivi +
Nh∑j=1
cjhj +∑i,j
Wijvihj
. (344)
ここで、Z(u)は規格化定数である.またパラメータは u = (W,b, c)である.隠れ変数について和を取り、可視変数のみの周辺分布を見てみよう.
P (v|u) = 1
Z(u)exp
Nv∑i=1
bivi +
Nh∑j=1
log 2 cosh
(cj +
Nv∑i=1
Wijvi
) . (345)
可視変数について実効的に相互作用が生じていることが見て取れる.つまり本来可視変数同士は生成モデルとしては結合がないものの、隠れ変数を通して結合している効果が現れている.このように可視変数同士、隠れ変数同士に結合がない制限を課したボルツマン機械を、制限ありボルツマン機械と呼ぶ.この制限有りボルツマン機械は、以下の重要な性質を持つ.同様にして、隠れ変数についての周辺分布を計算すると
P (h|u) = 1
Z(u)exp
Nh∑j=1
cjhj +
Nv∑i=1
log 2 cosh
bi +
Nh∑j=1
Wijhj
. (346)
これを用いて、隠れ変数を知った上での条件付き確率を計算すると、
P (v|h,u) =Nv∏i=1
exp
bivi +
Nh∑j=1
Wijvihj − log 2 cosh
(bi +
Nh∑i=1
Wijhj
) . (347)
という格好を持つ.特徴的なのが、可視変数について独立であるということがわかる.つまり条件付き確率によるサンプリングが容易であるということだ.先ほど紹介したようなマルコフ連鎖モンテカルロ法を利用して、サンプリングに苦心するのは、変数同士に相関があり、確率分布に従ったサンプリングを即座に行うことができないためである.しかし相関がない場合は、マルコフ連鎖モンテカルロ法を利用する必要がない.そのためマルコフ連鎖モンテカルロ法での定常分布までの緩和を待つ必要がないということになる.このような条件付き確率における独立性を、条件付き独立と呼び、制限ありボルツマン機械の利点がここ
58
にある.緩和を待たずにサンプリングを即座に行うことができて、なおかつ生成モデルにそれなりに複雑度を持たせることができる.同様に可視変数を知った上での条件付き確率についても同様に
P (h|v,u) =Nh∏j=1
exp
{cjhj +
Nv∑i=1
Wijvihj − log 2 cosh
(cj +
Nv∑i=1
Wijvi
)}. (348)
条件付き独立性を有した格好をしている.この生成モデルを用いて、以下の対数尤度関数の最大化を目指すことでパラメータの学習を行う.
L(u) =1
D
D∑d=1
logP (v(d)|u) (349)
ここでパラメータについての偏微分を行うと、
∂
∂bL(u) =
1
D
D∑d=1
v(d) − ⟨v⟩u (350)
∂
∂cL(u) =
1
D
D∑d=1
tanh
(c+
(v(d)
)TW
)− ⟨h⟩u (351)
∂
∂WL(u) =
1
D
D∑d=1
v(d)
(tanh
(c+
(v(d)
)TW
))T
−⟨v(d)hT
⟩u
(352)
と各勾配を得ることができるが、再び熱期待値の計算が必要となる.
コントラスティヴ・ダイヴァージェンス法 このような制限ありボルツマン機械の特性である条件付き独立性を利用して、提案されたものがコントラスティヴ・ダイヴァージェンス法(Contrastive divergence、以下 CD法と略記する)である.隠れ変数ありの生成モデルでは、可視変数のみが与えられるので、隠れ変数についての情報をなにがしかの形で擬似生成する必要がある.そこに先ほどの条件付き独立性を利用する.CD法では、可視変数と隠れ変数の “条件付き”サンプリングを交互に行うことにより、生成モデルに従った確率分布のサンプリングを行う.「得られたデータ」の経験分布を可視変数の初期条件として始める [23].�コントラスティヴ・ダイヴァージェンス法 �
1. t = 0とする.v[0] = v(d) と初期化する.以下マルコフ連鎖モンテカルロ法と同様.
2. 条件付き確率 P (ht|vt,u)にもとづき、隠れ変数 ht をサンプリングする.
3. 条件付き確率 P (vt+1|ht,u)にもとづき、隠れ変数 vt+1 をサンプリングする.
4. kステップのサンプリングを終えたら、得られた v(d)[k + 1],h(d)[k](d = 1, 2, · · · , D)により経験平均を取り、これを熱期待値とする.
⟨f(v,h)⟩u ≈ 1
D
D∑d=1
f(v(d)[k + 1],h(d)[k]) (353)
� �kステップだけ行う場合の CD法を CD-kと呼ぶ.経験的には、この kはごくわずかであっても良いこと
が多いとされている.もちろんこの kが大きい方が最尤法の計算が正しく行われるのだが、小さい場合についても尤度の高いパラメータを得ることができるため、高速に複雑なモデルの学習を行うことができるため重宝される.但しデータの量がものを言うことを注意しておきたい.CD法では最後に経験平均を取るのだが、この経験平均を取るのはデータの個数分でありD個の和からなる.そのため大きなデータ数でないと正しい熱期待値を統計誤差の意味で計算することができないので注意したいところである.
59
6.5 スパースな相関推定それではボルツマン機械学習を使って何ができるか.多くの利用例があり得るうち、スパースな相関推定
について紹介しよう.多くの要素からなるデータが得られたときに、どの要素とどの要素が強く関係しているのだろうか?それを調べたいときにボルツマン機械学習が有効となる.そのときに相互作用係数 Jij はありとあらゆる組み合わせの間において考慮する必要がある.しかし一方で、本当に重要な関係性だけを抜き出したいという場合、L1ノルムによる変数選択の効果を利用したボルツマン機械学習が有効である [25].そこで尤度関数の最大化を行うときに、L1 ノルム項を追加する.
maxu
−L(u) + λ∑i<j
|Jij |
(354)
ここで符号を変えて最小化をすることにしよう.また Jij = Jjiという対称性を仮定する.尤度関数の代わりに疑似尤度関数を用いてもよいし、最小確率流法を用いて、
minu
LMPF(u) + λ∑i<j
|Jij |
(355)
としてもよい.λ > 0は大きくすればするほど、得られる推定解のスパース性を促す.そのため非常に数少ない本質的なものだけを抽出したいというのであれば λは大きくすることが望まれる.ここで圧縮センシングの経験が活かされる.L1ノルムを含む最適化問題を扱わなければならない.尤度
関数はやや複雑な格好をしているが、メジャライザー最小化による方法で割と簡単に最適化することができる.ここで g(u) = −L(u)または g(u) = LMPF(u)であり、f(u) = ∥u∥1 と考えればよい.メジャライザー最小化により、
u[t+ 1] = argminu
{f(u) + (∇g(u))
T(u− u[t]) +
L
2∥u− u[t]∥22
}(356)
つまり必要なのは対数尤度関数の勾配であり、これまでに散々評価してきたものであり、またリプシッツ定数が必要である.圧縮センシングにおける LASSO型の最小化問題のときには、リプシッツ定数を予め評価することができたが、ボルツマン機械学習の場合には予めの評価が可能であることは期待できそうにない.そのようにリプシッツ定数が非自明な場合には、以下のようにメジャライザーの性質 g(u) ≤ qL(u,u[t− 1])
に注目して適応的に変更することでメジャライザーを構成することができる.�リプシッツ定数が非自明な場合の対処法 �1. 初期化する.適当な大きさのリプシッツ定数 L[0]を用意する.係数 α > 1を用意する.
2. 仮のリプシッツ定数 L[t]で暫定的にメジャライザー最小解 u[t]を求める.
u[t] = argminu
{f(u) + qL(u,u[t− 1])} (357)
3. 利用したリプシッツ定数によるメジャライザーが g(u[t])を上回ることを確認する.
g(u[t]) ≤ qL(u[t],u[t− 1]) (358)
もし成立していなかったら、非負の整数値 iを増やして L[t] = αiL[t− 1]として更新してステップ 2に戻る.� �
この方法を利用すれば LASSO型の最適化問題以外にも FISTAは柔軟に利用することができる.試しにN = 25個のノード間の N(N − 1)/2 = 300個の相互作用のうち 9割程度が零成分をもち、残りは平均 0、
60
分散 1のガウス分布に従う非零成分を持つ Jij、同様に平均 0、分散 1ガウス分布に従う磁場(バイアス)hiを持つイジング模型のボルツマン分布から人工データとして、5000個のデータを用意して、疑似最尤法及び最小確率流法を L1 ノルム項つきで実行することで得た結果を載せる (図 22).どちらの方法を採用するにせよ、うまくスパースな相関を推定することに成功している.最小確率流法のほうが、収束までにかかる反復計算の回数が少なかったことをコメントしておく.
5 10 15 20 25
5
10
15
20
25
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
5 10 15 20 25
5
10
15
20
25
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
5 10 15 20 25
5
10
15
20
25 0
0.2
0.4
0.6
0.8
1
図 22: スパース相関推定.人工データを生成した相互作用係数(左).疑似最尤法と L1ノルムによる推定結果(中).最小確率流法と L1 ノルムによる推定結果(右).
6.6 意外に難しい多次元ガウス分布におけるスパース相関推定生成モデルとして多次元ガウス分布を仮定した場合について、ある程度は手で計算を進めることができ
るので、さらなる理解に役立つかもしれない.エネルギー関数を
E(x|u) = 1
2(x− µ)
TJ (x− µ) (359)
とする.ここで µは期待値ベクトル、J は分散・共分散行列の逆行列である.そのため J は(固有値が全て正である)正定値行列であることが要求される.対応する分布関数は、
P (x|u) = 1
Z(u)exp
{−1
2(x− µ)
TJ (x− µ)
}(360)
であり、分配関数はガウス積分により容易に評価することができて、
Z(u) = (2π)N2 (det(J))
−N2 (361)
となる.対数尤度関数は、
L(u) =N
2log det(J)− 1
2
D∑d=1
(x(d) − µ
)TJ(x(d) − µ
)(362)
となることがわかる.期待値ベクトル µの推定のために、微分を計算すると、
∂L(u)
∂µ= J(
D∑d=1
x(d) −Dµ) (363)
より、最尤法による結果は µ =∑D
d=1 x(d)/Dとなる.一方分散・共分散行列の逆行列 J については、
X =1
D
D∑d=1
(x− µ)(x− µ)T (364)
61
として、最大化問題maxJ≻0
{log det(J)− Tr(XJ)} (365)
を解けば良いことがわかる.ここで J ≻ 0は正定値行列の範囲で解を探すことを示している.ここで何が起こったか驚く読者もいることだろう.添字をきちんと書いてみるとわかる.b(d) = x(d) − µとして簡単にしておき、2次の項を見ると、
1
2
D∑d=1
(b(d))TJb(d) =1
2
D∑d=1
∑i,j
b(d)i Jijb
(d)j =
1
2
∑i,j
D∑d=1
b(d)i b
(d)j Jij =
D
2
∑i,j
XijJij (366)
となる.これはまさにDTr(XJ)/2となるので、上記の最大化問題が最尤法に相当することがわかる.最尤法を実行するために、勾配を計算すれば良い.行列式やトレースなどがあり躊躇するかもしれない.ここでlog det(J) = Tr log(J)となることを用いると、解くべき最大化問題は次のように書き換えられる.
maxJ≻0
Tr (log(J)−XJ) (367)
通常の数字による関数同様に log(J)を行列 J で微分すれば、J−1 を得る.よって最大を取る時の J は、
J = X−1 (368)
となることがわかる.さてここで分散・共分散行列が実はスパースであることがわかっている、または期待される場合について
考えよう.正則化項として L1ノルムを利用してみたくなる.以下のような最大化問題を解くことを考えてみよう.
maxJ≻0
{log det(J)− Tr(XJ)− λ ∥J |1} (369)
ここで ∥·∥1は行列に対する L1ノルムであり、ベクトルに対する場合と同じように、各成分について絶対値を取り和を取るものとする.容易に微分を取ることは L1 ノルムに対しては不可能である.L1 ノルム以外の部分をメジャライザーを用いて簡単な逐次最適化を行えばよいではないか、とも考えるが、多次元ガウス分布であるためには J ≻ 0という制約条件を考慮しなければならないため厄介である.さてどうしたらよいだろうか.ここで Benerjeeに従い以下の事実を用いて、問題の迂回を行う [26].
∥X∥1 = max∥U∥∞≤1
Tr(XU). (370)
ここで ∥·∥∞は要素の中から絶対値が最大のものを取る L∞ノルムである.慣れないと一瞬で理解はできないかと思うので、少しこれを確認してみよう.まず行列の積のトレースは、
Tr(XU) =∑i,j
XijUij (371)
となる.これが大きくなるのはXij > 0の時にはUij > 0のできるだけ大きい係数をかけること、Xij < 0の時にはUij < 0のできるだけ絶対値の大きい係数をかければ良い.絶対値が最大でも 1となる範囲で最大限大きくすると、Xij > 0の時にはUij = 1、Xij < 0の時にはUij = −1とすればよい.その時Tr(XU) = ∥X∥1となることがわかる.さて、この L1 ノルムの別表現を利用して、解きたかった最大化問題に立ち戻ろう.解くべき最大化問題は以下のように書きかわる.
maxJ≻0
min∥U∥∞<λ
{log det(J)− Tr(X(J + U)} (372)
ここで J についての最大化問題が解ける形になっていることにお気づきだろうか.式(365)のXをX+U
とすればよいのだから、J = (X + U)−1 が解となる.この結果を代入すると結局解くべき問題は、以下の最大化問題となることがわかる.
max∥U∥∞<λ
{log det(X + U)} (373)
62
X + U をW と置いて、以下のように制約付きの最適化問題に書き直すことができる.
maxW
{log det(W )} s.t. ∥W −X∥∞ < λ (374)
さてこの最適化問題を解くことを考えてみよう.解法の一つがブロック座標降下法である.W の行列の1行 1列を繰り返し更新していきながら最適な解をさがしていくという戦法である.�ブロック座標降下法 �
1. t = 0とする.初期化する.W [0] = X + λI.
2. W [t]の各行各列の更新以下のサブルーチンを各行各列(i = 1, 2, ·, N)ごとに解く.
• 以下の 2次の最適化問題を解く.
z∗ = arg min∥z−xi∥∞≤λ
{zT(W/i)
−1z}
(375)
ここでW/iは i行と i列をW から抜き取った行列である.また xiはX から取ってきた i列((i, i)成分は不要)のベクトルである.
• W の i行 i列を z∗ に置き換える.
3. 終了基準を満たすまでステップ 2を繰り返す.終了基準のひとつは、以下の主双対ギャップ
Tr(W−1X)−N + λ∥∥W−1
∥∥1
(376)
が十分に小さいことである.� �ここでサブルーチンとして解いている最適化問題についてコメントしておこう.解きたい最適化問題(374)
のうち、i行 i列のみを動かすことを考えよう.
W =
(W/i z
zT w
)(377)
として、Wの一部を zとして変数に置き換えた.対応して、
X =
(X/i xi
xTi x
)(378)
とする.ここで行列式のコーシー展開を用いて、
det(W ) = w det(W/i)− zTadj(W/i)z (379)
と変形しておく.adjは余因子行列であり、adj(A) = det(A)A−1 を満たすので、det(W )を最大化するには、zT(W/i)
−1zを最小化すれば良いことがわかる.このサブルーチンの最適化問題を内点法で解く場合、COVSELと呼ばれるアルゴリズムに対応しており、T をステップ数とすると、計算量が O(N4T )となることが知られている.本原稿で常に話題となっていた L1 ノルムによる最小化問題の代表例である LASSO
により、このサブルーチンの最適化問題を解くものをGLASSO(Graphical LASSO)と呼ぶ [27].計算量はCOVSELよりも早くO(N3T )程度である.このサブルーチンの最適化問題が LASSOでどうして解けるのだろうか?ちょっと考えてみよう.2次形式で書かれているコスト関数部分は、以下の最大化問題の解であることに注目しよう.
maxx
{−1
2xTW/ix+ yTz
}(380)
そこで、サブルーチンの最適化問題を以下のように書き換える.
min∥z−xi∥∞≤λ
maxx
{−1
2xTW/ix+ xTz
}(381)
63
符号を変えることで最大・最小化問題を入れ替える.
max∥z−xi∥∞≤λ
minx
{1
2xTW/ix− xTz
}(382)
再び L1 ノルムと L∞ ノルムの関係を思い出すと、
max∥a∥∞≤λ
−aTx = λ ∥x∥1 (383)
であるから、先に zについて最適化問題を解くことにより、
minx
{1
2xTW/ix− xT
i x+ λ ∥x∥1
}(384)
という LASSO型の最適化問題に帰着する.元々の問題がL1ノルムの最小化問題であり、それがL∞ノルムによる制約下の最大化問題に帰着したのだから無理のない結論かもしれないが、こんなところにも LASSO
型の最適化問題が現れるというのはなかなか面白い.おそらくスパースモデリングの基盤としてだけでなく普遍的な数理構造としての良さも兼ね備えていることの表れではないかと思う.最後に ADMMを利用した解法について述べる.解くべき最適化問題をまずは思い出す.
minJ≻0
{− log det(J) + Tr(XJ) + λ ∥J∥1} (385)
ここで J −K = 0という制約条件を課して、L1 ノルム部分をK で記述することにより分離する.
minJ≻0,K≻0
{− log det(J) + Tr(XJ) + λ ∥K∥1 +
ρ
2∥J −K + U∥2F
}(386)
ここで U はラグランジュ未定乗数の行列 Λを ρで割ったものである.以下のように繰り返し J、K について最適化問題を解くことで解きたい問題の解を得る.�ADMM for スパース相関推定 �
1. t = 0とする.初期化する.J [0] = K[0] = X−1.
2. J [t]の更新
J [t] = argminJ≻0
{− log det(J) + Tr(XJ) +
ρ
2∥J −K[t− 1] + U [t− 1]∥2F
}(387)
3. K[t]の更新K[t] = arg min
K≻0
{λ ∥K∥1 +
ρ
2∥J [t]−K + U [t− 1]∥2F
}(388)
4. U [t]の更新U [t] = U [t− 1] + J [t]−K[t] (389)
5. 終了基準を満たすまで繰り返す.� �それぞれ途中で解くべき最適化問題は、手で解ける.最初に出てくる J についての最適化問題は、以下
のように計算する.コスト関数の微分が 0となるところを探そう.
−J−1 +X + ρ(J −K[t− 1] + U [t− 1]) = 0 (390)
この左辺にあるコスト関数の勾配のうち、J に関係するもの以外の項−K[t− 1]−U [t− 1]−X/ρの対角化を行う.その直交変換行列を V、固有値を di とした時に、
γi =1
2
(di +
√d2i +
4
ρ
)(391)
64
として J = V Tdiag(γ)V とすると、勾配が 0となることがわかる.確認してみると、共通した直交変換で対角化できるので、固有値だけに注目すると、
− 1
γi+ ργi − ρdi = 0 (392)
という γiについての 2次関数が現れる.この解が先ほど定義した γiそのものとなる.つまりステップ 2では、−K[t− 1]− U [t− 1]−X/ρの対角化を行い、その結果から
J [t] = V Tdrag(γ)V (393)
と厳密に計算できる.ここで J [t]の正定値性が満たされていることを確認する.ステップ 3では L1 ノルムによる軟判定敷居値関数を用いれば良いので、
K[t] = Sλ/ρ(J [t] + U [t− 1]) (394)
となり即座に計算することができる.Scheinbergらにより 2010年にADMMの登場以前に上記のADMMによる方法と同様なものが提案され
ている [28].ADAL(Alternate Direction Augmented Lagrangian)と称していたが、ρの値を変更する点でADMMと異なるものであった.その後 ρの値を変更しない ADMMが提案されて、その簡便さと性能により一挙に広がった.この ρを変えないという点は、圧縮センシングの場合は多くの問題で逆行列の計算コストの問題を低減するのに役立った.アイデア自体は同等であるが細部の違いにより、手法の有効性が大きく変わる一例だ.特にその細部がいかに計算量や精度に関わるか、その部分を大切にしながら考察しないと本当に意味のある広がりのある方法へと昇華しない教訓でもある.
参考文献[1] D. L. Donoho: Discrete & Comput. Geom., 35, (2006) 617.
[2] D. L. Donoho and J. Tanner: Proc. Nat. Acad. Sci., 102, (2005) 9452.
[3] Y. Kabashima, T. Wadayama and T. Tanaka: J. Stat. Mech.: Theory Exp., (2006) L09003.
[4] D. L. Donoho, A. Maleki and A. Montanari: Proc. Nat. Acad. Sci., 106, (2009) 18914.
[5] M. Lustig, D. L. Donoho and J. M. Pauly: Magn. Reson. Med., 58, (2007) 1182.
[6] R. Tibshirani: J. R. Statist. Soc. B, 58, (1996) 267.
[7] M. Honma, K. Akiyama, M. Uemura and S. Ikeda: Publ. Astron. Soc. Jpn. 66, (2014) 95.
[8] A. Beck and M. Teboulle: SIAM J. Imaging Sci. 2, (2009) 183.
[9] M. F. Duarte, M. A. Davenport, D. Takhar, J. N. Laska, T. Sun, K. F. Kelly and R. G. Baraniuk:
IEEE Signal Process. Mag. 25, (2008) 83.
[10] W. Yin, S. Osher, D. Goldfarb and J. Darbon: SIAM J. Imag. Science 1, (2008) 143.
[11] S. Boyd, N. Parikh, E. Chu, B. Peleato and J. Eckstein: Foundations and Trends in Machine
Learning, 3 (2010) 1.
[12] A. Beck and M. Teboulle: IEEE Trans. Image Processing 18, (2009) 2419.
65
[13] J. Huang, S. Zhang, abd D. Metaxas: Lecture Note in Computer Science 6361 (2010) 135.
[14] H. J. Kappen and F. B. Rodrıguez: J. Neural Comp. 10 (1998) 1137.
[15] J. S. Yedidia, W. T. Freeman and Y. Weiss: Mitsubishi Electric Research Laboratories, Tech. Rep.
TR2002-35, (2002).
[16] Mu. Yasuda and K. Tanaka: Phys. Rev. E, 87, (2013) 012134.
[17] J. Raymond and F. Ricci-Tersenghi: Phys. Rev. E, 87, (2013) 052111.
[18] J. Besag: Journal of the Royal Statistical Society. Series D (The Statistician), 24 (1975) 179.
[19] N.Metropolis, A.W.Rosenbluth, M.N.Rosenbluth, A.H.Teller and E. Teller: J.Chem. Phys. 21,(1953)
1087.
[20] H. Suwa and S. Todo: Phys. Rev. Lett. 105, (2010) 120603.
[21] K. S. Turitsyn, M. Chertkov, and M. Vucelja: Phys. D (Amsterdam, Neth.) 240, (2011) 410.
[22] A. Ichiki and M. Ohzeki: Phys. Rev. E 88, (2013) 020101.
[23] M. Welling, and G. Hinton: Artificial Neural Networks, 2414, (2002) 351.
[24] J. Sohl-Dickstein, and P. B. Battaglino and M. R. DeWeese: Phys. Rev. Lett., 107, (2011) 220601.
[25] M. Ohzeki: J. Phys. Soc. Jpn. 84 (2015) 054801.
[26] O. Banerjee, L. El Ghaoui, and A. d’Aspremont: Journal of Machine Learning Research, 9 (2008)
485.
[27] J. Friedman, T. Hastie, and R. Tibshirani: Biostatistics, 9 (2007) 432.
[28] K. Scheinberg, S. Ma, and D. Goldfarb : Advances in Neural Information Processing Systems 23,
(2010) 2101.
66