TASK2VEC: Task Embedding for Meta-Learning

 

TASK2VEC: Task Embedding for Meta-Learning

論文 https://arxiv.org/abs/1902.03545

タスクの類似度評価指標を提案。

ImageNETでpre-trainしたモデルを、タスクにあわせてClassifier部分だけretrainする。

そのあと、どのクラス出力と、どのChannel(Filter)の関係性が大きいのか、フィッシャー情報量を利用して評価する。

イメージとしては、重みWに摂動ΔWを加えたときに、予測出力が大きく変化する(KL距離で評価)ような場合は、クラス予測によって重要な特徴量であると言える。

実験結果では、全く異なるデータセットではあるが、たとえば鳥の種類を識別しようとしているタスク同士がEmbedding後の空間で近傍に射影されるなどしている。

(なお、これだったら特定タスクを解くときにどの特徴量がActiveになっているか?を評価するだけでタスク空間を得られる気がするが、どうやらそれでは上手くいかなかった様子。識別に用いない特徴量が関係なくActiveになることがあるからかな?)

【9月でもチャンスあり!】ラグビーW杯のチケット(開幕戦&決勝戦)をゲットした手順

はじめに、この方法で私は8月末になってからでも開幕戦と決勝戦を2枚ずつ手に入れました。(正直もうあきらめてました)

もう既にこの手の釣りサイトが多いと思うので、釣りでないと安心頂くために結論だけ先に書きますね。ラグビーファンが少しでも希望のゲームを観戦できるよう願いを込めます。

0.不正な方法は使いません、ただし確実にチケット確保できる保証もありません

1.狙うのはリセールチケット

2.毎日11:20~14:00が在庫復活しやすい

3.在庫復活前から『買い物かごに入れる』を繰り返しクリック(★重要)

公式チケットサイト




ラグビーW杯のチケットサイトは『F5』などでブラウザ更新してしまうと不正アクセスとなったり、再ログインを求められます。これでは再ログイン作業も手間ですし、在庫復活の瞬間に『買い物かごに入れる』をクリックできる確率はグンと下がります。

1番の重要ポイントは、チケットを選択しなくても『買い物かごに入れる』がクリック可能なこと、そして、チケット選択せずに『買い物かごに入れる』をクリックすると『チケットが選択されていません』のメッセージとともに同じ画面がループすること。

つまり『F5』やブラウザ更新をすると不正アクセスになってしまうので、その代わりにチケット選択しないまま『買い物かごに入れる』をクリックすることで在庫状況を更新するのです。

 

↑このように『現在在庫なし』の状況でもいいので『買い物かごに入れる』をクリックして在庫状況を更新し続ける。

 

この方法だとポチポチ押下することで4秒に1回は在庫状況を更新できます。もちろんチケットサイト上で買い物操作をし続けているわけなのでログアウトにもなりません。

あとはリセールの在庫が補充されるのを辛抱強く待つのみです。『買い物かごに入れる』をクリックして画面ループしている間に、パッとチケット在庫補充されて選択可能になることがあり、そのときにすかさず買い物かごに入れましょう。

 


おまけ

さて、ここまでくると『そんな暇人みたいなことできるか!!』と怒りの声が届きそうですね、ごめんなさい。一生に一度なので頑張りたいところですが、精神がすり減ってしまうのでオートクリックなどのツールを使うのもアリです。

『ICML 2019 読み会 in 京都』に登壇してきました

オムロン京都本社にて恒例となりつつある機械学習関連の論文読み会、NIPSにICLRにと開催してきましたが今回はICMLです。

いまのところ毎回登壇して皆勤賞です、今回はGoogle社が提唱したFederated Learning関連の論文を選択しました。

 

簡単に言うと、複数のクライアントがデータを1箇所に集約して機会学習したのと同等効果を、クライアント間のデータ共有なしに非集中環境の機械学習で実現するのがFederated Learningという技術です。

このとき、データ量だったりクラス分布に偏りがあると、あのクライアントのデータはよく識別できるのに、あのクライアントのデータは識別できないといった状況になりうるので、ええ感じに工夫しましょうという論文です。

 

質疑応答の内容はこちらにTweetでまとめています

 



LT枠の発表

こちらもFederated Learning 関連論文から選択

 



個人的に収穫だったのは、生物学的なアプローチをとっている論文を紹介頂けたこと。こういう自分では読まなそうな研究と出会えるのがこの活動の醍醐味でもありますね。

Ubuntuで真っ暗画面のままログインできない

「recommend」と書かれたNVIDIA-driverをinstallしたら画面が真っ暗になった

 


GUIでログイン画面が表示されない
Ctrl+Alt+F1したが仮想コンソールも出ない

