Skip to content

Latest commit

 

History

History
 
 

TransferOgrenme_FineTuning

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

📌Open In Colab Google Colab Not Defteri

📌Open In Jupyter Jupyter Not Defteri

Fine-Tuning ve Transfer Öğrenme Nedir?

Fine-Tuning and Transfer Learning 👽


Bir kuşun öğrendiklerini size aktarabildiğini düşünün ya da sizin öğrendiklerinizi bir balığa, kulağa çılgınca geliyor değil mi? Ya da şöyle diyelim ben bir bardağı tanımak için atalarımdan bu yana ve doğduğumdan beri öğrendiğim basit özellikler var (kenar, köşe, şekil, maddesel yapısı vb.) bunlardan yola çıkarak hiç görmediğim bardakları ya da hiç görmediğim bazı nesnelerin bardak olmadığına dair kararlar veriyorum. Yalnızca bu bilgiyi öğrenen bir makinenin bildiğiklerini başka bir makineye transfer edip tekrar öğrenme sürecini atlamasıdır desem! Neyse hadi başlayalım 😊

Bilgisayarlı görü problemi üzerinden yola çıkalım ancak birçok veri ve problem tipi için uygulanabilecek bir yöntemden bahsediyorum. Öyle ki bir veri kümesi var sizin tanımak istediğiniz nesne de içinde var ancak veri seti çok büyük (bu harika bişey 😃) model de çok başarılı (e bu da harika 🤗) ama sizin o modeli o veri kümesi için eğitmeniz günler belki haftalar alacak. Gerçi burda eğitilmişi var! 🧐


Bir yapay öğrenme modelinin öğrendiklerinden faydalanarak yeni bir problemi çözüyorsunuz. Öğrendiklerinin tamamını ya da bir kısmını transfer ederek bu işlemi gerçekleştiriyorsunuz. Tam da bu yüzden adı Transfer Öğrenme. Bazen sadece kendi modeliniz için basit özelliklerin öğrenilmesi için ayarlamalar yapıyorsanız bu kez adı Fine-Tuning oluyor. Bir başka versiyonu da örneğin verinizde Golden ve Husky cinsinde köpekler ve Kadın, Erkek bireylerden oluşan insan görselleri var. Siz burada model ile Köpek-İnsan sınıflandırması yapabileceğiniz gibi Kadın-Erkek ya da Golden-Husky sınıflaması da yapabilirsiniz ki bu versiyonun adı da Çoklu Öğrenme (Multi-Task Learning) olarak isimlendirilir. Son konuya bir başka Pazar Çalışması nda yer vereceğim.

Transfer Learning


🎯 1. Versiyon: Yalnızca bu parametreleri model için kullandığımızda test işlemini yaparak yeni bir sinir ağı tasarımı yapmayız. Tüm eğitilmiş modeli test için kullanabiliriz. Özellikle mobil ve gerçek zamanlı öğrenme gerektirmeyen uç noktada çalışacak sistemlerde bu yöntem uygulanmaktadır. Belli periyotlarla eğitim işlemi daha geniş verilerle tekrarlanıp sistem performansı artırılabilir.

🎯 2. Versiyon: Eğitilmiş modelin bir kısmını alıp devamında veri kümesinde bulunmayan kendi problemimize ait veriler için eğitiriz. Böyle yaptığımızda Paratmetre hesabı yani işlem yükünü azaltmış oluyoruz ve zamandan da kazanmış oluyoruz. Aynı zamanda kendi problemimiz için verilerimiz kısıtlı olsa dahi bu yöntemle büyük veri setlerinde öğrenilen temel öznitelikler açısından da daha yüksek bir başarıya ulaşılmış olur. Fakat bu yöntemi uygularkan de dikkat etmemiz gereken stratejiler var.

  • Kullanacağımız veri önceden eğitilen modelin veri kümesiyle ne kadar benzer ya da farklı
  • Kullanacağımız verinin büyüklüğü

Aşağıdaki şema ile nasıl bir tercihte bulunabileceğimizi basit bir şekilde belirleyebiliriz.

Transfer Learning

🕵 O halde basit bir örnekle hem uçta çalıştırabileceğimiz bir test işlemini bir veri setinden öğrenmiş bir modelin nasıl test için kullanabileceğimize bakalım ve sonra da yalnızca bir kısmını kendi veri setiniz ile eğitip diğer bir kısmında öğrenilen ağırlıkları kullanabileceğiniz versiyonuna bakalım.

🔥Bunun için IMAGENET veri seti için ResNet50 derin yapay sinir ağı ile eğitilmiş ve eğitim sonundaki ağırlık parametreleri kaydedilmiştir.


⚡️Algorithmia üzerinde kendi modelinizi API olarak herkesin erişimine açabiliyorsunuz. ImageNet veriseti üzerinde eğitilmiş ResNet derin öğrenme modeliyle resim sınıflandırma algoritmasını aşağıdaki linkten üye olarak ücretsiz şekilde deneyebilirsiniz. Bu çalışması için Yavuz Kömeçoğlu'na teşekkürler.


✏️ Daha fazla kaynak için aşağıdaki bağlantılardan faydalanabilirsiniz:

Yapay Zeka ve Derin Öğrenmeye Başlama Rehberi

Kapsamlı Derin Öğrenme Rehberi

Veri Artırma Örnek 1

Veri Artırma Örnek 2

Aktivasyon Fonksiyonları Karşılaştırması

Optimizasyon Yöntemlerinin Karşılaştırılması

Aşırı Öğrenme/Uydurma (Overfitting) ve Erken Durdurma (Early Stopping)

Derin Öğrenme ile Artistik Stil Transferi

Adım Adım Google Colab Ücretsiz TPU Kullanımı