01Topluluk yerine ortalama#
Birden çok modelin tahminini birleştirmek (topluluk, ensemble) doğruluğu artırır; ama her tahminde hepsini çalıştırmak gerekir. Wortsman ve arkadaşlarının model çorbası fikri farklıdır: aynı ön eğitimli modelden, farklı hiperparametrelerle ince ayar edilmiş birçok modelin ağırlıklarını ortalamak. Ortaya çıkan tek modelin çıkarım ve bellek maliyeti, tek bir modelle aynıdır. Yazarlar, CLIP, ALIGN ve ViT-G gibi büyük ön eğitimli modellerde bu çorbanın, hiperparametre taramasının en iyi tekil modelini ImageNet’te geçtiğini; ViT-G ile %90,94 ImageNet birincil doğruluğuna ulaştıklarını ve bunu o dönem için yeni bir en iyi sonuç olarak bildirdi. Dağılım dışı veriler ve yeni görevlerde sıfır-örnek başarının da arttığını belirttiler. Model soups ↗
Bu yöntemin çalışma koşulu önemlidir: ağırlıkları ortalamanın anlamlı olması için modellerin birbirine yakın bir bölgede olması gerekir; ince ayar edilen modeller aynı başlangıçtan çıktığı için genellikle buna yakın olurlar.
02Neden rastgele iki modeli ortalayamazsın?#
Bir sinir ağında gizli nöronların sırası anlamsızdır: iki gizli nöronun yerini (ağırlıklarıyla birlikte) değiştirirsen, ağ tam olarak aynı fonksiyonu hesaplar. Bu permütasyon simetrisidir. Bağımsız eğitilen iki model aynı işlevi öğrense bile, nöronları farklı sırayla öğrenmiş olabilir; ağırlıkları ortalamak, bu yüzden farklı şeylerin ortalamasını almak olur.
Deney: bir 2-2-1 ağı (tanh) ve onun gizli nöronları yer değiştirmiş ikizi. İkisi aynı fonksiyonu hesaplıyor; ağırlıkları farklı. Aralarında doğrusal karışım yap.
Aynı fonksiyon, farklı ağırlık sırası
A ağı ile B ağı aynı işi yapıyor (yalnızca gizli nöronların sırası farklı). Ağırlıkları doğrudan ortalayınca ne oluyor?
[0,40; 0,35]İki uçta (0 ve 1) hata sıfır: A ve B aynı fonksiyonu hesaplıyor. Ortada ise iki gizli nöron birbirine benzemeye başlıyor ve fonksiyon bozuluyor. Çünkü A’nın ‘birinci nöronu’ ile B’nin ‘birinci nöronu’ aynı işi yapmıyor. Aynı başlangıçtan ince ayarlanmış modeller bu sorunu yaşamaz; nöronları hizalama yöntemleri ise bağımsız modelleri birleştirmeye çalışır.
İki uçta (0 ve 1) hata sıfır: ikisi aynı fonksiyon. Karışım ortaya geldikçe hata artıyor: 0,10’da 0,27, 0,25’te 1,64, tam ortada (0,5) 4,42. Karışım, iki ağı da “ortalıyor” ama aynı nöronları aynı rolde hizalamadığı için ortaya çıkan ağ hiçbir şeyi hesaplamıyor. Demo bilerek kurulmuş bir oyuncaktır: gerçek bir model birleştirme deneyi değil, “neden” sorusunun en küçük cevabıdır.
03Çare: önce hizala#
Ainsworth ve arkadaşlarının Git Re-Basin çalışması şu fikri savunur: permütasyon simetrileri hesaba katıldığında, sinir ağlarının kayıp yüzeyi (neredeyse) tek bir havza içerir. Yazarlar, bir modelin nöronlarını başka bir modele eşleyecek şekilde yeniden sıralayan üç algoritma sundu ve bağımsız eğitilmiş iki ResNet’in CIFAR-10’da sıfır bariyerli doğrusal mod bağlantısına sahip olduğunu ilk kez gösterdiklerini bildirdi; yani hizalandıktan sonra aralarındaki doğrusal yolda hata artmıyor. Yazarlar ayrıca bu görüşün sınırlarını ve bir karşı örneği de tartışır. Git Re-Basin ↗
| Soru | Cevap |
|---|---|
| Aynı başlangıçtan ince ayar edilmiş modelleri ortalayabilir miyim? | Model çorbası bunu bildiriyor; seçilen karışımın yararlı olduğu doğrulama verisiyle sınanmalıdır |
| Bağımsız eğitilmiş iki modeli ortalayabilir miyim? | Doğrudan ortalama çalışmaz; hizalama gerekir ve hizalamanın başarısı mimariye ve genişliğe bağlıdır |
| Bu, her model için çalışır mı? | Makaleler belirli mimari ve veri kümelerinde (ör. ResNet, CIFAR-10; büyük görüntü modelleri) sonuç bildirir; dil modellerinde başka çalışmalar gerekir |
Araştırma notları burada bitiyor. Öğrenme sayfasına dön ya da Keşfet bölümünde bütün deneyleri bir arada dene.
Bu yazıyı bitirdiğinde:
- Ağırlık ortalamasının ne zaman işe yaradığını anlatabilirsin.
- Permütasyon simetrisinin neden rastgele iki modeli ortalamayı bozduğunu açıklayabilirsin.
Cümlelerden birini kendi sözlerinle anlatamıyorsan, ilgili bölüme dön ve demoyu yeniden dene.