自動機械学習ガイド: 4 つの成熟モデル

自動機械学習ガイド: 4 つの成熟モデル

[51CTO.com クイック翻訳] 人工知能と機械学習の概念は、データサイエンスコミュニティで人気が高まっています。これらのコンセプトにより、以前は手作業を必要としていた多くのタスクを、より効率的で正確な自動化された方法に置き換えることができるようになりました。技術トレンドの変化に伴い、自動化された機械学習は時間を節約するだけでなく、手動操作を簡素化することで効率も向上すると言えます。

自動機械学習: トレーニングプロセスの自動化

概念的には、機械学習は、現実世界のデータを処理して、望ましい出力を出すように機械をトレーニングすることを目的としています。言い換えれば、機械が既存のデータ(または経験)からある程度のトレーニングを取得できるようにし、完全なデータ処理の後、より正確な出力を生成できるようになります。自動機械学習 (AutoML) の概念は、明らかにプロセス全体を完全に自動化することです。

自動機械学習の成熟モデル

自動化された機械学習のさまざまな実装は、対応する成熟度に基づいてさまざまなレベルに分類できます。下の図に示すように、モデルの成熟度が高ければ高いほど、自動化されたタスクのサポートが向上します。もちろん、これには、データの集中トレーニングを通じてモデルがより多くのタスクを実行し、より多くのサービスを提供できることも必要です。

1. ハイパーパラメータの最適化

データセットが送信されると、自動化された機械学習は、上記の成熟度モデルに基づいて、ランダムフォレスト、線形回帰などのさまざまな既存のモデル(通常は構造化データを使用)との一致を試みます。同時に、データに適用される各モデルの必要に応じてハイパーパラメータを最適化します。このような最適化手法には、手動検索、ランダム検索、グリッド検索などがあります。

たとえば、Auto-sklearn はハイパーパラメータの最適化にベイズモデルを使用し、望ましい結果を提供できます。ただし、この成熟レベルのモデルでは、自動化された機械学習は、クロス検証、機械学習アルゴリズムの選択、ハイパーパラメータの最適化などの限られたタスクしか実行できません。もちろん、成熟度が上がるにつれて、自動化された機械学習の機能は向上し、より良い結果が得られるようになります。

2. レベル1以上のデータ前処理

最初のレベルでは、自動化された機械学習では、ユーザーがデータの前処理手段を自分で実装する必要があります。ただし、第 2 レベルでは、より洗練されたモデルを使用することで、さまざまなデータ前処理タスクを自動化自体で完了し、さらなる処理の準備を整えることができます。

列の型を検索して理解することで、機械学習自体はすべてのデータ (一部の null 値を含む) を一般的な数値型に変換することが完全に可能になります。もちろん、これにはデータの高度な変換や前処理は含まれておらず、データ サイエンティスト自身がさらにアクションを実行する必要があります。

対象タスクに対して、システムは適切な機械学習アルゴリズムを検索して選択する役割のみを担います。たとえば、現在のモバイル アプリケーション開発タスクに基づいて、自動化された機械学習アルゴリズムとモデルを設計し、データを前処理して、必要な予算、時間、その他の正確な結果を取得します。

データを前処理することで、自動化された機械学習システムは、特徴選択、次元削減、データ圧縮などの機能を構築および実装し、さまざまなトレーニングタスクをシームレスに実行できます。

3. 適切な機械学習アーキテクチャを見つける

