Slide 1

Slide 1 text

1 KYOTO UNIVERSITY KYOTO UNIVERSITY 機械学習にもう一歩踏み込むための 『最適輸送の理論とアルゴリズム』 佐藤竜馬

Slide 2

Slide 2 text

2 / 35 KYOTO UNIVERSITY 自己紹介: 京大で最適輸送や GNN を研究してます  名前: 佐藤竜馬  京都大学博士二年  機械学習・データマイニングを幅広く研究しています  専門:最適輸送・グラフデータ・推薦・検索システム  自慢: 主著論文たくさん書いてます(NeurIPS, ICML, WWW など) 競技プログラミング強いです(レッドコーダー・日本代表など)  講演者近影

Slide 3

Slide 3 text

3 / 35 KYOTO UNIVERSITY 論文読みを圧倒的に快適にするサービスを開発 https://readable.jp/ めっちゃバズった

Slide 4

Slide 4 text

4 / 35 KYOTO UNIVERSITY 本題

Slide 5

Slide 5 text

5 / 35 KYOTO UNIVERSITY 最適輸送は確率分布を比較するツール  本日のトピック: 最適輸送 物流や交通整理の話ではない! まずはこれだけでも覚えて帰ってください 最適輸送は確率分布を比較するのに使えるツール take home message

Slide 6

Slide 6 text

6 / 35 KYOTO UNIVERSITY ロス関数の設計に確率分布の比較が重要  なぜ確率分布の比較? ロス関数の設計に使える モデルの予測分布と正解分布を比較する 犬 猫 虎 鳥 予測分布 正解ラベル 距離 = ロス 犬 猫 虎 鳥

Slide 7

Slide 7 text

7 / 35 KYOTO UNIVERSITY 分布比較の例: 生成モデル  生成モデルのロス関数 生成サンプルの経験分布 訓練サンプルの経験分布 距離 = ロス

Slide 8

Slide 8 text

8 / 35 KYOTO UNIVERSITY 最適輸送はカスタマイズ性が高くて便利  ロス関数としてはクロスエントロピーロスが有名  なぜわざわざ最適輸送を学ぶ必要が?  カスタマイズ性が高い  特殊ケースとして点群や集合の比較ができる  点群の比較には様々な応用がある(後述)

Slide 9

Slide 9 text

9 / 35 KYOTO UNIVERSITY 最適輸送の考え方

Slide 10

Slide 10 text

10 / 35 KYOTO UNIVERSITY 最適輸送の直感的な意味: 確率分布の「山」を輸送  確率分布の「山」を移動させて一致させるのにかかるコストが 最適輸送の直感的な定義  輸送という単語はここからきている μ ν 運ぶ

Slide 11

Slide 11 text

11 / 35 KYOTO UNIVERSITY 点群比較の場合の例  点群(離散分布)比較の場合  各点に質量 1/n の砂山があると考えその輸送距離を考える

Slide 12

Slide 12 text

12 / 35 KYOTO UNIVERSITY 最適な輸送についてのコストを用いて距離を定義する  輸送の仕方は複数通りあるが、最もコストが少ない輸送方法を選ぶ ヒストグラムの場合も同様  「最適」という言葉はここからきている 最適ではない輸送の例

Slide 13

Slide 13 text

13 / 35 KYOTO UNIVERSITY もう少し規模が大きい場合の最適輸送の例  もう少し規模の大きい点群の最適輸送

Slide 14

Slide 14 text

14 / 35 KYOTO UNIVERSITY ヒストグラム比較の場合の例  クラス確率(ヒストグラム)比較の場合  項目間のコストはユーザーが設計する 猫→虎 は 猫→鳥 よりも低いコストで移りあえるとする、など これにより高いカスタマイズ性を実現

Slide 15

Slide 15 text

15 / 35 KYOTO UNIVERSITY クロスエントロピーや L2 は項目ごとの和  クロスエントロピーロス(KL ダイバージェンス)や L2 ロスが有名  項目ごとに独立に足し合わせているのがポイント 犬 猫 虎 鳥 予測分布 正解ラベル 従来の比較 犬 猫 虎 鳥 縦方向の差 だけを見る

Slide 16

Slide 16 text

