確率的生成モデル
伊達 章
宮崎大学 工学部 情報システム工学科
2020
年6
月30
日観測データ(時系列)
-2 -1 0 1 2 3 4
0 50 100 150 200
t
y
seed: 20070919 σ=0.7
もとの信号は
0
か1
.復元したい!観測データ(時系列)
-2 -1 0 1 2 3 4
0 50 100 150 200
t
y
seed: 20070919 σ=0.7
もとの信号は
0
か1
.復元したい!観測データ(時系列)
-2 -1 0 1 2 3 4
0 50 100 150 200
t x
true, y
seed: 20070919 σ=0.7
もとの信号は
0
か1
.復元したい!観測データ(時系列)
-2 -1 0 1 2 3 4
0 50 100 150 200
t
y
seed: 20070919 σ=0.2
こちらのほうが復元しやすい
観測データ(時系列)
-2 -1 0 1 2 3 4
0 50 100 150 200
t x
true, y
seed: 20070919 σ=0.2
こちらのほうが復元しやすい
もとの信号
x true
-2 -1 0 1 2 3 4
0 50 100 150 200
t x
trueseed: 20070919 σ=0.7
マルコフ的情報源
マルコフ的情報源
0.99
0.97 0.01
0.03
0 1
000000001111111111000000000
マルコフ的情報源
0.99
0.97 0.01
0.03
0 1
000000001111111111000000000
観測データ(時系列)
-2 -1 0 1 2 3 4
0 50 100 150 200
t
y
seed: 20070919 σ=0.7
多段決定問題
多変数関数
f (x)
の最大化J = f (x 1 , x 2 , · · · , x n ) → max
n = 10, x
i∈ { 0, 1 }
の場合x J
0 0000000000 f(x
0) 1 0000000001 f(x
1) 2 0000000010 f(x
2)
.. .
k 0011101011 f(x
k) ←
最大.. .
1023 1111111111 f(x
2n−1) max
if (x
i) = f(x
k), argmax
i
f(x
i) = k
多段決定問題
多変数関数
f (x)
の最大化J = f (x 1 , x 2 , · · · , x n ) → max
n = 10, x
i∈ { 0, 1 }
の場合x J
0 0000000000 f(x
0) 1 0000000001 f(x
1) 2 0000000010 f(x
2)
.. .
k 0011101011 f(x
k) ←
最大.. .
1023 1111111111 f(x
2n−1) max
i
f (x
i) = f(x
k), argmax
i
f (x
i) = k
多段決定問題
多変数関数
f (x)
の最大化J = f (x 1 , x 2 , · · · , x n ) → max
n = 100, x
i∈ { 0, 1 }
の場合.2
100= (2
10)
10≈ (10
3)
10= 10
30x J
0 0000000000 f (x
0) 1 0000000001 f (x
1) 2 0000000010 f (x
2) 3 0000000011 f (x
3)
.. .
k 0011101011 f (x
k) ←
最大.. .
≈ 10
30111 · · · 111 f(x
2n−1)
課題
•
例題:n = 200, y = (y 1 , · · · , y n )
•
目的:x ∗ = argmax
x
f (x), x i ∈ { 0, 1 }
の計算•
まもとには計算できない.•
動的計画法を使い,この問題を解決する.•
仕組み理解し,コードを書き,問題を解く.事後確率最大にする値
x MAP
-2 -1 0 1 2 3 4
0 50 100 150 200
t x
true, y x
MAPseed: 20070919 P (xMAP| y ) = 0.03118
P (xtrue| y ) = 0.00213 σ=0.7
多段決定問題
多変数関数の最大化
J = p(x | y) → max
n = 200, x
i∈ { 0, 1 }
の場合.2
200= (2
10)
20≈ (10
3)
20= 10
60x J
0 0000000000 f (x
0) 1 0000000001 f (x
1) 2 0000000010 f (x
2) 3 0000000011 f (x
3)
.. .
k 0011101011 f (x
k) ←
最大.. .
≈ 10
60111 · · · 111 f(x
2n−1)
基本知識(確率・統計の復習)
•
平均µ
,分散σ 2
,標準偏差σ
•
確率分布: 一様分布,正規分布•
擬似乱数の生成•
最尤推定•
同時確率,条件付き確率•
マルコフ的情報源•
ベイズの公式,事前確率・事後確率•
事後確率最大化•
動的計画法確率,条件付き確率
B
1 (風邪)B
2 (風邪なし)p(A
i) A
1 (熱あり)0.55 0.05 0.60 A
2 (熱なし)0.10 0.30 0.40
p(B
j) 0.65 0.35
例
同時確率
p(A
1, B
1) = 0.55
周辺確率p(A
1) = ∑
i
p(A
1, B
i) = p(A
1) = 0.6
条件付き確率
熱の有無を知る ⇒ 風邪であるかどうか検討がつく:
p(B
1| A
1) = p(B
1)p(A
1| B
1)
p(A
1) = p(A
1, B
1)
p(A
1) = 0.55
0.6 ≈ 0.92
ベイズの公式
•
ベイズの公式熱があったとしよう. その時,風邪のあるなしの確率
p(B
1| A
1) = p(B
1)p(A
1| B
1)
p(A
1) = p(A
1, B
1)
p(A
1) = 0.55
0.6 ≈ 0.92 p(B
2| A
1) = p(B
2)p(A
1| B
2)
p(A
1) = p(A
1, B
2)
p(A
1) = 0.05
0.6 ≈ 0.08
•
事後確率最大化(ベイズ推定)argmax
i
p(B
i| A
1) = 1
風邪であることの方が確率が大 ⇒ 風邪であると推定 入力(観測値): 熱のあるなし
⇒ 出力(推定値) 風邪かどうか
マルコフ的情報源
0.99
0.97 0.01
0.03
0 1
000000001111111111000000000
p(x) = 0.5 × 0.99 × 0.99 × 0.99 × 0.99 · · ·
p(x) = p(x 1 ) × p(x 2 | x 1 ) × p(x 3 | x 2 ) × p(x 4 | x 3 ) · · ·
マルコフ的情報源
0.99
0.97 0.01
0.03
0 1
000000001111111111000000000
p(x) = 0.5 × 0.99 × 0.99 × 0.99 × 0.99 · · ·
p(x) = p(x 1 ) × p(x 2 | x 1 ) × p(x 3 | x 2 ) × p(x 4 | x 3 ) · · ·
事後確率最大にする値
x MAP
-2 -1 0 1 2 3 4
0 50 100 150 200
t x
true, y x
MAPseed: 20070919 P (xMAP| y ) = 0.03118
P (xtrue| y ) = 0.00213 σ=0.7
使って良い知識
データ(観測値):
y = (y
1, · · · , y
n)
モデル:p(x), p(y | x)
p(x
1) =
{ 0.5 if x
1= 0 0.5 if x
1= 1
p(x
i+1| x
i) =
0.99 if x
i= 0, x
i+1= 0 0.01 if x
i= 0, x
i+1= 1 0.97 if x
i= 1, x
i+1= 1 0.03 if x
i= 1, x
i+1= 0
p(y
i| x
i) = 1
√ 2πσ exp {
− (y
i− x
i)
22σ
2}
以降,この課題では,特に指定しない限り
σ = 0.7
.事後確率最大化
x ∗ = argmax
x
p(x | y)
p(x | y)
は知らない.p(x), p(y | x)
は与えられている.p(x | y) = p(x, y)
p(y)
(ベイズの公式)= p(x)p(y | x) p(y)
y
は観測値 ⇒p(y) > 0
は定数x ∗ = argmax
x
p(x)p(y | x)
事後確率最大化
x ∗ = argmax
x
p(x | y)
p(x | y)
は知らない.p(x), p(y | x)
は与えられている.p(x | y) = p(x, y)
p(y)
(ベイズの公式)= p(x)p(y | x) p(y)
y
は観測値 ⇒p(y) > 0
は定数x ∗ = argmax
x
p(x)p(y | x)
事後確率
p(x | y )
の最大化x
1x
2x
3x
n-1x
ny
1y
2y
3y
n-1y
nx
∗= argmax
x1,x2,···,xn
p(x
1, x
2, · · · , x
n, y
1, y
2, · · · , y
n)
x
∗= argmax
x1,x2,···,xn
p(x
1)
∏
n i=2p(x
i| x
i−1)
∏
n i=1p(y
i| x
i)
事後確率最大にする値
x MAP
-2 -1 0 1 2 3 4
0 50 100 150 200
t x
true, y x
MAPseed: 20070919 P (xMAP| y ) = 0.03118
P (xtrue| y ) = 0.00213 σ=0.7
事後確率
p(x | y )
の最大化x
1x
2x
3x
n-1x
ny
1y
2y
3y
n-1y
nx
∗= argmax
x1,x2,···,xn
p(x
1, x
2, · · · , x
n, y
1, y
2, · · · , y
n)
x
∗= argmax
x1,x2,···,xn
p(x
1)
∏
n i=2p(x
i| x
i−1)
∏
n i=1p(y
i| x
i)
演習問題
(プリント)
本日の課題
2020年6月30日 最適化理論
学籍番号:671 0 0
名前: 得点:
小テスト 【マルコフ的情報源,ベイズの公式,事後確率最大化】
データy= (y1, y2, y3)が変数x= (x1, x2, x3)をもとに生成されている.yを観測し,最ももっともらし いxを推定する問題を考えよう.ここでx,yの要素は0,1の値をとり,確率分布p(x), p(y|x)が具体的に 以下のとおり与えられている. ※以下,答だけでなく導出過程を記述せよ.以下には手計算が難しい問題が含まれている.
その場合は,計算できるところは計算し,計算できないところは,【(○通りの和)】などと記述せよ.
p(x1) = Prob(X1=x1)= (1
2if x1= 0 1 2if x1= 1
p(xi+1|xi)=
9 10if xi= 0, xi+1= 0 1 10if xi= 0, xi+1= 1 7 10if xi= 1, xi+1= 1 3 10if xi= 1, xi+1= 0 p(yi|xi)=
(4 5if xi=yi 1 5if xi̸=yi
X3 X1 X2
Y3 Y1 Y2 確率変数の依存性を描いたグラフ
1.x= (0,0,0)とする.確率p(x)を求めよ. p(x) = 2.x= (0,1,0)とする.確率p(x)を求めよ. p(x) = 3.x= (0,0,0),y= (0,1,0)であった. 同時確率p(x,y)を求めよ.
p(x,y) =
4.x= (0,1,0),y= (0,1,0)であった. 同時確率p(x,y)を求めよ.
p(x,y) =
5.y= (0,1,0)であった.x0= (0,0,0)の場合の事後確率p(x0|y)を求めよ.
p(x0|y) =
6.y= (0,1,0)であった.x2= (0,1,0)の場合の事後確率p(x2|y)を求めよ.
p(x2|y) = 7.f(x) =−(x−1)2+ 3とする
(a) maxxf(x) =f(x∗) = (b)x∗= argmax
x f(x) =
8.事後確率p(x|y)をp(x), p(y|x)を用い表現せよ.必要であればP
˜
xp( ˜x)などの記号を用いよ.
p(x|y) =
9.y= (0,1,0)であった.事後確率を最大にするxを求めよ(それをx∗=xMAPと書く).
xMAP= argmax
x p(x|y) =
•
プリント(小テスト)1 ダウンロード
2 印刷
3 手で解く(手書き)
4 スキャン(撮影)
5
6
WebClass
で提出(締切:6/30火
18:00)
•
使用できそうなツール•
スマートフォン検索:「数学者でもわかるスマホスキャナの使い方」
•
セブン-
イレブンhttps://www.sej.co.jp/services/multicopy.html
事後確率
p(x | y )
の最大化x
i, y
i= 0, 1
の場合を考える.X
3X
1X
2Y
3Y
1Y
2使って良い知識
データ(観測値):
y = (y
1, y
2, y
3)
X
3X
1X
2Y
3Y
1Y
2モデル:
p(x), p(y | x) p(x
1) =
{
12
if x
1= 0
1
2
if x
1= 1
p(x
i+1| x
i) =
9
10
if x
i= 0, x
i+1= 0
1
10
if x
i= 0, x
i+1= 1
7
10
if x
i= 1, x
i+1= 1
3
10
if x
i= 1, x
i+1= 0 p(y
i| x
i) =
{
45
if x
i= y
i 15
if x
i̸ = y
ix
∗= argmax
x1,x2,x3
p(x
1, x
2, x
3, y
1, y
2, y
3)
= argmax
x1,x2,x3
p(x
1)p(x
2| x
1)p(x
3| x
2)p(y
1| x
1)p(y
2| x
2)p(y
3| x
3)
同時確率,事後確率
p(x1) = { 1
2 if x1= 0 1
2 if x1= 1
p(xi+1|xi) =
9
10 if xi= 0, xi+1= 0 1
10 if xi= 0, xi+1= 1 7
10 if xi= 1, xi+1= 1 3
10 if xi= 1, xi+1= 0 p(yi|xi) =
{ 4
5 if xi=yi 1
5 if xi̸=yi x∗ = argmax
x1,x2,x3
p(x1)p(x2|x1)p(x3|x2)p(y1|x1)p(y2|x2)p(y3|x3) X3
X1 X2
Y3
Y1 Y2
3. x = (0, 0, 0), y = (0, 1, 0)
であった. 同時確率p(x, y)
を求めよ.p(x, y) =
20081 451545=
8150151545=
8125151525=
16255=
3125162≈ 0.0518 5. y = (0, 1, 0)
であった.x0= (0, 0, 0)
の場合の事後確率p(x
0| y)
を求めよ.
p(x
0| y) = p(x
0, y)
p(y) = p(x
0, y)
∑
x
p(x, y) = p(x
0, y)
∑
x1
∑
x2
∑
x3
p(x
1, x
2, x
3, y)
= p(x
0, y)
p(000010) + p(001010) + p(011010) + p(100010) + · · ·
= 162
3125 /(2
3= 8
通りの和)同時確率,事後確率
p(x1) = { 1
2 if x1= 0 1
2 if x1= 1
p(xi+1|xi) =
9
10 if xi= 0, xi+1= 0 1
10 if xi= 0, xi+1= 1 7
10 if xi= 1, xi+1= 1 3
10 if xi= 1, xi+1= 0 p(yi|xi) =
{ 4
5 if xi=yi 1
5 if xi̸=yi x∗ = argmax
x1,x2,x3
p(x1)p(x2|x1)p(x3|x2)p(y1|x1)p(y2|x2)p(y3|x3) X3
X1 X2
Y3
Y1 Y2
3. x = (0, 0, 0), y = (0, 1, 0)
であった. 同時確率p(x, y)
を求めよ.p(x, y) =
20081 451545=
8150151545=
8125151525=
16255=
3125162≈ 0.0518
5. y = (0, 1, 0)
であった.x0= (0, 0, 0)
の場合の事後確率p(x
0| y)
を求めよ.p(x
0| y) = p(x
0, y)
p(y) = p(x
0, y)
∑
x
p(x, y) = p(x
0, y)
∑
x1
∑
x2
∑
x3
p(x
1, x
2, x
3, y)
= p(x
0, y)
p(000010) + p(001010) + p(011010) + p(100010) + · · ·
= 162
3125 /(2
3= 8
通りの和)同時確率,事後確率
p(x1) = { 1
2 if x1= 0 1
2 if x1= 1
p(xi+1|xi) =
9
10 if xi= 0, xi+1= 0 1
10 if xi= 0, xi+1= 1 7
10 if xi= 1, xi+1= 1 3
10 if xi= 1, xi+1= 0 p(yi|xi) =
{ 4
5 if xi=yi 1
5 if xi̸=yi x∗ = argmax
x1,x2,x3
p(x1)p(x2|x1)p(x3|x2)p(y1|x1)p(y2|x2)p(y3|x3) X3
X1 X2
Y3
Y1 Y2
3. x = (0, 0, 0), y = (0, 1, 0)
であった. 同時確率p(x, y)
を求めよ.p(x, y) =
20081 451545=
8150151545=
8125151525=
16255=
3125162≈ 0.0518 5. y = (0, 1, 0)
であった.x0= (0, 0, 0)
の場合の事後確率p(x
0| y)
を求めよ.
p(x
0| y) = p(x
0, y)
p(y) = p(x
0, y)
∑
x
p(x, y) = p(x
0, y)
∑
x1
∑
x2
∑
x3
p(x
1, x
2, x
3, y)
= p(x
0, y)
p(000010) + p(001010) + p(011010) + p(100010) + · · ·
= 162
3125 /(2
3= 8
通りの和)同時確率,事後確率
p(x1) = { 1
2 if x1= 0 1
2 if x1= 1
p(xi+1|xi) =
9
10 if xi= 0, xi+1= 0 1
10 if xi= 0, xi+1= 1 7
10 if xi= 1, xi+1= 1 3
10 if xi= 1, xi+1= 0 p(yi|xi) =
{ 4
5 if xi=yi 1
5 if xi̸=yi x∗ = argmax
x1,x2,x3
p(x1)p(x2|x1)p(x3|x2)p(y1|x1)p(y2|x2)p(y3|x3) X3
X1 X2
Y3
Y1 Y2
3. x = (0, 0, 0), y = (0, 1, 0)
であった. 同時確率p(x, y)
を求めよ.p(x, y) =
20081 451545=
8150151545=
8125151525=
16255=
3125162≈ 0.0518 5. y = (0, 1, 0)
であった.x0= (0, 0, 0)
の場合の事後確率p(x
0| y)
を求めよ.
p(x
0| y) = p(x
0, y)
p(y) = p(x
0, y)
∑
x
p(x, y) = p(x
0, y)
∑
x1
∑
x2
∑
x3
p(x
1, x
2, x
3, y)
= p(x
0, y)
p(000010) + p(001010) + p(011010) + p(100010) + · · ·
= 162
3125 /(2
3= 8
通りの和)演習問題おわり
事後確率最大化
x3
x1 x2 xn-1 xn
y3
y1 y2 yn-1 yn
x
∗= argmax
x
p(x)p(y | x)
= argmax
x
p(x
1)
∏
n i=2p(x
i| x
i−1)
∏
n i=1p(y
i| x
i)
= argmax
x
log p(x
1) +
∑
n i=2log p(x
i| x
i−1) +
∑
n i=1log p(y
i| x
i)
事後確率最大化
x3
x1 x2 xn-1 xn
y3
y1 y2 yn-1 yn
J = log p(x
1) +
∑
n i=2log p(x
i| x
i−1) +
∑
n i=1log p(y
i| x
i)
= log p(x
1) + log p(y
1| x
1) +
n−1
∑
i=1
{
log p(x
i+1| x
i) + log p(y
i+1| x
i+1) }
y
iは定数= f
1(x
1) + h
1(x
1, x
2) + h
2(x
2, x
3) + · · · + h
n−1(x
n−1, x
n)
• f
1(x
1) = log p(x
1) + log p(y
1| x
1)
• h
i(x
i, x
i+1) = log p(x
i+1| x
i) + log p(y
i+1| x
i+1)
事後確率最大化
x3
x1 x2 xn-1 xn
y3
y1 y2 yn-1 yn
J = log p(x
1) +
∑
n i=2log p(x
i| x
i−1) +
∑
n i=1log p(y
i| x
i)
= log p(x
1) + log p(y
1| x
1) +
n−1
∑
i=1
{
log p(x
i+1| x
i) + log p(y
i+1| x
i+1) }
y
iは定数= f
1(x
1) + h
1(x
1, x
2) + h
2(x
2, x
3) + · · · + h
n−1(x
n−1, x
n)
• f
1(x
1) = log p(x
1) + log p(y
1| x
1)
• h
i(x
i, x
i+1) = log p(x
i+1| x
i) + log p(y
i+1| x
i+1)
基本知識(確率・統計の復習)
•
平均µ
,分散σ 2
,標準偏差σ
•
確率分布: 一様分布,正規分布•
擬似乱数の生成•
最尤推定•
同時確率,条件付き確率•
マルコフ的情報源•
ベイズの公式,事前確率・事後確率•
事後確率最大化•
動的計画法動的計画法
x3
x1 x2 xn-1 xn
y3
y1 y2 yn-1 yn
J = log p(x
1) + log p(y
1| x
1) +
n−1
∑
i=1
{
log p(x
i+1| x
i) + log p(y
i+1| x
i+1) }
= f
1(x
1) + h
1(x
1, x
2) + h
2(x
2, x
3) + · · · + h
n−1(x
n−1, x
n)
• x
1 に着目 ⇒f
1(x
1), h
1(x
1, x
2)
にしか関係しない• f
1(x
1) + h
1(x
1, x
2)
を最大にするようx
1 を選ぶ•
↑x
2の値がわかっていないければ選べない•
そこで,x2の可能なすべての値(0,1)に対して,以下を計算
• f
2(x
2) = max
x1
{ f
1(x
1) + h
1(x
1, x
2) } ˆ
x
1(x
2) = argmax
x1
{ f
1(x
1) + h
1(x
1, x
2) }
J = f
2(x
2) + h
2(x
2, x
3) + · · · + h
n−1(x
n−1, x
n)
動的計画法
x3
x1 x2 xn-1 xn
y3
y1 y2 yn-1 yn
J = log p(x
1) + log p(y
1| x
1) +
n−1
∑
i=1
{
log p(x
i+1| x
i) + log p(y
i+1| x
i+1) }
= f
1(x
1) + h
1(x
1, x
2) + h
2(x
2, x
3) + · · · + h
n−1(x
n−1, x
n)
• x
1 に着目 ⇒f
1(x
1), h
1(x
1, x
2)
にしか関係しない• f
1(x
1) + h
1(x
1, x
2)
を最大にするようx
1 を選ぶ•
↑x
2の値がわかっていないければ選べない•
そこで,x2の可能なすべての値(0,1)に対して,以下を計算
• f
2(x
2) = max
x1
{ f
1(x
1) + h
1(x
1, x
2) } ˆ
x
1(x
2) = argmax
x1
{ f
1(x
1) + h
1(x
1, x
2) }
J = f
2(x
2) + h
2(x
2, x
3) + · · · + h
n−1(x
n−1, x
n)
動的計画法
x3
x1 x2 xn-1 xn
y3
y1 y2 yn-1 yn
J = log p(x
1) + log p(y
1| x
1) +
n−1
∑
i=1
{
log p(x
i+1| x
i) + log p(y
i+1| x
i+1) }
= f
1(x
1) + h
1(x
1, x
2) + h
2(x
2, x
3) + · · · + h
n−1(x
n−1, x
n)
• x
1 に着目 ⇒f
1(x
1), h
1(x
1, x
2)
にしか関係しない• f
1(x
1) + h
1(x
1, x
2)
を最大にするようx
1 を選ぶ•
↑x
2の値がわかっていないければ選べない•
そこで,x2の可能なすべての値(0,1)に対して,以下を計算
• f
2(x
2) = max
x1
{ f
1(x
1) + h
1(x
1, x
2) } ˆ
x
1(x
2) = argmax
x1
{ f
1(x
1) + h
1(x
1, x
2) }
J = f
2(x
2) + h
2(x
2, x
3) + · · · + h
n−1(x
n−1, x
n)
動的計画法
x3
x1 x2 xn-1 xn
y3
y1 y2 yn-1 yn
J = log p(x
1) + log p(y
1| x
1) +
n−1
∑
i=1
{
log p(x
i+1| x
i) + log p(y
i+1| x
i+1) }
= f
1(x
1) + h
1(x
1, x
2) + h
2(x
2, x
3) + · · · + h
n−1(x
n−1, x
n)
• x
1 に着目 ⇒f
1(x
1), h
1(x
1, x
2)
にしか関係しない• f
1(x
1) + h
1(x
1, x
2)
を最大にするようx
1 を選ぶ•
↑x
2の値がわかっていないければ選べない•
そこで,x2の可能なすべての値(0,1)に対して,以下を計算
• f
2(x
2) = max
x1
{ f
1(x
1) + h
1(x
1, x
2) } ˆ
x
1(x
2) = argmax
x1
{ f
1(x
1) + h
1(x
1, x
2) }
J = f
2(x
2) + h
2(x
2, x
3) + · · · + h
n−1(x
n−1, x
n)
動的計画法
x3
x1 x2 xn-1 xn
y3
y1 y2 yn-1 yn
J = f
2(x
2) + h
2(x
2, x
3) + · · · + h
n−1(x
n−1, x
n)
•
変数の数が1
つ減った.これを続けていけばよい.• x
2 に着目 ⇒f
2(x
2), h
2(x
2, x
3)
にしか関係しない• f
2(x
2) + h
2(x
2, x
3)
を最大にするようx
2 を選ぶ•
↑x
3の値がわかっていないければ選べない•
そこで,x3の可能なすべての値(0,1)に対して,以下を計算
• f
3(x
3) = max
x2
{ f
2(x
2) + h
2(x
2, x
3) } ˆ
x
2(x
3) = argmax
x2
{ f
2(x
2) + h
2(x
2, x
3) }
動的計画法
x3
x1 x2 xn-1 xn
y3
y1 y2 yn-1 yn
J = f
n−1(x
n−1) + h
n−1(x
n−1, x
n)
• x
nの可能なすべての値(0,1)に対して,以下を計算
• f
n(x
n) = max
xn−1
{ f
n−1(x
n−1) + h
n−1(x
n−1, x
n) } ˆ
x
n−1(x
n) = argmax
xn−1
{ f
n−1(x
n−1) + h
n−1(x
n−1, x
n) }
• x
∗n= argmax
xn
f
n(x
n)
動的計画法
x3
x1 x2 xn-1 xn
y3
y1 y2 yn-1 yn
• x
∗n= argmax
xn
f
n(x
n)
• x
∗n−1= ˆ x
n−1(x
∗n)
• x
∗n−2= ˆ x
n−2(x
∗n−1)
• · · · → x
∗1= ˆ x
1(x
∗2)
動的計画法
x3
x1 x2 xn-1 xn
y3
y1 y2 yn-1 yn
• x
∗n= argmax
xn