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


おまけ

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

A DIRT-T APPROACH TO UNSUPERVISED DOMAIN ADAPTATION (ICLR’18)

A DIRT-T APPROACH TO UNSUPERVISED DOMAIN ADAPTATION (ICLR’18)
Rui Shu, Hung H. Bui, Hirokazu Narui, & Stefano Ermon
Stanford University, DeepMind


概要
・UNSUPERVISED DOMAIN ADAPTATIONの手法を提案
・同じ正解ラベルのデータは特徴量空間でも同じクラスタに属するという仮定を利用

従来手法
・SourceとTargetの特徴量分布の相違を最小化することで、ドメイン不変の特徴量を抽出する

従来手法の課題
・Feature Functionが高次のとき、SourceとTargetの特徴量分布が互いに素になりやすいため、ドメイン不変というアプローチは有効でない。
・Sourceドメインでの性能を向上させるほどTargetドメインでの性能が劣化する。

提案
・SourceドメインとTargetドメインの共用識別器を、Targetドメインの専用識別器に仕立て上げる手法”DIRT-T”を提案。

キーアイデア1「VADA(VAT手法+条件付き情報量の最小化)」
・特徴量空間におけるクラスタの存在を仮定して、クラスタ同士の重なりを最小化するよう条件付き情報量最小化のLossを設計。
・識別器がリプシッツ連続でないと、上述のLossの効果がイマイチであることが知られているため、VATによりプシッツ連続性を確保。
・従来のAdversarial Domain Adaptationにこれらを組み合わせる。

キーアイデア2「DIRT-T(判別境界の逐次的改善)」
・VADAによって構築したSourceドメインとTargetドメインの共通識別器をベースに、Target専用識別器へと改善していく。
・Targetドメインのみで(※先ほどはSourceドメインとTargetドメインの両方)、条件付き情報量最小化とVATにより識別器を学習。

 

 

条件付き情報量の最小化についてはコチラを参照
Semi-supervised Learning by Entropy Minimization

VAT手法についてはコチラを参照
Virtual adversarial training for semi-supervised text classification(2016)

元論文
A DIRT-T APPROACH TO UNSUPERVISED DOMAIN ADAPTATION (ICLR’18)

DIRT-TはGitでも公開中
DIRT-T

Tutorial Pytorch モデル構築〜学習


1.optimizer構築

optimizer = torch.optim.SGD(list(encoder.parameters())+list(classifier.parameters()), lr=0.01)


2.計算グラフの構築

z = encoder(input_src_img)
digit_pred = classifier(z)


3.loss算出

loss = nn.CrossEntropyLoss()(digit_pred,digit_label)

 


4.誤差逆伝播

loss.backward()

損失に関して計算グラフを微分して各変数のgradに勾配を入れる。この時点ではパラメータは更新されていない。なお、パラメータはprint(x.grad)で確認可能。

注意点は計算グラフは揮発性のため、backword()を実行すると消えてしまう。lossを複数回に分けて計算したいならばbackward(retain_variables=True)とすること。

 


5.パラメータ更新

optimizer.step()

 


補足1.

パラメータ更新後はoptimizer.zero_grad()で勾配初期化しておく。そうしないとloss.backward()で計算された勾配が蓄積してしまう。呼び出すタイミングはloss.backward()の直前でもよい。

 


補足2.マルチタスク

次のようにすると効率的な計算が可能。ただしGANのような順番に学習することに意味があるタスクには不適切なので要注意。
(loss1 + loss2).backward()

NeurIPS 2018 読み会に登壇してきました


NeurIPS 2018 読み会 in 京都 に登壇してきました。当日は社会人と学生を含めた約90名の方々が参加してくださり大盛況となりました。


開催概要

関西からも業界を盛り上げようというコンセプトもあり、なかなか普段は関東の先生方と交流が持ちにくい学生様のために、東京大学で活躍されている(いた)先生方の招待講演が設けられました。

 

二反田篤史 様 (東京大学) 機械学習分野における最適化研究の進展
SatoshiHara様 Theoretical Linear Convergence of Unfolded ISTA and Its Practical Weights and Thresholds
牛久祥孝様 (オムロン サイニックエックス) 視覚と対話の融合研究
岡本大和様 A Unified Feature Disentangler for Multi-Domain Image Translation and Manipulation
akihiro_fujii様 KDGAN: Knowledge Distillation with Generative Adversarial Networks
KOBAYASHiH 様 Neural Ordinary Differential Equations
maguhalu 様 FFJORD: Free-form Continuous Dynamics for Scalable Reversible Generative Models (ICLR2019)
橘幸彦 様(NVIDIA) エヌビディアのプラットフォームを活用したAI エッジ コンピューティング事例のご紹介

https://connpass.com/event/110992/


Part1「理論編」

Part1は東京大学で「理論系に関して知らないことはない!」と紹介された二反田先生の講演、さらに論文紹介1件という構成です。

最適化手法の最新研究であったりResNetの理論的な解釈であったり、理学部学生にとっては天国のような数式だらけの講演でした。正直、普段扱っている内容でもない限りはついていくのはかなり高難度だったかもしれません。


Part2「応用編」

牛久先生をはじめとして応用系の研究紹介になります。視覚と対話の融合というタイトルにある通り、画像へのキャプションであったり、画像に関するQ&A対話をする知能であったり、技術の発展の歴史を追いながら最新研究が紹介されました。(いったいこの人は年間何本論文を読んでいらっしゃるんだ?というくらい様々な内容をご紹介いただきました。)

私の登壇もこのパートです。懇親会では幸いにも「おもしろかったです!」「わかりやすかったです!」とのご好評をいただきました。セルフアーカイブで発表動画もYoutubeにアップしています。

もちろん資料も公開中です

 





Part3「Best Paper編」

NeurIPSでBest Paperを受賞した論文『』が紹介されています。けっこう日本人でも読まれている方の多い論文のようです(そりゃそうか)

また、それだけでなくこの論文の発展手法をICLR2019から紹介いただきました。技術が進むのは本当にあっという間ですね。

 


Part4『招待講演(NVIDIA)』

最後はNVIDIA橘様からのご講演。実はまだ売り上げ的な主力事業はゲーミング用GPUが中心であることや、皆にGPUを使ってもらうために自前でAI技術を研究開発している話などをご紹介いただきました。私個人の意見としては最後にご紹介いただいた現場でAI推論できるようにするエッジ端末の発展に期待しております。


さいごに

今回は主催者側の意図としても関西からも業界を盛り上げたいというものがあり、かなり同じ志を持つ人が集まったように思いました。現在は情報と人が集まる東京が盛り上がっていますが、優秀な学生様がいっぱいいて、ノーベル賞も多数輩出してきた京都という街からもどんどん業界を盛り上げていきたいですね。

量子コンピューティング ~理論と仕組みとビジネスインパクト~

お久しぶりです、ロードローラーです。最近、縁あって量子コンピューティングについて聞く機会があったので、これを機に調査&まとめを作成しました。結論から言うと量子コンピューティングによる現在見えているインパクトは計算処理の飛躍的向上によって指数関数的に計算量が増大するような問題を解けるようになること。特に注目されているのは①組み合わせ最適化問題、②複雑なシミュレーションの実行です。


■量子コンピューティングとは

