2017年9月7日木曜日

Markov Chains and Monte Carlo Methods 07日目

Ioana A. Cosma and Ludger Evers, Markov Chains and Monte Carlo Methods
http://users.aims.ac.za/~ioana/notes.pdf
CC-by-nc-sa 2.5
http://creativecommons.org/licenses/by-nc-sa/2.5/za/legalcode

3.3 Importance sampling

rejection samplingでは,target のかわりにinstrument からサンプリングし,に合致しなそうなサンプルを棄却することでからのサンプリングを行った. importance samplingではからのサンプルを重み付けしてからのサンプリングを実現する. impotrance samplingの最も重要な基礎は

がなる全てのに成立することである. これはまた,任意の可測関数に,

と一般化出来る.
があって,が存在するとき

が大数の強法則から言える. だから

つまりは

で近似できる.
だが,の総和は必ずしもではないので,self-normalized版

を正当化でき,以下のアルゴリズムが導かれる.

Algorithm 3.2 (Impotrance sampling)

なるを選んで,
1. に
(i) を生成する
(ii) とする
2.

あるいは

を返す.

Theorem 3.3 (Bias and Variance of Importance Sampling)

(a)
(b)
(c)
(d)

proof.

(a)
(b)
(c, d) 略

この定理から,は不偏だが分散が大きく,は不偏でないが分散がより小さいことがわかる. さらに,とすると

だから,がわからなくともは計算できる.
はsupportの条件を満たせば良いが,普通の分散を有限にするように選ぶ.これは以下の2つの条件のどちらかが成立すればよい.
- ・・・・ はrejection samplingにも使える
- がコンパクトで,が上有界

さらにが最良である,すなわちが最小になるようなの選び方を考える.

Theorem 3.4 (Optimal proposal) 証明略

を最小にするは

で与えられる.

Corollary

importance samplingはsuper-efficientである. すなわちTh. 3.4 によるを使うと,はから直接サンプリングしたときの分散よりも小さくなる.

のnormalisaton constantを知らなければならず,またからのサンプリングが難しいことも有るので,に近い別のをinstrumental として使うことが有る.

Example 3.5 (Computing )

は自由度3のt分布(とする)に従うとして,をMonte Carlo methodで計算する. 以下の3つの方法が考えられる.
- X_1,…,X_nをから直接サンプリングし, で推測する
- (Cauchy分布に同値)をinstrumentalにしてimportance samplingする.
- をinstrumental にしてimportance samplingする.このとき

2つのinstrumentalとtargetのグラフはfig. 3.4の通り.

enter image description here

2017年9月6日水曜日

Markov Chains and Monte Carlo Methods 06日目

Ioana A. Cosma and Ludger Evers, Markov Chains and Monte Carlo Methods
http://users.aims.ac.za/~ioana/notes.pdf
CC-by-nc-sa 2.5
http://creativecommons.org/licenses/by-nc-sa/2.5/za/legalcode

assignment 1

Q and A

2.

答案.

(a) 数学的帰納法を使う.で確かに成立.
m=mで成立を仮定し,での成立を示すのはを使えばたやすい.
(b) stationary distributionをとすると,が成り立つから,
を解く.
その解は. の要素は全て非負で和が1になることを考えれば,求めるdistibutionは.
(c) detailed-balanceを満たしていることを見れば良い.
だから,たしかに成立.

3.

(a, b)
それぞれ(recurrent, period=2), (transient, aperiodic), (transient, aperiodic), (transient, aperiodic)

4.

(a) 任意のについて,を満たすようなが有ることを示せば良い. 定義よりから示せた.
((1): からに遷移する確率, (2): からに遷移する確率)
(b) (i)recurrence

が一つのcommunicating classだから,がrecurrentであることを示せば十分である.
であって,
だからすなわちrecurrent. 以上より示せた.

(ii) aperiodicity

から,.GCDは1であり,aperiodic. これが全てのに成立する.

(c) transition matrixは

である. stationaryなを計算する.
を解けばよい.




であって,ゆえに.
だから,.以上より.
stationary が示せた.

6.

(a)
(1): から他のstateに遷移する確率
(2): 回,からに遷移する確率
(b) を示す.


よって示せた.

8.

def Wright_Fisher(a, b):
    path = [a]
    tn = a + b #2N
    xt = a
    for i in range(1000):
        xt = np.random.binomial(tn, xt/tn)
        path.append(xt)

    return path

MIT OCW, Machine Learning 11日目 宿題3

Rohit Singh, Tommi Jaakkola, and Ali Mohammad. 6.867 Machine Learning. Fall 2006. Massachusetts Institute of Technology: MIT OpenCourseWare, https://ocw.mit.edu. License: Creative Commons BY-NC-SA.

