Skip to content

アプリケーション内で をクリックすると、お使いのDataRobotバージョンに関する全プラットフォームドキュメントにアクセスできます。

モデルのチューニング

Visual Artificial Intelligence (AI)のインサイトから取得した情報を使用してチューニングして以下の操作を行います

これらの設定などには、高度なチューニングタブからアクセスできます。 このページでは、Visual Artificial Intelligence (AI)プロジェクトに固有のそのページの設定について説明します。

シンプルなチューニングのウォークスルーについては、 チューニングガイドを参照してください。

オーグメンテーションリスト

最初に、DataRobotは高度なオプションからの設定を適用して、モデルを作成し、それらの設定を初期オーグメンテーションリストという名前のリスト(特徴量セットと同様)に保存します。 オートパイロットが完了すると、さまざまな設定を作成してカスタムオーグメンテーションリストとして保存することにより、モデルのさまざまな変換戦略を引き続き検討できます。

保存されているオーグメンテーションリストを選択して、そのリストでモデルのチューニングを開始できます。これで、さまざまな異なるオーグメンテーション戦略でトレーニングされたモデルのスコアを比較できます。

粒度

高レベルの形状やテクスチャよりも細部に注意を向けるかどうかを調整して、適切なレベルをキャプチャするように前処理パラメーターを設定します。 たとえば、意思決定を行う場合は、高レベルの特徴量を使用してポイント、エッジ、コーナーに焦点を合わせないでください。一般的なオブジェクトの検出に焦点を合わせる場合は、低レベルの特徴量を使用しないでください。 モデルが入力画像を処理するときに反応するパターンの複雑さを有効/無効にします。

レベルが高いほど検出できるパターンのタイプが複雑になります(単純な形状と複雑な形状)。 複雑な魚の画像の単純な部分である鱗のような低レベルの特徴量を考えてみてください。

レベルは累積的で、結果は選択したレベルごとに描画されます。 したがって、低レベルの特徴量の組み合わせは中レベルの特徴量を形成し、中レベルの特徴量の組み合わせは高レベルの特徴量を形成します。 デフォルトでは、最高、高、中レベルが有効になっています(True)。 この設定で注意すべき点は、含める詳細が多いほど(モデルに追加する機能が多いほど)、トレーニング時間が長くなり、過学習のリスクが増えることです。

レベルを変更するときは、少なくとも1つのレベルをTrueに設定する必要があります。 特定の層の特徴量抽出のタイプは、選択したネットワークアーキテクチャによって異なる場合があることに注意してください。

次の表は各パラメーターについて簡単に説明しています。詳細については、ドキュメントを開いてください。

パラメーター 説明
featurizer_pool 画像の特徴量化の最終ステップですべてのフィルターにわたって集計するために使用される方法。異なる方法では、異なる方法で要約し、わずかに異なるタイプの特徴量を生成します。
network 事前トレーニング済みのモデルアーキテクチャ
use_highest_level_features ネットワークの最終層から抽出された特徴量。 ターゲットに「通常」の画像(動物や乗り物など)が含まれている場合に適しています。
use_high_level_features 最終的な畳み込み層の1つから抽出された特徴量。 この層は、高レベルの特徴量を提供します。通常、複雑なオブジェクトを形成する低レベルと中レベルの特徴量のパターンの組み合わせです。
use_medium_level_features 中間畳み込み層の1つから抽出された特徴量。 中レベルの特徴量は、通常、さまざまなレベルの低レベルの特徴量のパターンを組み合わせたものです。 モデルが不十分で、ネットワークの中央からより多くの特徴量を含める場合は、これをTrueに設定します。
use_low_level_features 最初の畳み込み層の1つから抽出された特徴量。 この層は、低レベルの視覚的特徴量を提供し、「通常」の(単一のオブジェクト)画像データセットとは大きく異なる問題に適しています。

フィーチャライザープールオプション

featurizer_poolオプションの簡単な説明を以下に示します。 デフォルトのfeaturizer_pool操作はavgですが、精度を向上させる場合はgemプーリングオプションを使用します。 gemavgと同じですが、追加の正則化が適用されます(極端な値がクリッピングされます)。

  • avg = GlobalAveragePooling2D
  • gem = GeneralizedMeanPooling
  • max = GlobalMaxPooling2D
  • gem-max = applied concatenation operation on gem and max
  • avg-max = applied concatenation operation on avg and max

画像のファインチューニング

次のセクションでは、レイヤー数の設定と、画像のファインチューナーで使用される学習率について説明します。

ファインチューナーのトレーニング可能な範囲

訓練可能な範囲は、分類/連続値ネットワークレイヤーから始まって入力畳み込みネットワーク層まで続く、訓練可能として構成する層の数を指定します。 レイヤー数は最終レイヤーから数えます。 これは、入力畳み込みレイヤーから始まり、より大きく、より代表的な画像データセットで事前にトレーニングされた低レベルの情報が、さまざまな問題タイプでより一般化できるためです。

