2015 年度大阪市立大学・電子・物理工学特別講義（改訂版:2015.09.09）「今日からできるスパースモデリング」
大関真之 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 を求めなさい．立派な連立方程式の問題である．
1 E-mail: mohzeki@i.kyoto-u.ac.jp

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 再構成解がスパース性を持つとすると、方策として考えられるのは、できるだけ非零の成分を少なくして（零成分を多くして）方程式の解を満たすものを探すというものである．

L 再構成0

スパースな解を求めるために、以下の最小化問題を解く．

min kxk0
xs.t. y = Ax

(4)

ここで kxk0 を x の L0 ノルムと呼び、x の非零成分の個数を表す．

しかしながらこれを厳密に解くためには、非零成分の個数を動かしながら、そのときにどこが 0 になるのかを仮置きして方程式を満たすものをひたすら探すしかない．そのため計算量爆発の問題があり現実的ではない．そこで、上記の L0 ノルムの代わりに、L1 ノルムを使ってみよう．L1 ノルムとは、各成分の絶対値の和のことである．

kxk1 = |x1 | + |x2 | + · · · + |xN |4(5)

この L1 ノルムは、零成分を持てば持つほど小さくなり、非零成分については大きさが影響するため、L0 ノ
ルムとは違う性質を持つが、L1 ノルムをできるだけ小さくすることで、零成分が比較的多めの解を見つけ出すことができるのではないか？という苦肉の策である．しかしこの苦肉の策が意外に良い結果を導いてくれるというのが、スパースモデリングと呼ばれる枠組みの成功の鍵を握る．

L 再構成1

スパースな解を求めるために、L0 再構成の代わりに、以下の最小化問題を解く．

min kxk1
xs.t. y = Ax

(6)

ここで kxk1 を x の L1 ノルムと呼び、x の各成分の絶対値の和を表す．

なるほどそういうノリでよければ、L2 ノルムはどうだろうか？L2 ノルムは、各成分の 2 乗和を取り、ルートをとったものである．

kxk2 =√
x21 + x22 + · · · + x2N(7)

L 再構成?
2

スパースな解を求めるために、L0 再構成の代わりに、以下の最小化問題を解いたらどうだろうか?

min kxk2
xs.t. y = Ax

(8)

ここで kxk2 を x の L2 ノルムと呼び、x の各成分の二乗和をとり、ルートをとったものである．

それでは L1 ノルムと L2 ノルムによる最小化問題を比較しながら、スパースな解を求めることができる
か、試してみよう．
例題 CS-I:L ノルムと L ノルムの比較
12

以下のふたつの最小化問題を解いてみよう．

min {|x1 | + |x2 |} s.t. y = Ax}{√
2
2
s.t. y = Ax
min
x1 + x2
x1 ,x2

x1 ,x2

ここで観測行列 A は、単なる行ベクトルに過ぎず、()
A= 2 1とする．y = 1 とする．

さて、このまま最小化問題を解く前に、制約条件にされている y = Ax から、

1 = 2x1 + x2

(9)
(10)

(11)



(12)

であることに注目したい．(x1 , x2 ) の 2 次元座標空間上で、傾き −2 の直線を描くことがわかる．x を知るために観測行列 A を作用させた結果、たったいひとつの y を得た．その y から、元の x を求めたいというのがやりたいことである．しかし得られた y は 1 次元であり、一方知りたいものは 2 次元であるので、この条件だけでは、どの 1 点を知りたいものの素性とするべきかは定まっていない状況というわけだ．まずは x2 について解いてみると、

x2 = −2x1 + 1(13)を得るので、この結果を最小化するべきふたつのノルムに組み入れてみよう．最小化（または最大化）され5

る関数のことをコスト関数と呼ぶ．コスト関数が L1 ノルムの場合は|x1 | + | − 2x1 + 1|
である．絶対値記号を外すために、場合分けを駆使すると
 3x1 − 1

|x1 | + | − 2x1 + 1| =




(14)

−x1 + 1

(1/2 ≤ x1 )(0 ≤ x1 < 1/2)

−3x1 − 1(x1 < 0)(15)となることがわかる．最小値をとる (x1 , x2 ) を求めてみると、(x1 , x2 ) = (1/2, 0) であり、スパースな解を選ぶことに成功している．
一方 L2 ノルムの場合は、最小化するべきコスト関数は
√ (
)2
√
1
2
2
2
+
x1 + (−2x1 + 1) = 5 x1 −
5
5

(16)

となり、最小値をとる (x1 , x2 ) を求めてみると、(x1 , x2 ) = (2/5, 1/5) であり、スパースな解とはならない
ことがわかる．このように明確に最小化するべきコスト関数部分により、うまく解が選択されて、スパースな解を求めるには、L1 ノルムが有効であることがわかる．
ここで強調したいのは、制約条件だけでは定まらない、すなわち観測情報だけからは完全に解を定めることができない．しかしその中で、適切なコスト関数の利用により、スパースな解を選ぶことにしている．
その解が正しいかどうかはまだ議論していないが、スパースな解を選んでいることに注意したい．少なくともスパースな解を得たいというとき、スパースな解が十分に期待される場面では強力な処方箋であることがわかる．
この事実は読み方を変えれば、劣決定系の問題が与えられたときに、色々な解がある中で積極的にスパースな解を選ぶことにより、その条件を満たすために重要な成分はどこなのか？ということに答えることができる．これがスパースモデリングのひとつの重要な技術となる変数選択である．

2.4

直観的な理解上記の具体的な計算による慣れがあるなら、次の図の説明による理解が更に助けとなることだろう．2 次
元座標空間 x1 , x2 ) 上で、これまで扱ってきた例題 CS-I について幾何学的に考察してみよう．まず制約条件
は x2 = −2x1 + 1 という直線を描く．L2 ノルムは、x21 + x22 = r2 とおけば、半径 r の円を描くことが分かる．制約条件を満たす原点を中心とする円を描くと、ちょうど円と直線が接するときであることがわかる．
（図 1）一方 L1 ノルムは絶対値の場合分けを繰り返すことにより、x1 、x2 軸上に先端を持つ原点を中心とする菱形で表すことができる．制約条件を満たす菱形を描くと、同様に菱形と直線が接するときであることがわかる．なおかつ原点に近い先端を持つものが最小化問題の解である．
（図 2）この図を見ると明らかなように、L1 ノルムは尖っているために、スパースな解を出す能力に長けているということがわかる．そうかなるほど、尖っているならばそれで良いではないか、他のノルムはどうだろうか？ベクトルの Lp ノルムを以下のように定義する．

√
kxkp = p |x1 |p + |x2 |p + · · · + |xN |p(17)

用語が割と混同されて使われることが多いので適宜定義に注意するべき量である．この p を p → 0 と持っていった極限が上記で利用した L0 ノルムである．しかし L0 ノルムは、ノルムの性質（斉次性：f (ax) = ak f (x)）
が満たされないため、やや違和感が残るが、圧縮センシングでは便宜のため、L0 「ノルム」と呼ぶ．さて0 ≤ p ≤ 1 であれば、図で描けば分かるように、「尖っている」ため、L1 ノルム同様にスパース解を得る能力は十分にある．
（図 3）

6

図 1: L2 ノルム最小化の様子．

図 2: L1 ノルム最小化の様子．

2.5

圧縮センシング

さてノルムの性質により、このような解選択の技術が得られることがわかった．そのときに問うべき問題
は、本当にスパースな解が欲しいのか？本当の解はスパースな解なのか？である．
前者は、変数選択について焦点を絞ったものである．方程式の真の解に興味が無く、少なくともその方
程式を満たすことのできる数少ない変数の組み合わせは無いか？という探索を行う場合に重要な問いである．これは身に覚えがある人がいるだろう．色々あれやこれやと説明を繰り返されたときに、要するに何が重要なの？という問いをしたくなるときがある．その重要な部分を自動的に抽出するのが変数選択である．
これは多くの実験屋が求めている方策ではないだろうか．
次に後者は、変数選択というよりも真の解を求めるという立場に立ったときに、スパースな解が妥当であるかどうかについて考える必要がある．本来的にスパースな解を持つ方程式の問題に対して、スパース解を選択的に選び出す方法は絶大な効果を持つ．
圧縮センシング

知りたいものを表す N 次元の入力ベクトル x0 に対して、観測と称して線形変換を施す．その変換行列を A としたときに、M 次元の出力ベクトル y を得るとする．

y = Ax07(18)図 3: Lp ノルム最小化の様子．
このとき、知りたいもの x0 はスパース性を期待することができるとする．そのとき L1 ノルム等を利用してスパースな解 x を得るときに、ある条件のもとでは x = x0 となることがある．

実際の実例を紹介しよう．N = 1000 次元のうち K = 20 個のみが正規分布に従うランダム変数を持つ原信号と正規分布に従うランダム変数を持った観測行列を適用して得られた M = 100 次元の出力ベクトルを
図 4 に示す．これを L1 ノルム最小化によってスパースな解を得ると見事に入力ベクトルと一致する結果を
2

15

1.5

amplitude of signals

amplitude of signals

10
1

0.5

0

−0.5

−1

5

0

−5

−1.5
−10
−2

−2.5
0

100

200

300

400

500

600

index of x0

700

800

900

1000

−15
0

10

20

30

40

50

index of y

60

70

80

90

100

図 4: N = 1000 次元のうち K = 20 個の非零をもつ入力ベクトル（左）と M = 100 次元の出力ベクトル（右）．
得る．一方 L2 ノルムではそのような結果は得られない（図 5）．ここで注意したいのは、圧縮センシングという枠組みは、劣決定系の方程式からスパースな解を得るノルムの性質を活かして、更に厳密に知りたいものを当てる．情報科学の名探偵なのだ．特に L1 ノルムの最小化による原情報推定を基底追跡（Basis

Pursuit）と呼ぶ．
基底追跡（Basis Pursuit）



以下の最小化問題を解くことにより、M 次元の出力ベクトル y からスパースな原情報 x0 を高い

8

2

1.5

1.5

amplitude of signals

amplitude of signals

2

1

0.5

0

1

0.5

0

−0.5

−0.5

−1

−1

−1.5

−1.5

−2

−2

−2.5
0

100

200

300

400

500

600

700

index of x by L1 norm

800

900

−2.5
0

1000

100

200

300

400

500

600

700

index of x by L2 norm

800

900

1000

図 5: L1 ノルムによる再構成結果（左）と L2 ノルムによる再構成結果（右）．
確率で得ることができる．

min kxk1
例題 CS-II:原信号推定

xs.t. y = Ax

(19)



スパースな原信号ベクトル xT
0 = (1/2, 0) に対して、A = (2, 1) を作用して y = Ax0 = 1 のみが得られているとする．基底追跡により、スパース解を選択することにより原信号ベクトルを推定せよ．

T
例題 CS-I と解くべき最小化問題は同じである．そのため推定される解は x = (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
π t2
= 1+
te 2 {1 − 2Q(t)}
α
2
( −t2
)
e 2
ρ
= 2 √ − Q(t)
1−ρ
t 2π

(20)
(21)

ここで α = M/N 、ρ = K/N であり、

∫ ∞Q(t) =
t

x2

e2
√ dx
2π

(22)

である（図 6）．


この発見が圧縮センシングの隆盛のきっかけとなり、実際に MRI 画像等の応用例 [5] により爆発的な流

9

1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

図 6: L1 ノルム最小化による再構成が可能な領域と不可能な領域の相境界の様子．
行を迎えた．ただスパース解を選択するだけではなく、そこに正解を当てるという要素があり、適当なものを選ぶというわけではないところが重要である．そこでより観測の実態に根ざした現実的な状況において、
圧縮センシングの枠組みを適用することを考えて行こう．

2.6

ノイズ有り圧縮センシング

観測にはノイズがつきものであり、これまで扱って来た等式制約が適切ではない場合がある．加法的ノイズが存在する状況で、線形変換で記述される観測を行った場合に得られる信号は、

y = Ax + σ0 w(23)と表すことができる．ここで w は M 次元のノイズを表すベクトルであり、σ0 はノイズの強度を表す．ノイズの存在により、y = Ax を満たすものからスパースな解を選択するというのはやや無理がある．まずそもそも等式を満たすことができるとは限らないためだ．そこで y と Ax のズレをできるだけ小さくしつつ、

L1 ノルムを小さくするという方策が考えられる．そこで観測に加法的ノイズが入った場合には、以下の最小化問題を解くことでスパースな信号 x を推定しようとする．
{}
2
min ky − Axk2
s.t. kxk1 ≤ a(24)x

これは Tibshirani によって提案され、LASSO（Least Absolute Shrinkage and Selection Operators）と呼ばれる．[6] 不等式制約条件は、スパースな解を得るために導入したものであり、a はスパース性を制御するパラメータである．コスト関数部分は、最小二乗法で用いられるものであり、観測結果との誤差を押さえつつ、スパース性を獲得した解を得るものと解釈できる．ラグランジュ未定乗数をもちいて、以下の最小化問題に帰着させることができる．

{
min
x

1
2
ky − Axk2 + kxk1
2λ

}
(25)

λ > 0 はどの程度ズレを許容するかを表すパラメータ（ラグランジュ未定乗数）である．λ → 0 とすれば、少しでも y と Ax の間にズレが生じるとコスト関数が非常に大きな値をとり、ズレに対して鋭敏な変化を示すようになる．少しのズレも許容しない．つまり等式制約 y = Ax を課した場合と同様となる．一方 λ を緩めて大きな値を使うと、多少のズレがあっても許容できるするという格好だ．ノイズの強度があまりに大きくて、y が信用ならない場合には λ を大きめ、逆に y を大事にしたい場合は λ を小さめにするという直観的な方策のもとパラメータを決定する．圧縮センシングを実際のデータに適用する場合には、式（25）を解くことにより実践する．
（また式（25）を称して LASSO と呼ぶことも多い．
）

10

ベイズ推定との関係

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 (B|A)P (A)P (B|A)P (A)P (B|A)P (A)
= ∑
=∑
(28)
P (B)
P
(A,
B)
A
A P (B|A)P (A)∑
ふたつめの等式では P (B) = A P (A, B) となる事実を用いた．

ベイズの定理を用いると、A と B の事象の順番が反転していることに注意したい．またベイズの定理を利用するときにはこの表式に拘る必要はない．結合確率と条件付き確率の定義から導けばよい．
このベイズの定理を用いて、出力情報 y、観測の詳細 A を知っているときに入力情報を確率的に推定す
P (A|B) =る方法を考える．まずベイズの定理（結合確率と条件付き確率の関係）を機械的に用いれば、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) は事後確率と呼ばれる．y および A という実現値を持っているときに x が選ばれる確率を示す．この事後確率にもとづき、確率的に x を得ることで確率的推論を行う．後に述べるマルコフ連鎖モンテカルロ法などにより、サンプリング的に x を求めることも可能であり、この事後確率の最大化により最頻値の x を求めることも可能である．特にここでは最大事後確率（Maximum A Posteriori）推定を紹介する．最大事後

