Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

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

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

Forkwell Library #18 『最適輸送の理論とアルゴリズム』 https://forkwell.connpass.com/event/274611/ での講演スライドです。

最適輸送の基本的な考え方と応用例を紹介します。

『最適輸送の理論とアルゴリズム』好評発売中! https://www.amazon.co.jp/dp/4065305144

佐藤竜馬 (Ryoma Sato)

February 28, 2023
Tweet

More Decks by 佐藤竜馬 (Ryoma Sato)

Other Decks in Research

Transcript

  1. 2 / 35 KYOTO UNIVERSITY 自己紹介: 京大で最適輸送や GNN を研究してます 

    名前: 佐藤竜馬  京都大学博士二年  機械学習・データマイニングを幅広く研究しています  専門:最適輸送・グラフデータ・推薦・検索システム  自慢: 主著論文たくさん書いてます(NeurIPS, ICML, WWW など) 競技プログラミング強いです(レッドコーダー・日本代表など)  講演者近影
  2. 5 / 35 KYOTO UNIVERSITY 最適輸送は確率分布を比較するツール  本日のトピック: 最適輸送 物流や交通整理の話ではない!

    まずはこれだけでも覚えて帰ってください 最適輸送は確率分布を比較するのに使えるツール take home message
  3. 8 / 35 KYOTO UNIVERSITY 最適輸送はカスタマイズ性が高くて便利  ロス関数としてはクロスエントロピーロスが有名  なぜわざわざ最適輸送を学ぶ必要が?

     カスタマイズ性が高い  特殊ケースとして点群や集合の比較ができる  点群の比較には様々な応用がある(後述)
  4. 14 / 35 KYOTO UNIVERSITY ヒストグラム比較の場合の例  クラス確率(ヒストグラム)比較の場合  項目間のコストはユーザーが設計する

    猫→虎 は 猫→鳥 よりも低いコストで移りあえるとする、など これにより高いカスタマイズ性を実現
  5. 15 / 35 KYOTO UNIVERSITY クロスエントロピーや L2 は項目ごとの和  クロスエントロピーロス(KL

    ダイバージェンス)や L2 ロスが有名  項目ごとに独立に足し合わせているのがポイント 犬 猫 虎 鳥 予測分布 正解ラベル 従来の比較 犬 猫 虎 鳥 縦方向の差 だけを見る
  6. 16 / 35 KYOTO UNIVERSITY 従来法は項目の間違い度合いを考慮しない  従来の方法(クロスエントロピーや L2)では 三毛猫をペルシャ猫と間違えた場合も、

    三毛猫を象と間違えた場合も等しくペナルティを受ける ペルシャ猫 三毛猫 象 ペルシャ猫 三毛猫 象 三毛猫をペルシャ猫と間違えた 三毛猫を象と間違えた
  7. 17 / 35 KYOTO UNIVERSITY 最適輸送は項目関係を考慮できる  最適輸送コストを使うと、三毛猫をペルシャ猫と間違えた場合は 低ペナルティ、三毛猫を象と間違えた場合は高ペナルティを受ける 

    どの項目間の間違いを多目に見るかはアプリに応じてユーザーが設計 自動運転で「車→バス」は低コスト、「人間→道路」は高コストなど ここの輸送は低コスト ここの輸送は高コスト ペルシャ猫 三毛猫 象 ペルシャ猫 三毛猫 象 三毛猫をペルシャ猫と間違えた 三毛猫を象と間違えた
  8. 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 への輸送コスト
  9. 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) ↑ コピペで試せます
  10. 22 / 35 KYOTO UNIVERSITY 応用例:文書比較・文書検索  ナイーブな方法は bag-of-words ベクトルの

    L2 距離で比較 = 単語ごとの出現数で比較 → 同じ意味でも語彙が違えば似ていないと判定されてしまう 2 つの文書は 似ている? 文書検索など
  11. 23 / 35 KYOTO UNIVERSITY 応用例:文書比較・文書検索  最適輸送コストを使って文書の距離を計算 → 語彙が被っていなくても意味が近ければ似ていると判定

     「です」↔「である」のコストを大きく設定すると文体を考慮 小さく設定すると文体ではなく内容で判断 → アプリケーションに応じて柔軟に対応可能(カスタマイズ性!) 赤: 文書 1 の単語分布 青: 文書 2 の単語分布 各粒が単語に対応 単語の位置は word2vec
  12. 25 / 35 KYOTO UNIVERSITY 応用例:陰的生成モデル  陰的生成モデル:ノイズを受け取ってデータ(画像など)を返す  生成モデルの良さを測るには?

    出てきた画像ごと独立に見ても分からない ニューラルネットワーク ノイズ ニューラルネットワーク どんなノイズを入れても同じ画像を出す モデルは、望ましくない 画像ごとに見ると良さそうと判定されてしまう
  13. 27 / 35 KYOTO UNIVERSITY 応用例:陰的生成モデル  生成した画像の集合と訓練データセット内の画像の集合が 最適輸送の意味で近くなるように訓練する =

    Wasserstein GAN  生成した画像の集合と訓練データセット内の画像の集合の 最適輸送コストで生成モデルの品質を評価 = Frechet Inception Distance (FID) 赤: モデルが生成した画像の集合 青: 訓練データセット内の画像の集合 各粒が画像に対応 画像の位置は特徴ベクトル
  14. 28 / 35 KYOTO UNIVERSITY 応用例:男女平等な予測  男性についての給与予測と女性についての給与予測を平等にしたい  サンプル(=

    人)ごとに見ても平等かどうかは分からない ある男性の予測が高額でも、単に能力が高い妥当な評価かもしれない ニューラルネットワーク 入力 予測ヘッド 給与予測 埋め込みベクトル
  15. 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 人分の埋め込み 赤:女性についての埋め込み 青:男性についての埋め込み
  16. 30 / 35 KYOTO UNIVERSITY 応用例:転移学習  同様のテクニックは転移学習でも使われる  予測誤差

    + 赤と青の最適輸送コストを最小化  シミュレーションデータと本番環境の差を中間層で吸収する ニューラルネットワーク 入力 予測ヘッド 予測 1600 サンプルの埋め込み 赤:シミュレーションデータについての埋め込み 青:本番環境データについての埋め込み
  17. 32 / 35 KYOTO UNIVERSITY 最適輸送は確率分布や点群を比較するツール  最適輸送は確率分布や点群を比較するのに使えるツール  カスタマイズ性が高い

     クロスエントロピーや L2 距離と項目ごとに縦方向にしか見ない 最適輸送は横方向の関係も考慮する  点群の比較にも使える  なんとなく「分類問題だからクロスエントロピー」「回帰問題だから L2」 とロス関数を選んでいた方は、最適輸送を身に着けて、タスクにあった 柔軟なロス設計ができるようになりましょう!
  18. 34 / 35 KYOTO UNIVERSITY リソースの紹介:POT ギャラリー  最適輸送ライブラリ POT

    のドキュメント・ギャラリーもおすすめです https://pythonot.github.io/auto_examples/