Hoppa till innehållet
AI-grafen
E· Universitetdeep-learning· ca 60 min· utvecklande· verifierad 2026-09-20

Lärhastighetsscheman och warmup

Kunna använda cosine-, step- och warmup-scheman och förklara varför warmup hjälper transformers.

Förkunskaper

Intuition

En fast inlärningstakt är nästan alltid fel. I början behövs små steg (modellen är slumpmässig och gradienterna opålitliga), i mitten stora steg (snabb framfart), i slutet små igen (finjustera).

Standardschemat i dag: warmup + cosinusavtagande.

lr
 │      ╭────╮
 │     ╱      ╰──╮
 │    ╱           ╰───╮
 │   ╱                 ╰────╮
 │  ╱                        ╰──────
 └─┴────────────────────────────────→ steg
   warmup        cosinus
   (1–5 %)

Varför warmup? Adams andra moment v^\hat v är opålitligt de första stegen — det bygger på för få observationer. Full inlärningstakt då ger stora, felriktade steg som kan skada initieringen permanent. Warmup låter momentskattningarna stabiliseras först.

Kod

import math
import numpy as np

def lr_schema(steg, total_steg, max_lr=3e-4, warmup_andel=0.03, min_andel=0.1):
    warmup = int(total_steg * warmup_andel)
    if steg < warmup:
        return max_lr * (steg + 1) / warmup                     # linjär uppvärmning
    t = (steg - warmup) / max(total_steg - warmup, 1)
    cos = 0.5 * (1 + math.cos(math.pi * t))                     # 1 → 0
    return max_lr * (min_andel + (1 - min_andel) * cos)

for s in (0, 50, 300, 3000, 7000, 9999):
    print(f"steg {s:>5}: lr {lr_schema(s, 10_000):.2e}")
# steg     0: lr 1.00e-05
# steg    50: lr 1.70e-04
# steg   300: lr 3.00e-04    ← toppen, slutet av warmup
# steg  3000: lr 2.49e-04
# steg  7000: lr 1.03e-04
# steg  9999: lr 3.00e-05    ← min_andel · max_lr

Andra scheman och när de passar:

SchemaPassar
Cosinuskänd total längd — standard
Linjär avtagandeenkelt, nästan lika bra
Step decay (÷10 vid givna epoker)klassiskt för CNN
OneCyclesnabb konvergens på få epoker
Konstant + avtagande i slutetokänd total längd (löpande träning)
ReduceLROnPlateaunär valideringsmåttet styr

Regel: cosinusschemat förutsätter att du vet total_steg. Avbryter du tidigt har lr aldrig hunnit ner, och modellen är inte färdigkonvergerad — ett vanligt fel som gör jämförelser mellan olika körlängder missvisande.

Behärskning innebär

  • Använder warmup och cosinusavtagande
  • Förklarar varför warmup behövs för transformers
  • Väljer schema efter träningens längd

Logga in för att göra övningarna och bygga upp din behärskning.

Källor

Alla källor och licenser