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 = gemおよびmaxに連結操作を適用
  • avg-max = avgおよび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 = 2であればC = 4へ変更します。

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


更新しました May 11, 2022
Back to top