Stimulator

機械学習とか好きな技術話とかエンジニア的な話とかを書く

最適輸送本イベントに寄せて学ぶ

はじめに

Forkwell Libraryという書籍の著者が登壇するイベントにて、最適輸送の理論とアルゴリズム (機械学習プロフェッショナルシリーズ) の佐藤さん(@joisino_)と話す時間を頂いた。
forkwell.connpass.com

スライド
動画

その時に事前に学んだメモの公開と、当日のイベントの肌感を残す。

最適輸送の理論とアルゴリズム

MLPシリーズの書籍

最適輸送の理論的な背景から応用まで書かれている。
私個人としては、幾何や統計、測度についてお気持ちレイヤーまで分かる、機械学習コンピュータサイエンスなら少しわかる、くらいの私でもちゃんと読めるように、深く入り込まず難しい所に例示を出して優しく書いてくれている上、応用事例まで付いてくるありがたい本。


サポートページとしてGitHubリポジトリも用意されている。
github.com
書籍内にあるアルゴリズム、最適輸送での画像操作事例など、jupyter notebookで各サンプルが動かせるようになっている。
一通り動かしたが、数式で分からない所は大体この例示で解決する気がする。ありがたい。


ざっくりこんな感じになっている。

1章 各種定義
2章 最適化問題としての定式化
    輸送計画とリサイクル業者のイメージ、双対問題
    ボールによる物理的解釈
    最適輸送問題の疎性
    組合せ最適化、線形計画法、最小費用流問題(minimum flow cost problem)
3章 エントロピー正則化、シンクホーンアルゴリズム
    エントロピー正則化つき問題は強凸、最適解が一意に定まる、微分可能
    シンクホーンアルゴリズムは「ソフトなC変換」であり「行列スケーリング」
    行列計算なのでGPU+畳み込みで高速化できる
    シンクホーンは大域収束性、計算量
4章 GANと最適輸送
5章 スライス法、1次になおして貪欲法
    カーネル的、木による階層クラスタリング
6章 KL、JSダイバージェンス、MMD、ワッサースタイン距離
7,8章 不均衡最適輸送→ワッサースタイン重心
9章 グロモフワッサースタインで2つの異なる分布を比較

ML屋視点でしんどいのは2章の確率測度が関わる証明と3章の計算量の証明辺り。
イベント内で佐藤さんも「証明は全て読み込む必要はないので是非読み進めてもらって」と仰っていたので、そこを抜ければ4章以降は線形代数とMLでよく使われる知識があればスッと読み進める事が出来る。

7章で「不均衡最適輸送って応用があるのねふむふむ…」くらいに思ってたら、恐ろしくスムーズな流れで9章で「あれ、最適輸送めっちゃ便利じゃん…」ってなる。

ML屋がツールとしての最適輸送を学ぶ上で最良だと思う(宣伝)。

事前学習

何に使われているか。

「2つの分布の距離として使う、比較する」「2つの分布の中間状態を捉える」というツールと捉える事ができる。


Wasserstein GANでMLから着目を浴びたとされているが、WGANの話は書籍を読むと流れが把握できる。


つまり色々使える。
KLダイバージェンスの強い版、教師なしアラインメントな損失関数と捉える事もできる。
直近スケーリング則より良い学習データをサンプルした方が良いという動きもあり、分布を利用したSamplerにもなり得る。
複数のDNNモデルのタスクを複合的に扱ったり、埋め込み空間としての活用も進んでいきそう。

 

何が嬉しくて使われているのか

端的にMLにとって嬉しい点をまとめる

  • 複数の問題を並列に扱える
  • データが少ない、教師なしでも扱える
  • コストが微分可能
  • 分布の全体の状態、内部の状態を上手く扱える
  • 2つの分布に重なりが無くても近似できる
    • 数理最適化では計算量が大きくなる
    • 最適輸送におけるシンクホーンアルゴリズムやスライス法が良い
      • これらが行列計算なのでGPU上で扱える

事前、並行して読むと良いもの

大まかにまとめてくれているもの

  • 最適輸送の解き方, Ryuma Sato
    • 最適輸送の解き方
    • 今回のイベントスピーカーでもある佐藤さんのスライド
    • それぞれの手法のメリデメが端的かつ分かりやすくまとめられている

イベント当日のQ&A

いくつか良かったQ&Aのメモ、順不同

  • KLダイバージェンスと比較していたが、f-divergence、Bregman divergence、integral probability metricsと比較すると
    • 最適輸送はIPMの一種、クロスエントロピーはf-divergenceの一種
    • 最適輸送はカスタマイズ性と一般性が良いよ
    • 6章読むといいぞ!
  • 競プロで使える?
    • 最小費用流問題なので知っておいて損はないよ
    • ICPCの後ろの方とかでは出てくるよ!
  • 最適輸送で分かってないトピックはある?
    • 連続分布をサンプリングしたら点の集合が得られるが、その時に精度良く近似になっているかとか
    • 分布の最悪ケースとか
      • 最悪ケースとは?
      • いわゆる意地悪な分布に対してどこまで出来るのか、定式化
  • 時系列では扱える?
    • 時系列でDTWっぽいことをやる、も研究されてるよ
    • 物理とか生物では、細胞の動きのモデリング等で大昔から使われている
  • 広義の拡散モデルと言えたりする?
    • 拡散モデルとの繋がりは指摘されている
    • フォッカー・プランク方程式 (Fokker–Planck equation)とかで検索すると良いよ
  • 最適輸送という訳が「輸送コスト最適化」のようなイメージを植え付けるのでは?「分布の比較」としての名前を付けるとしたら?
    • 難しい、そもそも英語がOptimal Transportなので
    • 古い論文ではOptimal Transportionだった、MLブームにつれてOptimal Transportに
  • 理論をプログラムに落とすの難しい、という人が多そうだけどどう思う?
    • シンクホーンなど理論の割にはコードが簡単になるのが人気の理由の1つではないか
    • 最適輸送に関しては簡単というのが印象
  • 基礎、応用で読むべき本はある?
    • 「最適輸送の理論とアルゴリズム」をまず読んでみて欲しい
    • Computational Optimal Transport
      • ちょっと広い範囲、応用も含まれている
      • 公式pdfがarXivに公開されてるので是非
    • Optimal transport, old and new
      • 数学者が書いた1000ページある本
      • 数学的な細かい定義、どういう条件が揃ったら使えるか等

おわりに

Forkwellの人がお手上げになり、最適輸送本の回はモデレータ出来ないかもという事で1週間程前にお話を頂いて、最適輸送をツールとして何となく知っているくらいから一気に学習したので、学部のゼミの気分だった。

難しい。

イベントでは、かなり優しく最適輸送の事例を紹介して頂いて、ありがたかった。

ありがて〜