このとき参考にしたサイト
https://qiita.com/mdo4nt6n/items/b439b81e7c10b95ee7c5

  1. “Advanced options for ubuntu”で起動
  2. “recovery mode”で起動
  3. rootを選択
  4. コマンドラインで下記を実行
    $ sudo apt-get –purge remove nvidia-*
    $ sudo apt-get –purge remove cuda-*

 

これでGUIは復活しました

で、、、私はいったい何を信じて、どのVer.をインストールすればいいのだ・・?

ICLR2019読み会in京都に登壇しました

ちょっと遅れながらの更新ですが、6月2日に京都オムロン本社で開催されたICLR2019読み会に登壇しました

リンク:ICLR2019読み会in京都

 

私の発表はさておき、ABEJA白川さんのゲスト講演が最高におもしろかった(学術的な興味と笑いを取るという二重の意味でおもしろかった)ので、ここにメモしておきたい。

 


ヒトの機械学習

第1部は、店舗ソリューションの話、年齢推定がなぜ難しいかという話。

第2部は、アノテーションを正確にすることの重要性の話。

第3部は、感情推定と双曲空間の話。

個人的に気になったのは2点、アノテーション品質を定量的に測ることが出来るのメトリックが求められるようになってきているのではないか?、そして平面と球面と双曲空間の使い分けについて(それぞれに適した典型的なデータ例は何か?)

前者についてはその場で質問させて頂き、メトリックの必要性は勿論YESで、センサ側とあわせて一緒に努力を重ねていこうという結論に。


私の発表

25分の論文紹介だけでなく、LT枠でも発表しました。幸いにもたくさんのご質問を頂戴して、多くの方に発表内容をご理解いただけたのかなと思いました。

質疑応答も途中で誤魔化さずちゃんと徹底的に議論できますた。関東から参加してくださった学生様からとても詳細で鋭い質問を頂きました。おかげで楽しいディスカッションが出来たと同時に、周囲の理解も深まったように感じます。(ありがとうございました)

 

 


 

コンセプトとして学術的な内容を現場価値に繋げるというものがありまして、論文内容の理解に留まらず、どんな使い方があるか?誰にとって役立つかということまで議論ができて、今回もとてもよい1日となりました。

運営の皆様、ご発表の皆様、参加者の皆様、ありがとうございました。

GANとVAEの一覧とまとめ

久しぶりに記事を更新します、ロードローラーです。

今年はICMLとCVPRがロングビーチで連続開催ですね!

潜在空間の操作やDisentangleが大好きな私としては周辺研究をチェックしてきたいと思います。

そんなこんなで、出国前に軽く整理しようと思ってまとめました

 

VAE


AutoEncoderの潜在変数(中間特徴量)のzに事前分布を仮定する。これにより特徴量の連続性を担保したり、潜在変数がスパースになること防ぐ。

β-VAE


VAEでは潜在変数の分布が仮定した事前分布にFITするように、KL距離を最小化させるような制約を設ける。このKL距離による制約を変数βによって調整すると、分布をフィットさせる圧力が強くかかる。その結果として潜在変数の各成分の独立性が増して、MNISTだと角度や文字太さといった成分が潜在変数の特定の成分に対応するようになる。

なお、学習がある程度進むと『全ての成分が独立』というのは実現困難らしく、相互情報量を許容するためにKL距離をゼロに近付けるのではなく定数Cに近付けるようにする。これにより情報損失(潜在変数zから元々のデータxが復元できない状態)を防ぐ効果がある。

joint-VAE


β-VAEでは潜在変数をだいたい正規分布にフィットさせていた。これではdisentangleに成功してsemanticで独立な成分を抽出できたとしてもContinuous(連続値)のみとなってしまう。実際にはMNISTにおけるDIGIT-ClassのようなDiscrete(離散値)も存在する。そこで、GumbelSoftmax分布をβ-VAEに併用することで離散値にも対応可能に拡張した。

GAN


もはや説明不要だろう、元データxと、ノイズzから生成したx’を見分けられないように(分布が重なるように)学習することで、本物そっくりのX’を生成する。

Conditional-GAN


GANの弱点として、(生成画像は本物らしければよいので)なるべく生成が得意なパターンのxばかり生成してしまう性質がある。

例えばMNISTでGANを学習したとき、たまたま『8』は上手に生成できるようになったとしよう。このとき、『8』ばかり生成しておけばDiscriminatorを騙せるので、結果的に『8』ばかり生成して、他の数字は生成されにくくなる欠点がある。

