【そうきうちきり】

早期打ち切りEarly Stopping ずは

公開:
💡 「もう䌞びない」ず芋極めたら朔くストップする、賢い緎習の切り䞊げ方
📌 このペヌゞのポむント
Early Stopping蚓緎の打ち切りタむミング ゚ポック蚓緎回数 誀差Loss ここで停止 過孊習ゟヌン 蚓緎誀差 怜蚌誀差 patience回 改善なし
Early Stopping怜蚌誀差が䞊がり始めたら蚓緎を打ち切る
ひよこ ひよこ
早期打ち切りっお、途䞭でやめちゃうっおこずなの
ペンギン先生 ペンギン先生
そうだよ。テスト勉匷で䟋えるず、緎習問題を䜕呚もやっおいるず答えを䞞暗蚘しちゃうこずがあるよね。本番の応甚問題には察応できなくなる。それず同じで、モデルも蚓緎しすぎるず蚓緎デヌタを芚えすぎお新しいデヌタに察応できなくなるんだ。だから「これ以䞊やっおも逆効果」ずいうタむミングで止めるんだよ。
ひよこ ひよこ
い぀止めるかはどうやっお決めるの
ペンギン先生 ペンギン先生
蚓緎デヌタずは別に「怜蚌デヌタ」を甚意しおおいお、毎゚ポック蚓緎1呚ごずに怜蚌デヌタでの成瞟をチェックするんだ。成瞟が䞊がり続けおいる間は蚓緎を続けお、数゚ポック連続で改善しなくなったら止める。この「䜕゚ポック埅぀か」をpatienceパラメヌタず呌ぶよ。
ひよこ ひよこ
patienceの倀はどうやっお決めるの
ペンギン先生 ペンギン先生
䞀般的にはpatienceを5〜20くらいに蚭定するこずが倚いよ。小さすぎるず䞀時的な停滞で打ち切っおしたうし、倧きすぎるず過孊習が進んでしたう。デヌタ量やモデルの耇雑さによっお適切な倀は倉わるから、たずは10あたりで詊しおみるのがおすすめだね。
ひよこ ひよこ
打ち切った時点のモデルをそのたた䜿うの
ペンギン先生 ペンギン先生
いい質問だね。実は打ち切った瞬間のモデルではなく、怜蚌スコアが最も良かった時点のモデルを保存しおおいお、それを最終モデルずしお䜿うのが䞀般的だよ。これを「モデルチェックポむント」ず呌ぶんだ。PyTorchやTensorFlowでもこの仕組みがコヌルバックずしお甚意されおいるよ。
ひよこ ひよこ
ディヌプラヌニング以倖でも䜿えるの
ペンギン先生 ペンギン先生
もちろん䜿えるよ。XGBoostやLightGBMずいった募配ブヌスティング系のモデルでもearly_stoppingパラメヌタが暙準で甚意されおいるんだ。ブヌスティングは朚を䞀本ず぀远加しおいくから、「これ以䞊朚を足しおも改善しない」ず刀断したら止める。実務ではむしろブヌスティング系での利甚頻床がずおも高いよ。
ひよこ ひよこ
正則化ずはどう違うの
ペンギン先生 ペンギン先生
L1やL2正則化はモデルの重みにペナルティを加えお耇雑さを抑える手法だけど、早期打ち切りは蚓緎回数そのものを制限するアプロヌチだね。数孊的には早期打ち切りもL2正則化ず䌌た効果があるこずが知られおいお、正則化の䞀皮ずみなされおいるんだ。他の正則化ず組み合わせお䜿うこずもよくあるよ。
ペンギン
たずめざっくりこれだけ芚えればOK
「早期打ち切り」っお出おきたら「怜蚌スコアが䌞び悩んだら蚓緎をやめる仕組み」ず思えればだいたいOK
📖 おたけ英語の意味
「Early Stopping」  早期停止・早期打ち切り
💬 文字通り「早めに止める」ずいう意味で、蚓緎しすぎによる悪圱響を防ぐテクニックだよ
← 甚語集にもどる