Konuyu Değerlendir
  • 0 Oy - 0 Ortalama
  • 1
  • 2
  • 3
  • 4
  • 5
Derin Öğrenme Uygulamalarında Başarım İyileştirme Yöntemleri
#1
[color=rgba(0, 0, 0, 0.75)]Derin Öğrenme Uygulamalarında Başarım İyileştirme Yöntemleri 
[/color]
[color=rgba(0, 0, 0, 0.75)]Her hangi bir problemi makine öğrenmesi yöntemi ile çözmeye çalıştığımızda elimizdeki veri setinin iyi bir model oluşturmak için yeterli olup olmadığını hakkında başlangıçta net bir bilgimiz yoktur; oluşturacağımız modelin bizi overfitting’e mi yoksa underfitting’e mi götüreceğini tam olarak bilemeyiz. Bununla birlikte belli başlı iyileştirme yöntemlerinin uygulanmasıyla modelin başarımının arttırılabileceğine dair ön bilgiye sahibiz. Bu nedenle başarım iyileştirme yöntemlerini modelden bağımsız, modelin başarımını artıran harici bir parametre olarak düşünebiliriz.[/color]

[Resim: IddrVO.jpg]


[color=rgba(0, 0, 0, 0.75)]Yukarıda basit yapay sinir ağı modelinde de görüleceği üzere başarım iyileştirme/regülasyon  işlemi, modelin başarımının ölçüldüğü y=f(x.w)+b şeklindeki cost fonksiyonuna bağımsız bir parametre daha eklenerek modeldeki “w” ağırlıklarının (weight) problemi daha uygun çözecek şekilde hesaplanma işlemi olarak tanımlanabilir. Bu anlamda regularization aslında loss fonksiyonuna eklenen bağımsız bir parametredir denebilir.[/color]
[color=rgba(0, 0, 0, 0.75)]y=f(x.w)+b cost fonksiyonuna uygulanan, regülasyon işlemlerinden sadece “w” ağırlıkları (weight) etkilenmekte, “b” bias değerlerine yönelik regülasyon işlemi yapılmamaktadır.[/color]
[color=rgba(0, 0, 0, 0.75)]Regularization teknikleri genelde tasarlanan modelde overfitting önleyerek başarımı artırmak için kullanılmaktadır. Buna ek olarak başarımı düşürmeden modelin karmaşıklığını (complexity) azaltmak için de kullanıldığı durumlar vardır.  Aynı başarım oranını devam ettirerek daha basit, boyutu küçük model tasarlanması, genelde mobil ortamlar gibi kaynakların (işlemci gücü, bellek vb.) sınırlı olduğu yerlerde önemli olmaktadır. Eğer geliştirdiğiniz model mobil ortamda çalışacaksa desktop veya web ortamına göre mutlaka bazı iyileştirmeler yapmanız gerekiyor. Mobil ortamlardaki pil, bellek, işlemci gibi kaynak kısıtları hepimizn malumu.[/color]
[color=rgba(0, 0, 0, 0.75)]Sık kullanılan regülasyon teknikleri aşağıdaki gibidir;
[/color]
[color=rgba(0, 0, 0, 0.9)]Verisetinin boyutunu artırma
[/color]
[color=rgba(0, 0, 0, 0.75)]Elimizde ne kadar fazla sayıda veri olursa model o kadar iyi öğrenecektir; bu bilinen bir gerçek. İyi öğrenme beraberinde yüksek başarımı da getirecektir. Verinin fazla olması model başarımı artımının yanı sıra ezberlemeyi (overfitting) de önleyecektir. Verinin boyutunun az olduğu durumlarda veri setini artırmak için kullanılan yöntemler arasında ilk sırada sentetik veri üretilmesi gelmektedir.
[/color]
[color=rgba(0, 0, 0, 0.9)]Sentetik Veri Üretmek : 
[/color]
[color=rgba(0, 0, 0, 0.75)]Sentetik veri üretmek veya veri setinin boyutunu artırmak için herkesin üzerinde hem fikir olduğu genel geçer bir yöntem yok. Bununla birlikte bu konuda takip edilen genel bir prensip var; [/color]
[color=rgba(0, 0, 0, 0.75)]“Ellimizde veri seti problemin gerçek dünyadaki karmaşıklığını olabildiğince yansıtsın.” [/color]

