49. 49 / 270 KYOTO UNIVERSITY
別の解の中点になっていない解を頂点という
P
Q
R
P
Q
R
P
Q
R
頂点以外だとそのような Q, R を取れるが
頂点だと取ろうとすると
はみ出てしまう
まず、最適輸送問題の実行可能領域の頂点はどのような解に対応
しているかを考える
定義 頂点:
実行可能解 P が頂点であるとは、別の実行可能解 Q, R を用いて
P = (Q + R) / 2 と表せないことである
83. 83 / 270 KYOTO UNIVERSITY
木の使用グラフに付随する解が実行不能のときもある
輸送量を定めるうちに在庫量・要求量が負になることもある
そのままプロセスを続行させることはできるが、輸送プランにも負値が
現れ実行可能ではない場合がある
つまり、木 T を固定したとき、この木を使用グラフとして持つ解は
ちょうど 1 つ
ただし、実行可能でない場合はあるので実行可能解は 0 or 1 個
84. 84 / 270 KYOTO UNIVERSITY
木を使用グラフとして持つなら頂点
命題 頂点の十分条件:
主実行可能解 P が木を使用グラフとしてもつなら P は頂点
証明(ざっくり):
実行可能解 Q, R を用いて P = (Q + R) / 2 と表せるとする
Q と R の要素は非負なので Pij
= 0 である要素は Q, R でもゼロ
(仮に Qij
> 0 なら Rij
≧ 0 より Qij
+ Rij
> 0 となる)
よって Q, R にも P と同じ木が使用グラフとして付随し、一意性より
P = Q = R
85. 85 / 270 KYOTO UNIVERSITY
頂点の条件より探索空間を劇的に絞れる
証明はややこしいが、
実行可能解 P が頂点であることと使用グラフとして木をもつ
ことは同値である
木にはちょうど一つの解に付随
を知っていればよい
線形計画の最適解は頂点にあるので、これにより解の候補を絞れる
87. 87 / 270 KYOTO UNIVERSITY
使用グラフと相補性は相性がよい
使用グラフの定義は相補性と相性が良さそう
使用グラフ G の全ての辺 (i, j) で fi
+ gj
= Cij
となるとき
(f, g) は G について相補的であるという。
主問題の実行可能解 P と双対問題の実行可能解 (f, g) を考える
P に付随する任意の使用グラフ G をとる
(G, f, g) が相補的である → (P, f, g) が相補的である
理由: Pij
> 0 な辺 (i, j) は使用グラフ G に含まれるのでタイト
Pij
> 0 でない辺もタイトなので、使用グラフについての相補性は
P についての相補性より強い
しかし、特殊な例ではこれが十分条件になる
88. 88 / 270 KYOTO UNIVERSITY
木と相補的な双対実行可能解が存在する
命題 木の使用グラフと相補性:
以下の性質をもつ木 T が存在する
主問題のある実行可能解 P と双対問題の実行可能解 (f, g) が
存在し、P が T を使用グラフとしてもち、(f, g) は T について相補的
証明(ざっくり):
P を実行可能領域の頂点にある最適解の中から適当にとる
このとき P は頂点性よりある木 T を使用グラフとしてもつ
P は最適解なので相補的な双対実行可能解 (f, g) が存在する
fi
+ gj
= Cij
を満たす (i, j) ∈ T は森 F になる
F が連結であれば F = T となり終了 つづく
89. 89 / 270 KYOTO UNIVERSITY
木と相補的な双対実行可能解が存在する: 証明続き
証明(つづき):
F の異なる連結成分を結ぶ組 (i, j) の中で s(i, j) = Cij
- fi
- gj
が最も小さいものを取ってきて i*, j* とおく
i* が繋がっている側の連結成分に含まれる倉庫側の変数を
s(i*, j*) 増加させ、工場側の変数を s(i*, j*) 減少させる
F の連結成分内の倉庫・工場対では fi
+ gj
の値は変わらず、この
連結成分と他の連結成分の対では s(i, j) だけ減少 or 増加する
連結成分間では少なくとも s(i*, j*) だけ余裕があったので
依然として実行可能
fi*
+ gj*
= Ci*j*
なので F に (i, j) を追加しこのプロセスを
繰り返すことで連結成分を 1 つづつ減らして F を木にできる
139. 139 / 270 KYOTO UNIVERSITY
大小を上下と思うと f は上に g’ は下に最適化する
各変数について、値が大きいほど「上」、小さいほど「下」にあるという
イメージを持ってみる
ai
> 0, bj
> 0 より、fi
は上にあればあるほど、g’j
は下に
あればあるほどよい
fi
を 1 センチ上に上げると ai
ポイント貰える
g’j
を 1 センチ下に下げると bj
ポイント貰える
140. 140 / 270 KYOTO UNIVERSITY
fi
と gj
のペアを Cij
以上離しすぎると制約違反
ただし、全く自由に fi
と g’j
を動かせる訳ではない
fi
g’j
< Cij
OK
fi
OK
fi
g’j
= Cij
OK
fi
g’j
> Cij
NG
1 つでもこういう組が
できるとアウト
141. 141 / 270 KYOTO UNIVERSITY
双対問題は紐が付いたボールを上下に引っ張るイメージ
双対問題の物理的イメージ:
f に対応する赤玉 n 個と g’ に対応する青玉 m 個を用意する
fi
に対応する赤玉と g’j
に対応する青玉の間に長さ Cij
の紐を張る
合計 nm 本の紐がある
紐が切れないように赤玉を上に引っ張り、青玉を下に引っ張り
できるだけポイントを稼ぎたい
fi
を 1 センチ上に上げると ai
ポイント貰える
g’j
を 1 センチ下に下げると bj
ポイント貰える
相補性より「紐がピンと張っている組」の間に輸送が生じる
fi
g’j
> Cij
fi
g’ が上にある場合はセーフなので正確には g’ が
上にある限りは切れない魔法の紐を考える
g’ は下に引っ張るのでこういうケースは起きづらい
OK
142. 142 / 270 KYOTO UNIVERSITY
双対問題の話題4: C-transform
144. 144 / 270 KYOTO UNIVERSITY
C変換は簡単に計算でき、制約は守られる
双対問題の解 f について f の C-transform fC
∈ Rm
は
fi
と繋がっている紐は fi
- Cij
まで下げられる
どれか一つでも切れるとアウトなので、一番保守的な制約を採用する
fC
は g’ 側の変数を表していることに注意。(f, fC
) が新たな解になる。
明らかに (f, fC
) は実行可能
証明:
145. 145 / 270 KYOTO UNIVERSITY
C変換はベストな相方を見つける
(f, g’) が実行可能解のとき (f, fC
) の目的関数値の方が悪くない
証明:
つまり、(f, fC
) は (f, *) という形の実行可能解の中でベストな解
実は、双対問題は f, g’ の両方を自由変数する必要はなく、
f を探索空間として、その都度ベストな g’ を C-transform で計算し
その時の値を目的関数とすればよい
が、実際は f, g’ の両方を自由変数とした方が簡単な場合も多い
g’ の実行可能性より g’j
≧ fi
- Cij
146. 146 / 270 KYOTO UNIVERSITY
C-transform は g’ を固定して f を上に上げる変換
逆に g’ 側を固定して f を上に引っ張る変換も考えられる
これを C-transform という
やはり (g’C
, g’) は実行可能であり (*, g’) の形の解の中でベスト
147. 147 / 270 KYOTO UNIVERSITY
交互に変換する戦略は失敗する
適当な f からはじめて、(f, fC
) → (fCC
, fC
) → (fCC
, fCCC
) → ...
と交互にベストな相方を見つけていって解を改善していくアルゴリズムが
考えられる
がこれは上手くいかない
なぜなら、fC
= fCCC
となりわずか 2 ステップで更新はストップ
直感的には、fC
は f に対応できる一番下であるのに f よりもいくつかの
fi
が上に動いた fCC
を相手にしては fC
からさらに下に動くことは不可能
しかも (fCC
, fC
) が双対問題の最適解とは限らない
C-transform をソフトにして交互に最適解まで変換できるように
した(と見ることができる)のが後で紹介する Sinkhorn 法
148. 148 / 270 KYOTO UNIVERSITY
この章のゴールの確認
双対問題の最適解が表しているものを理解する
各小麦粉の量を増やした時に増えるコストの感度を表している
双対問題の四つの変種を知る
変数の符号によって計四種類正負の異なる定式化がある
双対問題の物理的イメージを知る
変数をボールに、制約を糸に例えると f を上にひっぱり g を
下にひっぱるようなイメージ
C-transform を知る
片方の変数を固定した時にもう片方を最大限引っ張る操作
これにより解が良くなる(悪くならない)
149. 149 / 270 KYOTO UNIVERSITY
アルゴリズムその2: ハンガリアン法
152. 152 / 270 KYOTO UNIVERSITY
倉庫と工場を一対一に対応させる割当問題を考える
この章では特殊だが重要な例、割当問題、のみを考える
具体的には n = m, a1
= ... = an
, b1
= ... = bm
を仮定する
倉庫と工場が n 個ずつあり、一対一に対応させる
倉庫 i と工場 j を対応させるのはコスト Cij
かかる
最小の合計コストは?
同数・同量なので
n, a, b が入力から消えた
問題がシンプルになった
153. 153 / 270 KYOTO UNIVERSITY
割当問題はさまざまな応用がある
問題を単純化したが、輸送問題以外にも応用先は多い
例えば機械学習ではクラスタリングの精度を計るのに使う
クラスタ 1
クラスタ 2
クラスタ 3
クラス A
クラス B
クラス C
C1B
= 4:
クラスタ 1 が
クラス B を表していると
したときの誤分類の個数
クラスタリングアルゴリズムは
サンプルをまとめるだけで
何のクラスを表しているかは
出力しないので精度をはかる
ためには対応関係を明らかに
する必要がある
最適割当は
ベストシナリオでの
精度に対応する
154. 154 / 270 KYOTO UNIVERSITY
ハンガリアン法が割り当て問題の最も有名なアルゴリズム
割当問題を解く最も有名なアルゴリズムはハンガリアン法
古典的なアルゴリズムだが今でも色んな場面で頻繁に使われる
Object-Centric Learning with Slot Attention (NeurIPS 2020)
集合予測の問題において出力順番が不同なのでハンガリアン法でマッチング
On Testing for Biases in Peer Review (NeurIPS 2019)
査読論文割当システムにハンガリアン法を使う
Partially View-aligned Clustering (NeurIPS 2020)
複数ビューのクラスタの対応にハンガリアン法を使う(提案手法はこれの改良版)
155. 155 / 270 KYOTO UNIVERSITY
割当問題の定式化
主問題 双対問題
今回は ai
= 1 としておく
ai
= 1/n としても等価
といった解も実行可能だが、一対一対応を表す順列行列
が最適値を取り、ハンガリアン法もそのような解を見つける
問題の入力: 割り当てコスト行列 C ∈ Rn×m 最適輸送では入力であった
a, b は今回定数
157. 157 / 270 KYOTO UNIVERSITY
ハンガリアン法は順番にマッチする相手を決めていく
まず fi
= 0, g’j
=0, Pij
= 0 と初期化する
i = 1, 2, ..., n と順番にマッチする相手を決めていく
ノード i から、左から右へのタイトな辺と右から左のマッチしている辺
だけを辿ってたどり着くノード集合を X とする
X の状態によって二種類に場合分け
(a) 未マッチな右側の頂点が X に含まれる場合
(b) 未マッチな右側の頂点が X に含まれない場合
158. 158 / 270 KYOTO UNIVERSITY
ハンガリアン法の場合分け 1
(a) 未マッチな右側の頂点が X に含まれる場合
このパスの辺は全てタイトである。このパスの Pij
を全て反転させる
双対変数は変化せず以下は全て満たされたまま
(2) ならば はタイト
(3)
(4)
i がこれによりマッチするので i ← i+1 として次のイテレーションへ
i1
= i j1
未 済
i2
j2
未 済
i3
j3
未
i1
= i j1
済 未
i2
j2
済 未
i3
j3
済
159. 159 / 270 KYOTO UNIVERSITY
ハンガリアン法の場合分け 2
(b) 未マッチな右側の頂点が X に含まれない場合
X に含まれる左側のノード i から X に含まれない右側のノード j への
余裕度 Cij
- (fi
- gj
) が一番小さい値を ε > 0 とする
X に含まれるノードに対応する双対変数を全て ε だけ増加させる
i, j が両方 X に含まれる or 両方含まれないときは fi
- g’j
変化なし
j だけ X に含まれるなら Pij
= 0 かつ fi
- g’j
は減る方向に変化
i だけ X に含まれるなら fi
- g’j
は増えるが ε のとり方より制約は守る
この変化により余裕度が一番小さかった辺がタイトになった
その辺を含めてもう一度 X を計算しなおす(前々スライドへ)
207. 207 / 270 KYOTO UNIVERSITY
双対問題の目的関数の勾配は f 内 g 内で絡みなし
双対問題の目的関数を D をおく
D の f と g についての勾配は以下の通り
fi
の勾配の中に fk
(k ≠ i), gj
の勾配の中に gk
(k ≠ j) は
出てこない
嬉しい
208. 208 / 270 KYOTO UNIVERSITY
f ごと、g ごとに最適値が厳密に求まる
Sinkhorn アルゴリズムの基本的な考えは座標向上法
f を固定したときの g の最適値は勾配イコールゼロとおいて
g を固定したときの f の最適値も同様に
Sinkhorn アルゴリズムは f 固定での g の厳密最適化 →
g 固定での f の厳密最適化を交互に繰り返す
209. 209 / 270 KYOTO UNIVERSITY
Sinkhorn は f と g を交互に最適化する
対数領域での Sinkhorn アルゴリズム
ステップ 1: f(1)
を適当に初期化(例えばゼロベクトル), t = 1 に
ステップ 2:
ステップ 3:
ステップ 4: f と g が収束するまで t ← t + 1 でステップ 2 へ
目的関数が微分可能で各ステップ唯一解なので大域最適に収束
210. 210 / 270 KYOTO UNIVERSITY
Sinkhorn はソフト版 C-transform
f と g の一方を固定してもう一方を最適化するのは C-transform に
似ている
一般に x1
, ..., xn
∈ R について log sum exp は
Sinkhorn のイテレーションはソフト版 C-transform と考えられる
交互 C-transform は大域収束しなかったが
Sinkhorn は強凸 + 制約なしより大域収束
fi
- Cij
が一番大きい
= Cij
- fi
が一番小さい
= 一番制約が厳しい
ほぼ max 関数
ε → 0 で厳密に
C-transform
231. 231 / 270 KYOTO UNIVERSITY
最適化変数を f のみにできる
つまり、最適化変数から g’ を取り除くことができ
直感的には最適解では小麦の仕入れ価格と販売価格は各地で一致
また、制約条件は f がリプシッツであることにほかならない
C-transform の説明の時に、実質 f だけを自由変数とできると説明
したが、本質的にはそれと同じことを言っている
C が距離公理を満たす場合は fC
が簡単に表せる
y 側でも f を使う
233. 233 / 270 KYOTO UNIVERSITY
一般の距離空間でも最適化を f のみにできる
発展的注意:
今回は簡単のためコストをユークリッド距離としたが、一般に
倉庫と工場がある空間 X に埋め込まれ、コストが X 上の距離関数
で定義するという拡張が考えられる
各点で同じ値を取る(関数性)・リプシッツ性・f と g’ の一致性の
証明には距離公理の性質しか使っていないので、一般の距離空間の
場合も f: X → R を X 上でのリプシッツ連続関数制約で最適化
する問題に帰着できる
X をグラフとし、グラフ上の最短経路距離コストを使うケースは頻出
234. 234 / 270 KYOTO UNIVERSITY
f は滑らかな範囲で x 上で大きく y 上で小さくする
あらためて f だけの最適化問題を眺めてみる
f は X = {x1
, ..., xn
} 上で大きければ大きいほど
Y = {y1
, ..., ym
} 上で小さければ小さいほどよい
ただし、f は「滑らか」(リプシッツ連続)でなければならない
正
正
小麦を購入する場所では安く
販売する場所では高く設定する
235. 235 / 270 KYOTO UNIVERSITY
関数最適化のイメージ
例: 赤点は倉庫、青点は工場に対応 xi
yi
背景が赤いほど
f の値が大きい
背景が青いほど
f の値が小さい
関数の変化は滑らか
236. 236 / 270 KYOTO UNIVERSITY
双対問題は 2 クラス分類問題と見ることができる
このように見ると、X = {x1
, ..., xn
} を正例、Y = {y1
, ..., ym
} を
負例としたときの 2 クラス分類問題と見ることができる
ai
, bi
はサンプルの重み
激しく変化する分類器は制約違反
「正則化」としてリプシッツ関数の条件
237. 237 / 270 KYOTO UNIVERSITY
分類問題をニューラルネットワークに任せる
「分類器」 f をニューラルネットワークでモデリングすることを考える
ロス関数はシンプルに
f が 1-リプシッツ連続であることを課すのは難しい
ここでは素朴な解決策を 2 つ紹介
239. 239 / 270 KYOTO UNIVERSITY
各点での勾配が 1 から離れるとペナルティ
解決策 2: gradient penalty [Arjovsky+ 2017]
f が微分可のとき各点での勾配のノルムが 1 以下 ↔ 1-リプシッツ
色んな点で勾配を評価して 1 から離れていたらペナルティを課す
をロスとして最適化
Ishaan Gulrajani, Faruk Ahmed, Martín Arjovsky, Vincent Dumoulin, Aaron C. Courville.. Improved
Training of Wasserstein GANs. NeurIPS 2017
ハイパラ正則化係数
色んな訓練サンプル
例えば X ∪ Y
勾配を 1 に近づける
240. 240 / 270 KYOTO UNIVERSITY
ニューラルネットワークの定式化は GAN に用いられる
f をニューラルネットワークで表すと f(x) は x について微分可能
→ 最適輸送コストを下げるには x をどう動かせばよいかが分かる
ニューラルネットワークによる定式化は GAN(生成モデル)の
訓練によく用いられる: Wasserstein GAN
自然サンプルの集合を X ⊂ Rd
とする。例えば画像の集合
GAN により、X に似たサンプル集合を生成したい
GAN により生成したサンプルの集合を Y ⊂ Rd
とし、X と Y の距離を
最適輸送コストで測る
これを最小化するように GAN を訓練する
241. 241 / 270 KYOTO UNIVERSITY
ニューラルネットワークの推定は大規模データと相性よし
典型的な X は非常に大きい(数百万枚の画像など)
生成モデルの生成結果 Y の候補は無限にある
ハンガリアン法や Sinkhorn 法では全ての対を一度に解かなければ
ならず、非常に大きいデータには適していない
「分類器」 f を分類するという考え方に立てば、
X と Y から一部のデータをミニバッチとして取り出し f を徐々に
訓練していけばよい
→ ニューラルネットワークによる推定は大規模(or 無限)のデータ
について解くのと相性がよい
242. 242 / 270 KYOTO UNIVERSITY
Wasserstein GAN: 生成モデル と f の交互訓練
1. 生成モデル G: Rr
→ Rd
をランダムに初期化
これはノイズ z ∈ Rr
を受け取り画像 G(z) ∈ Rd
を返す
最適輸送問題を解くニューラルネットワーク f をランダムに初期化
2. G を使って画像 Y = {G(z1
), G(z2
), ..., G(zm
)} を生成
3. f が X と Y を分類できるようにミニバッチで訓練して
X と Y の(ミニバッチの)最適輸送コストを計算
4. f を使った最適輸送コストが小さくなるように G をアップデート
5. 2 へ戻る。このとき Y は変化するが f を一から訓練するのではなく、
少し G が変わったくらいでは最適な f もほぼ同じなので
以前のパラメータから訓練をスタートする(ホットスタート)
243. 243 / 270 KYOTO UNIVERSITY
深層畳み込みネットワークを使うことでリアルな画像生成
Wasserstein GAN の論文や後続の論文では G や f として
深層畳み込みニューラルネットワークを使う
上は X を顔写真集合として訓練したてできた生成画像
非常にリアルな顔写真が生成できている
上の画像は段階的学習など別のテクニックも駆使して訓練されている
Tero Karras, Timo Aila, Samuli Laine, Jaakko Lehtinen. Progressive Growing of GANs for Improved
Quality, Stability, and Variation. ICLR 2018.