Yapay Zekâ 101

Transfer Öğrenimi Nedir?

mm

Transfer Öğrenimi Nedir?

Makine öğrenimi uygularken bir modeli eğitmek uzun zaman alabilir. Model mimarisi oluşturmak, modeli eğitmek ve ardından modeli ayarlamak çok fazla zaman ve çaba gerektirir. Bir makine öğrenimi modelini eğitmek için çok daha verimli bir yol, önceden tanımlanmış bir mimari kullanmaktır, potansiyel olarak önceden hesaplanmış ağırlıklarla birlikte. Bu, transfer öğreniminin arkasındaki temel fikirdir, yani önceden kullanılan bir modeli yeni bir görev için yeniden amaçlamak.

Transfer öğreniminin farklı şekillerde kullanılabileceği yollara dalmeden önce, transfer öğreniminin neden bu kadar güçlü ve kullanışlı bir teknik olduğu anlamak için bir dakika bekleyelim.

Derin Öğrenme Problemini Çözme

Derin öğrenme problemi çözmeye çalışırken, Örneğin bir resim sınıflandırıcı oluştururken, model mimarisini oluşturmanız ve ardından modeli verilerinize eğitin. Model sınıflandırıcısını eğitmek, ağın ağırlıklarını ayarlamak anlamına gelir, bu süreç modelin ve veri setinin karmaşıklığına bağlı olarak saatler veya günler sürebilir. Eğitim süresi, veri setinin boyutuna ve model mimarisinin karmaşıklığına göre ölçeklenecektir.

Eğer model görev için gerekli doğruluğu elde edemezse, modelin ayarlanması muhtemelen gerekli olacaktır ve ardından model tekrar eğitilecektir. Bu, optimal bir mimari, eğitim süresi ve veri seti bölümünü bulana kadar daha fazla saatlik eğitim anlamına gelir. Bir sınıflandırıcının faydalı olabilmesi için birbirleriyle uyumlu olması gereken birçok değişken olduğunu düşününce, makine öğrenimi mühendislerinin her zaman modelleri eğitmek ve uygulamak için daha kolay, daha verimli yollar aradıkları anlaşılabilir. Bu nedenle, transfer öğrenimi tekniği oluşturuldu.

Model tasarlandıktan ve test edildikten sonra, eğer model faydalıysa, daha sonra benzer problemler için kaydedilebilir ve yeniden kullanılabilir.

Transfer Öğrenimi Tipleri

Genel olarak, iki farklı transfer öğrenimi türü vardır: sıfırdan model geliştirme ve önceden eğitilmiş model kullanma.

Sıfırdan model geliştirdiğinizde, eğitim verilerinizi yorumlayabilen ve bunlardan desenler çıkaran bir model mimarisi oluşturmanız gerekir. Model ilk kez eğitildikten sonra, modelin optimal performansını elde etmek için muhtemelen modelde değişiklikler yapmanız gerekecektir. Ardından model mimarisini kaydedebilir ve benzer bir görev için kullanılacak bir model için başlangıç noktası olarak kullanabilirsiniz.

İkinci durumda, yani önceden eğitilmiş bir model kullanmada, sadece kullanmak istediğiniz önceden eğitilmiş modeli seçmeniz gerekir. Birçok üniversite ve araştırma ekibi, modellerinin spécifikasyonlarını genel kullanım için sağlar. Model mimarisi ve ağırlıkları indirilebilir.

Transfer öğrenimi yapılırken, tüm model mimarisi ve ağırlıkları görev için kullanılabilir veya modelin yalnızca belirli kısımları/katmanları kullanılabilir. Sadece önceden eğitilmiş modelin bir kısmını kullanmak ve modelin geri kalanını eğitmek, modelin ayarlanması olarak adlandırılır.

Ağın Ayarlanması

Ağın ayarlanması, ağın yalnızca bazı katmanlarının eğitilmesi sürecini tanımlar. Eğer yeni eğitim veri seti orijinal modelin eğitildiği veri setine çok benziyorsa, aynı ağırlıkların çoğu kullanılabilir.

Ağdaki kaç katmanın dondurularak yeniden eğitileceği, yeni veri setinin boyutuna göre ölçeklenmelidir. Eğer eğitim veri seti küçükse, majority of the layers’in dondurularak yalnızca son birkaç katmanın eğitilmesi daha iyi bir uygulamadır. Bu, ağından overfitting’i önlemek içindir. Alternatif olarak, önceden eğitilmiş ağın son katmanları kaldırılabilir ve yeni katmanlar eklenerek eğitilebilir. Buna karşılık, eğer veri seti büyükse, orijinal veri setinden daha büyükse, tüm ağı yeniden eğitmek gerekir. Ağ, majority of the network’un özelliklerini çıkarmak için sabit bir özellik çıkarma aracı olarak kullanılabilirken, yalnızca ağın son katmanı dondurularak eğitilebilir.

Ağın ayarlanması sırasında, earlier katmanların daha genel özelliklere sahip olduğunu hatırlamak önemlidir. Bu özellikler, kenarlar ve renkler gibi özelliklerdir. Buna karşılık, daha sonraki katmanlar, orijinal modelin eğitildiği veri setindeki bireysel sınıflara özgü daha spesifik detayları taşır. Eğer modeli orijinal veri setinden çok farklı bir veri setine eğitiyorsanız, modelin ilk katmanlarını özellikler çıkarmak için kullanmak ve yalnızca modelin geri kalanını eğitmek isteyebilirsiniz.

Transfer Öğrenimi Örnekleri

Transfer öğreniminin en yaygın uygulamaları muhtemelen görüntü verilerini girişler olarak kullananlardır. Bu genellikle tahmin/sınıflandırma görevleridir. Evrişimsel Sinir Ağları’nın görüntü verilerini yorumlama şekli, modellerin aspects’ini yeniden kullanmaya elverişlidir, çünkü evrişimsel katmanlar genellikle çok benzer özellikleri ayırt eder. Transfer öğrenimi problemi olan bir örnek, 1000 farklı nesne sınıfından oluşan büyük bir veri seti olan ImageNet 1000 görevidir. Bu veri setinde yüksek performans elde eden şirketler, genellikle modellerini başkalarının yeniden kullanmasına izin veren lisanslar altında yayınlarlar. Bu süreçten oluşan bazı modeller arasında Microsoft ResNet modeli, Google Inception Modeli ve Oxford VGG Model grubu bulunur.

Blog yazarı ve programcı, Machine Learning ve Deep Learning konularında uzmanlık sahibi. Daniel, başkalarının AI'nin gücünü sosyal fayda için kullanmasına yardımcı olmak umudu taşıyor.