Help us understand the problem. What is going on with this article?

AutoMLのサーベイ論文(AutoML: A Survey of the State-of-the-Art)

Abstract

AutoMLのサーベイ論文を読んだので内容をまとめます.ここで言うAutoMLとはautomated machine learningのことでGCPのクラウドサービスCloud AutoMLのことではないです.AutoMLといえば今までNASのことしか頭になかったのですが,このサーベイ論文では以下の画像のようなパイプラインにおける各工程のそれぞれについてまとめられていてわかりやすかったです.
automl.png

Data Preparation

機械学習のパイプラインにおける最初のステップがデータの収集であることが明記されています.質,量ともに十分なデータを入手するのは困難でありそうした状況においても所望の性能を出すようなロバストなAutoMLシステムが必要です.

Data Collection

機械学習の研究が進むにつれてデータの重要性が認識されるようになりました.kaggle,Google Dataset Search,Elsevier Data Searchなどでキーワード検索すれば多種多様なデータセットを入手できる時代になりました.

しかしなんらかの分野などに特化したタスクについては上記サイトを使ってもデータセットを得るのは困難なので以下の手法が用いられることがあります.

Data Synthesis

画像データで左右反転させたり回転させたりするなどのデータ水増しのこと.他にもOpenAI Gymなどのシミュレータ上でのデータやGANで生成されたデータを用いることもこれに含まれます.

Data Searching

ネット上のデータを利用すること.ただたとえば画像なら一つのラベルしか割り当てないというのは現実的でなかったりするので複数のラベルを割り当てるだったり,不均衡データに対するサンプリング手法などの対策も必要なようです.

Data Cleaning

生データを加工すること.よく言われるような欠損値をどう補間するかみたいな話ですがこれを自動化する手法も提案されているようです.

Feature Engineering

データと特徴量エンジニアリングがモデルやアルゴリズムよりも精度の向上には大きな影響を及ぼします.特徴量エンジニアリングは以下の三つのサブトピックに分解できます.

Feature Selection

モデルをシンプルにするために無関係だったり冗長な特徴量を除くこと.特徴量をサブセットに分けて評価し取り除くかどうかを決めるのが基本的な流れで,分散や相関を使う比較的簡単な方法からこの工程まで機械学習でもとめてしまう方法まであるようです.

Feature Construction

新しい特徴量を生成すること.機械学習エンジニアの腕の見せ所と言われています.主に特徴量候補の探索と評価の部分を自動化するのを目指したアルゴリズムが多いようです.

Feature Extraction

特に重要な特徴量を次元削減などで求めること.多くの手法はautoencoderベースでこの手法ではデータの特徴とそれらの関係性を考慮したモデルを提案しているようです.

Model Generation

モデルはニューラルネットだけとは限らずSVMや決定木などの古典的なアルゴリズムもあるわけですがこの論文では特にNeural Architecture Search(NAS)に焦点を当てています.

Model Structure

事前に決められた演算を組み合わせてモデルのアーキテクチャーが生成されます.今まで発見的に決められていたカーネルサイズなども幅広く探索するようです.Entire structure, Cell-based structure, Hierarchical structure, Network Morphism based structureなどの方法で探索されます.

全構造を探索するのは候補の数が多すぎるのでcellという塊で考えることで候補の数を減らし,階層的に考えることでcellの中のノード数を変えてより複雑な構造を考えるようにし,さらに今まで探索した構造の情報を次の探索に生かすことで最終的に高精度を達成する構造が生成されます.

Hyperparameter Optimization

この論文ではネットワークのアーキテクチャーを探索する工程をHyperparameter Optimization(HPO)と呼んでいるので注意です.Model Structureで生成した構造のなかでより良いものを探索します.

グリッドサーチ,強化学習,遺伝的アルゴリズム,ベイズ最適化,勾配法などを利用します.強化学習を活用したものが有名だと思いますがRNNを使っていた初期のNASは大量の計算資源と時間が必要でしたがENASでは1つのGPUで10時間の学習で済むようになりました.

Model Estimation

生成されたモデルを評価する必要がありますが全ての候補について収束するまで学習して評価するには大量の計算資源と時間が必要です.low fidelity(画像なら解像度を下げたり学習データ数を減らすなどして評価段階での精度にこだわり過ぎないこと?),転移学習,評価関数を簡単なもので代用する,early stoppingなどの手法があります.

NAS Performance Summary

GPUの個数を$N$,学習日数を$D$としたときその積$ND$をGPU Daysと定義して各モデル生成アルゴリズムの性能をまとめています.Parametersは生成されたモデルの数であり,Random Searchでも結構いい結果が出ているのが驚きです.

スクリーンショット 2019-09-09 21.08.44.png

Future Work

首尾一貫したパイプラインが未登場

いくつかパイプラインを構築するライブラリが提案されていますがそれらはすべてデータ収集プロセスを含んでおらず,特徴量エンジニアリングを行うパイプラインもわずかです.

解釈性

モデル生成アルゴリズムは大抵の場合人間よりうまくモデルの構造などを発見しますがなぜその構造や演算が良い精度を出すのか説明できません.AutoMLの解釈性も重要な研究の方向性です.

再現性

AutoMLも他の機械学習と同様に再現性の問題があります.ソースコードが公開されていなかったり探索に時間がかかりすぎるなどにより実験結果の再現が難しいです.

事前に定義した演算の組み合わせに過ぎない

モデル生成においては人が事前に定義した演算(convolutionやpoolingなど)を組み合わせて探索していくので新たな演算やアーキテクチャが生成されにくいです.

More Area

大抵のNASは画像分類ならCNN,言語モデルならRNNに焦点を当てていておりCIFAR 10データセットに関しては人手のモデルを上回る精度を出していますがPTBデータセットに関しては人手のモデルと比べてまだまだであり,object detectionやsemantic segmentationを対象としたNASも提案されているなどまだまだ多くのタスクが残っています.

Lifelong Learning

多くのAutoMLアルゴリズムはあるデータセットを使って特定のタスクを解くことにのみ特化していますが将来的には高品質のAutoMLはlifelong learningも行えるべきです.ここでのlifelong learningとは新しいタスクを解くときに事前知識を再利用することと,古いデータに対する精度を保ちつつ新しいデータについても学習することです.

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away