[color=rgba(0, 0, 0, 0.75)][Resim: lUtnMQ.jpg][/color]


[color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)]Verisetini bu prensibe ne kadar uydurabilirsek, başarım da o oranda artacaktır. Bu anlamda verinin farklı versiyonlarının verisetinde bulunması, verisetinin prensibe uygunluğunu artıracaktır. Bu nedenle verinin farklı varyasyonlarını, farklı boyuttaki görünümleri verisetine dahil edilerek verisetinin boyutu başarımı artıracak şekilde büyütülür. Sentetik veri üretme özellikle resim ve ses tanıma problemlerinde sıkça kullanılmakta ve başarımı arttırdığı bilinmektedir. Resim tanıma problemlerinde yukarıda örnek kedi resminde uygulaması görülen resmi çevirme, yeniden boyutlandırma, belli bir kısmını alma, resmi rastgele kesme, resme noisy (Gaussian noise vb.) ekleme vb. gibi sentetik veri üretme teknikleri sıkça kullanılmaktadır. [/color]
[/color]
[color=rgba(0, 0, 0, 0.75)]Sentetik veri ile veri setinin boyutunun artırılması belli oranda overfitting’i önlese bile, genelde yetersiz kalmaktadır. Çünkü oluşturulan sentetik veriler, belli miktarda farklılaşma olsa bile mevcut veri seti ile korelasyonunu korumaya devam edecektir. Bu nedenle veri seti artırma yöntemi genelde diğer regülasyon yöntemleri ile birlikte kullanılmaktadır.[/color]

[color=rgba(0, 0, 0, 0.9)]Alakasız veri ekleme (Inject random negative)[/color]

[color=rgba(0, 0, 0, 0.75)]Gürültü ekleme işlemi modeldeki;[/color]
  • girdilere gürültü ekleme

  • gizli katmanlara gürültü ekleme

  • ağırlıklara gürültü ekleme

  • loss fonksiyonuna, gürültüyü parametre olarak ekleme olmak üzere dört şekilde yapılmaktadır.
[color=rgba(0, 0, 0, 0.75)]Mevcut veri setinde bulunan veriler üzerinde oynamalar yapılarak, filtrelerden geçirilerek gürültülü veriler oluşturulur. Oluşturulan bu yeni veriler, veri setine katılarak modelin eğitilmesinde kullanılır. Böylece veri setinin boyutu artırılarak başarım göreceli olarak artırılır. Bu yöntem bir önceki bölümde açıklanan dataset augmentation’a da örnektir.[/color]

[color=rgba(0, 0, 0, 0.75)]Modelin gizli katmanlarına gürültü ekleme işlemi ilerleyen bölümlerde açıklanacak dropout yöntemi ile yapılmaktadır. Gizli katmana (hidden layer) eklenen gürültü benzer şekilde modelin başarımını artırarak overfittig’i engellemektedir. Gizli katmana gürültü eklenmesi, modelin başarımı açısından gizli katmanların manipulasyonu sağlayan bir diğer yöntem olan parametre paylaşımı (parameter sharing) yönteminden daha etkili olduğu bilinmektedir.[/color]

[color=rgba(0, 0, 0, 0.75)]Modeldeki ağırlıklara (weight) gürültü eklenerek modelin başarımında iyileştirmeler yapılabilmektedır. Bu teknik genelde Recurrent Neural Network (RNN)’de kullanılmaktadır.[/color]

