Ana içeriğe atla

Transfer Learning: Büyük Veriden İçgörüleri Kullanın

Bu eğitimde transfer learning'in ne olduğu, bazı uygulamaları ve bir veri bilimci olarak neden kritik bir beceri olduğu anlatılıyor.
Güncel 3 Eki 2026  · 13 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Bu blog yazısı, ‘transfer learning’ kavramını ve makine öğrenimi uygulamalarında nasıl kullanıldığını tanıtacak. Transfer learning bir makine öğrenimi modeli ya da tekniği değildir; daha ziyade makine öğrenimi içinde bir ‘tasarım metodolojisidir’. Başka bir ‘tasarım metodolojisi’ örneği de aktif öğrenmedir.

banner

Bir sonraki blog yazısı, mevcut (ve yeni) verileri en iyi şekilde kullanmak için aktif öğrenmeyi transfer learning ile birlikte nasıl kullanabileceğinizi açıklayacak. Geniş anlamda, performansı veya genelleme yeteneklerini artırmak için harici bilgiden yararlanan makine öğrenimi uygulamaları transfer learning kullanır.

Transfer Learning: Bir Tanım

Transfer learning’in genel fikri, bol miktarda etiketli verinin bulunduğu görevlerden öğrenilen bilgiyi, yalnızca az miktarda etiketli verinin olduğu ortamlarda kullanmaktır. Etiketli veri oluşturmak maliyetlidir; bu yüzden mevcut veri kümelerinden en iyi şekilde yararlanmak kilittir.

Geleneksel bir makine öğrenimi modelinde birincil amaç, eğitim verilerinden öğrenilen örüntülere dayanarak görülmemiş veriye genelleme yapmaktır. Transfer learning ile bu genelleme sürecini, farklı bir görev için öğrenilmiş örüntülerden başlayarak hızlandırmaya çalışırsınız. Özünde, öğrenme sürecine (genellikle rastgele başlatılan) boş bir sayfadan başlamak yerine, başka bir görevi çözmek için öğrenilmiş örüntülerden başlarsınız.

Bilgi ve örüntülerin aktarımı çok çeşitli alanlarda mümkündür. Bugünkü yazı, bu farklı alanlardan birkaç örneğe bakarak transfer learning’i somutlaştıracak. Amaç, veri bilimcileri makine öğrenimi projelerinde transfer learning ile denemeler yapmaya teşvik etmek ve artılarını ile eksilerini fark etmelerini sağlamaktır.

