Miuul İnceleme

Meta Öğrenme - Algoritmalar Öğrenmeyi Nasıl Öğrenir?

Makine öğrenmesi sonuçlarından öğrenip ve bunun nasıl öğrenildiğine dair bilgiyi kullanarak daha sonra diğer görevlere uygulaması olan meta öğrenme, diğer bir adıyla öğrenmeyi öğrenme konusunu inceleyelim.


Görsel: Maciej Kuciara

"Artık evrimin sınırlarını aşmayı başardık, değil mi? Her hastalığı iyileştirebiliriz, en zayıfımızı bile hayatta tutabiliriz ve belki bir gün ölüleri diriltebiliriz, Lazarus'u mağarasından çağırabiliriz. Bunun ne anlama geldiğini biliyor musun? İşimiz bitti, bu bizim olabileceğimiz kadar iyi olduğumuz anlamına geliyor. " — Dr. Robert Ford, Westworld

Dizi karakteri Dr.Robert Ford’un bahsettiği durumun daha çok çok başındayız. Öğelerin veya nesnelerin gerçek dünyada becerileri öğrenmesini nasıl sağlayabiliriz? Cevap robotlar olur. Peki neden robotlar? Çünkü robotlar bize zeka hakkında bir şeyler öğretebilir. 

Robotlar gerçek dünyayla yüzleşmek, görevler, nesneler, ortamlar vb. arasında genelleme yapmak zorundadır, genellemeyi iyi yapmak için biraz sağduyu anlayışına ihtiyaç duyarlar. Robota bir şeyler yaptırma bağlamında sadece etiketler sağlamak veya etiketlerin ne anlama geldiğini anlamak kolay değildir. Gerçek dünyada akıllı robotlar yapabiliyorsanız, zeka ile ilgili bazı önemli sorunları çözmüş olursunuz. 

Gelin meta öğrenme konusuna daha yakından bakalım.

 

Meta Nedir?

