Spherical Latent Spaces for Stable Variational Autoencodersを読んだのでメモ
はじめに
Spherical Latent Spaces for Stable Variational Autoencodersを読んだのでメモ.VAEのKL collapse(latent variable collapse)をpriorに固定のvon Mises-Fisher分布 (vMF) を使う事で回避するというもの.
論文自体は自然言語に寄って書かれていて自分は興味ないので簡潔に
von Mises-Fisher VAE
Von Mises-Fisher分布(vMF)は空間の超球上での分布で方向ベクトルと集中度パラメータを持つ.vMFのPDFは次の様に定義される.
ただし,は第1種ベッセル関数.
priorとしてを使い,変分事後分布としてはを使う.ただし,はencoderの出力,は定数として定める.以上からVAEのevidence lower boundにおけるKL項は次の様になる.
別な論文のAppendixに丁寧な証明があったので導出は省略.この式はのみに依存していて,が定数であることからKL項はfixとなりKL collapseを起こさなくなるという主張.自分の理解が間違ってなければ学習はreconstractionのみで行われるのでその辺りどうなのか.一応を変えた時のKLの値をプロットして簡単な考察をしてたけども.
vMFからのサンプルは,"change magnitude"と呼ばれるをrejection samplingによりサンプリングし,超球上のに接する単位ベクトルをサンプリングすれば,として得ることができる.
まとめ
KL項が固定になるというのがとても気持ち悪い気がするけど実験ではそれなりにうまく行ってるっぽい.
Realistic Evaluation of Semi-Supervised Learning Algorithmsを読んだのでメモ
はじめに
Realistic Evaluation of Semi-Supervised Learning Algorithmsを読んだのでメモ.PyTorchで実装もしました.実装の話はこちら.
気持ち
データを作るコストが高いことからsemi-supervised learning (SSL)は重要で,最近はそれなりのラベルデータがあればsupervisedに匹敵する性能がでる.ただ,実世界の設定に対してSSLはちゃんと機能するのかというのがこの論文が問題として提案しているところ.そこで実世界の課題に対してSSLのアルゴリズムが機能するかを評価可能な新しい実験方法を提案するという論文.実験を行う上で実際以下の様な発見があったとのこと.
・同一構成のモデルに対してラベル有りのみを使った場合とラベルなしも使った場合の性能差が報告よりも小さい.
・強力な正則化をかけてラベル有りのみで学習された分類器の性能はSSLアルゴリズムを評価する上で重要.
・異なるデータで学習されたモデルをラベル有りのみでfine-tuneした分類器は全てのSSLアルゴリズムより性能がよかった.
・SSLの性能はラベルなしデータがラベル有りデータと異なる分布のデータを含む場合に劇的に下がる.
・アプローチごとにラベル有りとラベルなしデータの量に対する性能の感度が違う.
・Varidationデータが少ないと比較結果の信頼性がない.
いくつかは当たり前な様な気もするが,こう言ったことがあるからこの論文では実験方法とともに全てのいろんなstate-of-th-art SSL手法を再実装して評価できる様にしたものも提供するとのこと(現時点ではgithubのリポジトリはあるがコードは公開されてない).
Improved Evaluation
一般的なSSLの評価方法は,教師あり学習のためのデータセットのラベルを一部を除いて捨ててラベル有りデータとラベルなしデータに分け,このデータを使って学習した後にテストデータで評価するというもの.この時,使うデータセットとラベル有りデータの数が論文によって異なるため正確な比較ができていない.主に以下の6つの項目が実問題にかけ離れているとして,これに着目して実験/評価方法を整備する.
P.1 A Shared Implementation
SSLの比較に使われる元となるモデル構造を共通化する.というのも,従来は単純な13層のCNNを異なる実装(異なるパラメータの初期化方法やデータの前処理,正則化,最適化方法など)で使っていて,ちゃんと比較できているとは言えないため.
P.2 High-Quality Supervised Baseline
SSLの目的はだけの学習に比べてとを組み合わせた学習による精度向上.このベースラインとなるだけで学習したモデルが論文によって学習の具合が違っていて,同じ条件のはずが別々の論文のベースラインを比べると最大15%程の差があるとのこと.そのため,ベースラインとSSLのチューニングにかかる計算量を同一にしようというもの.
P.3 Comparison to Transfer Learning
限られたラベル有りデータで学習する際の有効な手法として転移学習があり,これと比較しないのはおかしいだろというもの.
P.4 Consider Class Distribution Mismatch
従来の実験設定では,データセットラベルを捨ててを作るため,はに含まれるデータと同じクラスのデータを持つ.ただ,実世界の設定においてはそうなるとは限らない.つまり,例えば10種類の識別をしたい際に,ラベルなしデータの中に識別したい10種類とは違うクラスのデータが混ざっている場合がある.なので実問題に対する評価をするためにはとが異なるクラスの分布を持つ時の影響も調べる必要がある.
P.5 Varying the Amount of Labeled and Unlabeled Data
今まではとの比率を決める体系的な方法なしで比較していたが,実問題においてはがめちゃくちゃ巨大(ネットから大量に集まる自然画像で作られている)か,比較的小さい(医療データなど)の2種類に分けられる.そのためアルゴリズムごとのデータ数による性能の変動を比較すべき.
P.6 Realistically Small Validation Sets
SSLの実験の設定ではValidationデータが非常に多い.というのも,例えばSVHNデータセットを使った実験では学習用のラベル有りサンプルは1000程度に対し,Varidationデータは元のまま7000サンプルを使う.これの問題は,実問題ではこんな大きなVaridationデータは用意できず,Varidationデータを使ったパラメータのチューニング等は不可能だということ.たとえcross-validationをしたとしても不十分な上計算コスト的に厳しいと論文では主張.
Semi-Supervised Learning Methods
この論文で使うSSL手法のざっくりとした復習.
Consistency Regularization
Consistency regularizationはRealisticな摂動をデータに加えても出力は変わらないだろうという前提に基づいた手法.元のデータを,摂動が加えられたデータをとすると,の最小化問題として記述され,はMSEやKLダイバージェンスが使われる.これはデータが分布する多様体が滑らかであるという仮定に基づいていて,この考えは様座mなSSLに応用されている.
Stochastic perturbations/-Model
Consistency Regularizationの最も単純な設定は,が確率的な出力をだす,つまり同一の入力に関して異なる出力を出すというもの.これはデータ拡張やdropoutなどのことで,この時の出力が元のデータを入力した際と変わらない様にを正則化項としてつけるというのがこのモデル.これはregularization with stochastic transformation and perturbations,-Modelとして同時に提案されていて,ここでは-Modelの呼称を使う.
Temporal ensembling/Mean teacher
-Modelの課題として,不安定なターゲット(が変化するということ)を推定するところにある.そこでより安定したターゲットを得る方法が提案された.一つはTemporal Ensemblingでの移動平均の様なものを代わりとして使おうというもの.もう一つはMean Teacherで学習中の学習パラメータの移動平均的なもので定義された関数で推定された値を使おうというもの.
Virtual adversarial training
を確率的なものにする代わりに,出力に大きな影響を及ぼす微小な摂動を近似して直接に加えることで学習しようというのがVirtual adversarial trainig (VAT).摂動は次の様に効率的に計算できる.
ただし,はハイパーパラメータ.consistency regularizationはをについて最小化するときに適用される.
Entropy-based
に適用される単純な損失項は情報量を下げる(つまりカテゴリカル分布を考えたときにどこか一つのクラスが尖る)というもの.出力がsoftmax関数を通して得られた[tex]K]次元のベクトルとすればentropy minimization項は次の様に表現できる.
ただこの方法はモデルの表現力が高いと簡単に過学習する.ただVATと組み合わせることで有用な結果を生んでいるとのこと.
Pseudo-labeling
Pseudo-labelingはヒューリスティックな手法だが,その単純さと適応範囲の広さから実際には広く使われている.Pseudo-labelingはあらかじめ設定された閾値を超える確率を持つクラスを正解のクラスとしてに擬似ラベルをつける方法.ただ,推定関数が役に立たないラベルを生成してしまった際には性能を悪化させる.ただ,pseudo-labelingはentropy minimizationと似た様な性質をもち,
Experiments
P.1
P.1の課題を解決するためにモデルと最適化方法の統一をした.モデルにはWide ResNetを,特に,一般的に使われているtensorflow/modelsのリポジトリにある"WRN-28-2"を使ってAdamによる最適化をした.あとは基本的な正則化とデータ拡張,前処理もしたらしい.ベースラインとSSLに関してgoogle cloud machine learningを使ったハイパーパラメータチューニングサービスを使って"Gaussian Process-based black box optimizationを1000回走らせて各アルゴリズムごとにハイパーパラメータを最適化したとのこと.
P.2
これはP.1の結果解決されて良いベースラインが作れたとのこと.実際他の文献で報告されているほどベースラインの精度は悪くない結果となった.ただ,現在提案されてる様々な正則化やデータ拡張をするとstate-of-the-art SSL手法並みに精度が出るとの事.
P.3
WRN-28-2を32x32にリサイズしたImageNetで学習したものをCIFAR-10で転移学習して比較したとの事.論文で実験した結果最も良いSSLであるVAT+EMのエラー率が13.13%に対し転移学習したものは12.0%だったそう.ただし,ImageNetに含まれるカテゴリはCIFAR-10とモロ被りしているのでこれはかなり恵まれた条件だったと論文には記載されている.後,転移学習とSSLを組み合わせても実験するのはfuture work.
P.4
クラスのミスマッチを扱うためにCIFAR-10の6クラス分類(bird, cat, deer, dog, frog, horse)をしたとの事,ラベルなしはその他4クラスを含む(分類の6クラスを含むかは微妙.The unlabeled data comes from four classesと書いてあったから多分含まない)ものとして,ラベル有りと無しのデータの比率を変えて実験.結果ラベルなしがある一定の割合を超えたらSSLより単純な教師ありが勝った.
P.5
ラベル付きのデータ数を変えた場合,ラベルなしのデータ数を変えた場合でSSL手法の比較をした結果,アルゴリズムごとに違う振る舞いでいい発見だったという感じ.
P.6
当たり前だけどVaridationデータの数を少なくしたら評価時の分散も大きくなったという結果.
まとめ
SSLに関する問題提起の論文.避けてきた点をつくいい論文だけどgoogleの宣伝感がすごい.githubで公開するとのことだけど使うにはtensorflow使う必要があるのと(よくわからないが)同一条件で自分のアルゴリズムを試そうとしたらgoogleのパラメータチューニングサービスを使う必要がありそう.
Appendixに探索したハイパーパラメータがまとまってるのでSSLする際には役に立ちそう.
Graph Convolutional Neural Networks for Web-Scale Recommender Systemsを読んだのでメモ
はじめに
Graph Convolutional Neural Networks for Web-Scale Recommender Systemsを読んだのでメモ.30億ノード,180億エッジを持つグラフデータに対しても処理可能なrandom walkに基づくgraph convolutional neural network (GCN),PinSageを提案するというもの.
問題設定
今回扱うデータはPinterestのデータで,Pinterestはユーザーが興味のあるコンテンツ(画像)を自分のboard上にpin留めしたり他人のboardにpin留めされているデータを自分のボードにpin留めすることで交流するSNSとのこと(自分は使ったことないのでよくわからないが).データとしては20億のpinと1億のboardと180億のエッジがあるらしい.
問題としてはpinの推薦のためにpin とboard からなるPinterestの環境をモデル化することでpinの表現学習を行いたいというもの(ただし提案手法は一般化され他手法で適用範囲はPinterestに限らない).ここでの推薦というのはあるユーザーがpinしたコンテンツを,興味が近いユーザーに提示してpinしてもらうこと.つまりpinと表現しているのはpinされた画像を表し,そこには実数値が割り当てられる.
以下,表記の一般化のためグラフのノード集合をとしてpinとboardの区別をしない.
model architecture
Forward propagation algorithm
ノードの埋め込みベクトルをとその近傍のノードから生成することを考える. 基本的なアプローチとしてはノードの近傍のノードの埋め込みベクトルをノードごとにニューラルネットワークに入力した後,ReLU等の非線形関数を噛ませてプーリングにより一つのベクトルを作り出す.得られたベクトルとノードの埋め込みベクトルをconcatしてニューラルネットに入力して非線形関数を噛ませたのち,L2正規化して新たな埋め込みベクトルを得るというもの.つまり一つのノードの埋め込みベクトルを得るのに二つのNNを使うということ.
Importance-based neighborhoods
このアプローチの重要となる点の一つとして,どの様に近接のーどを定義して,前述のforward propagationにおける近接ノードの集合をどの様に選択するかということにある.一般的には-hopなどの方法が取られていたが,PinSageはノードに最も影響するであろう個のノードで定義する.最も影響する個のノードはrandom walkで訪れた回数の多い上位個のノードとして定義する.
この選び方はノード数が固定となることと,forward propagationで変換された近傍ノードのプーリング処理を行う際にL1正規化された訪れた回数を重みとして重み付き平均をとることができるという二つの利点がある.特にこの後半のプーリング処理をimportance poolingとして提案する.
Model training
モデルの学習はmax-margin ranking lossを使った教師あり学習で行ったとのこと.ラベルはitem とquery item のペアの集合で定義されていて,このペアの埋め込みベクトルが近くなることが学習の目標.
目的関数は次の様に表され,この最小化問題はquery itemの埋め込みベクトルがポジティブペア(ラベルペア)のアイテムの埋め込みベクトルとの内積が大きくなる様に,逆にネガティブペアの埋め込みベクトルとの内積が小さくなる様にする.
はアイテムのネガティブサンプルの分布で,はハイパーパラメータ.いわゆるtriplet lossのユークリッド距離をコサイン距離的なものにした感じ.
その他論文には巨大なデータで学習する際のいろいろな問題と解決方法を述べていたが割愛.
まとめ
データが巨大すぎて企業ならではな研究だなと.発表された会議の性質もあってアルゴリズムよりも実装面をかなり頑張った感じがあった.
Fixing a Broken ELBOを読んだのでメモ
はじめに
Fixing a Broken ELBOを読んだのでメモ.
気持ち
教師なし表現学習の一般的なアプローチとしてデータをで表現される様な潜在変数モデルにフィットさせる方法があげられる.通常はこのモデルを真の分布とのKLダイバージェンスを最小化する様に学習することでデータの潜在表現を獲得する.ただ,このKLダイバージェンスはほとんどの場合扱いにくく,代わりとしてevidence lower bound (ELBO)を最大化することでモデルの学習を行う.ただ,根本的な問題として,目的関数はに関する式であってに関する式にはなってないため,不自然な目的関数になっていることがあげられる.実際先行研究の結果からも,ELBOが良い表現学習をするためには十分でないことがわかっている.そこでここでは観測と潜在表現の相互情報量の側面から良い表現を導出するというのが話の流れ.以前に読んだモントリオール大の論文でも相互情報量を使った表現学習手法を提案していたが論文の時期的にはこちらが先.
相互情報量による表現学習
ここでの目標は確率的なエンコーダーを使って観測データを意味のある潜在表現に変換すること.ただしエンコーダーは同時分布,周辺分布,条件付き分布で表現される.この表現の良し悪しを測る指標として次の相互情報量を用いる.
相互情報量はある確率変数がもう一方の確率変数の情報をどれほど持つかを測る指標で次の様に計算される.
相互情報量はが独立の場合0(エンコーダーはデータの情報を一切持たない状態)になり,またの場合はのエントロピー(エンコーダーはデータの情報の全てを持つ状態)になる.
課題となるところは相互情報量の計算式に真の分布が含まれていて計算が困難なことと,周辺分布を求めるための周辺化の演算の計算が困難なこと.前者は経験分布に置き換えることで,後者は相互情報量のvariational boundsを使うことで回避できる.相互情報量の下界と上界は次の様に定められる.
はいわゆるデコーダーでを近似する役割をし,はmarginalと呼ばれを近似する役割をする.はデータのエントロピーでデータセットの分布具合を測る役割をするが,データセットの操作はできないので定数.はdistortionと呼ばれ,いわゆる再構成の良し悪しを測る項.は比率(rate)と呼ばれ,エンコーダーとmarginalのKLダイバージェンスの平均を表している.データが離散の場合にはは全て非負の値をとる.
はデータを完璧にエンコードしてデコードすることができる(再構成できる)という状態で,これをauto-encoding limitと呼ぶ.そのauto-encoding limitでもっとも小さいはによって与えられる.つまりの状態であり,この状態はであることから下界がタイトであることを表す.逆にがをうまく近似できていない場合,は大きな値をとり,がにしか関係がないため単純にコストが大きくなっている状態を表す.
はがKLダイバージェンスであることからであることを表し,がに独立であることを意味する.したがってエンコーダーはデータの情報を全く表現できておらず,表現学習が失敗していることを表す.このとき,十分強力なデコーダーを用意すればとが独立でも無理やり再構成を行うことができるため,は下界であるデータのエントロピーまで下げることができる.これはの状態を表していて,これをauto-decoding limitと呼ぶ.が固定値でが大きな値をとる場合にはがとしか関係ないため単純にコストが大きくなっている状態を表す.
最後にの状態をとる場合にはの両方が成り立つため相互情報量の下界・上界共にタイトとなる.
仮に,に関して有限のパラメータしか持たない場合,一般的に相互情報量の下界・上界はタイトになることはない.ただし,不等式を最もタイトに抑えるまたはは存在することは保証されているため,を使って最適解を求めることができる.さらに,意図的にの近似精度を下げて固定されたのもとでを増加させることや,の近似精度を下げて固定されたのもとでを増加させることが可能.
-VAEとの関係
を固定とする代わりに,最適なをの関数として考える.すると,ルジャンドル変換により,固定のの下でを解くことで最適なとを求めることができる.目的関数を陽に書き表わせば次の様になる.
これは-VAEの目的関数そのもので,仮にの場合にはVAEで使われていたELBOと一致する.は再構成誤差の項を表し,がKL項を表していることになる.ここではの場合にはが大きくてが小さくなり,の場合にはが大きくてが小さくなる.
まとめ
相互情報量の挟みうちから良いELBOを導出したということ.なんとなく生成モデル(というか表現学習)で相互情報量が注目されているのかなという感じがする.
Deep Graph Laplacian Regularizationを読んだのでメモ
はじめに
Deep Graph Laplacian Regularizationを読んだのでメモ.
気持ち
ノイズ除去等の逆問題は通常不良設定問題であるた、なんらかのpriorを仮定して解く必要がある.よく知られているpriorとしてtotal variation priorやsparsity prior,graph Laplacian regularizerなどがあげられる.最近だとCNNによる力技でかなり精度良く逆問題を解けるようになっている.ただCNNは学習ベースであるためデータセットの収集問題があったり,ハイパーパラメータの調節問題等があって扱いにくい面もある.対してモデルベースなアプローチでは一般的に学習ベースなものよりもロバストであると言われているが,実践的にはパフォーマンスと柔軟性に限界がある.
そこで学習ベースとモデルベースのいいとこ取りをすれば完璧じゃないかというのが話の流れ.そこの橋渡しを行うためにgraph Laplacian regularizerをdeep learningの枠組みに取り入れるというのが論文のコントリビューション.
Graph Laplacian regularization
Graph Laplacian regularizationはその単純さとまずまずの性能からrestoration taskにおいて画像のpriorとして広く使われているらしい.簡単に言えばある画像が適切選ばれたグラフに従って滑らかになるようにするもので,2次計画問題(QP)に使われることが多い.グラフの選び方はopen questionでいろいろなやり方が取られているが,この論文では単純な隣接グラフを使う.ただし,隣接グラフはCNNの出力から計算される点が一つ重要な点で,従来もdeepの枠組みにgraph Laplacian regularizationを取り入れた研究はあるがそれらは固定の関数を使っていてdata-drivenになっていないとのこと.
定式化
ここでは以下のように定式化されるノイズ除去の問題に焦点を絞る.
は元画像またはそのパッチではピクセル数を表す.はノイズ項では観測値.ここで,個のピクセルを頂点とした隣接グラフが与えられたとする.ノードとを結ぶ重み付きのエッジをとすれば,のadjacency matrix は要素がとなる行列になる.するとのdegree matrix は対角要素がとなる対角行列になる.この時のグラフラプラシアン はで計算される半正定値行列となる.
ノイズ除去のためのgraph Laplacian regularization付きのmaximum a posteriori problemは次のように定式化される.
第2項目がgraph Laplacian regularizationの項ではハイパーパラメータ.ここではグラフは真の画像構造を反映したグラフになっている必要がある.従来は観測値やフィルタリング処理を施したからグラフを作る.であることを考えれば,graph Laplacian regularizationはグラフのエッジの値が大きいピクセル同士の値は似た値になるように仕向ける役割をしている.つまり,TVのような上下左右のピクセルで滑らかになるようにではなく,グラフの接続が強いピクセルで滑らかになる様にするため柔軟性が強い正則化になっている.
説明のためmatrix-valued function を定義する.は行がで定義されていて,観測値を個の次元ベクトルにmapする.このはexemplarと呼ばれexemplarを使えばエッジの重みは次の様に計算される.
はの番目の要素を表し,はピクセル間のユークリッド距離で定義される.
Deep graph Laplacian regularization (DeepGLR)
提案手法のDeepGLRは二つのモジュールから構成されていて,一つはグラフを作るgraph construction moduleでもう一つは構成されたグラフを使って問題を解くQP solver.
Graph Laplacian regularization layer
この論文では従来と違い,graph Laplacian regularizationをCNNのモジュールとして組み込む.基本的にはをCNNにしたというもの(これをとする).観測画像をと定義し,観測画像を個のパッチに分割する.一般的にはパッチ毎に処理するが,ここでは全体を入力し,と同じサイズの個のexemplarを出力とする.
Exemplar画像を個のパッチに分割し,パッチごとにグラフを作る.ただし,グラフは前結合ではなく8近傍のみを使って作る.こうすることによってグラフラプラシアンは固定のパターンを持つスパースな行列になる.グラフができたら後はそれをQP solverに渡してノイズ除去された画像を得る.
DeepGLRはグラフの作成とは別にもう二つのCNN(と)を持つ.
1.Generation of () 目的関数の正則化項の重み係数を出力するCNN.
2.Pre-filtering () ノイズ除去手法では一般的に最適化の前にノイズ画像にフィルタリング処理を行うが,それを学習ベースで行うための浅いCNN.
つまるところ画像からグラフを作るためのと,前処理を行うと正則化項の係数を決めるの3つからなる.
実験においてはノイズ除去の手続きを回繰り返す,つまり個のDeepGLRモデルを積み上げて処理を行う.さらに,QP solverで逆問題を解くだけでなく正解の画像を使った次のMSEの最小化する様に学習する.
この最小化に関してはstackされたDeepGLRの最終出力のみに適用される.
Numerical Stability
ここではQP solverの安定性について考える.元々のgraph Laplacian regularization付きの目的関数は本質的には次の線型方程式を解くことになる.
は半正定値行列なためは逆行列が存在するため,というclosed-formな解を持つ.問題としてはの条件数(最小固有値/最大固有値)が大きいときunstableになってしまう.ただし,ここでは次の定理を利用すれば安定した計算をすることができる.
.
ただし,はの最大度数.
証明
の性質からの最小固有値はとなる.Gershgorin circle theoremからの上界が次の様に定まる.の番目のGershgorin discは半径を持ち,disc の中心はとなる.Gershgorin circle theoremから固有ベクトルは全てのGershgorin discのunionに存在するため,となり,が成り立つ.
以上から条件数の最大をとすれば次の関係が導かれる.
よってもしがより大きな値を出力した場合には,出力値をに切ることで安定性を持たせることができる.実験的にはとしたそう.
まとめ
そもそもGraph Laplacian regularizationなるものの存在を知らなかったのでいい勉強になった.途中でてきたGershgorin circleはRNNの初期化に関する論文で前に見たことあったけど完全に忘れていた.
Deep Spectral Clustering Learningを読んだのでメモ
はじめに
Deep Spectral Clustering Learningを読んだのでメモ.
気持ち
クラスタリングの良さは類似度の指標とデータの表現に依存する.多くの手法はデータの表現固定であったり線形の変換によって得られることが多かったり.deepな学習ベースの手法も提案されているが勾配計算が複雑な場合が多いとのこと.そこでここではミニバッチサイズに線形に比例する計算オーダーで勾配を計算することができる表現を提案する.
Notation
実数行列のフロベニウス内積(Frobenius inner product)を,行列のフロベニウスノルムをとして定義する.をムーアペンローズの擬似逆行列とする.さらに集合の相対的内部(relative interior)をとする.この相対的内部というのは初めて聞いたけど,集合の内部にアフィン包の概念を入れたものっぽい.どんな意味があるかわからないけど,グラフを扱う上で定義しないとどこかでまずいことが起こるのかなと推測.
Data
ここでは一つの行列で表現される個のサンプルの集合について考える.
Bregman divergence
Bregman divergence をとして定義する.ただし,関数は微分可能で凸な関数で,はのに関する勾配を表す.
クラスタリングの文脈で使われるBregman divergenceはユークリッド距離の2乗,KLダイバージェンス,板倉齋藤距離などで定義されることが多いらしい.
Clustering
個の観測を個のクラスタに分けるのはassignment matrix を求めることに等しい.仮定として各サンプルはただ一つのクラスタに割り当てられクラスタに所属しないサンプルはない,つまりの行ごとの和をとれば必ずになるという仮定を置く.よっては次の集合に従う.
さらに各クラスタは一つの表現ベクトルで表現されると仮定し,各サンプルはの時クラスタに割り当てられる.記述の簡略化としてとし,個の表現ベクトルを行列の形に並べたものをとして定義する.するとの元,個のサンプルをクラスタに分割する問題は次のエネルギー関数の最小化問題として定式化できる.
ただし,,のように各ベクトルを行列の形で表現したもの.
Banerjeeらは上記の目的関数の最小解ががBregmanダイバージェンスの時においてクラスタに所属するサンプルの平均ベクトルになることを示したらしい.行列で表現すればということ.ここで集合を定義すれば次の1変数に関する最小化問題として書き直せる.
Deep Spectral Clustering Learning
Constraint Relaxation
ここではの問題をベースとして考える.この最小化問題はNP-hardであるため,緩和問題を考える.まずはをとして緩和する.ただし,はを含むランクのの対角行列.この緩和された問題は次のように定式化できる.
ただし,上記はに関連しない項は式から除外している.
嬉しいことにこの解はclosed-formに求まる.と定義した時ならば,この問題の解はとなる.特にならば,でとなる.(証明はsupplementary materialにあるらしいので今度読む.)
以下,学習サンプルの次元がより大きくなく,を満たす場合のみを考える.もしならば,解の集合はとして考えられる.
Structured output prediction
まず,個のサンプルと,パラメータとする埋め込み関数が与えられたとする.ただし,はで,表現ベクトルを行列にまとめたものをとする.また,正解のassignment matrix は与えられているものとする.ここでの目標は,の正解のクラスタリング行列をとすれば,緩和問題から得られた行列が真のクラスタリング行列に可能な限り近づくような埋め込み関数を学習することとなる.
以下では行列はに依存する変数として考える.行列の真のクラスタリングとから推定されたクラスタリング間の相違度を最小化する問題は次のempirical risk minimizationとして定式化できる.
ここでのとる全ての行列が同じランクである場合,上の問題はとして書ける.この時が定数となることから次の問題と等価として扱える.
この問題は次のような下界を持つ.(証明はsupplementary material)
ただし,.この下界はの時に等号が成り立つ.
この下界の最適化の難しいところはとの両方に依存するところ.が定数と仮定した時,この問題は微分可能となりに関する勾配は次のように計算できる.
ただし,は単位行列.この論文の実験においてはは常にフルランクで,ランクが定数になるという条件を満たしていたとのこと.
complexity
この計算が閉形式を持つだけでなく,その計算コストがサンプル数に線形,次元に対して2乗オーダーであることを示す.が真のクラスタを表す行列とする.ただし,行列は与えられている.をの列とすると,の列はと記述できる.の計算コストはが疎であることからに線形になる.の関係を使えばは次のように書ける.
は計算結果が行列であることを表し,はが疎であることから効率的に計算ができる.の計算コストはになる(の仮定が成り立つ場合には).
Learning deep models
ここまで議論してきた手法を使ってニューラルネットを学習する.まず,ミニバッチの行列表現をとする.ただし,,つまりオリジナルのデータをニューラルネットで変換して得られた特徴ベクトルを並べたものが.すると学習のための目的関数は次のように表現される.
が教師データで,この目的関数は微分が可能であるためニューラルネットはbackpropを使って学習が可能.さらにこの方法の良いところはがの場合に限らず,例えばKLダイバージェンスを使った確率分布の分割が目的の場合にはニューラルネットの最終層にsoftmaxを使うことでは次元の単体上に構成することができる.
まとめ
今回証明までは読めてないのでなんとも言えない部分が多くなってしまった.とりあえずニューラルネットを使った非線形の変換をgraph-based clusteringの枠組みに持って行って,離散最適化問題を緩和することでうまいことbackpropの枠組みに落とし込んだというのが大体の流れ.特に目的関数の勾配がclosed-formに求まることが論文の推しでこの界隈で初めてのアプローチと言っていた.
なんとなくgraph-based clusteringとDNNはもう少しいろんなことに使えそうな気がするけど意外と論文は多くない気がする.
Flow-GAN: Combining Maximum Likelihood and Adversarial Learning in Generative Modelsを読んだのでメモ
はじめに
Flow-GAN: Combining Maximum Likelihood and Adversarial Learning in Generative Modelsを読んだのでメモ.簡単に言えばGANのgeneratorをflow-basedなモデルに置き換えて密度推定もできるようにしたというもの.
notation
データの分布をとし,パラメータを持つモデルによって表現される分布をとする.とのダイバージェンスを最小化することで最適なを見つけることが目標.
以下,この論文の基礎となる最尤推定とadversarial trainingについて.一般的な内容なのでさっくりと
Maximum likelihood estimation
データ分布とモデル分布のKLダイバージェンスを最小化することを考える.この場合の目的関数は以下のようになる.
がパラメータと独立しているため,上記の最適化問題は次のように書き換えられる.
この目的関数を使って学習することは,モデルの密度関数を陽に計算できるということを要求する.
Adversarial learning
KLダイバージェンスを含むダイバージェンスの一般化は次のように表現される.
はモデルのパラメータの集合.このの選び方でJensen-ShannonダイバージェンスのようなダイバージェンスやWasserstein距離のような指標が導かれる.
GANでは次のような目的関数が提案されている.
この目的関数ではモデル分布からのサンプリングが要求される.そのため,サンプリングしやすいモデルを使って以下のminmax問題を解くことで最適なモデルのパラメータを見つける.
結果として得られるモデルは容易にサンプリングを行えるがモデルの密度を陽に計算することはできない.
Flow Generative Adversarial Networks
ここからが本題.結局adversarial learningは綺麗なサンプルを生み出せるけど尤度の推定ができないところが問題で,最尤推定を基礎とする手法はサンプリングがしにくかったり表現力が乏しかったりする.そこでadversarial learningの恩恵を受けつつ尤度推定可能なFlow-GANを提案する.
Flow-GANは言ってしまえばGANのgeneratorをnormalizing flow modelにしたもの.Normalizing flowに関しての詳細は別のメモを参照.Normalizing flowのモデル分布は次のように計算できる.
はパラメータを持つ逆変換可能な関数で,事前分布に関数のヤコビアンの行列式をかけることで分布を陽に計算することができる.これは確率分布の変数変換の公式から導かれる関係.のヤコビアンの計算が用意で事前分布が扱いやすいものだったらデータ点の尤度を評価することができる.または逆変換が可能なためサンプリングも可能.
目的関数
重要なのはFlow-GANをどのような目的関数で学習させるか.この論文では単純に最尤推定とadversarial trainingを組み合わせた関数を考えたそう.つまり次の目的関数を最適化する.
ここではadversarial lossはWGANで提案されていた式を使ったとのこと.すなわちdiscriminatorは1-Lipschitzを満たす.
まとめ
実験ではNICEとRealNVPをgeneratorとしていたためいまいちパッとする結果にはなってないが今だったらglowがあるのでどんなもんかなあというところ.