前述の第 1 レベルおよび第 2 レベルの自動化された機械学習システムは、データの性質に基づいて適切な機械学習アーキテクチャを積極的に検出し、実行を通じて優れた出力を保証することができないことは明らかです。 3 番目のレベルでは、AutoKeras などのオープンソースの自動機械学習ライブラリがニューラル アーキテクチャ検索 (NAS、ニューラル アーキテクチャ検索、https://en.wikipedia.org/wiki/Neural_architecture_search を参照) を実装します。この人気の高いアーキテクチャは、画像、音声、テキストに対して機械学習アルゴリズムを効果的に実装できます。

したがって、データ サイエンティストは、さまざまなニューラル アーキテクチャ検索アルゴリズムを使用して、自動化された機械学習のサポートと経験の蓄積を強化できます。実際の応用では、自動運転車、自動化された消費者サービスなどの分野で第 3 レベルの自動化された機械学習システムが採用されています。

4. 関連分野の知識の活用

機械学習システムに正確な出力を提供するには、データ、特にデータの範囲とそれをホストするシステムについての深い理解が不可欠です。複雑な人工知能の効果は、関連分野の知識を活用し、必要なすべての基準を念頭に置くことによってのみ実現できます。

既存の関連分野における知識の蓄積と実際のシナリオでのその使用により、最終結果の精度が間違いなく向上することがわかります。同時に、精度の向上により優れた予測機能が向上し、自動化された機械学習タスクに対する包括的なサポートが提供されます。したがって、この成熟度レベルのモデルは、コンテキスト ドメインの関連知識を増やし、明確な結果指向の記録によって、自動化された機械学習システムの精度を向上させることに重点を置いています。

自動化された機械学習の例

データ サイエンスの研究に携わる人々は、さまざまなツールやソフトウェア ライブラリを使用して、実際のアプリケーション シナリオのニーズに応じて正確な出力を持つ自動化プロセスや機械学習システムを開発できます。

自動機械学習のためのオープンソースライブラリ

現在、業界には、さまざまな自動機械学習をシステムに実装したいという開発者のニーズをサポートし、満たすことができるさまざまな種類のオープンソース ライブラリが存在します。

1. オートケラス

ソフトウェア ライブラリは、開発者が GitHub 上で無料で使用できます。 Data Lab が開発した AutoKeras は、すべてのディープラーニング ツールへのアクセスを提供し、ディープラーニング モデルの全体的な機能を強化することを目的としています。次のコードは AutoKeras のアプリケーション例です。

  1. autokeras をakとしてインポートする
  2. clf = ak.ImageClassifier()
  3. clf.fit(x_train, y_train)
  4. 結果 = clf.predict(x_test)

Python ソースコード リンク: https://github.com/jhfjhfj1/autokeras

2. MLボックス

MLBox は Python で書かれた別のオープンソース ライブラリです。データの前処理、クリーニング、フォーマットなどの機能を含む、自動機械学習のさまざまな機能をより迅速かつ容易に開発できるようになります。次のコード例は、データをインポートした後に前処理する方法を示しています。

  1. mlbox.preprocessingからインポート *
  2. mlbox.optimisationからのインポート *
  3. mlbox.predictionからインポート *
  4. パス = [ "../input/train.csv" , "../input/test.csv" ]
  5. target_name = "生き残った"  
  6. rd = リーダー(sep = "," )
  7. df = rd.train_test_split(paths, target_name) #読み取り前処理 (日付など)

Python ソースコード リンク: https://www.kaggle.com/axelderomblay/running-mlbox-auto-ml-package-on-titanic

3. 自動学習

Auto-sklearn は、もう 1 つのオープン ソースの自動機械学習サポート ライブラリです。適切な機械学習アルゴリズムを選択して、データのモデルと要件を調査します。ユーザー側でのハイパーパラメータ処理の必要性がなくなり、処理自体を実行できるようになります。次のコードは、データセットに Auto-sklearn を実装する例です。

  1. autosklearn.classificationをインポートする
  2. sklearn.model_selectionをインポートする
  3. sklearn.datasetsをインポートする
  4. sklearn.metricsをインポートする
  5. X, y = sklearn.datasets.load_digits(return_X_y= True )
  6. X_train、X_test、y_train、y_test = \
  7. sklearn.model_selection.train_test_split(X, y, ランダム状態=1)
  8. automl = autosklearn.classification.AutoSklearnClassifier()
  9. automl.fit(X_train、y_train) を実行します。
  10. y_hat = automl.predict(X_test)
  11. print( "精度スコア" , sklearn.metrics.accuracy_score(y_test, y_h

Python ソースコード リンク: https://automated-machine-learning.github.io/auto-sklearn/master/

自動化された機械学習ツール

以下のツールは商用利用向けにリリースされていますが、広く使用されているだけでなく、自動化された機械学習の出力の品質も保証します。

データロボット

DataRobot は、自動化された機械学習をサポートする最初のツールです。人工知能を実現できる高度なプラットフォームを提供し、ユーザーがさまざまな問題を解決するのを支援しながら、ユーザーは実行プロセスをあまり心配する必要がなく、簡単に希望する結果を得ることができます。 DataRobot API は予測をサポートするだけでなく、適切な方法を選択して出力結果を提供することで、マシンがプロセスを自動化できるようにします。

以下のコードは、DataRobot API のアプリケーション例です。データセットを使用して、患者が 30 日以内に各病院に再入院する確率を予測します。

  1. datarobot をdrとしてインポート 
  2. pandasをpdとしてインポートする
  3. pd.options.display.max_columns = 1000  
  4. numpyをnpとしてインポートする 
  5. インポート時間   
  6. matplotlib.pyplot をpltとしてインポートします。  
  7. jupyterthemesからjtplotをインポート 
  8. # 現在インストールされているテーマ 引数が指定されていない場合はプロットスタイルを設定する 
  9. jtplot.style()  
  10. get_ipython().magic( 'matplotlib インライン' )  
  11. #入力データを読み込む 
  12. df = pd.read_csv( '../demo_data/10kDiabetes.csv' )  
  13. # データロボットクライアントインスタンスを初期化する 
  14. dr.Client(config_path= '/Users/benjamin.miller/.config/datarobot/my_drconfig.yaml' )を設定します。  
  15. #元の 10K 糖尿病データセットから100 個のサンプル置き換え作成します
  16. サンプル = []  
  17. iが範囲(100)内にある場合:  
  18. サンプルを追加(df.sample(10000, replace = True ))  
  19. # 各サンプルデータフレームをループする 
  20. enumerate (samples)i, sについて:  
  21. # プロジェクトを初期化する 
  22. プロジェクト = dr.Project.start  
  23.  
  24. プロジェクト名 = 'API_Test_{}' .format(i+20),  
  25. ソースデータ=s、  
  26. ターゲット = '再入国'  
  27. ワーカー数=2  
  28.  
  29. #すべてのプロジェクトを取得 
  30. プロジェクト = []  
  31. dr.Project.list()内のプロジェクトの場合:  
  32. 「API_Test」の場合  project.project_name:  
  33. プロジェクト.append(プロジェクト)  
  34. # *プロジェクトごと...*  
  35. #最も正確なモデルを使用して元のデータセット予測する 
  36. #リストを初期化する 結果を統合するためのすべての予測 
  37. ブートストラップ予測 = []  
  38. # 関連する各プロジェクトをループして、元の入力データセット予測を取得します 
  39. プロジェクトプロジェクト:  
  40. # 最高のパフォーマンスを発揮するモデルを取得する 
  41. モデル = dr.Model.get(プロジェクト=project.id、モデルID=project.get_models()[0].id)  
  42. # データセットをアップロード 
  43. 新しいデータ = project.upload_dataset(df)
  44. # 予測ジョブを開始する 
  45. 予測ジョブ = model.request_predictions(新しいデータID)  
  46. # 5秒ごとにジョブステータスを取得し  動く かつて「進行中」だっ   
  47. iが範囲(100)内にある場合:  
  48. 時間.sleep(5)
  49. 試す:  
  50. ジョブステータス = dr.PredictJob.get(  
  51. プロジェクトID=プロジェクトID、  
  52. 予測ジョブID=予測ジョブID  
  53. )。状態 
  54. except : # 通常、job_statusは完了するエラー生成します
  55. 壊す 
  56. # これで予測は終了です 
  57. 予測 = dr.PredictJob.get_predictions(
  58. プロジェクトID=プロジェクトID、
  59. 予測ジョブID=予測ジョブID
  60.  
  61. # 行ID正の確率抽出 すべての記録 セット 辞書 
  62. pred_dict = {k: kv zip内のv (predictions.row_id、predictions.positive_probability)}
  63. #ブートストラップ予測予測辞書を追加する
  64. bootstrap_predictions.append(予測予測)  
  65. #すべての予測をキーIDとして単一のデータフレーム結合します 
  66. # 各レコード行、各 セットです に関する予測   
  67. #ブートストラップされたデータセットから作成されたモデル 
  68. df_predictions = pd.DataFrame(bootstrap_predictions).T  
  69. # df_predictions各観測値平均予測を追加します 
  70. df_predictions[ '平均' ] = df_predictions.mean(axis=1)  
  71. #平均を使用して各レコードを均等なサイズの確率グループ配置する 
  72. df_predictions[ '確率グループ' ] = pd.qcut(df_predictions[ '平均' ], 10)  
  73. #各確率グループすべての予測を集計する   
  74. d = {} # 格納する辞書{Interval(probability_group): array([predictions])}  
  75. ページ 設定(df_predictions.probability_group):  
  76. #特定のグループすべての予測を結合する   
  77. フレーム = df_predictions[df_predictions.probability_group == pg].iloc[:, 0:100]  
  78. d[str(pg)] = frame.as_matrix().flatten()  
  79. #データフレーム作成する 確率グループ予測 
  80. df_pg = pd.DataFrame(d)  
  81. #ボックスプロット作成する 注文 確率範囲増加
  82. props = dict(ボックス = 'slategray' 、中央値 = 'black' 、ひげ = 'slategray' )
  83. viz = df_pg.plot.box(color=props, figsize=(15,7), patch_artist= True , rot=45)
  84. グリッド = viz.grid( False 、軸 = 'x' )
  85. ylab = viz.set_ylabel( '再入院確率' )
  86. xlab = viz.set_xlabel( '平均予測確率範囲' )
  87. タイトル = viz.set_title(
  88. label= '再入院予測範囲による予測分布' ,
  89. フォントサイズ=18

Python ソースコード リンク: https://blog.datarobot.com/estimation-of-prediction-distributions-using-datarobot

H2O.ai

AI 対応のサービス プラットフォーム ツールとしてもう 1 つ挙げられるのが H2O です。主に無人運転のAI結果の出力など機械学習タスクを実行するために使用されます。

要約する

上記のツールやソフトウェア ライブラリに加えて、Google AutoML (https://cloud.google.com/automl/) などの他の商用ソリューションも市場に出回っています。機械学習の概念を実装しながら自動データトレーニングを可能にし、優れた結果と予測を提供できます。現在、自動化された機械学習の効果が顕著になるにつれて、人工知能技術は継続的に強化されており、ますます多くの企業がそのようなシステムの出力結果から利益を得続けることができます。

原題: 初心者のための自動機械学習ガイド: 理解すべき 4 つの成熟度モデル、著者: Manoj Rupareliya

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

<<:  機械学習の卒業生は就職に不安を感じ始めています!卒業生と企業のどちらがより厳しいでしょうか?

>>:  多くのビッグデータサイエンティストが仕事を辞めた?理由を説明しましょう。

ブログ    
ブログ    

推薦する

...

...

...

生成 AI によってもたらされるセキュリティ リスクをどう解決するか? Akamai が答えを持っています

現在、あらゆる分野で革新的なテクノロジーを活用して産業のアップグレードを加速する方法が模索されており...

...

Redis に基づく分散ロックと Redlock アルゴリズム

[[403381]]この記事はWeChatの公開アカウント「UP Technology Contro...

人工知能、液体冷却、そして未来のデータセンター

生成型人工知能 (AI) の急速な台頭は、企業が AI を導入する驚異的なスピードを浮き彫りにしてい...

GPT ストアは来週開始され、OpenAI アプリケーションの爆発的な増加が目前に迫っています。最も完全なGPTビルダーユーザーガイドはここにあります

これから起こることは、やがて起こるでしょう! OpenAIが開発者会議で正式発表した「GPTストア」...

...

Facebookは、数億のノードでタスクを迅速に完了できる大規模なグラフ埋め込みアルゴリズムをオープンソース化しました。

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

顔認識はどこにでもあるが、デジタル悪用のリスクに注意

数日前、清華大学法学院のラオ・ドンヤン准教授が、コミュニティに顔認識アクセス制御システムを設置するこ...

...

空中でスクリーンに文字を書くのは魔法のようです。指をつまむだけで実現します。

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

人工知能は大量失業を引き起こすでしょうか?中国人民政治協商会議全国委員会によるこの調査は、その答えを提供している。

2019年の注目産業よく知られている5G、ブロックチェーン、インターネットに加えてもう一つは人工知...

2021年に機械学習を学ぶには?この詳細なガイドがあなたをカバーします!

「すべての人にAI」の時代を迎え、多くの人が機械学習(ML)に何らかの形で触れるようになりました。...