16 / 35 KYOTO UNIVERSITY 従来法は項目の間違い度合いを考慮しない  従来の方法(クロスエントロピーや L2)では 三毛猫をペルシャ猫と間違えた場合も、 三毛猫を象と間違えた場合も等しくペナルティを受ける ペルシャ猫 三毛猫 象 ペルシャ猫 三毛猫 象 三毛猫をペルシャ猫と間違えた 三毛猫を象と間違えた

Slide 17

Slide 17 text

17 / 35 KYOTO UNIVERSITY 最適輸送は項目関係を考慮できる  最適輸送コストを使うと、三毛猫をペルシャ猫と間違えた場合は 低ペナルティ、三毛猫を象と間違えた場合は高ペナルティを受ける  どの項目間の間違いを多目に見るかはアプリに応じてユーザーが設計 自動運転で「車→バス」は低コスト、「人間→道路」は高コストなど ここの輸送は低コスト ここの輸送は高コスト ペルシャ猫 三毛猫 象 ペルシャ猫 三毛猫 象 三毛猫をペルシャ猫と間違えた 三毛猫を象と間違えた

Slide 18

Slide 18 text

18 / 35 KYOTO UNIVERSITY 最適輸送の利用方法

Slide 19

Slide 19 text

19 / 35 KYOTO UNIVERSITY 最適輸送を計算するのはライブラリを使えば一発  最適な輸送方法を見つけるのはちょっと大変 本書ではそのあたりも基礎から深堀りしています  実用上はライブラリを使えば OK ! pip install POT import ot # POT ライブラリ P = ot.emd(a, b, C) loss = (C * P).sum() # 最適輸送コストの計算 loss = ot.emd2(a, b, C) # emd2 を使えば一発でコスト計算 loss.backward() # そのまま backprop できる P: n x n 行列 ij 成分が i から j への輸送量 a: n 次元ベクトル 犬 猫 虎 鳥 b: n 次元ベクトル 犬 猫 虎 鳥 C: n x n 行列 ij 成分が i から j への輸送コスト

Slide 20

Slide 20 text

20 / 35 KYOTO UNIVERSITY POT の使用例: 簡単に使えます  数値例: 二つの正規分布からの点群の比較 import numpy as np import matplotlib.pyplot as plt import ot # POT ライブラリ n = 100 # 点群サイズ mu = np.random.randn(n, 2) # 入力分布 1 nu = np.random.randn(n, 2) + 1 # 入力分布 2 a = np.ones(n) / n # 質量ヒストグラム (1/n, ..., 1/n) b = np.ones(n) / n # 質量ヒストグラム (1/n, ..., 1/n) C = np.linalg.norm(nu[np.newaxis] - mu[:, np.newaxis], axis=2) # コスト行列 P = ot.emd(a, b, C) # 最適輸送行列の計算 plt.scatter(mu[:, 0], mu[:, 1]) # mu の散布図描写 plt.scatter(nu[:, 0], nu[:, 1]) # nu の散布図描写 for i in range(n): j = P[i].argmax() # i の対応相手: 最もたくさん輸送している先 plt.plot([mu[i, 0], nu[j, 0]], [mu[i, 1], nu[j, 1]], c='grey', zorder=-1) ↑ コピペで試せます

Slide 21

Slide 21 text

21 / 35 KYOTO UNIVERSITY 最適輸送の利用例

Slide 22

Slide 22 text

22 / 35 KYOTO UNIVERSITY 応用例:文書比較・文書検索  ナイーブな方法は bag-of-words ベクトルの L2 距離で比較 = 単語ごとの出現数で比較 → 同じ意味でも語彙が違えば似ていないと判定されてしまう 2 つの文書は 似ている? 文書検索など

Slide 23

Slide 23 text

23 / 35 KYOTO UNIVERSITY 応用例:文書比較・文書検索  最適輸送コストを使って文書の距離を計算 → 語彙が被っていなくても意味が近ければ似ていると判定  「です」↔「である」のコストを大きく設定すると文体を考慮 小さく設定すると文体ではなく内容で判断 → アプリケーションに応じて柔軟に対応可能(カスタマイズ性!) 赤: 文書 1 の単語分布 青: 文書 2 の単語分布 各粒が単語に対応 単語の位置は word2vec

Slide 24

Slide 24 text

24 / 35 KYOTO UNIVERSITY 応用例:ピクセル色変換  最適輸送を使って内容を保ちつつ色味を転移  応用例:合成画像の色味や光加減の補正など 各粒はピクセル 粒の座標は (R, G, B)

Slide 25

Slide 25 text

