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ステップで専門家になる方法をお教えします!

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

ブログ    
ブログ    

推薦する

...

プログラマーが知っておくべき10の基本的な実用的なアルゴリズムとその説明

[[128752]]アルゴリズム1: クイックソートアルゴリズムクイックソートは、Tony Hall...

...

自律型 AI エージェント: 未来の生産性エンジン

翻訳者 | 崔昊レビュー | Chonglouまとめこの記事では、タスクを自ら作成し、優先順位を付け...

人工知能、機械学習、ディープラーニングの違い

私たちは皆、「人工知能」という言葉をよく知っています。結局のところ、ターミネーター、マトリックス、エ...

ロボット革命が到来。人類社会はどう対応すべきか?

ロボット革命は、2009年に英国王立工学アカデミーが発表した「自律システム」と題する科学報告書で提唱...

ノキア、ネットワーク自動化におけるAI推進のためドバイに「イノベーションラボ」を開設すると発表

9月26日、海外メディアETテレコムによると、ノキアは中東とアフリカでの技術革新を促進し、ネットワー...

モデルトレーニング: AIと機械学習の最適化とDevOpsツールの利用の改善

フランス料理の秘訣はバター、バター、そしてさらにバターだと言われています。同様に、DevOps の場...

成熟したAIは独自のコードを書くべきだ。IBMは55の言語で5億行のコードデータセットを公開

[[400902]]この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI...

...

...

テクノロジー統合によるバーチャルキャラクターの創造と実践

著者 | 崔昊レビュー | Chonglouまとめこの記事では、パーソナライズされた仮想キャラクター...

人工知能はサイバーセキュリティにとって役立つのか、それとも脅威となるのか?

企業に対するセキュリティ上の脅威は常に存在していましたが、インターネットの発展により、脅威は物理空間...

アイデアから実装まで、2018 年の 13 の驚くべき新しい NLP 研究

2018 年には、自然言語処理の分野で多くの刺激的なアイデアやツールが生まれました。概念的な視点から...

...