optim - Optimizasyon
Gradient descent ve ileri seviye optimizer algoritmaları
4
Optimizer
5
Scheduler
Adam
Varsayılan
Genel Bakış
optim modülü, sinir ağlarını eğitmek için gradient descent tabanlı optimizasyon algoritmaları sağlar.
Adam Optimizer
kullan ai/optim;
kullan ai/nn;
değişken model = Sequential::yeni([/*...*/]);
değişken optimizer = Adam::yeni(
parametreler: model.parametreler(),
lr: 0.001,
beta1: 0.9,
beta2: 0.999,
epsilon: 1e-8
);
// Training loop
her epoch içinde aralık(100) için yap
değişken loss = model.eğit(x, y);
optimizer.sıfırla();
loss.geri();
optimizer.adım();
son
SGD (Stochastic Gradient Descent)
kullan ai/optim;
değişken optimizer = SGD::yeni(
parametreler: model.parametreler(),
lr: 0.01,
momentum: 0.9,
weight_decay: 1e-4,
nesterov: doğru
);
AdamW (Adam with Weight Decay)
kullan ai/optim;
değişken optimizer = AdamW::yeni(
parametreler: model.parametreler(),
lr: 0.001,
weight_decay: 0.01 // L2 regularization
);
Learning Rate Schedulers
StepLR
kullan ai/optim;
değişken scheduler = StepLR::yeni(
optimizer: optimizer,
step_size: 30, // Her 30 epoch
gamma: 0.1 // LR × 0.1
);
her epoch içinde aralık(100) için yap
// Eğitim...
scheduler.adım(); // LR güncelle
son
ReduceLROnPlateau
kullan ai/optim;
değişken scheduler = ReduceLROnPlateau::yeni(
optimizer: optimizer,
mode: "min",
factor: 0.5,
patience: 10
);
her epoch içinde aralık(100) için yap
değişken val_loss = validate();
scheduler.adım(val_loss); // Metric'e göre LR ayarla
son
Gradient Clipping
kullan ai/optim;
// Gradient norm clipping
her batch için yap
loss.geri();
// Gradient norm'u 1.0'a kırp
optim::clip_grad_norm(model.parametreler(), max_norm: 1.0);
optimizer.adım();
son
API Referansı
| Optimizer | LR Önerisi | Kullanım |
|---|---|---|
| Adam | 0.001 | Genel amaçlı, adaptive |
| AdamW | 0.001 | Transformers için |
| SGD | 0.01-0.1 | Momentum ile vision |
| RMSprop | 0.001 | RNN'ler için |