[color=rgba(0, 0, 0, 0.75)]Veri setinde yanlış etiketlenmiş verilerin olması doğal bir durumdur. Çoğu veri kümesinin y etiketlerinde bir miktar hata vardır. Bu durum y’nin yanlış olduğu durumlarda hatayı hesaplayan log p(y | x) fonksiyonunu maksimize edecektir. Doğal olarak model bu durumdan etkilenecektir. Bunu önlemenin yollarından biri etiketler üzerindeki gürültüyü model üzerinde tanımlamaktır. Örneğin, küçük bir e sabiti için, eğitim setinin 1-e olasılık değeri ile doğru olduğunu ve diğer olası etiketlerin herhangi birinin de doğru olabileceğini varsayabiliriz. Bu varsayım, açıkça gürültü örnekleri çizmek yerine gürültüyü analitik olarak maliyet fonksiyonuna dahil etmek demektir.[/color]

[color=rgba(0, 0, 0, 0.9)]Düğüm Seyreltme (Dropout Layer)[/color]
[color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)]İlk olarak 2014 yılındaki Dropout: A Simple Way to Prevent Neural Networks from Overfitting isimli makalede ortaya atılmıştır. Özetle hidden ya da input layerdan belli kuralla göre (eşik değeri kullanarak ya da rastgele) belli nodelar kaldırılması tekniğidir. Örneğin aşağıdaki şekilde görüleceği üzere eşik değeri (treshold) olarak 0.5 belirlendiği bir ağ modelinde dropout uygulandığında dropout uygulanan gizli katmandaki node sayısı bir sonraki katmanda yarıya düşürülmüştür.[/color]
[Resim: 2yzJ5j.jpg]
[/color]


[color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)]Dropout tekniği genelde tam bağlı katmanlarda (fully-connected layer) sonra kullanılır. Dropout kullanılarak fully-connected layerlardaki bağlar koparılır. Böylece node’lar birbiri hakkında daha az bilgiye sahip olur ve bunun doğal sonucu olarak node'lar birbirlerinin ağırlık değişimlerinden daha az etkilenirler. Bu nedenle dropout yöntemi ile daha tutarlı (robust) modeller oluşturulabilmektedir. Aynı zamanda [/color][color=rgba(0, 0, 0, 0.75)]her bir katmanda farklı hidden unit kombinasyonları birbiriyle çalıştığı için daha iyi bir öğrenme gerçekleşecektir.[/color][color=rgba(0, 0, 0, 0.75)] Bu anlamda dropout kullanıldığında gizli katmanların random forest gibi ensemble çalıştığı düşünülebilir. Bu durum da model için hem zamandan hemde başarım açısından daha iyi performans sağlayacaktır. Aşağıda dropout kullanılan ve kullanılmayan durumlara ait örnek başarım grafiğinde de görüleceği üzere dropout sonrasında overfitting azalarak modelin başarımı artmıştır. [/color][color=rgba(0, 0, 0, 0.75)]Dropout yöntemi derin öğrenme yöntemlerinde en sık kullanılan iyileştirme (regularization) yöntemlerinden biridir.[/color][/color]

[color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][Resim: kbic5k.jpg][/color][/color]

[color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)]Dropout çalışma mantığı bir binayı inşaa etmeye çalışan bir grup işçi analojisiyle daha kolay anlatılabilir. Bir grup işçinin bir binayı inşa etmek için çalıştığını ve her birinin bir iş için uzmanlaştığını ve sadece o işi yaptığını düşünelim. Böyle bir durumda işçilerden biri yanlış yaptığında veya hastalanıp işe gelmediğinde diğer işçilerin onun yerini doldurması zor olacaktır ve durum işin ilerleyişini büyük oranda etkileyecektir. Bunun yerine iş veren her hafta işçilerden bir kaçına izin vererek (dropout) diğer işçilerden onların yerini doldurmalarını bekleyerek, her işçiden diğer işçilerin yerini doldurabilecek asgari bilgileri öğrenmesini sağlayabilir. Böylece herhangi bir işçi yanlış yaptığında ya da yokluğunda, onun yerini doldurabilecek, sistemin aksamasını engelleyecek bir sistem inşaa edilmiş olacaktır. [/color]
[/color]
[/color]
[color=rgba(0, 0, 0, 0.9)]Yoğun-seyrek-yoğun ağ ile eğitim (Dense-sparse-dense training)  [/color]
[color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)]2016 yılında DSD: Regularizing Deep Neural Networks with Dense-Sparse-Dense Training Flow isimli makalede ortaya atıldı. NLP, vision gibi farklı alanlardaki problemler üzerinde test edildi ve iyi sonuçlar verdiği gözlendi. Tek bir fully connected katmanda yapılan işlemi yoğun -> seyrek -> yoğun şeklinde üç katmana bölerek yapmaktadır. Böylece ağırlıkların birbirine etkisi başta azaltıllmakta sonra tekrar aralarında bağ kurularak yeni bilgiler öğrenmesi sağlanmaktadır. Bu durumda ayrıntılı öğrenmeden kaynaklanan overfittig problemini engellemektedir. Ağ yapısının başlarında sparse sonlara doğru fully connected kullanılması daha verimli sonuçlar vermektedir. Seyrek (Sparse) ağlarda hafıza daha az kullanıldığı için matrix çarpım işlemleri daha hızlı yapılacaktır. Bu anlamda Dense-Sparse-Dense ağlar hem hız hem performans açısından modelin iyileştirilmesinde kullanılmaktadır.[/color]
[Resim: GhVykZ.jpg]
[/color]
[/color]
[color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.9)] Algoritma :[/color]
[/color]
[/color]
  1. Yoğun (Dense) : Dense olarak öğren. Amaç hangi weightlerin önemli olduğunu tespit etmek, final weightlere ulaşmak değil.

  2. Seyrek (Sparse) : Dropout ile belli treshold altındaki weightleri sil ve modeli sparse hale getir. Modeli tekrar train et. Böylece önemli bağlantıları öğren.

  3. Yoğun (Dense) : Küçük learning rate ile modeli tekrar train et ve ağı tekrar dense hale getir. Yeni bilgiler öğren.
[color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.9)]Ezberlemeden önce durdurma (Early Stoping)
[Resim: gN3rHM.jpg]
[/color][color=rgba(0, 0, 0, 0.75)]alidation Dataset : Validation set, test veri setinin öğrenme sırasındaki temsili halidir. Training set içerisinden seçilir fakat optimizasyon sırasında kullanılmaz. Backprobagation ile parametrlerin güncellenmesinde kullanılır. Bu nedenle öğrenme sürecini doğrudan etki eder. Her iterasyon sonunda (epoch) validation set ve test set ile modelin başarımı ayrı ayrı ölçülür. Validation set ile elde edilen sonuç backprobagation işleminde kullanılırken, test veri setinin sonucu öğrenme işleminin hiç bir basamağında kullanılmaz. Test veri seti, öğrenme sürecinde adım adım modelin başarımını ölçen tamamen bağımsız bir test kümesidir. Buna karşı validation set her bir iterasyonda traninig setin farklı bir parçası olacak şekilde yenilenir ve modelin öğrenme sürecine doğrudan katkı sağlar.[/color]
[/color]
[/color]
[color=rgba(0, 0, 0, 0.75)][Resim: 0?e=1559174400&v=beta&t=MaP6PjatyFwusEtn...RCbNWxjkDU][/color]

