Atlas’ta ara

Keşfetmeye buradan başla

Öğren/Sürekli öğrenme

Yeni şey öğrenirken eskisini unutmak

Felaketli unutma: bir sinir ağı yeni bir görevi öğrenirken eskisini neden bozar? İki ağırlıklı en küçük modelde nedenini gör; tekrar oynatma ve ağırlık koruma gibi çözümlerin mantığını öğren.

ÖN BİLGİ

Bu yazıyı rahat izlemek için şunlara önce bakmış olman iyi olur:

01İnsan unutur, ama ağ silinir#

Bir çocuk bisiklete binmeyi öğrendikten sonra yüzmeyi öğrenir ve bisikleti unutmaz. Bir sinir ağı ise ilk görevde ulaştığı ağırlıkları, ikinci görevi öğrenirken doğrudan değiştirir; ikinci görev ilkinin kullandığı ağırlıklara dokunuyorsa, ilk görevdeki başarı düşebilir. Buna felaketli unutma denir. Sorun, bağlantıcı modellerde McCloskey ve Cohen’in 1989’daki çalışmasından beri bilinen “ardışık öğrenme” sorunudur.

Bu önemli, çünkü gerçek dünyada veri bir kerede gelmez: yeni ürünler, yeni diller, yeni bilgiler eklenir. İdeal olan, bir modelin eskiyi korurken yenisini de öğrenmesidir; buna sürekli öğrenme denir. Büyük modeller bugün çoğunlukla sürümler hâlinde yeniden eğitilir ya da ince ayarlanır; verinin akışıyla kesintisiz öğrenmek hâlâ açık bir araştırma alanıdır.

02En küçük örnek: iki ağırlık, iki görev#

Unutmanın nedenini görmek için ağı mümkün olan en küçük hâline indirelim: iki ağırlıklı doğrusal bir model (w₁, w₂). İki görev birbiriyle çelişmiyor: görev A, w₁ + w₂ toplamının 3 olmasını; görev B ise w₁’in 1 olmasını istiyor. Bu ikisini birlikte sağlayan tek bir çift var: (1, 2). Yani model ikisini birden öğrenebilir. Ama önce A, sonra B’yi öğrenirse ne olur?

01

Yeni görev, eski görevi siler

Hesaplanan · temsili girdiler

İlk 60 adımda model A’yı, sonraki 120 adımda B’yi öğrenir. B öğrenilirken A’nın hatası ne oluyor? Sonra B adımlarına A’dan örnek karıştır (tekrar oynatma).

00,200,400,600,80060120180hataeğitim adımı (60’tan sonra B)A görevinin hatasıB görevinin hatası
A’DAN HEMEN SONRA: A / B HATASI0,000 / 0,117
SONUNDA: A / B HATASI0,117 / 0,000

B öğrenilirken w₁ değişiyor; ama A’nın doğru çalışması w₁ + w₂ toplamına bağlıydı. A’nın hatası yeniden yükseliyor: model B’yi öğrenirken A’yı unuttu, oysa ikisini birden çözen bir ağırlık çifti vardı.

İki ağırlıklı doğrusal bir model, birbiriyle çelişmeyen iki görevi art arda öğreniyor: A görevi yalnızca w₁ + w₂ toplamını, B görevi yalnızca w₁’i belirler. İkisini birden çözen tek bir ağırlık çifti vardır. Gradyan inişi tarayıcıda gerçekten çalışır; derin ağlarda etki çok daha dramatik olabilir.

Modelin ilk 60 adımda A’yı öğrenmesi sonucu ağırlıklar (1,5; 1,5) olur: A’nın hatası sıfır. Sonra yalnızca B’yi öğrenirken yalnızca w₁ ayarlanır ve w₁ = 1’e iner; w₂ 1,5’te kalır, çünkü B onu hiç görmez. Sonuç: B’nin hatası sıfır, ama A’nın hatası yaklaşık 0,12’ye çıkıyor. Hiçbir şey “silinmedi”; yalnızca B’nin gradyanı, A’nın dayandığı toplamı bozdu.

“Tekrar oynatma payı”nı %25’e çıkardığında, yani B adımlarına A’dan örnek karıştırdığında, model ikisini birden öğreniyor: ağırlıklar (1, 2)’ye yaklaşıyor ve her iki hata da sıfıra yakın kalıyor. Bu demo bilerek basit ve çelişmeyen görevlerle kuruldu: derin ağlarda etki çok daha karmaşıktır ve bazen çok daha dramatiktir.

03Çözüm fikirleri#

YaklaşımFikirBedeli
Tekrar oynatmaEski görevden örnekleri saklayıp yeni eğitime karıştırmakEski veriyi saklamak gerekir (gizlilik, depolama)
Ağırlık korumaEski görev için önemli ağırlıkların değişmesini cezalandırmakÖnemin nasıl ölçüleceği ve ağın esnekliğinin azalması
Ayrı parçalarAna ağı dondurup her görev için küçük ek parça eğitmekParça sayısı artar; görevler arası aktarım zorlaşabilir
BirleştirmeAyrı ayrı eğitilmiş modelleri sonradan birleştirmekHer zaman çalışmaz (model çorbası notuna bak)

Ağırlık koruma için tanınmış yöntem, Kirkpatrick ve arkadaşlarının Elastic Weight Consolidation (EWC) yöntemidir: eski görev için önemli ağırlıkları öğrenmeyi yavaşlatır; önemi ağırlık bazında tahmin eder. Yazarlar yöntemi ardışık MNIST sınıflandırma görevlerinde ve Atari 2600 oyunlarını art arda öğrenmede gösterdi. Kirkpatrick ve diğerleri, PNAS, 2017 ↗

04Büyük dil modellerinde bu neye benzer?#

Bir dil modelini dar bir veriyle ince ayar ettiğinde, genel yeteneklerinde gerileme olabilir; bu, günlük dilde “modeli bozmak” gibi anılır. Bu yüzden ince ayarın dozu önemlidir. Biderman ve arkadaşlarının çalışması, LoRA ile ince ayarın hedef alanda tam ince ayardan daha az öğrendiğini, ama hedef alanın dışındaki görevlerde temel modelin performansını daha iyi koruduğunu ve unutmayı sık kullanılan düzenlileştiricilerden daha çok azalttığını bildirdi: “LoRA daha az öğrenir, daha az unutur”. LoRA Learns Less and Forgets Less ↗

Öğrenmenin tersi de gerekebilir: bir modele belirli bir şeyi unutturmak. Bir model nasıl unutturulur?

KENDİNİ SINA

Bu yazıyı bitirdiğinde:

  • Felaketli unutmanın neden oluştuğunu iki ağırlıklı bir örnekle anlatabilirsin.
  • Tekrar oynatma ve ağırlık koruma gibi çözümlerin mantığını açıklayabilirsin.
  • Bağlam içinde öğrenmenin ağırlık güncellemesinden farklı olduğunu söyleyebilirsin.

Cümlelerden birini kendi sözlerinle anlatamıyorsan, ilgili bölüme dön ve demoyu yeniden dene.

İlerleme yalnızca bu tarayıcıda saklanır.
BAĞLANTILI KAVRAMLAR

Bir fikri diğerine bağla.

Rotanı gör: sıradaki adım ne? Bütün dersler