İçeriğe geç
Anasayfa » Makine Öğrenmesinde Aktarımlı Öğrenme Yaklaşımı ve Aktarımlı Öğrenme Modelleri

Makine Öğrenmesinde Aktarımlı Öğrenme Yaklaşımı ve Aktarımlı Öğrenme Modelleri

Gelişen dünya ile günümüzde pek çok yeni teknolojik terimleri duyuyoruz. Özellikle son yıllarda Yapay Zekâ’nın popülerleşmesi ve kullanımının artması ile Makine öğrenmesi kavramı hayatımıza girdi. Yapay zekânın hayatımıza girmesi ile günümüzde pek çok alanda yaptığımız iş yükü azalmıştır. Üretim, Sağlık Hizmetleri, Finansal Hizmetler, Perakende, Medya ve Eğlence alanlarında yapay zekâ kullanılmaktadır. Bu yazıda aktarımlı öğrenme (Transfer Learning) hakkında konuşacağız.

1. Kısaca Makine Öğrenmesi Nedir?

Makine öğrenmesi, bilgisayarların açık talimatlar yerine anlamlı ve tutarlı veri kümelerini kullanarak algoritmalar ve istatistiksel modeller ile talimatların otomatik bir şekilde gerçekleştirilmesi için model üretilmesine Makine öğrenmesi diyoruz. Temelde üç ana Makine Öğrenmesi Algoritması vardır. Bunlar Gözetimli Öğrenme (Supervised Learning), Gözetimsiz Öğrenme (Unsupervised Learning) ve Pekiştirmeli Öğrenme (Reinforcement Learning).

2. Aktarımlı Öğrenme (Transfer Learning) Nedir?

Aktarımlı öğrenme (Transfer Learning), kısaca bir görevden ya da işten öğrenilen bilgilerin başka görevleri yaparken kullanmaktır. Karşılaştığımız durumların benzer olması o bilgiyi aktarmamıza kolaylık sağlar. Gerçek hayattan örnek vermek gerekirse bisiklet sürmeyi öğrenirken edindiğimiz bilgiyi, motosiklet kullanmayı öğrenmeye çalışırken kullanabiliriz. Bu iki farklı görevi yerine getirirken temelde amaç dengeyi sağlamak ve kontrolü sağlamaktır. Aktarımlı Öğrenmede (Transfer Learning), bir problemi çözerken elde edilen bilgiyi, başka bir problem çözümünde kullanılmasıdır. Aktarımlı Öğrenme ile önceki bilgiler kullanılarak daha az eğitim verisi ve daha az zaman harcayarak daha hızlı öğrenen ve yüksek başarı gösteren modeller elde edilir.

Geleneksel Makine Öğrenmesinde, her model eğitimi için ‘sıfırdan öğrenme’ gerçekleştirilir. Bazı görevlerden öğrenilen birtakım bilgileri farklı modellerin üretilmesinde kullanabiliyor olmak pek çok açıdan büyük bir avantaj sağlar. Özellikle model üretim maliyetini düşürerek çok büyük bir katkı sağlamaktadır. Aktarımlı Öğrenme ile daha önceden eğitilmiş modellerden elde edilen bilgiler, özellikler yeni modellerin üretilmesi için kullanılmaktadır. Bu yöntemin kullanılabilir olması için aktarılan bilgilerin genel bilgiler olması gerekmektedir, yani kaynak ve hedef görevler için uygun olması gerekmektedir.

Aktarımlı öğrenmeye gerçek hayattan , tıp ile ilgili bir örnek verelim. Kas tepkisini değerlendiren elektromiyografik (EMG) sinyaller, elektroensefalografik (EEG) beyin dalgalarıyla bazı benzerlikler taşır. Sonuç olarak hem EMG hem de EEG sinyalleri, jest tanıma gibi görevleri gerçekleştirmek için aktarımlı öğrenme kullanabilir, yani Kas tepkisini değerlendiren elektromiyografik (EMG) sinyallerini analiz eden bir modelin bilgi ve özelliklerini kullanarak elektroensefalografik (EEG) beyin dalgalarını analiz edebilen bir model geliştirilebilir.  

3. Aktarımlı Öğrenmede İzlenmesi Gereken Adımlar

           3.1 Önceden Eğitilmiş Modeli Edinmek

Göreve bağlı olarak eğitimimizin temeli olarak önceden eğitilmiş bir model belirlemektir. Aktarımlı Öğrenme için önceden eğitilmiş kaynak modelin bilgisi ile hedef görev arasında güçlü bir ilişki (korelasyon) olması gerekmektedir.

           3.2 Temel Model Oluşturmak

Görevimizle yakından ilişkili olması için ilk adımda seçtiğimiz ResNet ,Xception, VGG16, EfficientNet  gibi mimarilerden biridir. Modelin ek eğitim süresinden tasarruf sağlayan ağ ağırlıklarını indirebiliriz. Aksi takdirde, modelimizi sıfırdan eğitmek için ağ mimarisini kullanmak zorunda kalacağız. Son çıktı katmanında bizim kullanım durumumuzda ihtiyaç duyduğumuzdan daha fazla nöron bulunabilir. Bu tür durumlarda, son çıktı katmanını kaldırmamız ve buna göre değiştirmemiz gerekmektedir.

           3.3 Katmanları Dondurma

 Bir katmanın dondurulması, o katmanın ağırlıklarının güncellenmeyeceği anlamına gelir. Böylece, daha küçük veri kümeleri için bile daha yüksek doğruluk elde edilebilir.

            3.4 Eğitilebilir Yeni Katmanlar Ekleme

