wantedly / machine-learning-round-table

Gather around the table, and have a discussion to catch up the latest trend of machine learning 🤖
https://www.wantedly.com/projects/391912
305 stars 2 forks source link

[2019/11/27] Machine Learning 輪講 #27

Open agatan opened 4 years ago

agatan commented 4 years ago

Why

Machine Learning 輪講は最新の技術や論文を追うことで、エンジニアが「技術で解決できること」のレベルをあげていくことを目的にした会です。

prev. #24

What

話したいことがある人はここにコメントしましょう! 面白いものを見つけた時点でとりあえず話すという宣言だけでもしましょう!

agatan commented 4 years ago

Faster Neural Networks Straight from JPEG

https://eng.uber.com/neural-networks-jpeg/

JPEG を完全に decode してから NN に入力するのではなく、JPEG の中間状態を NN に入力することで高速化を図る論文。 JPEG は周波数空間に画像を変換して圧縮する方式だが、CNN の浅い層は pixel space to frequency space の変換を学習することが多いので、最初から frequency space のまま入力しちゃえば良いのでは、という話。

agatan commented 4 years ago

[1911.09665] Adversarial Examples Improve Image Recognition

https://arxiv.org/abs/1911.09665

Adversarial Examples を使って画像認識の「精度を向上する」話。(Adversarial Attack への頑健性を目標にしている訳ではない。) 既存手法は Clean Data と Adversarial Data という分布の異なるデータを 1 つの BN に通していたことが問題だったと指摘している。 この論文では 2 つの BN を用意し、それぞれの BN は 1 つの分布からなるデータしか見なくて良いようにすることで精度が向上した。

agatan commented 4 years ago

Filter Response Normalization Layer: Eliminating Batch Dependence in the Training of Deep Neural Networks

https://arxiv.org/abs/1911.09737

BN の代替を提案している論文。 batch size が十分におおきく BN に有利な条件でも BN より高い精度を実現している。 Instance Normalization と同様に Per Example, Per Channel で normalize するが、mean centering をやらない(scale の normalization だけやる)のがキモ。 たんに mean centering をやめるだけだと bias が乗って ReLU との噛み合わせが悪くなるので、 ReLU の変形である TLU (max(y, t), ただし t は学習可能なパラメータ ) というものと組み合わせる。

https://github.com/wantedly/machine-learning-round-table/issues/27#issuecomment-558995227 など、BN が状態を溜め込むせいでうまく行かなかった手法って結構ある気がするので、これが本当にうまくいくならかなりインパクトありそう。

tan-z-tan commented 4 years ago

プログラム生成についての論文たち。 ICLR2018〜ICLR2019あたり

LEVERAGING GRAMMAR AND REINFORCEMENT LEARNING FOR NEURAL PROGRAM SYNTHESIS

https://openreview.net/pdf?id=H1Xw62kRZ プログラムを生成する INPUT, OUTPUT, PROGRAMの三組から、「INPUT, OUTPUTを与えたらPROGRAMを生成する変換モデル」を学習する。

偉いところ

NEURO-SYMBOLIC PROGRAM SYNTHESIS

https://arxiv.org/pdf/1611.01855.pdf プログラムを木構造で表す。

それぞれを学習して、生成する。

GENERATIVE CODE MODELING WITH GRAPHS

https://arxiv.org/pdf/1805.08490.pdf プログラムの生成は文章の生成より構造的なもので周辺のコンテキストをもっと入れ込みたい。 AST (Abstract Syntax Tree)の中で、child, parent, nextSib, NextUseなどの決められた関係性にあるノードの情報を次のTokenの生成に使う。関係性のあるノードからエッジが引かれるのでグラフ構造になる。

ASTのルートから初めて、現在のEmbedding h に対して関係性のあるノードの情報(それぞれのノードのEmbeddingを変換したものをElement-wiseに足したもの)を入力にして次のTokenを生成する。これを再帰的に行ってASTの各ノードがEmbedding h_iである木を作る。 各ノードのEmbeddingからProductionルールや変数を選ぶのは、e(h_i) -> rule みたいに一意に決まる関数を学習しておく。

agatan commented 4 years ago

Momentum Contrast for Unsupervised Visual Representation Learning

https://arxiv.org/abs/1911.05722

教師なし画像で事前学習 → fine tune は教師データが少ない状況で精度を高めるために頻繁に行われているアプローチ。 事前学習の方法としては jigsaw や rotate などが有名だったが、この論文で提案されている MoCo はこれらより downstream task での性能が高い。 のみならず、ImageNet で教師あり事前学習するよりも MoCo で教師なし事前学習したほうが良いケースがある(!)

やりたいことは「意味的に同じ画像(たとえば horizontal flip した画像)」をベクトルに encode したとき、それらのベクトルが似たものになるように学習するというもの。 既存手法との違いは