PythonでAutoMLを実装する方法を教えます

PythonでAutoMLを実装する方法を教えます

[51CTO.com クイック翻訳] 機械学習は複雑な問題を自動的に解決する方法であることはすでに知られています。しかし、機械学習自体は自動化できるのでしょうか? これについてこの記事では検討します。この記事を読み終える頃には、この質問に対する答えがわかり、AutoML を実装するためのツールが手に入るでしょう。

1. 自動機械学習(AutoML)

機械学習モデルを適用する場合、通常はデータの前処理、特徴エンジニアリング、特徴抽出、特徴選択を実行します。この後、最適なアルゴリズムを選択し、最良の結果を得るためにパラメータを調整します。 AutoML は、これらのプロセスを自動化するための一連の概念と手法です。

1.1. AutoMLの利点

機械学習モデルを現実世界の問題に適用するには、多くの場合、多くのコンピューター サイエンスのスキル、ドメインの専門知識、数学の専門知識が必要です。これらすべてのスキルを備えた専門家を見つけるのは必ずしも簡単ではありません。

AutoML は、人間が機械学習モデルを設計する際に発生するバイアスやエラーも削減できます。企業は、データ パイプラインに AutoML を適用することで、多くの専門家を雇用するコストを削減できます。 AutoML を使用すると、機械学習モデルの開発とテストに必要な時間も短縮できます。

1.2. AutoMLの欠点

AutoML は機械学習の分野ではかなり新しい概念です。したがって、これらの技術の一部はまだ開発段階にあるため、現在の AutoML ソリューションの一部を適用する際には慎重に進めることが重要です。

もう 1 つの大きな課題は、AutoML モデルの実行にかかる時間コストが高いことです。それは実際には私たちのマシンの計算能力に依存します。すぐにわかるように、一部の AutoML ソリューションはローカル マシンで適切に動作しますが、Google Colab など、一部のソリューションは高速化するためにさらに最適化が必要です。

2. AutoMLの概念

AutoML に関しては、ニューラル アーキテクチャ検索と転移学習という 2 つの主要な概念を理解する必要があります。

2.1. ニューラルアーキテクチャ検索

ニューラル アーキテクチャ検索は、ニューラル ネットワークの設計を自動化するプロセスです。通常、これらのネットワークの設計には強化学習または進化アルゴリズムが使用されます。強化学習では、モデルの精度が低い場合はペナルティが課され、精度が高い場合は報酬が与えられます。この技術を使用することで、モデルは常により高い精度を達成しようとします。

スケーラブルな画像認識のための転送可能なアーキテクチャの学習、効率的なニューラル アーキテクチャ検索 (ENAS)、画像分類器アーキテクチャ検索のための正規化進化モデルなど、ニューラル アーキテクチャ検索を研究した論文はすでにいくつかあります。

転移学習

名前が示すように、転移学習は、事前にトレーニングされたモデルが学習した知識を転移し、新しい類似のデータセットに適用できるようにする技術です。これにより、より少ない計算時間とリソースでより高い精度を実現できます。ニューラル アーキテクチャ検索は、新しいモデル アーキテクチャの設計を必要とする問題に適していますが、転移学習は、データセットが事前トレーニング済みモデルで使用されるものと類似している問題に最適です。

3. AutoMLソリューション

それでは、利用可能な AutoML ソリューションのいくつかを見てみましょう。

3.1. 自動Keras

公式情報によると:

Auto-Keras は、自動機械学習 (AutoML) 用のオープンソース ソフトウェア ライブラリです。 これは、テキサス A&M 大学の DATA Lab とコミュニティ貢献者によって開発されました。 AutoML の最終的な目標は、データ サイエンスや機械学習の知識が限られているドメイン エキスパートに、使いやすいディープラーニング ツールを提供することです。 Auto-Keras は、ディープラーニング モデルのアーキテクチャとハイパーパラメータを自動的に検索する機能を提供します。

Auto-Keras は pip を使用してインストールできます。

  1. pip で auto-keras をインストールします

Auto-Keras は、最終リリース前にまだ広範囲にわたるテストが行​​われています。公式サイトでは、このサイトのライブラリの使用によって生じたいかなる損失についても責任を負わないことを警告しています。

このパッケージは、Keras ディープラーニング パッケージに基づいています。