assigmnemt 3
Q and A

1.

答案.

(b)
(c)
(1)の不等号を示せなければならなのだが,模範解答でも定性的に言及されただけだからもう明らかでいいと思う
(d)
がtraining errorを0にするというのは,任意のでが成り立つということ. を生成するとを生成するは独立で,だから,がtraining errorを0にする確率は. (1): 各サンプルの生成の独立性
も同様で,足し合わせると求める確率が得られる.
(e)
においてのtraining error とする.
のを考える()
だから,training setから番目を引いてもから選ばれるestimatorは変わらず.のまま. したがってが任意ので成立.
よって
これはのtraining errorがの時も同じ. よって示せた.

模範解答.

(a)
r.v. が同じdistributionをもつとき,であるのを利用する.これは

からわかる.
がそれぞれr.v.の集合であっても成立する. とする.ただしでtrainし,を識別子, は個のtraining dataでを識別する. は同じdistributionを持つから,与えられた四季が成立する.
(f)
training error をとすると,classifierは回間違える. ある次元においてtraining errorが以下である時,すなわち間違いがせいぜいであるとする.間違いの回数をとおくと,間違いの起こる場合の数は通りで,まさにそこで間違いが起こる確率は. よってtraining errorが未満である確率は

errorが以上である確率はで,次元全てがそうである確率は.これが以下であれば少なくとも1つの次元でerrorが未満となる. よって
を解くと,

2.

答案.

(a)

(d) marginal likelihoodが減少し始めるとき

模範解答.

(b) 与えられた式は間違いに対して確率0を割り当ててしまう.

とする.

Markov Chains and Monte Carlo Methods Computer Practical 1. Markov chains

Ioana A. Cosma and Ludger Evers, Markov Chains and Monte Carlo Methods
http://users.aims.ac.za/~ioana/notes.pdf
CC-by-nc-sa 2.5
http://creativecommons.org/licenses/by-nc-sa/2.5/za/legalcode
Q and A

task1

def m_trans(K, m):
    # A, Bがnp.array型のときA * BやA**nはアダマール積として扱われるので,
    # np.matrix型に変換する.
    K = np.matrix(K)
    return K**m

m_trans(np.array([[0.9, 0.1], [0.3, 0.7]]), 3)

->

matrix([[ 0.804,  0.196],
        [ 0.588,  0.412]])

task2

def dist_t(K, t, lambda_0):
    return np.transpose(lambda_0).dot(m_trans(K, t))

# phone lineの例で,stationary distributionを試すと
dist_t(np.array([[0.9, 0.1], [0.3, 0.7]]), 100, np.array([0.75, 0.25]))

->

matrix([[ 0.75,  0.25]])

task3

def stationary(K):
    K = np.matrix(K)
    dim = len(K)
    b = np.zeros(dim+1)
    b[dim] = 1

    up = np.transpose(K - np.matrix(np.identity(dim)))
    mu = np.linalg.lstsq(np.array(np.concatenate((up, [np.ones(dim)]))), b)
    print(mu[0])


stationary(K)

->

[ 0.75  0.25]

task4

t = np.linspace(0, 25)
a = np.random.uniform()
init = np.array([a, 1-a])
def pow_generator(K): # Kのべき乗を生成するジェネレータ
    K = np.matrix(K)
    tmp = np.identity(len(K))
    while True:
        tmp = K.dot(tmp)
        yield tmp

gen = pow_generator(K)
process = [np.array(init.dot(next(gen)))[0] for t in range(25)]

plt.plot(process, marker=".")
plt.ylim([0, 1])
plt.show()

->
enter image description here

task5

def sample_path(K, init, tau):
    states = list(range(len(init))) # ここではstateは0から番号を付ける
    x0 = np.random.choice(states, p=init)
    path = [x0]
    tmp = x0

    for i in range(tau):
        suc = np.random.choice(states, p=K[tmp])
        tmp = suc
        path.append(suc)

    return path

plt.plot(sample_path(K, [0.5, 0.5], 100))
plt.show()

->
enter image description here

task6

path = sample_path(K, [0.5,0.5],20000)
avg = []
for i in range(1, 100):
    avg.append(np.average(path[: 200 * i]))
plt.plot(avg)
plt.show()

->
enter image description here

Markov Chains and Monte Carlo Methods 05日目

Ioana A. Cosma and Ludger Evers, Markov Chains and Monte Carlo Methods
http://users.aims.ac.za/~ioana/notes.pdf
CC-by-nc-sa 2.5
http://creativecommons.org/licenses/by-nc-sa/2.5/za/legalcode