Meta (Yunanca μετα- 'dan meta-, "sonra" veya "ötesinde" anlamına gelir), daha kapsamlı veya aşan anlamına gelir. Meta tipik olarak soyutlama düzeyini bir adım yükseltmek anlamına gelir ve genellikle başka bir şey hakkındaki bilgileri ifade eder. Örneğin, verilerle ilgili veriler olan meta verileri(meta data) muhtemelen biliyorsunuzdur. 

Meta veriler nelerden oluşur?

-    Dosyanın adı
-    Dosyanın boyutu
-    Dosyanın oluşturulduğu tarih
-    Dosyanın en son değiştirildiği tarih
-    Dosya türü
-    Dosyanın yolu




Metanın ve meta verilerin ne olduğu hakkında kafamızda bir şeyler canlandı. Şimdi makine öğrenmesinde meta öğrenmeye bakalım.

 

Neden Meta Öğrenme ve Çok Görevli Öğrenme ? 


GPT-3 gibi dönüştürücüler, sinir ağlarına geniş ve çeşitli veri kümeleri verirsek, geniş bir genelleme yapabilirler. Örneğin görüntü veri kümesi verildiğinde birçok farklı girdiye göre birçok farklı görüntüyü genelleyen modeller üretmede son derece başarılı oldular. Ancak sorun, büyük ve çeşitli bir veri kümesine ihtiyaç duymalarıdır. 

Büyük bir veri kümeniz yoksa? O zaman birtakım problemlerle karşılaşabilirsiniz. Tıbbi görüntüleme, robotik, nadir diller için çeviri, kişiselleştirilmiş eğitim, ilaç önerileri gibi büyük veri kümelerine sahip olmadığımız çok çeşitli alanlar var.

Her hastalık, her robot, her insan, her dil, her görev(task) için sıfırdan öğrenmek pratik değildir.

Veri dağıtımınız böyle görünüyorsa? y-ekseni, veri noktalarının sayısını ve x-ekseni, dünyada karşılaştığınız farklı nesneleri, insanlarla farklı etkileşimleri, zaman içinde duyduğunuz kelimeleri veya oturma durumlarını vb. gösteriyor. Solda çeşitli durumların içinde olduğunuzda, oldukça iyi durumdasınız. Sağdaki kuyrukta iseniz, algoritmaların bozulmaya başladığı yer burasıdır. Denetimli öğrenme yöntemlerinin gerçekten iyi performans göstermekte zorlandığı yerdir. Bu, otonom arabaların çok çeşitli, çok yaygın durumlarla başa çıkabildiği otonom sürüşte çok garip durumlarla karşılaştıklarında, insanlar bu durumları mükemmel bir şekilde idare edebilirler, ancak bu arabalar gerçekten zorluk yaşarlar. 

Hızlı bir şekilde yeni bir şey öğrenmeniz gerekirse? Yeni bir kişi hakkında, yeni bir görev için, yeni bir çevre hakkında sıfırdan eğitim almadan? İnsanların bunda oldukça iyi olduğu ortaya çıktı.

Şimdi küçük bir test yapalım. İki farklı ressamın tablolarını dikkatlice inceleyin. Braque ve Cezzane’den üçer tablo alacaksınız ve amacınız sağdaki test veri noktası sınıflandırabilmek. Sağdaki tablo Braque'den mi yoksa Cezzane'den mi?

Eğer Braque dediyseniz doğru söylediniz. Resimde öne çıkan düz çizgi ve eğri çizgi türlerine bir bakabilirsiniz.

Sonucu nasıl aldınız? Bu, size yalnızca birkaç veri noktasının verildiği, örneğimizde 6 veri noktasının verildiği ve bu çok küçük veri kümesinden yeni veri noktaları hakkında tahminlerde bulunmayı "few-shot learning" ile yaptınız. Bunu başarmanın yolu, sıfırdan öğrenmiyor olmanız çünkü daha önceden deneyiminiz var. Daha önce bu ressamların tablolarını görmediniz bile. Ama muhtemelen tablolar gördünüz, nesnelerin ne olduğunu dokuların ne olduğunu biliyorsunuz. Bu önceki deneyim sayesinde, hızlı bir şekilde tanımlayabildiniz.

Dolayısıyla, daha genel amaçlı makine öğrenimi sistemleri istiyorsanız, büyük veri kümeleriniz yoksa, verilerinizin uzun kuyrukları varsa, yeni bir şeyi hızlı bir şekilde öğrenebilmek istiyorsanız, bunların tümü için , meta öğrenme(meta learning)  ve çok görevli öğrenme(multi-task learning)  devreye girer.  

Meta öğrenme, diğer makine öğrenimi algoritmalarının çıktılarından öğrenen makine öğrenimi algoritmalarını ifade eder. Asıl amaç bu tür meta verileri kullanarak otomatik öğrenmenin öğrenme problemlerini çözmede nasıl esnek hale gelebileceğini anlamak, dolayısıyla mevcut öğrenme algoritmalarının performansını iyileştirmek diğer bir deyişle öğrenmeyi öğrenmedir(learning learn) .

Esneklik önemlidir, çünkü her bir öğrenme algoritması verilerle ilgili bir dizi varsayıma, onun tümevarımsal  biasına dayanır. Bu, yalnızca bias öğrenme problemiyle eşleşirse iyi öğreneceği anlamına gelir. Bir öğrenme algoritması bir alanda çok iyi performans gösterebilir, ancak diğerinde olmayabilir. Bu, makine öğrenimi veya veri madenciliği tekniklerinin kullanımında güçlü kısıtlamalara neden olur, çünkü öğrenme problemi (genellikle bir tür veritabanı) ile farklı öğrenme algoritmalarının etkinliği arasındaki ilişki henüz anlaşılmamıştır.

Öğrenme probleminin özellikleri, algoritma özellikleri (performans ölçümleri gibi) veya önceden veriden türetilmiş modeller gibi farklı türde meta veriler kullanarak, belirli bir öğrenme problemini etkili bir şekilde çözmek için farklı öğrenme algoritmalarını öğrenmek, seçmek, değiştirmek veya birleştirmek mümkündür. 

Meta öğrenme problemi: Önceki görevler hakkında veri / deneyim verildiğinde, yeni bir görevi daha hızlı ve daha yetkin bir şekilde öğrenir.

Çok görevli öğrenme problemi: Tüm görevleri bağımsız olarak öğrenmekten daha hızlı ve daha yetkin bir şekilde öğrenir. 

Makine öğrenimi algoritmaları geçmiş verilerden öğrenir. Örneğin, denetimli öğrenme algoritmaları, sınıflandırma ve regresyon tahmini modelleme problemlerini ele almak için girdi modeli örneklerini çıktı modeli örnekleriyle nasıl eşleştireceğini öğrenir.

Algoritmalar, bir model üretmek için doğrudan tarihsel veriler üzerinde eğitilir. Model daha sonra yeni girdi örnekleri için bir sayı veya sınıf etiketi gibi çıktı değerlerini tahmin etmek için kullanabilir.

Algoritmaları Öğrenme: Geçmiş verilerden öğrenir  ve yeni veri örnekleri verildiğinde tahminlerde bulunur.

Meta-Öğrenme Algoritmaları: Verilerden öğrenen diğer makine öğrenimi algoritmalarının çıktılarından öğrenir. Bu, meta öğrenmenin, veriler üzerinde önceden eğitilmiş diğer öğrenme algoritmalarının varlığına ihtiyaç duyduğu anlamına gelir.

Meta öğrenme algoritmaları, mevcut makine öğrenimi algoritmalarının çıktılarını girdi olarak alarak ve bir sayı veya sınıf etiketini tahmin ederek tahminlerde bulunur. Bu şekilde, meta öğrenme, makine öğreniminin bir seviye üzerinde gerçekleşir. Makine öğrenimi, tahmin yapmak için verilerdeki bilgilerin en iyi şekilde nasıl kullanılacağını öğrenirse, meta öğrenme veya meta makine öğrenimi, tahmin yapmak için makine öğrenimi algoritmalarından gelen tahminleri en iyi şekilde nasıl kullanacağını öğrenir.

Bir meta öğrenme sistemi üç gereksinimi vardır:

1.    Sistem bir öğrenme alt sistemi içermelidir.
2.    Deneyim, çıkarılan meta bilgisinden yararlanılarak kazanılır.
        -   Tek bir veri kümesindeki önceki bir öğrenme bölümünden veya
        -    Farklı alanlardan
3.    Öğrenme önyargısı(bias)  dinamik olarak seçilmelidir.

Önyargı, ön yargı-varyans ikileminde temsil edilen yanlılık kavramını değil, açıklayıcı hipotezlerin seçimini etkileyen varsayımları ifade eder. Meta öğrenme, öğrenme önyargısının iki yönü ile ilgilidir.


Üç ortak yaklaşım vardır:

1.    Harici veya dahili belleğe sahip (döngüsel) ağların kullanılması (model tabanlı) 
2.    Etkili mesafe ölçümlerini öğrenmek (metrik tabanlı) 
3.    Hızlı öğrenme için model parametrelerini açıkça optimize etme (optimizasyona dayalı).

 

1. Model Tabanlı

Model tabanlı meta öğrenme modelleri, parametrelerini birkaç eğitim adımı ile hızlı bir şekilde günceller; bu, dahili mimarisi ile gerçekleştirilebilir veya başka bir meta-öğrenen  modeli tarafından kontrol edilebilir.

Bellek Arttırılmış Sinir Ağları(Memory-Augmented Neural Networks(MANN)
Bellek Arttırılmış Sinir Ağı veya kısaca MANN'nin yeni bilgileri hızlı bir şekilde kodlayabildiği ve böylece yalnızca birkaç örnekle yeni görevlere adapte olabilir. 

Meta Ağlar (Meta Networks)
Meta Networks (MetaNet), görevler arasında meta düzeyde bir bilgi öğrenir ve hızlı genelleme için hızlı parametreleştirme yoluyla tümevarımsal önyargılarını değiştirir. 

 

 

2. Metrik Tabanlı

Metrik tabanlı meta öğrenmedeki temel fikir, ağırlığın bir kernel fonksiyonu tarafından oluşturulduğu en yakın komşu(nearest neighbors)  algoritmalarına benzer. Nesneler üzerinde bir metrik veya mesafe işlevi öğrenmeyi amaçlar. İyi bir metrik kavramı probleme bağlıdır. Görev alanındaki girdiler arasındaki ilişkiyi temsil etmeli ve problem çözmeyi kolaylaştırmalıdır. 

Evrişimli Siyam Sinir Ağı(Convolutional Siamese Neural Network)
Siyam sinir ağı, çıktıları ortaklaşa eğitilen iki ikiz ağdan oluşur. Giriş verisi örnek çiftleri arasındaki ilişkiyi öğrenmek için bir fonksiyon vardır. İki ağ aynıdır, aynı ağırlığı ve ağ parametrelerini paylaşır.

Eşleşen Ağlar(Matching Networks)
Eşleşen Ağlar, küçük bir etiketli destek setini ve etiketsiz bir örneği etiketine eşleyen bir ağı öğrenerek yeni sınıf türlerine uyum sağlamak için ince ayar ihtiyacını ortadan kaldırır. 


 

3. Optimizasyona Tabanlı

 

Optimizasyona dayalı meta-öğrenme algoritmalarının amacı, optimizasyon algoritmasını ayarlamaktır, böylece model birkaç örnekle öğrenmede iyi olabilir. 

LSTM Meta-Öğrenici (Long Short-Term Memory Networks, LSTM) 
LSTM tabanlı meta-öğrenici, başka bir öğrenen sinir ağı sınıflandırıcısını eğiterek few-shot learning ile  optimizasyon algoritmasını öğrenir. Parametrelendirme, belirli bir miktarda güncellemenin yapılacağı senaryo için özel olarak uygun parametre güncellemelerini öğrenmesine izin verirken, aynı zamanda eğitimin hızlı bir şekilde yakınsamasına izin veren sınıflandırıcı ağının öğrenmesini sağlar. 

Zamansal Farklılık
Model-Agnostik Meta-Öğrenme'nin kısaltması olan MAML, gradyan iniş yoluyla öğrenen herhangi bir modelle uyumlu, oldukça genel bir optimizasyon algoritmasıdır. 

Reptile
Reptile, her iki bileşeninin de gradyan inişi yoluyla meta optimizasyona dayandığı ve her ikisinin de modelden bağımsız olduğu göz önüne alındığında, oldukça basit bir meta-öğrenme optimizasyon algoritmasıdır. 


Bu yazımda meta öğrenme hakkında genel bilgileri vermeye çalıştım. Bir sonraki yazıda görüşmek üzere hoşçakalın.

Kaynaklar: I, IIIII, IVV, VI, VII

Makine Öğrenmesinde Değişken Seçimi: Sarmal Yöntemler

Simge Erek

Dengesiz Veri Seti Ne Zaman Problem Olur?

Nehir Günce Daşcı

Makine Öğrenmesinde Değişken Seçimi: Filtreleme Yöntemleri

Simge Erek

SON İNCELEMELER

GİRİŞ

Aşağıya kaydolduğunuz e-postayı girin. Şifrenizi sıfırlamanız için size bir bağlantı göndereceğiz.

Giriş Ekranına Dön
Şifre sıfırlama talimatları
adresine gönderildi.