Transfer learning’i iyi anlamanın bir veri bilimci olarak kritik bir beceri olduğuna inanmamın üç nedeni var:

  • Transfer learning her tür öğrenmede esastır. İnsanlara başarılı olmaları için her tekil görev veya problem öğretilmez. Herkes daha önce karşılaşmadığı durumlarla karşılaşır ve yine de sorunları doğaçlama şekilde çözmeyi başarır. Çok sayıda deneyimden öğrenip ‘bilgiyi’ yeni ortamlara taşımak tam olarak transfer learning’in özüdür. Bu açıdan bakıldığında, transfer learning ve genelleme kavramsal düzeyde oldukça benzerdir. Ana ayrım, transfer learning’in çoğunlukla ‘bilgiyi görevler arasında aktarmak’ için kullanılması; genellemenin ise belirli bir görevin içinde yapılmasıdır. Dolayısıyla transfer learning, tüm makine öğrenimi modellerinde gerekli olan genelleme fikriyle içkin olarak bağlantılıdır.
  • Transfer learning, derin öğrenme tekniklerinin çok sayıdaki küçük veri senaryosunda atılım yapmasını sağlamak açısından anahtardır. Derin öğrenme araştırmada neredeyse her yerde, ancak gerçek hayattaki birçok durumda bir modeli eğitmek için tipik olarak milyonlarca etiketli veri noktası yoktur. Derin öğrenme teknikleri, bir sinir ağındaki milyonlarca parametreyi ayarlamak için çok büyük miktarda veriye ihtiyaç duyar. Özellikle gözetimli öğrenmede, bu çok sayıda (son derece pahalı) etiketli veri gerektirir. Görüntü etiketlemek basit gibi görünse de, örneğin Doğal Dil İşleme (NLP) alanında büyük bir etiketli veri kümesi oluşturmak uzmanlık gerektirir. Örneğin Penn Treebank, bir Sözcük Türü Etiketleme derlemi, 7 yılda tamamlanmış ve eğitimli dilbilimcilerin yakın işbirliğini gerektirmiştir. Transfer learning, sinir ağlarının uygulanabilir bir seçenek olması için gerekli veri kümesi boyutunu azaltmanın bir yoludur. Diğer seçenekler ise genellikle sınırlı veri setleriyle daha iyi başa çıkabilen, daha olasılıkçı yaklaşımlara yönelmektir.
  • Transfer learning’in belirgin avantajları kadar dezavantajları da vardır. Bu dezavantajları anlamak, başarılı makine öğrenimi uygulamaları için hayati önem taşır. Bilgi aktarımı yalnızca ‘uygun’ olduğunda mümkündür. Bu bağlamda ‘uygun’un tam olarak ne anlama geldiğini tanımlamak kolay değildir ve genellikle denemeler gerekir. Oyuncak arabayla dolaşan bir çocuğa Ferrari kullanması için güvenmemelisiniz. Aynı ilke transfer learning için de geçerlidir: Nicel olarak ifade etmesi zor olsa da transfer learning’in bir üst sınırı vardır. Her probleme uyan bir çözüm değildir.
cars words
Bir görüntüden çizgileri ve şekilleri (solda) ayırt edebilmek, ham piksel değerlerinden başlamak zorunda kalmaktansa bir şeyin ‘araba’ olup olmadığını belirlemeyi kolaylaştırır. Transfer learning, diğer bilgisayarlı görü modellerinden öğrenilmiş örüntülerden yararlanmanıza olanak tanır. NLP’de sözcükleri temsil etmek için farklı yaklaşımlar vardır (solda gömlemeye benzer bir temsil, sağda BoW benzeri bir temsil). Transfer learning ile bir makine öğrenimi modeli farklı sözcükler arasındaki ilişkilerden faydalanabilir.

Transfer Learning’de Genel Kavramlar

Transfer Learning’in Gereksinimleri

Adının da belirttiği gibi, transfer learning bir alandan diğerine bilgi aktarabilme yeteneği gerektirir. Transfer learning üst düzeyde yorumlanabilir; örneğin birçok NLP problemi doğası gereği dizi tahmini problemine indirgenebildiğinden, NLP model mimarileri dizi tahmini problemlerinde yeniden kullanılabilir. Transfer learning düşük düzeyde de yorumlanabilir; burada bir modelin parametrelerini başka bir modelde gerçekten yeniden kullanırsınız (skip-gram, continuous bag-of-words, vb.). Transfer learning’in gereksinimleri bir yandan probleme, diğer yandan modele özeldir. Sonraki iki bölüm sırasıyla transfer learning’e üst düzey ve düşük düzey bir yaklaşımı ele alacaktır. Literatürde bu kavramları farklı isimlerle görseniz de transfer learning’in kapsayıcı konsepti değişmez.

Çok Görevli Öğrenme

Çok görevli öğrenmede bir modeli aynı anda farklı görevlerde eğitirsiniz. Genellikle esnek şekilde uyarlanabildikleri için derin öğrenme modelleri kullanılır.

Multi-task Learning

Ağ mimarisi, ilk katmanların farklı görevler arasında kullanıldığı, ardından farklı görevlere özel katmanlar ve çıktılarla devam edildiği şekilde uyarlanır. Genel fikir şudur: Bir ağı farklı görevlerde eğiterek, modelin benzer ‘bilgi’ ya da ‘işleme’ gerektiren görevlerde iyi performans göstermesi beklendiğinden, ağ daha iyi genelleyebilir.

Doğal Dil İşleme örneğinde, nihai hedefi varlık tanıma yapmak olan bir model düşünün. Modeli yalnızca varlık tanıma görevinde eğitmek yerine, onu aynı zamanda sözcük türü sınıflandırması, bir sonraki sözcüğü tahmin etme, ... gibi görevlerde de kullanırsınız. Böylece model bu görevlerden ve farklı veri kümelerinden öğrendiği yapıdan fayda sağlar. Sebastian Ruder’ın bu blogunu ve çok görevli öğrenmeyi ele alan şu blogu şiddetle öneririm.

Özellik Çıkarıcı (Featuriser)

Derin öğrenme modelinin büyük avantajlarından biri, özellik çıkarımının ‘otomatik’ olmasıdır. Etiketli veri ve geri yayılım sayesinde ağ, bir görev için yararlı özellikleri belirleyebilir. Ağ, örneğin bir görüntüyü sınıflandırmak için girdinin hangi kısmının önemli olduğunu ‘kendi kendine çözer’. Bu, özelliği elle tanımlama işinin soyutlandığı anlamına gelir. Derin öğrenme ağları diğer problemlerde yeniden kullanılabilir; çünkü çıkarılan özellik türleri çoğu zaman başka problemler için de kullanışlıdır. Özünde, bir özellik çıkarıcıda ağın ilk katmanlarını yararlı özellikleri belirlemek için kullanırsınız, ancak çıktı katmanı göreve fazla özgü olduğundan ağın çıktısını kullanmazsınız.

transfer learning featurizer

Derin öğrenme sistemleri özellik çıkarmada iyiyken, mevcut ağları diğer görevler için özellik çıkarımı yapmak üzere nasıl yeniden kullanabilirsiniz? Bir veri örneğini ağa beslemek ve ağdaki ara katmanlardan birini çıktı olarak almak mümkündür. Bu ara katman, ham verinin sabit uzunlukta, işlenmiş bir temsili olarak yorumlanabilir. Genellikle özellik çıkarıcı kavramı bilgisayarlı görü bağlamında kullanılır. Görüntüler, önceden eğitilmiş bir ağa (ör. VGG veya AlexNet) beslenir ve yeni veri temsilinde farklı bir makine öğrenimi yöntemi kullanılır. Bir görüntünün temsili olarak ara bir katmanı çıkarmak, orijinal veri boyutunu önemli ölçüde azaltır; bu da onları geleneksel makine öğrenimi teknikleri için daha elverişli hale getirir (örneğin, lojistik regresyon veya SVM’ler, 128 gibi küçük boyutlu bir görüntü temsilinde genellikle 128x128=16384 gibi orijinal boyuttan daha iyi çalışır).

Transfer Learning Uygulamaları

NLP

Önceki blog yazılarımdan biri, günümüzde birçok NLP işlem hattının sözcük gömmelerini nasıl kullandığını ele almıştı. Bu sözcük gömmeleri, one-hot kodlamalara kıyasla sözcükleri temsil etmenin daha bilgilendirici bir yoludur. Yaygın olarak kullanılırlar ve farklı varyantları vardır. Genellikle bu varyantlar, geldikleri derleme (Vikipedi, haber makaleleri vb.) ve gömme modellerindeki farklılıklarla ayrışır. Sözcük gömmeleriyle transfer learning’in mantıklı olup olmadığını bilmek için bu modellerin ve derlemelerin arka planını anlamak önemlidir. İnsanlar genellikle sözcük gömmelerini kullanmayı transfer learning olarak adlandırmaz; ancak ben, bilgisayarlı görü ile transfer learning’e olan benzerlik nedeniyle aynı fikirde değilim. Özünde, sözcük gömmelerini kullanmak, sözcükleri vektöre dönüştürmek için bir özellik çıkarıcı ya da gömme ağını kullanmak demektir.

word2vec 4 yaşında olsa da hâlâ çok etkili bir sözcük gömme yaklaşımıdır. Öte yandan, FastText gibi yeni yaklaşımlar çok sayıda dilde sözcük gömmelerini erişilebilir kıldı. word2vec veya FastText’ten gelen gömmeler, kelime torbası yaklaşımlarına kıyasla önemli bir adımdır. Yine de, faydaları genellikle problem alanı tarafından belirlenir.

Satış temsilcileri için bir haber öneri servisi oluşturduğunuzu hayal edin. Satış ekipleri, sattıkları ürünle ilgilenebilecek şirketler hakkında haber almak istiyor. Haber makalelerinde kullanılan kelime dağarcığı genellikle oldukça genel olur; yani çoğu sözcük gömme modelinin (eğitildikleri derlemeye bağlı olarak) desteklediği bir söz varlığı kullanılır. Ayrıca, satış temsilcilerinin birkaç hafta boyunca okudukları haberleri toplamasını sağlarsanız, elinizde hızla büyük bir etiketli derlem olur. Sözcük gömmelerini yeniden kullanabilmek, öneri motorunun performansını önemli ölçüde artırabilir.

Öte yandan, hukuki sözleşmeler üzerinde konu sınıflandırması yapmanız gerektiğini düşünün. Sıradan hukuki sözleşmeler değil; rekabet hukuku bağlamında Fransızca sözleşmeler. Bu tür veri kümeleri genellikle etiketlenmemiştir ya da yalnızca sınırlı sayıda etiketli belge mevcuttur. Aşağıdaki bölüm, kutudan çıktığı hâliyle transfer learning’in bu durumda neden yalnızca bir yere kadar işe yarayacağını açıklar:

  • Söz Varlığı Dışındaki (OOV) sözcükler, eğitim sırasında görülmemiş sözcüklerdir. word2vec ve FastText örneğin Vikipedi ya da diğer derlemler üzerinde eğitilse de kullanılan söz varlığı sonludur. Eğitim sırasında, sık geçmeyen sözcükler genellikle dışarıda bırakılmıştır. Bu da, rekabet hukukundaki hukuki sözleşmelerdeki alan-özel sözcüklerin desteklenmeme ihtimali olduğu anlamına gelir. Önceden eğitilmiş sözcük gömmeleri kullanırken, genellikle OOV sözcüklerini kontrol eder ve bunları UNK belirteciyle (bilinmeyen sözcük belirteci) değiştirirsiniz; bu sözcüklerin tümüne aynı vektör atanır. Derlem alan-özel ise bu oldukça verimsizdir; çünkü alan-özel sözcükler genellikle çok anlam taşır. Anlam taşıyan sözcüklerin çoğu UNK belirteciyle değiştirilirse model pek bir şey öğrenemez.
  • Standart önceden eğitilmiş sözcük gömmelerine alternatif olarak, gömmeleri büyük bir gözetimsiz belge kümesi üzerinde ince ayar yapabilirsiniz. Bunun yalnızca büyük bir belge seti mevcutsa bir seçenek olduğunu unutmayın. Yani elinizde rekabet hukuku üzerine büyük bir derlem varsa, genel sözcükler için önceden eğitilmiş gömmelerden başlayarak alan-özel sözcükler için gömmeleri eğitebilirsiniz. Genellikle önceden eğitilmiş sözcük gömmelerinden başlamak tüm süreci hızlandırır ve kendi sözcük gömmelerinizi eğitmeyi kolaylaştırır. Bunun yine de kutudan çıktığı gibi gömme kullanmaktan daha zor olduğunu ve derlemi gömme eğitimi için nasıl hazırlayacağınıza dair bilgi gerektirdiğini unutmayın.

Sözcük gömmelerinin güncel durumu ile ilgili bu mükemmel blog yazısını okumanızı önemle tavsiye ederim. Bu yazıda belirtilen sorun ve çözümleri dikkate almak, sınırlı veri miktarıyla çalışırken sağlam NLP sistemleri ve sözcük gömmeleri oluşturmanın anahtarıdır.

Gensim, spacy ve FastText, makine öğrenimi uygulamanızda sözcük gömmelerini hızlıca kullanmanıza olanak sağlayan üç harika çerçevedir. Ayrıca özel sözcük gömmelerinin eğitimini de desteklerler. Daha fazlasını öğrenmek için şu gensim, şu spacy veya şu FastText eğitimine göz atın!

Bilgisayarlı Görüde Transfer Learning

Derin öğrenme yöntemleri bilgisayarlı göründe önemli başarılara yol açtı. Probleme özgü özellikleri (örneğin, Yönelimli Gradyan Histogramı — HoG, histogram özellikleri vb.) elle tanımlamak yerine, derin öğrenme uygulayıcıların ham görüntüleri girdi olarak alan modeller eğitmesini sağlar. Özellik tanımlama konusundaki özgün karmaşıklık artık ağ tanımlamanın karmaşıklığına kaydı. Mimariiler sıklıkla yeniden kullanılsa da ağ mimarisini kurmada tek bir strateji yoktur. Genellikle derin öğrenme teknikleri, performansı artırmak amacıyla giderek daha derin ve karmaşık mimariler geliştiren araştırma ortamlarında devasa veri setlerinde (ör. Imagenet veya MS Coco) icat edilip uygulanmıştır. Bu mimariler, küçük görüntü veri kümeleri için (tipik olarak) ölçeklenebilir olmayan, milyonlarca parametreli modellere yol açar. 5.000’den az görüntü içeren bir veri kümesinde ResNet veya VGG gibi bir mimariyi eğitmek, belirgin aşırı öğrenmeye neden olacaktır. Son dönem derin öğrenme eğilimi önemli ilerlemeler sağladı; ancak küçük veri kümelerine sahip veri bilimciler adeta soğukta bırakılmış gibi görünüyor.

Görüldüğü üzere, derin öğrenme ağları hiyerarşik özellik temsilleri öğrenir (bkz. Distill’in şu blog yazısı). Bu, alt düzey katmanların kenar gibi düşük düzey özellikleri, üst düzey katmanların ise şekiller gibi daha yüksek düzey ancak yorumlanamaz kavramları öğrendiği anlamına gelir. Hiyerarşik temsil fikri, ağ farklı veri kümelerinde eğitildiğinde de ortaya çıkar; bu da farklı problem alanlarında yeniden kullanılabileceklerini gösterir.

Bilgisayarlı görü problemlerinde transfer learning kullanırken iki yaklaşım öne çıkar.

  • İlk olarak, makul miktarda görüntü (>1.000 görüntü/sınıf) varsa, farklı bir veri kümesi üzerinde eğitilmiş bir modelin ağırlıklarıyla yeni bir modeli başlatabilirsiniz. Eğitim sırasında, bir dizi katmanı sabit tutar (genellikle ilk evrişim katmanları) ve üst düzey katmanların parametrelerini optimize edersiniz. Amaç, optimize edilmesi gereken parametre sayısını azaltırken alt düzey katmanları yeniden kullanmaktır. Alt düzey katmanlar, problem alanından bağımsız olarak büyük olasılıkla benzerdir ve model, probleme özgü olarak üst düzey katmanları birleştirme özgürlüğüne sahiptir.
  • İkinci olarak, yalnızca gerçekten az sayıda görüntü varsa (<1.000), mevcut bir modeli yeniden eğitmek çoğu durumda yine aşırı öğrenmeye yol açacaktır. Optimize edilmesi gereken parametre sayısı, görüntü sayısına göre çok büyük olur. Yine de, veriler büyük bir veri setindeki görüntülere görsel olarak benziyorsa, büyük bir önceden eğitilmiş ağ (o büyük veri setinde eğitilmiş) bir özellik çıkarıcı olarak kullanılabilir. Daha özel olarak, büyük bir ağın son N katmanını (genellikle N=1 veya N=2) kaldırır ve büyük önceden eğitilmiş ağın çıktısını görüntülerin özellik temsili olarak kullanırsınız. Bu yine, önceden eğitilmiş ağın ilk katmanlarının probleme bağımsız özellikler öğrendiği varsayımına dayanır. Bu özellikler daha sonra örneğin SVM veya lojistik regresyon ile, geleneksel bilgisayarlı görü yaklaşımına benzer şekilde kullanılabilir. Ancak özellikleri elle tanımlamak yerine, önceden eğitilmiş ağ özellik çıkarıcı olarak kullanılır.