[color=rgba(0, 0, 0, 0.75)]Early Stopping : Öğrenme sırasında validation loss ile test loss arasındaki fark açılmaya başladığı durumda model ezberliyor (overfitting) ya da gürültüyü öğreniyor (noisy) demektir. Bu durumda validation error artmaya başladığında eğitim durdurulur ve bir önceki adıma geri dönülür. Bir önceki adıma geri dönebilmek için eğitim esnasında her bir öğrenme adımında (epoch) bir önceki adımın verileri saklanmış olmalıdır. Yukarıdaki grafikte görüleceği üzere öğrenmenin başlarında training error ve test error her ikisi birlikte azalmaktadır. Bununla birlikte örnekte kesikli çizgiyle belirtilen adımdan sonra test error arttığını görmekteyiz bu noktada ezberleme olmuştur ve bu adımın öncesinde öğrenme durdurulmalıdır. Overfitting işleminden sonra ağırlıklar üzerindeki değişiklikler modeli olumsuz etkileyecektir.[/color]

[color=rgba(0, 0, 0, 0.75)]Ezberleme (Overfitting) : Test loss ve training loss arasındaki farkın artması yani ezberlemenin olması (overfitting); modelin eğitim için kullandığı verileri ayrıntılı ve gereğinden fazla öğrendiği anlamı gelir. Eğitim verisetindeki verileri detaylı öğrenmenin dezavantajı öğrenme işleminin her bir adımında eğitim verisi içinden seçilen validation verileri için çok iyi daha iyi tahmin yapması, buna karşı daha önce hiç görmediği test verisetindeki veriler için gittikçe daha yanlış tahminler üretmesi anlamına gelmektedir. Dikkat edilirse mavi çizginin eğitim veriseti, kırmızı çizginin de test veriseti için yanlış tahmin etme oranını verdiği örnek başarım grafiğine bakıldığında test ve training hata oranın gittikçe düştüğü, yani model başarımının gittikçe arttığı, bununla birlikte kesikli çizgiden sonra eğitim veriseti için hata tahmin oranın azalmaya devam ettiği buna karşı test veriseti için bu oranın arttığı görülmektedir. İşte bu ayrımın yaşandığı yerde model eğitim veriseti ezberlemeye başlamış (overfitting) demektir, bu noktada modelin eğitim durdurulmalıdır (early stopping).[/color]

[color=rgba(0, 0, 0, 0.9)]Parameter Norm (Weight) Penalty L1 ve L2[/color]

[color=rgba(0, 0, 0, 0.75)]Model içerisinde farklı ağırlık vektörleri aynı başarımı verebilmektedir. Örneğin f = x.w + b şeklinde tanımlı cost fonksiyonu olan bir modelde x = [1,1,1,1] matrisinin girdi vektörümüz olduğunu varsayalım. w1 = [1,0,0,0], w2 = [0.25,0.25,0.25,0.25] şeklide iki adette de ağırlık vektörümüz olsun . Bu durumda f1 = w1.x = 1 ve f2 = w2.x = 1 olarak hesaplanır ve her iki matris çarpımlarının sonucu aynı olur. Yani x girdi değeri için aynı cost değeri üreten birbirinden farklı birden fazla ağırlık vektörü olabilir. Bu durumda hangi ağırlık vektörü tercih edilmelidir? Model iyileştirmede çalışma mantığı küçük ağırlıklı değerlere (weight) sahip modelin büyük ağırlıklara sahip modele göre daha basit, yorumlanabilir olduğu varsayımına dayanır. Bu nedenle büyük değer üreten ağırlıklar yerine düşük değerli ağırlıkları tercih etmek başarımı artıracak, ezberlemeyi önleyecektir. Bunun içinde cezalandırma (penalth) fonksiyonları kullanılarak modelin ağırlıkları sıfır veya sıfıra yakın değerlerde tutulmaya çalışılır. Cezalandırma (penalthy) işlemi için yaygın olarak L1 ve L2 fonksiyonları kullanılır.[/color]

[color=rgba(0, 0, 0, 0.75)]Yukarıdaki maliyet (cost) fonksiyonuna L2 uyguladığımızda f1 = w1.x = 1.0 ve f2 = w2.x = 0.25 değerini verecektir. L2'ya göre w2 vektörü daha düşük loss değeri ürettiği için tercih edilecektir. Burada w2’nin daha düşük L2 değerine sahip olması; w2’nin w1’e göre daha küçük değere sahip ağırlıklardan oluşması ve bu ağırlıkların vektör içinde normal dağılıma sahip olmasından kaynaklanmaktadır. Aşağıda grafikte ağırlıkların değer histogramı verilen şekilde görüleceği üzere L2 uygulandığı durumda normal dağılıma sahip ağırlıklar L1 uygulandığı duruma göre varlığını korumaya devam etmektedir.[/color]