11

確率推定は以下の最大化問題を解くことで実行できる．

xMAP = arg max {log P (x|A, y)}

(31)

x

それでは圧縮センシングの問題において、この事後確率を求めてみよう．まず必要なのは、尤度関数 P (y|A, x)である．これは観測行列 A、入力情報 x が与えられたときに y がどのような確率に従って出力されるかを考えれば良い．ノイズ有り圧縮センシングにおいては、式（23）をみてもらうと、ノイズという不確実要素がある．この不確実要素であるノイズが、ガウス分布に従うと仮定する．
(
)
1
1 T
P (n) = √ exp − n n
2
2π

(32)

A と x からノイズを含んだ形での出力情報 y を得る確率は、ノイズがどのような値をとるかの確率によってきまる．そこでノイズ n について式（23）を変形すると、
n=1(y − Ax)σ0(33)であるから、尤度関数は

(
)
1
1
2
P (y|A, x) = P (n) = √ exp − 2 ky − Axk2
2σ0
2π

(34)

であることがわかる．次は事前確率である．x についてどんなものがあり得るかを導入することができる．
例えば大きさがそこまで大きくならないとすれば、
√
( κ
)
λ
2
P (x) =
exp − kxk2
2π
2

(35)

というものを設定しても良いかもしれない．このときに最大事後確率推定を行えば、解くべき最適化問題は、
{
}
κ
1
2
2
xMAP = arg max − 2 ky − Axk2 − kxk2
(36)
x
2σ0
2
となる．符号を変えれば、これは LASSO の L1 ノルムの代わりに L2 ノルムを利用したものとなっている
ことがわかる．そうなれば要領は得ただろう．事前確率として L1 ノルムを用いた形

P (x) ∝ exp (−κ kxk1 )(37)を利用すれば、最大事後確率推定により、{

1
2
xMAP = arg max − 2 ky − Axk2 − κ kxk1
x
2σ0

}
(38)

λ = κσ02 とすれば、LASSO の最小化問題（25）に帰着することが分かる．つまり圧縮センシングは、解の事前情報としてスパース性を採用した最大事後確率推定により原情報推定を行うことと理解することができる．

3

圧縮センシングの実践
ここまでくれば、圧縮センシングの心自体は大分理解できているものと思われる．出力情報と入力情報の関係性について注目しつつ、入力情報の事前知識にもとづいて解の選択を行う．実際に解がスパース性を持
つものであれば、L1 ノルムによる解選択の性質を利用して正解に到達することができる．それでは次に実践編として、LASSO 型の最小化問題を解く方法について学んで行こう．

12

3.1

そもそもスパースな解ってなんだろう？

圧縮センシングは、解のスパース性に注目して劣決定系の連立方程式を解くことで、少ない観測数から重要な情報部分となる非零成分を推定する．その解のスパース性は、そもそもどれだけ期待できるものなのだろうか．その回答の典型的なものが、実際の画像圧縮に用いられるフーリエ変換やウェーブレット変換
による疎性の獲得であろう．ここでウェーブレット変換をしたのちに、ウェーブレット係数の 95% を絶対値が小さい順から 0 にして、ウェーブレット逆変換を施して得られた画像をみてみよう（図 7）．見た目にはそれほど影響しないことが見て取れるであろう．このように x そのものではなく、何らかの変換を経て、original image

reconstructed image

