• Sonuç bulunamadı

Tam-Bağlantılı (Full-Connected) Katmanı

Bahis oranlarının 0 (sıfır) ve 1(bir)’e yakınlık durumlarına göre değerlendirme yapılır

2.5. Yapay Sinir Ağlarından Derin Öğrenmeye

2.6.4. Tam-Bağlantılı (Full-Connected) Katmanı

Tam bağlantılı katmanı sınıflandırmayı gerçekleştiren katmandır. Bu katman girdi verilerini (ReLu, Pooling, Dropout vb.) alır ve k sınıflı bir sınıflandırıcı için k boyutlu vektör çıktısı verir. Gelen girdiler arasında hangi özelliğin hangi sınıfa ait olduğunu

76

belirler. Örneğin tüy, gaga, kanat gibi öznitelikleri kuş olarak sınıflandıracaktır. Tam-Bağlantılı katmanı, belirli bir sınıfla en güçlü şekilde ilişkili olan yüksek seviyeli özniteliklere bakar ve sınıflar için doğru olasılıklar elde edilir.

Tam-bağlantılı katmanda bir nöron kendinden önceki tüm nöronlara bağlıdır.

Evrişimsel sinir ağı mimarisinde ard arda gelen konvolüsyon, aktivasyon ve havuzlama katmanından sonra tam bağlantılı katman gelir. Bu katman kendinden önceki katmanın tüm alanlarına bağlıdır. Farklı mimarilerde bu katmanın sayısı değişebilir. Evrişimsel sinir ağı mimarisinde en son katmanın üretmiş olduğu matris boyutu 25x25x256=160000x1 ve tam bağlantılı katmandaki matris boyutu 4096x1 olarak seçilirse, toplamda 160000x4096 ağırlık matrisi oluşur. Yani her bir 160000 nöron 4096 nöron ile bağlanmaktadır. Bu sebepten dolayı bu katmana tam bağlantılı katman denilmektedir [97]. Şekil 2.44’te birçok konvolüsyon katmanına sahip bir ağ örneği verilmiştir.

Filtreler, her çözünürlük görüntüsüne farklı çözünürlüklerde uygulanır ve her bir katlanmış resmin çıkışı, sonraki katmana girdi olarak kullanılır. Konvolüsyon ve pooling işlemlerinden sonra düzleştirme işlemi uygulanmıştır. Tam bağlantılı katmandan sonra softmax işlemi uygulanarak sınıflandırma gerçekleştirilmiştir.

Şekil 2.44. Yapay sinir ağı yapısı [98]

Konv+Aktiv. Pooling Konv+Aktiv. Pooling Düzleştirme Tam Softmax

77 2.6.5. Diğer Kavramlar

Yapay sinir ağı modeli belirlendikten sonra verilere ve ağa bazı işlemler uygulanır.

Uygulanacak işlemler için kullanılan parametrelerde yapılacak küçük değişiklikler sistemin başarı düzeyini arttırabilir.

Veri Arttırma (Data Augmentation)

Herhangi bir nesnenin doğru olarak sınıflandırılabilmesi için kullanılacak veri sayısının sistemin öğrenebileceği yeterlilikte olması gerekir. Mevcut verilerin eğitim için yeterli olmadığı durumlarda veri arttırma işlemi uygulanır. Mevcut veriler üzerinde bir nevi filtreleme işlemleri (çevirme, uzatma, bulanıklaştırma gibi) uygulayarak veri sayısının arttırılması işlevi, veri arttırma olarak adlandırılır. Yapay sinir ağlarının bu kısımda, uygulanmak istenen filtreler yazılarak eğitime eklenir. Veri arttırma işlemleri uygulanacak görüntü Şekil 2.45’te verildiği gibidir.

Şekil 2.45. Veri arttırma işlemleri için seçilen görüntü

Şekil 2.45’te verilen görüntüye aşağıdaki parametreler uygulanmış ekran çıktıları verilmiştir.

78

a. featurewise_center parametresi : Tüm girdi verilerinin ortalama piksel değerlerini 0’a eşitler Parametre değerleri boolean veri tipindedir. Seçilen görüntüye featurewise_center parametresinin uygulanması sonucu elde edilen görüntüler Şekil 2.46’daki gibidir.

Şekil 2.46. featurewise_center parametresi uygulanmış görüntü

b. samplewise_center parametresi : Her bir örnek girdi verisinin piksel ortalamasını ayrı ayrı 0’a eşitler. Parametre değerleri boolean veri tipindedir.

Seçilen görüntüye samplewise _center parametresinin uygulanması sonucu elde edilen görüntüler Şekil 2.47’deki gibidir.

Şekil 2.47. samplewise_center parametresi uygulanmış görüntü

79

c. featurewise_std_normalization: Giriş verileri pikselleri veri setinin standart varyans değerine bölünür. Parametre değerleri boolean veri tipindedir. Seçilen görüntüye featurewise_std_normalization parametresinin uygulanması sonucu elde edilen görüntüler Şekil 2.48’deki gibidir.

Şekil 2.48. featurewise_std_normalization uygulanmış görüntü

d. samplewise_std_normalization: Her bir örnek girdi verisi pikselleri veri setinin standart varyans değerine bölünür. Parametre değerleri boolean veri tipindedir. Seçilen görüntüye samplewise_std_normalization parametresinin uygulanması sonucu elde edilen görüntüler Şekil 2.49’daki gibidir.

Şekil 2.49. samplewise_std_normalization uygulanmış görüntü

80

e. rotation_range parametresi: Görüntüler belirli bir değer ile rastgele olarak döndürülür. Değerler integer veri tipindedir. Seçilen görüntüye rotation_range parametresinin uygulanması sonucu elde edilen görüntüler Şekil 2.50’deki gibidir.

Şekil 2.50. rotation_range parametresi uygulanmış görüntü

f. zoom_range: Giriş verileri rastgele olarak yakınlaştırılır veya uzaklaştırılır.

Float veri tipinde değerler seçilebileceği gibi [lower, upper] ifadelerinden birisi yazılabilir. Seçilen görüntüye zoom_range parametresinin uygulanması sonucu elde edilen görüntüler Şekil 2.51’deki gibidir.

Şekil 2.51. zoom_range parametresi uygulanmış görüntü

g. width_shift_range parametresi: Görüntülerdeki nesnelerin konumları her zaman görüntünün merkezinde olmayabilir. Görüntüler rastgele olarak yatay eksende kaydırılır. Değerler integer ve float veri tipinde olabilir. Veya width_shift_range=2 değerini aldığında [-1,0,1] değerlerini alabildiği anlamına

81

gelir. Yani width_shift_range= [-1,0,1] ifadesiyle eşdeğerdir. Aynı şekilde width_shift_range=1 değerini aldığında ise width_shift_range= [-1,1]

ifadesiyle eş değer olduğu anlamına gelir. Seçilen görüntüye width_shift_range parametresinin uygulanması sonucu elde edilen görüntüler Şekil 2.52’deki gibidir.

Şekil 2.52. width_shift_range parametresi uygulanmış görüntü

h. height_shift_range parametresi : Görüntülerdeki nesnelerin konumları her zaman görüntünün merkezinde olmayabilir. Görüntüler rastgele olarak dikey eksende kaydırılır. Değerler integer ve float veri tipinde olabilir. Veya width_shift_range=2 değerini aldığında [-1,0,1] değerlerini alabildiği anlamına gelir. Yani width_shift_range=[-1,0,1] ifadesiyle eşdeğerdir. Aynı şekilde width_shift_range=1 değerini aldığında ise width_shift_range= [-1,1]

ifadesiyle eş değer olduğu anlamına gelir. CIFAR-10 veri setinde seçilen görüntüye height _shift_range parametresinin uygulanması sonucu elde edilen görüntüler Şekil 2.53’teki gibidir.

Şekil 2.53. height_shift_range parametresi uygulanmış görüntü

82

i. horizontal_flip parametresi: Giriş verileri yatay olarak rastgele çevrilir.

Parametre değerleri boolean veri tipindedir. CIFAR-10 veri setinde Şekil 47’deki görüntüye horizontal_flip parametresinin uygulanması sonucu elde edilen görüntüler Şekil 2.54’teki gibidir.

Şekil 2.54. horizontal_flip parametresi uygulanmış görüntü

j. vertical_flip parametresi: Giriş verileri dikey olarak rastgele çevrilir.

Parametre değerleri boolean veri tipindedir. Seçilen görüntüye vertical _flip parametresinin uygulanması sonucu elde edilen görüntüler Şekil 2.55’teki gibidir.

Şekil 2.55. vertical_flip parametresi uygulanmış görüntü

Veri arttırma işlemi için parametre değerleri girildikten sonra, Şekil 2.56’da görüldüğü gibi tüm değerler eğitime dahil edilmek üzere herhangi bir değişkene (veri arttırma) aktarılır.

83 Şekil 2.56. Veri arttırma parametreleri kod bloğu

Batch boyutu

Veri setinin büyüklüğü makine öğrenmesi için önemlidir. Ancak veri setinin aynı anda eğitimi işlemci, bellek ve zaman açısından maliyetlidir. Veri seti küçük gruplara ayrılarak eğitim ve öğrenme işlevi yapılmaktadır. Yani eğitim setinden tek seferde alınan veri sayısıdır. Veri boyutu mevcut bellek ortamında eğitilebilecek kadar büyük, local optimuma takılmayacak kadar küçük olmalıdır. Bununla birlikte küçük batch boyutunun seçilmesi modelin veri setindeki gürültüyü öğrenmesini zorlaştıracaktır.

Batch boyutu genellikle GPU belleğine uyacak şekilde 2, 4, 8, 16, 32,...2n gibi 2’nin kuvvetleri olacak şekilde belirlenebilir. Bu sayılar veri setinin boyutuna ve türüne göre değişkenlik göstermektedir. Radiuk [99], CIFAR-10 veri seti üzerinde 5 tane konvolüsyon katmanı olan yapay sinir ağlarını kullanarak veri boyutunun doğruluk değerine bağımlılığını ölçülmüştür. Çalışmaya göre 16 ile 1024 arasında 12 farklı veri boyutu kullanılarak veri boyutunun doğruluk değeri ile doğru orantılı olduğunu tespit etmiştir.

84 Epoch sayısı

İleri ve geri yayılım eğitim sayısı epoch sayısını verir. Yani epoch sayısının 1(bir) olması demek 1 tam ileri ve geri yayılım eğitimi gerçekleştirmek anlamına gelir. En yüksek doğruluk oranı elde edecek parametrelerin tespiti için en uygun epoch sayısı belirlenmesi önemlidir. Ağırlık, öğrenme oranı ve diğer parametrelerin güncellenerek hata oranını en aza indiren değerlerin bulunması epoch sayısı arttıkça mümkün olur.

Ancak epoch sayısının çok yüksek olması modelin ezberlemesine (ovetfitting) sebep olmaktadır.

İterasyon

Veri seti batch boyutlarına ayrılmış gruplar halinde eğitilir. Bir epoch’ta eğitilen veri boyutu sayısı iterasyonu verir. Yani 12.800 etiketli veri içeren bir veri seti için veri boyutu 512 olarak belirlendiğinde 1 epoch ile eğitiminde iterasyon sayısı 25’tir.

Benzer Belgeler