Temel modelden yeniden kullandığımız tek bilgi, özellik çıkarma katmanlarıdır. Modelin özel görevlerini tahmin etmek için bunların üzerine ek katmanlar eklememiz gerekiyor. Bunlar genellikle nihai çıktı katmanlarıdır.

            3.5 Yeni Katmanları Eğitmek

 Önceden eğitilmiş modelin son çıktısı büyük olasılıkla modelimiz için istediğimiz çıktıdan farklı olacaktır. Örneğin, kedi ve köpek sınıflandırmasını yapacak bir model geliştirmek istiyoruz ve öncesinde seçtiğimiz Aktarımlı Öğrenme modeli, ImageNet veri setinde önceden eğitilmiş modeller 1000 sınıf üretecektir. Ancak modelimizin iki sınıf için çalışmasına ihtiyacımız var. Bu durumda, modeli yerinde yeni bir çıktı katmanı ile eğitmek zorundayız.

            3.6 Model İnce ayar yapılması

 Performansı artırmanın bir yöntemi ince ayardır. Model çıktısını yeni göreve uyacak şekilde değiştirdiğiniz ve yalnızca çıktı modelini eğittiğiniz, öğrenmeyi aktarmaya yönelik bir yaklaşımdır.

4. Popüler Aktarımlı Öğrenme (Transfer Learning) Modelleri

Pek çok aktarımlı öğrenme modeli vardır. Bu modellerin başarı oranı ImageNet adı verilen bir veri setini sınıflandırma performansı üzerinden kendi aralarında karşılaştırılır. ImageNet veri setinde yaklaşık 14 milyon görüntü, 21000’den fazla grup veya sınıf ve sınırlayıcı kutu açıklamalarına sahip 1 milyondan fazla görüntüden oluşur. Bu zorluğun amacı, bir görüntüyü 1000 ayrı nesne kategorisinden bir sınıfa doğru bir şekilde sınıflandırabilen bir model ortaya çıkarmaktır.

Şimdi, transfer öğrenmede popüler ve yaygın olarak kullanılan modellere bakalım.

Inception

Inception mimarisi, Szegedy tarafından 2014 yılında makalelerinde tanıtıldı. Evrişimle daha derine inildiğinde, boyut küçültme ile tüm mimari yukarıda resimde gösterilmektedir;

Bu modelin mimarisi şunları içerir;

  • Boyutlar ve küçültmeler ve düzeltilmiş lineer aktivasyonlar için 128 filtreli 1×1 evrişim
  • 1024 birim ve düzeltilmiş lineer aktivasyon ile tamamen bağlantılı katman
  • %70 oranlı bırakma katmanı (Dropout Ratio)
  • Sınıflandırıcı olarak softmax kaybı olan doğrusal katman
  • Başlangıçta bu mimariye GoogleNet adı verildi, daha sonra basitçe Inception olarak adlandırıldı.

Xception

Bu model, Keras kütüphanesinin yaratıcısı ve koruyucusu Francois Chollet tarafından önerildi. Xception, standart başlangıç modelini derinlemesine ayrılabilir konvolüsyonlarla değiştiren başlangıç mimarisinin bir uzantısıdır. Aşağıdaki mimariden, Xception’ın artık bağlantıları olan derinlemesine ayrılabilir evrişim katmanlarının doğrusal bir yığını olduğu açıktır. Bu, mimariyi tanımlamayı ve değiştirmeyi çok kolaylaştırır;

Yukarıda gösterildiği gibi, veriler önce giriş akışından, ardından sekiz kez tekrarlanan orta akıştan ve son olarak çıkış akışından geçer. Tüm evrişimli katmanlar toplu normalleştirmeyi takip eder.

VGG Ailesi

Oxford Üniversitesi Görsel Geometri Grubundan (VGG) Zisserman ve Simonyan tarafından Çok derin evrişimli ağlar için büyük ölçekli görüntü tanıma adlı makalelerinde önerildi. Ağ, maksimum havuzlama katmanları tarafından işlenen her artan derinlik ve hacim boyutunun üstünde yalnızca 3×3 evrişimli katmanların bir yığınını kullanan basitliği ile tanınmaktadır. Her biri 4096 düğüme sahip iki tamamen bağlı katmanı daha sonra bir softmax katmanı takip eder.

ResNet

İlk olarak 2015 yılında Kaiming He tarafından tanıtılan, son derece derin ağların artık modüllerin kullanımı yoluyla standart SGD kullanılarak eğitilebileceğini gösteren ufuk açıcı bir çalışma haline geldi. ResNet, VGG ailesinden çok daha derin olsa da, gerçek model ağırlıkları boyutu, tamamen bağlı katman yerine küresel ortalama havuzlamanın kullanılması nedeniyle daha küçüktür.

Aşağıda en temel ResNet modelinin, yani ResNet-12’nin orijinal mimarisini görebilirsiniz.

5. Bazı Aktarımlı Öğrenme Modellerinin Performans Kıyaslaması

Aşağıdaki grafikte görüldüğü üzere bazı aktarımlı öğrenme modellerinin ImageNet veri seti üzerindeki performans karşılaştırması yapılmıştır.

Kaynakça

https://www.spiceworks.com/tech/artificial-intelligence/articles/articles-what-is-transfer-learning/

https://neptune.ai/blog/transfer-learning-guide-examples-for-images-and-text-in-keras

https://machinelearningmastery.com/transfer-learning-for-deep-learning/

https://analyticsindiamag.com/a-comparison-of-4-popular-transfer-learning-models/

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir