0Pricing
Learn AI with Python · Ders

Aktarım Öğrenmesi Kavramları ve Stratejileri

Özellik çıkarımı ve ince ayar karşılaştırması, dondurulmuş katmanlar, aktarım öğrenmesinin ne zaman yararlı olduğu.

Aktarım Öğrenmesi Kavramları ve Stratejileri, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.

Aktarım Öğrenimi Nedir

Aktarım öğrenimi, büyük bir veri kümesi üzerinde eğitilmiş bir modeli yeni ve ilişkili bir görev için başlangıç noktası olarak yeniden kullanır. Görsel özellikleri sıfırdan öğrenmek yerine, bir ağın daha önce öğrendiği özelliklerden yararlanırsınız.

Bu, yüksek doğruluğa ulaşmak için gereken veri ve hesaplama miktarını büyük ölçüde azaltır.

ImageNet Temeli

Önceden eğitilmiş görme modellerinin çoğu, 1000 sınıf içeren yaklaşık 1,4 milyon görüntü üzerinde ImageNet ile eğitilir.

Bu eğitim sırasında ağ bir özellik hiyerarşisi öğrenir: ilk katmanlarda kenarlar ve renkler, orta katmanlarda dokular, üst katmanlara yakınsa nesne parçaları. Bu düşük düzeyli özellikler neredeyse her görüntü görevi için iyi aktarılır.

İlk Özellikler Neden Aktarılır

İlk evrişim katmanları, kedilerde, röntgenlerde veya uydu fotoğraflarında bulunmalarından bağımsız olarak her doğal görüntüde görülen genel örüntüleri (kenarlar, benekler, gradyanlar) algılar.

Daha derin katmanlar daha göreve özgü hale gelir; bu katmanlar söz konusu kenarları ImageNet nesne parçalarına dönüştürür. Bu nedenle genellikle ilk katmanları korur, sonraki katmanları değiştirir veya yeniden eğitiriz.

Strateji 1: Özellik Çıkarımı

Özellik çıkarımı, önceden eğitilmiş temel modelin her katmanını dondurarak ağırlıklarının hiç değişmemesini sağlar. Temel model sabit bir özellik çıkarıcı gibi davranır; yalnızca üstüne eklediğiniz küçük yeni sınıflandırma başlığını eğitirsiniz.

Veri kümeniz küçükse ve ImageNet'e benziyorsa bu yöntemi kullanın. Yalnızca az sayıda parametre eğitilebilir olduğu için hızlıdır ve aşırı uyuma karşı dayanıklıdır.

base.trainable = False

model = Sequential([
    base,                      # frozen ImageNet features
    GlobalAveragePooling2D(),
    Dense(num_classes, activation="softmax")  # only this trains
])

Strateji 2: İnce Ayar

İnce ayar, temel modelin üst katmanlarının kilidini açar ve bunları başlıkla birlikte yeniden eğitir; böylece ağ, üst düzey özelliklerini verilerinize göre uyarlayabilir.

Daha fazla veriniz varsa veya alanınız ImageNet'ten farklıysa (örneğin tıbbi taramalar) bu yöntemi kullanın. Önceden eğitilmiş ağırlıkları bozmamak için ince ayarı her zaman çok düşük bir öğrenme oranıyla yapın.

Özellik Çıkarımı ve İnce Ayar Karşılaştırması

  • Özellik çıkarımı: temel model dondurulur, yalnızca başlık eğitilir, çok hızlıdır ve küçük/benzer veriler için en uygunudur.
  • İnce ayar: temel modelin üst katmanlarının kilidi açılır ve başlıkla birlikte eğitilir; daha yavaştır, daha büyük/farklı veriler için en uygunudur.

Yaygın bir yaklaşım, önce özellik çıkarımı yapmak, ardından başlık kararlı hale geldiğinde ikinci aşamada ince ayar uygulamaktır.

Veri Miktarı Gereksinimleri

Sahip olduğunuz veri miktarı stratejinizi belirler:

  • Birkaç yüz görüntü: yalnızca özellik çıkarımı (her şeyi dondurun).
  • Birkaç bin görüntü: önce özellik çıkarımı, ardından ilk birkaç katmana ince ayar.
  • On binlerce ve üzeri görüntü: temel modelin daha büyük bölümlerine, hatta gerekirse tüm ağa ince ayar uygulayın.

