典型的な機械学習 (ML) ワークフローでは、初めに業務上の問題を特定し、問題点の定義または質問を作成します。 続いて、データ準備 (または前処理)、フィーチャ エンジニアリング、適切なアルゴリズムの選択とモデル トレーニング、ハイパーパラメーターの調整、モデルの評価などの一連のステップを行います。 このプロセスが反復され、多くの場合、最適なモデルは複数の反復と実験の後にしか得られません。
ML プロセスでデータに最適なモデルに特定するには、時間、労力、専門知識を必要とします。 [AutoML を使用したトレーニング (Train Using AutoML)] ツールは、このワークフローを自動化し、そのデータに最も適合するハイパーパラメーター セットを使用して最適なアルゴリズムを特定します。 この実装は、「mljar-supervised」と呼ばれるオープンソースの実装に基づいて構築されています。 以下のセクションでは、ML プロセスの各ステップについて説明します。
AutoML を使用したトレーニング (Train Using AutoML) ツールのワークフロー
[AutoML を使用したトレーニング (Train Using AutoML)] ツールは次の処理を自動化します。
- データの前処理 - ML プロジェクトを成功させるには、特定の問題に対応する高品質な入力データを収集する必要があります。 このデータは、異なるデータ ソースから取得される可能性があり、場合によっては組み合わせる必要があります。 データの収集および合成の後、ML アルゴリズムを効果的にトレーニングしてデータから学習できるように、データをクリーニングしてノイズを除去する必要があります。 このステップは通常、時間と手間がかかり、分野固有の詳細な知識と経験が必要な場合があります。 データ クリーニングには、欠損値の特定と処理、外れ値の検出、ラベルが誤っているデータの修正などがあり、いずれも、ML の実行者によるかなりの時間と労力を必要とする可能性があります。 以下に、前処理ステップを示します。
- 外れ値の除去 - 外れ値は、他の残りのデータ ポイントと類似しないデータ ポイントです。 外れ値の理由には、データ入力エラー、データ計測エラー、正当な非類似があります。 外れ値により、トレーニング段階でモデルがあいまいになる傾向があるので、原因にかかわらず、データから外れ値を除去することが重要です。 外れ値に対処する一般的な方法は、手動でのエントリの修正またはデータセットからのエントリの削除です。
- 欠損値の補完 - 場合によっては、データセットの列のエントリが欠損していることがあります。 トレーニング データに欠損したエントリがある場合、機械学習モデルはトレーニングできません。 データセットで欠損しているエントリを確実になくすため、データ補定を使用して、欠損しているエントリを有効なデータで補います。 欠損しているエントリを埋めるには、最もよく出現する値を追加するか、新しい値を追加してデータの欠損を強調します。 数値データの場合、1 つの方法として、欠損データ列のすべてのエントリの平均または中央値を使用します。 これは、現在のところ [欠損値の補完 (Fill Missing Values)] ツールを実行して特定できます。 [欠損値の補完 (Fill Missing Values)] ツールを利用すると、列のグローバルな統計情報を使用して補完できるだけでなく、ローカル近傍、時空間近傍などの空間的な方法や時系列値などの時間的な方法も使用して補完できます。
- データの規模調整と正規化- OLS (残差) のような線形モデルの機械学習モデルをトレーニングする際の主な前提条件の 1 つは、トレーニング対象データが正規分布している、つまり釣鐘曲線になっていることです。
線形モデルを使用する前に、データセットの各列が正規分布していることを確認します。 正規分布していない列がある場合、通常はデータに座標変換が適用され、正規分布になるよう変換されます。
必ず、データセットのすべての列が同じ規模になるようにして、より大きな規模の値を持つ列をモデルが重視しないようにします。 これは、データセットにスケーリング手法を適用することで行われます。
上記は線形モデルにも当てはまるかもしれませんが、ロジスティック回帰などの他のアルゴリズムや、決定木、エクストラ ツリー、ランダム フォレスト、XGBoost、LightGBM などのツリーベースのモデルは、正規性を想定せず、規模/傾斜分布の違いに対してより堅牢です。
- カテゴリ データの数値への変換 - ほとんどの機械学習モデルは、トレーニングに使用されているデータが数字形式である必要があります。 他のデータ タイプを処理することはできません。 State、Country、City、または Land cover category、Construction type、Dominant political party などの非数値列を、数字に変換します。 カテゴリ データから数値への変換に使用される方法には、ラベル エンコーディングとワンホット エンコーディングがあります。
- フィーチャ エンジニアリングとフィーチャ選択 - モデルのトレーニング プロセスで使用される列は、フィーチャと呼ばれます。 モデルが学習中のこれらのフィーチャの有用性はさまざまです。 一部のフィーチャは有用でないことがあり、そのような場合は、フィーチャがデータセットから削除されるとモデルが改善されます。
再帰的フィーチャの除去やランダム フィーチャ手法など方法は、データセット内のフィーチャの有用性の特定に役立ち、そのような方法で有用でないとされたフィーチャは通常削除されます。
場合によっては、複数のフィーチャを 1 つのフィーチャに組み合わせるとモデルが改善されます。 このプロセスはフィーチャ エンジニアリングと呼ばれます。
入力の複数のフィーチャを組み合わせることによって得られる新しいフィーチャとは別に、ツールは、[高度な設定] オプションが使用されている場合、zone3_id から zone7_id までの名前の空間フィーチャも作成します。 これらの新しいフィーチャは、入力トレーニング フィーチャの位置をさまざまなサイズの複数 (最大 5 つ) の空間グリッドに割り当て、グリッド ID を zone3_id から zone7_id の名前を持つカテゴリ独立変数として使用することで生成されます。 これにより、関連する空間情報がモデルに与えられ、モデルは使用可能データからより多くを学習できます。
- モデルのトレーニングとモデル選択 - モデルのトレーニング ステップでは、ML 実行者は、問題とデータ特性に基づいて適切な ML アルゴリズムを選択します。 次に、データに適合するようにモデルをトレーニングする反復プロセスを開始します。このプロセスには多くの場合、複数の ML アルゴリズムによる実験が含まれます。 これらのアルゴリズムにはそれぞれ、多数の異なるハイパーパラメーターがあります。ハイパーパラメーターは、ML 実行者によって手動で指定される値で、モデルが学習する方法をコントロールします。 次に、指定されたハイパーパラメーターは、アルゴリズムのパフォーマンスを改善し、より最適な結果を達成できるよう調節 (調整) されます。 これは、ML 実行者の時間と専門知識が必要な反復プロセスです。 各種のアルゴリズムまたは統計モデルには、線形回帰とロジスティック回帰、決定木やランダムフォレストなどのその他の機械学習モデル、LightGBM や XGBoost などのより新しいブースティング モデルが含まれます。 LightGBM および XGBoost は、ほぼすべてのデータセットで、他のほとんどのモデルよりも優れていますが、特定のデータセットでどのモデルがうまく機能するかを予測することは難しいので、データに最適なモデルを決定する前に、すべてのモデルを試して各パフォーマンスを比較する必要があります。 最適なモデルはそのモデル指標から特定できます。 [AutoML を使用したトレーニング (Train Using AutoML)] ツールを実行して回帰および分類モデルをトレーニングした後は、さまざまなモデル指標が返されます。 これらの指標の中には、値が高いほどモデルの適合度が高いことを示すものもあれば、値が低いほどモデルの適合度が高いことを示すものもあります。 次の表に、この概要を示します。
モデル 低い値 (ベスト モデル) 高い値 (ベスト モデル) 回帰
MSE、RMSE、MAE、MAPE
R2、Spearman、Pearson スコア
分類
Logloss
AUC、F1
ほとんどの場合は、複数のモデルを 1 つに結合してこの結合モデルから出力を取得すると、単一モデルに比べてより最適な結果を得られます。 このステップはモデル アンサンブルと呼ばれます。
- ハイパーパラメーターの調整 - これより前のステップのほとんどは反復プロセスですが、機械学習モデルのトレーニングで最も面倒なステップになることが多いのは、ハイパーパラメーターの調整です。
ハイパーパラメーターは、各モデルに付属するレバーと考えることができます。 ランダム フォレスト モデルのトレーニングで使用されるハイパーパラメーターは、LightGBM モデルのトレーニングで使用されるものとは異なります。 これらのハイパーパラメーターについて学ぶと、モデルの理解に役立ちます。
- モデルの選択 - ML ワークフローの最後のステップは、モデルの評価です。このステップでは、トレーニングおよび調整された ML アルゴリズムが、適合しなかったデータに対して適切に一般化されることを検証します。 この見えないデータは通常、検証セットまたはテスト セットと呼ばれ、モデルのトレーニングに使用される残りのデータとは別に保持されます。 この最後のステップの目標は、ML アルゴリズムが確実に、新しいデータで許容可能な予測精度を達成することです。
ML ワークフローでは、さまざまな程度の人的入力、意思決定、および選択がすべてのステップで行われています。
- 問題に対応するための適切なデータを収集したか?また、データは十分か?
- データのコンテキストで外れ値を示すのは何か?
- 欠損値が見つかった場合、何と置き換えるか?
- どのフィーチャを ML モデルに含めるべきか?
- どの ML アルゴリズムを使用すべきか?
- 許容できるモデルのパフォーマンス レベルはどの程度か?
- モデルに最適のハイパーパラメーターの組み合わせは何か?
この最後の決定には、反復可能なハイパーパラメーターについて数百または数千の組み合わせが含まれる可能性があります。 いくつかの異なるフィーチャ エンジニアリング シナリオと、いくつかの異なる ML アルゴリズムのトレーニングおよび調整を追加すると、プロセスが管理不能で非生産的になる可能性があります。 さらに、ML ワークフローの複数のステップで、データ サイエンス技術、統計、および機械学習アルゴリズムに関する専門的な技術の理解が必要です。 そのため、ML プロジェクトの設計と実行は、時間と多くの労力を要し、コストがかかり、多くの場合は、トレーニングされた ML 実行者とデータ サイエンティストに依存する可能性があります。
この 10 年間で、機械学習は、それが適用されるアプリケーションの範囲と、機械学習について生み出された新しい研究の量の両方で、劇的な成長を遂げてきました。 この成長の背後にある原動力には、ML アルゴリズムと手法の成熟、アルゴリズムで学習するための大量データの生成と増大、アルゴリズムを実行するための安価なコンピュート、ML アルゴリズムが複雑なデータ構造と問題に対処できる企業での意識の高まりなどがあります。
多くの組織は、ML を使用してデータを活用し、そこから洞察を得ようと考えていますが、潜在的な ML アプリケーションの数と、それらに対処するためのトレーニングを受けた専門家の ML 実行者の数との間に不均衡があります。 その結果、ML を組織全体で広くアクセスできるようにし、ML 以外の専門家や分野の専門家がすぐに使用できるツールを作成することで、組織全体で ML を標準化する必要性が高まっています。
近年、すべての経験およびスキル レベルにわたって組織の ML に対する需要に対処する方法として、自動機械学習 (AutoML) が登場しました。 AutoML は、データの準備、フィーチャ エンジニアリング、モデルの選択、ハイパーパラメーターの調整、モデルの評価など、ML ワークフローを可能な限り自動化 (人手による入力の削除) する単体システムを作成することを目的としています。 自動化システムの作成は、ML への参入障壁を下げることから非専門家にとって有益になり得ますが、ML ワークフローで最も手間で時間のかかる手順のいくつかを取り除くという点で、訓練を受けた ML 実行者にとっても有益になり得ます。
非 ML 専門家 (分野の専門家である GIS アナリスト、ビジネス アナリスト、またはデータ アナリスト) 向けの AutoML - AutoML を使用する主な強みは、最も技術的な専門知識と理解を必要とする ML ワークフローの一部のステップを省けることです。 分野の専門家であるアナリストは、ビジネス上の問題を定義して適切なデータを収集し、残りの作業をコンピューターに実行させることができます。 データ クリーニングやフィーチャ エンジニアリングのためのデータ サイエンス技術を詳しく理解する必要はありません。また、すべての ML アルゴリズムが行う処理を知る必要も、さまざまなアルゴリズムやハイパーパラメーター構成を探索する時間を費やす必要もありません。 代わりに、アナリストたちは、特定分野の専門知識を特定のビジネス上の問題やドメイン アプリケーションに適用することに集中できます。 さらに、多くの場合コーディングの経験を必要とせずに高度なモデルを独自に構築して使用できるため、トレーニングを受けた組織のデータ サイエンティストや ML 技術者への依存度が低くなります。
ML 専門家 (データ サイエンティストまたは ML 技術者) 向けの AutoML - AutoML は、ML 専門家にとっても有益です。 AutoML を使用すると、ML 専門家は、組織内の分野の専門家をサポートするために多くの時間を費やす必要がなく、各自の高度な ML 作業に集中できます。 AutoML は時間の節約と生産性の向上も可能にします。 データ クリーニング、フィーチャ エンジニアリング、モデルの選択、ハイパーパラメーターの調整など、ML ワークフローでの時間のかかるステップの多くは自動化できます。 これらの予備的な反復ステップを自動化することによって節約された時間は、代わりに、より高度な技術的タスやより多くの人的入力を必要とするタスク (分野の専門家との共同作業、ビジネス上の問題の理解、ML の結果の解釈など) に費やすことができます。
AutoML では、ML ワークフローに伴う主観的な選択や実験の一部が省かれるので、ML 実行者の生産性向上にも役立ちます。 たとえば、新しいプロジェクトに取り組む ML 実行者は、作成すべき新しいフィーチャ、特定の問題に最適な ML アルゴリズム、最適なハイパーパラメーターなどを特定するためのトレーニングを受け、専門知識を持っています。 ただし、特定の新しいフィーチャの構築を見落とす場合や、ML ワークフローの実行中に使用できるハイパーパラメーターの組み合わせをすべて試すことができない場合があります。 さらに、ML 実行者は、以前の作業や他の ML アプリケーションでの成功に基づいて特定の ML アルゴリズムを好むため、フィーチャ選択プロセスやアルゴリズムの選択にバイアスが生じる可能性があります。 実際には、1 つの ML アルゴリズムがすべてのデータセットで最高のパフォーマンスを発揮するわけではありません。特定の ML アルゴリズムは他のアルゴリズムよりもハイパーパラメーターの選択の影響を大きく受けます。多くのビジネス上の問題には、それらの問題の解決に使用される ML アルゴリズムの解釈可能性に対し、さまざまな程度の複雑さと要件があります。 AutoML は、同じデータセットに多くの異なる ML アルゴリズムを適用し、いずれのパフォーマンスが最も高いかを判断することで、この人間のバイアスの一部を減らすことができます。
ML 実行者にとって、AutoML は、ML プロジェクトの最初の開始点またはベンチマークとしても機能します。 これを使用して、データセットのベースライン モデルを自動的に開発でき、特定の問題に対する予備的な洞察を得ることができます。 入力データセットに特定のフィーチャを追加または削除するか、特定の ML アルゴリズムに重点を置いてそのハイパーパラメーターを微調整するかを決定できます。 この意味で、AutoML は、トレーニングを受けた ML 実行者の最初の選択肢セットを絞り込む手段と見なすことができ、ML システム全体のパフォーマンスの向上に集中できます。 これは一般的に使用されるワークフローであり、ML 専門家は AutoML を使用してデータ主導のベンチマークを開発し、このベンチマークに基づいて専門知識を組み込み、結果を改善します。
組織で AutoML を使用して ML を標準化することで、分野の専門家は、ビジネスの問題に注意を向け、実用的な結果を得ることができ、より多くのアナリストがより適切なモデルを構築できます。また、組織は、必要とする ML 専門家の数を減らすことができます。 また、トレーニングを受けた ML 実行者やデータ サイエンティストが生産性の向上により、生産性が最も必要とされる他の多数のタスクに集中することができます。
ベスト モデルの特定
[AutoML を使用したトレーニング (Train Using AutoML)] ツールを使用してベスト モデルを特定するには、次の手順を実行します。
- 決定木 (最大深度 4 の単純なツリー) や線形モデルなどの単純なアルゴリズムを実行します。
これにより、期待するデータと結果をすばやく調べることができます。
- デフォルト パラメーターを使用して、前のステップで選択されたモデルをトレーニングします。 デフォルトのハイパーパラメーターのみを使用するより複雑な一連のアルゴリズムを介してデータを実行します。
各アルゴリズムおよび使用可能なすべてのアルゴリズムに対して、1 つのモデル適合が試行されます。 使用できるアルゴリズムは、線形、ランダム フォレスト、XGBoost、Light GBM、決定木、およびエクストラ ツリーです。
- 各アルゴリズムのハイパーパラメーター空間をランダムに検索し、最適なハイパーパラメーター セットを見つけます。
- Golden Feature (問題空間をよく表す最適なフィーチャ) を使用して新しいフィーチャを構築します。 新しいフィーチャの中で予測力があるものを判定し、元のデータセットに追加します。
このステップでは、前のステップで特定された最適なハイパーパラメーター セットが使用されます。
- ステップ 4 で特定された最適なハイパーパラメーター セットを使用して、アルゴリズムごとに 1 つの最高パフォーマンス モデルをトレーニングし、最も重要度の低いフィーチャを特定して削除します。
これまでにトレーニングされたベスト モデルの結果が 1 つに結合されます。 次に、モデルがスタックされ、ベスト モデル (スタックされたモデルを含む) の結果が結合されます。
アンサンブルの作成
アンサンブルは、加重平均または投票によって予測が組み合わされたモデルのコレクションです。
アンサンブルを作成する最も一般的な方法には、バギング (RF はバギングの一例) やブースティング (XGBoost はブースティングの一例) があり、同じアルゴリズムに属するモデルからの出力を組み合わせます。 Ensemble Selection from Libraries of Models (Caruana et. al 2004) で言及されているそれらの方法などの最近の技術は、さまざまなモデルを結合します。
アンサンブルを作成するには、次の手順を実行します。
空のアンサンブルで開始します。
- アンサンブルのパフォーマンスを最大にするライブラリ内のモデルを、検証セットのエラー指標に追加します。
- 一定の反復回数、またはすべてのモデルが追加されるまで、前のステップを繰り返します。
- 検証セットで最大のパフォーマンスを発揮する、ネストされたアンサンブルのセットからアンサンブルを返します。
モデル スタッキングには、複数のモデルの結果の組み合わせや、そこからの結果の派生が含まれます。
アンサンブル手法は、出力に異なる重みを適用することによってさまざまなモデルの結果を組み合わせますが、スタッキングは、各基本モデルの出力をフィーチャとして使用し、それらを上位レベルのモデルであるメタモデルに追加します。 上位レベルのメタモデルからの出力は、最終出力として使用されます。
パフォーマンスを向上させるため、モデル スタックを作成し、その出力を組み合わせてアンサンブル スタックを作成することができます。
出力レポートの解釈
[AutoML を使用したトレーニング (Train Using AutoML)] ツールは、出力として HTML レポートを生成できます。
レポートのメイン ページにはリーダーボードが表示されます。 同じ情報を、ツールの出力ウィンドウでも参照できます。
リーダーボードには、評価したモデルとその指標値が表示されます。 回帰問題では、RMSE が最小となるモデルがベスト モデル (この場合はアンサンブル モデル) と見なされます。 分類問題では、これは異なります (ログ損失など)。
下の AutoML パフォーマンスの箱ひげ図は、以下に示すとおり、Y 軸を評価指標 (RMSE)、X 軸をモデルとして、さまざまなモデルの評価指標を比較します。 箱ひげ図は、RMSE が最小となるアンサンブル モデルがベスト モデルであることを示しています。
下の AutoML パフォーマンス チャートは、最高パフォーマンスのモデル (この場合はアンサンブル モデル) の評価指標が、さまざまな反復によって異なる様子を示しています。 反復チャートは、モデルの各実行間でのモデルの一貫性を理解するのに役立ちます。
下記の Spearman 相関は、評価されたすべてのモデルに対して生成され、より密接に関連するモデルは、濃い青で表示されます。 たとえば、LightGBM と XGBoost からの出力は、最も密接に関連しています (いずれもブースティング アルゴリズムなので密接な関係が予期されます)。 LightGBM からの出力は、エクストラ ツリーからの出力と比較して、ランダム フォレストからの出力に似ています。
リーダーボードで名前列のモデルのリンクをクリックすると、ハイパーパラメーターの調整完了後にモデル トレーニング用に完成したハイパーパラメーターを表示するページに移動できます。 この例では、決定木は max_depth 値 3 でトレーニングされました。
同じページには、評価に使用されたもの以外の他の指標も表示されます。 回帰タスクである以下の例では、MAE、MSE、RMSE、R2、および MAPE 指標がモデル評価に使用されています。
(5,000 個のデータ ポイントのサンプルでの) 実際の出力と予測された出力の散布図も表示されています。
このチャートを使用すると、モデルのパフォーマンスを判定できます。 上図は、レポートから取得した 2 つのモデルの散布図の比較を示しています。 2 つ目のモデルは、予測値と真の値がより大きく異なる 1 つ目のモデルよりもパフォーマンスが優れています。
モデルの説明可能性を高めるため、最終モデルの各変数の重要度もレポートに含まれています (sklearn でのフィーチャの重要度と同様)。 sklearn とは異なり、このプロットは sklearn の非木構造モデルにも生成できます。 ツリーベースではないこのモデルの説明可能性は、SHAP (SHapley Additive exPlanations) によってもたらされます。
SHAP は、任意の機械学習モデルの出力を説明する、ゲーム理論的な手法です。 ゲーム理論の古典的な Shapley 値や関連するエクステンションを使用して、最適なクレジット割り当てとローカル説明を結びつけます。 SHAP とその実装に関する詳細情報は、SHAP GitHub フォルダーにあります。 SHAP 出力は [基本] オプションでのみ使用できます。
以下のチャートでは、住宅データセットの各変数が学習済みモデルに与えるグローバルな影響を視覚化できます。 これは、sqft_living フィーチャがモデルに最も影響を与え、住宅価格を予測する際に最も重要なフィーチャであり、バスルームとベッドルームの数がその次に重要であることを示しています。
[基本] オプションを使用すると、自動探索的データ解析レポート (EDA レポート) を表示することもできます。このレポートでは、モデル トレーニングで使用されたターゲット変数と予測変数の統計サマリーを出力します。 以下は、altclip.tif という変数に対する EDA レポートの例です。
AutoML を使用した予測 (Predict Using AutoML) ツール
[AutoML を使用した予測 (Predict Using AutoML)] ツールは、[AutoML を使用したトレーニング (Train Using AutoML)] ツールで生成されたトレーニング済みの DLPK モデルを使用して、まだ確認されていない互換性のあるデータセットで連続変数 (回帰) またはカテゴリ変数 (分類) を予測します。
入力は Esri モデル定義ファイル (.emd) またはディープ ラーニング パッケージ ファイル (.dlpk) です。これは、[AutoML を使用したトレーニング (Train Using AutoML)] ツールを使用して作成できます。
予測に加えて、[AutoML を使用した予測 (Predict Using AutoML)] ツールによって生成されるオプション出力の一部は、次に示すパラメーターとフィールドによって定義されます。
[すべての予測で説明を表示] - このパラメーターは、ローカル変数重要度を推定するために使用され、ローカル規模でモデルを理解するのに役立ちます。 このパラメーターがオンの場合、説明フィーチャ、説明ラスター、説明距離フィーチャを含め、すべての説明変数でローカル変数重要度が生成されます。 説明変数でそれぞれの位置における予測値のローカル変数重要度を表すパーセンテージ スコアが [出力予測フィーチャ] パラメーター値に追加されます。 たとえば、var1、var2、var3 という名前の予測因子 (フィーチャ変数、ラスター、または距離変数のいずれか) がモデルのトレーニングに使用される場合は、var1_imp、var2_imp、var3_imp というフィールドがサンプルごとに [出力予測フィーチャ] の値に追加されます。
この変数重要度は、位置によって異なる各予測因子の重要度を示します。さらに、ローカル予測に関与する各予測因子の強さと弱さも表します。 このパラメーターは、[予測タイプ] パラメーターが [フィーチャを予測] として設定されている場合に有効です。var1_imp var2_imp var3_imp 0.26
0.34
0.40
0.75
0.15
0.10
- [信頼度スコア] - このスコアは、モデルによって返される予測クラスに関するモデルの信頼度を示します。 このパラメーターは分類問題でのみ使用でき、prediction_confidence フィールドが出力属性テーブルに追加されて、0 ~ 1 の範囲のスコア値を示し、正しいクラスである確率の高低を表します。 このフィールドは、信頼度の高い予測と信頼度の低い予測を識別するのに役立ちます。
参考文献
Caruana, Rich, Alexandru Niculescu-Mizil, Geoff Crew, and Alex Ksikes. 2004 "Ensemble Selection from Libraries of Models." Proceedings of the 21st International Conference on Machine Learning. Banff, Canada . http://www.cs.cornell.edu/~alexn/papers/shotgun.icml04.revised.rev2.pdf.