Chapter 3. Fundamental Concepts: Transformation, Rejectino, and Reweighting

3.1 Transformation methods

の現れを生成する(サンプリングする)方法はすでに見た. CDF をもつ分布からサンプリングする方法を考える. transformation methodはそのようなアルゴリズムのひとつのクラスであって,transformation methodの最も単純なアルゴリズムがInversion Methodで,generalized inverse(一般化逆関数) を用いる.

Theorem 3.1 (Inversion Method)

として,はあるCDFとする. のCDFはまたである.

proof.

だから,に

Example 3.1 (Exponential distribution)

パラメータのexponential distribution()のCDFはであって,. inversion methodから,これでからの現れを写像すればからのサンプリングを行える.

Inversion Methodはinverse CDFが効率的に計算できる分布に対してのみ効率が良いアルゴリズムである. 例えば正規分布はCDFもその逆関数も解析的に書けない. しかし,generalised inverseでない変換によって欲しい分布を実現する方法も有る.

Example 3.2 (Box-Muller Method for Sampling from Gaussian)

,IIDとする. この2つの実数の組を平面上の点と考えるとその極座標について,は独立で,である.

が成立するから,を使って

で$X_1, X_2の現れが得られる.

transformation methodは,目的とする分布以外の,扱いやすい分布からサンプリングを行い,そのサンプルたちを目的とする分布のサンプルとなるように変換する技術である. 多くの場合,そのような変換をclosed formで得ることはできず,そのような場合,目的とする分布に似ているが実は異なる分布からサンプリングを行い,不合理なサンプルを棄却することで目的とする分布のサンプリングを行う方法が有る. これをrejection samplingといい,次節であつかう.

3.2 Rejection Sampling

rejection samplingは,instrumental distributionからサンプリングし,目的の分布の点ではなさそうなサンプルを棄却する. 目的分布のPDF は既知とする. rejection samplingの根底には,

がある. を,における一様分布の,による周辺分布と考えるのである. fig. 3.2はその概略図である.
enter image description here

Example 3.3 (Sampling from a Beta distribution)

は

ただし,はGamma関数である. のPDFはをmodeとする単峰なグラフを持つ(fig. 3.2).
fig.3.2の影の部分からサンプルを取るには, ex.2.1と2.2でみたのと同じ技術を使う. つまり,明るいグレーの四角形に一様にサンプルの候補を置き,影になっている部分のみをサンプルとして保存するのである.
形式的には,から独立にサンプリングし,となるようなの組のみをサンプルとする.

は,の組が,という条件のもとでサンプルになる条件付き確率である.

ex.3.3の例では,BetaのPDFが短径に覆われることを利用したが,PDFが性の値を取るrange(support, 台という)が非有界な分布にはそのまま適用できない. しかしそのようなを,より簡単なによってとして抑えることでrejection samplingを実現できる.をproposal distribution(提案分布)という.

Algorithm 3.1 (Rejection sampling)

任意のにが成り立つようなとを与えられたとき,からのsampleを以下のようにして得る.
1. を得る.
2. を,確率

で受理して,受理しないときには1にもどる

proof.

を,棄却を考えずにから得たの集合とする.

さらに, をが取りうる値全ての集合とするとで,
を代入すれば

よってこのアルゴリズムで生成された値たちの密度は(が一様なら).

Remark 3.2

について,しかわかっていないときには

によってrejection samplingを行える.

Example 3.4 (Rejection sampling from the using a Cauchy proposal)

とCauchy distributionのPDFはそれぞれ

であって,とすれば,が言える. (fig.3.3)
一方で,をproposal distributionとしてCauchy distributionをrejection samplingすることはできない. なるが存在しないためである.

2017年9月5日火曜日

Markov Chains and Monte Carlo Methods 04日目

Ioana A. Cosma and Ludger Evers, Markov Chains and Monte Carlo Methods
http://users.aims.ac.za/~ioana/notes.pdf
CC-by-nc-sa 2.5
http://creativecommons.org/licenses/by-nc-sa/2.5/za/legalcode

2.1 What are Monte Carlo Methods?

  • Stochastic integration
    積分をシミュレーションで近似する
  • Monte Carlo tests
    p値をシミュレーションで近似する
  • Markov Chain Monte Carlo(MCMC)
    興味有る分布に収束するMarkov chainを構成する

2.2 Introductory examples

Example 2.1 (A raindrop experiment for computing )

をMonte Carloによって推測する. ある雨粒が落ちる位置の確率変数を,軸,軸とする. ある正方形に一様に雨粒が落ちると仮定して,その中の単位円にも一様に雨粒が落ちる. がiidでuniformally distribution ,に従うとする.

これはと同じ.
個のraindropに対して,単位円に落ちる個数のr.v.をとするとはbinomialである.つまり

を最尤法での推定値は. よって.
law of large numbersによって,がほとんど必ずに収束する. 中心極限定理によって,例えばとしてとすれば,で近似できる. よってであって,の95%信頼区間は

さらにの95%信頼区間は.
以上やってきたことは
- をある期待値として表現した
- 代数的な表現を,それのsample approximationに書き換えた. そのsample approximationが収束することを大数の法則で保証し,CLTによって収束の測度を議論した.

Example 2.2 (Monte Carlo Integration)


をMonte Carlo integrationすることを考える.だから,上ののグラフはに収まる. またraindrop experimentを考える. だから

分子はのグラフの面積で,分母はの面積である. 個の雨粒を落としてに落ちる確率がなとき,信頼区間は

だから,収束の早さは. 一方Riemann積分の速度は.
Monte Carloの場合の収束の早さは次元に依存しない一方で,他の決定論的な積分評価の場合は次元の増加とともに収束が遅くなっていくので,高次元な関数の積分でMonte Carloは威力を発揮する.

Example 2.3 (Buffon’s needle)

3本の間隔の平行な直線で平面が区切られていて,長さの針を落とすとき,その針が直線と交わる確率はどれほどだろうか?

解答 (Buffon, 1777)

針が直線との角度で着地したとき,針が直線と交わる針の一端と直線の距離が以下(fig. 2.5(a)). したがって

さらには上一様分布していると仮定すると

Lazzarini,1901はの場合に,1808本の針を使ってを算出した. これは非常に良い近似である. 力学的にMonte Carlo法を行うのは非常に時間がかかるが,電子計算機の到来によってこの欠点は克服された. しかし,例からわかるように,それぞれの実験での確率変数の現れがたしかにもとの分布から生成されていなければならないので,乱数の生成が重要になってくる.

2.4 Pseudo-random numbers

ここではの現れを生成するpseudo-random number generator(RNG)を考える. これには以下の性質が必要である.
- RNGの生成する値は独立である
- RNGの生成する値はにまんべんなく分布する

以下にlinear congruential generator(線形合同法)の概要を述べる. linear congruential generatorは上で述べた性質をあまり満たしていないので実践すべきではない.

Algorithm 2.1 (Conguruential pseudo-RNG)

  1. を選ぶ
  2. に
    とする.

これは明らかに決定論的なアルゴリズムで,それぞれのパラメータを一致させれば完全に一致する出力をおこなう. また, 生成される値は,を次元空間の点と考えることで,次元立方体のテント見ることが出来る. これらの点は有限の-しばしばごく小さい数の-超平面に乗っていて,したがってまんべんなく分布していると見ることができない(fig. 2.6, fig. 2.7).
enter image description here
よりよいpseudo-RNGには,例えばMarsaglia and Zaman(1991)やMatsumoto and Nishimura(1998)がある.

2017年9月3日日曜日

Markov Chains and Monte Carlo Methods 03日目

Ioana A. Cosma and Ludger Evers, Markov Chains and Monte Carlo Methods
http://users.aims.ac.za/~ioana/notes.pdf
CC-by-nc-sa 2.5
http://creativecommons.org/licenses/by-nc-sa/2.5/za/legalcode

1.4 Ergodic theorems

Makrov chainを観測して,そのstationary distributionを推測する方法とその条件を考える. IIDな確率変数の列では大数の法則が観測した値の平均によって期待値を推測することが正当化される一方,Markov chainではErgodic theorems (エルゴード性に関する諸定理)によって似たような主張が出来る. これらはMarkov Chain Monte Carlo(MCMC) を正当化する根拠でも有る.

Theorem 1.30 (Ergodic Theorem) 証明略

は-irreducibleかつrecurrentな上の Markov chainで,stationary distribution をもつとする. このときがあって,確率1で

がほとんどすべての初期値に成立する. また,がHarris-recurrentであればこれは任意の初期値で成立する.

左辺はの時間的な平均であり,右辺はの空間的な期待値と考えることが出来る.
ex. 1.17はrecurrenceやirreducible性がth. 1.30の仮定に必要であることの例である.

Example 1.17

でtransition matrix をもつdiscrete Markov chainを考える.
任意のがstationary distributionであり,さらにこのchainはirreducibleでもrecurrentでもない. ならば任意のに

が成立する. 一方sample pathはただ(1, 1, 1,…)か(2, 2, 2,…)しかありえず,どちらを一つだけ得たとしてもやについての推測はできない. このchainはをexploreできないためであり,様々な推測をするには複数のsample pathが必要となる.