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

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

ブログ    

推薦する

北京、上海、深セン、杭州、中国の人工知能産業のリーダーは誰でしょうか?

人工知能企業は主に北京、上海、深セン、杭州に分布している中国新世代人工知能開発研究所のデータによると...

女の子とのいちゃつきを例にとると、5分でディープラーニングが理解できます!

[[196604]] [51CTO.com からのオリジナル記事]現在、AI が業界で重要な役割を...

...

...

自動運転はどこへ行ってしまったのか?

マスク氏が2021年末までに完全自動運転車を実現すると予言してから数ヶ月が経過したが、状況は2019...

能力と信頼性の両方を備えることはできますか? GPT-4やGeminiなどのマルチモーダルモデルの評価レポートはこちら

2023 年には、マルチモーダル大規模モデルの飛躍的な発展が見られるでしょう。マルチモーダル大規模言...

1.4GB 未満のビデオ メモリで 10,000 フレームのビデオをセグメント化します。コードは現在オープン ソースです。

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

人工知能は創意工夫を駆使して古い映画を修復し、色あせた記憶を蘇らせる

ここ2日間、「北京の古い街並みの復元」に関するビデオがインターネット全体を席巻している。 100年前...

AIがクラウドに依存しない理由:将来AIは疎外される

[[268251]] [51CTO.com 速訳] 人工知能の発展は希望と課題に満ちている。その「不...

DeepMind: 人工知能と神経科学を組み合わせて好循環を実現

最近の人工知能の進歩は目覚ましいものがあります。人工システムは、アタリのビデオゲーム、古代のボードゲ...

ChatGPT の背後にあるビッグモデル技術を 3 分で簡単に理解する

過去 10 年間で、人工知能の分野で大きな進歩が遂げられてきましたが、その中で自然言語処理 (NLP...

Appleは人工知能の分野で追い上げており、その視覚認識の成果は業界の賞を受賞した

[[201426]]歴史的に、Apple は最先端技術の研究にはあまり注意を払わず、むしろ製品の設計...

...

RPA がコロナウイルス危機を乗り越えるために組織をどのように支援しているか

世界中でコロナウイルスが流行しているため、多くの組織が優先順位を変更しました。その結果、組織がコスト...