Table of Contents
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.
Parametre | Açıklama |
filters | Çıkış uzayının boyutu. |
kernel_size | Filtre boyutu. |
stride | Kaydırma adımı. |
padding | Giriş boyutunu ayarlamak için kullanılacak yöntem. |
activation | Aktivasyon fonksiyonu. |
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.
Parametre | Açıklama |
units | Katmandaki 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. |
activation | Kullanılacak aktivasyon fonksiyonu. Eğer herhangi bir şey belirtilmezse aktivasyon uygulanmaz. |
use_bias | Bias kullanıp kullanmayacağını belirtir. |
kernel_initializer | Ağırlıkların başlangıç değerlerini belirtir. |
bias_initializer | Bias’ın başlangıç değerini belirtir. |
activity_regularizer | Çıktı üzerindeki düzenleyici. |
kernel_constraint | Ağırlıklar üzerinde uygulanacak sınırlayıcı. |
bias_constraint | Bias üzerinde uygulanacak sınırlayıcı. |
bias_regularizer | Bias üzerindeki düzenleyici. |
kernel_regularizer | Kernel üzerindeki düzenleyici. |
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.
Parametre | Açıklama |
units | Kelime dağarcığının boyutu. |
output_dim | Embedding 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_length | Girdi dizileri sabit bir uzunluğa sahipse kullanılır. |
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.