データまたはデータセットが表す問題のユニーク数に基づいて、この値を決定します。 ユニーク数が高いほど、より多くのレイヤーをトレーニング可能にするのに適しています。これにより、最終的にトレーニングされたCNNファインチューナーモデルのメトリックスコアが向上します。 デフォルトでは、すべてのレイヤーがトレーニング可能です(テストにより、ほとんどのデータセットで最大の改善が見られたため)。 このパラメーターをチューニングする際に従うべき基本的なガイドラインは、改善が止まるまでトレーニング可能なレイヤーの量をゆっくりと減らすことです。

DataRobotは、ネットワークを徐々にフリーズ解除(レイヤーをトレーニング可能に設定)する「チェーン解凍」と呼ばれるスマートな適応方法も提供します。 収束するまで各レイヤーを個別に繰り返しトレーニングしますが、非常に徹底的で時間のかかる方法です。 次の図は、トレーニングダッシュボードインターフェースから反復によってトレーニングされたレイヤーの例を示しています。

識別学習率

識別学習率を有効にするには、トレーニング可能な範囲の設定に使用したものと同じ理論を使用します。 つまり、最後のいくつかのレイヤーから開始すると、モデルはより高いレベルの特徴量をより多く変更し、(異なるデータセット間で既に一般化されている) より低いレベルの特徴量の変更を減らすことができます。 このパラメーターをトレーニング可能な範囲と組み合わせて、真にきめ細かい学習プロセスを有効にして達成することができます。 次の図は、トレーニングダッシュボードからのレイヤー別の学習率のグラフの例を示しています。これは個々の訓練可能なレイヤーを表します。

ハイパーパラメーターのチューニング

オートパイロット中に、Visual Artificial Intelligence (AI)はニューラルネットワークアーキテクチャとプーリングタイプを自動的に調整します。 その結果、Visual Artificial Intelligence (AI)は最高水準の精度を提供すると同時に、計算効率も優れています。 精度を高めるために、モデル構築が完了した後、Visual Artificial Intelligence (AI)のハイパーパラメーターを調整して、精度をさらに向上させることができます。

以下のハイパーパラメーターチューニングセクションは、2つのセグメント(ディープラーニングとモデラーチューニング)に分割されています。 それぞれを個別または同時に適用でき、実験によって最良の結果が得られます。 手動でチューニングを開始する前に、オートパイロット(フルまたはクイック)の最初の実行をする必要があります。

ディープラーニングのチューニング

ディープラーニング用にモデルを調整するには、最適なリーダーボードのブループリントを選択し、高度なチューニングを選択します。 次のオプションでは、考慮すべき、いくつかのチューニングの代替案を使用することができます。

EfficientNetV2-S-Prunedは、Google AIチームによって開発された、コンピュータービジョン研究の実現化であり、他のVision Transformerよりもはるかに効率的にビジョン結果を提供しています。 モデルはImageNet21kで事前学習されます(14,197,122の画像で構成され、それぞれが21,841のクラスの1つによって単一ラベル方式でタグ付けされています)。 この大規模なImageNetチューニングシナリオは、画像カテゴリーが従来のImageNet1Kデータセットラベルの範囲外である場合に役立ちます。

EfficientNetB4-PrunedはEfficientNetV2-S-Pruned(上記)よりも古く、第1世代のEfficientNetで一部となっています。 小規模のImageNet1Kで事前学習されており、B4タイプはEfficientNetファミリーのモデルの大規模のバリアントと見なされます。 DataRobotは、このネットワークを試すことを強く推奨します。

ResNet50-Pruned は、効率的なディープラーニングアーキテクチャのためのコンピュータビジョン分野における標準です。 高度な画像オーグメンテーション技術(AutoAugment、MixUp、CutMixなど)を使用せずに、ImageNet1Kで事前学習されています。 この学習体制とアーキテクチャは、スキップ接続のみに基づいており、すべてのチューニング設定で優れた次のステップのニューラルネットワークアーキテクチャです。

モデラーのチューニング

ディープラーニングのためにモデルをチューニングするには、最適なリーダーボードのブループリント(このタイプは提案で指定されます)と高度なチューニングを選択します。 次のオプションを考慮してください:

Kerasのブループリントの場合、エポック数を増加(たとえば2または3つ増やすなど)します。 DataRobotにおけるKerasのブループリントモデラーは、異なる画像シナリオで最適化されましたが、画像のデータセットに応じて、エポックを学習することでパフォーマンスを向上させることができます。

Kerasのブループリントの場合、活性化関数をSwishに変更します。 画像データセットによっては、Swishが正規化線形ユニット(ReLU)よりも適切な場合もあります。

Best Gradient Boosting Trees (XGBoost/LightGBM)のブループリントの場合、学習率を増減します。

任意のタイプの最適なブループリントを選択し、スケーリング方法を変更します。 試行例:

  • None -> Standardization

  • None -> Robust Standardization

  • Standardization -> Robust Standardization

線形ElasticNet(二値ターゲット)の場合、最大反復を2倍(デフォルトでmax_iter = 100max_iter = 200に変更します。

正則化ロジスティック回帰(L2)の場合、正則化を2倍に増やします。たとえば、C(正則化強度の逆数)の場合、C = 4であればC = 2に変更します。

最適のSGD(多クラス)の場合、n_iterを2倍にします。たとえば、n_iterが100の場合、200に変更します。


更新しました August 16, 2023