これに対処したのがConditional-GANである。Generatorに条件yを一緒に入力することで条件に適したx’を生成させる。Discriminatorにも条件yを一緒に入力することで、x’が本物らしいかどうか?という判定と同時に、条件yに適しているかという判定もするようになる。(条件yに適していなければ、例えばyに『2』を指定したのに『8』が生成された場合、即座に生成データと見抜かれてしまう)

info-GAN


Conditional-GANは条件指定しながら画像生成できるようになる技術だったが、それに対してInfo-GANの目的はDisentangle Representationの教師無し取得にある。

ノイズzとは別途で変数cを設けておいて、生成されたx’とcの相互情報量が大きくなるよう学習する。すると、結果的に変数cがConditionに対応するようになる。

pix2pix


異なるドメインのペア画像を大量に準備して、敵対学習によってドメイン変換方法を教師付き学習する。大量のペア画像を準備しないといけない点が課題視されている。

Cycle-GAN


pix2pixのペア画像を準備しなければならない課題を解決して、Reconstructionと敵対学習をベースとして教師なしにドメイン変換手法を学習する。

star-GAN


Cycle-GANでは学習によって構築したモデルは1:1のドメイン変換が出来る。しかし言い換えれば、nパターンのドメイン変換をするにはn回のモデル構築が必要となる。

そこで、1:nのドメイン変換を一気に学習できるよう拡張したものがsstar-GAN。

 

以上

USPS download link has changed

if you have “wget can’t download – 404 error” when downloading USPS dataset, please update url.

OLD

“https://raw.githubusercontent.com/mingyuliutw/CoGAN_PyTorch/master/data/uspssample/usps_28x28.pkl”


New

“https://raw.githubusercontent.com/mingyuliutw/CoGAN/master/cogan_pytorch/data/uspssample/usps_28x28.pkl”

 

 

NeurIPS2018読み会@PFNに登壇してきました

こんにちはロードローラーです。先日は京都のNeurIPS読み会で登壇してきましたが、今回はPFNさん開催のNeurIPS読み会に登壇してきました。もっと色々な論文を紹介できればよかったのですがスライド作成の手間もあり、資料は使いまわしの発表となっています。

 

発表後の質疑応答では英語で質問を頂いて予想外の事態にたじたじに、、、司会者の比戸さんが翻訳フォローをしてくださりなんとかご回答できました。

なお、この論文はPytorchによる実装が著者によって公開されていますのでご参照ください。

A Unified Feature Disentangler for Multi-Domain Image Translation and Manipulation (Git)

 

追記:勉強会の資料一覧

https://connpass.com/event/115476/presentation/

 


 

他のご発表(Twitterによるメモ貼り付け)

双曲空間(@ABEJAの白川さん)

めっちゃ難しかったですが、めっちゃ面白かったです

紹介論文 Hyperbolic Neural Networks (NeurIPS’18)

今までユークリッド空間でアレコレといろんな問題を解いていましたが、双曲空間で解こうとしたらこんなメリットがあるよ!という研究内容

論文アブストでも「Hyperbolic spaces have recently gained momentum in the context of machine learning due to their high capacity and tree-likeliness properties.」と述べられています。

ユークリッド空間のスカラー倍は、双曲空間では接空間上の指数処理や対数処理で表現できるなど、なんというか双曲空間への強い愛を感じる研究内容でした。

 

背景知識については、白川さんのブログでまとめられています。(私もこれから読みます!)

 


GANやDisentangleのまとめ

会場からは『disentangleの定義は?』との質問がでました。非常に難しく本質を突いた質問だと感じました。(おそらくタスクで解きたい事象に起因する特徴量と、それ以外に起因する特徴量を陽に分解することですが、数学的な定義は難しいなぁと。前者はタスクに有効で、後者ではタスクを解くのが難しいというのを数学的にどう定義するかがポイントになりそうですね。)


単語分散表現の最適次元数について


AutoML(@PFN佐野さん)

大学同級生の活躍を見れて嬉しいと同時に、発表内容も非常に面白かったです。


Ordered boosting with Ordered TS

流行のBoosting手法が抱える課題を丁寧に説明して、この手法でどう解決したのかを紹介してくださいました。


GNN


おまけ

とても嬉しいお言葉を頂きました

RuntimeWarning: More than 20 figures have been opened. (matplotlib.pyplot)

jupyterなどでループまわしながら実験結果を描画しているとよくある警告

RuntimeWarning: More than 20 figures have been opened.

内容としては「figを開きすぎててメモリ亡くなるぞ!」というもの。つまり必要ないものは都度閉じてやればよい。

だいたい「plt.close()」で片づけることが多いが、私のお勧めは下記の対策。

plt.savefig(OUT_DIRECTORY + 'figure.png')
plt.close('all')

このほうが確実。