自動機械学習またはAutoMLの説明

機械学習(古典的な機械学習と深層学習の両方)を使用する上での2つの最大の障壁は、スキルとコンピューティングリソースです。2番目の問題は、高速化されたハードウェア(ハイエンドGPUを搭載したコンピューターなど)の購入またはクラウド内のコンピューティングリソースのレンタル(GPU、TPUが接続されたインスタンスなど)のいずれかにお金を投じることで解決できます。 FPGA)。

一方で、スキルの問題を解決することはより困難です。データサイエンティストは高額の給与を要求することが多く、それでも採用が難しい場合があります。Googleは独自のTensorFlowフレームワークで多くの従業員をトレーニングすることができましたが、ほとんどの企業には、機械学習と深層学習モデルを自分で構築するのに十分なスキルを持った人がほとんどいません。

AutoMLとは何ですか?

自動機械学習(AutoML)は、熟練したデータサイエンティストが機械学習と深層学習のモデルを構築する必要性を減らす、またはなくすことを目的としています。代わりに、AutoMLシステムを使用すると、ラベル付きのトレーニングデータを入力として提供し、最適化されたモデルを出力として受け取ることができます。

これにはいくつかの方法があります。1つのアプローチは、ソフトウェアがデータのあらゆる種類のモデルを単純にトレーニングし、最適なモデルを選択することです。これを改良すると、他のモデルを組み合わせた1つ以上のアンサンブルモデルを構築することができます。これにより、常に(常にではありませんが)より良い結果が得られます。

2番目の手法は、最適なモデルのハイパーパラメータ(以下で説明)を最適化して、さらに優れたモデルをトレーニングすることです。機能エンジニアリング(以下でも説明)は、モデルトレーニングへの貴重な追加です。ディープラーニングのスキルを落とす1つの方法は、転移学習を使用することです。基本的に、特定のデータに対して十分にトレーニングされた一般モデルをカスタマイズします。

ハイパーパラメータ最適化とは何ですか?

すべての機械学習モデルにはパラメーターがあります。これは、モデル内の各変数または機能の重みを意味します。これらは通常、エラーの逆伝播と、確率的勾配降下法などのオプティマイザーの制御下での反復によって決定されます。

ほとんどの機械学習モデルには、トレーニングループの外側に設定されたハイパーパラメータもあります。これらには、学習率、ドロップアウト率、およびランダムフォレスト内のツリーの数などのモデル固有のパラメーターが含まれることがよくあります。

ハイパーパラメータ調整またはハイパーパラメータ最適化(HPO)は、モデルの1つ以上のハイパーパラメータをスイープまたは検索して、最適なトレーニング済みモデルを生成するセットを見つける自動方法です。スイープ(外側のループ)のハイパーパラメータ値のセットごとにモデルを再度トレーニングする(内側のループ)必要があるため、これには時間がかかる可能性があります。多くのモデルを並行してトレーニングする場合、より多くのハードウェアを使用することを犠牲にして、必要な時間を短縮できます。

機能エンジニアリングとは何ですか?

特徴は、観察される現象の個々の測定可能な特性または特性です。 「特徴」の概念は、線形回帰などの統計手法で使用される説明変数の概念に関連しています。特徴ベクトルは、数値ベクターに単一行のためのすべての機能を組み合わせます。機能エンジニアリングは、モデルトレーニングプロセスへの入力に最適な変数のセットと最適なデータエンコーディングおよび正規化を見つけるプロセスです。

機能を選択する技術の一部は、問題を説明する独立変数の最小セットを選択することです。2つの変数の相関が高い場合は、それらを1つの機能に結合するか、1つを削除する必要があります。主成分分析(PCA)を実行して、相関変数を線形無相関変数のセットに変換することがあります。

マシン分類にカテゴリデータを使用するには、テキストラベルを別の形式にエンコードする必要があります。2つの一般的なエンコーディングがあります。