Daha az veri, daha fazla katmanı dondurmanız gerektiği anlamına gelir; çünkü daha az eğitilebilir parametre aşırı uyum riskini azaltır.

Sınıflandırma Başlığını Değiştirme

ImageNet modelleri 1000 sınıf çıktısı üretir. Görevinizde muhtemelen farklı sayıda sınıf vardır; bu nedenle özgün üst kısmı (include_top=False) kaldırıp sınıflarınızın sayısına uygun kendi başlığınızı eklersiniz.

from tensorflow.keras import layers, Model

x = base.output
x = layers.GlobalAveragePooling2D()(x)
x = layers.Dropout(0.2)(x)
outputs = layers.Dense(5, activation="softmax")(x)  # 5 custom classes
model = Model(base.input, outputs)

Ön İşleme Eşleşmeli

Her önceden eğitilmiş model ailesi, girdilerin ImageNet eğitimi sırasında kullanılan yöntemle ölçeklendirilmesini bekler. Uygun preprocess_input işlevini kullanmak zorunludur; aksi halde doğruluk büyük ölçüde düşer.

from tensorflow.keras.applications.resnet50 import preprocess_input

# Scale pixels exactly as ResNet50 expects
x = preprocess_input(raw_image_batch)

Öğrenme Oranı Disiplini

Özellik çıkarımı sırasında normal bir öğrenme oranı (örneğin 1e-3) uygundur; çünkü yalnızca yeni başlık eğitilir.

İnce ayar sırasında 1e-5 gibi çok küçük bir değere düşmelisiniz. Büyük güncellemeler, özenle öğrenilmiş ImageNet ağırlıklarını silebilir; bu etkiye felaketle unutma denir.

Tipik İş Akışı

  1. include_top=False ile önceden eğitilmiş bir temel model yükleyin.
  2. Temel modeli dondurun ve yeni bir başlık eğitin (özellik çıkarımı).
  3. Üst katmanların kilidini açın ve çok küçük bir öğrenme oranıyla yeniden eğitin (ince ayar).
  4. Değerlendirin ve dağıtım için dönüştürün.

Bu aşamalı yaklaşım, sınırlı veri kümeleriyle bile güçlü doğruluk sağlar.

Kısa Kontrol

Aktarım öğrenimi stratejilerini ne kadar anladığınızı test edin.

Özet

Aktarım öğreniminin, ImageNet üzerinde önceden eğitilmiş özellikleri (1,4 milyon görüntü, 1000 sınıf) yeniden kullandığını öğrendiniz. Özellik çıkarımı, küçük/benzer veri kümeleri için temel modeli dondurur; ince ayar ise daha büyük/farklı veriler için üst katmanların kilidini çok küçük bir öğrenme oranıyla açar.

Ön işlemeyi temel modele uygun hale getirin, başlığı sınıflarınıza göre değiştirin ve aşamalı bir iş akışı kullanın. Sırada bunu VGG16 ve ResNet50 ile koda döküyoruz.

Sıkça Sorulan Sorular

“Aktarım Öğrenmesi Kavramları ve Stratejileri” dersi ücretsiz mi?

Evet — “Aktarım Öğrenmesi Kavramları ve Stratejileri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.

“Aktarım Öğrenmesi Kavramları ve Stratejileri” dersinde ne öğreneceğim?

Özellik çıkarımı ve ince ayar karşılaştırması, dondurulmuş katmanlar, aktarım öğrenmesinin ne zaman yararlı olduğu. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Aktarım Öğrenmesi Kavramları ve Stratejileri” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Aktarım Öğrenmesi Kavramları ve Stratejileri
  2. VGG16 ve ResNet50'yi Temel Modeller Olarak Kullanma
  3. İnce Ayar: Dondurmayı Kaldırma ve Yeniden Eğitme
  4. Uçta Dağıtım için MobileNet ve EfficientNet
← Learn AI with Python Sayfasına Dön