[color=rgba(0, 0, 0, 0.75)][Resim: 5DjWc0.jpg]
[Resim: 7IpGKx.jpg]
[Resim: o9SUFN.jpg][Resim: 0?e=1559174400&v=beta&t=6cKl14Tzhnbso4s5...n9UXNLzCng]
[/color]

[color=rgba(0, 0, 0, 0.75)][Resim: 0?e=1559174400&v=beta&t=yEpg2VpQQgh88m9s...bC1_LY3nAY][/color]

[color=rgba(0, 0, 0, 0.75)][Resim: 0?e=1559174400&v=beta&t=WKtW3pAp2_4qTPje...ndDHwaq7qo][/color]

[color=rgba(0, 0, 0, 0.75)]L1 ve L2 genelde modelin loss fonksiyonu olarak kullanılmaktadır. Bu anlamda L1 veya L2 kullanılması en bilindik ve standart reguralization yöntemlerinden biridir. Bununla birlikte model için SVM, Softmax gibi farklı loss fonksiyonları kullanılabilir.[/color]

[color=rgba(0, 0, 0, 0.75)][Resim: 0?e=1559174400&v=beta&t=0tEmNqyQMt3MNzr4...6pdFD0Cwhk][/color]

[color=rgba(0, 0, 0, 0.75)]L1 Manhatten distance:[/color]

[color=rgba(0, 0, 0, 0.75)]Bu yöntemde cezalandırma (penalty) weight’in absolute değerine göre yapılmaktadır. Bu yöntem bazı değerleri sıfır yapma eğilimindedir. Bu nedenle modelde budama yapmaya / sparcity üretmeye yatkındır. Aynı zamanda bazı değerlerin büyük kalmasına da izin verir. L1 yukarıda verilen formülü kullarak ilgili değer dönüşümlerini sağlar.[/color]

[color=rgba(0, 0, 0, 0.75)][Resim: 0?e=1559174400&v=beta&t=i0mJXuLkkL0VAQMi...Y_unt_1wx8][/color]

[color=rgba(0, 0, 0, 0.75)]L2 Eucledean distance:[/color]

[color=rgba(0, 0, 0, 0.75)]Bu yöntemde cezanlandırma işlemi ağırlık (weight) değerinin karesine göre yapılır. Tüm ağırlıkları daha küçük, sıfıra yakın değerlere götürme eğilimindedir. L2 yukarıda verilen formülü kullarak ilgili değer dönüşümlerini sağlar.[/color]

[color=rgba(0, 0, 0, 0.9)]Transfer Learning[/color]

[color=rgba(0, 0, 0, 0.9)]Çoklu öğrenme (Multi-tasking Learning)[/color]

[color=rgba(0, 0, 0, 0.75)]Verilen input’dan aynı temel ağ yapısını paylaşarak birden fazla şey öğrenen sistemlere çoklu öğrenen (multi-tasking learning) sistemler denir. Multi-task sistemlerde model iki veya daha fazla şeyi aynı anda öğrenmektedir. Model öğrenme esnasında ikinci bir bilgi daha öğreneceği için başarım doğal olarak artacaktır.[/color]

[color=rgba(0, 0, 0, 0.75)][Resim: QMaWA4.jpg][img=744x502.1875]https://media.licdn.com/dms/image/C5112AQEr_PpuboKLuQ/article-inline_image-shrink_1500_2232/0?e=1559174400&v=beta&t=FGu8uj3fPgsTbeiAX6fjV_IH_YBZyIHvjt0Ognn-vJk[/img][/color]

[color=rgba(0, 0, 0, 0.75)]Örneğin yukarıdaki şekilde temsil edilen model de, model veri seti üzerinden iki şeyi öğrenmeye çalışmaktadır; birincisi verilen fotoğrafın köpek mi, insan mı olduğu, ikinci verilen fotoğrafın kız mı, erkek mi olduğu. Normalde iki farklı amaç için çalışan bu iki modeli birleştirdiğimiz de model normalden de daha fazla bilgi öğreneceği için başarım artacaktır. Multi-tasking’de model her iki task’ı açıklamaya çalışacağı için daha genel bir model oluşturmaya çalışacak. Bu durumda bizi veri setine bağımlılıktan biraz daha uzaklaştıracak böylece overfitting engellenmiş olacaktır. [/color]

[color=rgba(0, 0, 0, 0.75)]Uyarı : Multi-tasking uygulanabilmesi için task’lar arasında ortak bir durum olması gerekiyor. Örneğin : Resimdeki kişinin bir task'da insan, diğerinde kız olarak etiketlenebilmesi gibi.[/color]

[color=rgba(0, 0, 0, 0.9)]Model uyarlama (Finetuning)[/color]

[color=rgba(0, 0, 0, 0.75)]Bir veri seti için eğitilen model, daha sonra farklı bir veri seti için biraz daha eğitip kullanılan durumlar finetuning olarak adlandırılmaktadır. Bu yöntemde amaç; belli konuyu iyi öğrenmiş belirli bir seviyede ki modellerin üzerine yeni model inşa ederek önceki modelin bilgisinden yararlanmaktır. Örneğin tıbbi çalışma yapanlar, ellerinde az görüntü olduğu için ImageNet üzerinde çalışan networklerin üst kısımlarından kendi network’ünü başlatarak iyileştirme yapmaktadırlar. Finetuning en sık kullanılan iyileştirme yöntemlerindendir. Modelin parametreleri rastgele başlatmaktansa benzer domaindeki bir problemin ağırlıklarıyla başlatmak modelin başarımını arttırmaktadır. Hatta rastgele başlatmak yerine bir birinden bağımsız networklerin ağırlıklarıyla başlatıp başarım arttırdığı söyleyen çalışmalarda var.[/color]

[color=rgba(0, 0, 0, 0.9)]Diğer yöntemler[/color]

[color=rgba(0, 0, 0, 0.75)]Regularization için sık kullanılan diğer yöntemler arasında;[/color]
  • Öğretimli öğrenme (Semi-Supervised Learning)

  • Bagging (boostrap aggration)

  • Ensemble models teknikleri sıralanabilir.
[color=rgba(0, 0, 0, 0.75)] [/color]

[color=rgba(0, 0, 0, 0.9)]Kaynaklar :
[/color]
https://www.linkedin.com/pulse/derin-%C3...kac%C4%B1/

[color=rgba(0, 0, 0, 0.75)][1] Yakup Genç, GTU Derin Öğrenme Ders Notları[/color]

[color=rgba(0, 0, 0, 0.75)][2] Cristina Scheau, Regularization in deep learning, https://chatbotslife.com/regularization-in-deep-learning-f649a45d6e0[/color]
[color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][color=rgba(0, 0, 0, 0.75)][3] https://codelabs.developers.google.com/codelabs/cloud-tensorflow-mnist/#12[/color][/color][/color]
Gelecek Yapay Zeka İle Gelecek
Alıntı


Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi

Hakkımızda
    Yapay Zeka Forum , Yapay Zekayı Türkiye'ye tanıtmak ve bu alanda Türkçe kaynak sıkıntısını gidermek ve aynı zamanda Yapay Zekaya ilgi duyan tüm kişileri bir araya getirmek amacıyla kurulmuştur.

Yapay Zeka Forum


yapay zeka

,

yapay sinir ağı

,

yapay sinir ağları

,

derin öğrenme

,

makine öğrenmesi