3.2. オートスクレーア

Auto-Sklearn は、Scikit-learn をベースにした AutoML パッケージです。これは、Scikit-learn 推定器のドロップイン代替品です。簡単な pip コマンドでインストールすることもできます。

  1. pip で auto-sklearn をインストールします

Ubuntu では、Auto-Sklearn を実行するために、C++ 11 ビルド環境と SWIG 構成環境が必要です。

sudo apt-get install build-essential swig

Anaconda 経由のインストール方法は次のとおりです。

  1. conda で gxx_linux-64 と gcc_linux-64 をインストールします。

現在、Windows で Auto-Sklearn を実行することはできません。ただし、Docker イメージの使用や仮想マシン経由での実行など、いくつかのハックを試すことはできます。

3.3. ツリーベースパイプライン最適化ツール (TPOT)

公式サイトによると:

TPOT の目標は、パイプラインの柔軟な式ツリー表現と遺伝的プログラミングなどのランダム検索アルゴリズムを組み合わせることで、機械学習パイプラインの構築を自動化することです。 TPOT は、機械学習のベースライブラリとして Python ベースの scikit-learn ライブラリを使用します。

このソフトウェアはオープンソースであり、GitHub で入手できます。

3.4. Google の AutoML

公式サイトでは以下のように紹介されています。

Cloud AutoML は、Google の最先端の転移学習とニューラル アーキテクチャ検索テクノロジーを活用して、機械学習の専門知識が限られている開発者でもビジネス ニーズに基づいた高品質のモデルをトレーニングできるようにする機械学習プロダクト スイートです。

Google の AutoML ソリューションはオープンソースではありません。価格はこちらでご覧いただけます。

3.5. 水

H2O はオープンソースの分散型インメモリ機械学習プラットフォームです。 R と Python で利用できます。このパッケージは、幅広い統計および機械学習アルゴリズムをサポートしています。

4. AutoML を現実世界の問題に適用する

それでは、Auto-Keras と Auto-Sklearn を使用して実際の問題を解決する方法を見てみましょう。

4.1. Auto-Keras の実装

非常に高い計算能力を持つコンピュータをお持ちでない限り、次のコード例を Google Colab で実行することを強くお勧めします。 Google Colab で GPU ランタイムを有効にすることもお勧めします。 ここでの最初のステップは、Colab に Auto-Keras をインストールすることです。

  1. !pip オートケラスをインストール

MNIST データセットで画像分類タスクを実行します。最初のステップは、データセットと画像分類器をインポートすることです。データセットは Keras からインポートされ、画像分類器は Auto-Keras からインポートされます。事前トレーニング済みのモデルに基づいて手書きの数字を認識するモデルを構築しているため、これを教師あり学習の問題として分類します。次に、これまで遭遇したことのない数字の画像でモデルの精度をテストしました。

  1. keras.datasetsから
  2. インポートmnist
  3. autokeras.image.image_supervisedから
  4. ImageClassiferをインポートする

この例では、画像とラベルは numpy 配列としてフォーマットされています。次のステップでは、読み込んだデータを次のようにトレーニング セットとテスト セットに分割します。

  1. (x_train, x_test)、(x_test, y_test) = mnist.load_data()
  2. x_train = x_train.reshape(x_train.shape + (1,))
  3. x_test = x_test.reshape(x_test.shape + (1,))

データをトレーニング セットとテスト セットに分割した後、次のステップは画像分類器を適合させることです。

  1. clf = ImageClassifer(verbose= True )
  2. clf.fit(x_train、y_train、時間制限=12 * 60 * 60)
  3. clf.final_fit(x_train、y_train、x_test、y_test、retrain = True )
  4. y = clf.evaluate(x_test, y_test)
  5. 印刷(y)

1. verbose を True に指定すると、検索プロセスが画面に表示され、確認できるようになります。 2. fit メソッドでは、time_limit パラメータは秒単位の検索時間制限を参照します。 3. final_fit は、モデルが最適なモデル アーキテクチャを見つけた後の最後のトレーニングです。 retrain パラメータを True に指定すると、モデルの重みが再初期化されます。 4. テスト セットでモデルを評価した後、print(y) はモデルの精度を表示します。

Auto-Keras を使用して画像を分類するために必要なことはこれだけです。わずか数行のコードで、Auto-Keras が面倒な作業をすべて実行してくれます。

