ICML2018 概要 Categoryを一覧にまとめてざっと眺めてみた

ICML2018@スウェーデン https://icml.cc/

言わずと知れた機械学習のトップカンファレンス。

どんな研究が発表され、どんなトレンドにあるのか、カテゴリを一覧化して、ざっと眺めてまとめました。


■Supervised Learning
教師あり学習。
DeepLearningとカテゴリが分かれているので、それ以外の手法があると思ったが、やはり深層学習中心。
Noisyなデータを扱う研究が多く見られる。

■Clustering
クラスタリング
集合を意味ある部分集合に分割すること
教師なし手法の代表例

■Unsupervised Learning
教師なし学習。
正解データ無しでデータ集合の意味ある分類や属性推定をする。
Clustering、NearestNeighbor、TopologyEstimationなどが今回は取り上げられる様子。

■Transfer and Multi-Task Learning
マルチタスク学習。
1つのモデルで複数タスクの学習をさせることで、共通構造部分が効率よく本質的な特徴抽出機能を習得する。
ドメイン変換。
ドメイン不変の特徴量を抽出したり、ドメイン特徴を把握して学習済みのデータを転用させたりする。

■Deep Learning (Bayesian)
ベイジアンディープラーニング。
学習によって、ネットワークの重みWの値そのものではなく、重みWの事前分布p(w)を求めるニューラルネットワーク。
参考:http://deeplearning.jp/bayesian-deep-learning/

■Deep Learning (Neural Network Architectures)
深層学習の構造の研究。
学習の安定化、学習の高速化、性能向上、時系列の認識など、目的は様々。

■Deep Learning (Theory)
深層学習。
学習率や評価関数による影響や、最適化手法の研究が中心。

■Deep Learning (Adversarial)
学習モデルが誤認識するパターンを見つけ出して「ハッキング」する手法(Adversarial Attack)。
AdversarialAttackされない頑健なモデル提案や、AdversarialAttackによる判断根拠の理解などの研究がある。

■Generative Models
画像生成で流行っているGANなどが中心。
生成するだけでなく、ドメイン変換や、教師データが少なくて済むような工夫が研究されている。

■Online Learning
オンライン学習
機械学習における学習の枠組みの一つ。
全データを一気に用いず、逐次的に与えられる一部のデータからモデルを逐次的に改良する。
確率的最適化手法など、モデル更新アルゴリズムやが研究されている。

■Active Learning
教師あり学習にて、少ないデータで分類器をつくるときに学習データを増やす手法。
重要なデータのみに人間がラベルをつけて学習データに取り込む。
識別結果の自信があるものを正しいと仮定してラベルにするのが半教師あり学習で、
識別結果に自信がないものにラベルを手動付与して学習データに追加するのがActiveLearning。

■Reinforcement Learning
強化学習。
DQNが主流。
状態遷移確率や行動価値が未知の場合が多いため探索によって取得する。
レア事象を探索できるような手法や、難しい事象に対してマルチタスクから知識を得る手法や、タスク非依存のパラメータの最適化手法などが研究されている。

■Optimization (Bayesian)
ベイズ的最適化。
最適化関数が不明のときに事前分布を仮定して事後分布を元に最適化をする。
次にどの点を探索するのか、どこに最適解があるのか、といったことを計算する。
実験計画を効率的に定めるときなどに活用される。

■Optimization (Combinatorial)
組み合わせ最適化
変数、目的関数、制約条件から最適解を求めるアルゴリズムの研究

■Optimization (Convex)
凸最適化
コスト関数と不等式制約が全て凸関数
局所最適解=大域的最適解

■Optimization (Non-convex)
非凸最適化
局所解に陥らないためのアルゴリズムやパラメータの決め方、解空間の調査など。

■Multi-Agent Learning
マルチエージェント学習。
複数のエージェントが並列に学習する自律分散型の学習アルゴリズムなどの研究が多い。
応用編としてマルチエージェント強化学習などもある。

■Statistical Learning Theory
NearestNeighbors、ベイズ、ランダムフォレストなどの統計的手法の研究。

■Natural Language and Speech Processing
自然言語処理。
音声生成。
LSTMやRNNが中心。

 


Feature Selection
Kernel Methods
Parallel and Distributed Learning
Time-Series Analysis
Gaussian Processes
Approximate Inference
Monte Carlo Methods
Graphical Models
Sparsity and Compressed Sensing
Ranking and Preference Learning
Networks and Relational Learning
Structured Prediction
Causal Inference
Privacy, Anonymity, and Security
Society Impacts of Machine Learning
Other Models and Methods
Representation Learning
Other Applications
Computer Vision
Dimensionality Reduction
Large Scale Learning and Big Data
Matrix Factorization
Spectral Methods