25 / 35 KYOTO UNIVERSITY 応用例:陰的生成モデル  陰的生成モデル:ノイズを受け取ってデータ(画像など)を返す  生成モデルの良さを測るには? 出てきた画像ごと独立に見ても分からない ニューラルネットワーク ノイズ ニューラルネットワーク どんなノイズを入れても同じ画像を出す モデルは、望ましくない 画像ごとに見ると良さそうと判定されてしまう

Slide 26

Slide 26 text

26 / 35 KYOTO UNIVERSITY 応用例:陰的生成モデル  最適輸送を使って「生成した画像集合」と「本物の画像集合」の 距離をはかる ニューラルネットワーク 訓練データセット 輸送コスト 小さいほどよい

Slide 27

Slide 27 text

27 / 35 KYOTO UNIVERSITY 応用例:陰的生成モデル  生成した画像の集合と訓練データセット内の画像の集合が 最適輸送の意味で近くなるように訓練する = Wasserstein GAN  生成した画像の集合と訓練データセット内の画像の集合の 最適輸送コストで生成モデルの品質を評価 = Frechet Inception Distance (FID) 赤: モデルが生成した画像の集合 青: 訓練データセット内の画像の集合 各粒が画像に対応 画像の位置は特徴ベクトル

Slide 28

Slide 28 text

28 / 35 KYOTO UNIVERSITY 応用例:男女平等な予測  男性についての給与予測と女性についての給与予測を平等にしたい  サンプル(= 人)ごとに見ても平等かどうかは分からない ある男性の予測が高額でも、単に能力が高い妥当な評価かもしれない ニューラルネットワーク 入力 予測ヘッド 給与予測 埋め込みベクトル

Slide 29

Slide 29 text

29 / 35 KYOTO UNIVERSITY 応用例:男女平等な予測  予測誤差 + 赤と青の最適輸送コストを最小化 [Oneto+ NeurIPS 2020]  サンプルごと独立にロスを計算するのではなく、バッチ全体で 集合として公平性を実現するのがミソ Luca Oneto, Michele Donini, Giulia Luise, Carlo Ciliberto, Andreas Maurer, Massimiliano Pontil. Exploiting MMD and Sinkhorn Divergences for Fair and Transferable Representation Learning. NeurIPS 2020. ニューラルネットワーク 入力 予測ヘッド 給与予測 1600 人分の埋め込み 赤:女性についての埋め込み 青:男性についての埋め込み

Slide 30

Slide 30 text

30 / 35 KYOTO UNIVERSITY 応用例:転移学習  同様のテクニックは転移学習でも使われる  予測誤差 + 赤と青の最適輸送コストを最小化  シミュレーションデータと本番環境の差を中間層で吸収する ニューラルネットワーク 入力 予測ヘッド 予測 1600 サンプルの埋め込み 赤:シミュレーションデータについての埋め込み 青:本番環境データについての埋め込み

Slide 31

Slide 31 text

31 / 35 KYOTO UNIVERSITY まとめ

Slide 32

Slide 32 text

32 / 35 KYOTO UNIVERSITY 最適輸送は確率分布や点群を比較するツール  最適輸送は確率分布や点群を比較するのに使えるツール  カスタマイズ性が高い  クロスエントロピーや L2 距離と項目ごとに縦方向にしか見ない 最適輸送は横方向の関係も考慮する  点群の比較にも使える  なんとなく「分類問題だからクロスエントロピー」「回帰問題だから L2」 とロス関数を選んでいた方は、最適輸送を身に着けて、タスクにあった 柔軟なロス設計ができるようになりましょう!

Slide 33

Slide 33 text

33 / 35 KYOTO UNIVERSITY リソースの紹介:サポートリポジトリ  本書のサポート GitHub リポジトリにノートブックを無料で公開して います(全 20 本) https://github.com/joisino/otbook

Slide 34

Slide 34 text

34 / 35 KYOTO UNIVERSITY リソースの紹介:POT ギャラリー  最適輸送ライブラリ POT のドキュメント・ギャラリーもおすすめです https://pythonot.github.io/auto_examples/

Slide 35

Slide 35 text

35 / 35 KYOTO UNIVERSITY リソースの紹介:最適輸送の理論とアルゴリズム本  そしてもちろん、本書 『最適輸送の理論とアルゴリズム』もよろしく お願いします。 https://www.amazon.co.jp/dp/4065305144