4.2. Auto-Sklearnの実装

Auto-Sklearn の実装は、上記の Auto-Keras の実装と非常によく似ています。数字データセットに対して同様の分類タスクを実行します。まず、いくつかのライブラリをインポートする必要があります。

  1. autosklearn.classificationをインポートする 
  2. sklearn.model_selection をインポートし、sklearn.datasets をインポートし、sklearn.metrics をインポートします。

いつものように、データセットをロードし、それをトレーニング セットとテスト セットに分割します。次に、autosklearn.classification から AutoSklearnClassifier をインポートします。これが完了したら、分類器をデータセットに適合させ、予測を行ってモデルの精度を確認します。必要なのはそれだけです。

  1. X, y = sklearn.datasets.load_digits(return_X_y= True )
  2. X_train、X_test、y_train、y_test = sklearn.model_selection.train_test_split(X、y、random_state=1)
  3. automl = autosklearn.classification.AutoSklearnClassifier()
  4. automl.fit(X_train、y_train) を実行します。
  5. y_hat = automl.predict(X_test)
  6. print( "精度スコア" , sklearn.metrics.accuracy_score(y_test, y_hat))

5. 次は何ですか?

追加の自動化された機械学習パッケージも現在積極的に開発中です。 2019 年には、この分野でさらなる進歩が見られるものと期待しています。これらのパッケージの進捗状況は、公式ドキュメント Web サイトから確認できます。もちろん、GitHub のプル リクエストを通じてこれらのパッケージに貢献することもできます。

Auto-Keras と Auto-Sklearn の詳細情報と例については、それぞれの公式 Web サイトをご覧ください。

[51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください]

<<:  機械学習について学びたい方はこちらをご覧ください。1ステップで専門家になる方法をお教えします!

>>:  アルゴリズムが力を発揮します!なぜ人間と人工知能はますます似てきているのでしょうか?

推薦する

ビデオ会議に最適な AI アプリケーション

[[439113]]人工知能により、非常に有用であることが証明された素晴らしいビデオ会議アプリケーシ...

PyTorch でテンソルを操作するための 5 つの基本関数

ニューラル ネットワークを正確かつ効率的に構築する能力は、ディープラーニング エンジニアの採用担当者...

上海交通大学が「人間行動理解エンジン」を発表:AIが超大作映画のあらゆる行動をフレームごとに理解

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

Apple の生成 AI ツール Apple GPT: 遅れて登場したが、他の利点もある

Appleは、ChatGPTやGoogleのBardのような大規模言語モデル(LLM)と競合する独自...

百度が新製品「小度」を発売、マルチラウンド対話と子供向けモードを追加

昨日の午後、百度は新製品発表会で「小度」スマートスピーカーを発表しました。このスマートスピーカーは百...

パンデミック後、AI教育はどのように存在していくのでしょうか?

現在の教育における人工知能の応用は、依然として「弱い人工知能」になりがちですが、教育の効率性を向上さ...

...

誰もが知っておくべきAIのパイオニア14人

[51CTO.com クイック翻訳] 世界経済フォーラムは毎年、世界中のテクノロジーの先駆者について...

人間の脳の視覚処理を模倣し、ニューラルネットワークが敵対的なサンプルに対処できるようにする

ディープラーニングは、小切手や封筒に手書きされた文字しか認識できなかった時代から、長い道のりを歩んで...

年末コレクション!アンドリュー・ンが2020年に最も注目されたAIイベントをレビュー

この記事はLeiphone.comから転載したものです。転載する場合は、Leiphone.com公式...

[トイレに座ってアルゴリズムを読む] アルゴリズム 8: 賢い隣接リスト (配列の実装)

前回は、空間と時間の複雑さがともにN 2であるグラフの隣接行列保存方法を紹介しました。今回は、グラフ...

李開復:人工知能に取って代わるのが最も難しい10の仕事

[[246854]]私の意見では、警告、悲観、パニックはすべて「廬山の本当の顔を知らない」根拠のない...

...

130 の大学が人工知能専攻を追加。次の「陥没穴」専攻になるのでしょうか?

大学の専攻の盛衰は、時代の発展と技術の進歩を最もよく物語る証拠でもあります。今日のいわゆる「落とし穴...