SlideShare a Scribd company logo
1 of 41
Download to read offline
確率的グラフィカルモデル
と
離散構造処理
NTTコミュニケーション科学基礎研究所
石畠 正和
石畠 正和(いしはた まさかず)
• 経歴
– 2001-2006 石川高専
– 2006-2013 東工大(学部・修士・博士)
– 2013-2016 NTTコミュニケーション科学基礎研究所 研究員
– 2016-2018 北海道大学 特任助教(出向)
– 2018-現在 NTTコミュニケーション科学基礎研究所 研究主任
• 研究テーマ
– 人工知能・機械学習
– 論理と確率・離散構造処理
2019/7/19 全脳アーキテクチャ勉強会
2
@m_ishihata
NTTコミュニケーション科学基礎研究所 (CS研)
NTTコミュニケーションズとは別会社です
• 位置付け
– NTT研究所(= NTT持株会社)の1研究所
– NTT研究所 先端総合研究所 CS研 石畠
• 場所
– 京阪奈(関西版筑波)
– 厚木
• 研究内容
– 人工知能・機械学習・自然言語処理・音声処理
– 人間情報学・スポーツ脳科学
2019/7/19 全脳アーキテクチャ勉強会
3
まとめ
• Bayesian Network (BN) は有向グラフで同時分布を表現
– BN は確率推論・学習は一般的には難しい
– 変数の独立性を適切に仮定することでモデルの複雑さと表現力を調整
• 変数の独立性は論理関数で記述できる ← ここを伝えたい!
– 条件付き確率だけではなく、もっと細かな独立性も扱える
– 論理関数をコンパクトに表現できれば効率的な確率推論・学習が可能
• BDDを用いることでBNの計算を効率的に行える ← ここはささっと!
– 変数の依存性を表す論理関数をBDDでコンパクトに表現
– BDD上の動的計画法で確率計算・学習が可能
2019/7/19 全脳アーキテクチャ勉強会
4
論理と確率
• 論理 : 正確な 関係を記述 ! ⇒ #
– デフォルトは独立、依存性を仮定する
– 論理変数 !, # はデフォルトでは独立
– ! ∨ #, ! ∧ #, ! ⇒ # などで依存性を記述
• 確率 : 柔軟な 関係を記述 '(# ∣ !)
– デフォルトは依存、独立性を仮定する
– 確率変数 !, # はデフォルトでは依存
– '(!, #) = '(!)'(#) などで独立性を記述
2019/7/19 全脳アーキテクチャ勉強会
5
論理と確率
• 論理 : 正確な 関係を記述 ! ⇒ #
– デフォルトは独立、依存性を仮定する
– 論理変数 !, # はデフォルトでは独立
– ! ∨ #, ! ∧ #, ! ⇒ # などで依存性を記述
• 確率 : 柔軟な 関係を記述 '(# ∣ !)
– デフォルトは依存、独立性を仮定する
– 確率変数 !, # はデフォルトでは依存
– '(!, #) = '(!)'(#) などで独立性を記述
2019/7/19 全脳アーキテクチャ勉強会
6
論理に確率を導入
- Probabilistic Logic Programming
- Statistical Relational Learning
※ 今日はこの話はしません
論理と確率
• 論理 : 正確な 関係を記述 ! ⇒ #
– デフォルトは独立、依存性を仮定する
– 論理変数 !, # はデフォルトでは独立
– ! ∨ #, ! ∧ #, ! ⇒ # などで依存性を記述
• 確率 : 柔軟な 関係を記述 '(# ∣ !)
– デフォルトは依存、独立性を仮定する
– 確率変数 !, # はデフォルトでは依存
– '(!, #) = '(!)'(#) などで独立性を記述
2019/7/19 全脳アーキテクチャ勉強会
7
論理に確率を導入
- Probabilistic Logic Programming
- Statistical Relational Learning
※ 今日はこの話はしません
確率に論理を導入
- Tractable Probabilistic Modeling
- Bayesian Network w/ Structures
※ 今日はこの話をします!
確率モデリング
• 確率モデリングとは
– 興味のある対象を 確率モデル として表現すること
• 確率モデル = 確率分布
– 同時確率分布 !(#, %)
– 条件付き確率分布 !(% ∣ #)
• 用途
– 予測・分類・診断
– 期待値・リスクの定量化
– 現象の理解
2019/7/19 全脳アーキテクチャ勉強会
8
有名な確率モデル
• Naïve Bayes Classifier (NBC)
– 識別・クラスタリング
• Hidden Markov Model (HMM)
– 系列データ解析
• Latent Dirichlet Allocation (LDA)
– トピック分析
Y
X1 X2 XN
Z1
X1 X2 XN
Z2 ZN
...
...
...
Zdi Xdiθd
φkβα
2019/7/19 全脳アーキテクチャ勉強会
9
確率的グラフィカルモデル
• グラフ構造で記述される確率モデル
– 有向グラフ:Bayesian Network
– 無向グラフ:Markov Random Field
– 条件付き独立性 をグラフで表現
• 利点
– グラフに基づく理論・アルゴリズムが利用可能
– 見ただけでなんとなく雰囲気がわかる
2019/7/19 全脳アーキテクチャ勉強会
10
Y
X1 X2 XN
Z1
X1 X2 XN
Z2 ZN
...
...
...
Zdi Xdiθd
φkβα
Bayesian Network (BN)
Bayesian network - Wikipedia, the free encyclopedia
http://en.wikipedia.org/wiki/Bayesian_network
2019/7/19 全脳アーキテクチャ勉強会
11
Bayesian Network (BN)
• BN = DAG + CPT
– 複数の確率変数の 同時分布 を記述
• Directed Acyclic Graph (DAG): Model
– 有向非循環グラフ
– 確率変数間の 条件付き独立性 を記述
• Conditional Probability Table (CPT): Parameter
– 条件付き確率表
– 各確率変数の 条件付き確率分布 を記述
2019/7/19 全脳アーキテクチャ勉強会
12
Bayesian Network (BN)
• BN = DAG + CPT
– 複数の確率変数の 同時分布 を記述
• Directed Acyclic Graph (DAG): Model
– 有向非循環グラフ
– 確率変数間の 条件付き独立性 を記述
• Conditional Probability Table (CPT): Parameter
– 条件付き確率表
– 各確率変数の 条件付き確率分布 を記述
2019/7/19 全脳アーキテクチャ勉強会
13
!"
!# !$
!# ⊥ !$ ∣ !"
' !", !#, !$ = ' !" ' !# !" '(!$ ∣ !")
!" '(!#|!")
0 0.0
1 0.3
!" ' !$ !"
0 0.9
1 1.0
- ' !"
- 0.4
' !" = 1, !# = 1, !$ = 1
= ' !" = 1 ' !# = 1 !" = 1 ' !$ = 1 !" = 1
= 0.4×0.3×1.0
Bayesian Network (BN)
1. 周辺確率計算 (EI: Exact Inference)
– Input: DAG, CPT
– Output: 特定の確率変数の周辺確率
2. パラメータ学習 (PL: Parameter Learning)
– Input: 観測, DAG
– Output: 観測を得る確率(尤度)を最大化する CPT
3. 構造学習 (SL: Structure Learning)
– Input: 観測
– Output: あるモデル選択基準を最大化する DAG (+ CPT)
2019/7/19 全脳アーキテクチャ勉強会
14
ID !" !# !$
1 0 1 0
… … … …
N 1 1 0
!"
!# !$
!" %(!#|!")
0 0.0
1 0.3
!" % !$ !"
0 0.9
1 1.0
- % !"
- 0.4
Bayesian Network (BN)
1. 周辺確率計算 (EI: Exact Inference)
– Input: DAG, CPT
– Output: 特定の確率変数の周辺確率
2. パラメータ学習 (PL: Parameter Learning)
– Input: 観測, DAG
– Output: 観測を得る確率(尤度)を最大化する CPT
3. 構造学習 (SL: Structure Learning)
– Input: 観測
– Output: あるモデル選択基準を最大化する DAG (+ CPT)
2019/7/19 全脳アーキテクチャ勉強会
15
確率モデルを設計する
• モデルの設計
– モデルの 複雑さ と 表現力 のトレードオフを コントロール
• モデルの複雑さ = 計算量
– 何も仮定しない → 指数的な計算量 L
– 独立性を仮定する → 効率的に計算可能 J
• モデルの表現力 = 精度
– 何も仮定しない → あらゆる分布を表現可能 J
– 独立性を仮定する → 特定の分布しか表現できない L
2019/7/19 全脳アーキテクチャ勉強会
16
!"
!#
!$
!%
!"
!#
!$
!%
2 + 2$ + 2# + 2% = 30 2 + 3×2$ = 14
Bayesian Network のどこが辛い?
2019/7/19 全脳アーキテクチャ勉強会
17
• DAGの候補が指数的に大きくなる
= モデル数が指数的に多くなる
– N頂点のDAGの数 !"
– !" = ∑%&'
"
−1 %*' "
% 2%("*%)!"*%
• CPTサイズが指数的に大きくなる
= パラメータ数が指数的に多くなる
– Y の CPTサイズ = 2|/0|
– Π2 = {4 ∈ 6 ∣ 4, 9 ∈ :} : Yの親集合
4'
4<
4= 4' 4=
4' 4=
4<
4' 4=
4<
4' 4=
4<
4' 4=
2!= = 3
6
612
!< = 25
!@ = 543
1
1
Bayesian Network のどこが辛い?
2019/7/19 全脳アーキテクチャ勉強会
18
!"!#
$
!%• DAGの候補が指数的に大きくなる
= モデル数が指数的に多くなる
– N頂点のDAGの数 &'
– &' = ∑*+#
'
−1 *.# '
* 2*('.*)&'.*
• CPTサイズが指数的に大きくなる
= パラメータ数が指数的に多くなる
– Y の CPTサイズ = 2|34|
– Π6 = {!8 ∣ !8, $ ∈ <} : Yの親集合
….!# !" !> !? @($|!)
0 0 0 0 p1
0 0 0 1 p2
0 0 1 0 p3
0 0 1 1 p4
0 1 0 0 p5
0 1 0 1 p6
0 1 1 0 p7
0 1 1 1 p8
1 0 0 0 p9
1 0 0 1 p10
1 0 1 0 p11
1 0 1 1 p12
1 1 0 0 p13
1 1 0 1 p14
1 1 1 0 p15
1 1 1 1 p16
Local Structures in CPTs
• CPT 内に構造 (= 独立性) を仮定する
0. Conditional Independence (CI)
1. Context Specific Independence (CSI)
2. Partial Exchangeability (PE)
3. Generalized CSI (GCSI)
• 構造を利用することで効率的な推論を実現
– パラメータ数を減らす (= Parameter Tying)
– データ構造を利用した効率的な推論
2019/7/19 全脳アーキテクチャ勉強会
19
Local Structures in CPTs
• アイディア
– 本当に指数個のパラメータは必要ですか?
– 同じ確率になる場合もがあるのでは?
• Parameter Tying
– 異なるパラメータを同一とみなす
– パラメータの異なり数を減らす
– 特別な独立性を導入することで表現可能
2019/7/19 全脳アーキテクチャ勉強会
20
!" !# !$ %('|!)
0 0 0 p1
0 0 1 p2
0 1 0 p3
0 1 1 p4
1 0 0 p5
1 0 1 p6
1 1 0 p7
1 1 1 p8
!#!"
'
!$
Local Structures in CPTs
0. Conditional Independence
2019/7/19 全脳アーキテクチャ勉強会
21
!" !# !$ %('|!)
0 0 0 p1
0 0 1 p1
0 1 0 p2
0 1 1 p2
1 0 0 p3
1 0 1 p3
1 1 0 p4
1 1 1 p4
!" !# !$ %('|!)
0 0 * p1
0 1 * p2
1 0 * p3
1 1 * p4
!$ ⊥ ' ∣ !", !#
* = don t care
Local Structures in CPTs
1. Context-Specific Independence (CSI)
2019/7/19 全脳アーキテクチャ勉強会
22
!" ⊥ $ ∣ !& = 0, !*
!& !* !" +($|!)
0 0 0 p1
0 0 1 p1
0 1 0 p2
0 1 1 p2
1 0 0 p3
1 0 1 p4
1 1 0 p5
1 1 1 p6
!& !* !" +($|!)
0 0 * p1
0 1 * p2
1 0 0 p3
1 0 1 p4
1 1 0 p5
1 1 1 p6
Local Structures in CPTs
2. Partial Exchangeability (PE)
2019/7/19 全脳アーキテクチャ勉強会
23
! " # = ! " ∑& #&
#' #( #) !("|#)
0 0 0 p0
0 0 1 p1
0 1 0 p1
0 1 1 p2
1 0 0 p1
1 0 1 p2
1 1 0 p2
1 1 1 p3
#' + #( + #) !("|#)
0 p0
1 p1
2 p2
3 p3
Local Structures in CPTs
3. Generalized Context-Specific Independence (GCSI)
2019/7/19 全脳アーキテクチャ勉強会
24
!" !# !$ %('|!)
0 0 0 p2
0 0 1 p2
0 1 0 p2
0 1 1 p1
1 0 0 p3
1 0 1 p3
1 1 0 p3
1 1 1 p1
*(!) %('|!)
1 p1
2 p2
3 p3
% ' ! = % ' * !
* ! = 1 ⇔ !# ∧ !$
* ! = 2 ⇔ ¬ !# ∧ !$ ∧ ¬!"
* ! = 3 ⇔ ¬ !# ∧ !$ ∧ !"
BN with local structures
• DAG ! = ($, &)
– $ = $(, … , $*
– & ⊂ $×$
– Π. = $./ ∈ $ $./, $. ∈ &
• CPT 1 = {1.34}
– 6. Π. = $. のCPTの Structure 関数
– 1.34 ≡ ;($. = < ∣ 6. Π. = >)
2019/7/19 全脳アーキテクチャ勉強会
25
$(
$? $@
6.(Π.) ;($. = <|Π.)
> 1.34
Local Structure = Logic Structure
• CPTの Structure 関数は論理関数で記述できる
• CPTをコンパクトに表現する
論理関数をコンパクトに表現する
• 論理関数をコンパクトに表現する方法とは?
2019/7/19 全脳アーキテクチャ勉強会
26
Local Structure = Logic Structure
• CPTの Structure 関数は論理関数で記述できる
• CPTをコンパクトに表現する
論理関数をコンパクトに表現する
• 論理関数をコンパクトに表現する方法とは?
2019/7/19 全脳アーキテクチャ勉強会
27
離散構造処理技術
離散構造処理技術
• 組合せ 離散構造
– 集合、グラフ、論理などの離散的な構造を持つもの
– 組合せ爆発が起きやすく、一般的に扱うのが難しい対象
• 離散構造処理技術
– 離散構造を効率的に扱うための技術
– 対象の離散構造(の集合)を別のインデックス構造に変換
– インデックス構造上で様々な演算を効率的に実行
2019/7/19 全脳アーキテクチャ勉強会
28
Binary Decision Diagram (BDD)
2019/7/19 全脳アーキテクチャ勉強会
29
!" !# !$ %
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 1
Truth Table
!"
!#
!$
0 0
!$
0 0
!$
0 1
!$
1 1
!#
Binary Decision Tree (BDT)
!"
0
!$
1
!#
BDD
論理関数を表現するDAG構造
Binary Decision Diagram (BDD)
2019/7/19 全脳アーキテクチャ勉強会
30
!" !" !" !" !" !"
同じ子を持つノードを共有 冗長なノードを削除
BDTに以下の簡約化規則を適用
Binary Decision Diagram (BDD)
• BDD同士の演算が可能
– 論理関数 !, # のBDDから ! ∧ # のBDDを構築
• BDDがあれば様々なクエリを効率的に実行可能
– %∗ ∈ argmax-:/ - 012(%) : 線形関数最大化(最小化)
• 2 % = ∑7 87%7
– 9 ! = ∑-:/ - 01 9(%) : 充足確率(周辺確率)
• 9 % = ∏7:-;01 <7 ∏7:-;0= 1 − <7
– % ∼ 9 % ! : 充足解サンプリング
• 9 % ! = ! % 9 % /9(!)
2019/7/19 全脳アーキテクチャ勉強会
31
! # ! ∧ #=
!
BDD上の動的計画法
Compiling Bayesian Networks
• DAG + CPT を合わせて別の構造に Compile
• 変換後の構造上の DP で確率計算
→ (Generalized) Context Specific Independence を効率的に扱える
BDD
[Ishihata+ 11]
ZDD
[Minato+ 07]
[Gao+ 17]
d-DNNF
[Chavira+ 05, 07]
2019/7/19 全脳アーキテクチャ勉強会
32
命題化確率計算
• 確率的依存関係を論理的依存関係で表現
– 互いに依存する確率変数の同時分布を互いに独立な確率的命題
変数の同時分布と論理関数で表現
• 独立な変数として扱うので確率計算が容易
• 論理関数をBDDで表現することで効率的に確率計算可能
2019/7/19 全脳アーキテクチャ勉強会
33
BN with local structures (再掲)
• DAG ! = ($, &)
– $ = $(, … , $*
– & ⊂ $×$
– Π. = $./ ∈ $ $./, $. ∈ &
• CPT 1 = {1.34}
– 6. Π. = $. のCPTの Structure 関数(= Π.の論理関数)
– 1.34 ≡ ;($. = < ∣ 6. Π. = >)
2019/7/19 全脳アーキテクチャ勉強会
34
$(
$? $@
6.(Π.) ;($. = <|Π.)
> 1.34
命題化確率計算
• 確率的命題変数 ! = {!$%&}
– !$%& ⇔ “*$ = + ∣ -$ Π$ = /”
– 1 !$%& = 2$%&
– 1 ! = ∏$%& 1 !$%&
• 観測関数 *$& ⇔ “*$ = +”
• 構造関数 -$% ⇔ “-$ Π$ = /”
– *$& ⇔ ⋁% -$% ∧ !$%&
– -$% ⇔ (*$&の論理関数として書かれた -$ Π$ = /)
2019/7/19 全脳アーキテクチャ勉強会
35
*8
*9 *:
-$(Π$) 1(*$ = +|Π$)
/ 2$%&
1. 各!"#を表すBDDを構成
2. 評価したい事象を表すBDDを構成
3. BDD上の動的計画法により確率を計算
命題化確率計算 by BDD
2019/7/19 全脳アーキテクチャ勉強会
36
!$$ !%$ !&$ !$$ ∧ !%$ ∧ !&$
命題化確率計算 by BDD(例)
• 命題化
– !"# = %""#
– !&# = ⋁((!"(∧ %&(#) = ⋁((%""( ∧ %&(#)
– !,# = ⋁((!"(∧ %,(#) = ⋁((%""( ∧ %,(#)
• 確率計算
- !" = 1, !& = 1, !, = 1
= - !"" ∧ !"& ∧ !",
= - %""" ∧ %&"" ∧ %,""
= - %""" - %&"" - %,""
= 0"""0&""0,""
= 0.4×0.3×1.0
2019/7/19 全脳アーキテクチャ勉強会
37
!" -(!&|!")
0 0.0
1 0.3
!" - !, !"
0 0.9
1 1.0
- - !"
- 0.4
!"
!& !,
!"" !&" !," !"" ∧ !&" ∧ !,"
命題化確率計算 by BDD の利点
• CPTの Structure を自然に扱うことができる
– Structure が論理式で記述できるならOK
• 複雑な事象の確率計算も自然にできる
– 事象が論理式で記述できるならOK
• 確率モデルの設計がしやすい
– 論理式を書き換えてもアルゴリズム不変
– 論理式は人間には解釈しやすい
• パラメータ学習も効率的に実行できる
– BDDを用いて期待値計算が行えるので(詳細略)
2019/7/19 全脳アーキテクチャ勉強会
38
!" #(!%|!")
0 0.0
1 0.3
!" # !( !"
0 0.9
1 1.0
- # !"
- 0.4
!"
!% !(
!"" !%" !(" !"" ∧ !%" ∧ !("
命題化確率計算 by BDD の欠点
• 対象BDDが巨大になる場合がある
– もともとの問題がNP困難なので仕方ない
• 対象BDDが構成中に巨大になる場合がある
– 最終的なBDDが小さくても途中計算が大きくなることはある
– 対象BDDを直接構成する工夫が必要
– フロンティア法:対象BDDを直接構成するテクニック(略)
2019/7/19 全脳アーキテクチャ勉強会
39
まとめ
• Bayesian Network (BN) は有向グラフで同時分布を表現
– BN は確率推論・学習は一般的には難しい
– 変数の独立性を適切に仮定することでモデルの複雑さと表現力を調整
• 変数の独立性は論理関数で記述できる
– 条件付き確率だけではなく、もっと細かな独立性も扱える
– 論理関数をコンパクトに表現できれば効率的な確率推論・学習が可能
• BDDを用いることでBNの計算を効率的に行える
– 変数の依存性を表す論理関数をBDDでコンパクトに表現
– BDD上の動的計画法で確率計算・学習が可能
2019/7/19 全脳アーキテクチャ勉強会
40
BDDの応用例(石畠の場合)
• 論理と確率の文脈
– BNの確率計算・学習 [AMBN 10,17]
– Probabilistic Logic Programing [ILP 08,11]
• 機械学習・人工知能の文脈
– 薬物代謝経路の推定 [IJCAI 09]
– ネットワーク上のユーザの影響力の厳密計算 [WWW 17]
– 制約付きオンライン最適化 [AISTATS 18]
– ネットワークの信頼性の厳密計算 [COCOA 18]
– 観測データに構造的な相関があるかの検定 [IJCAI 19]
2019/7/19 全脳アーキテクチャ勉強会
41

More Related Content

Similar to 確率的グラフィカルモデルと離散構造

kagamicomput201714
kagamicomput201714kagamicomput201714
kagamicomput201714swkagami
 
動的計画法の並列化
動的計画法の並列化動的計画法の並列化
動的計画法の並列化Proktmr
 
RでGISハンズオンセッション
RでGISハンズオンセッションRでGISハンズオンセッション
RでGISハンズオンセッションarctic_tern265
 
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章YOSHIKAWA Ryota
 
レコードリンケージに基づく科研費分野-WoS分野マッピングの導出
レコードリンケージに基づく科研費分野-WoS分野マッピングの導出レコードリンケージに基づく科研費分野-WoS分野マッピングの導出
レコードリンケージに基づく科研費分野-WoS分野マッピングの導出National Institute of Informatics
 
ROS 2 Client Library for E^2
ROS 2 Client Library for E^2ROS 2 Client Library for E^2
ROS 2 Client Library for E^2Hideki Takase
 
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)mametter
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろHiroshi Yamashita
 
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTURE Project
 
Tfpモデリングスペキュレーション
TfpモデリングスペキュレーションTfpモデリングスペキュレーション
TfpモデリングスペキュレーションEiichi Hayashi
 
[DL輪読会]Differentiable Mapping Networks: Learning Structured Map Representatio...
[DL輪読会]Differentiable Mapping Networks: Learning Structured Map Representatio...[DL輪読会]Differentiable Mapping Networks: Learning Structured Map Representatio...
[DL輪読会]Differentiable Mapping Networks: Learning Structured Map Representatio...Deep Learning JP
 
FPGAX2016 ドキュンなFPGA
FPGAX2016 ドキュンなFPGAFPGAX2016 ドキュンなFPGA
FPGAX2016 ドキュンなFPGAHiroki Nakahara
 
[DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
[DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields [DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
[DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields Deep Learning JP
 
コンピューターの整列処理におけるデータ操作の時間的共起分析
コンピューターの整列処理におけるデータ操作の時間的共起分析コンピューターの整列処理におけるデータ操作の時間的共起分析
コンピューターの整列処理におけるデータ操作の時間的共起分析yamahige
 
When NAS Meets Robustness: In Search of Robust Architectures against Adversar...
When NAS Meets Robustness:In Search of Robust Architectures againstAdversar...When NAS Meets Robustness:In Search of Robust Architectures againstAdversar...
When NAS Meets Robustness: In Search of Robust Architectures against Adversar...MasanoriSuganuma
 
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Yuya Unno
 
2014aoki gi sanalysisi7
2014aoki gi sanalysisi72014aoki gi sanalysisi7
2014aoki gi sanalysisi7和人 青木
 
When NAS Meets Robustness: In Search of Robust Architectures against Adversar...
When NAS Meets Robustness:In Search of Robust Architectures againstAdversar...When NAS Meets Robustness:In Search of Robust Architectures againstAdversar...
When NAS Meets Robustness: In Search of Robust Architectures against Adversar...MasanoriSuganuma
 
プログラマーSeの数学
プログラマーSeの数学プログラマーSeの数学
プログラマーSeの数学Yusuke Shinohara
 

Similar to 確率的グラフィカルモデルと離散構造 (20)

kagamicomput201714
kagamicomput201714kagamicomput201714
kagamicomput201714
 
動的計画法の並列化
動的計画法の並列化動的計画法の並列化
動的計画法の並列化
 
RでGISハンズオンセッション
RでGISハンズオンセッションRでGISハンズオンセッション
RでGISハンズオンセッション
 
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
【Topotal輪読会】JavaScript で学ぶ関数型プログラミング 2 章
 
レコードリンケージに基づく科研費分野-WoS分野マッピングの導出
レコードリンケージに基づく科研費分野-WoS分野マッピングの導出レコードリンケージに基づく科研費分野-WoS分野マッピングの導出
レコードリンケージに基づく科研費分野-WoS分野マッピングの導出
 
ROS 2 Client Library for E^2
ROS 2 Client Library for E^2ROS 2 Client Library for E^2
ROS 2 Client Library for E^2
 
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
Ruby を用いた超絶技巧プログラミング(夏のプログラミングシンポジウム 2012)
 
充足可能性問題のいろいろ
充足可能性問題のいろいろ充足可能性問題のいろいろ
充足可能性問題のいろいろ
 
ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介ADVENTUREの他のモジュール・関連プロジェクトの紹介
ADVENTUREの他のモジュール・関連プロジェクトの紹介
 
Tfpモデリングスペキュレーション
TfpモデリングスペキュレーションTfpモデリングスペキュレーション
Tfpモデリングスペキュレーション
 
[DL輪読会]Differentiable Mapping Networks: Learning Structured Map Representatio...
[DL輪読会]Differentiable Mapping Networks: Learning Structured Map Representatio...[DL輪読会]Differentiable Mapping Networks: Learning Structured Map Representatio...
[DL輪読会]Differentiable Mapping Networks: Learning Structured Map Representatio...
 
FPGAX2016 ドキュンなFPGA
FPGAX2016 ドキュンなFPGAFPGAX2016 ドキュンなFPGA
FPGAX2016 ドキュンなFPGA
 
[DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
[DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields [DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
[DL輪読会] Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
 
コンピューターの整列処理におけるデータ操作の時間的共起分析
コンピューターの整列処理におけるデータ操作の時間的共起分析コンピューターの整列処理におけるデータ操作の時間的共起分析
コンピューターの整列処理におけるデータ操作の時間的共起分析
 
d3sparql.js
d3sparql.js d3sparql.js
d3sparql.js
 
When NAS Meets Robustness: In Search of Robust Architectures against Adversar...
When NAS Meets Robustness:In Search of Robust Architectures againstAdversar...When NAS Meets Robustness:In Search of Robust Architectures againstAdversar...
When NAS Meets Robustness: In Search of Robust Architectures against Adversar...
 
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9
 
2014aoki gi sanalysisi7
2014aoki gi sanalysisi72014aoki gi sanalysisi7
2014aoki gi sanalysisi7
 
When NAS Meets Robustness: In Search of Robust Architectures against Adversar...
When NAS Meets Robustness:In Search of Robust Architectures againstAdversar...When NAS Meets Robustness:In Search of Robust Architectures againstAdversar...
When NAS Meets Robustness: In Search of Robust Architectures against Adversar...
 
プログラマーSeの数学
プログラマーSeの数学プログラマーSeの数学
プログラマーSeの数学
 

確率的グラフィカルモデルと離散構造

  • 2. 石畠 正和(いしはた まさかず) • 経歴 – 2001-2006 石川高専 – 2006-2013 東工大(学部・修士・博士) – 2013-2016 NTTコミュニケーション科学基礎研究所 研究員 – 2016-2018 北海道大学 特任助教(出向) – 2018-現在 NTTコミュニケーション科学基礎研究所 研究主任 • 研究テーマ – 人工知能・機械学習 – 論理と確率・離散構造処理 2019/7/19 全脳アーキテクチャ勉強会 2 @m_ishihata
  • 3. NTTコミュニケーション科学基礎研究所 (CS研) NTTコミュニケーションズとは別会社です • 位置付け – NTT研究所(= NTT持株会社)の1研究所 – NTT研究所 先端総合研究所 CS研 石畠 • 場所 – 京阪奈(関西版筑波) – 厚木 • 研究内容 – 人工知能・機械学習・自然言語処理・音声処理 – 人間情報学・スポーツ脳科学 2019/7/19 全脳アーキテクチャ勉強会 3
  • 4. まとめ • Bayesian Network (BN) は有向グラフで同時分布を表現 – BN は確率推論・学習は一般的には難しい – 変数の独立性を適切に仮定することでモデルの複雑さと表現力を調整 • 変数の独立性は論理関数で記述できる ← ここを伝えたい! – 条件付き確率だけではなく、もっと細かな独立性も扱える – 論理関数をコンパクトに表現できれば効率的な確率推論・学習が可能 • BDDを用いることでBNの計算を効率的に行える ← ここはささっと! – 変数の依存性を表す論理関数をBDDでコンパクトに表現 – BDD上の動的計画法で確率計算・学習が可能 2019/7/19 全脳アーキテクチャ勉強会 4
  • 5. 論理と確率 • 論理 : 正確な 関係を記述 ! ⇒ # – デフォルトは独立、依存性を仮定する – 論理変数 !, # はデフォルトでは独立 – ! ∨ #, ! ∧ #, ! ⇒ # などで依存性を記述 • 確率 : 柔軟な 関係を記述 '(# ∣ !) – デフォルトは依存、独立性を仮定する – 確率変数 !, # はデフォルトでは依存 – '(!, #) = '(!)'(#) などで独立性を記述 2019/7/19 全脳アーキテクチャ勉強会 5
  • 6. 論理と確率 • 論理 : 正確な 関係を記述 ! ⇒ # – デフォルトは独立、依存性を仮定する – 論理変数 !, # はデフォルトでは独立 – ! ∨ #, ! ∧ #, ! ⇒ # などで依存性を記述 • 確率 : 柔軟な 関係を記述 '(# ∣ !) – デフォルトは依存、独立性を仮定する – 確率変数 !, # はデフォルトでは依存 – '(!, #) = '(!)'(#) などで独立性を記述 2019/7/19 全脳アーキテクチャ勉強会 6 論理に確率を導入 - Probabilistic Logic Programming - Statistical Relational Learning ※ 今日はこの話はしません
  • 7. 論理と確率 • 論理 : 正確な 関係を記述 ! ⇒ # – デフォルトは独立、依存性を仮定する – 論理変数 !, # はデフォルトでは独立 – ! ∨ #, ! ∧ #, ! ⇒ # などで依存性を記述 • 確率 : 柔軟な 関係を記述 '(# ∣ !) – デフォルトは依存、独立性を仮定する – 確率変数 !, # はデフォルトでは依存 – '(!, #) = '(!)'(#) などで独立性を記述 2019/7/19 全脳アーキテクチャ勉強会 7 論理に確率を導入 - Probabilistic Logic Programming - Statistical Relational Learning ※ 今日はこの話はしません 確率に論理を導入 - Tractable Probabilistic Modeling - Bayesian Network w/ Structures ※ 今日はこの話をします!
  • 8. 確率モデリング • 確率モデリングとは – 興味のある対象を 確率モデル として表現すること • 確率モデル = 確率分布 – 同時確率分布 !(#, %) – 条件付き確率分布 !(% ∣ #) • 用途 – 予測・分類・診断 – 期待値・リスクの定量化 – 現象の理解 2019/7/19 全脳アーキテクチャ勉強会 8
  • 9. 有名な確率モデル • Naïve Bayes Classifier (NBC) – 識別・クラスタリング • Hidden Markov Model (HMM) – 系列データ解析 • Latent Dirichlet Allocation (LDA) – トピック分析 Y X1 X2 XN Z1 X1 X2 XN Z2 ZN ... ... ... Zdi Xdiθd φkβα 2019/7/19 全脳アーキテクチャ勉強会 9
  • 10. 確率的グラフィカルモデル • グラフ構造で記述される確率モデル – 有向グラフ:Bayesian Network – 無向グラフ:Markov Random Field – 条件付き独立性 をグラフで表現 • 利点 – グラフに基づく理論・アルゴリズムが利用可能 – 見ただけでなんとなく雰囲気がわかる 2019/7/19 全脳アーキテクチャ勉強会 10 Y X1 X2 XN Z1 X1 X2 XN Z2 ZN ... ... ... Zdi Xdiθd φkβα
  • 11. Bayesian Network (BN) Bayesian network - Wikipedia, the free encyclopedia http://en.wikipedia.org/wiki/Bayesian_network 2019/7/19 全脳アーキテクチャ勉強会 11
  • 12. Bayesian Network (BN) • BN = DAG + CPT – 複数の確率変数の 同時分布 を記述 • Directed Acyclic Graph (DAG): Model – 有向非循環グラフ – 確率変数間の 条件付き独立性 を記述 • Conditional Probability Table (CPT): Parameter – 条件付き確率表 – 各確率変数の 条件付き確率分布 を記述 2019/7/19 全脳アーキテクチャ勉強会 12
  • 13. Bayesian Network (BN) • BN = DAG + CPT – 複数の確率変数の 同時分布 を記述 • Directed Acyclic Graph (DAG): Model – 有向非循環グラフ – 確率変数間の 条件付き独立性 を記述 • Conditional Probability Table (CPT): Parameter – 条件付き確率表 – 各確率変数の 条件付き確率分布 を記述 2019/7/19 全脳アーキテクチャ勉強会 13 !" !# !$ !# ⊥ !$ ∣ !" ' !", !#, !$ = ' !" ' !# !" '(!$ ∣ !") !" '(!#|!") 0 0.0 1 0.3 !" ' !$ !" 0 0.9 1 1.0 - ' !" - 0.4 ' !" = 1, !# = 1, !$ = 1 = ' !" = 1 ' !# = 1 !" = 1 ' !$ = 1 !" = 1 = 0.4×0.3×1.0
  • 14. Bayesian Network (BN) 1. 周辺確率計算 (EI: Exact Inference) – Input: DAG, CPT – Output: 特定の確率変数の周辺確率 2. パラメータ学習 (PL: Parameter Learning) – Input: 観測, DAG – Output: 観測を得る確率(尤度)を最大化する CPT 3. 構造学習 (SL: Structure Learning) – Input: 観測 – Output: あるモデル選択基準を最大化する DAG (+ CPT) 2019/7/19 全脳アーキテクチャ勉強会 14 ID !" !# !$ 1 0 1 0 … … … … N 1 1 0 !" !# !$ !" %(!#|!") 0 0.0 1 0.3 !" % !$ !" 0 0.9 1 1.0 - % !" - 0.4
  • 15. Bayesian Network (BN) 1. 周辺確率計算 (EI: Exact Inference) – Input: DAG, CPT – Output: 特定の確率変数の周辺確率 2. パラメータ学習 (PL: Parameter Learning) – Input: 観測, DAG – Output: 観測を得る確率(尤度)を最大化する CPT 3. 構造学習 (SL: Structure Learning) – Input: 観測 – Output: あるモデル選択基準を最大化する DAG (+ CPT) 2019/7/19 全脳アーキテクチャ勉強会 15
  • 16. 確率モデルを設計する • モデルの設計 – モデルの 複雑さ と 表現力 のトレードオフを コントロール • モデルの複雑さ = 計算量 – 何も仮定しない → 指数的な計算量 L – 独立性を仮定する → 効率的に計算可能 J • モデルの表現力 = 精度 – 何も仮定しない → あらゆる分布を表現可能 J – 独立性を仮定する → 特定の分布しか表現できない L 2019/7/19 全脳アーキテクチャ勉強会 16 !" !# !$ !% !" !# !$ !% 2 + 2$ + 2# + 2% = 30 2 + 3×2$ = 14
  • 17. Bayesian Network のどこが辛い? 2019/7/19 全脳アーキテクチャ勉強会 17 • DAGの候補が指数的に大きくなる = モデル数が指数的に多くなる – N頂点のDAGの数 !" – !" = ∑%&' " −1 %*' " % 2%("*%)!"*% • CPTサイズが指数的に大きくなる = パラメータ数が指数的に多くなる – Y の CPTサイズ = 2|/0| – Π2 = {4 ∈ 6 ∣ 4, 9 ∈ :} : Yの親集合 4' 4< 4= 4' 4= 4' 4= 4< 4' 4= 4< 4' 4= 4< 4' 4= 2!= = 3 6 612 !< = 25 !@ = 543 1 1
  • 18. Bayesian Network のどこが辛い? 2019/7/19 全脳アーキテクチャ勉強会 18 !"!# $ !%• DAGの候補が指数的に大きくなる = モデル数が指数的に多くなる – N頂点のDAGの数 &' – &' = ∑*+# ' −1 *.# ' * 2*('.*)&'.* • CPTサイズが指数的に大きくなる = パラメータ数が指数的に多くなる – Y の CPTサイズ = 2|34| – Π6 = {!8 ∣ !8, $ ∈ <} : Yの親集合 ….!# !" !> !? @($|!) 0 0 0 0 p1 0 0 0 1 p2 0 0 1 0 p3 0 0 1 1 p4 0 1 0 0 p5 0 1 0 1 p6 0 1 1 0 p7 0 1 1 1 p8 1 0 0 0 p9 1 0 0 1 p10 1 0 1 0 p11 1 0 1 1 p12 1 1 0 0 p13 1 1 0 1 p14 1 1 1 0 p15 1 1 1 1 p16
  • 19. Local Structures in CPTs • CPT 内に構造 (= 独立性) を仮定する 0. Conditional Independence (CI) 1. Context Specific Independence (CSI) 2. Partial Exchangeability (PE) 3. Generalized CSI (GCSI) • 構造を利用することで効率的な推論を実現 – パラメータ数を減らす (= Parameter Tying) – データ構造を利用した効率的な推論 2019/7/19 全脳アーキテクチャ勉強会 19
  • 20. Local Structures in CPTs • アイディア – 本当に指数個のパラメータは必要ですか? – 同じ確率になる場合もがあるのでは? • Parameter Tying – 異なるパラメータを同一とみなす – パラメータの異なり数を減らす – 特別な独立性を導入することで表現可能 2019/7/19 全脳アーキテクチャ勉強会 20 !" !# !$ %('|!) 0 0 0 p1 0 0 1 p2 0 1 0 p3 0 1 1 p4 1 0 0 p5 1 0 1 p6 1 1 0 p7 1 1 1 p8 !#!" ' !$
  • 21. Local Structures in CPTs 0. Conditional Independence 2019/7/19 全脳アーキテクチャ勉強会 21 !" !# !$ %('|!) 0 0 0 p1 0 0 1 p1 0 1 0 p2 0 1 1 p2 1 0 0 p3 1 0 1 p3 1 1 0 p4 1 1 1 p4 !" !# !$ %('|!) 0 0 * p1 0 1 * p2 1 0 * p3 1 1 * p4 !$ ⊥ ' ∣ !", !# * = don t care
  • 22. Local Structures in CPTs 1. Context-Specific Independence (CSI) 2019/7/19 全脳アーキテクチャ勉強会 22 !" ⊥ $ ∣ !& = 0, !* !& !* !" +($|!) 0 0 0 p1 0 0 1 p1 0 1 0 p2 0 1 1 p2 1 0 0 p3 1 0 1 p4 1 1 0 p5 1 1 1 p6 !& !* !" +($|!) 0 0 * p1 0 1 * p2 1 0 0 p3 1 0 1 p4 1 1 0 p5 1 1 1 p6
  • 23. Local Structures in CPTs 2. Partial Exchangeability (PE) 2019/7/19 全脳アーキテクチャ勉強会 23 ! " # = ! " ∑& #& #' #( #) !("|#) 0 0 0 p0 0 0 1 p1 0 1 0 p1 0 1 1 p2 1 0 0 p1 1 0 1 p2 1 1 0 p2 1 1 1 p3 #' + #( + #) !("|#) 0 p0 1 p1 2 p2 3 p3
  • 24. Local Structures in CPTs 3. Generalized Context-Specific Independence (GCSI) 2019/7/19 全脳アーキテクチャ勉強会 24 !" !# !$ %('|!) 0 0 0 p2 0 0 1 p2 0 1 0 p2 0 1 1 p1 1 0 0 p3 1 0 1 p3 1 1 0 p3 1 1 1 p1 *(!) %('|!) 1 p1 2 p2 3 p3 % ' ! = % ' * ! * ! = 1 ⇔ !# ∧ !$ * ! = 2 ⇔ ¬ !# ∧ !$ ∧ ¬!" * ! = 3 ⇔ ¬ !# ∧ !$ ∧ !"
  • 25. BN with local structures • DAG ! = ($, &) – $ = $(, … , $* – & ⊂ $×$ – Π. = $./ ∈ $ $./, $. ∈ & • CPT 1 = {1.34} – 6. Π. = $. のCPTの Structure 関数 – 1.34 ≡ ;($. = < ∣ 6. Π. = >) 2019/7/19 全脳アーキテクチャ勉強会 25 $( $? $@ 6.(Π.) ;($. = <|Π.) > 1.34
  • 26. Local Structure = Logic Structure • CPTの Structure 関数は論理関数で記述できる • CPTをコンパクトに表現する 論理関数をコンパクトに表現する • 論理関数をコンパクトに表現する方法とは? 2019/7/19 全脳アーキテクチャ勉強会 26
  • 27. Local Structure = Logic Structure • CPTの Structure 関数は論理関数で記述できる • CPTをコンパクトに表現する 論理関数をコンパクトに表現する • 論理関数をコンパクトに表現する方法とは? 2019/7/19 全脳アーキテクチャ勉強会 27 離散構造処理技術
  • 28. 離散構造処理技術 • 組合せ 離散構造 – 集合、グラフ、論理などの離散的な構造を持つもの – 組合せ爆発が起きやすく、一般的に扱うのが難しい対象 • 離散構造処理技術 – 離散構造を効率的に扱うための技術 – 対象の離散構造(の集合)を別のインデックス構造に変換 – インデックス構造上で様々な演算を効率的に実行 2019/7/19 全脳アーキテクチャ勉強会 28
  • 29. Binary Decision Diagram (BDD) 2019/7/19 全脳アーキテクチャ勉強会 29 !" !# !$ % 0 0 0 0 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 1 Truth Table !" !# !$ 0 0 !$ 0 0 !$ 0 1 !$ 1 1 !# Binary Decision Tree (BDT) !" 0 !$ 1 !# BDD 論理関数を表現するDAG構造
  • 30. Binary Decision Diagram (BDD) 2019/7/19 全脳アーキテクチャ勉強会 30 !" !" !" !" !" !" 同じ子を持つノードを共有 冗長なノードを削除 BDTに以下の簡約化規則を適用
  • 31. Binary Decision Diagram (BDD) • BDD同士の演算が可能 – 論理関数 !, # のBDDから ! ∧ # のBDDを構築 • BDDがあれば様々なクエリを効率的に実行可能 – %∗ ∈ argmax-:/ - 012(%) : 線形関数最大化(最小化) • 2 % = ∑7 87%7 – 9 ! = ∑-:/ - 01 9(%) : 充足確率(周辺確率) • 9 % = ∏7:-;01 <7 ∏7:-;0= 1 − <7 – % ∼ 9 % ! : 充足解サンプリング • 9 % ! = ! % 9 % /9(!) 2019/7/19 全脳アーキテクチャ勉強会 31 ! # ! ∧ #= ! BDD上の動的計画法
  • 32. Compiling Bayesian Networks • DAG + CPT を合わせて別の構造に Compile • 変換後の構造上の DP で確率計算 → (Generalized) Context Specific Independence を効率的に扱える BDD [Ishihata+ 11] ZDD [Minato+ 07] [Gao+ 17] d-DNNF [Chavira+ 05, 07] 2019/7/19 全脳アーキテクチャ勉強会 32
  • 33. 命題化確率計算 • 確率的依存関係を論理的依存関係で表現 – 互いに依存する確率変数の同時分布を互いに独立な確率的命題 変数の同時分布と論理関数で表現 • 独立な変数として扱うので確率計算が容易 • 論理関数をBDDで表現することで効率的に確率計算可能 2019/7/19 全脳アーキテクチャ勉強会 33
  • 34. BN with local structures (再掲) • DAG ! = ($, &) – $ = $(, … , $* – & ⊂ $×$ – Π. = $./ ∈ $ $./, $. ∈ & • CPT 1 = {1.34} – 6. Π. = $. のCPTの Structure 関数(= Π.の論理関数) – 1.34 ≡ ;($. = < ∣ 6. Π. = >) 2019/7/19 全脳アーキテクチャ勉強会 34 $( $? $@ 6.(Π.) ;($. = <|Π.) > 1.34
  • 35. 命題化確率計算 • 確率的命題変数 ! = {!$%&} – !$%& ⇔ “*$ = + ∣ -$ Π$ = /” – 1 !$%& = 2$%& – 1 ! = ∏$%& 1 !$%& • 観測関数 *$& ⇔ “*$ = +” • 構造関数 -$% ⇔ “-$ Π$ = /” – *$& ⇔ ⋁% -$% ∧ !$%& – -$% ⇔ (*$&の論理関数として書かれた -$ Π$ = /) 2019/7/19 全脳アーキテクチャ勉強会 35 *8 *9 *: -$(Π$) 1(*$ = +|Π$) / 2$%&
  • 36. 1. 各!"#を表すBDDを構成 2. 評価したい事象を表すBDDを構成 3. BDD上の動的計画法により確率を計算 命題化確率計算 by BDD 2019/7/19 全脳アーキテクチャ勉強会 36 !$$ !%$ !&$ !$$ ∧ !%$ ∧ !&$
  • 37. 命題化確率計算 by BDD(例) • 命題化 – !"# = %""# – !&# = ⋁((!"(∧ %&(#) = ⋁((%""( ∧ %&(#) – !,# = ⋁((!"(∧ %,(#) = ⋁((%""( ∧ %,(#) • 確率計算 - !" = 1, !& = 1, !, = 1 = - !"" ∧ !"& ∧ !", = - %""" ∧ %&"" ∧ %,"" = - %""" - %&"" - %,"" = 0"""0&""0,"" = 0.4×0.3×1.0 2019/7/19 全脳アーキテクチャ勉強会 37 !" -(!&|!") 0 0.0 1 0.3 !" - !, !" 0 0.9 1 1.0 - - !" - 0.4 !" !& !, !"" !&" !," !"" ∧ !&" ∧ !,"
  • 38. 命題化確率計算 by BDD の利点 • CPTの Structure を自然に扱うことができる – Structure が論理式で記述できるならOK • 複雑な事象の確率計算も自然にできる – 事象が論理式で記述できるならOK • 確率モデルの設計がしやすい – 論理式を書き換えてもアルゴリズム不変 – 論理式は人間には解釈しやすい • パラメータ学習も効率的に実行できる – BDDを用いて期待値計算が行えるので(詳細略) 2019/7/19 全脳アーキテクチャ勉強会 38 !" #(!%|!") 0 0.0 1 0.3 !" # !( !" 0 0.9 1 1.0 - # !" - 0.4 !" !% !( !"" !%" !(" !"" ∧ !%" ∧ !("
  • 39. 命題化確率計算 by BDD の欠点 • 対象BDDが巨大になる場合がある – もともとの問題がNP困難なので仕方ない • 対象BDDが構成中に巨大になる場合がある – 最終的なBDDが小さくても途中計算が大きくなることはある – 対象BDDを直接構成する工夫が必要 – フロンティア法:対象BDDを直接構成するテクニック(略) 2019/7/19 全脳アーキテクチャ勉強会 39
  • 40. まとめ • Bayesian Network (BN) は有向グラフで同時分布を表現 – BN は確率推論・学習は一般的には難しい – 変数の独立性を適切に仮定することでモデルの複雑さと表現力を調整 • 変数の独立性は論理関数で記述できる – 条件付き確率だけではなく、もっと細かな独立性も扱える – 論理関数をコンパクトに表現できれば効率的な確率推論・学習が可能 • BDDを用いることでBNの計算を効率的に行える – 変数の依存性を表す論理関数をBDDでコンパクトに表現 – BDD上の動的計画法で確率計算・学習が可能 2019/7/19 全脳アーキテクチャ勉強会 40
  • 41. BDDの応用例(石畠の場合) • 論理と確率の文脈 – BNの確率計算・学習 [AMBN 10,17] – Probabilistic Logic Programing [ILP 08,11] • 機械学習・人工知能の文脈 – 薬物代謝経路の推定 [IJCAI 09] – ネットワーク上のユーザの影響力の厳密計算 [WWW 17] – 制約付きオンライン最適化 [AISTATS 18] – ネットワークの信頼性の厳密計算 [COCOA 18] – 観測データに構造的な相関があるかの検定 [IJCAI 19] 2019/7/19 全脳アーキテクチャ勉強会 41