Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

joisino
February 28, 2023

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

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

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

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

joisino

February 28, 2023
Tweet

More Decks by joisino

Other Decks in Research

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

  4. 4 / 35 KYOTO UNIVERSITY
    本題

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    三毛猫をペルシャ猫と間違えた 三毛猫を象と間違えた

    View Slide

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

    三毛猫をペルシャ猫と間違えた 三毛猫を象と間違えた

    View Slide

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

    View Slide

  19. 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 への輸送コスト

    View Slide

  20. 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)
    ↑ コピペで試せます

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  29. 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 人分の埋め込み
    赤:女性についての埋め込み
    青:男性についての埋め込み

    View Slide

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

    View Slide

  31. 31 / 35 KYOTO UNIVERSITY
    まとめ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide