Week 4 Day 8 Notes - Furk4nBulut/Uygulamalarla-Makine-Ogrenmesi-ve-Derin-Ogrenme-Atolyesi GitHub Wiki

Deep Learning ( Derin Öğrenme ) Nedir?

  • derin öğrenme ypaay sinir ağalrının haliyle yapay zekanı bir alt dalıdır
  • aslında çok katmanlı yapay sinir ağlarına verilen isimdir.
  • büyük miktarda veri ile çalışmak için ideal bir yapıdadır. *şu anda ypay zeka ile ypaılan çalışmaların büyük bölümü derin ağlar ileyapılmaktadır.
  • yapay sinir ağlarında olan epştşim öğrenme test gibi kavramların tamamı ve daha faszlası derin öğrenmeye transfer olmuştur
  • makine öğrenmesinin büyük veri karsısındaki başarımınn istenilen seviyelerde omamasından dolayı 2010 yılından itibaren derin öğrenme ile ilgili çalışmalar hız kazanmıştır.

Derin Öğrenme Teknik Meseleler

  • derin öğrenme mimarisi bir yapay sinir ağıdır o yüzden bunları birbirine raki olarak değilde çok iyi bir gikrin dajice gelişirilmiş hali olarak tanımlamalı.
  • klasik yapay sinir ağı giriş ve çıkış katmanları arasına 1 2 g,zli katman varken derin ağlarca bu sayı binlerce onlarca seviyesinde olabilmektedir.
  • gizi katmanların önemini kabaca anlatmak fgerkeirse 1 2 gizli katman kış ve insanu birbriniden ayırt wedevilrken biraz daha gizli katman koyduğunda kışların alt familyasını ayırt eder daha da eklersen cinslerini daha da eklersen türleri ayırtadebekirsin.
  • ancak unutulmamalıdır ki her katman sistem kaynaklaru öin fazladan yüktür
  • o yüzden katman dengelemesi iy yapılmalıdr
  • katman sayısı artıkça performans kritine göre başarım artar gibi bir genelleme yoktur
  • genel presibimz basit düşün basitle başla.
  • tek bir doğru yoktur doğruya ulaşılabilecek bir çok yol vardır.

Peki derin öğrenme için neden bu kadar beklendi

  • a) yetersiz veri setleri
  • b) birçok matematiksel hesala ve fonksi,yonun yetresiz kalması
  • c) donanısal yetersizlikler ( düşük ram, düşük cpu dar veriyolları GPU)

Derin öğrenme nasıl çalsıır?

  • derin öğrenme bir çok katmanlı yapay sinir ağlarıdır
  • giriş katmanı gizli katmanlar ve çıkış katmanı vard geri besemeli olarka ağırlıkları geriye doğrı giderek değiştirlme yöneti ile çalısır
  • ödül ceza yöntemine göre ağırlıklar değiştirlerek model dengelerinir
  • diğer özelikleri yapay sinir ağları ile benzerlik göstermektedir.
  • çok fazla hidden layer ( derinlik buradan geliyor ) bir yapay sinir ağıdır.
  • ilk olarak rastgele ağırlıklar verilerek katmanlar oluştururlurç
  • daha sonra gerçek veriler katmanlardan geçerek tahmin değerlerini ortaya çıakrır
  • gerçek hedefler tahminlerle birlikte kayıp fonksyunna eklenerek bir akyıp ğunaı belirlenir ve bu kayıp puanına göre optimize edici fonksiyon ile ağrılıklar yeniden hesaplanur
  • kayıp skorunu loss skorunu en düşük olduğu yere kadar işlemler tekrarlanır.

Derin öğrenmede eğitim aşaması

  • sıfıran öğrenme: ağırlıklar rastgele alnarak sıdıedan model eğitimi yspılır. Daha uzun eğitim zamanı gerektiri
  • transfer learning bnenzer bir problemin çözümüne yönelik bir modelin mimarisi parametreleri ve ağırlıklarını kendi problemimizin çözümü için aktarılması udurmudur7
  • özellik çıkarımı sınıflandırma regreasyon amaçlar aolmadan sadece verisetine ait özelik çıkarma işlemidir.

Bazı derin öğrenme mimarileri

  • CNN: Convolutional Neural Network
  • RNN: Recurrent Neural Network
  • LSTM: Long Short Term Memory
  • GAN: Generative Adversarial Network
  • VAE: Variational Autoencoder
  • Transformer
  • BERT: Bidirectional Encoder Representations from Transformers
  • GPT: Generative Pre-trained Transformer

Convolution ( Evrişim ) Nedir?

  • matematikte ve özellike fonksiyonel analizde konvolüsyon ya da evrişim bir fonksiyon şeklinin başka fonksiyon tarafından nasıl modifiye edildiğini göster bir integral işlemdir. bi f ile fonksiyonun konvolüsoynu .(f*g) ile gösteririz.
  • Convolution * ile ifade edilir.

Kernel and Filter

  • görüntü işlemede kerneller convolution blur işlemi edge işlemleri ve keskinleştirme gibi işlemler için kullanılan matrislerdir.
  • Genellikle 3x3, 5x5, 7x7 gibi matrisler şeklinde kullanılır.

Convolutional Neural Network ( CNN ) Nedir?

  • Convolutional Neural Network (CNN) bir tür derin öğrenme mimarisidir.
  • genellikle örüntü işleme işlemlerinde kullanul bir ferin öğrenme modelimidr
  • konvolüsyon evrişim katmanları ile çalışır.

Genel CNN Mimarisi

  • CNN mimarisi genellikle aşağıdaki katmanları içerir:
    • Giriş Katmanı: Görüntü verisinin alındığı katmandır.
    • Konvolüsyon Katmanı: Görüntü üzerinde konvolüsyon işlemi yaparak özellik haritaları oluşturur.
    • Aktivasyon Katmanı: Genellikle ReLU (Rectified Linear Unit) gibi aktivasyon fonksiyonları kullanılır.
    • Havuzlama Katmanı: Özellik haritalarını boyutlandırmak ve önemli bilgileri korumak için kullanılır.
    • Tam Bağlantılı Katman: Sonuçları sınıflandırmak için kullanılır.
    • Çıkış Katmanı: Son sınıflandırma sonuçlarını verir.

Genel CNN Mimarisi ( Instructor notes )

  • Convolution Layer - özellik çıkarma için kullanılır
  • non-linearity - sisteme doğrusal olmayanlığın tanıtılması için kullanılır. aktivasyon fonksiyonları kullanılır
  • pooling (downsampling) layer - ağırlık sayısını azaltır ve uygunluğu kontrol edr
  • flattening layer - klasik sinir ağı için veirleri hazrlar. matris alır ve vektöre çevirir
  • fully connected layer - sınıflandırmada kullanılan standart sinir ağı

Convolution Layer

  • konvolüsyon katmanı, görüntü üzerinde kaydırılan bir filtre (kernel) kullanarak özellik haritaları oluşturur.
  • görüntüye ayırt edici özellikler çıkarabilmek için filtrefeer uygulanır
  • bu filtreleri uygulanken matris çarpımı yerine matematikteki evrişim convolution işlemi uygulanır
  • uygulnan filtrenin sonuna ortaya çıkar tabloya Feature map adı verilir
  • CNN'in temel yapı taşını oluşturur.

Non-linearity ( Aktivasyon Fonksiyonları )

  • bu katman aktivasyon aktmanı olarak tanımlanır
  • hyapay sinir ağlarında kullanılan tanh sigmiod relu vb birçok aktivason fonksiyonaları bu katmanda kullanılmaktadır
  • önceki yıllarda tanh ve sigmoid kullanısalda günümüzse relu ve türevleri kullanılmaktadır
  • bunun en büyük sebeibi relu nun performans olarak diğer aktivasyon fonksiyonlarında daha hızlı çalışmasıdırç
  • Relu Fonksiyonu: f(x) = max(0, x)

Pooling Layer - Havuzlama Katmanı

  • havuzlama katmanı, özellik haritalarını boyutlandırmak ve önemli bilgileri korumak için kullanılır.
  • Convolution layerdan sonra sıkla eklenen bir katmandır
  • amacı vonvolution layerden sonra oluşan tabloyu özgün bir şekilde minimize etkmektedir
  • yani gerkesiz özellikler yok sayılır ve işlem gücünden tasarıf sağlanır
  • en çok kullanılan pooling max pooling dir
  • max pooling belirlenen sizeleradki matrislere denk gelen kısımlardaki en büyük sayıyı bulup başka bir tabloya işlemektedir
  • max pooling dışında average pooling ve min pooling gibi havuzlama türleri de vardır

Flattening Layer - Düzleştirme Katmanı

  • matris in vektörleştirildiği yani düzleştirildiği katmandır
  • bu katmanın görevi sonraki katmanda olan fully connect yapay sinir ağına işleyebbilecğei veriler oluşturmakır
  • yapay sinir ağı yapısı gereği tek boyutlu dizlilerle yani vektörlerle çalısır
  • bu katman matris olarak glen veriler düzleştirerek vektör haline getirip bir sobraki katmana hazır hale getirir.

Fully Connected Layer - Tam Bağlantılı Katman

  • mimarinin son bölümüdür
  • bu bölüm klasik yapay sinir ağında oluşmuştur
  • en son layer ı vcalssification yapılan kısmdır
  • dropout ve batch normalization fully connect layer da uygulanmaktadır
  • genellikle son aşamasında aktivasyon fonkisyonu olarak softmax uygulanmaktadır.

Dropout

  • bazrn fully connect bölümü moldei overfitting olmaya zorlar
  • bunu önüne geçemk için bazı bağlantıarın unutuup ağın yeibden eğitilmesi gerekbilir
  • dropput ile bazı bağklantılar silinir ve fully connect özelliği kaldırılır
  • bu tip durumlarda dropout kullanılır
  • fine tning için 0.5 ten başlayarak yaval yaval değer azakktılabilir
  • sistem stabil olduğunda değer azaltması durdurulur.

Batch Normalization

  • batch normalization, her bir katmanın çıktısını normalize ederek ağı daha hızlı ve daha stabil hale getirir.
  • aslında verielr preprocesisng sürecinde normlize edelir
  • ancak conv sürecinde dağılm bozukluğu olabilir bu da eğtiim huzu ve kararlığını etkileyebilir
  • fully connect bölümünde batch normlization işlemi ile veriler yeniden dengeli hale getireileiblir
  • bu işlem sistemin öğrenme hızını ve stabilitesini olumlu yönde etkilemektedir
  • kullanıldığında loss değerlribin düstüğ ügözlemlenmiştir