Connect with us

Transfer Öğrenimi Nedir?

Yapay Zekâ 101

Transfer Öğrenimi Nedir?

mm

Transfer Öğrenimi Nedir?

Makine öğrenimi uygulamalarında bir modeli eğitmek uzun zaman alabilir. Bir model mimarisi oluşturmak, modeli eğitmek ve sonra modeli ayarlamak çok 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 öğrenimi arkasındaki temel fikir, yani önceden kullanılan bir modeli yeni bir görev için yeniden amaçlamak.

Transfer öğreniminin farklı şekillerde kullanılmasına girmeden önce, neden transfer öğreniminin böyle güçlü ve полез bir teknik olduğu anlamak için bir dakika durarak başlayalım.

Derin Öğrenme Problemini Çözme

Derin öğrenme problemi çözmeye çalışırken, örneğin bir resim sınıflandırıcı oluştururken, bir model mimarisi oluşturmanız ve sonra 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 da modelin ve verilerin karmaşıklığına bağlı olarak saatler veya günler sürebilir. Eğitim süresi, verilerin büyüklüğü ve model mimarisinin karmaşıklığı ile orantılı olarak artacaktır.

Eğer model görev için gerekli doğruluğu elde edemezse, modelin ayarlanması muhtemelen gerekli olacaktır ve sonra model tekrar eğitime tabi tutulacaktır. Bu, optimal bir mimari, eğitim süresi ve veri bölme bulunana 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 çok fazla değişken olduğunda, makine öğrenimi mühendislerinin her zaman modelleri eğitmek ve uygulamak için daha kolay ve daha verimli yollar aradıkları anlaşılabilir. Bu nedenle, transfer öğrenimi tekniği oluşturuldu.

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

Transfer Öğrenimi Tipleri

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

Sıfırdan bir model geliştirdiğinizde, eğitim verilerinizi yorumlayabilen ve onlardan desen çı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. Sonra model mimarisini kaydedebilir ve benzer bir görev için kullanılan bir model olarak kullanabilirsiniz.

İkinci durumda, yani önceden eğitilmiş bir model kullanıldığında, sadece önceden eğitilmiş bir model seçmeniz gerekir. Çok sayıda üniversite ve araştırma ekibi, modellerinin spécifikasyonlarını genel kullanım için kullanılabilir hale getirecektir. 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 bir kısmını kullanarak önceden eğitilmiş modeli ve modelin geri kalanını eğitmek, modelin ince ayarını yapmak olarak adlandırılır.

Ağın İnce Ayarını Yapmak

Ağın ince ayarını yapmak, yalnızca ağın bazı katmanlarını eğitmek anlamına gelir. Yeni eğitim verisi, orijinal modelin eğitildiği veri setine çok benzerse, birçok ağırlık tekrar kullanılabilir.

Ağdaki yeniden eğitime tabi tutulacak katmanların sayısı, yeni veri setinin büyüklüğü ile orantılı olarak artmalıdır. Eğer eğitim verisi küçükse, meisten katmanların olduğu gibi kalması ve sadece son birkaç katmanın eğitilmesi daha iyi bir uygulamadır. Bu, ağı aşırı uyarlama olmaktan korumak 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ğitilmelidir. Ağ, sabit bir özellik çıkarıcı olarak kullanılmak istenirse, ağın çoğu, özellikleri çıkarmak için kullanılır ve sadece ağın son katmanı yeniden eğitilir.

Ağın ince ayarını yaptığınız zaman, yalnızca ConvNet’in önceki katmanlarının daha genel özelliklere sahip olduğunu unutmayın. Bunlar, kenarlar ve renkler gibi özelliklerdir. Buna karşılık, ConvNet’in sonraki katmanları, orijinal veri setinde bulunan bireysel sınıflara daha özgü detayları içerir. Eğer orijinal veri setinden oldukça farklı bir veri setinde modeli eğitiyorsanız, muhtemelen modelin ilk katmanlarını özellikler çıkarmak için kullanmak ve sadece modelin geri kalanını yeniden eğitmek isteyeceksiniz.

Transfer Öğrenimi Örnekleri

Transfer öğreniminin en yaygın uygulamaları, muhtemelen görüntü verilerini girişler olarak kullananlardır. Bunlar genellikle tahmine/dayalı görevlerdir. Convolutional Neural Networks tarafından görüntü verilerinin yorumlanması, modellerin aspects’lerini yeniden kullanmaya elverişlidir, çünkü convolutional katmanlar genellikle çok benzer özellikler ayırt eder. Transfer öğrenimi problemi olan ortak 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 modelleri geliştiren şirketler, genellikle modellerini başkalarının yeniden kullanmasına izin veren lisanslar altında yayınlarlar. Bu süreçten ortaya çıkan bazı modeller, Microsoft ResNet modeli, Google Inception Modeli ve Oxford VGG Model grubudur.

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.