tag Hiperparametre
Bu sayfada Hiperparametre etiketi ile işaretlenmiş 3 yapay zeka kavramını bulabilirsiniz.
Batch size (yığın boyutu), bir yapay sinir ağının eğitiminde her gradyan güncellemesinde aynı anda işlenen eğitim örneği sayısını belirleyen hiperparametredir. Model tüm veri setini tek seferde hafızaya almak yerine veriyi küçük gruplara böler; batch size 32 ise ağırlıklar her 32 örnekte bir güncellenir. 10.000 örneklik bir veri setinde bu, epoch başına yaklaşık 313 güncelleme adımı demektir. Bu tek sayının önemi iki eksende toplanır: donanım ve öğrenme dinamiği. Donanım tarafında batch; model ağırlıkları, optimizer durumları ve ara aktivasyonlarla birlikte GPU belleğine (VRAM) sığmak zorundadır. Değer büyüdükçe bellek tüketimi yaklaşık orantılı artar, sınır aşıldığında Out of Memory (OOM) hatası alınır. Öğrenme tarafında ise küçük batch'ler gürültülü ama düzenleyici etki yapan gradyan tahminleri üretir ve genellemeyi iyileştirebilir; büyük batch'ler daha kararlı gradyanlar ve yüksek GPU verimliliği sunar ama keskin minimumlara (sharp minima) takılıp test performansını düşürme riski taşır. Pratikte üç yaklaşım ayırt edilir: batch size 1 ile çalışan stochastic gradient descent (SGD), tüm veriyi tek seferde işleyen full batch ve ikisinin ortasındaki mini-batch. Modern derin öğrenmede standart, 32-256 aralığındaki mini-batch değerleridir; "batch size" dendiğinde çoğunlukla bu kastedilir. Batch size tek başına değil, learning rate ile birlikte ayarlanır: batch büyütüldüğünde öğrenme hızı da genellikle orantılı artırılır (linear scaling rule) ve warmup uygulanır. Ölçek büyüdükçe kavram şekil değiştirir: büyük dil modeli ön eğitiminde global batch örnek sayısıyla değil token sayısıyla ifade edilir. Llama 3 405B'nin ön eğitiminde global batch 16 milyon token'a kadar çıkarılmıştır; bu ölçek tek GPU'ya sığmadığı için gradient accumulation ve data parallel dağıtım zorunludur. Günlük pratikte ise VRAM yetmediğinde gradient accumulation ile büyük sanal batch simüle edilir, bf16 mixed precision ve gradient checkpointing bellek ihtiyacını ciddi ölçüde azaltır. Doğru batch size veri setine, mimariye ve donanıma göre deneysel seçilir; 32 veya 64 ile başlayıp validation loss izleyerek ayarlamak en yaygın yöntemdir.
Batch Size (Yığın (Küme) Boyutu)
Batch size (yığın boyutu), bir yapay sinir ağının eğitiminde her gradyan güncellemesinde aynı anda işlenen eğitim örneği sayısını belirleyen hiperparametredir. Model tüm veri setini tek seferde hafızaya almak yerine veriyi küçük gruplara böler; batch size 32 ise ağırlıklar her 32 örnekte bir güncellenir. 10.000 örneklik bir veri setinde bu, epoch başına yaklaşık 313 güncelleme adımı demektir. Bu tek sayının önemi iki eksende toplanır: donanım ve öğrenme dinamiği. Donanım tarafında batch; model ağırlıkları, optimizer durumları ve ara aktivasyonlarla birlikte GPU belleğine (VRAM) sığmak zorundadır. Değer büyüdükçe bellek tüketimi yaklaşık orantılı artar, sınır aşıldığında Out of Memory (OOM) hatası alınır. Öğrenme tarafında ise küçük batch'ler gürültülü ama düzenleyici etki yapan gradyan tahminleri üretir ve genellemeyi iyileştirebilir; büyük batch'ler daha kararlı gradyanlar ve yüksek GPU verimliliği sunar ama keskin minimumlara (sharp minima) takılıp test performansını düşürme riski taşır. Pratikte üç yaklaşım ayırt edilir: batch size 1 ile çalışan stochastic gradient descent (SGD), tüm veriyi tek seferde işleyen full batch ve ikisinin ortasındaki mini-batch. Modern derin öğrenmede standart, 32-256 aralığındaki mini-batch değerleridir; "batch size" dendiğinde çoğunlukla bu kastedilir. Batch size tek başına değil, learning rate ile birlikte ayarlanır: batch büyütüldüğünde öğrenme hızı da genellikle orantılı artırılır (linear scaling rule) ve warmup uygulanır. Ölçek büyüdükçe kavram şekil değiştirir: büyük dil modeli ön eğitiminde global batch örnek sayısıyla değil token sayısıyla ifade edilir. Llama 3 405B'nin ön eğitiminde global batch 16 milyon token'a kadar çıkarılmıştır; bu ölçek tek GPU'ya sığmadığı için gradient accumulation ve data parallel dağıtım zorunludur. Günlük pratikte ise VRAM yetmediğinde gradient accumulation ile büyük sanal batch simüle edilir, bf16 mixed precision ve gradient checkpointing bellek ihtiyacını ciddi ölçüde azaltır. Doğru batch size veri setine, mimariye ve donanıma göre deneysel seçilir; 32 veya 64 ile başlayıp validation loss izleyerek ayarlamak en yaygın yöntemdir.
Epoch (Epoch (Eğitim Döngüsü))
Epoch (Epok ya da Eğitim Döngüsü), makine öğrenimi ve derin öğrenme modellerinin eğitiminde kullanılan temel bir zaman birimidir. Bir epoch; modelin tüm eğitim veri setini baştan sona tam olarak bir kez işlemesi, yani her örnek üzerinde hem ileri yayılım (forward pass) hem de geri yayılım (backward pass) gerçekleştirmesi anlamına gelir. Makine öğrenimi modellerini eğitirken, yalnızca bir epoch genellikle yeterli olmaz. Model, karmaşık kalıpları ve ilişkileri kavrayabilmek için aynı veriler üzerinde defalarca geçiş yapmak zorundadır. Bu nedenle modeller onlarca, yüzlerce hatta binlerce epoch boyunca eğitilebilir. Büyük dil modellerinin (LLM) eğitimi milyarlarca token üzerinde birden fazla epoch uygulanarak gerçekleştirilir; görüntü sınıflandırma gibi daha küçük görevlerde ise 10-100 epoch sıkça kullanılır. Epoch ve Batch İlişkisi Her epoch, büyük veri setini daha küçük parçalara (batch) bölerek işler. Bir epoch içindeki güncelleme sayısı, veri seti boyutunun batch boyutuna bölünmesiyle hesaplanır. Örneğin 10.000 örnekli bir veri seti 100'lük batch boyutuyla işleniyorsa, her epoch 100 ağırlık güncellemesi (iterasyon) içerir. Her iterasyonda gradyan hesaplanır ve model ağırlıkları güncellenir; böylece model adım adım öğrenir. Overfitting ve Erken Durdurma Epoch sayısının doğru seçilmesi kritik öneme sahiptir. Çok az epoch modelin yeterince öğrenememesine (underfitting) yol açar; model verinin altında yatan örüntüleri kavramaz ve hem eğitim hem de test verisinde kötü performans gösterir. Öte yandan, çok fazla epoch modelin eğitim verisini mekanik olarak ezberlemeye (overfitting) başlamasına neden olabilir. Bu durumda model eğitim setinde mükemmel sonuçlar verirken yeni verilerde başarısız olur. Bu dengesizliği çözmek için "Early Stopping" (Erken Durdurma) tekniği uygulanır: model her epoch sonunda doğrulama (validation) seti üzerinde değerlendirilir ve doğrulama kaybı iyileşmemeye başladığında eğitim otomatik olarak durdurularak en iyi ağırlıklar korunur. Eğitim ve doğrulama kaybının birbirinden ayrışmaya başlaması (divergence), overfitting'in erken belirtisidir. Epoch Sayısını Belirlemek Kaç epoch kullanılacağı, modelin karmaşıklığına, veri setinin büyüklüğüne ve görevin zorluğuna bağlıdır. Küçük veri setlerinde genellikle daha fazla epoch gerekir çünkü model her geçişte sınırlı miktarda örneğe maruz kalır. Büyük veri setlerinde ise tek bir epoch bile çok sayıda güncelleme içerdiğinden az epoch ile tatmin edici sonuçlar alınabilir. Epoch sayısı, öğrenme hızı (learning rate) ve model mimarisiyle birlikte hiperparametre optimizasyonunun temel bileşenlerinden biridir.
Simulated Annealing (Benzetimli Tavlama)
Benzetimli Tavlama (Simulated Annealing), fizikteki metal tavlama sürecinden esinlenen olasılıksal bir optimizasyon algoritmasıdır. Metal tavlama işleminde erimiş metal yavaşça soğutularak atom dizilişi minimum enerji durumuna ulaşır; benzer şekilde bu algoritma da çözüm uzayında küresel minimumu (veya maksimumu) aramak için kontrollü bir soğuma stratejisi kullanır. Algoritma 1983 yılında Scott Kirkpatrick, C. Daniel Gelatt Jr. ve Mario P. Vecchi tarafından Science dergisinde yayımlanmıştır. Temel çalışma prensibi Metropolis-Hastings kabulüne dayanır: yeni çözüm daha iyiyse kesinlikle kabul edilir; daha kötüyse exp(-(ΔE)/T) olasılığıyla kabul edilir. Burada ΔE kötüleşme miktarı, T ise anlık sıcaklık değeridir. Başlangıçta yüksek T, kötü adımları bile kabul ederek geniş alanı keşfeder; T azaldıkça algoritma yerel arama moduna geçer. Bu mekanizma, gradyan tabanlı yöntemlerin çözemediği çok modlu (non-convex) problemlerde güçlü bir avantaj sunar. Pratik uygulamalarda son derece geniş bir kapsama sahiptir: gezgin satıcı problemi (TSP), çizelgeleme optimizasyonu, VLSI devre yerleşimi, portföy optimizasyonu ve protein katlama simülasyonlarında yıllardır başvuru algoritması olma özelliğini korumaktadır. Hiperparametre araması ve Sinir Mimarisi Araması (Neural Architecture Search) gibi derin öğrenme görevlerinde de kullanılmaktadır. Gradient descent ile karşılaştırıldığında türevlenebilir bir hedef fonksiyonu gerektirmez; kara kutu optimizasyonu için idealdir. Genetik algoritmalardan farklı olarak tek çözüm üzerinde iterasyon yapar ve bellek gereksinimi düşüktür. 2023-2026 döneminde kuantum tavlama (Quantum Annealing) yaklaşımları, fiziksel kuantum süperpozisyonunu kullanarak tünel etkisiyle yerel tuzakları aşmaktadır; D-Wave gibi donanımlar belirli kombinatoryal problemlerde klasik SA'yı geride bırakmaktadır. Python'da scipy.optimize.dual_annealing standart bir uygulama sunarken nelderoptimize ve inspyred kütüphaneleri özel soğuma programları için esneklik sağlar. Soğuma programının seçimi algoritma performansını doğrudan belirler. Geometrik soğuma (T ← α·T, 0.80 < α < 0.99) en yaygın yaklaşımdır; çok hızlı soğuma lokal minimuma hapsolmaya, çok yavaş soğuma ise aşırı uzun çalışma sürelerine yol açar.