Self-Attentionの良記事 “Attention Is All You Need (Transformer)”

Encoder-Decoderで主に使われていて、GANなどにも応用されているAttention構造を勉強しようと思って見つけた良記事です。

論文解説 Attention Is All You Need (Transformer)

 

元論文 Attention Is All You Need (Transformer)

 

個人的に詰まった点はSelf-Attentionについてです。

『自己注意 (Self-Attention) では Query,Key,Valueは全て同じ場所 (Self) から来る.例えばエンコーダの Query,Key,Valueはすべて下の隠れ層から来る.自己注意はある位置の出力を求めるのに下の隠れ層の全ての位置を参照できる』の部分を誤解していました。

つまり、n番目のLayerでは、i<nについて総当たりでi番目Layerとn番目Layerとの間でAttentionを取得するということみたいです。

Attentionの取得方法は内積がメインとのこと。手前の層でどこに特徴が強く出ているのか(≒注目すべき箇所がどこにあるのか)のヒントをもらうわけですね。

 

DCGANについて元論文を読みながら再整理

 

2年ほど前からブーム真っ最中のGANについて、丁寧に振り返りを使用というのが本記事の目的です。まとめサイトからの引用ではなくちゃんと元論文を読むことをポリシーとします。

 


そもそもDCGANとは

DCGAN(Deep Convolutional Generative Adversarial Networks)

簡単にいうと畳み込みニューラルネットワークを適用したGAN。論文ではネットワーク設計の注意点や特徴が細かく定義されている。

(論文)
Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks (2015) https://arxiv.org/abs/1511.06434

 


DCGANのネットワーク構造の特徴

pooling層をConvolutions層(strideあり)に置き換える

  • pooling層をConvolutions層に置き換える(stride数をうまく調整。poolingが2×2で実施されるなら、stride=2とすれば出力のサイズは等しくなる)。
  • replaces deterministic spatial pooling functions (such as maxpooling) with strided convolutions, allowing the network to learn its own spatial downsampling.

  • Generatorではzから画像サイズと同等サイズの出力にアップサンプリングしないといけないのでDeconvolution(正式名称:fractionally-strided convolutions)をする。これは元となる特徴マップを拡大してから畳み込むことでサイズを大きくする処理。

バッチノルムを使用

  • バッチノルムを挟んだ方が、初期値問題や購買消失問題が生じにくく、学習がスムーズになる
  • This helps deal with training problems that arise due to poor initialization and helps gradient flow in deeper models

  • ただし、全層に適用するとモデルが不安定になった。
  • GeneratorのINPUTとDiscriminatorのOUTPUTには適用しいようにしたら解決したとのこと(Why?)
  • Directly applying batchnorm to all layers however, resulted in sample oscillation and model instability. This was avoided by not applying batchnorm to the generator output layer and the discriminator input layer.

Full-Conectionをなるべく省く。

  • 学習安定性の観点でFull-ConectionよりもGlobal-Average-Poolingが広く使われているのと同じ考え方
  • Global-Average-Poolingについてはコチラを参照(https://qiita.com/mine820/items/1e49bca6d215ce88594a)
  • Second is the trend towards eliminating fully connected layers on top of convolutional features. The strongest example of this is global average pooling which has been utilized in state of the art image classification models (Mordvintsev et al.).

  • ただし、Generatorとzをinputする部分と、Discriminatorの判定結果0..1を出力する部分では全結合した方が良い結果が得られた。
  • A middle ground of directly connecting the highest convolutional features to the input and output respectively of the generator and discriminator worked well.

GeneratorではReLUを活性化関数として使用。ただし出力層のみtanh。

  • 学習が早いということで、出力層では有界の活性化関数を推奨している。
  • We observed that using a bounded activation allowed the model to learn more quickly to saturate and cover the color space of the training distribution.

  • そもそも画像(例:RGBの場合は0~255)を出力するのだから活性化関数が有界じゃないと面倒でしょ?という気もする

DiscriminatorではLeakyReLUを使用。

  • 理由には「従来手法がそれでうまくいってるから」程度しか書かれていない
  • Within the discriminator we found the leaky rectified activation (Maas et al., 2013) (Xu et al., 2015) to work well, especially for higher resolution modeling.

 


やー、なかなか直感的には「なるほど」と思っても、うまく説明しきれないですね。