図 7: 原画像と絶対値の小さいものから 95% のウェーブレット係数を 0 にしたものからの再構成結果の比較．
そして本当には零となっていないものの、本質的な部分だけに注目すれば、その部分だけを残すことで、ス
パース性を獲得することが期待される場合がある．そのようなスパース性を促す変換を求めることも、圧縮センシングの幅広い応用を可能とさせるため重要な発展に資する．このようにある線形変換 B をした先で、スパース性が期待される場合、解くべき最小化問題は、
{
}
1
2
min
ky − Axk2 + kBxk1x2λとするべきであろう．この場合は逆変換 B −1 が存在する場合、z = Bx とおき、
}
{
1
2
min
y − AB −1 z 2 + kzk1
z
2λ

(39)

(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:絶対値関数のある最小化問題



以下の最小化問題を解け．

{}
1
2
minx |x| +(y − x)2λ
ここで λ, y は適当な実数である．


(43)



14

絶対値関数があるときは、場合分けをすればよい．まず x > 0 のときを考えてみよう．
{}
1
2minx>0 x +(y − x)2λ(44)

これは簡単な平方完成で解くことができる．まずコスト関数は、以下のように変形することができる．

1
λ2{x − (y − λ)} + y −
2λ
2

(45)

頂点の位置から x = y − λ が最小値をとるところであるといいたくなる．しかし x > 0 という条件に注意しなければならない．y − λ > 0 のときは、頂点を採用して、一方、y − λ ≤ 0 のときは、放物線が頂点から離れるほど単調増加であることから、x の定義域のなかで頂点に最も近い x = 0 が最小値を与える．
（図8）よって、x ≤ 0 の場合も同様にして、

図 8: x > 0 に限った場合のコスト関数の振る舞い．

x∗ = Sλ (y)

(46)



 y − λ (y > λ)Sλ (y) =0(−λ ≤ y ≤ λ)−y − λ (y < −λ)

(47)

となる．

[問：確認せよ]
ここでとした．Sλ (y) を軟判定しきい値関数（Soft thresholding function）と呼ぶ．
（図 9）このように絶対値関数
でも、1 次元であれば頑張って場合分けをして最小化問題をとくことはできる．多次元であっても、以下のような状況であれば解くことができる．

例題 CS-II:L ノルムのある最小化問題
1



以下の最小化問題を解け．

{}
1
2
minx |x| +ky − xk2
2λ(48)

ここで λ, y は適当な実数である．

L1 ノルムも、L2 ノルムも分離性を持つ．分離性とは、各成分独立に計算が実行できる形をもっていることである．実際、L1 ノルムはその定義から

kxk1 = kx1 k + kx2 k + · · · + kxN k
15

(49)

図 9: 軟判定しきい値関数の振る舞い．
と各成分の絶対値の和であり、L2 ノルムも、2 乗すれば、2

kxk2 = x21 + x22 + · · · + 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) に対して、以下の関数を定義する．
T

qL (x, y) = g(y) + (∇g(y)) (x − y) +L2kx − yk22(53)

このとき g(x) ≤ qL (x, y) が成立する．この qL (x, y) を g(x) のメジャライザーと呼ぶ．元の関数 g(x)による最小化の代わりに、メジャライザーの逐次最小化を考える手法をメジャライザー最小化と呼ぶ．

まずリプシッツ連続という慣れない言葉が出てきた．ここでそのリプシッツ連続の定義を紹介する．
リプシッツ連続
関数 f (x) がリプシッツ定数 L のリプシッツ連続であるとき

kf (x) − f (y)k2 ≤ L kx − yk2
を満たす．

16

(54)



右辺がユークリッド距離であることを考慮して、イメージをすると、遠くなればなるほど関数の値は左辺のように確かにそれなりに変化するが、それほど急激な変化を起こすわけではなく、ユークリッド距離程度
で押さえられるということを示している．ここである凸関数 g(x) の微分がリプシッツ定数 L のリプシッツ
連続であるということは、k∇g(x) − ∇g(y)k2 ≤ L kx − yk2(55)を満たす．このときメジャライザー qL (x, y) は、平方完成から qL (x, y) ≤ g(y) を満たすことがわかる

qL (x, y) = g(y) −

(
) 2
1
1
L
2
x − y − ∇g(y)k∇g(y)k2 +
2L
2
L
2

(56)

メジャライザーの最小値は、必ず g(y) を下回る．等号成立条件は ∇g(y) が 0 となるときである．またこのメジャライザーの平方完成による表式をみると、ベクトルの L2 ノルムで書くことができることがわかる．
ここで思い出してほしい．絶対値関数がでてきたとしても、最小化問題は分離性があれば解くことがそこまで難しくない．このベクトルの L2 ノルムで表現されるというメジャライザーの性質を利用して、圧縮センシングに登場する最小化問題を解くことを目指す．
逐次的にアルゴリズムを実行することを想定して、t ステップ時に得られた解を x[t] とするとき、メジャ
ライザーの最小値を求める．

x[t + 1] = arg min qL (x, x[t])

(57)

x

このときメジャライザーの性質から、以下の関係を得る．

g(x[t + 1]) ≤ qL (x[t + 1], x[t]) ≤ g(x[t])(58)が成立している．よって逐次的にこれを繰り返すことにより最小化問題の最適解へと到達することを目指す．リプシッツ連続の条件は区分的であってもよいので、全領域に渡って満たす必要は必ずしもない．メジャライザーが最小値をとるところまでの区間についてリプシッツ連続の条件が満たされており、メジャラ
イザーの性質である g(x) ≤ qL (x, x[t]) が成立していればよい（図 10）．

図 10: メジャライザーの振る舞い．赤線が g(x)．青線が全領域についてメジャライザーとなる場合．青破
線が最小値を取るところまでメジャライザーとなる場合、青点線は最小値をとるところですらメジャライ
ザーとはなり得ない．
2

さて解きたい問題は、式（25）にある最小化問題である．ここで g(x) = ky − Axk2 /2λ、∇g(x) = AT (y−Ax)/λ として、メジャライザーを構成する．このときリプシッツ定数は L = AT A 2 /λ であることが定義17

に従った計算により分かる．

[問：リプシッツ定数を確認せよ．]
このように L1 ノルムを取り入れても、メジャライザーの性質である上から押さえる g(x)+kxk1 ≤ qL (x, x[t])+kxk1 が保存されていることに注目する．そこで逐次的に解く最小化問題を
x[t + 1] = arg min {qL (x, x[t]) + kxk1 }x(59)

として、L1 ノルムによる効果を取り入れて更新をしていくことで求めたい最小解へと目指す．ここで逐次的に解く最小化問題が手で以下のように解けることを利用する．
{ {
}
)}2
(
L
1 T
+ kxk1x[t + 1] = arg min
A (y − Ax[t])x − x[t] +
x
2
Lλ
(
)
1 T
= Sλ/L x[t] +A (y − Ax[t])
Lλ

(60)
(61)

つまり逐次代入をするだけで、最小解へ到達することができる．

Iterative Shrinkage Soft-thresholding Algorithm (ISTA)

1. t = 0 とする．初期化 x[0]．
（例えば x[0] = AT y）
2. 平方完成により g(x) の 2 次関数近似の頂点を求める．
v[t] = x[t] +1 T
A (y − Ax[t])
Lλ

(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、w[1] = x[0]2. 平方完成により g(x) の 2 次関数近似の頂点を求める．
v[t] = w[t] +1 T
A (y − Aw[t])
Lλ

(64)

3. 軟判定しきい値関数を適用する．
x[t + 1] = S1/L (v[t])(65)

4. [高速化部分]β[t] を更新する．
1
β[t] =
2()√
2
1 + 1 + 4 (β[t − 1])(66)

5. [高速化部分]w[t] を更新する．
w[t + 1] = x[t + 1] +β[t] − 1(x[t + 1] − x[t])β[t + 1]

6. 終了基準を満たすまでステップ 2-6 を繰り返す．
18

(67)



FISTA は導出を見たあとに実装を試みればわかるように、非常に簡単な作りをしているため、理解もしやすくメジャライザー最小化の枠組みと共に L1 ノルムを伴う最小化問題の入り口として最適である．さてFISTA には以下のような別解釈も存在する．後に詳しく述べるが、制約条件を 2 次の罰金項として追加する罰金法というのがある．この罰金法を利用すると、FISTA で利用したメジャライザー最小化に次のような別解釈ができる．
2• コスト関数に罰金項 L kx − x[t]k2 /2 の導入により、暫定解 x[t] の近傍にある解を探索する．
• 暫定解の近傍で最小化を行うので、コスト関数の一部 g(x) を以下のように近似することができる．
T

g(x) ≈ g(x[t]) + (∇g(x)) (x − x[t])(68)

このふたつの操作により、得られるのがメジャライザー最小化の方法ともいえる．
（但し罰金項の係数については非自明．
）

Bregman 反復法（Bregman iterative method） ノイズがある場合に LASSO 型の最小化問題はそれなりに意味のあるものであることはベイズ推定の観点から理解できる一方で、ノイズが全くない場合には非常に小さい λ による LASSO 型の最小化問題を解いても、y = Ax を満たすものを得るのは不可能である．仮に y = Ax を満たす解のなかで、LASSO 型の最小化問題と BP 型の最小化問題の両者の解になるものを探すと x = 0 という自明な解を得ることがわかる．そこで本質的にノイズのない問題を取り扱う場合に、基底追跡問題を解く際に LASSO 型の最小化問題を経由して最適解へ到達することを可能にするのが以下で紹介する Bregman 反復法である．
次の Bregman divergence（以下 BD）を、凸関数 f (x) に対して定義する．

Dfp (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 を調べてみると、{
0 (x < 0)−1
Df (x, y) = |x| − |y| + (x − y) = |x| + x =2x (x ≥ 0)となり、0 から急激に増大するようになる（図 12）．y > 0 のときも同様に、{−2x (x < 0)
1
Df (x, y) = |x| − |y| − (x − y) = |x| − x =0(x ≥ 0)

19

(71)

(72)

図 11: 劣勾配の様子．微分可能でない関数は、要するに尖っているところで勾配（青線）を一意に定めることができない．赤点線で囲まれた領域内を尖っているところを中心として回転する．

図 12: 絶対値関数に対する BD．y < 0 のとき．となる．こちらも符号が変わるところで急激に増大することがわかる．y = 0 のところでは劣勾配の値を適当に仮定した上で、{Dfp (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)
2

ここで g(x) は微分可能な関数であり、ノイズ有り圧縮センシングの問題設定では ky − Axk2 /2λ のこと、

f (x) は微分可能でない関数であり、kxk1 のことだと思って良い．Bregman 反復法では、上記の最適化問題20

図 13: 絶対値関数に対する BD．y = 0 のとき．の代わりに、{}
p[t]minx Df (x, x[t]) + g(x)(75)

を逐次的に解く．初期条件は x[0] = 0 及び p[0] = 0 とする．こうすることで、LASSO 型の最小化問題から出発する．ここで x[t] は前回までの更新によって得られた値であり、更新は上記の最適化問題を解くこ
とにより、

{
}
p[t]
x[t + 1] = argminx Df (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])

p[t]≤ g(x[t + 1]) + Df (x[t + 1], x[t])≤p[t]g(x[t]) + Df (x[t], x[t])≤ g(x[t])

(79)
(80)
(81)

1 行目では BD の非負性を用いた．2 行目では 1 行目右辺の量が最小値であることを用いた．3 行目は BDの自明な性質を用いた．この性質により y と Ax を近づけることを優先する．LASSO 型の最小化問題に適用した場合、劣勾配の更新は、

p[t + 1] = p[t] +1 T
A (y − Ax[t]) ∈ [−1, 1]
λ(82)となる．この更新則を採用する場合、一旦 y = Ax[t] となる解を到達したとき、それが L1 ノルムの最小解を与えることを示すことができる [10]．このままでは最小化問題（76）を解くところは、LASSO を解くのと変わりなく、メジャライザーを用意して同様の手続きによって得られたコスト関数の最小化を考える．
}
{
L
p[t]
2
T
(83)
x[t + 1] = argminx Df (x, x[t]) + (∇g(x[t])) (x − x[t]) + kx − x[t]k2 )221

ここで L は前述のリプシッツ定数である．このとき劣勾配の更新を以下のように変更する．

p[t + 1] = p[t] − ∇g(x[t]) − L(x − x[t]) ∈ ∂f (x[t + 1])(84)

これを線形化された Bregman 反復法と呼ぶ [10]．圧縮センシングの問題での具体的なアルゴリズムを以下に紹介しよう．

線形化された Bregman 反復法



1. t = 0 とする．初期化 x[0] = 0、p[0] = 0
2. 劣勾配 p[t] を用いて、{
x[t + 1] = argminx(
kxk1 −

}
)T
1 T
L
2
A (y − Ax[t]) + p[t](x − x[t]) + kx − x[t]k2λ2を解く．これは、

1v[t] = x[t] +
L

(

)
1 T
A (y − Ax[t]) + p[t]
λ

(85)

(86)

を用意して、軟判定しきい値関数を適用する

x[t + 1] = S1/L (v[t])(87)

ことと同様である．

3. 劣勾配の更新をする．
p[t + 1] = p[t] +1 T
A (y − Ax[t]) − L(x[t + 1] − x[t]) ∈ [−1, 1]
λ(88)

4. 終了基準を満たすまでステップ 2-4 を繰り返す．

この方法を FISTA と比較してみよう．LASSO 型の最小化問題に対して、メジャライザー最小化による方法を採用して、以下の最小化問題を逐次的に解くものが FISTA であった．
{
}
(
)T
1 T
L
2
x[t + 1] = argminx kxk1 −A (y − Ax[t])(x − x[t]) + kx − x[t]k2 )
λ
2

(89)

一次の項に注目すると劣勾配の存在の分が異なる．この項に注目してみると FISTA は x[t] の近傍を罰金項Tを導入して探索するものと解釈したが更に 1 次の項が加わり、同様に (p[t]) (x − x[t]) という形、すなわちラグランジュ未定乗数を利用して、制約条件 kx − x[t]k1 <  を課していることがわかる．つまり Bregman
反復法はラグランジュ未定乗数と罰金項の導入により、暫定解の近傍点を探索する方法であることがわかる．
拡張 Lagrangian 法（Augmented Lagrangian method） このようにラグランジュ未定乗数と罰金項の両者を導入した最適化手法を拡張ラグランジュ法と呼ぶ．拡張 Lagrangian 法は、制約付きの最適化問題を解く方法として最近提案された強力な方法である．まず制約付きの最適化問題を解く基本について押さえておこう．以下の制約付き最適化問題を考える．

minx f (x)s.t. ci (x) = 0 (i = 1, 2, · · · , m)(90)

ここでラグランジュの未定乗数法により、制約条件を組み入れた新しいコスト関数を定義する．

L(x; λ) = f (x) +

m
∑
i=1

22

hi ci (x)(91)

この新しいコスト関数について改めて最小化を考えるというのがラグランジュ未定乗数法である．
例題を解きながら、考えてみよう．
例題 AL-I:制約付き最小化問題



以下の制約付き最小化問題を考える．

{}
minx x21 + x22

s.t. ax1 + bx2 − c = 0(92)

ここで a, b, c は適当な実数であるとする．つまり直線上でしか動けない点 (x1 , x2 ) があったときに、原点からの距離が最小となる点を探せという問題である．解は原点から直線へ垂線を下ろせば直ちに分かる問題だ．

ラグランジュ未定乗数法により、新しいコスト関数を定義する．

L(x1 , x2 ; h) = x21 + x22 + h(ax1 + bx2 − c)



(93)

元の最小化問題を代わりに、このコスト関数の最小化を考えよう．そのためには各変数による微分を 0 にする解を求めればよい．

∂
L(x1 , x2 ; λ) = 2x1 + λa = 0∂x1∂
L(x1 , x2 ; λ) = 2x2 + λb = 0∂x2∂
L(x1 , x2 ; h) = ax1 + bx2 − c = 0
∂h

(94)
(95)
(96)

まず x1 、x2 に関する微分から未定乗数 h に応じて、

x1
x2

ha
2
hb
= −
2
= −

(97)
(98)

となることがわかる．未定乗数をあとは決めればよい．未定乗数に関する微分から h = −2c/(a2 + b2 ) が極値条件であるとわかり、x1 = ac/(a2 + b2 )、x2 = bc/(a2 + b2 ) であるとわかる．確かに垂線となっていることも確認できる．
この場合手で解けるものであったので良いが、この方法を一般的な問題に適用するとして、数値計算で実装するにはどうしたらよいだろう？ラグランジュ未定乗数 h に関する微分は、制約条件 ci (x) = 0 を満たす
ときに 0 となることに注目してみよう．上記の例では ax1 + bx2 − c = 0 である．その制約条件を手で解けることは上記のような例題以外まずない．そうなると未定乗数 h について、微分に基づき勾配法の適用を考えてみる．

hi [t] = hi [t − 1] − δci (x)(99)

ここで δ は適当な小さい値とする．上記の簡単な例では、()
h[t] = h[t − 1] − δ a2 + b2 ht−1 /2 + δc

(100)となる．収束する行き先は、h[t] = h[t − 1] = hc と置くことで調べることができる．確かに hc = 2c/(a2 + b2 )へと収束することが確認できる．しかし収束する為の条件は、|1 − δ(a2 + b2 )/2| < 1 であり δ の設定次第で収束しない可能性があり厄介である．
ラグランジュ未定乗数による解法



未定乗数 h が手で解ける場合は良いが、勾配法等を利用して逐次的に解くことを考えたときに適当な更新則では収束しないことがある．

23

一方、ラグランジュ未定乗数とは異なり、制約条件を 2 乗をしたもの（罰金項）を加えたコスト関数を考えることで制約付き最適化問題を解く方法がある．罰金法（Penalty method）と呼ぶ．

µ[t] ∑ 2c (x)2 i=1 im

Lpen. (x) = f (x) +(101)

勾配に基づき更新して行く際に、罰金項の係数 µ[t] を徐々に大きくさせることで最適解に収束させられることが知られている．例題について、試してみよう．罰金項の係数を固定して、コスト関数の微分が 0 となるところを調べる．

∂
Lpen. (x1 , x2 ; µ[t])∂x1∂
Lpen. (x1 , x2 ; µ[t])∂x2= 2x1 + µ[t]a(ax1 + bx2 − c) = 0(102)= 2x2 + µ[t]b(ax1 + bx2 − c) = 0.

(103)

連立方程式をとくことにより、

x1

=

x2

=

µ[t]ac(2 + µ[t](a2 + b2 ))µ[t]bc(2 + µ[t](a2 + b2 ))

(104)
(105)

を得る．ここで µ[t] を非常に大きな値を取れば、確かに最適解に収束して行くことが分かる．手で解けないような場合は、勾配法による更新を行い最適解に徐々に近づけていくことになる．確かにラグランジュ未
定乗数法にある未定乗数の更新則の不安は取り除くことができる．但し罰金法にも問題があって、制約条件を満たすようにするために、罰金項の係数 µ[t] を最終的に非常に大きな値にしていかないといけないこと．
それに応じて更新幅が小さくなり、必要な計算時間が長くなる傾向にあることだ．
罰金法による解法



制約条件を満たした最適解に収束させるためには、罰金項を非常に大きくしないといけない．そのために計算時間が長くなる傾向があり厄介である．

制約条件付きの問題を解く場合には、上記のような問題がラグランジュ未定乗数法及び罰金法にはある．
拡張ラグランジュ法は、ラグランジュ未定乗数法と罰金法の両者を組み合わせた方法である．

Laug. (x; h) = f (x) +m∑µ[t] ∑ 2c (x)2 i=1 imhi [t]ci (x) +

i=1

(106)

但し更新則はやや変わっており、未定乗数について、

hi [t + 1] = hi [t] + µci (x)(107)と更新する．一方で罰金項の係数は適当な値にしておく．単純な罰金法と比較して、罰金項の係数を大きくする変わりにラグランジュ未定乗数による効果で制約条件を満たすようにしむける．
再び上記で挙げた例題について考えてみよう．コスト関数の微分が 0 となるところを調べてみよう．

∂
Laug. (x1 , x2 ; h[t], µ[t]) = 2x1 + h[t]a + µ[t]a(ax1 + bx2 − c) = 0∂x1∂
Laug. (x1 , x2 ; h[t], µ[t]) = 2x2 + h[t]b + µ[t]b(ax1 + bx2 − c) = 0.
∂x2

(108)
(109)

連立方程式をとくことにより、

x1

=

x2

=

µ[t]ac − h[t]a2 + µ[t](a2 + b2 )µ[t]bc − h[t]b2 + µ[t](a2 + b2 )
24

(110)
(111)

を得る．この解を用いて、ラグランジュ未定乗数の更新がどうなるかを調べてみると、

h[t + 1] =−2µ[t]c + 2h[t]2 + µ[t](a2 + b2 )(112)となり、非常に大きな µ[t] を用いるので h[t] は確かに最適解に収束することが分かる．

拡張ラグランジュ法による解法

罰金項を大きくしていくと、ラグランジュ未定乗数も含めた最適解へと到達する．単純なラグラ
ンジュ未定乗数法とは違い、未定乗数の更新則に安定性が生まれる．

これを圧縮センシングの問題に適用することを考える．まず、最小化したい関数は f (x) = kxk1 である．
制約条件は c(x) = y − Ax である．拡張ラグランジュ法を利用すると、以下のコスト関数の最小化問題に
帰着する．
µ[t]
2
Larg. (x; h[t], µ[t]) = kxk1 + (h[t])T (y − Ax) +ky − Axk2(113)
2
ラグランジュ未定乗数の更新則は、

h[t + 1] = h[t] + µ[t](y − Ax)(114)

である．ここでラグランジュ未定乗数は M 個の制約条件の分（h[t] = h1 [t], h2 [t], · · · , hM [t]）、利用していることに注意したい．ここでラグランジュ未定乗数の更新則の両辺に AT （制約項の微分）をかけると、AT h[t] = p[t] と置き換えることで、
p[t + 1] = p[t] + µ[t]AT (y − Ax)(115)となることがわかる．µ[t] = 1/λ とおいたとき、右辺第二項が −∇g(x) = AT (y − Ax)/λ であることから

Bregman 反復法における更新則（82）と等価であることが分かる．線形化された Bregman 反復法にするには更に罰金項を追加すれば良い．
Alternating Direction Method of Multipliers(ADMM) 上記の古典的な拡張ラグランジュ法を改良したものが次に紹介する ADMM である [11]．アイデアは単純である．先ほどまで議論していた拡張ラグ
ランジュ法を用いて、minx {f (x) + g(x)}(116)という LASSO 型最小化問題のようなふたつのコスト関数の組み合わせによる最適化問題を制約付きの最適化問題と一旦考え直す．

minx,z {f (z) + g(x)} s.t. x − z = 0(117)

基本的には、この制約付き最適化問題に対して拡張ラグランジュ法を適用するというアイデアである．新しいコスト関数は、拡張ラグランジュ法により、以下のように与えられる．

Laug. (x, z; h[t], µ[t]) = f (z) + g(x) + (h[t])T (x − z) +µ[t]2kx − zk22(118)

ここで古典的な拡張ラグランジュ法では、両者の変数についての最適化問題を、各時刻変化させる罰金項の係数に応じて調べていくものであったが、ADMM では罰金項の係数は一定にしておき、新たに導入した変数 z と元の変数 x を以下のように交互に更新する．

x[t + 1] = argminx Laug. (x, z[t]; h[t], µ)(119)z[t + 1] = argminz Laug. (x[t], z; h[t], µ)

(120)

25

そしてラグランジュ未定乗数については、

h[t + 1] = h[t] + µ(x − z)

(121)

として更新する．いわば近似的な拡張ラグランジュ法の適用である．罰金項の係数は固定しているので、代わりにラグランジュ未定乗数の更新は多く必要であるが、それでも余りある高速なアルゴリズムになっている．
2

ADMM を LASSO 型の最小化問題に適用してみよう．f (x) = kxk1 および g(x) = ky − Axk2 /2λ であるから、解くべき最小化問題はそれぞれ
{
}
µ
1
2
2
T
x[t + 1] = argminx
ky − Axk2 + (h[t]) (x − z[t]) + kx − z[t]k2
2λ
2
{
}
µ
2
z[t + 1] = argminz kzk1 + (h[t])T (x[t + 1] − z) + kx[t + 1] − zk2
2

(122)
(123)

である．x についての最小化問題は 2 次関数であるから平方完成または単純な微分が 0 となる条件により計算される．一方 z については、L1 ノルムおよび L2 ノルムの分離性を利用して軟判定しきい値関数による解が直ちに求まる．これらの結果を統合して、LASSO 型の最小化問題を解くアルゴリズムを以下のように組むことができる．
ADMM for LASSO



1. t = 0 とする．初期化する．
（例えば x[0] = AT x、z[0] = x[0]、h[0] = 0）
2. x[t] の更新

3. z[t] の更新

(
)−1
( T
)
1 T
x[t + 1] = µ + A A
A y + µz[t] − h[t]
λ

(124)

(
)
h[t]
z[t + 1] = S1/µ x[t + 1] −
µ

(125)

h[t + 1] = h[t] + µ(x[t] − z[t])(126)

4. h[t] の更新

5. 終了基準を満たすまでステップ 2-4 を繰り返す．

罰金項の係数 µ を変化させないという方針のため、ステップ 2 の逆行列の計算は予め行っておく．この逆行列の計算は基本的には LASSO 型の最小化問題を解く際に避けられていた．計算量が膨大な分類 O(N 3 )に入るためだ．これまでに様々なアルゴリズムが提案されてきたが、その歴史は如何にして逆行列の計算を避けるかにかかっており、反復の内部で逆行列の計算がないように工夫をしてきた．ADMM はその意味で禁じ手を使っている．しかし 1 回だけ前処理的に用意しておくだけである．それは ADMM の方法は経験的に非常に収束が早いため、逆行列の計算と ADMM の反復計算にかかる合計時間が、LASSO 型の最小化問題を解く FISTA 等の方法よりも圧倒的に短いためである．
特にスパース性が期待できる基底がある変換を通して見つかる場合、すなわち L1 ノルムの項が kBxk1となるときに ADMM は効果が絶大である．先ほどの LASSO 型の最小化問題を解いたのと同様に、敢えて制約付きの最適化問題に置き換えよう．
}{
12ky − Axk2
min kzk1 +x,z2λs.t. z − Bx = 0(127)

拡張ラグランジュ法の手続きに従い、新しいコスト関数を定義する．

Laug. (x, z; h, µ[t]) = kzk1 +

1
µ[t]
2
T
2
ky − Axk2 + (h[t]) (z − Bx) +kz − Bxk2
2λ
2
26

(128)

解くべき最小化問題はそれぞれ{x[t + 1]=z[t + 1]

=

1
µ[t]
2
2
ky − Axk2 + (h[t])T (Bx − z[t]) +kBx − z[t]k2
2λ
2
{
}
µ[t]
2
argminz kzk1 + (h[t])T (Bx[t] − z) +kBx[t] − zk2
2}

argminx

(129)
(130)

である．先ほどの例と同様に解くことができる．これは他の方法に比べて極めて有利な性質である．実は L1
ノルムの中身がある線形変換 B をされたものであるとすると、FISTA の適用は直ちに行えるわけではない．
その変換専用の方法を必要とすることがしばしば発生する．その最たる例が、全変動（Total Variation）においてスパース性が期待できる問題である，画像等の応用例でよく利用されるもので、隣接するピクセル間での差を取る演算である．定義は様々なので論文等を読むときには注意してほしい．この場合、逆変換は非自明であり L1 ノルムの内部に残る形で解くしかない．そのためその変換専用の解法を必要としており、メジャライザー最小化と組み合わせた Fast Gradient Projection（FGP）が提案されている [12]．また複数の基底でスパース性が期待できる場合、L1 ノルムの項を複数もつ最小化問題を解くことがある．この場合についても FISTA は苦手としていたが、最近 Fast Composit Splitting Algorithm（FCSA）の登場によりその難点は克服している [13]．それでもなお ADMM はそういった難点を未定乗数と罰金項の追加だけで柔軟に対応するため、特段の苦労なく利用できる意味で圧倒的に有利である．
例題 ADMM-II:
以下の最小化問題を ADMM を用いて解け．
{}
1
2
minx |x1 − x2 | +(y − ax1 − bx2 )2λx1 − x2 に更に絶対値関数がついており厄介なところだ．それを外すために ADMM を用いる．

まずは最適化問題を、敢えて制約付き最適化問題に置き換える．
{}
1minx,z |z| +(y − ax1 − bx2 )2s.t. z − (x1 − x2 ) = 0
2λ



(131)



(132)

そして、新しいコスト関数を定義しよう．

Laug. (x, z; h, µ[t]) = |z| +

1
µ[t]
2
2
(y − ax1 − bx2 ) + h[t] {z − (x1 − x2 )} +{z − (x1 − x2 )}
2λ
2

(133)

x1 、x2 それぞれは 2 次関数なので解くのは容易い．z については軟判定しきい値関数を使えば良い．
x1 [t + 1]=x2 [t + 1]=

z[t + 1]

=

(
)−1 {
(
) }
a2
ay
ab
µ[t] ++ h[t] + µ[t]z + µ[t] −
x2
λ
λ
λ
(
)−1 {
(
) }
b2
ay
ab
µ[t] ++ h[t] − µ[t]z + µ[t] −
x1
λ
λ
λ
(
)
h[t]
S1/µ[t] z[t] +
µ[t]

(134)
(135)
(136)

[問：確認せよ．]

4

圧縮センシングと情報統計力学
ある条件下のもとでは、L1 ノルム最小化により、スパースな解を得て、しかもその解が入力ベクトルと一致する．このことが圧縮センシングの驚異的な力を示している．それではその条件を少し変わった方法で明らかにしてみよう．

27

4.1

スピン系の統計力学

ここで統計力学の処方箋について思い出したい．あるエネルギー関数（ハミルトニアン）のもとでの平衡状態を調べるためには自由エネルギーを計算すればよい．ここで全結合型のイジング模型のエネルギー関
数を用意する．

E(x) = −

J ∑
xi xj
N i<j

(137)

xi は各点におかれたイジングスピンで xi = ±1 をとる．相互作用の強度を J として強磁性的な相互作用（J > 0）を考える．カノニカル分布の平衡状態にあるとき、スピンの状態はつぎの確率分布に従う．
(
)
E(x)
1
P (x) = exp
(138)
Z
T
ここで Z は規格化定数であり分配関数である．自由エネルギーを計算するためにはこの分配関数を計算すればよい．それでは分配関数の計算を実行してみよう．


∑
∑
J
exp 
xi xj 
Z=
N
T
x

(139)

i<j

よく利用される以下の恒等式を用いて分配関数を書き換えよう．指数の肩に現れている和はいわゆる和の 2乗を計算したときのクロスターム部分であるから、

(
)2
(
)2
( )
N
N
N
1 1 ∑
1 ∑ 2 1 1 ∑1
1 ∑xi xj =
xi
− 2
xi ≈
xi
+O
2


N
2
N
N
2 N
N
i<j

i=1

i=1

とかける．この表示を用いると分配関数は、

Z=

∑
x

ここで現れる

exp


(
N
NJ
1 ∑
 2T

(140)

i=1

N i=1

)2 

xi



(141)

∑N

i=1 xi /N はスピンの揃い具合を表している磁化である．このように微視的自由度の平均的性質を推し量る物理量を秩序パラメータと呼ぶ．そこで秩序パラメータである磁化

1 ∑
xi
N i=1
N

m=

(142)

に注目して、特定の m を与えるものについて x の和を取り、そして m の積分を実行することにしよう．
(
)
(
)
∑∫
1 ∑
NJ 2
Z=
dmδ m −
xi exp
m
(143)
N
2T
x
i=1

この操作は以下の恒等式を分配関数の中身に挿入したと考えてもよい．
(
)
∫
1 ∑
1 = dmδ m −
xi
N

(144)

i=1

ここで少し意味合いを考えよう．ある磁化 m を持つ微視的状態 x の組み合わせに付いて全て和を取るというのは、状態数の数え上げに他ならない．その対数を取ったものをエントロピーと呼ぶ．本来状態数はエネ
ルギーを引数としてもつが、この場合エネルギーに相当する部分は N Km2 /2 であるからエネルギーの代わりに m を用いても意味は変わらない．そこで以下のように文字をおく．

1− e(m) =Ts(m) =

J 2
m
2T
(
)
∑
1
1 ∑
δ m−
log
xi
N
N i=1
x
28

(145)
(146)

このとき、分配関数は

∫
Z=

{ (
)}
e(m)
dm exp N −+ s(m)
T(147)という表示を持つ．ここで統計力学の前提である N → ∞（熱力学極限）を考慮すると、積分の主要な寄与
は鞍点からのみ決まるのでとなる．ここで m∗ は

{ ()}
e(m∗ )
Z = exp N −+ s(m∗ )
T

(148)

{
}
e(m)
m = arg max −+ s(m)
m
T

(149)

∗

から決まる最大値をとるときの m である．分配関数の対数を取り、N で割ることで 1 スピンあたりの自由
エネルギーを求めると、

T
log Z = max {−e(m) + T s(m)}
(150)
m
N
という熱力学でよく知られた変分原理を再現する．
（ヘルムホルツの自由エネルギーはエネルギーからエン
トロピーの効果を引いたものの最小化で与えられる．
）それでは計算の話に戻ろう．残る計算するべき量は−f =エントロピーである．デルタ関数の積分表示を用いて、以下のように書き換える．
(
) ∫
{
(
)}
N
N
∑
1 ∑
δ m−
xi = dm̃ exp N m̃ m −
xi
N
i=1

この表示によりエントロピーは、

1s(m) =
log
N

(151)

i=1

{∫
dm̃ exp (N mm̃)

N ∑
∏

}
exp (m̃xi )(152)

i=1 xiと変形できる．ここでN∑∏f (xi ) =

x i=1

N ∑
∏

f (xi )

(153)

i=1 xiという関係を用いた．xi についての和をとると
{∫
}
1
log
dm̃ exp (N mm̃ + N log 2 cosh m̃)s(m) =
N(154)

ここでも同様に N → ∞ を考慮して鞍点法を適用すると、

s(m) = mm̃∗ + log 2 cosh m̃∗(155)m̃∗ = arg max {mm̃∗ + log 2 cosh m̃∗ }(156)

を得る．ここで m̃∗ は
m̃である．全ての結果をまとめると、自由エネルギーは次の m と m̃ についての最小化問題を解けばよいこと
がわかる．

{
}
f = min Jm2 + T mm̃ + T log (2 cosh m̃)
m,m̃

(157)

この最小化問題を解くと、m̃ = − tanh m が成立するので、m についての自己無撞着方程式が得られる．
)
(
J
m
(158)
m = tanhT
この自己無撞着方程式を反復代入により固定点を求めることで解くことができる．
()
Jm[t + 1] = tanh
m[t]
T

(159)

温度と結合の変化に応じて、全結合相互作用をするイジング模型の相転移を議論することができる．

[問:K = J/T として、K を変化させたときの磁化の振る舞いについて数値的に調べよ．]

29

4.2

基底追跡の性能評価

ベイズの定理により、最大事後確率という観点で、LASSO 型の最適化問題を定式化することができた．
同様に λ → 0 とすると、

P (x|A, x0 ) ∝ δ (y − Ax0 ) exp (−κ kxk1 )(160)という事後確率を用いて、基底追跡の最適化問題を最大事後確率という観点で議論できる．この最適化問
題が入力ベクトルを正しく推定できるかどうかを議論しよう．事後確率に β 乗した重みによる平均を∫
βh· · · ix|A,y = dx · · · × P β (x|A, y)(161)とすると、推定結果が典型的に入力ベクトルと一致するかどうかは、以下の最小二乗誤差の事後平均を議論すれば良い．


MSE =

1
2
kx − x0 k2
N

β
(162)
x|A,y

β = 1 とすれば事後平均そのものを議論することができるし、事後確率の最大化による推定結果を議論するためには β → ∞ を議論すればよい．このような期待値を計算するには統計力学の処方箋が有用である．
事後確率（の β 乗）をカノニカル分布と考えれば、先ほどのスピン系の統計力学と同様に自由エネルギーの評価を通じて、期待値がどのように振る舞うかが計算できる．
さてそこでノイズなしの観測を行った場合に、基底追跡型の最適化問題を解くことにより得られる推定解が元の入力ベクトルとどれだけ一致するのかという問題を考えよう．前提条件として下記の設定を置こう．

• 観測行列 A は各成分、平均 0、分散 1/N に従うランダム変数であるとする．
• 入力ベクトル x0 の各成分は、ρ = K/N 程度の非零要素があり、非零要素は正規分布に従うと仮定
する．
(
)
1
1 2
P0 (x) = (1 − ρ)δ(xi ) + ρ √ exp − xi
(163)
2
2π
• 出力ベクトルは y = Ax0 によって与えられる．
熱力学的諸量の計算

基底追跡型の最適化問題に相当する事後確率は、式（160）で与えられるので、次の分配関数を評価することを考えよう．

∫
Z(A, x0 ) = lim

λ→+0

(
)
1
2
dx exp − ky − Axk2 − β kxk1
2λ

ここで

(

1
2
δ(y − Ax) = lim exp − ky − Axk2
λ→+0
2λ

(164)

)
(165)

とデルタ関数を極限で表現する．ちょうどこれは再構成アルゴリズムの章でいうところの罰金法を利用していることに相当する．次に注目したいのは観測行列 A と出力情報 x0 である．分配関数、すなわち自由エ
ネルギーがその実現値に依存している．しかしながら N → ∞ の熱力学的極限では、1 自由度辺りの自由エ
ネルギーはある特定の典型的な値を取り、その値が平均に収束するという性質が知られている．自己平均性と呼ばれる性質である．そこで典型的な自由エネルギーの評価を行うために、A と x0 についての平均操作
を行う．

]
1
log Z(A, x0 )
−f =
N
A,x0
[

(166)

ここで A と x0 の実現値に関する平均を（相互作用や磁場がやはりランダム変数の問題である）スピングラス理論の用語を借りて、配位平均と呼ぶ．この対数の外からの平均操作は非常に難しいため、レプリカ法と呼ばれる数学的恒等式と解析接続を利用した計算を展開する．

30

レプリカ法



対数の外からの平均操作のために以下の恒等式を用いる．

[log Z(A, x0 )]A,x0 = lim[Z n (A, x0 )]A,x0 − 1

(167)

n

n→0

ここで分配関数の冪が現れるが、一旦 n が実数であることを忘れて、自然数であると仮定して同じ系のコピーが存在するものとして計算を進める．最終的に n に関する式を得たときに実数であることを思い出して解析接続を行う．

それではレプリカ法にもとづき、分配関数の冪乗の平均を計算してみよう．
[∫
(
)]
n
n
∑
1 ∑
2
n
[Z (A, x0 )]A,x0 = lim
dxa exp −ky − Axa k2 − βkxa k1λ→+02λ a=1
a=1



(168)
A,x0

冪乗をとった影響で n 個のコピーをもつシステムの統計力学に帰着した．さてまずは A についての平均であるが、A が登場する項について注目すると、ta = Ax0 − Axa という M 次元のベクトルの部分に現れるのみである．また A がガウス分布に従うことから ta も多変量正規分布に従う．この量の平均を調べると Aに関する仮定より 0 であり、共分散を調べると
)
1 ( T
T
T
tT
x0 x0 − xT
0 xa − x0 xb + xa xb
a tb =
N(169)となることがわかる．それぞれ

qab =

1 T
x xb
N a

と定義する．これはスピン系の統計力学で利用した磁化 m =

(170)
∑N

i=1 xi /N と同じように微視的状態の組み合

わせからなる量の経験平均で秩序パラメータを定義している．その秩序パラメータを固定して、微視的状態について先に和を取り、あとで秩序パラメータを変化させるというのが統計力学の処方箋にもとづくアプ
ローチであった．そこで分配関数の内部にやはり同様に、
(
)
∏∫
1 T
1=
dqab δ qab − xa xb
N

(171)

a,b

なる恒等式を代入して、xa についての積分、x0 についての平均をまとめてエントロピーとして定義してお
こう．


 

(
)
)
n
n

∫ ∏
∑
∏ (
1
1

s({qab }) =log
dxa exp −β
kxa k1
δ qab − xT
a xb


N
N
a=0
a=1
a,b

分配関数の計算は今の段階で、∫[Z(A, y)]A,n,x0 = lim

λ→+0

∫
dQ

∫
dm

[

(

1 ∑
2
dq exp −kta k22λ a=1
n

(172)

x0

)]
exp (N s({qab }))

(173)

ta

と変形させることに成功した．ここで ta についての平均は、先ほど考察したように多変量正規分布に従う
ので、次の確率分布に従い計算をする．
√

P (ta |Q) =∑1det(Q−1 )exp −tta (Q−1 )ab tb 
(2π)N
2

(174)

a,b

ここで行列 Q が共分散行列であり、(Q)a b = qab を指す．分配関数に現れるエントロピー以外の項をまとめて内部エネルギーを得ることができる．

[
(
)]
n
1 ∑
1
2
log exp −−e({qab }) =kta k2N
2λ a=1
31

(175)
ta

こうすることでスピン系の統計力学と同様に、∫[Z(A, y)]A,n,x0 = lim
dqab exp (−N e({qab }) + N s({qab }))
λ→+0

(176)

分配関数の評価は鞍点評価に落ちる．
レプリカ対称解の仮定と内部エネルギーの評価
注目すると、残る計算は、

√

∫
dta

まず内部エネルギーの計算をしてみよう．対数の内部に)  1 ∑ (1det(Q−1 )tT
exp −δab + (Q−1 )ab tb
a
 2

(2π)N
λ

(177)

a,b

というガウス積分を行えばよい．
ガウス積分ガウス積分の公式


√

∫
dx

( a
)
a
exp − x2 + bx = exp
2π
2

( 2)
b
2a

(178)

及びその N 次元への一般化

(

∫
dx

det(A)
√
2π

)N

(
)
(
)
1
1 T −1
exp − xT Ax + bT x = exp
b A b
2
2

を用いる．以降頻繁にガウス積分が登場するので
∫
∫
dx
√
Dx =
2π
と書く．

実際に ta についてガウス積分を実行すると、

(179)

(180)



−e({qab }) = −()
1αlog det I + Q
2
λ

(181)

を得る．ここで α = M/N であり、ta の次元が M であったことに注意してもらいたい．有名な公式

log det(A) = Tr log Λ（Λ は A の対角化によって得られる対角行列）を用いれば良いことがわかる．つ
まり問題は固有値問題に帰着した．しかしながら共分散行列 Q についてどんな特徴があるだろうか．計算を押し進めるために以下の考察にもとづき共分散行列の構造を仮設する．添字 0 は特別であるとして、a については同じ系のコピーに過ぎないのだから、添字の入れ替えについて対称であると仮定することには無理がないだろう．そこで以下のようなレプリカ対称解をおく．

q0a= m (a > 0)

(182)

qaa

= Q (a > 0)

(183)

qab

= q (a 6= b)(184)と置くことにする．q0 0 = ρ は定義より定まっている．これをレプリカ対称性の仮定と呼ぶ．
（レプリカ対称性の破れとは、この対称解があるパラメータ領域では不安定化することを指す．
）このとき共分散行列は以下の構造を持つ．
ρ − 2m + Q ρ − 2m + q
Q=
..


.

ρ − 2m + q
ρ − 2m + Q

···
···
..
.


ρ − 2m + qρ − 2m + q  = (Q − q)In + (ρ − 2m + q) 1n
..


.

ρ − 2m + q

ρ − 2m + q···

ρ − 2m + Q
32

(185)

ここで In が n × n の単位行列、1n が n × n 全成分 1 の行列である．よって I + Q/λ の固有値を求めると、1 個の 1 + (Q − q)/λ + n(ρ − 2m + q)/λ と n − 1 個の 1 + (Q − q)/λ という固有値を持つことが分かる．
[問:固有値を確認せよ．]
よって以下の最終的な表式を得る．
()
α ρ − 2m + qn1−e(ρ, Q, m, q) = −n
− log 1 + (Q − q)(186)
2 λ + (Q − q)2
λ
エントロピーの評価

スピン系の統計力学の場合と全く同様にしてデルタ関数のフーリエ積分表示を行う

ことで実行できる．まずレプリカ対称解を仮定したので出てくるデルタ関数は 3 つのタイプがある．
}
{
(
)
∫
)
1 T
Q̃ (
T
N Q − xa xa(187)
δ Q − xa xa=
dQ̃ exp
N
2
(
)
{
}
∫
)
1 T
q̃ (
T
δ q − xa xb=
dq̃ exp − N q − xa xb
(188)
N
2
(
)
∫
{
(
)}
1
δ m − xT
xa=dm̃ exp −m̃ N m − xT
(189)
0 xa
N 0
それぞれ積分変数の符号を変えたり係数を変えているのは後々の便利のためである．これらの積がエント
ロピーの対数の内部に現れるので、その部分にまず注目してみよう．
)
(
)
∏ (
n(n − 1)
1
n
Q̃Q
−
N
δ qab − xT
x
=
exp
N
q̃q
−
N
n
m̃m
b
N a
2
2
a,b
(
(
)∏
)
n
∏
1 T
1
T
exp
×
exp − Q̃xT
x
+
m̃x
x
q̃x
x
b
a a
0 a
2
2 a
a=1

最後の項は見覚えがある．レプリカの添字についてのクロスタームであることに気づくと、

 (
)2
) ∏
(
n
n
 ∑

∏
1 T
q̃

q̃xa xb =
exp
exp 
xa
− xT
x
a
a

2
2
a=1

a6=b

(190)

a6=b

(191)

a=1

さらにガウス積分を逆に利用したハバード・ストラトノビッチ変換を利用すれば、
( n
)
)
(
∫
n
∏
√ T ∑
q̃ T
Dz
exp
q̃z
xa − xa xa
2

(192)

a=1

a=1

を得る．
ハバード・ストラトノビッチ変換



ガウス積分の公式を逆に利用して、指数関数の肩の部分にある項を 1 次に減らすことができる．
∫
)
(a
(√
)
Dz exp azT x = exp
xT x
(193)
2
代わりにガウス積分が増えることになるが、x が何かの和であるとか入り組んでいる場合に、1 次の項にすることで解きほぐすことが可能となるメリットがある．

最終的にエントロピーの項に現れる対数の内部にあるデルタ関数の積は、
)
(
)
∏ (
n
n(n − 1)
1 T
= exp N Q̃Q − Nq̃q − N nm̃m
δ qab − xa xb
N
2
2
a,b
(
)
n ∫
)
(√
)T
∏
1(
T
Dz exp −×Q̃ + q̃ xa xa +q̃z + m̃x0 xa − β kxa k1
2
a=1



(194)
33

という形を持つ．ここで xa についての積分を考えると、n 個の積は全く同等のものがあるので単純に積分の結果を n 乗してもかまわない．また xa の N 個の成分についても全く同等であるので積分の結果を N 乗
してかまわない．
∫ ∏
n
a=1

dxa

)
∏ (
1
δ qab − xT
x
b
N a

(
)
n(n − 1)nq̃q − N nm̃m
= exp N Q̃Q − N
22{}
× exp N n log φ(x0 , z; {Q}, {Q̃})

a,b

(195)

ここでまとめて∫φ(x0 , z; Q̃, q̃, m̃) =

(
)
)
(√
)
1(
2
dx exp −Q̃ + q̃ x +q̃z + m̃x0 x − β|x|
2

(196)

とおいた．指数の肩にすべて N がかかっているため、Q̃, q̃, m̃ による鞍点評価をすれば良い．結局エントロ
ピーは、Q̃, q̃, m̃ による鞍点を用いて、
{
[∫
] }
n
n(n − 1)s(ρ, Q, m, q) = maxQ̃Q −q̃q − nm̃m + n
Dz log φ(x0 , z; Q̃, q̃, m̃)
2
2
Q̃
x0

(197)

という格好となる．内部エネルギーもエントロピーも 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αβ ρ − 2m + Q+ O(1)
2
χ(198)となる．一方エントロピーについては
}] }
{
[∫
{
)
1
Q̃ 2 (√1Q̃Q − χ̃χ − m̃m −χ̃z + m̃x0 + |x|s(ρ, Q, m, q) = nβ max
Dz min
x −
x
2
2
2
Q̃
x0

(199)
√
√
x0 についての積分を実行して、 χ̃z + m̃x0 = χ̃ + m̃t という変数変換を行うことにより、
{
}
∫
∫
1
1
s(ρ, Q, m, q) = nβ max
Q̃Q − χ̃χ − m̃m − (1 − ρ) DzΦ(z; Q̃, q̃, 0) − ρ DtΦ(t; Q̃, q̃, m̃)
22Q̃
を得る．ここで{Φ(z; Q̃, q̃, m̃) = minx}Q̃ 2 √x − χ̃ + m̃2 zx + |x|2

とおいた．この最小化問題は実は簡単に解くことができて、)2 ( √)1 (√Φ(z; Q̃, q̃, m̃) = −χ̃ + m̃2 z − 1 Θ | χ̃ + m̃2 z| − 1
2Q̃

34

(200)

(201)

である．ここで{
Θ(x) =

1 (x > 0)(202)

0 (x ≤ 0)である．

[問:最小化問題を実際に解いてみよ．]
Φ(z; Q̃, q̃, m̃) の z に関するガウス積分は丁寧に場合分けと部分積分を行えば実行できる．全ての結果をまとめると、1 自由度あたりの自由エネルギー −βf = N1 [log Z]A,x0 をみてみると、

{
−f

= max
Q,Q̃

}
)
α
1(
(1 − ρ)ρ2(ρ − 2m + Q) +QQ̃ − χχ̃ − mm̃ +G(χ̃ + m̃ ) + G(χ̃)
(203)
2χ
2
Q̃
Q̃

という表式を得る．ここで∫ ∞H(a) =

Dza

G(a) =(a + 1)H

(204)
(

1
√
a

√

)
−

(

a
1
exp −
2π
2a

)
(205)

と定義した．あとは Q、Q̃ についての鞍点を調べれば良いだけである．それぞれ偏微分することで以下の鞍点方程式を得る．

α
χ
α
χ̃ =
(ρ − 2m + Q)
χ2
α
m̃ =
χ
2(1 − ρ)2ρQ =G(χ̃ + m̃2 ) +
G(χ̃)
2
Q̃
Q̃2
(
)
(
)
2(1 − ρ)
1
2ρ
1
χ =
H √
+ H √
χ̃
Q̃
Q̃
χ̃ + m̃2()
1
m = 2ρm̃H √χ̃ + m̃2
Q̃

=

(206)
(207)
(208)
(209)
(210)

(211)

これを適当な初期条件のもと、反復代入を行うことで固定点を探す．パラメータ α と ρ について変化させると次の MSE が急激に変化するところが出現する．
[β→∞ ]
1
2
MSE =kx − x0 k2
N
x|A,x0= ρ − 2m + Q

(212)

A,x0

その振る舞いにより基底追跡の相境界が明らかとなる（図 14）．このようにして統計力学的な処方箋により、基底追跡や LASSO 型の最適化問題の性能評価など、圧縮センシングの問題を解く際に利用される最適化問題の性質を明らかにすることができる．観測行列をガウス分布にしたがうランダム行列としたが、直交行列をランダムに選んだものでの性能評価など実際に使われる圧縮センシングの問題に近い状況についても実行することができる．信号の特性や、ノイズが混入した場合など拡張も様々であり、習得するとよい技術である．

4.3

近似メッセージ伝搬法

後に続くボルツマン機械学習でも登場する統計力学由来の推定アルゴリズムについて紹介する．手法としての導出は後に譲るとして、ここでは圧縮センシングに利用した場合について紹介する．

35

1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

図 14: 基底追跡のレプリカ解析の結果．MSE が 0.001 を境目として、黒が MSE が大きい領域（失敗相）、白が MSE が小さい領域（成功相）．曲線は図 6 のもの．
統計力学はある観測行列、そして原信号をもってきたときに、推定できるかどうかの典型的な性能（鞍点の意味で尤もらしい状態）を評価している．その意味で平均的な性質についてのみ焦点を当てている．ここで紹介するのは、それとは真逆で具体的にある観測行列、原信号をもってきたときに、それを推定するためのアルゴリズムである．しかも先に登場したメジャライザー最小化を基本とした ISTA に似た形のアルゴリ
ズムが導出できるため、最適化問題と統計力学の関係性の意味でも非常に興味深い内容を含む．
まずメッセージ伝搬法（信念伝搬法）について、導出は後に譲るとして、天下り的に導入する．確率変数間の関係をファクターノードと変数ノードによってわけてグラフ上で表現する．このときファクターノードを µ とギリシャ文字で表し、変数ノードをアルファベットで表現する．ファクターノード µ についている
変数ノード k は、k ∈ ∂µ と表示する．一方変数ノード k についているファクターノード µ は、µ ∈ ∂k と表記する．変数ノードは確率変数の要素を表しており、ファクターノードは、確率変数間の関係を記述する．
そのようなグラフ表現をすると確率分布関数が以下のように分けられる．
N∏

P (x) =

fk (xk )∏fµ (x∂µ )

(213)

µ

k=1

このときに各確率変数の期待値、相関を計算するのに有用な周辺分布は以下のメッセージによる表現を持つ．

Pk (xk ) =fk (xk )∏M̃µ→k (xk )

(214)

µ∈∂k

Pµ (x∂µ ) =∏fa (x∂µ )Mk→µ (xk )

(215)

k∈∂µ

ここで M̃µ→k と Mk→µ はメッセージと呼ばれる．このメッセージは以下の反復方程式を経由して構成さ
れる．

∫
[t]

M̃µ→k (xk ) ∝dx/k fµ (x∂µ )∏[t]

Mk→µ (xk ) ∝ fk (xk )∏[t]Ml→µ (xl )(216)

l6=k∈∂µ[t−1]

M̃ν→k (xk )(217)

ν6=µ∈∂k

これはボルツマン機械学習の項で述べられるように、確率分布関数の強い複数の確率変数間の相関関係を断ち切る近似を行うことで得られる方法である．

36

さて我々の目的とする圧縮センシングの原信号推定に利用してみよう．まずは基底追跡型の最適化問題について考えよう．観測行列 A、観測信号 y が与えられたときの事後確率はベイズの定理を利用して、以下のように与えられる．

P β (x|A, y) ∝N∏

exp (−β|xk |)M∏()
δ y µ − aT
µx

(218)

µ=1

k=1

ファクターノード µ にたいして、変数ノードは全て繋がっている．また aµ は観測行列の行ベクトルを抜き取ったものである．β → ∞ の極限において、L1 ノルム最小化を利用して、スパースな解を得るという格
好をしているのはこれまで通りである．制約条件を表すデルタ関数部分を罰金法にあるように、制約条件から決まるガウス分布で表現することも可能である．そこで一般に以下の形で与えられる確率分布関数を以降取り扱うことにする．

P (x|A, y) ∝βN∏

exp (−β|xk |)

M
∏

(
)
f aT
µ x|yµ

(219)

µ=1

k=1

そのままメッセージ伝搬法を利用しても良いが、更に変数の数が多い（N → ∞）という問題の性質を利用して、近似を施すことにより計算量の更に低いアルゴリズムを構成することができる．これを近似メッセー
ジ伝搬法（Approximate Message Passing:AMP）と呼ぶ．
それでは近似メッセージ伝搬法の導出を行う．N → ∞ の極限での計算であるから、先ほどの統計力学による解析手法が参考になる．まずメッセージの更新式（216）の計算を進める．以下の恒等式を利用する．
∫
)
(
(220)
1 = duµ δ uµ − aTµx
この恒等式をメッセージ更新式（216）に挿入しよう．
∫
∫
) ∏
(
[t]
[t]
Ml→µ (xl )M̃µ→k (xk ) ∝duµ dx/k f (uµ |yµ )δ uµ − aT
µx

(221)

l6=k∈∂µ

さらにデルタ関数をフーリエ積分表示（後の便宜のため虚数単位を用いた表示）をする．
∫
∫
∫
{
(
)} ∏
[t]
[t]
M̃µ→k (xk ) ∝duµ dũµ dx/k f (uµ |yµ ) exp iũµ uµ − aT
Ml→µ (xl )
µx

(222)

l6=k∈∂µ

積分される変数に注目して、xl についての積分の積として表示する．
∫
∫
∏ ∫
[t]
[t]
M̃µ→k (xk ) ∝duµ dũµ f (uµ |yµ ) exp {iũµ (uµ − aµk xk )}dxl exp (−iũµ aµl xl ) Ml→µ (xl )l6=k∈∂µ(223)
ここで観測行列は慣例に従い、平均 0、分散 1/M のガウス分布に従うものを仮定する．そのとき aµl が分
散 1/M 程度の微小な値を持つことをから、xl に関する積分の中身を展開する．その際に以下の平均と分散を定義する．

∫
[t]

mk→µ

≡

[t]

≡

Vk→µ

[t]

∫

dxk xk Mk→µ (xk )

(224)

(
)2
[t]
[t]
dxk x2k Mk→µ (xk ) − mk→µ(225)

これにより xl に関する積分を aµk について 2 次まで展開したのちに実行したつもりになり、再び指数関数の肩に引き上げる．

∫[t]
M̃µ→k (xk )

∝

∫
duµ

dũµ f (uµ |yµ ) exp {iũµ (uµ − aµk xk )}∏l6=k∈∂µ(
exp

ũ2µ 2 [t][t]aµl Vl→µ−iũµ aµl ml→µ −

)

2

(226)
37

ここで ũµ についてガウス分布関数となっていることに注目して、積分を実行する．
{
∫
)2 }
1 (
[t]
[t]
[t]
M̃µ→k (xk ) ∝duµ f (uµ |yµ ) exp −uµ − mµ + aµk (xk − mk→µ )
2Vµ
ここで

≡

m[t]
µ

∑

[t]

(227)

[t]

(228)

aµk mk→µ

k

≡

Vµ[t]

∑

a2µk Vk→µkと定義した．途中

∑

∑
[t]
[t]
[t]
[t]
l6=k ml→µ = mµ − mk→µ 、 l6=k Vl→µ = Vµ − Vk→µ として丁寧に主要に寄与する項を考慮しながら計算する．さらに aµk が小さいので、更に展開をする．
{
}
∫
)2
1 (
[t]
[t]
M̃µ→k (xk ) ∝duµ f (uµ |yµ ) exp − [t] uµ − mµ
2Vµ






[t]
[t] 2 2(uµ − mµ ) (uµ − mµ ) aµk
1
[t]
[t]
2
−
(xk − mk→µ )− (× 1 + aµk (xk − mk→µ )
)2
[t]
[t]



2
[t]
Vµ
 Vµ



Vµ

(229)
ここで uµ についての積分を実行する．そこで以下のモーメントを定義する．

{

∫
c(k)
µ =

duµ f (uµ |yµ ) exp −

(

1
[t]

2Vµ

uµ − m[t]
µ

)2

}(

[t]

u µ − mµ

)k

[t]

(230)

Vµ

このモーメントを利用してメッセージは以下のようにガウス分布関数となることがわかる．
{}
1 [t] 2[t][t]
(0)M̃µ→k (xk ) ∝ cµ exp mµ→k xk − Vµ→k xk
2
ここでメッセージによる平均と分散にかかわる xk の 1 次、2 次の係数は
[t]

mµ→k
[t]
Vµ→k

[t]

[t]
[t]
2
[t]
= aµk g0 (m[t]µ |Vµ ) − aµk g1 (mµ |Vµ )mk→µ=[t]−a2µk g1 (m[t]µ |Vµ )

(231)
(232)

であり、gr (mµ |Vµ ) は以下のように定義した．

gr (mµ |Vµ ) =∂rlog c(0)
µ
∂mrµ

(233)

この量は f (uµ |yµ ) を（230）式のようにガウス積分することで得られる．つまりメッセージ更新式（216）については評価が終わっている．この中に登場する mµ 、Vµ の評価のためにもう片方のメッセージ更新式（217）に目を向ける．ここでメッセージによるモーメント
∫
(r)
[t−1]
dk→µ = dxk xrk Mk→µ (xk )
[t−1]

(234)
[t−1]

を計算することを考えてみよう．r = 1 のとき mk→µ 、r = 2 を利用して Vk→µ を得ることができる．ここでメッセージ更新式の定義（217）をみると、評価するべきは以下の積分であることがわかる．


∫
∑
1
[t−1]
(r)
[t−1]
dk→µ = dxk xrk exp −β|xk | +mν→k xk − Vν→k x2k 
2
ν6=µ

38

(235)

例によって絶対値関数があるため積分の実行は難しい．しかしながら β → ∞ を考えるため、積分するする
[t−1]

[t−1]

[t−1]

[t−1]

詐欺で、鞍点評価に逃げることができる．そこで mν→k → βmν→k 、Vν→k → βVν→k とスケールを変更する．さらに
[t−1]

mk

∑

=

mµ→k

[t−1]

(236)

[t−1]

(237)

µ

[t−1]

Vk

∑

=

Vµ→k

µ

を定義する．レプリカ法による計算のときと同様な計算にするため、先んじて以下の量を計算する．
(
{∫
)}
1
dx exp −β|x| + βax − βbx2
I(a|b) = log2β2≈(|a| − 1) Θ (|a| − 1)
(238)
2b
(r)

r

ここから dk→µ = (∂/∂βa) I(a|b) より、

(
[t]
mk→µ

[t]
βVk→µ

= S1/(V [t−1] −V [t−1] )
k

=

[t−1]

Vk

[t−1]

Vk

µ→k

(

1
[t−1]

− Vµ→k

Θ

[t−1]

mk

[t−1]

− mµ→k)(≈ S1/V [t−1][t−1]− Vµ→k

k

)

[t−1]
[t−1]
|mk
− mµ→k | − 1

≈

1
[t−1]

[t−1]

mk

)

[t−1]

Vk

(
Θ

Vk

(
)
[t−1]
Θ
|m
|
−
1
k
[t−1]
[t−1]

−

mµ→k
Vk

(239)

)

[t−1]
|mk | − 1(240)

これで一般的に確率分布関数 f (uµ |yµ ) の形が与えられたとき、メッセージをそれぞれガウス分布関数に近似したうえで、その 1 次と 2 次の係数についての関係式を以下のように得る．
[t]
mk

=

M
M
1∑
1∑ 2
[t]
aµk g0 (mµ[t] |Vµ[t] ) −a g1 (m[t]µ |Vµ )S1/V [t−1]k
β µ=1
β µ=1 µk1∑ 2
[t]a g1 (m[t]µ |Vµ )
β µ=1 µk
( [t−1] )∑mkaµk S1/V [t−1]=− Vµ[t] g0 (m[t−1]|Vµ[t−1] )
µ
[t−1]
k
V
k
k
(
)
∑
1
[t−1]
=
a2µk [t−1] Θ |mk | − 1
Vk
k

(

[t−1]

mk

[t−1]

)
(241)

Vk

M

[t]

Vk

m[t]
µ
βVµ[t]

= −

(242)

(243)
(244)

LASSO に対する近似的メッセージ伝搬法 さて LASSO 型の最適化問題に対する近似メッセージ伝搬法のアルゴリズムを書いてみよう．そのとき f (uµ |yµ ) を
}
{
β
2
(245)
f (uµ |yµ ) = exp − (yµ − uµ )2λ(0)とおく．式（233）に従い、まず cµ を計算すると、

g0 (mµ |Vµ ) =g1 (mµ |Vµ ) =β(yµ − mµ)λ + βVµβ−
λ + βVµ

39

(246)
(247)

であるから βVµ → Vµ として、
[t]
mk

=

[t]

=

Vk

m[t]
µ

=

M
∑

[t]
(y − mµ[t] ) + Vk S1/V [t−1][t] µkµ=1 λ + Vµ
M
∑

=

∑

)
(248)

[t−1]

Vk

(249)

[t]
µ=1 λ + Vµ

∑

[t−1]

mk

a2µk
(

aµk S1/V [t−1]
k

k

Vµ[t]

(

aµk

a2µk

k

[t−1]

mk

[t−1]

Vk

)
− Vµ[t] g0 (m[t−1]|Vµ[t−1] )
µ

(
)
[t−1]
Θ
|m
|
−
1
k
[t−1]
1

(250)
(251)

Vk

ここでさらに近似を行う．
（いわゆる近似メッセージ伝搬法は、この近似を行ったもの．上記は正確には緩和
信念伝搬法（relaxed Belief Propagation）と呼ぶ．
）大数の法則（非常に多くの確率変数の和からなる量は期
∑ 2
[t]
[t]
2
待値に収束する）より µ aµk = 1 および aµk = 1/M としてもよい．さらに Vµ = V [t] および Vk = W [t]
とする．
[t]
mk

W [t]
m[t]
µ
V [t]

M
∑

aµk
(y − mµ[t] ) + W [t] S1/W [t−1]
=
[t] µ
λ
+
V
µ=1

(

[t−1]

mk
W [t−1])

1
λ + V [t]( [t−1] )
∑
mk
V [t]
=
aµk S1/W [t−1]−(y − m[t−1]
)
µ
[t−1]
[t−1] µ
W
λ
+
V
k
=

=

N
(
)
1 ∑ 1
[t−1]
Θ
|m
|
−
1
k
M
W [t−1]

(252)
(253)
(254)

(255)

k=1

それぞれガウス分布関数の係数をあらわしている．そこで期待値に軟判定しきい値関数をくぐらせたもの
から各成分の信号を推定することにしよう．

(
xk [t] = SΛ[t]

[t]

mk
W [t]

)

この各時刻の推定値に関する反復方程式であるとみて、式変形をしてみる．
()
M∑
xk [t] = SΛ[t] xk [t − 1] +aµk zµ [t]

(256)

(257)

µ=1

zµ [t] =N)()
1 ∑ ( [t−1][t−1]y µ − aT
x[t]
−
Θ
|x
|
−
Λ
zµ [t − 1]
µ
k
M

(258)

k=1

)
Λ[t − 1] ∑ ( [t−1]Θ |xk | − Λ[t−1]MNΛ[t] =

λ+

(259)

k=1

ここで W [t] = 1/Λ[t] とした．上記 2 つの反復方程式を称して、圧縮センシングの再構成アルゴリズムとしての有名な AMP と呼ぶ．3 つめの反復式（259）は、圧縮センシングの再構成の可能性を表現する重要な式である．
（その割にあまり目にしない．
）第 2 項は、N 成分あるうち非零の成分がいくつあるのかを数えている．そのため復号される信号の非零成分の個数 K が K < M であれば、基本的には 1 より小さい係数がΛ[t − 1] にかかる．そのため Λ[t] は収束することが期待される．一方で非零成分の個数が K > M であれば発散してしまうため復号ができない．zµ [t] は各時刻での各行における残差 yµ − aT
µ x[t] に由来する項であり、第一項までとすれば ISTA と一致することに注意したい．統計力学由来の AMP により更に非自明な補正項が登場する．λ → 0 とすれば LASSO 型から基底追跡型の最小化問題に対応するが、一般には ISTA

40

による計算は不安定なものとなる．しかしこの補正項により、ISTA の計算不安定性を弱める性質があることが知られている．その意味で AMP は ISTA より有用であり盛んに応用的な研究やその性質についての理論的研究が進められている．

ボルツマン機械学習

5

同じ猫の画像であったとしても、画像データは様々な形態をもつ．しかしながら人間が知覚しているように、様々な猫の画像を見ても、猫である．これはどういうことだろうか．人間は自然と、高次元のデータが与えられたときに、そのデータの本質的な構造を抽出しているということだ．その結果猫であると認識していると考えられる．ボルツマン機械学習は、多次元ベクトルに過ぎない高次元データが与えられたときに、そのデータを創りだしている本質部分である、生成モデルを明らかにする枠組みである．この生成モデルが明らかとなれば、同様の性質を有する高次元データを自在に用意することが可能であり、また生成モデル
そのものの特徴から、データの背後にある本質に迫ることができる．
ビッグデータ時代と呼ばれて久しい現代において、データを取得する量は増加する一方である．しかし大量のデータを得るだけ得ておいて、何をしたら良いかわからない、といった声も一方で聞かれる．何もできないという状況を打破するひとつのツールとしてボルツマン機械学習をここでは学習してみよう．

5.1

問題設定

計測技術や信号処理技術、そして情報処理そのものの質の向上により、我々は大量のデータを取得することが可能となった．N 次元のベクトル x(d) で表される大量のデータ（d = 1, 2, · · · , D）が与えられたときに、そのデータの起源を少数の説明変数で表した生成モデルを解明する処方箋のひとつがボルツマン機械学習である．ここで大前提として、データは確率的に出力されて得られているものと考える．
ボルツマン機械学習では、統計力学で基本となるカノニカル分布に従ってデータが出力されると考える．

P (x|u) =1
exp {−E(x|u)} .
Z(u)

(260)

ここで Z(u) は分配関数、u はデータの構造を表すエネルギー関数 E(x|u) を形作るパラメータである．例
えば N 次元の 2 値データがイジング模型のカノニカル分布から生成されたと仮定する場合には、

E(x|u) =N ∑∑Jij xi xj +i=1 j∈∂i

N
∑

hi xi

(261)

i=1

とする．xi = ±1 であり、パラメータ u = (J, h) によりエネルギー関数が特徴づけられている．j ∈ ∂i は、

Jij 6= 0 で繋がっている成分 i に関与する j についての和である．他にも N 次元の連続値を持つデータがガウス分布から生成されたと仮定する場合には、
E(x|u) =1 T
x Jx + hT x
2

(262)

とする．xi は連続値であり、やはりパラメータ u = (J, h) によりエネルギー関数が特徴づけられている．上記の仮定のもと、与えられた大量のデータの経験分布

1 ∑δ(x − x(d) )DDPD (x) =

(263)

d=1

に最も近いカノニカル分布を探してくることがボルツマン機械学習の目標である（図??）．その結果、パラメータ u によりデータの経験分布を「もっともらしく」再現する確率分布を得ることができる．パラメー
タそのものからデータの特徴を調べることも可能である．

41

図 15: データの経験分布に合うボルツマン分布を求めるボルツマン機械学習．

5.2

最尤法

さてそうなると 2 つの異なる確率分布を持ってきたときに、それらが近いか遠いかを調べるための計量が必要だ．最も一般的に用いられるのがカルバック・ライブラー（KL）情報量である．
)
(
∫
P (x)
DKL (P |Q) = dxP (x) log
Q(x)

(264)

この KL 情報量の意味で、データの経験分布に最も近い確率分布を与えるパラメータ u を求めてみよう．

Q(x) を未知のパラメータを持つ P (x|u) に、P (x) をデータの経験分布 PD (x) としよう．このとき KL 情報
量は、
(
)
∫
PD (x)DKL (PD |Pu ) = dxPD (x) log(265)
P (x|u)となる．パラメータ u が関与する部分に注目すると、以下の最大化問題と等価であることが分かる．

u∗ = arg max L(u).
u

(266)

ここで L(u) は対数尤度関数（の経験平均）と呼び、以下のように定義される．

1 ∑log P (x = x(d) |u).
D
D

L(u) =(267)

d=1

ベイズ推定の説明に現れた尤度関数が再び登場した．ボルツマン機械学習は、この対数尤度関数の最大化（最尤法）を行うことで、得られたデータに適合する「もっともらしい」パラメータの推定を行うとも言い換えることができる．少し計算してみると明らかとなるが、対数尤度関数は、

1 ∑E(x = x(d) |u) − log Z(u).
D
D

L(u) = −

(268)

d=1

という形を持つ．第一項がエネルギー関数（の経験平均）の符号を変えたものであり、第二項が分配関数の対数であるから、自由エネルギーである．統計力学の言葉でいえば、自由エネルギーとエネルギー（温度は1 として）の差であるエントロピーが最大となるようなエネルギー関数の形を求めることがボルツマン機械
学習の中心的な問題であることが分かる．
それでは最尤法を実行するために、お得意の勾配法を試してみよう．
u[t + 1] = u[t] + η

∂L(u)
∂u

(269)

ここで η は学習係数と呼ばれる量で、小さければ小さいほど正確であるが計算時間の長大化に繋がるのでほどよい値をとることが要求される．対数尤度関数の微分が必要となるので、パラメータ u について対数42尤度関数の微分を取ってみる．

∂L(u)1 ∑ ∂E(x = x(d) |u)
=−
+
∂u
D
∂u
D

d=1



∂E(x|u)
∂u


.

(270)

u

第 1 項はエネルギー関数の形を知っていれば評価は容易である．データに関する経験平均をとるだけだ．一∑方第 2 項は熱平均の計算 h· · · iu = x · · · × P (x|u) が必要となる．ただ一度きりの計算であれば、やる気にもなるだろう．しかし勾配法の手続きは、適当な初期条件 u[0] のもと、以下の反復計算を行うため何度も何度も勾配の計算、熱平均の計算が必要であることが分かる（図 16）．これがボルツマン機械学習の運
熱平均の計算求ム！
熱平均の計算求ム！

熱平均の計算求ム！

図 16: 最尤法の様子
命を決めた．正確な実行のために必要な計算量が非常に膨大となり、現実的な学習法ではないと、かつてその黎明期では判断された．しかしながら 2000 年代に入ってから、データ数の大規模化と新しい計算手法の提案を契機に現実的な計算手法であると受け入れられて今日に至る．その代表的なものを紹介していこう．

5.3

ボルツマン機械学習の学習方法

ボルツマンの名前を冠する通り、統計力学の手法による学習方法がいくつか提案されている．それぞれに得手不得手があるので、利用する場合にはそこに注意してほしい．話を具体的にするため、エネルギー関数
をイジング模型のものにした場合（261）を考えよう．この場合必要となる熱期待値は、

∂E(x|u)= hxi xj iu
∂Jij

u
∂E(x|u)= hxi iu
∂hi
u

(271)
(272)

である．つまり統計力学の言葉で言えば相関関数と局所磁化である．
平均場近似（Mean Field Approximation）

熱平均または分配関数を計算するには計算量困難を伴う

ので、いっそのこと近似で諦めるとしよう．熱平均や分配関数の計算で困難さの原因となるのは確率変数間の相関である．そこでその変数間の相関がない独立な分布で近似するとしよう．

P (x|u) ≈N∏

Pi (xi |u)

(273)

i=1

ただしその近似はできる限りボルツマン分布を利用した場合に近いものにしたい．そこで KL 情報量を利用
して、ボルツマン分布にできるだけ近くなるように Pi (xi |u) の関数形を決めよう．
)}
{∫
(∏
N
N
∏
P
(x
|u)
i
i
MF
i=1
Pi (xi |u) = arg mindx
Pi (xi |u) log
P (x|u)Pi (xi |u)
i=1

43

(274)

ここで

∫

dxi Pi (xi |u) = 1 という等式制約を課す．この等式制約を考慮してラグランジュ未定乗数を導入して新たなコスト関数を導入すると、{∫PiMF (xi |u) = arg

min

dx

Pi (xi |u)N∏(∏
Pi (xi |u) log

N
i=1 Pi (xi |u))

P (x|u)

i=1

+

N
∑

}
λi Pi (xi |u)

(275)

i=1

となる．このコスト関数を定義に従い、少し変形してみる．
N ∫∑∫dxi Pi (xi |u) log Pi (xi |u) +

dx

i=1

N
∏

Pi (xi |u)Ei (xi |x/i , u) + log Z(u) +

i=1

N
∑

λi Pi (xi |u)

(276)

i=1

ここで Ei (xi |x/i , u) はエネルギー関数を以下のように和の形で分解したものである．/i は添字 i 以外のものを表している．

E(x|u) =N∑

Ei (xi |x/i , u)

(277)

i=1

具体例を書いてみると、イジング模型のエネルギー関数の場合は∑Ei (xi |x/i , u) =Jij xi xj + hi xi

(278)

j∈∂i

である．さて Pi (xi |u) について変分をとると、

0 = log Pi (xi |u) + 1 + Ei (xi |m/i , u) + λiなる条件を得る．ここで mi =

∫

(279)

dxi xi Pi (xi |u) であり、まさに求めたい局所磁化である．等式制約について注意しながら Pi (xi |u) を求めると、

Pi (xi |u) =1
ZiMF (u)()
exp −Ei (xi |m/i , u)(280)を得る．ここで ZiMF (u) は規格化定数である．

イジング模型の平均場近似



具体的に Pi (xi |u) の場合について計算すると、( ∑)exp − j∈∂i Jij xi mj + hi xi(∑)
Pi (xi |u) =2 coshj∈∂i Jij mj + hi
である．局所磁化 mi について自己無撞着方程式を得ることができる．
∑mi = tanh 
Jij mj + hi 

(281)

(282)

j∈∂i


相関関数については、線形応答

∂hxi iu = hxi xj iu − hxi iu hxj iu
∂hj

(283)

を利用する [14]．
問:熱平均の定義とイジング模型のエネルギー関数にもとづいて上記の線形応答の関係式を示せ
まず自己無撞着方程式の両辺に対して tanh−1 をとる．

tanh−1 mj =

∑
k∈∂j

44

Jjk mk + hj

(284)

ここから

hj = tanh−1 mj −∑Jjk mk

(285)

k∈∂j

であるので、

dmi
=
dhj

(

dhj
dmi

(

)−1
=

δij
− Jij
1 − m2j)−1(286)を得る．ここで Jji = Jij を利用した．これらの結果を利用して、勾配法に必要な熱平均値 hxi iu および

hxi xj iu を近似的に得る．平均場近似のよいところはその計算の速さにある．精度を多少犠牲にしてでも高速に計算ができる．但し最近平均場近似の様々な矛盾を解消することで、平均場近似の精度向上を試みる
研究が一気に進み、相当な精度の良さを達成することに成功している [16, 17]．また平均場近似では独立な確率分布 Pi (xi |u, x/i ) による変分を用いたが、さらに 2 変数による確率分布からの変分による信念伝搬法（Belief Propagation）、その一般化によるクラスター変分法など多数の進展があり、いわゆる統計力学におけるベーテ近似との関係もあり豊富な研究成果がある．
疑似最尤法（Pseudo Likelihood Estimation） 平均場近似と似た精神を持っている簡単な仕組みでありながら、データ数 D が非常に大きい場合に漸近的に最尤法と一致する解を得る手法である [18]．平均場∑N
近似と同様に、エネルギー関数が変数毎の和に分解できる（E(x|u) = i=1 Ei (xi |x/i , u)）場合に、「得られたデータ」を利用した近似を分配関数についておこなう．

Z(u) ≈

N ∑
∏

{
}
(d)
exp −Ei (xi |x/i = x/i , u) .

(287)

i=1 xi

イジング模型の場合には、Z(u) ≈ 2NN∏
cosh 

i=1

∑

(d)

Jij xj + hi

j∈∂i





.

(288)

とする．この分配関数を利用した尤度関数を疑似尤度関数と呼ぶ．この結果にもとづき、


∑
(d)
Jij x + hi 
hxi iu ≈ tanh 
j

j∈∂i



hxi xj iu≈ xi tanh 
(d)

∑





Jij xj + hi  + xj tanh 
(d)

(d)

j∈∂i

∑

(289)


(d)

Jji xi+ hi 

(290)

i∈∂j

ここで Jij = Jji であることを用いているため、相関についてはふたつの項が現れる．どうも先ほどの平均(d)場近似と非常に似ているが、疑似最尤法は mi ではなく xi 、つまり「得られたデータ」を利用しているところが大きく異なる．
マルコフ連鎖モンテカルロ法

統計力学を知る読者は、熱平均の計算にマルコフ連鎖モンテカルロ法（MCMC法）を採用したらよいのではないか、と考えたかもしれない．マルコフ連鎖モンテカルロ法は、所望の確率分布に収束するマスター方程式を計算機上でシミュレートすることにより、期待値を計算する手法である[19]．イジング模型のマルコフ連鎖モンテカルロ法について簡単に触れておこう．イジング模型の確率分布の時間発展を考えるために離散時間マスター方程式を考える．
∑
Wu (y|x)P[t] (x)(291)
P[t+1] (y) =x

ここで Wu (y|x) が状態 x から y へと遷移する確率であり、P[t] (x) が現時刻で得られている確率分布である．この確率過程の収束先の定常分布がボルツマン分布であることを要求する．そのためには釣り合い条件が成立すれば良い．

45

釣り合い条件

所望の定常分布 Pss (x) を持つための遷移確率の条件は、∑

Wu (y|x)Pss (x|u) = Pss (y|u)

(292)

x

を満たせばよい．

問題はこの釣り合い条件を満たす遷移確率を、できるだけ簡単に用意したいということだ．そのための処方箋として、詳細釣り合い条件を更に課すことが多い．
詳細釣り合い条件
以下の詳細釣り合い条件を満たす遷移確率は

Wu (y|x)
Pss (y|u)=Wu (x|y)Pss (x|u)(293)

釣り合い条件を満たす．

ここで注意したいのは、釣り合い条件を満たすものを見つけるために更に制限の厳しい詳細釣り合い条件を課したことである．所望の定常分布に行き着くためには釣り合い条件を満たせば良い．
（細かいことを言えば任意の 2 状態へ有限のステップで遷移する確率が存在するというエルゴード条件も必要．
）その十分条件として詳細釣り合いがある．この詳細釣り合い条件を満たすとき、平衡系と呼び定常状態は特別な名前が冠される、平衡状態である．最近ではその詳細釣り合い条件を破ったマルコフ連鎖モンテカルロ法がいくつか提案されており、その高速な緩和が注目されているが、これは別の機会に譲ろう．いくつかの文献を挙げるに留める [20, 21, 22]．
さてイジング模型のマルコフ連鎖モンテカルロ法を実行するために詳細釣り合い条件を満たす解を探してみよう．代表的なものはある特定の 1 スピンをフリップするルールを採用して、以下の遷移行列によるふたつが挙げられる．ランダムに選んだある特定のスピン i を xi から −xi へと変化させる．この状態を x̄ とする．そのとき遷移確率を




(
)
∑
Pss (x̄|u)Wu (x̄|x) = min 1,= min 1, exp −2
Jij xi xj − 2hi xi 
Pss (x|u)

(294)

j∈∂i

とする．これをメトロポリス法と呼ぶ．一方遷移確率を




∑
1
Pss (x̄)=1 − tanh 
Jij xi xj + hi xi Wu (x̄|x) =
Pss (x|u) + Pss (x̄|u)
2

(295)

j∈∂i

とする熱浴法（グラウバーダイナミクス）がある．

[問：それぞれ詳細釣り合いを満たすことを確認せよ．]
メトロポリス法が実装が簡単なため、アルゴリズムを紹介しておく．
メトロポリス法によるマルコフ連鎖モンテカルロ法

1. x[0] を初期化する．例えば一様分布からサンプリングする．
2. スピンを反転するサイト i を選ぶ．
3. 反転に必要なエネルギー ∆E(x[s]|u) を計算する．
∆E(x[s]|u) = −2

∑
j∈∂i

46

Jij xi [s]xj [s] − 2hi xi [s](296)4. エネルギーが下がるときはスピン反転を受け入れる．そうでない場合は一様乱数 r が以下の不等式を満たすときに反転を受け入れる．
()
2∆E(x[s]|u)r ≤ exp −(297)
T
5. 終了基準を迎えるまで、ステップ 2-4 を繰り返す．

十分な時間 tw の緩和を待った後、平衡状態に到達していると考えられるため、得られた確率分布関数からサンプリングを行うことで、以下のように期待値を計算する．

hf (x)iu ≈

T +t
1 ∑w
f (x[s])T s=t +1

(298)w

tw が十分におおきく、T も多く取ることにより期待値の計算は非常に高精度で行うことができる．そのため精度を要求すると、マルコフ連鎖モンテカルロ法は、平衡分布への緩和に時間がかかるため計算量が膨大なものとなる．
コントラスティヴ・ダイヴァージェンス法

そのようなマルコフ連鎖モンテカルロ法の弱点を克服するために、提案されたものがコントラスティヴ。ダイヴァージェンス法（Contrastive divergence、以下 CD 法と略記する）である．CD 法では、マルコフ連鎖モンテカルロ法における初期条件を「得られたデータ」の経験分布から始める [23]．

メトロポリス法によるコントラスティヴ・ダイヴァージェンス法



1. s = 0 とする．x[0] = x(d) と初期化する．以下マルコフ連鎖モンテカルロ法と同様．
2. スピンを反転するサイト i を選ぶ．
3. 反転に必要なエネルギー ∆E(x[s]|u) を計算する．
∆E(x[s]|u) = −2∑

Jij xi [s]xj [s] − 2hi xi [s]

(299)

j∈∂i

4. エネルギーが下がるときはスピン反転を受け入れる．そうでない場合は一様乱数 r が以下の不等式を満たすときに反転を受け入れる．

()
2∆E(x[s]|u)r ≤ exp −T(300)

5. 終了基準を迎えるまで、ステップ 2-4 を繰り返す．

その心は、データの経験分布はあるパラメータの平衡分布から生成されていると考えていることにある．
データの経験分布に最も近いパラメータに対して、今我々が計算している最中の u[t] が近いときには、データの経験分布は平衡状態に近いため、緩和は非常に速いと考えられる．そのため緩和時間も待たずに数ス
テップ、k ステップのみの更新だけで得られた状態 x(d) [k] を D 個得ることにより、

1 ∑f (x(d) [k])DD

hf (x)iu ≈

(301)

d=1

として期待値を計算する．この結果、対数尤度関数の勾配として、以下のような表式に相当するものが得られたことになる．

1 ∑
∂L(u)
≈
∂u
D
D

d=1

{

∂E(x = x(d) [k]) ∂E(x = x(d) [0])
−
∂u
∂u
47

}
(302)

この表式はあとで述べる最小確率流法による解釈に利用される．
最小確率流法（Minimum Probability Flow）

尤度関数の代わりに新しいコスト関数を導入して、パラメータ推定を行う最近の手法を紹介しよう．最小確率流法（Minimum Probability Flow、以下 MPF とする）は疑似最尤法よりも収束性に優れた手法として知られる [24]．この方法は、連続時間マスター方程式に基づく確率分布の時間発展に注目した方法である．そのため統計力学の観点からの研究が待たれる非常に興味深い手法である．まずマスター方程式を以下のように書き下す．

dPt (y) ∑=Wu (y|x)Pt (x).
dt
x

(303)

CD 法と同様に、初期条件は与えられたデータによる経験分布とする．
1 ∑δ(x − x(d) )DDP0 (x) =

(304)

d=1

そこから指定したパラメータ u により決まるボルツマン分布への緩和を考えてみよう．このとき仮のパラメータが与えられたデータに適合するものであれば、初期分布は定常分布に非常に近いものと考えられる．
そのためマスター方程式による分布の変化は非常に小さいものとなるだろう．この考察に基づいて初期分布から微小時間経過したときの KL 情報量を最小化する方法が最小確率流法である．
まずはマスター方程式の遷移行列をボルツマン機械学習で導入した確率分布を定常分布としてもつように設計する．つまり釣り合い条件を満たすようにする．さらに扱いが容易になるように詳細釣り合いを課
した 1 スピンフリップによる遷移行列として、以下の遷移行列を採用する．
{}
1
Wu (x̄|x) = exp − (E(x̄|u) − Ej (x|u)) .
2

(305)

x̄ は先ほどと同様に x から 1 スピンだけフリップした状態を示す．最小確率流法の処方箋に従い、以下のように初期分布と微小時間後の分布との KL 情報量を考えてみる．
DKL (P0 |Pt ) ≈ DKL (P0 (x)|P0 (x)) + dt

d
DKL (P0 (x)|Pt (x))|t=0 .
dt

(306)

マスター方程式を思い出して計算をすることで以下の量を得る．

DKL (P0 (x)|Pt (x)) ≈{D)}
dt ∑ ∑1(exp −E(y|u) − E(x(d) |u)
.
D
2
(d)

(307)

d=1 y∈∂x[問:確認せよ．]
ここで和の添字 y ∈ ∂x(d) は x(d) から 1 スピンフリップで移れる状態のみで和を取ることを意味する．先ほどの議論に基づいて、この量が小さいときほど、初期分布は定常分布に近いものと考えられる．定常分布
はパラメータによって決まるため、この量が最小となるようなパラメータを計算することで推定値を得る．
これが最小確率流法である．注意したいのはこの方法は CD 法のように実際にマルコフ連鎖モンテカルロ
法を用いてマスター方程式による分布の変化を追う必要はない．あくまで式（307）を与えられたデータに基づき計算して最小化をすればよい．そのため最尤法のように勾配法に基づく解法を行うことができる．対数尤度関数の代わりに以下のコスト関数を定義する．

{
D
)}
1(
1 ∑ ∑
(d)
E(y|u) − E(x |u).
exp −LMPF (u) ≡ −
D
2
(d)

(308)

d=1 y∈∂x

このコスト関数をパラメータ u について微分をとると、

)
{
(
D
)}
1 ∑ ∑
1(
∂LMPF (u)∂E(y|u) ∂E(x(d) |u)
(d)
=
−
exp −
E(y|u) − E(x |u)
∂u
2D
∂u
∂u
2
(d)
d=1 y∈∂x

48

(309)

を得る．これは以下の量を定義することで CD 法との類似性を見ることができる．
()
P (x|u)K(y, x) = log.
P (y|u)(310)

CD 法では、マルコフ連鎖モンテカルロ法をデータの経験分布から始めることにより、数ステップの後得られた分布により平均を取った．理念的には以下の経路確率に対する期待値を計算することにある．
∂K(y, x)
∂u


=
CD−k

D
k−1
(
)
∏
1 ∑ ∑
f (x[k], x[0])Wu (x[t + 1]|x[t])δ x[0] − x(d)
D
t=0

(311)

d=1 {x[t]}これを評価するのは難しいのでマルコフ連鎖モンテカルロ法を用いていると解釈できる．一方で、最小確率流法ではその経路確率を真面目に利用して期待値を計算している点が大きく異なる．

∂K(y, x)
∂u



(
)
1 ∑∑
f (y, x)Wu (y|x)δ x − x(d)
D
y,x
D

=
MPF

(312)

d=1

またマルコフ連鎖モンテカルロ法では、データの経験分布による勾配と、熱期待値による勾配とを別々に評価している．

∂K(y, x)
∂u



(
)
1 ∑∑
f (y, x)P (y|u)δ x − x(d)
D
y,x
D

=
MCMC

(313)

d=1

3 者の似ているようで異なる点に注目することで、よりよい学習アルゴリズムの提案や理解につなげてもらいたい．
さてそれでは実際にイジング模型の場合について、コスト関数（308）の最小化してみよう．1 スピンフ(d)

リップであるという条件を考えると、どこかひとつの i において、yi = −xi となるので、


∑
(d)
(d)
Jij xj E(y|u) − E(x(d) |u) = 2xi hi +

(314)

j∈∂i

であることが分かる．一旦固定した i を後で動かして和を取れば同等のものが得られる．

 

D N


∑
1 ∑∑
(d)
(d)
.
LMPF (u) =Jij xj  xi
exp − hi +D
d=1 i=1

(315)

j∈∂i

このことから各勾配は、∂LMPF (u)∂Jij=

∂LMPF (u)
∂hi

=


 



∑
(d)
(d)
(d) (d)xi xj exp − hi +Jij xj  xi


D
d=1
j∈∂i
 


D


∑
1 ∑ (d)(d)(d)
xi exp − hi +Jij xj  xi


D
D
1 ∑

d=1

(316)

(317)

j∈∂i

となることがわかる．この勾配にもとづき、パラメータを更新することで効率のよい学習が達成できる．

5.4

スパースな相関推定

それではボルツマン機械学習を使って何ができるか．多くの利用例があり得るうち、スパースな相関推定について紹介しよう．多くの要素からなるデータが得られたときに、どの要素とどの要素が強く関係しているのだろうか？それを調べたいときにボルツマン機械学習が有効となる．そのときに相互作用係数 Jij はありとあらゆる組み合わせの間において考慮する必要がある．しかし一方で、本当に重要な関係性だけを抜き出したいという場合、L1 ノルムによる変数選択の効果を利用したボルツマン機械学習が有効である [25]．

49そこで尤度関数の最大化を行うときに、L1 ノルム項を追加する．




∑
min −L(u) + λkJij k1
u 


(318)

i<j

ここで符号を変えて最小化をすることにしよう．また Jij = Jji という対称性を仮定する．尤度関数の代わりに疑似尤度関数を用いてもよいし、最小確率流法を用いて、




∑
min LMPF (u) + λkJij k1
u 


(319)

i<j

としてもよい．λ > 0 は大きくすればするほど、得られる推定解のスパース性を促す．そのため非常に数少ない本質的なものだけを抽出したいというのであれば λ は大きくすることが望まれる．
ここで圧縮センシングの経験が活かされる．L1 ノルムを含む最適化問題を扱わなければならない．尤度関数はやや複雑な格好をしているが、メジャライザー最小化による方法で割と簡単に最適化することができる．ここで g(u) = −L(u) または g(u) = LMPF (u) であり、f (u) = kuk1 と考えればよい．メジャライ
ザー最小化により、

{
}
L
T
2
u[t + 1] = arg minu f (u) + (∇g(u)) (u − u[t]) + ku − u[t]k2
2

(320)

つまり必要なのは対数尤度関数の勾配であり、これまでに散々評価してきたものであり、またリプシッツ定数が必要である．圧縮センシングにおける LASSO 型の最小化問題のときには、リプシッツ定数を予め評価することができたが、ボルツマン機械学習の場合には予めの評価が可能であることは期待できそうにない．
そのようにリプシッツ定数が非自明な場合には、以下のようにメジャライザーの性質 g(u) ≤ qL (u, u[t − 1])に注目して適応的に変更することでメジャライザーを構成することができる．
リプシッツ定数が非自明な場合の対処法



1. 初期化する．適当な大きさのリプシッツ定数 L[0] を用意する．係数 α > 1 を用意する．
2. 仮のリプシッツ定数 L[t] で暫定的にメジャライザー最小解 u[t] を求める．
u[t] = arg min {f (u) + qL (u, u[t − 1])}
u

(321)

3. 利用したリプシッツ定数によるメジャライザーが g(u[t]) を上回ることを確認する．
g(u[t]) ≤ qL (u[t], u[t − 1])(322)もし成立していなかったら、非負の整数値 i を増やして L[t] = αi L[t − 1] として更新してステッ
プ 2 に戻る．

この方法を利用すれば LASSO 型の最適化問題以外にも FISTA は柔軟に利用することができる．試しにN = 25 個のノード間の N (N − 1)/2 = 300 個の相互作用のうち 9 割程度が零成分をもち、残りは平均 0、
分散 1 のガウス分布に従う非零成分を持つ Jij 、同様に平均 0、分散 1 ガウス分布に従う磁場（バイアス）

hi を持つイジング模型のボルツマン分布から人工データとして、5000 個のデータを用意して、疑似最尤法
及び最小確率流法を L1 ノルム項つきで実行することで得た結果を載せる（図 17）．どちらの方法を採用するにせよ、うまくスパースな相関を推定することに成功している．最小確率流法のほうが、収束までにかかる反復計算の回数が少なかったことをコメントしておく．

50

5

0.7

0.8
10

0.5

0.6

0.4

15
0.4

20

0.2

25
5

10

15

20

25

0

0.8

5

0.7

0.6
10

15

0.9

0.8

1
5

10

0.6
0.5

15

0.4

0.3
20

0.3

0.2 20

0.2

0.1

0.1

25

25
5

10

15

20

25

5

10

15

20

25

図 17: スパース相関推定．人工データを生成した相互作用係数（左）．疑似最尤法と L1 ノルムによる推定結果（中）．最小確率流法と L1 ノルムによる推定結果（右）．

参考文献[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.
[13] J. Huang, S. Zhang, abd D. Metaxas: Lecture Note in Computer Science 6361 (2010) 135.
[14] H. J. Kappen and F. B. Rodrguez: 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.

51

[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.

52