Keras’ın API’si, önceden eğitilmiş ağları yüklemenize ve eğitim sırasında birkaç katmanı sabit tutmanıza olanak tanır. Sonraki bölümde yine iki kullanım senaryosunu ele alacağım: Biri transfer learning’in yararlı olduğu, diğeri ise olmadığı bir durum.

Yaban hayatını korumada çalıştığınızı ve canlı kamera akışında görünen farklı hayvanları sınıflandırmak istediğinizi hayal edin. Özellikle nesli tükenme tehlikesi altındaki türleri izlemeye çalışıyorsanız, çok sayıda etiketli veri toplayamayabilirsiniz. Önceden eğitilmiş ağlar genellikle yiyeceklerden hayvanlara ve nesnelere kadar geniş bir kavram alanında eğitildiğinden, önceden eğitilmiş bir ağı özellik çıkarıcı veya başlatıcı olarak kullanmak kesinlikle bir seçenektir.

Öte yandan, onkologlar için radyografi görüntülerini analiz etmeniz gerektiğini düşünün. Bu görüntüler tipik kedi-köpek görselleri değildir; bir hastaya uygulanan taramanın çıktısıdır. Bu görüntüler RGB’ye dönüştürülse de, tarama sonuçlarını göstermek için tipik olarak gri tonlarındadır. Önceden eğitilmiş bir ağ RGB görüntülerdeki şekil ve kenarları tespit edebilse de, eğitim verilerinde yer almadıkları için radyografi görüntülerinde bunları tespit etmekte muhtemelen zorlanacaktır. Ayrıca tıbbi senaryolarda etiketli veri miktarı genellikle düşüktür. (Potansiyel olarak bol) etiketlenmemiş veriden yararlanmak için çeşitli teknikler mevcuttur, ancak genellikle daha fazla çalışma ve ince ayar gerektirirler. Tipik olarak bu teknikler, her katmanı sırasıyla görüntüleri yeniden kuracak şekilde (evrişimli ve ters evrişimli katmanlar kullanarak) eğiterek sınıflandırma ağının ağırlıklarını ön-eğitmeyi dener. Bu tekniklerle önceden eğitilmiş ağların birleşimi, yakınsama iyileştirmek için sıklıkla kullanılır.

Yukarıda bahsedilen her iki bilgisayarlı görü yöntemi de önemli bir varsayıma dayanır: Orijinal veri setinde çıkarılmış örüntüler, yeni veri setinin bağlamında kullanışlıdır. Bu kullanışlılığı nicelendirmek zordur; yine de dikkate alınması gereken önemli bir varsayımdır. Sismik, hiperspektral ya da tıbbi görüntüler, ImageNet’teki görüntülerle sınırlı benzerlik gösterir. Hangi trafik işaretinin yer aldığını belirlemek ise oldukça benzer örüntülere dayanır. Bilgisayarlı görü problem alanını anlamak, bilgisayarlı görüyü başarıyla uygulamak için kritik önemdedir. Transfer learning’de kullanılan modellerin (veri kümeleri, teknikler vb.) arka planını bilerek, denemeler sırasında zaman kaybını önleyebilir ve fark yaratabilecek modellerin ince ayarına odaklanabilirsiniz.

Konular
Makine Öğrenimi

Makine Öğrenimi Kursları

Kurs

Machine Learning'i Anlamak

2 sa
310.7K
Kodlama gerektirmeyen makine öğrenimine giriş.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow