Derin Öğrenme Katmanları

Katmanlar, sinir ağlarının yapı taşlarıdır ve genellikle ardışık olarak düzenlenmiş yapılardır. Her katman, belirli bir işlevi yerine getirir ve sinir ağının girdi verilerini işleyerek çıktıları üretir. Derin öğrenme modelinin karmaşıklığı ve etkinliği genellikle katman sayısıyla ilişkilidir.

Bidirectional

Giriş verilini hem ileri hem de geri yönde işleyen iki ayrı sarmal katmanı içerir ve bunların çıktılarını birleştirir. Bu sayede, giriş verilerinin her iki yönden de işlenmesini ve modelin daha iyi öğrenme performansını elde etmesini sağlanır.

Pooling

MaxPooling1D, 1 boyutlu veriler üzerinde maksimum havuzlama işlemi uygulamak için kullanılır. Giriş verilerinin boyutunu küçültmek ve önemli özellikleri vurgulamak için kullanılır. Belirli bir pencere boyutunda giriş verileri üzerinde kaydırılan bir pencereyi kullanarak maksimum havuzlama işlemi uygular. Bu işlem, her pencere üzerindeki en büyük değeri alarak giriş verisinin boyutunu küçültür.

AveragePooling1D, 1 boyutlu verileri üzerinde ortalama havuzlama işlemi uygulamak için kullanılır. Belirli bir pencere boyutunda giriş verileri üzerinde kaydırılan bir pencereyi kullanarak ortalama havuzlama işlemi uygular. Her pencere üzerindeki değerlerin ortalamasını alarak giriş verisinin boyutunu küçültür.

GlobalMaxPooling1D, 1 boyutlu veriler üzerinde global maksimum havuzlama işlemi uygulamak için kullanılır. Bu katman, giriş verilerinin tüm zaman adımları boyunca maksimum değerini alarak giriş verisinin boyutunu azaltır ve önemli özellikleri vurgular.

GlobalAveragePooling1D, 1 boyutlu veriler üzerinde global ortalama havuzlama işlemi uygulamak için kullanılır. Bu katman, giriş verilerinin tüm zaman adımları boyunca ortalama değerini alarak giriş verisinin boyutunu azaltır ve önemli özellikleri vurgular.

Padding

Padding, konvolüsyon sırasında giriş verisinin kenarlarına eklenen ek veri miktarını ifade eder. Bu, çıktı boyutunu kontrol etmek veya giriş verisindeki bilginin kaybolmasını önlemek için kullanılır. İki yaygın tür:

  • Valid Padding: Kenarlara ek veri eklenmez dolayısıyla çıktı boyutu giriş boyutundan daha küçüktür. Kenar bilgilerinin korunmaya ihtiyaç olmadığı durumlarda ve özellik haritasının boyutunu küçültmek istendiğinde kullanılır.
  • Same Padding: Giriş verisinin kenarlarına ek veri eklenir böylece çıktı ile giriş aynı boyutta olur. Kenar bilgilerinin korunmaya ihtiyaç olmadığı durumlarda kullanılır.

Lambda

Kullanıcı tarafından özelleştirilebilir bir işlevi alır ve bu işlevi modelde bir katman olarak kullanır.

LSTM

LSTM (Uzun Kısa Süreli Bellek), önceki zaman adımlarından gelen bilgileri hatırlama ve uzun vadeli bağımlılıkları modelleme yeteneğine sahiptir. LSTM, RNN’in kısa vadeli bellek problemini çözmek için oluşturulmuştur. LSTM Cell State, Forget Gate, Input Gate ve Output Gate’den oluşur. Cell State, bilgileri hücreler boyunca taşıyan bir iletim hattıdır. Taşınması gereken bilgiler kapılar ile belirlenir. Kapılarda, sigmoid fonksiyonunu kullanarak 0 olan bilgileri unutur ve 1 olan bilgiler ilerlemeye devam eder.

  • Forget Gate: Bilgilerin unutulup unutulmayacağına karar veren kapıdır. Bilgiler sigmoid fonksiyonuna sokulur. 0 olan bilgiler unutulur. 1 olanlar taşınmaya devam eder.
  • Input Gate: Cell State’i günceller. Sigmoid fonksiyonu ile 0 olan bilgiler önemsiz 1 olan bilgiler önemli olarak kabul edilir. Düzenleme işlemi için tanh kullanılır. Daha sonra sigmoid ve tanh sonuçları çarpılır ve bilginin güncellenip güncellenmeyeceğine karar verilir.
  • Output Gate: Bir sonraki hücrenin girişini belirler. Tahmin yapmak için kullanılır.

GRU

LSTM’e benzerdir. Daha az tensör işlemine sahiptir bu yüzden LSTM’den daha hızlı çalışır. LSTM’den farklı olarak bilgi aktarmak için gizli katmanları kullanır. İki kapıdan oluşur.

  • Update Gate: Bilgilerin unutulup unutulmayacağına karar verir.
  • Reset Gate: Ne kadar bilginin unutulacağına karar verir.

Convolution

Conv1D, 1 boyutlu konvolüsyon işlemi uygulamak için kullanılan bir katmandır. Giriş verileri üzerinde belirli bir pencere boyutunda kaydırılan bir filtre (kernel) uygular. Bu filtre, giriş verilerini bir boyutlu konvolüsyon işleminden geçirir ve çıktı olarak konvolüsyon sonuçlarını verir. Genellikle zamansal verilerin işlenmesi, sıralı verilerin analizi gibi durumlarda kullanılır.

Conv2D, 2 boyutlu konvolüsyon işlemi uygulamak için kullanılan bir katmandır. Giriş verileri üzerinde belirli bir pencere boyutunda kaydırılan bir filtre (kernel) uygular. Bu filtre, giriş verilerini iki boyutlu konvolüsyon işleminden geçirir ve çıktı olarak konvolüsyon sonuçlarını verir. Genellikle görüntü işleme gibi iki boyutlu verilerin işlenmesi durumlarda kullanılır.

Conv3D, 3 boyutlu konvolüsyon işlemi uygulamak için kullanılan bir katmandır. Giriş verileri üzerinde belirli bir pencere boyutunda kaydırılan bir filtre (kernel) uygular. Bu filtre, giriş verilerini üç boyutlu konvolüsyon işleminden geçirir ve çıktı olarak konvolüsyon sonuçlarını verir. Genellikle video işleme, 3D görüntü verileri gibi üç boyutlu verilerin işlenmesi durumlarda kullanılır.

ParametreAçıklama
filtersÇıkış uzayının boyutu.
kernel_sizeFiltre boyutu.
strideKaydırma adımı.
paddingGiriş boyutunu ayarlamak için kullanılacak yöntem.
activationAktivasyon fonksiyonu.
Convolution katmanı parametreleri.

Convolution-Transpose

Conv1DTranspose, 1 boyutlu transpoz konvolüsyon işlemi uygulamak için kullanılır. Giriş verileri üzerinde belirli bir pencere boyutunda kaydırılan bir filtre uygular. Conv1D katmanı giriş verisinin boyutunu azaltmak için kullanılırken, Conv1DTranspose katmanı giriş verisinin boyutunu artırmak için kullanılır.

Dense

Tam bağlı olarak da adlandırılır, çünkü her bir giriş düğümünün her bir çıkış düğümüyle bağlantılı olduğu bir katmandır. Dense katmanının çıkışı, giriş verileri (x) ve ağırlıkları (W) ile bias (b) terimlerinin matris çarpımının sonucu olarak hesaplanır ve ardından bir aktivasyon fonksiyonuna geçirilir.

Burada x girdiyi, b biası ve W ağırlılığı temsil etmektedir. Önce giriş verileri ile ağırlıklar çarpılır. Elde edilen sonuca bias eklenir. Sonuç bir aktivasyon fonksiyonundan geçirilir ve çıkış üretilir.

ParametreAçıklama
unitsKatmandaki gizli nöron sayısıdır yani çıkış boyutunu belirtir. Ağın karmaşıklığını belirler. Daha fazla nöron, öğrenme yeteneğini artırabilir fakat overfitting riskini de artırabilir.
activationKullanılacak aktivasyon fonksiyonu. Eğer herhangi bir şey belirtilmezse aktivasyon uygulanmaz.
use_biasBias kullanıp kullanmayacağını belirtir.
kernel_initializerAğırlıkların başlangıç değerlerini belirtir.
bias_initializerBias’ın başlangıç değerini belirtir.
activity_regularizerÇıktı üzerindeki düzenleyici.
kernel_constraintAğırlıklar üzerinde uygulanacak sınırlayıcı.
bias_constraintBias üzerinde uygulanacak sınırlayıcı.
bias_regularizerBias üzerindeki düzenleyici.
kernel_regularizerKernel üzerindeki düzenleyici.
Dense katmanı parametreleri.

Dropout

Overfitting’i azaltmak için kullanılan bir düzenleme tekniğidir. Ağın öğrenme sürecinde rastgele seçilen nöronları devre dışı bırakarak ağın genelleme yeteneğini artırır. Bu, ağın farklı altkümelerini kullanarak birden fazla model öğrenmesini simüle eder. Bu süreç boyunca, her bir nöronun çıktısına “dropout” olasığı uygulanır. Bu olasılık nöronun eğitim sırasında geçerli iterasyonda kullanılmama olasılığını belirler. Genelde tam bağlı katmanlardan sonra kullanılarak bağlar koparılır. Böylece düğümler birbirleri hakkında daha az bilgiye sahip olur, birbirleri arasındaki ağırlık değişimlerinden daha az etkilenirler.

Embedding

Bir sözcüğü veya bir kategorik değişkeni vektör temsilinde kodlar. Önceden belirlenmiş bir boyuta sahip bir vektörü, giriş olarak alınan değerlerin gömülmesi için kullanılır. Bu işlem, girdi olarak alınan değişkeni bir vektör uzayında temsil eder.

ParametreAçıklama
unitsKelime dağarcığının boyutu.
output_dimEmbedding vektörlerinin boyutu. Genellikle 50-300 (glove.6B.300d, glove.6B.100d gibi) boyutları arasında tercih edilir. Daha büyük boyutlar daha fazla bilgi taşıyabilir fakat hesaplama maaliyetini artırır.
input_lengthGirdi dizileri sabit bir uzunluğa sahipse kullanılır.
Embedding katmanı parametreleri

Flatten

Giriş verilerini tek boyutlu bir vektöre dönüştürür. Convolution ve Pooling katmanlarından gelen matrisleri tek boyutlu diziye çevirir. Böylece veriyi tam bağımlı katmana hazırlar.

Input

Modelin girdi verilerini belirtmek için kullanılır. Modelin başlangıç noktasını oluşturur.