Transfer öğrenmeyle sınıflandırıcı eğitmek
Transfer öğrenmede sıra sabittir: önceden eğitilmiş gövdeyi dondurup yalnızca yeni sınıflandırma başlığını eğitin, taban doğruluk oturduktan sonra gövdenin üst bloklarını belirgin biçimde düşürülmüş bir öğrenme oranıyla kademeli çözün. Gövde seçimini alan yakınlığı, beklediği girdi çözünürlüğü ve lisans belirler; ön işleme gövdenin eğitildiği normalizasyonla birebir aynı olmalıdır. Etiketli veri azaldıkça gövde daha çok dondurulur.
ÖNKOŞULLAR
- Sınıf listesi üzerinde uzlaşılmış, birbirine karışan sınıfların örnekleriyle birlikte etiketlenmiş bir veri kümesi
- Sızıntısız eğitim, doğrulama ve test bölmesi: aynı kaynak görüntü, aynı oturum veya aynı kişi tek bölmede
- Önceden eğitilmiş bir gövdeyi ve lisansını indirip kullanabileceğiniz bir ortam
- Birkaç eğitim koşusunu tamamlayabilecek bir hızlandırıcı erişimi
GEREKEN ARAÇLAR
- Otomatik türev ve eğitim döngüsü sağlayan bir derin öğrenme çatısı
- Önceden eğitilmiş model ambarı ve ona ait ön işleme tanımı
- Veri artırma (augmentation) kütüphanesi
- Eğitim eğrisini ve hiperparametreleri koşuyla birlikte kaydeden bir deney izleyici
- Sınıf başına metrik ve karışıklık matrisi üreten değerlendirme kodu
- 01
Görevi ve hata maliyetini tanımla
Sınıf listesini, görevin tek etiketli mi çok etiketli mi olduğunu ve hangi hata yönünün daha pahalı olduğunu yazın; çıkış katmanı, kayıp ve eşik bu üçünden çıkar.
Bu adım atlandığında sonraki her tartışma zemin kaybeder: hangi metriğin iyileştiğini kimse net söyleyemez. Tek etiketli çok sınıflı bir görevde sınıflar birbirini dışlar; çok etiketli bir görevde bir örnek aynı anda birden çok etiket taşıyabilir. İkisi farklı çıkış katmanı ve farklı kayıp fonksiyonu gerektirir ve karıştırıldığında model hata vermeden yanlış şeyi öğrenir.
Görev tipi Çıkış katmanı Kayıp fonksiyonu İkili sınıflandırma Tek nöron, sigmoid İkili çapraz entropi Tek etiketli çok sınıflı Sınıf sayısı kadar nöron, softmax Kategorik çapraz entropi Çok etiketli Sınıf sayısı kadar nöron, sigmoid Etiket başına ikili çapraz entropi Sıralı sınıflar Görev kurgusuna göre değişir Sıra bilgisini koruyan bir kayıp Çok etiketli bir görevde softmax kullanmak en sık görülen kurulum hatası: model etiketleri birbiriyle yarıştırır. Hata maliyeti, eşiği belirler. Kaçırılan bir kusurun sahaya çıktıktan sonraki maliyeti, yanlış alarmın operatöre yüklediği maliyetten yüksekse eşik duyarlılık lehine kaydırılır. Bu karar model eğitiminin içinde değil, eğitimden sonra doğrulama bölmesinde verilir — ama şimdi yazılmazsa değerlendirme aşamasında keyfîleşir.
- 02
Gövdeyi alan yakınlığına ve girdi boyutuna göre seç
Gövdeyi eğitildiği veri alanının sizinkine yakınlığına, beklediği girdi çözünürlüğüne ve lisansına göre seçin; en büyük gövde en iyi başlangıç değildir.
Transfer öğrenmenin işe yaramasının nedeni, alt katmanların genel yapıları öğrenmiş olması: kenar, doku, temel biçim. Bu genel yapılar alanlar arasında taşınır, ama taşınma mesafesi arttıkça kazanç azalır. Gündelik fotoğraflarla eğitilmiş bir gövde ile röntgen görüntüsü arasındaki mesafe, aynı gövde ile ürün fotoğrafı arasındaki mesafeden belirgin biçimde büyüktür ve bu, çözülecek blok sayısını doğrudan etkiler.
- Alan yakınlığı: gövdenin eğitildiği veri sizinkine ne kadar benziyor?
- Girdi çözünürlüğü: ayırt edici detay, gövdenin beklediği boyuta indirildiğinde kayboluyor mu?
- Çıkarım bütçesi: model nerede koşacak — sunucuda mı, uç cihazda mı?
- Lisans: ağırlıkların lisansı ve üzerine eğitilen modelin durumu kurumsal kullanıma uygun mu?
- Bakım: gövdenin sürüm geçmişi ve indirilebilirliği ne kadar güvenilir?
- 03
Ön işlemeyi gövdenin beklentisiyle eşle
Yeniden boyutlandırma, kanal sırası ve normalizasyon değerlerini gövdenin kendi ön işleme tanımından alın; uyuşmazlık hata vermez, yalnızca doğruluğu düşürür.
Önceden eğitilmiş bir gövde, belirli bir girdi dağılımı görmeye alışkındır. Ölçekleme aralığı, kanal başına normalizasyon değerleri ve boyutlandırma yöntemi bu dağılımı belirler. Farklı bir ön işleme verdiğinizde model çalışır, kayıp düşer, eğitim tamamlanır — sadece olabileceğinden düşük bir doğrulukla. Sessiz olduğu için de aylarca fark edilmeyebilir.
- Ön işleme tanımını gövdeyle aynı kaynaktan alın; elle yeniden yazmayın.
- Boyutlandırma yöntemini eşleyin: kırpma ile sıkıştırma farklı geometri üretir.
- Kanal sırasını ve veri tipini doğrulayın; sessiz hataların önemli bölümü buradan çıkar.
- Aynı ön işlemeyi çıkarım kodunda da kullanın: eğitimde ve üretimde tek tanım olmalı.
Doğrulama adımı: hattan çıkan bir grup girdiyi geri çevirip gözle bakın. Görüntü ters mi, renkler kaymış mı, kırpma ayırt edici bölgeyi kesiyor mu? Bu birkaç dakikalık kontrol, çoğu ön işleme hatasını eğitim başlamadan yakalıyor. Aynı kontrolü artırma açıkken bir kez daha yapın.
- 04
Gövdeyi dondurup başlığı eğit
Gövdenin ağırlıklarını dondurun, çıkışa yeni bir sınıflandırma başlığı takın ve yalnızca başlığı eğitin; bu koşunun sonucu taban doğruluğunuz olur.
Sıranın nedeni gradyanların büyüklüğü. Yeni başlık rastgele değerlerle başlar ve ilk adımlarda büyük gradyan üretir. Gövde bu sırada açıksa o gradyan geriye akar ve önceden öğrenilmiş özellikleri bozar; elinizde hem eğitilmemiş bir başlık hem hasar görmüş bir gövde kalır. Önce başlığı oturtmak, gövdeyi çözdüğünüzde gelen gradyanların çok daha küçük olmasını sağlar.
python # Çatıdan bağımsız sözde kod; adların karşılığı kendi kütüphanenizde farklıdır. govde = onceden_egitilmis_govde(basliksiz=True) for katman in govde.katmanlar: katman.egitilebilir = False # 1. koşu: gövde tamamen dondurulur model = sirali( govde, kuresel_ortalama_havuzlama(), birakma(0.2), # örnek değer; doğrulamayla ayarlanır tam_bagli(sinif_sayisi, aktivasyon="softmax"), ) model.derle(iyilestirici=adam(), kayip="kategorik_capraz_entropi") # taban koşuda varsayılan oran yeterli model.egit(egitim, dogrulama=dogrulama) # taban doğruluk koşusuBu koşunun çıktısı bir ürün değil bir ölçüt: sonraki her değişiklik buna göre değerlendirilir. Gövde dondurulmuş olduğu için koşu hızlıdır ve birkaç farklı gövdeyi aynı koşullarda karşılaştırmanın en ucuz yolu budur. Gövde seçimi hâlâ tartışmalıysa kararı burada verin — çözme aşamasına geçtikten sonra karşılaştırma pahalılaşır.
- 05
Öğrenme oranını tarama koşusuyla bul
Öğrenme oranını tahmin etmeyin: kısa bir tarama koşusuyla kaybın düzenli düştüğü aralığı bulun, sonra ısınma ve kademeli azaltma içeren bir çizelge kurun.
Transfer öğrenmede en çok zaman kaybettiren hiperparametre öğrenme oranı, çünkü iki koşunun ihtiyacı farklı: rastgele başlatılmış başlık büyük adımlar ister, önceden eğitilmiş gövde küçük adımlar. Tek bir değerle ikisini birden idare etmeye çalışmak, ya başlığın yavaş oturmasına ya gövdenin bozulmasına çıkar.
- 01Kısa bir koşuda öğrenme oranını kademeli artırarak kaybın davranışını kaydedin.
- 02Kaybın düzenli düştüğü aralığı seçin; kaybın sıçradığı bölgeden belirgin biçimde uzak durun.
- 03Başlık koşusu aralığın üst tarafında, gövdenin çözüleceği koşu alt tarafında kalır; tek bir değer ikisini birden idare etmez.
- 04Isınma ekleyin: ilk adımlarda oran düşükten başlayıp hedefe çıksın.
- 05Kalan eğitimde oranı kademeli azaltın ve azaltma noktalarını kaydedin.
- 06Katman grubuna göre farklı oran vermek mümkünse üst bloklara daha büyük oran verin.
Tarama koşusu ucuzdur ve tekrarlanabilir: gövde veya veri kümesi değiştiğinde yeniden koşturulur. Sonuçları deney izleyicisine yazın — üç ay sonra "bu oran nereden geldi" sorusunun cevabı ancak orada bulunur.
- 06
Üst blokları kademeli çöz
Taban oturduktan sonra gövdenin yalnızca üst bloklarını çözün ve öğrenme oranını başlık eğitimine göre belirgin biçimde düşürün; alt katmanlar genel özellikleri taşır.
Katmanlar derinleştikçe öğrendikleri özellik göreve özelleşir. Bu yüzden çözme yönü yukarıdan aşağıdır: en üstteki bloklar sizin alanınıza uyarlanır, alttakiler genel kaldıkları için dokunulmadan daha faydalıdır. Kaç blok çözüleceğini alan yakınlığı ve veri miktarı belirler — alan uzaksa ve veri bolsa daha derine inilir.
Katman derinliği Öğrendiği şey Çözme sırası Alt bloklar Kenar, doku, temel biçim gibi genel yapılar En son; çoğu projede hiç Orta bloklar Parça ve desen birleşimleri Veri bolsa ve alan uzaksa Üst bloklar Göreve özgü, ayırt edici yapılar İlk çözülenler Sınıflandırma başlığı Sınıf sınırları Zaten baştan eğitiliyor python # 2. koşu: yalnızca üst bloklar çözülür ve öğrenme oranı düşürülür. for katman in govde.katmanlar[-cozulecek_blok_sayisi:]: katman.egitilebilir = True # Toplu normalleştirme katmanları çıkarım kipine alınır (kuralı çatıya göre değişir): for katman in govde.katmanlar: if katman.tur == "toplu_normallestirme": katman.egitilebilir = False # Öğrenme oranı, tarama koşusunda bulunan aralığın alt tarafından seçilir. model.derle(iyilestirici=adam(ogrenme_orani=kucuk_oran), kayip="kategorik_capraz_entropi") - 07
Artırma ve düzenlileştirmeyi veri boyutuna göre ayarla
Küçük kümede artırmayı ve düzenlileştirmeyi güçlendirin, büyük kümede gevşetin; artırma alanın gerçek değişkenliğini taklit etmeli, rastgele bozma olmamalı.
Artırmanın işlevi veriyi çoğaltmak değil, modele hangi değişimlerin etiketi değiştirmediğini öğretmek. Bu yüzden doğru artırma alandan çıkar: üretim bandındaki bir kamera sabitse döndürme artırması gerçek değişkenliği taklit etmez, yalnızca görevi zorlaştırır. Tersine, elde tutulan bir cihazla çekiliyorsa döndürme ve aydınlatma değişimi tam da modelin görmesi gereken şeydir.
- Artırmayı üretimde gerçekten olan değişimlerden seçin: aydınlatma, açı, arka plan, gürültü.
- Etiketi değiştiren dönüşümü kullanmayın; yön anlamlıysa aynalama etiketi bozar.
- Artırmayı yalnızca eğitim bölmesine uygulayın; doğrulama ve test gerçek dağılımı korur.
- Bırakma ve ağırlık cezası gibi düzenlileştiricileri veri azaldıkça güçlendirin.
- Sınıflar dengesizse artırmayı seyrek sınıfta yoğunlaştırın, ama dengelemeyi doğrulamaya taşımayın.
- 08
Aşırı öğrenmeyi eğriden ve sınıf dağılımından oku
Eğitim kaybı düşerken doğrulama kaybının dönmesi aşırı öğrenmedir; erken durdurmayı kayba değil karar metriğine bağlayın ve en iyi kontrol noktasını saklayın.
Eğitim eğrisi tek başına yeterli bir teşhis aracı değil ama ilk bakılacak yer. Kayıp eğrisiyle karar metriğinin eğrisi her zaman aynı anda dönmez: kayıp kötüleşirken doğruluk bir süre daha artabilir. Bu yüzden erken durdurma ölçütü, üretimde karar verirken kullanacağınız metrik olmalıdır.
Belirti Muhtemel neden İlk müdahale Eğitim kaybı düşüyor, doğrulama dönüyor Aşırı öğrenme Artırma ve düzenlileştirmeyi artır, erken durdur Her iki kayıp da yüksek kalıyor Yetersiz kapasite veya çok küçük öğrenme oranı Daha çok blok çöz, oranı yeniden tara Kayıp sıçrıyor, eğri gürültülü Öğrenme oranı fazla büyük Oranı düşür, ısınma ekle Genel doğruluk yüksek, seyrek sınıf sıfır Sınıf dengesizliği Sınıf ağırlığı ver, sınıf başına metriğe bak Doğrulama eğitimden iyi Düzenlileştirme yalnızca eğitimde açık veya bölme kolay Bölmeyi ve düzenlileştirme kipini denetle Eğriye bakmadan hiperparametre değiştirmek, tahminle deneme yapmaktır. Karışıklık matrisi, eğrinin söyleyemediğini söyler: hangi sınıf hangisiyle karışıyor. Karışan çiftler genellikle etiketleme belirsizliğini işaret eder ve çözümü model tarafında değil etiket kılavuzundadır. Bu tür bir bulguyu modelle kapatmaya çalışmak, her yeni koşuda tekrar eden bir maliyettir.
- 09
Test bölmesinde bir kez ölç ve künyeyi yaz
Kilitli test bölmesinde tek bir koşu yapın, sınıf başına metrikleri ve karışıklık matrisini raporlayın, gövde sürümünü ve ön işlemeyi künyeye yazın.
Test bölmesi hiperparametre seçimi için kullanılmaz; kullanılırsa bir doğrulama bölmesine dönüşür ve genelleme tahmini olmaktan çıkar. Tüm seçimler doğrulama bölmesinde yapılır, test bölmesi yalnızca sürüm kararında açılır ve sonuç sürüm notuna yazılır.
- Gövdenin kimliği ve ağırlık sürümü
- Ön işleme tanımı: boyutlandırma, normalizasyon, kanal düzeni
- Dondurma ve çözme planı: hangi koşuda kaç blok açıldı
- Öğrenme oranı çizelgesi ve erken durdurma ölçütü
- Bölme kuralı ve bölme başına sınıf dağılımı
- Sınıf başına kesinlik, duyarlılık ve karışıklık matrisi
SIK DÜŞÜLEN TUZAKLAR
Ön işlemeyi gövdeden bağımsız yazmak
Gövde belirli bir ölçekleme ve normalizasyon tanımıyla eğitildi. Farklı bir ön işleme hata vermeden çalışır ve yalnızca doğruluğu düşürür; sessiz olduğu için de çoğu ekip bunu ancak gövdeyi değiştirdiğinde fark eder.
Gövdenin tamamını en baştan çözmek
Rastgele başlatılmış başlık ilk adımlarda büyük gradyan üretir. Gövde açıkken bu gradyan önceden öğrenilmiş özellikleri bozar; sonuç, sıfırdan eğitmekten daha kötü bir başlangıç ve transfer öğrenmenin sağladığı avantajın kaybıdır.
Toplu normalleştirme katmanlarının kipini varsaymak
Ağırlıkları dondurmak katmanı her çatıda çıkarım kipine almaz; eğitim kipinde kalan bir katman çalışan ortalama ve varyansını güncellemeye devam eder ve gövdenin uyguladığı normalizasyon eğitim boyunca kayar. Eğitim ile çıkarım arasındaki bu fark, doğrulama sonucunu hiçbir hiperparametreyle açıklanamayacak biçimde oynatır.
Dengesiz sınıfta genel doğruluğa bakmak
Yalnızca baskın sınıfı tahmin eden bir model yüksek genel doğruluk verir ve seyrek sınıfı hiç öğrenmemiş olabilir. Karar, sınıf başına kesinlik ve duyarlılıkla verilir; genel doğruluk bu durumda bilgi değil gürültüdür.
Doğrulama bölmesine bakarak onlarca deneme yapmak
Her hiperparametre denemesi doğrulama bölmesine biraz daha uyum sağlar. Belli bir sayıdan sonra doğrulama skoru artık genelleme tahmini değil seçim gürültüsüdür; bu yüzden ayrı ve kilitli bir test bölmesi gerekir.
KONTROL LİSTESİ
- Görev tipi, çıkış katmanı ve kayıp fonksiyonu birbiriyle uyumlu
- Gövdenin ağırlık lisansı planlanan kullanım için incelendi ve kararı kaydedildi
- Ön işleme, gövdenin kendi ön işleme tanımıyla birebir aynı ve çıkarım kodunda da aynısı kullanılıyor
- Dondurulmuş gövdeyle bir taban doğruluk koşusu alındı ve kaydedildi
- Çözme kademeli yapıldı; her kademede öğrenme oranı düşürüldü
- Toplu normalleştirme katmanlarının kipi açıkça belirlendi
- Artırılmış örnekler gözle incelendi; etiketi bozan dönüşüm yok
- En iyi kontrol noktası doğrulama karar metriğine göre saklandı; test bölmesi tek kez açıldı
Maddelerin tamamı işaretlenmeden kurulum üretime alınmamalı.
Sık sorulan sorular
Transfer öğrenme için sınıf başına kaç örnek gerekir?
Sabit bir eşik yok; belirleyici olan sınıfların birbirinden ne kadar ayrıldığı. Birbirinden açıkça farklı sınıflarda dondurulmuş gövde artı basit bir başlık, sınıf başına az sayıda örnekle çalışan bir taban verebilir; birbirine yakın sınıflarda aynı sonuç için çok daha fazlası gerekir. Pratik yol şu: mevcut veriyle bir taban koşusu alın, sonra etiketli veriyi yarıya indirip aynı koşuyu tekrarlayın. Skor belirgin düşmüyorsa daha fazla etiket toplamak öncelikli değildir.
Gövdeyi dondurmak mı ince ayar yapmak mı daha iyi?
İkisi aynı eksenin iki ucu; karar üç şeye bakar. Etiketli veri azsa ve alanınız gövdenin eğitildiği alana yakınsa dondurmak daha iyi sonuç verir ve çok daha ucuzdur. Veri bolsa ve alan uzaksa çözmek gerekir. Kararı tahminle değil ölçümle verin: önce dondurulmuş taban koşusunu alın, sonra üst blokları çözüp aynı doğrulama bölmesinde karşılaştırın. Fark küçükse dondurulmuş sürümü seçin — daha hızlı eğitilir, daha az bozulur.
Gövde çözüldükten sonra öğrenme oranını neden düşürmek gerekiyor?
Çünkü gövdenin ağırlıkları rastgele değil, zaten kullanışlı bir noktada. Büyük adımlar bu noktadan uzaklaştırır ve önceden öğrenilmiş özellikleri bozar; transfer öğrenmenin sağladığı başlangıç avantajı böyle kaybedilir. Küçük oran, gövdeyi baştan öğrenmeye değil sizin alanınıza uyarlamaya zorlar. Oranı tahmin etmek yerine kısa bir tarama koşusuyla bulun.
Doğrulama doğruluğu eğitim doğruluğundan yüksek çıkarsa ne anlama gelir?
Genellikle üç nedenden biri. Birincisi, bırakma gibi düzenlileştiriciler yalnızca eğitim sırasında açıktır; eğitim metriği bu yüzden baskılanır ve fark normaldir. İkincisi, doğrulama bölmesi eğitimden kolay örnekler içeriyor olabilir — bölme kuralını gözden geçirin. Üçüncüsü ve tehlikelisi sızıntı: aynı kaynaktan gelen örnekler iki bölmeye dağılmışsa doğrulama skoru şişer. İlk iki açıklama elenmeden üçüncüsü elenmiş sayılmaz.
Kaynaklar
- 01Derin öğrenme çatılarının transfer öğrenme ve ince ayar dokümantasyonları — Açık kaynak çatı projeleri · Dokümantasyon
- 02Önceden eğitilmiş model ambarlarının model kartları ve lisans notları — Model sağlayıcıları ve model ambarları · Dokümantasyon
- 03Sinaptik Research — uygulama notları — Sinaptik Lab · Teknik rapor
BUILD
Bu rehberi kurumunuzda uygulayalım mı?
Aynı mimariyi kendi verinizle kurmak için discovery oturumundan üretime kadar birlikte ilerliyoruz.
