Zephyrnet Logosu

Transfer Öğrenme Nedir?

Tarih:

Transfer Öğrenme Nedir?
Image Pixabary'de qimono

 

Transfer Öğrenimi, bir görevde kullanılan bir modelden elde edilen bilginin uygulamasının başka bir görev için temel noktası olarak yeniden kullanılabileceği bir makine öğrenme yöntemidir.

Makine öğrenimi algoritmaları, tahminlerde bulunmak ve yeni çıktı değerleri üretmek için girdi olarak geçmiş verileri kullanır. Genellikle izole görevleri yürütmek için tasarlanmıştır. Kaynak görev, bilginin hedef göreve aktarıldığı bir görevdir. Hedef görev, bir kaynak görevden bilgi aktarımı nedeniyle gelişmiş öğrenmenin gerçekleştiği zamandır. 

Transfer öğrenimi sırasında, bir kaynak görevden yararlanılan bilgi ve hızlı ilerleme, öğrenmeyi iyileştirmek ve yeni bir hedef göreve gelişmek için kullanılır. Bilginin uygulanması, hedef göreve uygulanacak ve eşlenecek olan kaynak görevin niteliklerini ve özelliklerini kullanmaktır. 

Ancak transfer yöntemi yeni hedef görevin performansında düşüşe neden oluyorsa buna negatif transfer denir. Transfer öğrenme yöntemleriyle çalışırken karşılaşılan en büyük zorluklardan biri, daha az ilişkili görevler arasında negatif transferden kaçınırken, ilgili görevler arasında pozitif transfer sağlayabilmek ve sağlayabilmektir. 

Transfer Öğreniminin Neyi, Ne Zaman ve Nasıl Yapılacağı

  1. Ne aktarıyoruz? Öğrenilen bilginin hangi bölümlerinin aktarılacağını anlamak için, bilginin hangi bölümlerinin hem kaynağı hem de hedefi en iyi yansıttığını bulmamız gerekir. Genel olarak, hedef görevin performansını ve doğruluğunu iyileştirmek. 
  2. Ne zaman transfer ediyoruz? Ne zaman transfer edileceğini anlamak önemlidir, çünkü bilgiyi transfer etmek istemiyoruz, bu da işleri daha da kötüleştirebilir ve negatif transfere yol açabilir. Amacımız, hedef görevin performansını iyileştirmek, daha da kötüleştirmek değil. 
  3. Nasıl aktarırız? Artık neyi aktarmak istediğimize ve daha sonra bilgiyi verimli bir şekilde aktarmak için farklı tekniklerle çalışmaya ne zaman geçebileceğimize dair daha iyi bir fikrimiz var. Bu konuda daha sonra makalede daha fazla konuşacağız. 

Transfer öğreniminin arkasındaki metodolojiye dalmadan önce, transfer öğreniminin farklı biçimlerini bilmekte fayda var. Kaynak görev ve hedef görev arasındaki ilişkilere dayalı olarak üç farklı transfer öğrenme senaryosu üzerinden geçeceğiz. Aşağıda, farklı transfer öğrenimi türlerine genel bir bakış yer almaktadır:

Farklı Aktarım Öğrenme Türleri

 
Endüktif Transfer Öğrenimi: Bu tür transfer öğrenmede kaynak ve hedef görev aynıdır, ancak yine de birbirlerinden farklıdırlar. Model, hedef görevin performansını iyileştirmeye yardımcı olmak için kaynak görevden endüktif önyargıları kullanacaktır. Kaynak görev, etiketli veriler içerebilir veya içermeyebilir, bu da çoklu görev öğrenme ve kendi kendine öğrenmeyi kullanan modele yol açar. 

Denetimsiz Transfer Öğrenimi: Denetimsiz öğrenmenin ne olduğunu bildiğinizi varsayıyorum, ancak bilmiyorsanız, bir algoritmanın etiketlenmemiş veya sınıflandırılmamış veri kümelerindeki kalıpları tanımlayabilmesine maruz kaldığı zamandır. Bu durumda, kaynak ve hedef benzerdir, ancak görev farklıdır, burada her iki veri de hem kaynakta hem de hedefte etiketsizdir. Boyut azaltma ve kümeleme gibi teknikler denetimsiz öğrenmede iyi bilinmektedir. 

Transdüktif Transfer Öğrenimi: Bu son transfer öğrenme türünde, kaynak ve hedef görevler benzerlikler paylaşır, ancak alanlar farklıdır. Kaynak etki alanı çok sayıda etiketlenmiş veri içerirken, hedef alanda etiketlenmiş veri yokluğu vardır, bu da alan uyarlamasını kullanan modele daha fazla yol açar. 

Transfer Öğrenimi ve İnce Ayar Karşılaştırması

 
İnce ayar, aktarım öğreniminde isteğe bağlı bir adımdır ve öncelikle modelin performansını artırmak için dahil edilmiştir. Transfer öğrenimi ile İnce ayar arasındaki farkın tamamı isimdedir.

Transfer öğrenimi, bir görevden öğrenilen özelliklerin benimsenmesi ve yararlanılan bilginin yeni bir göreve "aktarılması" üzerine inşa edilmiştir. Aktarım öğrenimi, genellikle, tam ölçekli bir modeli sıfırdan eğitmek için veri kümesinin çok küçük olduğu görevlerde kullanılır. İnce ayar, performansı daha da iyileştirmek için istenen çıktıyı elde etmek için bir süreçte "ince" ayarlamalar yapmak üzerine kuruludur. İnce ayar sırasında eğitilmiş bir modelin parametreleri, istenen çıktıları elde etmek için modeli doğrulamaya çalışırken hassas ve özel olarak ayarlanır ve uyarlanır.

Transfer Öğrenimi Neden Kullanılmalı?

 
Transfer öğrenimini kullanma nedenleri:

Çok fazla veriye ihtiyaç duymamak – Verilere erişim sağlamak, erişilebilir olmaması nedeniyle her zaman bir engeldir. Yetersiz miktarda veri ile çalışmak düşük performansa neden olabilir. Makine öğrenimi modeli, önceden eğitilmiş olması nedeniyle küçük bir eğitim veri kümesiyle oluşturulabildiğinden, aktarım öğreniminin parladığı yer burasıdır. 

Eğitim süresinden tasarruf – Makine öğrenimi modellerinin eğitilmesi zordur ve çok zaman alabilir, bu da verimsizliğe yol açar. Derin bir sinir ağını karmaşık bir görev üzerinde sıfırdan eğitmek uzun bir süre gerektirir, bu nedenle önceden eğitilmiş bir model kullanmak yeni bir model oluşturmak için zaman kazandırır.

Öğrenim Artılarını Aktarın

 
Daha iyi taban: Transfer öğreniminde önceden eğitilmiş bir model kullanmak size daha iyi bir temel ve başlangıç ​​noktası sunarak bazı görevleri eğitim bile almadan gerçekleştirmenize olanak tanır. 

Daha yüksek öğrenme oranı: Model daha önce benzer bir görevde eğitilmiş olduğundan, modelin öğrenme oranı daha yüksektir. 

Daha yüksek doğruluk oranı: Daha iyi bir temel ve daha yüksek öğrenme oranı ile model, daha yüksek performansta çalışarak daha doğru çıktılar üretir. 

Transfer Öğrenimi Ne Zaman Yapılır? Değil İş?

 
Kaynak görevinizden eğitilen ağırlıklar hedef görevinizden farklı olduğunda transfer öğrenmesinden kaçınılmalıdır. Örneğin, bir önceki ağınız kedi ve köpekleri sınıflandırmak için eğitilmişse ve yeni ağınız ayakkabı ve çorapları algılamaya çalışıyorsa, kaynağınızdan hedef göreve aktarılan ağırlıklar veremeyeceğinden bir sorun olacaktır. sonuçların en iyisisin. Bu nedenle, ağı, beklediğinize benzer çıktılara karşılık gelen önceden eğitilmiş ağırlıklarla başlatmak, korelasyonsuz ağırlıklar kullanmaktan daha iyidir.

Katmanları önceden eğitilmiş bir modelden kaldırmak, modelin mimarisiyle ilgili sorunlara neden olur. İlk katmanları kaldırırsanız, düşük seviyeli özelliklerle çalışmak zorunda olduğu için modelinizin öğrenme oranı düşük olacaktır. Katmanları kaldırmak, eğitilebilecek parametre sayısını azaltır, bu da fazla uydurmaya neden olabilir. Doğru miktarda katman kullanabilmek, fazla takmayı azaltmak için hayati önem taşır, ancak bu aynı zamanda zamanında bir süreçtir. 

