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

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

ブログ    
ブログ    
ブログ    

推薦する

人工知能は理想的なサイバー防御手段か?

企業や政府がサイバーセキュリティに対する意識を高め、毎年数十億ドルがこの分野に投資されるようになると...

人間とコンピュータのインタラクションにおける状況認識

狭義の人間とコンピュータの相互作用(ヒューマン・コンピュータ・インタラクション)であろうと、広義の人...

行列の乗算は乗算を必要とせず、100倍高速化、MITが近似アルゴリズムをオープンソース化

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

速報、劉強東が核爆弾を投げる!宅配便は早く消えます!

本当に信じられません、この時代の変化のスピードは想像を絶します!革新!革新!再びイノベーション!次か...

アンドリュー・ン氏の新演説:AIは業界の状況を変えており、企業の障壁はアルゴリズムではなくデータである

[[204846]] 1. 人工知能の応用と価値Andrew Ng 氏は、AI は新しい電気であると...

NetEase Cloud Music 推奨システムのコールド スタート技術

1. 問題の背景: コールドスタートモデリングの必要性と重要性コンテンツプラットフォームとして、QQ...

ビッグデータと人工知能のデュアルエンジンが企業のデジタル変革を推進

[51CTO.comより引用] デジタル時代において、ビッグデータと人工知能は企業のビジネス成長を推...

コンピュータービジョンを例に、AIを仕事に導入する方法を説明します。

[[210306]]以下は、AI ビジネスを始める方法の紹介です。これは比較的人気のある科学講演で...

MiniGPT-4: 高度な大規模言語モデルを使用した AI 視覚言語理解の向上

1. プロジェクトの背景と動機今年初め、OPEN AI の GPT-4 は前例のないマルチモーダル機...

...

OpenAI、中小企業向けChatGPTチームサブスクリプションサービスを開始、月額料金は1人あたり30ドル

1 月 11 日、OpenAI は小規模なセルフサービス チーム専用の新しいサブスクリプション プラ...

ChatGPTのウェブサイトのトラフィックは3か月連続で減少しており、8月の訪問数は3.2%減の14億3000万回となった。

分析会社シミラーウェブが9月8日に発表した最新データによると、人工知能チャットロボット「ChatGP...

今後5年間で働くのに適した5つの職種

「中国製造2025」という言葉を聞いたことがありますか。これは、中国が2025年までに産業の徹底的な...

GoogleはOpenAIの競合企業Anthropicに最大20億ドルを投資することに同意したと報じられている

事情に詳しい関係者によると、10月28日、Googleはこれまでの投資に加え、OpenAIの競合企業...

私の国の人工知能の医療応用シナリオは非常に人気があり、既存の実践では依然として3つのボトルネックを突破する必要があります。

[[261498]]私の国には1,100社以上の人工知能企業があります。人工知能の最もホットな分野...