TrainingStoppingCriterion
NetTrainのオプションで,過剰適合を防ぐために早期に訓練を中止する基準を指定する.
詳細
- デフォルトのTrainingStoppingCriterionNoneでは,早期中止は行われない.
- TrainingStoppingCriterion"measurement"の設定は,measurement が向上しなくなったら訓練を中止するように指定する.measurement の可能な値には以下がある.
-
"Loss" ネットワークの訓練損失 key TrainingProgressMeasurementsキー - key の可能な値はTrainingProgressMeasurementsの指定に依存する.しばしば,キーは測度と同じである.例えば,TrainingProgressMeasurements"ErrorRate"のときの key は"ErrorRate"でよい.しかし,これが常に当てはまる訳ではない.
- TrainingStoppingCriterionAutomaticはTrainingStoppingCriterion"Loss"に等しい.
- デフォルトで,TrainingStoppingCriterionは確認集合からの尺度と損失に基づいている.NetTrainのValidationSetオプションがNoneの場合は,警告が出されて訓練集合が使われる.確認集合が存在する場合は,確認損失と尺度が計算されるたび(デフォルトで1ラウンドに1回)に中止の基準がチェックされる.さもなければ,中止基準はラウンドごとにチェックされる.
- TrainingStoppingCriterionには<"Criterion""measurement",opt1val1,opt2val2,… >シンタックスを使って指定可能なサブオプションが多数ある.
- TrainingStoppingCriterion<"Criterion""measurement","Patience"n >の設定は,measurement が n ラウンドを超えて改善しない場合には訓練を中止するように指定する.n のデフォルト値は0である.
- TrainingStoppingCriterion<"Criterion""measurement","InitialPatience"n >の設定は,n ラウンド後にはじめて中止基準をチェックするように指定する.n のデフォルト値は0である.
- TrainingStoppingCriterion<"Criterion""measurement","Improvement"v >の設定は,改善と認められる measurement の最小変化を指定する.以下は improvement の可能な値である.
-
"AbsoluteChange" measurement の改善が v 未満になったら訓練を中止する "RelativeChange" measurement の改善が現在の最高値の v 倍未満になったら訓練を中止する - 改善指定が与えられない場合は,"AbsoluteChange"0が使われる.
- "RelativeChange"Quantity[q,"Percent"]の形式も使うことができる.
- TrainingStoppingCriterion<"Criterion"func,… >を使って,中止基準として関数を指定することもできる.訓練を中止すべきときには,func はTrueを返さなければならない.
- 関数 func には次のキーの連想が与えられる.
-
RoundLoss 訓練集合の合計損失 ValidationLoss 確認集合の合計損失 RoundMeasurements 訓練集合についての要求された訓練尺度の連想 ValidationMeasurements 確認集合についての要求された訓練尺度の連想 - 確認特性は確認集合がある場合にのみ使用できる.
- "RelativeChange"オプションと"AbsoluteChange"オプションは関数基準と一緒に使うことはできない.
- TrainingStoppingCriterionについて measurement が指定されているなら,尺度の値を使ってNetTrainから返す最適化訓練ネットが選択される."Patience","InitialPatience","AbsoluteChange","RelativeChange"の選択肢はこの選択には影響しない点に注意のこと.TrainingStoppingCriterionについて関数が指定されているなら,最適化訓練ネットの選択にはデフォルト動作が使われる.
例題
すべて開くすべて閉じる例 (1)
確認損失が向上しなくなった時点で訓練を停止することで過剰適合を防ぐ.単純なネットと訓練データおよび検証データを設定する:
確認損失が向上情しなくなったら,TrainingStoppingCriterionを使って訓練を中止する:
スコープ (2)
より複雑な基準を使って早期停止を行う.単純なネットと訓練データおよび検証データを設定する:
確認損失の向上が何らかの絶対量よりも小さい場合はTrainingStoppingCriterionを使って訓練を中止する:
確認損失の向上が以前の最良の値の何パーセントかより小さくなったら,TrainingStoppingCriterionを使って訓練を中止する:
確認損失が向上しない状態が5ラウンドを超えて続いたら,TrainingStoppingCriterionを使って訓練を中止する:
確認損失が向上しなくなったらTrainingStoppingCriterionを使って訓練を中止する.しかし,このチェックは訓練ラウンドが200回を超えてから始める:
確認マクロ平均リコールが50回反復して増えなくなったらTrainingStoppingCriterionを使って訓練を中止する:
特性と関係 (2)
向上と見なされる変化の方向は measurement に依存する."Loss"の場合は減少が向上である.その他の測度については,TrainingProgressMeasurementsの"Direction"direction サブオプションを使って方向が指定できる.組込み測度の場合は,適切な方向が自動的に選択される.
第1層アクティベーションのL1ノルムが増加しなくなったら訓練を中止する:
関数以外の任意の停止基準はコールバック関数を使って指定できる.ネットとデータを設定する:
コールバック関数なしで,確認損失が50回反復しても減らなくなったらTrainingStoppingCriterionを使って訓練を停止する:
テキスト
Wolfram Research (2019), TrainingStoppingCriterion, Wolfram言語関数, https://reference.wolfram.com/language/ref/TrainingStoppingCriterion.html.
CMS
Wolfram Language. 2019. "TrainingStoppingCriterion." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/TrainingStoppingCriterion.html.
APA
Wolfram Language. (2019). TrainingStoppingCriterion. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/TrainingStoppingCriterion.html