京都産業大学のコチラのサイトが非常にわかりやすいです。(https://www.kyoto-su.ac.jp/project/st/st14_03.html

従来コンピューターのビットは1か0のどちらかを表しますが、量子コンピューターで使われる「量子ビット」は同時に1と0の両方であり得るという性質を持ちます。表現できるパターン数が2のn乗(nはビット数)という点に変わりはありませんが、同時に1と0の両方であり得るという重ね合わせ表現によって、複数のパターンを同時に検証できるようになります。

例えば2ビットのとき、パターン数は(0,0), (0,1), (1,0), (1,1)の4つです(これは従来も量子も同じです)。ただしこれら4パターンを検証するときに従来のコンピュータだと4パターンを評価関数にかけるので計算が4回必要でしたが、量子コンピューティングでは4状態の重ね合わせに対して計算することが可能なので、いわば1回の計算で4パターンを評価できてしまいます。

正確には、複数状態を同時に計算できても、一度測定すればどれか1つの状態が確率的に選択されるので、欲しい答の状態だけを取り出す工夫(欲しい答が測定により選択される確率を高める)が必要です。


■計算量と指数関数

例えば配送員が50地点に荷物を届けるとき移動ルートのパターンは50!=30,414,093,201,713,378,043,612,608,166,064,768,844,377,641,568,960,512,000,000,000,000通りあります。

最も移動が効率的になるような移動ルートを算出したいとき、人間なら直感的にいくつか最適そうなルートにアタリをつけて検証することも可能でしょうが、厳密に最適化パターンを発見するには全選択肢について計算する必要があります(人工知能のフレーム問題とちょっと似ていますね)。

このような膨大な計算には従来コンピュータでは数年かかる、組み合わせの規模によっては数兆年かかるものまであり、解けない問題の1つとなっています。(そこで、実際には効率的に近似解を求めるアルゴリズムなどが提案されています。)


■ビジネスインパクト

よく話題になるのが次のものです

①組み合わせ最適問題を解決して効率向上

②複雑なシミュレーションが実行可能となり未知の問題を解決

③パスワードクラックなどデータセキュリティ

①については前述したとおり、組み合わせ最適問題について全選択肢を検証可能となり最適化社会がより促進されるであろうという説です。これについては私も賛同ですが、ビジネスインパクトは弱いと思います。Before-Afterで差分を考えると近似解が最適解になるだけの変化なので、量子コンピューティングの導入コストに見合うメリットなのか適切な見極めが必要です。

②については私は非常に楽しみです。分子科学の分野でより複雑なシミュレーションが可能となると新薬開発の新たな扉が開く予感がします。(調べてみましたが分子シミュレーションはスパコンでも電子43個くらい規模しかシミュレーションできないそうです)

③については盗み聞きしなくても量子コンピューティングで全通り試せばパスワードを突破できてしまうような世界が到来しえるので、パスワードがなくなって生体認証の普及がさらに加速するかもしれませんね。指紋も行ってみれば2次元画像なのでクラック可能だったりするんでしょうか?そのあたりは素人なのでわかりませんが、自分を証明するための技術に注目が集まると思います。


いかがだったでしょうか?過熱気味ともいわれる量子コンピューティングですが、正確な理解と真剣な検討は1度してみてもよいかもしれません。

Pythonでテキストを1行ずつ読み込む

なんかいっつもググってる気がするのでメモしておく

以上

How to Display image as grayscale using matplotlib ??

kerasで複数の出力とLOSS関数を持つモデルを生成

ClassificationだったりReconstructionだたり1つのモデルで2つ以上の出力やLOSS関数を適応したモデルが近年は増えてきました。となると次のような実装が必要になってきます。

・1つのモデルで複数の値を出力したい

・モデルの複数出力に異なるLOSS関数を設けたい

 

Kerasだと簡単に実装できます。

ICML2018読み会に参加しました

DeNA主催のICML2018読み会に参加してきました(https://connpass.com/event/92705/

感想を3行でまとめると

・GANが大人気

・NAS(neural architecture search)も人気

・パラメータ黒魔術な研究がちょいちょいある


渋谷ヒカリエのDeNA様のオフィスで開催

 


特に気になった発表が2つ、1つ目はコチラ

Learning Semantic Representations for Unsupervised Domain Adaptation

 

Domain Adaptationの手法で、Source-DomainのClassificationのLOSSや、抽出した特徴量に対するAdversarial Lossなどを用いるあたりは従来通りですが、異なるドメインの同じクラス同士で重心が似通うようにLOSS関数を追加した点がキーアイデアです。

が、各LOSSについて学習する順番や、学習する量など、ハイパーパラメータがむっちゃ重要なのでは?と思って質問してみたら、やはり想像通りというか、再現実装をしているけども思い通りには行っていないとのこと。

やはりちょっと黒魔術の香りがしますね。

あと、重心を近づけるという話でしたが、クラス数が多くなると提案手法の有効性が弱まるのではと思いました。これについてもディスカッションしましたが、論文では明確な実験検証は特になかったのでクローズ。

 

 


もう1件がコチラ

Efficient Neural Architecture Search via Parameters Sharing

 

Neural Networkを生成するNeural Networkの話ですね。もともとはNeural Architecture Search with reinforcement learning(NAS)という手法で、複数種類の異なる構造を持つネットワークを量産してはどの構造が最適なのか探索していくという手法で、計算時間が膨大過ぎて、それを解消する方向で検証が進んできたというものです。

NASについてはコチラに自分でまとめた資料があります、奇しくもちょうど私も勉強中でした。。。

 

これ、Controllerについて大きな誤解をしていたんですが、INPUTは無しで、学習可能なパラメータとして用意されているんですね。

そしてネットワーク構造を決める確率分布がLSTMから決定論的に算出されて、算出された分布から確率論的にネットワークを量産するという仕組みでした。

私はてっきりGANのようにNoiseをINPUTするものとばかり…

なぜ入力をランダムにするのではなく、確率分布に基づいてネットワークを量産するのかというと、後者の方が学習した結果「コレがよさそうだ」と思われる構造を中心に、近い構造を持つ亜種が量産されるからです。ランダムに生成して期待外れのネットワークが生成されるよりも遥かに探索が効率的です。

 

 

こういう質疑応答ができるのが勉強会のありがたいところですね。「聞くは一時の恥聞かぬは一生の恥」です。質問してよかった。

 


普段は慣れない音声合成の研究論文も紹介して頂き、後から気になった点をTwitterで質問させて頂きました。

 

 

関西CVPRML勉強会2018で発表しました

2018/7/21に関西CVPRML勉強会で発表してきました

サイト https://sites.google.com/site/kansaicvprml/studygroup-vol35-20180721

 

会場は同志社大学の今出川キャンパス、や~、やっぱ京都って最高ですね(※関係ない)

 

勉強会に参加した感想

・関東より関西の方が人数絞ってるのでディスカッションが密

・ただし発表者は関東の方が多い

・京都大学の美濃研究室(現:飯山研究室)の関係者大杉w

 


私は発表テーマをUnsupervised-Feature-Learningに決めて、論文タイトルからえいやっでピックアップしました。っていかCVPR2018参加してないし

 

質疑応答では次のような議論がなされました。

『実験の章で、Conv層ではなくFullConection層を抜き出してFeatureにした場合が無いのは何故?試すべきでは?』⇒『(回答)はいその通りです。なぜしてないのかは不明です、すいません。』

『インスタンスレベルで区別するように学習してしまうと、同じクラス同士が近くにプロットされないのでは?』⇒『(回答)クラス問わずどれもこれも離れるようになっていればSVMで境界線を引きやすいのだと思います。』⇒『(コメント)最終的にはインスタンスの区別をしているが、途中のConv層の段階ではクラス共通の特徴量などを抽出できているのかもしれない。』

 


他の方の発表だと、ディープラーニングではないところで京大藤村さんの『Photometric Stereo in Participating Media Considering Shape- Dependent Forward Scatter(PDF)』が面白かったです。会場からは「ディープじゃないけどディープな研究だw」と高度なジョークが飛び交いました

 

ディープラーニングばかりのご時世に、ノンディープなCVの話はかえって新鮮に感じました。藤村さんの発表に限りませんが、参加者からは「関西にはノンディープな研究者が比較的多い気がする」との声も。

 

 


また、橋本先生からはFeature Disentanglingの研究紹介。初めて研究内容に触れる人でもわかりやすいように丁寧にまとめてくださってました。

 

 

他の方の発表資料も、CVPRML勉強会のサイトに掲載されています。是非ご覧ください、

以上。