1つはラベルエンコーディングです。これは、各テキストラベル値が数値に置き換えられることを意味します。もう1つワンホットエンコーディングです。これは、各テキストラベル値がバイナリ値(1または0)の列に変換されることを意味します。ほとんどの機械学習フレームワークには、変換を行う関数があります。ラベルエンコーディングは、機械学習アルゴリズムを混乱させて、エンコードされた列が順序付けられていると考えることがあるため、一般に、ワンホットエンコーディングが推奨されます。

マシン回帰に数値データを使用するには、通常、データを正規化する必要があります。そうしないと、範囲が広い数値が特徴ベクトル間のユークリッド距離を支配する傾向があり、他のフィールドを犠牲にしてその効果が拡大される可能性があり、最急降下法の最適化では収束が困難になる可能性があります。機械学習のデータを正規化および標準化するには、最小-最大正規化、平均正規化、標準化、単位長へのスケーリングなど、いくつかの方法があります。このプロセスは、多くの場合、機能スケーリングと呼ばれます

人々が新しい特徴を構築したり、特徴ベクトルの次元を減らしたりするために使用する変換のいくつかは単純です。たとえば、Year of Birthから減算してYear of Death、を作成しますAge at Death。これは、生涯および死亡率の分析のための主要な独立変数です。他の場合では、特徴の構築はそれほど明白ではないかもしれません。

転移学習とは何ですか?

転移学習は、カスタム機械学習と呼ばれることもあり、AutoML(主にGoogleによって)と呼ばれることもあります。Google Cloud AutoMLは、データからモデルをトレーニングするときにゼロから開始するのではなく、自動ディープトランスファー学習(他のデータでトレーニングされた既存のディープニューラルネットワークから開始することを意味します)とニューラルアーキテクチャ検索(追加の適切な組み合わせを見つけることを意味します)を実装しますネットワークレイヤー)言語ペア変換、自然言語分類、および画像分類用。

これは、AutoMLが通常意味するものとは異なるプロセスであり、多くのユースケースをカバーしていません。一方、サポートされている領域でカスタマイズされた深層学習モデルが必要な場合、転移学習は多くの場合、優れたモデルを生成します。

AutoMLの実装

試すことができるAutoMLの実装はたくさんあります。有料サービスもあれば、無料のソースコードもあります。以下のリストは、完全または最終的なものではありません。

AutoMLサービス

大きな3つのクラウドサービスはすべて、ある種のAutoMLを備えています。Amazon SageMakerはハイパーパラメータ調整を行いますが、複数のモデルを自動的に試したり、機能エンジニアリングを実行したりすることはありません。Azure Machine Learningには、機能とアルゴリズムをスイープするAutoMLと、通常AutoMLによって選択された最適なアルゴリズムで実行されるハイパーパラメーター調整の両方があります。Google Cloud AutoMLは、前述したように、言語ペアの翻訳、自然言語の分類、画像の分類のためのディープトランスファーラーニングです。

多くの中小企業もAutoMLサービスを提供しています。たとえば、AutoMLを発明したと主張するDataRobotは、市場で高い評価を得ています。dotDataの市場シェアは小さく、UIは平凡ですが、強力な機能エンジニアリング機能を備えており、多くのエンタープライズユースケースをカバーしています。2017年にレビューしたH2O.aiDriverless AIは、データサイエンティストが、機能エンジニアリング、アルゴリズムスイープ、ハイパーパラメーターの最適化を統一された方法で実行して、Kaggleマスターのようなモデルを作成するのに役立ちます。

AutoMLフレームワーク

AdaNetは、専門家の介入を最小限に抑えて高品質のモデルを自動的に学習するための軽量のTensorFlowベースのフレームワークです。Auto-Kerasは、テキサスA&Mで開発された、自動機械学習用のオープンソースソフトウェアライブラリであり、深層学習モデルのアーキテクチャとハイパーパラメータを自動的に検索する機能を提供します。NNI(Neural Network Intelligence)は、ユーザーが機械学習モデル(ハイパーパラメーターなど)、ニューラルネットワークアーキテクチャ、または複雑なシステムのパラメーターを効率的かつ自動的に設計および調整するのに役立つMicrosoftのツールキットです。

追加のAutoMLプロジェクトと、AutoMLに関するかなり完全で最新の論文リストをGitHubで見つけることができます。