Öğrenme Eksilerini Aktarın

 
Negatif transfer öğrenme: Yukarıda bahsettiğim gibi, olumsuz transfer öğrenme, önceki bir öğrenme yönteminin yeni görevi engellemesidir. Bu, yalnızca kaynak ve hedef yeterince benzer değilse oluşur ve ilk eğitim turunun çok uzak olmasına neden olur. Algoritmaların her zaman benzer olduğunu düşündüğümüz şeylerle aynı fikirde olması gerekmez, bu da ne tür bir eğitimin yeterli olduğunun temellerini ve standartlarını anlamayı zorlaştırır. 

6 Adımda Öğrenmeyi Aktarın

 
Transfer öğrenmenin nasıl uygulandığını ve atılan adımları daha iyi anlayalım. Transfer öğreniminde atılan 6 genel adım vardır ve her birinin üzerinden geçeceğiz.

  1. Kaynak Görevini Seçin: İlk adım, seçtiğiniz Hedef görevle girdi ve çıktı verileri arasında bir ilişkiye sahip olan, bol miktarda veri içeren önceden eğitilmiş bir model seçmektir.
  2. Temel Model Oluşturun: Önceden eğitilmiş ağırlıklarla bir temel model oluşturun. Önceden eğitilmiş ağırlıklara Xception gibi mimariler aracılığıyla erişilebilir. Bu, kaynak modelinizi geliştiriyor, böylece başladığımız saf modelden daha iyi ve öğrenme oranında bir miktar artış sağlıyor. 
  3. Katmanları Dondur: Ağırlıkların yeniden başlatılmasını azaltmak için önceden eğitilmiş modelden katmanların dondurulması gerekir. Halihazırda öğrenilen bilgileri kullanacak ve sizi modeli sıfırdan eğitmekten kurtaracaktır.
base_model.trainable = Yanlış
  1. Yeni Eğitilebilir Katmanlar Ekleme: Dondurulmuş katmanın üzerine yeni eğitilebilir katmanlar eklemek, eski özellikleri yeni bir veri kümesinde tahminlere dönüştürür.
  2. Yeni Katmanları Eğitin: Önceden eğitilmiş model, zaten son çıktı katmanını içerir. Önceden eğitilmiş modeldeki mevcut çıktı ile modelinizden istediğiniz çıktının farklı olma olasılığı yüksektir. Bu nedenle, modeli yeni bir çıktı katmanı ile eğitmeniz gerekir. Bu nedenle, beklenen modelinize uygun olarak yeni yoğun katmanlar ve son yoğun katman eklemek, öğrenme oranını artıracak ve arzu ettiğiniz çıktıları üretecektir. 
  3. İnce ayar: Temel modellerin tamamını veya bir kısmını çözerek ve ardından modeli çok düşük bir öğrenme oranıyla yeniden eğiterek yapılan ince ayar yaparak modelinizin performansını artırabilirsiniz. Bu aşamada düşük bir öğrenme oranı kullanmak çok önemlidir, çünkü eğittiğiniz model ilk turda olduğundan çok daha büyük ve küçük bir veri setidir. Sonuç olarak, büyük ağırlık güncellemeleri uygularsanız fazla takma riskiniz vardır, bu nedenle kademeli olarak ince ayar yapmak istersiniz. Modelin davranışını değiştirdiğiniz gibi modeli yeniden derleyin ve daha sonra fazla uydurma geri bildirimleri izleyerek modeli yeniden eğitin. 

Umarım bu makale size Transfer Öğrenimi hakkında iyi bir giriş ve anlayış sağlamıştır. Bizi izlemeye devam edin, bir sonraki makalem Görüntü Tanıma ve Doğal Dil İşleme için Transfer Öğrenimi uygulayacağım.

 
Nişa Arya Veri Bilimcisi ve serbest teknik yazardır. Özellikle Veri Bilimi kariyer tavsiyesi veya öğreticiler ve Veri Bilimi hakkında teoriye dayalı bilgiler sağlamakla ilgilenmektedir. Ayrıca Yapay Zekanın insan yaşamının uzun ömürlü olmasına fayda sağladığı/yararlayabileceği farklı yolları keşfetmek istiyor. Başkalarına rehberlik ederken teknik bilgisini ve yazma becerilerini genişletmeye çalışan hevesli bir öğrenci.

Kaynak: https://www.kdnuggets.com/2022/01/transfer-learning.html

spot_img

En Son İstihbarat

spot_img

Bizimle sohbet

Merhaba! Size nasıl yardım edebilirim?