• Sonuç bulunamadı

Derin öğrenme tekniklerinin biyomedikal imgeler üzerine uygulamaları / Applications of deep learning techniques on biomedical images

N/A
N/A
Protected

Academic year: 2021

Share "Derin öğrenme tekniklerinin biyomedikal imgeler üzerine uygulamaları / Applications of deep learning techniques on biomedical images"

Copied!
70
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

DERİN ÖĞRENME TEKNİKLERİNİN BİYOMEDİKAL İMGELER ÜZERİNE UYGULAMALARI

Mehmet Emre SERTKAYA Yüksek Lisans Tezi

Bilgisayar Mühendisliği Donanım Anabilim Dalı Danışman: Doç. Dr. Burhan ERGEN

(2)
(3)

ÖNSÖZ

Yapay Zekâ, farklı disiplinleri içine alarak ve günlük yaşamımızda karşılaştığımız gerçek dünya temelli problemler için ürettiği ‘zeki’ çözümler sebebiyle popülaritesini her geçen gün giderek arttıran en önemli bilim dallarından biridir. Yapay zekânın önem kazanması sonucu ortaya çıkan bilim dallarından biri olan derin öğrenme de bu çalışmaya en büyük katkıyı sağlamıştır.

Gerçekleştirdiğim bu çalışma boyunca ilminden faydalandığım, insani ve ahlaki değerleri ile de örnek edindiğim, yanında çalışmaktan onur duyduğum ve ayrıca tecrübelerinden yararlanırken göstermiş olduğu hoşgörü ve sabırdan dolayı değerli hocam Doç.Dr.Burhan ERGEN’e,önerilerini ve bilgilerini benimle paylaşan tez boyunca desteklerini esirgemeyen ablam ve abime, hayatım boyunca başarılı olacağıma inanan anneme teşekkürü bir borç bilirim.

Mehmet Emre SERTKAYA ELAZIĞ-2018

(4)

III İÇİNDEKİLER ÖNSÖZ ... II İÇİNDEKİLER ... III ÖZET ... IV SUMMARY ... V ŞEKİLLER LİSTESİ ... VI TABLOLAR LİSTESİ ... VIII KISALTMALAR LİSTESİ ... IX

1. GİRİŞ ...1

2. DERİN ÖĞRENME ...3

2.1. Makine Öğrenmesi………..4

2.2. Yapay Sinir Ağları………..5

2.3. Derin Öğrenme Yapısı………8

2.3.1. Üç Yönlü Sınıflandırma………..9

2.4. Derin Öğrenme Mimarileri ve Terminolojileri……….11

2.4.1. Deep Learning(Derin Öğrenme)……….11

2.4.2. Derin İnanç Ağları(Deep Belief Network)……….11

2.4.3. Derin Nöron Ağlar(Deep Neural Network-DNN)………..11

2.4.4. Derin Oto-Kodlayıcılar(Deep Auto-Encoders)………...11

2.4.5. Boltzmann Makineleri(Boltzmann Machines-BM)………11

2.4.7. Tekrarlayan Sinir Ağlar(Reccurent Neural Networks-RNNs)………12

2.4.8. Tanımalı Tekrarlayan Sinir Ağlar(Recognizing Reccurent Neural Networks-rRNN)...12

2.4.9. Konvolüsyonel Sinir Ağları(Convolution Neural Network-CNN)……….12

2.4.10. Tam Konvolüsyonel Sinir Ağları(Fully Convolution Neural Network-FCNN)……...26

2.5. Derin Öğrenme Yaklaşımı ile Sınıflandırma……….27

2.6. Medikal Araştırmalarda Derin Öğrenme Çalışmaları………30

3. DERİN ÖĞRENME AĞ YAPILARI ... 35

3.1. LeNET Ağ Yapısı………..35

3.2. AlexNET Ağ Yapısı………..36

3.3. VGGNET Ağ Yapısı……….38

4. UYGULAMALAR... 40

4.1. İmge Veri Setleri………..40

4.1.1. Birinci Grup Veri Seti………..40

4.1.2. İkinci Grup Veri Seti………42

4.1.3. Üçüncü Grup Veri Seti……….44

4.1.4. Dördüncü Grup Veri Seti……….47

4.2. İmge Veri Setlerinin Derin Öğrenme Ağ Yapılarına Uygulanması……….49

4.2.1. Birinci Grup Veri Setinin Uygulanması………..49

4.2.2. İkinci Grup Veri Setinin Uygulanması………50

4.2.3. Üçüncü Grup Veri Setinin Uygulanması……….51

4.2.4. Dördüncü Grup Veri Setinin Uygulanması………..53

5. SONUÇ ...55

KAYNAKLAR ...56

(5)

IV

ÖZET

Derin öğrenme, önceden bilinen veriler üzerinde pek çok katmanlı yapay sinir ağı ile model oluşturarak, bilinmeyen veriler için özelliklerin öğrenimi yardımıyla sınıflandırma ve analiz yapılmasına imkân sağlayan makine öğrenmesi algoritmalarını içeren bir yaklaşımdır. Bu yaklaşım yapay zekâ teknolojisinin uygulanabilirliğinin artması sonucu ortaya çıkmış ve çalışmalar artmaya başlamıştır.

Derin öğrenme teknolojileri kullanılarak özellikle imge tanıma ve sınıflandırma çalışmaları da hız kazanmıştır. En temel derin öğrenme algoritmaları çok katmanlı yapay sinir ağı ve konvolüsyonel sinir ağları olmuştur. Özellikle görüntü işleme alanından bu algoritmalar yaygın biçimde kullanılmıştır. Bu çalışmada derin öğrenme terminolojileri kullanılarak biyomedikal imgelerin Convolutional Neural Networks(CNNs) yöntemi ile hastalıklı yapının tespit edilmesi ve medikal resim ögelerinin sınıflandırılması amaçlanmıştır. Bu çalışma doğrultusunda birden fazla medikal veri setlerinden bir miktar veri eğitilerek daha sonra test amaçlı ayrılan verilerin çeşitli derin öğrenme ağ modelleriyle aracığıyla istenilen imge(hastalıklı bölge, doku ya da hücre) tespiti gerçekleştirilmiştir. Bu çalışma sonunda biyomedikal imgelerin sınıflandırılmasında derin öğrenmenin başarılı sonuçlar sergilediği görülmüştür.

Anahtar Kelimeler: Derin öğrenme, Yapay sinir ağları, Konvolusyonel sinir ağları,

(6)

V

SUMMARY

Applications of Deep Learning Techniques on Biomedical Images

Deep learning is an approach that includes machine learning algorithms that enable learning and classification of features for unknown data by creating models with many layered artificial neural networks on previously known data. This approach is the result of increased applicability of artificial intelligence technology and work has begun to increase.

Using deep learning technologies, especially image recognition and classification studies have also accelerated. The most basic deep learning algorithms are multi-layer artificial neural networks and convolutional neural networks. These algorithms are used extensively, especially in the field of image processing. In this study, it is aimed to determine the diseased structure of biomedical images by using Convolutional Neural Networks (CNNs) method and to classify medical images by using deep learning terminology. In this study, some data from several medical data sets were trained and then the desired image (diseased area, tissue or cell) was detected by means of various deep learning network models of the data that were separated for test purposes. At the end of this study, it was seen that deep learning was successful in the detection of biomedical images.

Key Words: Deep learning, Artificial neural networks, Convolutional neural networks,

(7)

VI

ŞEKİLLER LİSTESİ

Sayfa No

Şekil 2.1. Yapay Sinir Hücresinin Yapısı……...6

Şekil 2.2. Yapay Sinir Ağının Yapısı Yapısı...7

Şekil 2.3. Derin Ağlara ait Çeşitli Katman ve Model Yapısı...9

Şekil 2.4. Konvolüsyon İşlemi...…….………....…...….………...14

Şekil 2.5. CNN Nöron yapısı...…….………....…...….………...15

Şekil 2.6. CNN Mimarisi………...15

Şekil 2.7. Padding Örneği...………...17

Şekil 2.8. Pooling Örneği...………...18

Şekil 2.9. Dropout Kullanılmamış ve Kullanmış Ağ Yapısı...19

Şekil 2.10. Yaygın Kullanılan Aktivasyon Fonksiyonları…...21

Şekil 2.11. Tam Bağlı Katmanları Dönüştürerek Isı Haritaları Oluşturma...26

Şekil 2.12. FCN Model Yapısı...27

Şekil 2.13. CNN İkili Sınıflandırma Yapısı...28

Şekil 2.14. CNN Çoklu Sınıflandırma Örneği…...………...28

Şekil 2.15. CNN Model Görselleştirme Örneği ………...29

Şekil 2.16. Kanser Metastası Tespitinin Yapısı ………...30

Şekil 2.17. Önerilen Mekânsal Olarak Kısıtlanmış CNN Örneği………...32

Şekil 3.1. LeNET Ağ Yapısı...35

Şekil 3.2. AlexNET Ağ Yapısı...37

Şekil 3.3. VGGNET Ağ Yapıları...39

Şekil 4.1. Birinci Grup Veri Seti Normal(Sağlıklı Birey) Görüntüleri….……….41

Şekil 4.2. Birinci Grup Veri Seti Pneumonia(Hastalıklı Birey) Görüntüleri….………41

Şekil 4.3. İkinci Grup Veri Seti Cancer(Hastalıklı Birey) Görüntüleri…….………42

Şekil 4.4. İkinci Grup Veri Seti Normal(Sağlıklı Birey) Görüntüleri……….………...42

Şekil 4.5. Üçüncü Grup Veri Seti Görüntüleri……….……….44

Şekil 4.6. Üçüncü Grup Veri Seti CNV(Hasta Birey) Görüntüleri………44

Şekil 4.7. Üçüncü Grup Veri Seti DME(Hasta Birey) Görüntüleri………...44

(8)

VII

Şekil 4.9. Dördüncü Grup Veri Seti Eosinophil Görüntüleri ………...47

Şekil 4.10. Dördüncü Grup Veri Seti Lymphocyte Görüntüleri ………...47

Şekil 4.11. Dördüncü Grup Veri Seti Monocyte Görüntüleri ………...47

Şekil 4.12. Dördüncü Grup Veri Seti Neutrophil Görüntüleri ………...48

Şekil 4.13. AlexNET Başarım(Solda) ve Hata Oranları(Sağda) Grafiği………...50

Şekil 4.14. AlexNET(dropout) Başarım(Solda) ve Hata Oranları(Sağda) Grafiği………51

Şekil 4.15. AlexNET Başarım(Solda) ve Hata Oranları(Sağda) Grafiği………...53

Şekil 4.16. AlexNETBaşarım ve Hata Oranı Çıktıları…………..………...53

(9)

VIII

TABLOLAR LİSTESİ

Sayfa No

Tablo 2.1. Aktivasyon Fonksiyonları………..…….……...20

Tablo 2.2. Literatür Özeti…………..………..…….……...34

Tablo 4.1. Birinci Grup Veri Seti Örnek Miktarları…….……...41

Tablo 4.2. İkinci Grup Veri Seti Örnek Miktarları…….……...43

Tablo 4.3. Üçüncü Grup Veri Seti Örnek Miktarları…….……...46

Tablo 4.4. Dördüncü Grup Veri Seti Örnek Miktarları…….……...48

Tablo 4.5. Birinci Grup Veri Seti Uygulama Sonuçları....……...49

Tablo 4.6. Birinci Grup Veri Seti Uygulama Hata Oranları..…...50

Tablo 4.7. İkinci Grup Veri Seti Uygulama Sonuçları …...…...50

Tablo 4.8. İkinci Grup Veri Seti Uygulama Hata Oranları....……...51

Tablo 4.9. Üçüncü Grup Veri Seti SVM ve Doktor Tanısı Sonuçları …..…...52

Tablo 4.10. Üçüncü Grup Veri Seti Uygulama Sonuçları ………...52

Tablo 4.11. Üçüncü Grup Veri Seti Uygulama Hata Oranları....……...52

Tablo 4.12. Dördüncü Grup Veri Seti Uygulama Sonuçları …….……...53

(10)

IX KISALTMALAR LİSTESİ AI :Artificial Intelligence AE :Auto-Encoders BM :Boltzmann Machine C :Santigrat

CNNs :Convolutional Neural Networks

CNV :Choroidal Neo Vascularization

CUDA :Compute Unified Device Architecture

CRFs :Conditional Random Fields

CT :Computed Tomography

DME :Diabetic Maculer Edema

DL :Deep Learning

DBM :Deep Boltzmann Machine

DBN :Deep Belief Network

DNN :Deep Neural Network

ELM :Extreme Learning Machines

FCNNs :Fully Convolutional Neural Networks

GMMs :Gaussian Mixture Models

GPU :Graphics Processing Unit

ILSVRC :ImageNET Large Scale Visual Recognition Competition

K-NN :K Nearest Neighbours

MaxEnt :Maximum Entropy

MIL :Multiple Instance Learning

MLPs :Multi Layer Perceptrons

NIH :National Institutes of Health

NLP :Neuro Linguistic Programming

OCT :Optical Coherence Tomography

PET :Pozitron Emisyon Tomography

ReLU :Rectified Linear Unit

RBM :Restricted Boltzmann Machine

RNN :Recurrent Neural Network

rRNN :Recognizing Recurrent Neural Network

SIFT :Scale-Invairant Feature Transform

SVM :Support Vector Machine

WESDR :The Wisconsin Epidemic Study of Diabetic Retinopathy

(11)

1. GİRİŞ

Çağımız teknolojisinde bilgisayar yaşamımızın her alanında yer almaya başlamıştır. Bir zamanlar hayal olarak düşünülen robotlar, yapay zekâlar ve akıllı cihazlar artık birçok konuda insanların yerine geçmiş ya da bizlerin işlerini daha kolay hale getirmiştir.

Bilgisayar teknolojisinin gelişmesi sayesinde sağlık, askeri, eğitim vb. birçok alanda en az iş gücü ve maliyetle en iyi performanslar sağlanması amaçlanmış ve başarılıda olunmuştur. Artık cihazlar insan gibi düşünüp karar verme mekanizmasına yetecek kadar gelişme göstermiş yapay zekâ alanı olarak çeşitli alanlarda kullanılmaya başlanmıştır. Özellikle sağlık alanında hastalıkların tanısında hatta insan gözünün algılayamadığı yapıdaki hastalıkların ön tanısında yüksek başarı ortaya konulmuş milyonlarca görüntü ve veriyi kullanarak başka hastalıkların bulunmasında da kolaylık sağlamıştır.

Yapay zekâ, yukarıda da bahsedildiği gibi farklı disiplinlerdeki problemlere sunduğu etkin çözümler ile gün geçtikçe önemi artan bir bilim dalı olmuştur. Genel anlamda bu kadar öneminin artmasının başlıca sebebi, mantıksal ve matematiksel düzlemde ifade edilebilen her türlü probleme çözüm sunmasından geçmektedir. Yapay zekâ (Artificial Intelligence-AI) yöntemleri üzerine birçok çalışma yapılmıştır. Örneğin, makine öğrenimi yapay sinir ağları(YSA) kavramını uygulayan yapay zekâ yöntemleri bunlardan biridir.

Yapay sinir ağ modeli yapısal olarak çok sayıda veri girişine dayanır. Genel yapı olarak bilinmeyen yapıdaki fonksiyonları tahmin edebilme veya yaklaşık fonksiyonunu bulmaya dayanmaktadır. Yapay sinir ağları girdilerin değerlerini hesaplayarak makine öğrenmesi veya örüntü tanıma tekniklerini kullanarak ya da özellik çıkararak “nöron” adı verilen birbirine bağlı alt özellik çıkarımını sağlamaktadır.

Yapay zeka yöntemlerinin doğru ve anlaşılır olmasını destekleyen yeni bir yöntemi ise Derin Öğrenme(Deep Learning)’dir. Bilgiyi temsil etmede insan beyninin işlevselliğini taklit etmenin yeni bir yolunu bulan yapay zekâ araştırmalarında insan beyninin benimsediği karmaşık veri gösterim yöntemini çözmeye amaçlayan yeni bir yöntemdir[1]. Derin Öğrenme kavramı genel olarak birden çok gizli katman yapısından oluşmaktadır. Bu gizli katmanlar verilerin ağdaki depoladığı yer olarak ifade edilebilir. Bu gizli katmanlar, geleneksel sinir ağlarıyla karşılaştırıldığında hesapsal olarak farklı yöntemlere dayanmaktadır. Daha basit ifade etmek gerekirse Derin öğrenmedeki gizli katmanlar, her bir katman denetimin öğrenme algoritmasıyla önceden eğitilmiş olup, girişin veya önceki katmanın çıktısının doğrusal olmayan bir dönüşümü ve girişinden daha somutsal özellikleri bulmaya çalışır.

(12)

2

Derin öğrenmenin özellikle birçok disiplinde kullanılabilir olması onun günümüz bilgisayar teknolojisinde daha kullanışlı ve popüler kılmıştır. Özellikle artan sağlık sorunları ve hasta çeşitliliği derin öğrenme gibi disiplinlere daha fazla ihtiyaç duymamızı sağlamıştır. Bu hastalıklardan belki de en önemlilerinden biri kanser vakalarıdır. Kanser günümüzde çoğu ülkede ikinci sırada ölüm sebebidir. 2010’dan sonra yapılan araştırmalar hala kanser nedeniyle ölümlerin arttığını göstermiştir[2]. Bu yüzden hastanelerde binlerce tahlil, tomografi, röntgen yapılmakta ama o veriler sadece tahlil yapılan hastada kullanılıp bellekte saklanıp başka hastaların ön tanısında verimli bir şekilde kullanılmamaktadır. Bu tür hastalıkların erken teşhisi büyük öneme sahip olup hastalığın erken tanısı hastanın tedavisinde çok büyük rol oynamaktadır.

Derin öğrenme yöntemleri kullanılarak bu gibi binlerce hatta milyonlarca veri kullanılarak yeni gelen hastaların tanısında daha başarı sağlayabiliriz. Bu sayede bu veriler kullanılarak insan algısının fark edemediği yapıdaki özellikler bu yöntemle çözülüp erken teşhis konula bilinir.

Bu tezin amacı, biyomedikal alanda derin öğrenme yöntemlerinin başarılı sonuçlar üretip üretmediği araştırılmıştır. Bu çalışmada birden fazla biyomedikal veri seti kullanılarak bu verilerin derin öğrenme sınıflandırma modelleri üzerinde durulmuş hastalıklı bölgenin tespiti ve bölgesel sınıflandırma yapılmıştır. Bu amaçla bu veri setlerinden önceden etiketlenmiş bir miktar veri alınıp oluşturduğumuz ağı eğitip geri kalan test verimizde başarısı ölçülmüştür. Bunu gerçekleştirmek için derin öğrenme yöntemlerinden Convolutional Neural Networks(CNNs) ve Fully Convolutional Networks(FCN) yöntemleri kullanılarak başarılı sonuçlar alınmıştır. Derin öğrenme ağ yapılarından AlexNET, LeNET, VGG modelleri uygulanmıştır. Genel başlıklarıyla bu tezin;

İkinci bölümünde, Derin Öğrenme anlatılmaktadır. Çalışmanın konusu kapsamındaki kavramlara değinilmiş, tez çalışması süreci içerisinde yapılan algoritma tasarım ve geliştirme süreçleri öncesinde yeter düzeyde bir teorik altyapı kazanması sağlanmıştır.

Üçüncü bölümde, Derin Öğrenme ağ yapıları ve modelleri anlatılmıştır.

Dördüncü bölümde, Derin Öğrenmede kullanılan imge veri setleri ve başarımları anlatılmıştır.

Beşinci bölümde ise çalışmanın sonuçları ve başarı değerleri yönteminin olumlu ve olumsuz yanları ifade edilip ne gibi gelişme yöntemleri ile daha iyi sonuçlar alınabileceği anlatılmıştır.

(13)

2. DERİN ÖĞRENME

Derin öğrenme, yapay sinir ağları adı verilen beynin yapısı ve fonksiyonundan esinlenen algoritmalarla ilgili makine öğrenmesinin bir alt dalıdır. Tarihsel olarak, derin öğrenme kavramı yapay sinir ağı araştırmalarından kaynaklanmıştır. Bu nedenle, zaman zaman “yeni nesil sinir ağları” olarak anılmaktadır. Derin öğrenmenin yapısı insan gibi düşünen ve karar veren yapılar oluşturmayı amaçlar. Bu amaç doğrultusunda sadece sayısal verileri işlemez piksel, metin hatta ses verilerini kullanabilir.

İnsanın beynine ilham kaynağı alan derin öğrenme, beyin neokorteksinin veriyi karmaşık bir hiyerarşiden geçirdiğini ortaya koyan sinir bilimi bulgularını kullanır[3]. Derin öğrenme yaklaşımları, köklerini sinir ağlarından alır; burada 'derin' birbirinin üzerine yığılan birkaç katmanı ifade eder. Derin bir öğrenme mimarisi, her biri daha üst düzey temsilleri, yani özellikleri çıkartması beklenen yığın katmanları tarafından oluşturulmuştur. Örneğin, bir görüntü piksellerden oluşur ve derin bir model, resim kenarlarını, nesne parçalarını ve nesneleri katmanlardan yayılan olarak öğrenir. Derin öğrenme yaklaşımları, sınıflandırma görevleri, doğal dil işleme, görüntü işleme, konuşma tanıma vb. konularında kullanılmaya uygundur ve bunlar sığ mimarilere kıyasla çok daha güçlüdürler[4].

Son yıllardaki çalışmalarda biyolojik ve devre karmaşıklığına sahip olan yapılardaki derin öğrenme kullanımının, özellikle problemin oldukça karmaşık matematiksel fonksiyonları çözümlemede sığ mimarilere göre daha iyi sonuçlar verdiği görülmüştür. Derin öğrenme temel olarak ele alındığında bir yapay sinir ağıdır. Derin olarak adlandırılmasının sebebi bu YSA’nın yapısından kaynaklanmaktadır. 1970’lerde ortaya çıkan yapay sinir ağları ilk ortaya çıktığında sadece birkaç katmandan oluşmaktaydı. Günümüzde ise bu katman sayısı gittikçe artmaktadır. Bununla birlikte yakın zamana kadar YSA eğitmenin çok zor olduğuna inanılıyordu. Bunun başlıca sebebi donanımsal eksiklikler olarak görülmüştür. Teknolojik gelişmeler sayesinde bu eksiklikler giderilmiş ve katman sayısı artırılarak derin ağ yapıları oluşturulmaya başlanmıştır. Deneysel olarak, derin ağlar genellikle bir veya iki gizli katmana sahip sinirsel ağlardan daha iyi ve genellikle daha kötü değildir[5]. Derin öğrenme diğer yapılara kıyasla: karmaşık yapıdaki yapıları çözümleme, az çevre(kullanıcı) müdahalesi ve yüksek seviye soyutlamaları analiz etmede, çok büyük örnekleri ve etiketsiz verileri değerlendirebilmede diğer yöntemlere göre daha iyi başarılar göstermektedir.

(14)

4

2.1. Makine Öğrenmesi

Makine Öğrenmesi, elimizdeki verilerle kendi kendine eğitme, gözlem ve analiz yaparak çıkarımlarda bulunan yapay zeka yöntemlerinden biridir. Makine öğrenmesi bilgisayarın insan öğrenme yapısına benzer “öğrenme” işlemini sağlayacak algoritma ve yöntemlerinin geliştirilmesi üzerine çalışan bir alandır[6]. Makine öğrenmesinde kullanılan birçok öğrenme yöntemi vardır. Bunlar ana başlık olarak gözetimli ve gözetimsiz öğrenme olarak sınıflandırılabilir.

Gözetimli öğrenmede, etiketlenmiş gözlemlerden öğrenme sürecidir. Etiketler, algoritmaya gözlemleri nasıl etiketlemesi gerektiğini öğretir. Gözetimli öğrenme Sınıflandırma(Classification) ve Regresyon(Regression) alt başlıklarında ayrılmaktadır. Sınıflandırma, her bir gözleme bir kategori/sınıf ataması yapar. Örneğin, sayı değeri hesaplama pozitif/negatif sayı olarak sınıflandırma bu yapıya örnek olarak gösterile bilinir. Sınıflar ayrıktır ve birbirlerine yakın/uzak olmaları gibi bir durum söz konusu değildir. Regresyon, her gözlem için öğrendiklerine bakarak reel bir tahmin yapar. Örneğin bir semtteki evlerin fiyatına bağlı olarak aynı semtteki bir evin fiyatı tahmin etmesi regresyona örnek olarak gösterile bilinir.

Gözetimsiz öğrenme, etiketsiz gözlemlerden öğrenme sürecidir. Algoritmanın kendi kendine keşifler yapması, görünmeyen örüntüleri keşfetmesi beklenir. Gözetimsiz öğrenme alt başlık olarak Kümeleme(Clustering) ve Boyut Azaltımı(Dimensionality Reduction) olarak ayrılabilir. Kümeleme, gözlemleri homojen bölgelere ayırır. Örneğin bir gruptaki sadece öğrenci gruplarını tespit etmek için kullanıla bilinir. Sınıflamaya benzer olmasına rağmen farkı kümelemede yakınlık aranır. Boyut azaltımı, gözlemlerin mevcut özellik sayısını az ve öz hale indirir, bize en iyi öğrenme imkânı sunar. Bu yapıya örnek olarak bir tahlildeki gereksiz verilerin ortadan kaldırılıp spesifik hastalığa ait verilerin tutulması buna örnek olarak gösterile bilinir.

Gözetimli ve Gözetimsiz öğrenme dışında Yarı Gözetimli Öğrenme, Ödüllü Öğrenme, Genetik algoritmalar ve Yapay Sinir Ağlarıyla da öğrenme yapabiliriz. Makine öğrenmesinde kullanılan terimler şu şekildedir;

Eğitim Verisi: Giriş olarak verilen veriler ve eğitilmenin sonucunda ortaya çıkan çıktı

vektörlerini içerir aynı zamanda davranışlı öğrenmede kullanılmaktadır.

Çapraz Doğrulama: Eğitmek için kullanacağımız veriler kendi içinde kümelere

ayrılır ve bunlardan bir alt kümeyi eğitim diğerlerini doğrulama yapma için seçeriz. Bu yaptığımız işlemler çapraz olarak alt kümeler için yinelenir.

(15)

5

Gürültü: Yapay zekânın bir parçası olan makine öğrenmesinde önceliklerimizden biri

gürültüyü azaltmayı çalışmaktadır. Gürültü anlamsız konuyla ilgisi olmayan verilerdir.  Aşırı Beslenme: Sahip olunan verinin aşırı küçük veya büyük olması durumuna aşırı

beslenme denir. Örneğin gürültü bu duruma sebep olabilir.

2.2. Yapay Sinir Ağları

Yapay Sinir Ağları(YSA), insan beyninin öğrenerek yeni bilgiler elde edebilmesinden esinlenerek geliştirilen bilgisayar sistemidir. 20. yüzyılın ilk yarısından itibaren yapay zekânın bir dalı olarak araştırmacıların ilgi duydukları konulardan biri olmayı başarmış ve 1970’lerden sonra hızla önem kazanmıştır. İlk Yapay sinir ağı modeli 1943’de W. McCulloch ve W.Pitts tarafından önerilmiştir. McCulloch ve Pitts, insan beyninin hesaplama yeteneğinden esinlenerek, basit bir sinir ağı modeli geliştirmişlerdir[7].Yapay sinir ağları sınıflama, kümeleme, desen uyumu, fonksiyon yaklaşımı, tahmin, kontrol, optimizasyon ve arama çalışmalarında kullanılmaktadır.

Üretim alanında, ürün kalite ve kontrolünde, eğlence alanında reklam analizinde, sigortacılıkta, müşteri değerlendirilmesinde, endüstri alanında fabrika cihaz çalışma optimizasyonlarında, askeri alanda silah hedef tespitinde, sağlık da hastalıklı bölgenin tespiti gibi birçok alanda kullanılmaktadır.

Yapay Sinir Ağları aşağıdaki gibi yapılarına, öğrenme algoritmalarına ve öğrenme zamanına göre aşağıdaki gibi sınıflandırılmaktadır.

 Yapılarına Göre Yapay Sinir Ağları

o İleri Beslemeli Ağlar o Geri Beslemeli Ağlar

 Öğrenme Algoritmalarına Yapay Sinir Ağları

o Danışmalı Öğrenme

o Danışmansız Öğrenme

o Destekli Öğrenme

 Öğrenme Zamanına Göre Yapay Sinir Ağları

o Dinamik Öğrenme

o Statik Öğrenme

Yapay Sinir Ağları insanlardaki sinir sisteminin çalışma prensibine benzer şekilde çalışacak şekilde tasarlanmış olup adını buradan almaktadır. Bu yüzden yapay sinir hücreleri

(16)

6

de tıpkı biyolojik sinir ağları gibi verileri aldıkları ve işleyip bunları çıktı olarak verdikleri yapı bölümlerinden oluşmaktadır. Yapay sinir hücrelerinin yapısında bulunan bölümler:

 Girdi  Çıktı  Ağırlık  Toplama  Birleştirme Fonksiyonu X₁ X₂ X₃ w₁ w₂ w₃ Y F(x)=Y NET

Şekil 2.1. Yapay Sinir Hücresinin Yapısı

𝑁𝐸𝑇 = ∑𝑁 𝑋𝑖

𝑖=1 𝑊𝑖 (2.1)

Yapay sinir ağları girdi ile çıktı değerleri arasındaki fark aşağıdaki gibi hata fonksiyonu ile elde edilir[7,8].(𝑑𝑗: ℎ𝑒𝑑𝑒𝑓𝑙𝑒𝑛𝑒𝑛 𝑠𝑜𝑛𝑢ç, 𝑜𝑗: 𝑔𝑒𝑟ç𝑒𝑘𝑙𝑒𝑛𝑒𝑛 𝑠𝑜𝑛𝑢ç)

𝐸𝑝 = 12∑ (𝑑𝑗𝑝− 𝑜𝑗𝑝)2

𝑗 (2.2)

Ağırlıkları yeniden düzenlemek için hata fonksiyonunun farkı kullanılır. ∆𝑝𝑤

𝑗𝑖 = −(𝜕𝐸

𝑝

𝜕𝑤𝑗𝑖) (2.3)

Burada “öğrenme oranı” n sabiti herhangi bir değer seçilebilir. Ağırlık yeniden revizesi; 𝑤𝑖𝑗(𝑡 + 1) ≅ 𝑤𝑖𝑗(𝑡) + 𝑛𝛿𝑗𝑖𝑖 (2.4) şeklinde yazılır. Burada, 𝑤𝑖𝑗(𝑡) ağırlık, 𝑖𝑖: 𝑖 düğümünün sonuç değeri olabileceği gibi bir giriş, 𝛿𝑗: 𝑗 düğümünün hata terimi olabilir. Bir çıkış düğümü için hata terimi (𝛿𝑗);

𝛿𝑗 ≅ 𝑜𝑗(1 − 𝑜𝑗)(𝑑𝑗− 𝑜𝑗) (2.5) olarak elde edilir.𝑗 düğümü bir gizli düğüm olmak üzere hata terimi (𝛿𝑗);

(17)

7

𝛿𝑗 = 𝑜𝑗(1 − 𝑜𝑗) ∑ 𝛿𝑘 𝑘𝑤𝑗𝑘 (2.6) olarak düzenlenir. Bir “moment” teriminin (𝛼) eklenmesi ile ağırlık değişimleri üzerine etki yapabilir[8].

𝑤𝑖𝑗(𝑡 + 1) ≅ 𝑤𝑖𝑗(𝑡) + 𝑛(𝑑𝑗− 𝑜𝑗)𝑖𝑖 + 𝛼(𝑤𝑖𝑗(𝑡) − 𝑤𝑖𝑗(𝑡 − 1)) (2.7) Yapay sinir ağları 3 katmandan oluşur. Bunlar:

 Giriş katmanı,  Ara (gizli) katmanı,  Çıkış katmanıdır. Giriş Katmanı Ara Katmanlar Çıkış Katmanı Bağlantı Hücre

Şekil 2.2. Yapay Sinir Ağının Yapısı

Giriş Katmanı: Konuyla ilgili verilerin dışardan girdi olarak alındığı katmandır. Genellikle bu katmanda veri üzerinde bir işlem uygulanmaz ve kendinden sonraki katmanlara aktarılır.

Ara (Gizli) Katman: Bu katmanda hesaplama karmaşıklığını ve zamanını olumlu ve olumsuz etkileyebilecek durumlar söz konusudur. Gizli katmanlar yapay sinir

(18)

8

ağlarında birden fazla olabileceği gibi hiç olmaya da bilir. Ayrıca birden fazla gizli katmanı olan ağlarda katmanların kendi içindeki nöron sayıları da farklı olabilir. Bu durum karmaşıklığı artırmasına rağmen daha zor görünen problemlerde çözümde kullanılabilirler.

Çıkış Katmanı: Gizli katmandan aldığı bilgilerin çıktılarını veren katmandır.

2.3. Derin Öğrenme Yapısı

Derin öğrenme yapısı temel olarak yapay sinir ağlarından türemiş olsada yapısal olarak farklılık göstermektedir. Derin öğrenmenin hesaplama yapısı YSA hesaplamalarına dayanmaktadır. Klasik YSA yaklaşımlarına kıyasla daha iyi başarılar elde edilen bir yöntemdir. Yakın zamana kadar, çoğu makine öğrenimi ve sinyal işleme teknikleri sığ yapılı mimarilerden oluşmaktaydı. Bu mimariler yapı olarak en çok bir veya iki kat doğrusal olmayan özellik dönüşümü içermektedir. Bu sığ mimarilere örnek olarak Gaussian Mixture Models(GMMs), doğrusal veya doğrusal olmayan dinamik sistemler, Conditional Random Fields(CRFs), maksimum entropi(MaxEnt) modelleri, SVM’ler, Logistic Regression, Kernel Regression, Multi Layer Perceptrons(MLP) ve tek bir gizli katman içeren Extreme Learning Machines (ELMs)[9-12]. Sığ mimariler, basit veya iyi sınırlandırılmış problemleri çözmede başarı göstermiştir ancak sınırlı modelleme ve temsil gücü; insan konuşması, doğal ses ve dil işleme, görüntü ve görsel sahneleri içeren daha karmaşık gerçek dünya uygulamalarıyla uğraşırken zorluklara neden olmuştur[13].

Bununla birlikte, insan bilgi işleme sistemi örneğin; ses veya görüntü gibi karmaşık yapıları çıkarmada derin mimarilerin gerektiği ve sığ mimarilerin yeterli olmadığı görülmektedir. Örneğin, insanlarda görme sistemi katmanlı hiyerarşik yapılardan oluşmaktadır [14]. Bu yapı benzerliği modellemede ve çözümlemede derin mimarilerin daha kolay yapılacağını göstermiştir. Deep Neural Networks(DNN) olarak adlandırılan birçok gizli katmana sahip ileri besleme ağları (Feed-Forward Neural Netwoks) veya MLP’ler, derin bir mimariye sahip modellerin ilk örnekleridir. Şekil 2.3. bu derin ağlara ait çeşitli katman ve model yapısı gösterilmiştir.

(19)

9 Şekil 2.3. Derin Ağlara ait Çeşitli Katman ve Model Yapısı

2.3.1. Üç Yönlü Sınıflandırma

Daha önce açıklandığı gibi Derin Öğrenme, doğası gereği hiyerarşik olan ve çok sayıda doğrusal olmayan bilgi işlem katmanlarının kullanılmasının ayırt edici özelliği ile oldukça geniş bir makine öğrenme teknikleri ve mimarileri sınıfını ifade eder. Mimarilerin ve tekniklerin örneğin sentez/üretim veya tanıma/sınıflandırma gibi kullanım amaçlarına bağlı olarak bu alandaki çalışmaların büyük bir kısmı üç ana sınıfa ayrılmaktadır:

Denetimsiz veya Üretken Öğrenen Derin Ağlar: Hedef sınıf etiketleri hakkında bilgi

mevcut olmadığında, desen analizi ya da sentez amaçlı gözlenen veya görülebilir verilerin yüksek dereceli korelasyonunu yakalamayı amaçlayan derin öğrenme ağıdır. Literatürlerde denetlenmeyen özellik ve temsili öğrenme gibi derin ağlar kategorisini ifade eder. Üretken mod da kullanıldığında, ilişkili sınıfların ortak istatiksel dağılımlarını karakterize etmek için bilinen verinin bir parçası olarak da kullanılabilir. Sonraki durumda Bayes kuralının kullanımında bu türden bir üretim ağını öğrenme için ayırt edici bir yapıya dönüştürebilir.

(20)

10

Denetimsiz öğrenme, öğrenme sürecindeki göreve özel denetim bilgilerinin (örneğin hedef sınıf etiketleri) kullanılmamasını ifade eder. Bu kategorideki birçok derin ağ RBM, DBN, DBM, genelleştirilmiş denoising autoencoders ve üretken modeller gibi ağlar kullanılmaktadır. Bununla birlikte bazı derin ağlar, seyrek kodlama ağları ve orijinal derin otokodlayıcılar gibi kolayca örneklenemez dolayısıyla üretken değildir. Üretken veya Denetimsiz derin ağların çeşitli alt sınıfları arasında enerji tabanlı derin modeller en yaygın olanıdır.

Denetimli Öğrenen Derin Ağlar: Verinin veya verilerin sınıflandırılması amacı için

doğrudan ayrımcı güç sağlamak için tasarlanmış olup genellikle bilinen veriler üzerinde koşullandırılmış sınıfların sonraki gelen veri veya verilerin dağılımını karakterize etmeyi amaçlayan derin öğrenme yöntemidir. Hedef etiket verileri, bu tür denetlenen öğrenme için her zaman doğrudan veya dolaylı formda mevcuttur. Ayrıca ayrımcı derin ağlar olarak da adlandırılır.

Hibrit Derin Ağlar: Hibrit derin ağlar hem üretken derin ağlar hem de ayırt edici olarak

isimlendirilen denetimli öğrenen yapısını barındıran derin ağ yapısıdır. Hedefin, genellikle üretken veya denetlenmeyen derin ağların sonuçlarıyla, önemli bir şekilde desteklendiği yapılarda bu derin öğrenme ağı kullanılır. Hedef denetlenen öğrenme için ayırt edici kriterler, denetimsiz veya üretken derin ağlardaki herhangi birindeki parametreleri tahmin etmek için de kullanılabilmektedir.

Geleneksel iki yönlü sınıflandırma, denetimsiz ve denetimli öğrenim için derin ağlar arasındaki bazı önemli farkları işaret etmektedir. Bu iki öğrenimin karşılaştırılması, derin denetimli öğrenme modeli DNN gibi genellikle eğitmek ve test etmek, daha esnek bir yapıda oluşturma ve daha karmaşık sistemlerin (örneğin, yaklaşık çıkaram ve öğrenme gibi loopy belief propagation daha etkilidir) uçtan uca öğrenimi için daha uygundur. Öte yandan özellikle denetlenmeyen öğrenme modellerinin, özellikle olasılıklı üretken olanların yorumlanması, yapı bilgisinin daha kolay oluşturulması ve yerleştirilmesi bu yapılarda belirsizlikle başa çıkmasını basitleştirmiş olmakta ancak genellikle çıkarımda ve karmaşık öğrenme için zorlaşmaktadır. Bu ayrımlar aynı zamanda bu monograf boyunca kabul edilen üç yollu sınıflandırmada da korunmaktadır. Aşağıda denetimli öğrenen derin ağlar, denetimsiz/üretken öğrenen derin ağlar ve hibrit derin ağlar dahil olmak üzere çeşitli derin öğrenme yöntemleriyle bu derin öğrenme mimarileri anlatılmaktadır.

(21)

11

2.4. Derin Öğrenme Mimarileri ve Terminolojileri 2.4.1. Deep Learning(Derin Öğrenme)

Hiyerarşik denetimli mimarilerdeki birçok bilgi işleme aşamalarının denetlenmeyen özellik öğrenimi ve model analizi / sınıflandırması için kullanıldığı bir makine öğrenme tekniği sınıfıdır. Derin öğrenmenin esası, üst düzey özellikler veya faktörlerin alt düzeydeki özelliklerden tanımlandığı, gözlem verilerinin aşamalı olarak özelliklerini veya temsillerini hesaplanmasına dayanmaktadır. Derin öğrenme yöntemleri ailesi; sinir ağları, aşamalı olasılık modelleri ve denetlenmeyen ve denetlenen özellik öğrenme algoritmalarını kapsamaktadır ve giderek daha zengin hale gelmektedir[13].

2.4.2. Derin İnanç Ağları(Deep Belief Network)

Geofry HINTON tarafından sunulan Derin İnanç Ağları(DBN), Sınırlı Boltzmann Makinelerinin(Restricted Boltzmann Machines-RBM) yığını olarak tasarlanmıştır. Gizli değişkenlerin katmanlarından oluşan olasılıksal üretken bir modeldir. Derin inanç ağları mimarileri genel olarak görüntü tanıma ve üretme konularında uygulanmaktadır. Salakhutdinov ve Hinton, dokümanlara DBN kullanarak büyük bir belge veri kümesinde kelime-sayısı vektörleri elde etmişlerdir[15].

2.4.3. Derin Nöron Ağlar(Deep Neural Network-DNN)

Ağırlıkları tamamen bağlı olan ve çoğu zaman (her zaman bağlı olmamakla birlikte)

denetimsiz veya denetimli bir ön eğitim tekniği kullanılarak başlatılan birçok gizli katmana sahip bir mimaridir.

2.4.4. Derin Oto-Kodlayıcılar(Deep Auto-Encoders)

Diabola ağı olarak adlandırılan Oto-Kodlayıcıların(Auto Encoders-AE) denetimsiz öğrenme için kullanılan özel bir yapay sinir ağı mimarisidir[16]. AE, bir veri seti üzerinde boyut indirgemeyi amaçlar. AE, kabaca girdi verisinin indirgenmiş yapısından en iyi özelliklerin öğrenilmesi hedefleyen bir ileri beslemeli sinir ağıdır[17].

2.4.5. Boltzmann Makineleri(Boltzmann Machines-BM)

Boltzmann Makineleri, stokastik tekrarlayan sinir ağı modelidir. Boltzmann makineleri Hopfield ağlarının stokastik üretken karşılığı olarak görülür. Bu yapı, iç temsilleri öğrenebilen ilk sinir ağlarındandır.

(22)

12

2.4.6. Sınırlı Boltzmann Makineleri(Restricted Boltzmann Machines-RBM)

Sınırlı Boltzmann Makineleri girdi seti üzerinde olasılık dağılımını öğrenebilen üretken bir rastgele yapay sinir ağıdır. RBM, Boltzmann makinelerinin bir türüdür. Görünür ve gizli olmak üzere aralarında simetrik bağlantı bulunan iki parçalı graflardan oluşur. Bir graf içindeki düğümlerde kendi aralarında bağlantı bulunmaz[18].

2.4.7. Tekrarlayan Sinir Ağlar(Reccurent Neural Networks-RNNs)

Tekrarlayan Sinir Ağları, giriş veri dizisinin uzunluğu kadar derinliği büyük olabilen, denetlenmeyen(gözlemlenen) öğrenme için derin ağların bir başka sınıfı olarak düşünülebilir. Denetimsiz öğrenme kullanımında, önceki veri örneklerini kullanarak gelecekteki veri dizisini tahmin etmek için RNN kullanılır ve öğrenme için ilave sınıf bilgisi kullanılmaz. RNN, ses veya metin gibi verilerin modellemesi için çok etkilidir ancak son zamanlarda kullanılmamıştır. Çünkü uzun ardışık yapıları yakalamak ve eğitmek zordur[13].

2.4.8. Tanımalı Tekrarlayan Sinir Ağlar(Recognizing Reccurent Neural Networks-rRNN)

Tanımlamalı tekrarlayan sinir ağları(rRNN), geleneksel bir RNN'nin sahip olmadığı,

örneğin dinamik uyaranların ve sağlamlığın başlangıç koşullarına ve gürültüye hızlı bir şekilde çözülmesi gibi birkaç istenen özelliğe sahiptir. Ayrıca, dinamik girişler için bir tahmin kodlama şeması uygular. RNN'lerin Bayes inversiyonunun hem bir beyin fonksiyonu modeli hem de bir makine öğrenme aracı olarak kullanışlıdır. İnsan kinematiğinin çevrimiçi kod çözme (yani tanıma) için bir uygulama ile rRNN kullanımını göstermektedir [19].

2.4.9. Konvolüsyonel Sinir Ağları(Convolution Neural Network-CNN)

Konvolüsyonel Sinir Ağları(Convolutional Neural Network-CNN) çok katmanlı algılayıcıların (Multi Layer Perception-MLP) bir türüdür. Hayvanların görme mekanizmasından esinlenilmiştir. Bir nöronun kendi uyarı alanından uyaranlara verdiği cevap olarak ortaya çıkmıştır[20]. CNN algoritmaları görüntü ve ses işleme alanı başta olmak üzere doğal dil işleme(Neuro Lingustic Programming-NLP), biyomedikal gibi birçok farklı alanda uygulanmaktadır. Özellikle görüntü işleme alanında şuana kadar birçok sonuç elde edilmiştir. MNIST veri seti üzerinde, Cişeran yaptığı çalışmada CNN ile hata oranı %2’lere kadar düşürmeyi başarmışlardır[21].

(23)

13

Konvolüsyon İşlemi: Bir konvolüsyon katmanın asıl amacı giriş verilerinden özellik

çıkarmaktır. Konvolüsyon iki fonksiyonun matematiksel işlemidir. CNN yapısında konvolüsyon işlemi basitçe filtre olarak adlandırılan kernel(çekirdek) fonksiyonunu ana veri(görüntü) üzerinde her bir eleman kaydırılmasıdır. Her pencerede kaydırma işlemi, elemanların filter matrisi ile birimsel çarpımının toplamı şeklindedir. Tüm görüntü boyunca pencere kaydırılarak özellik haritası olarak adlandırılan konvolüsyon işleminin çıktısı üretilir.𝑓 ana veri(resim), ℎ kernel olmak üzere konvolüsyon işlemi formül 2.8’de gösterilmiştir. 𝑓 ∗ ℎ = ∑ ∑ 𝑓(𝑘, 𝑙)ℎ(𝑖 − 𝑘, 𝑗 − 𝑙) 𝑙 𝑘 (𝟐. 𝟖) 𝑓 = [ 𝑓1 𝑓2 𝑓3 𝑓4 𝑓5 𝑓6 𝑓7 𝑓8 𝑓9] ℎ = [ ℎ123456789] 𝑓 ∗ ℎ = 𝑓19+ 𝑓28+ 𝑓37+ 𝑓46+ 𝑓55 + 𝑓64+ 𝑓73+ 𝑓82+ 𝑓91

(24)

14 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 0 1 1 1 0 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 0 1 0 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 2 3 2 3 4 3 2 3 2 3 4 3 2 3 2 3 4 3 2 4 3 2 3 2 3 3 RESİM RESİM RESİM RESİM RESİM RESİM RESİM RESİM RESİM RESİM KERNEL(FİLTER) KONVOLÜSYON EDİLMİŞ ÖZELLİK KONVOLÜSYON EDİLMİŞ ÖZELLİK KONVOLÜSYON EDİLMİŞ ÖZELLİK KONVOLÜSYON EDİLMİŞ ÖZELLİK KONVOLÜSYON EDİLMİŞ ÖZELLİK KONVOLÜSYON EDİLMİŞ ÖZELLİK KONVOLÜSYON EDİLMİŞ ÖZELLİK KONVOLÜSYON EDİLMİŞ ÖZELLİK KONVOLÜSYON EDİLMİŞ ÖZELLİK

Şekil 2.4. Konvolüsyon İşlemi

Yapay bir nöron girdiler, eğim ve çıktıdan oluşur. Çıkış fonksiyonu herhangi bir aktivasyon fonksiyonu olabilir ama genel olarak sigmoid ya da Rectified Linear Unit(ReLU) tercih edilir. Şekil 2.5.’te bu nöronun konvolüsyonel yapısı ve 𝑓 fonksiyonu formül 2.9.’de gösterilmiştir.

(25)

15 Nöron hücresinin Aksonu

Sinaps Dendrit Vücut hücresi Çıkış Aksonu Aktivasyon Fonksiyonu(f) X0 W0 w1x1 w2x2 f

Şekil 2.5. CNN’de Nöron Yapısı

𝑓 = ∑ 𝑤

𝑖 𝑖

𝑥

𝑖

+ 𝑏

(2.9) Bu 𝑓 fonksiyonunu tam olarak açarsak CNN, bir veya daha fazla konvolüsyonel katman, alt örnekleme (submapling) katmanı ve bunun ardından standart çok katmanlı bir sinir ağı gibi bir veya daha fazla tamamen bağlı katmandan oluşmaktadır ve bu yapı Şekil 2.6.’te gösterilmiştir. GİRİŞ Konvolüsyonlar Altörnekleme (Subsampling) Konvolüsyonlar Altörnekleme (Subsampling) Fully Connected ÇIKIŞ Özellik Haritaları (Feature Maps) Özellik Har. Özellik Har. Şekil 2.6. CNN Mimarisi

CNN’de konvolüsyon işlemi göz önüne alındığında üç tasarım yapısı vardır: kernel boyutu, kernel sayısı ve adım. Bu yapılar çıkış verilerinin şekli ve bellek kullanımı üzerinde etkisi vardır.

(26)

16

Kernel boyutu, konvolüsyon katmanında her bir nöronun çıktısını belirler. Kernel değerleri modelin ağırlıklarını(denklem 2.9.’da) temsil eder. Örneğin, kernel boyutu 3x3 ise, çıktısı giriş katmanından 9 farklı düğümle bağlantılıdır. Genellikle, çekirdek boyutu giriş veri boyutu ile aynıdır. Giriş tek kanallı gri tonlamalı bir görüntü ise, kernelde 1 kanallıdır. Giriş 3 kanallı RGB renkli görüntüyse, kernel 3 boyutlu bir yapı olarak seçilir. Çekirdek boyutu çok küçükse(örneğin 2x2) yeterli özellikleri ayıklayamayacaktır. Genel olarak 3x3 ve 5x5 kernel kullanılır.

Kernel sayısı çok önemli bir tasarım parametresidir çünkü odaklanılacak farklı özelliklerin sayısını belirler. Kernel sayısı küçükse, ağ verilerindeki bazı parametreleri kaçırabilir. Öte yandan kernel sayısı yinelenecek(2 kat) ya da tekrarlayacak kadar çok olmamalıdır. Tekrarlanan filtrelere ek olarak çok sayıda filtre bellek sorunu getirir çünkü her bir ilişkili görüntü bilgisayarın belleğinde yer kaplar.

Her kernel giriş görüntüsü üzerinde kaydırıldığında(adım), bir özellik haritası oluşturur. Bu çıkış görüntüleri, tüm kernellerin çıktılarını oluşturduktan sonra birleştirilir. Giriş görüntüsü 2 boyutluysa çıktıları 3 boyutlu tensör olacaktır. Giriş görüntüsü 3 boyutlu veri ise çıktıları 4 boyutlu tensör olacaktır. Bu ekstra boyut birçok filtrenin kullanılmasından kaynaklanmaktadır. Tensörun çıktı derinliği ile kernel(filtre) derinliği aynı olmalıdır. Örneğin 30x30 ebadındaki bir giriş görüntüsü ve 3x3 boyutunda bir kernel düşünün. Konvolüsyon sonucu ortaya çıkan boyut 28x28’dir. Yine de, giriş tensörüne uygulanan birden fazla kernel vardır. Sonuç olarak, çıkış tensörü boyutu Kx28x28 olur. Bir sonraki konvolüsyon işlemi için, kernel boyutu KxNxM olur. CNN model gösteriminde, bir boyut genellikle K@NxM şeklinde gösterilir.

Striding işlemi, kernel(filtrenin) giriş hacminin etrafında nasıl hareket ettiğini kontrol eder. Genellikle, kernel bir seferde giriş görüntüsü 1 adım(düğüm) boyutu boyunca kayar. Yine de, çıkış tensörü boyutunu kontrol etmek için, adım numarasını(kaymasını) değiştirebilir. Adım miktarı 2 alınırsa, kernel 2 düğüm kaydırarak bir sonraki pencereye gider. Örneğin, 64x64 boyutunda bir görüntü ve 3x3 boyutunda bir kernel düşünün; eğer adım 1 ise, çıktı görüntüsü 62 olacaktır. Adım 2 ise, çıktı görüntüsü 31x31 olacaktır. Konvolüsyon işleminde, çıktı tensörlerinin büyüklüğünü giriş hacmi ile aynı tutmak için giriş tensörüne padding(dolgu) eklenebilir. Padding büyüklüğü genellikle kernelin boyutuna göre belirlenir. Örneğin, kernel boyutu 3x3 ise görüntü etrafına 1 piksel yeterlidir. Kernel boyutu 5x5 ise, görüntü etrafında 2 piksel kullanılabilir. Padding işlemi genel olarak sıfır olarak veya kenar pikselliyle aynı değer olarak seçilebilir. Bir padding örneği Şekil 2.7.’de gösterilmiştir. 32x32

(27)

17

bu resme 5x5 kernel uygulanırsa çıktı tensörü boyutu padding’den dolayı yine 32x32 olacaktır.

32x32

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Şekil 2.7. Padding Örneği

Herhangi bir konvolüsyon katmanı için çıktı büyüklüğünü hesaplama denklemi:

𝑂 =

(𝑊−𝐾+2𝑃)𝑆

+ 1

(2.10)

Genişlik ve yükseklik boyutu genelde eşit olmaktadır. Denklem 2.10’da 𝑂 çıkış boyutu(genişlik/yükseklik), 𝑊 giriş resmi boyutu(genişlik/yükseklik), 𝐾 kernel(filtre) boyutu, 𝑃 padding(dolgu) ve 𝑆 stride(adım kayma)’dır.

Pooling Layer(Havuzlama Katmanı): Alt-örnekleme(Subsampling) olarak da adlandırılan

pooling katmanı, ağdaki parametrelerin ve hesaplamaların sayısını azaltmak için konvolüsyon katmanının çıktısının mekânsal boyutunu küçültür. Ayrıca aşırı uyumu kontrol eder. Pooling katmanı genellikle iki konvolüsyon katmanı veya tam bağlı katmanlar arasında(fully connected layers) arasında kullanılır. Bu katman çoğunlukla maksimum havuzlama(Max pooling) ve ortalama havuzlama(Average pooling) olmak üzere iki yöntemi kullanır. Belirli bir giriş penceresinde, max pooling pencere içindeki maksimum değerleri alırken average pooling penceredeki ortalama değerleri alır. Pooling işleminde pooling boyutu ve stride(adım) olmak üzere iki önemli parametresi vardır. Şekil 2.8.’de pooling örneği gösterilmiştir.

(28)

18

2

22

7

16

30 70

9 102

35

5

13

0

63

1

15 20

11 13

53 25

22 35

102 63

Max Pooling Average Pooling

Şekil 2.8. Pooling Örneği

Fully Connected Layer(Tam Bağlı Katman):Konvolüsyon ve havuz katmanları dikdörtgen

şekilli çıktılar üretir. Bu ağırlık matrisi çıktılar, vektör matrisine dönüştürülür. Örneğin her biri 5x5x3 vokselin 64 özellik eşlemesi katmanı varsa, tam bağlı katmanda(fully connected layer) 4800x1 vektöre dönüştürülür(5x5x3x64=4800). Tam bağlı katmandan önceki katman yüksek seviyeli özellikleri temsil eder. Bu katman yardımıyla, bu yüksek seviyeli özellikler gizli katmanların ağırlıkları ile çarpılabilir.

Hiper Parametre Ayarlamaları ve Seçimleri: Makine öğrenmesi modelleri oluşturulurken,

modelde kullanılan algoritma ya da tekniklerin ne olması gerektiğine tasarımcının karar vermesi gereken bazı parametreler de vardır. Örneğin, K-NN sınıflandırması için k değerinin kaç seçilmesi gibi. Benzer şekilde derin öğrenmede modeli tasarlarken katman sayısına, dropout değerine ihtiyaç olup olmayacağına modeli tasarlayan kişi karar vermelidir ve hangisinin daha iyi sonuç vereceği kesin değildir. Bu veri setine bağlı olarak değişiklik gösteren parametrelere hiper parametre denmektedir. Hiper parametreler genel olarak iki kategoriye ayrılmaktadır; model hiper parametreler ve iyileştirici(optimizer) hiper parametrelerdir. Model hiper parametreler modelin yapısında yer alan değişkenlerdir.

(29)

19

Aktivasyon fonksiyonları, dropout, katman sayısı ve modele özgü hiper parametrelerdir. İyileştirici(optimizer) hiper parametreler ise modelin yapısından ziyade eğitim ve optimizasyon yapılarında olan değişkenlerdir. Öğrenme oranı(learning rate), mini-batch boyutu ve epoch(devir sayısı) içermektedir.

Dropout Layer(Seyreltme Katmanı): Ağ çok büyük verilerle eğitim yaptığında

bazen bu verilerden kaynaklı ezberleme yapar. Ağın bu ezberlemeyi engellemek için önceden belirlenmiş ağdaki bazı nöronları kaldırma işlemidir[22]. Seyreltme katmanında ağ kendisini modifiye eder ancak cost function(maliyet fonksiyonunu) değiştirmez. Genelde %50(0,5) ile %20(0,2) arasında nöron kaldırılır ve kaldırılan nöronlar ağa etki etmez. Aşağıda Şekil 2.9.’da Dropout kullanılmış ve kullanılmamış ağ gösterilmiştir.

X X

X X

X X

Dropout Kullanılmamış Ağ Dropout Kullanılmış Ağ Şekil 2.9. Dropout Kullanılmamış ve Kullanmış Ağ Yapısı[23]

Aktivasyon Fonksiyonları: Aktivasyon fonksiyonları çok katmanlı ağlarda lineer

ifadeleri non-lineer ifadelere dönüştürmek için kullanılır. Katmanlarda 𝑦 = 𝑓(𝑥, 𝑤) şeklinde lineer fonksiyonumuzda matris çarpımı yapılıp her nöronun ağırlığı hesaplandıktan sonra non-lineer olmayan bir değere dönüştürür. Gizli katmanlarda öğrenme işlemi geri türevle alındığından gizli katmanların çıktısı bazı aktivasyon fonksiyonları ile normalize edilmektedir. Yaygın aktivasyon fonksiyonları: Sigmoid, Softmax, ReLU, TanH, SoftPlus, ELU, PReLU, Swish’dir. En yaygın kullanılan ReLU, Softmax ve Sigmoid’dur.

(30)

20 Tablo 2.1. Aktivasyon Fonksiyonları

Fonksiyon Fonksiyon Grafiği

S

tep

Bir eşik değeri alarak ikili bir sınıflandırma çıktısı üretir. ŷ = {1 𝑒ğ𝑒𝑟 𝑤𝑥 + 𝑏 ≥ 00 𝑒ğ𝑒𝑟 𝑤𝑥 + 𝑏 < 0

R

eLU

Doğrultulmuş lineer birim

(Rectified Linear Unit-ReLU)

doğrusal olmayan bir

fonksiyondur. ReLU fonksiyonu negatif girdiler için 0 değer alırken, x pozitif girdiler için x değerini almaktadır.

𝑓(𝑥) = {𝑥 𝑒ğ𝑒𝑟 𝑥 ≥ 00 𝑒ğ𝑒𝑟 𝑥 < 0

S

igm

oid

Sigmoid aktivasyon fonksiyonu sürekli ve türev alınabilir bir

fonksiyondur. Bu fonksiyon

girdi değerinin her biri için 0 ile 1 arasında değer üretir. İkili sınıflandırma için kullanılır ve genelde son katmanda bulunur.

𝑓(𝑥) = 1 1 + 𝑒−𝑥 0 1 2 -10 -8 -6 -4 -2 0 2 4 6 8 10 Ste p Çık tıs ı Girdi Değeri

Step

step 0 2 4 6 8 10 -1 0 -7 ,5 -5 -2 ,5 0 2,5 5 7,5 10 ReLU Çık tıs ı Girdi Değeri

ReLU

ReLU 0 0,2 0,4 0,6 0,8 1 -10 -7,5 -5 -2,5 0 2,5 5 7,5 10 Sig m oid Çık tıs ı Girdi Değeri

Sigmoid

Sigmoid

(31)

21

S

oftma

x

Çoklu sınıflandırma problemleri için kullanılan bu fonksiyon, verilen her bir girdinin bir sınıfa ait olma olasılığını gösteren

[0,1] arasında çıktılar üretmektedir. 𝑓(𝑥𝑖) = 𝑒𝑖𝑥 ∑ 𝑒𝑘 𝑖𝑥 𝑖 , 𝑖 = 0,1,2, … , 𝑘 Ta nh

Yapay sinir ağlarının ilk

zamanlarında meşhur olan bu

aktivasyon fonksiyonu,[-1,1]

aralığında çıktı üreten doğrusal olmayan bir fonksiyondur.

𝑓(𝑥) = tanh(x) = 2

1 + 𝑒−2𝑥− 1

Şekil 2.10. Yaygın Kullanılan Aktivasyon Fonksiyonları[24]

Mini-Batch Boyutu: Yapay sinir ağlarında tüm veriler nörondan aynı anda işletilerek o ağı eğitmekte ve nöron ağırlıkları buna göre hesaplanmaktadır. Buda zaman ve bellek açısından maliyetli ve zor bir iştir. Çünkü öğrenmenin her iterasyonunda geriyeyayılım(backpropagation) işlemi ile ağ üzerinde geriye dönük olarak

0 0,02 0,04 0,06 0,08 -1 0 -7 ,5 -5 -2 ,5 0 2,5 5 7,5 10 So ft m ax Çık ış ı Girdi Değeri

Softmax

Softmax -1,5 -1 -0,5 0 0,5 1 1,5 -1 0 -7 ,5 -5 -2 ,5 0 2 ,5 5 7 ,5 10 E ks en B lığ ı Eksen Başlığı

Tanh

Tanh

(32)

22

gradyan(gradient descent) hesaplaması yapılmakta ve ağırlık(w) değerleri bu şekilde güncellemektedir. Bu hesaplama işlemi veri sayısına bağlı olarak o oranda kat kat artmaktadır. Bu yüzden ağın eğitim performansını artırmak ve belleği daha iyi kullanmak için tüm veri belirli gruplar halinde alınmakta ve küçük gruplar halinde işlem yapılmaktadır. Bu yönteme mini-batch denmektedir. Başka bir ifadeyle tasarlamış olduğumuz modelin eğitim ve test verilerinin modelden geçerken aynı anda kaç veriyi işleneceği anlamına gelmektedir. Ağa alınan küçük gruptaki veriler rastgele seçilmektedir. Model her bir mini-batch üzerinde ileri besleme işlemi gerçekleştirir ve hata değerini hesaplar. Daha sonra her bir mini-batch üzerinde geriyayılım kullanarak gradyan hesaplamalarını gerçekleştirir ve ağırlıkları günceller. Bu ağırlıkları hesaplamak için gradient descent kullanır. Genel olarak mini-batch boyutları hepsi aynı olup %1-%5 arasında ideal olarak seçilmektedir. %1’den küçük seçilirse gürültü çok fazla olmakta, %5’ten fazla seçilirse modelin eğitim değerleri düşmektedir.

Epoch(Eğitim Tur Sayısı): Derin öğrenmede model eğitilirken mini-batch’de

bildiğimiz gibi tüm veri tek seferde eğitilmez parça parça eğitilir. Her parça eğitimin sonunda geriyayılıma göre ağırlıklar hesaplanıp güncellenir. Epoch’da ise her bir devir tüm veri setinin ileriye ve geriye doğru(forward and backward) yöntemleri ile model tekrar eğitilip ağırlık güncellemeleri yapılır. Epoch sayısı az seçilirse model eksik öğrenir ya da çok seçilirse model aşırı öğrenir. Bu epoch sayısı tahmini olarak belirlenmekteydi fakat tensorflow desteğiyle earlystopping özelliği ile başarım istenilen seviyeye gelince otomotik olarak durdurulmaktadır.

Learning Rate(Öğrenme Hızı):Derin öğrenmede ağırlık parametresi güncellenmesi

geriyayılımla yapılmaktadır. Bu güncelleme geriye doğru türev alınarak farkın bulunması ve bu farkın learning rate parametresiyle çarpılması sonucu hesaplanmaktadır. Bu değer sabit değer ya da belirli düzeyde artan veya azalan şekilde ayarlanabilir olup 0,1 ile 0,000001 arasında seçilmektedir. Öğrenim hızı seçilirken çok yüksek seçilirse modelin eğitim verisinde çok etkilenmesine neden olmaktadır. Benzer durumda küçük değer olması modelin yavaş ilerlemesine ve öğrenimin çok uzun sürmesine neden olmaktadır. Bu yüzden genel olarak hedef ilk önce büyük değer kullanılıp eğitimi artırmak ve istenilen hata değerine yaklaştıkça öğrenme hızını düşürmektir.

Momentum Katsayısı(Momentum): Schoastic Gradient Descent gibi çok fazla

(33)

23

normalize edilip bu salınımlar azaltılmaktadır. Bu normalizasyon yöntemi momentum katsayısı ile yapılmaktadır. Bu teknikte yeni üretilen değeri olduğu gibi almak yerine, bir önceki değeri de momentum katsayısı oranında işin içine katarak yeni değer hesaplanır. Böylece gürültü ve grafikteki salınımlar azaltılarak daha hızlı bir yöntem oluşturulur. Genel olarak momentum veya momentum beta katsayısı 0,9 kabul edilmiş olup parametre aralığı 0,8 ile 0,99’dur.

Optimizasyon Yönteminin Seçimi: Mühendislikte optimizasyon, bir sistemde var

olan kaynakların(işgücü, zaman, kapital, süreçler, hammaddeler, kapasite, ekipman gibi) en verimli şekilde kullanılarak belirli amaçlara (maliyetin azaltılması, kârın artırılması, kapasite kullanımının en verimli kullanılması) ulaşmayı sağlayan bir teknoloji olarak tanımlanmaktadır. Derin öğrenme uygulamalarında öğrenme işleminin temelde bir optimizasyon problemi olduğu yukarıdaki optimizasyon tanımından anlaşılmaktadır. Derin öğrenmede optimizasyon fonksiyonu, doğrusal olmayan problemlerin çözümünde optimum değeri bulmak için kullanılan yöntemdir. Bu optimizasyon yöntemlerinin en yaygın olanları: Gradient Descent, Adam, Adamax, RMSProp, AdaGrad, Adadelta gibi optimizasyon algoritmaları kullanılmaktadır. Her optimizasyon fonksiyonunun diğerine göre artısı veya eksisi vardır. Kısaca özetlemek gerekirse aşağıdaki gibidir:

İki türü bulunan Gradient Descent’in; Numeric Gradient Descent yaklaşık sonuç vermekte yavaş çalışmakta olup uygulaması kolaydır. Analytic Gradient Descent ise hızlı çalışmakta ve tam sonuç vermekte olup hataya eğimlidir. Bu yüzden Analytic versiyonu ile hesaplama, Numeric’te ise kontrol edilmektedir.

Derin öğrenmede standart tanımlı olarak kullanılan yöntem ise Schoastic gradient descent olup diğer yöntemlere göre daha yavaş çalışmakta ve resim tanıma problemlerinde yeterli verimi sağlamamaktadır.

AdaGrad seyrek parametreler için büyük güncellemeler yaparken sık parametreler için daha küçük güncellemeler yapar. Bu nedenle resim tanıma gibi seyrek verilerde tercih edilir. AdaGrad öğrenme hızı(learning rate) algoritmaya bağlı olarak zamanla düşmektedir bu yüzden sistem bir süre sonra öğrenmeyi bırakır.

AdaGrad’in bu öğrenme hızı sıkıntısını RMSprop ve AdaDelta hız düşüsünü çözmüşlerdir.

(34)

24

Adam ise AdaDelta’ya benzer bir algoritmadır. AdaDeltadan farkı hiper parametre değişikleri olarak learning rate yanı sıra momentum değişiklerini de önbellekte saklar bir bakıma RMSprop ile momentumu birleştirir.

Lojistik Regresyon: Lojistik regresyon, sınıflandırma problemleri için kullanılan olasılıksal

ve doğrusal bir sınıflandırıcıdır. Girdi özelliklerini tutan bir vektörün, herhangi bir sınıfa ait olma olasılığı denklem 2.11.’da gösterilmiştir. 𝑥 girdisinin 𝑖. sınıfına ait olma olasılığı 𝜎(𝑧) ‘dir.

𝑦 = Sınıflandırıcı Sonucu, 𝑖 = Sınıf Numarası, 𝑥 = Girdi Değeri, 𝑤 = Ağırlıklar,

𝑏 = Bias, 𝑧 = Regrasyon Değeri 𝑃(𝑦 = 𝑖|𝑥, 𝑤, 𝑏) = 𝜎(𝑧)

𝑧 = 𝑤. 𝑥 + 𝑏 (2.11)

Lojistik regresyon modelde sınıflandırma gerçekleştirmek için ilk olarak hiper parametreleri ve girdileri tanımlar. Daha sonra önceden tanımladığımız modelde hata fonksiyonunu(Loss Function) kullanır ve hata fonksiyonun en aza indirgemek için modeli eğitir. Burada kullanılan hata fonksiyonu sınıflanma türüne göre değişmektedir. Denklem 2.12. ve 2.13’de bu fonksiyonlar tanımlanmıştır.

İkili sınıflandırma hata fonksiyonu(Sigmoid fonksiyonuna bağlı olarak);

𝐸(𝑤, 𝑏) = −𝑚1∑ (𝑦𝑚𝑖 𝑖. log(ŷ) + (1 − 𝑦𝑖). log(1 − ŷ)) (2.12) Çoklu sınıflandırma hata fonksiyonu(Softmax fonksiyonuna bağlı olarak);

𝐸(𝑤, 𝑏) = −𝑚1 ∑ ∑ (𝑦𝑚𝑖 𝑛𝑗 𝑖𝑗. log(ŷ𝑖𝑗)), ŷ = 𝜎(𝑧) (2.13)

Ağırlık Algoritması(Weight Algorithm): Ağırlık fonksiyonu(Weight Algorithm-w), hata

fonksiyonu ile birlikte hesaplandığını bahsetmiştik. Bu ağırlık fonksiyonu hesaplama işlemi adımları aşağıdaki gibidir.

(35)

25 1. Rasgele ağırlık(𝑤) değeri ata ve eğitime başla.

2. Her giriş değeri (𝑥1, 𝑥2, … 𝑥𝑛) için gerçek etiket değeri 𝑦 ve tahmini etiket çıktısı ŷ için öğrenme katsayısı(learning rate) 𝛼 bağlı olarak ile ağırlık 𝑤 ve bias 𝑏 değerlerini güncelle.

 Pozitif durum 𝑦 − ŷ = 1 ise;  For 𝑖 = 1 … 𝑛

o İf ŷ = 0 𝑎𝑛𝑑 𝑦 = 1: o 𝑤𝑖 = 𝑤𝑖 + 𝛼. 𝑥𝑖 o 𝑏𝑖 = 𝑏𝑖 + 𝛼

 Negatif durum 𝑦 − ŷ = −1 ise;  For 𝑖 = 1 … 𝑛

o İf ŷ = 1 𝑎𝑛𝑑 𝑦 = 0: o 𝑤𝑖 = 𝑤𝑖− 𝛼. 𝑥𝑖 o 𝑏𝑖 = 𝑏𝑖 − 𝛼  Sıfır durum 𝑦 − ŷ = 0 ise;

 Doğru etiket bir değişiklik yapma 3. Yukarıdaki adımları t zaman süresince tekrarla.

Gradyan İnişi(Gradient Descent): Gradyan inişi(Gradient Descent), sinir ağlarında

kullanılan en uygun ağırlık(w) ve bias(b) değerlerini bulmaya çalışan bir optimizasyon algoritmasıdır. Gradyan inişi, makine öğrenmesi alanında çok yaygın kullanılan bir yöntemdir. Çünkü hata oranını(E) en aza indirerek en düşük hata oranını bulmaya çalışır. Bunun içinde bu fonksiyonun türevini almaktadır. Elde edilen türev değeri negatif ise Gradyan yönünde güncelleme yapmaktadır. Gradyan inişi ile hata indirgeme adımları aşağıdaki gibidir.

1. Rasgele ağırlık(w) ve bias(b) ata ve eğiteme başla.

2. Her bir giriş değeri (𝑥1, 𝑥2, … 𝑥𝑛) için öğrenme katsayısı(learning rate) 𝛼 bağlı olarak ile ağırlık 𝑤 ve bias 𝑏 değerlerini güncelle (hata oranı(𝐸𝑖)).

For i=1…n İf 𝐸𝑖 ≤ 𝐸𝑖−1 𝑤𝑖= 𝑤

𝑖− 𝛼𝜕𝑤𝜕𝐸

(36)

26 𝑏′= 𝑏 − 𝛼𝜕𝐸

𝜕𝑏=b- 𝛼(𝑦 − ŷ)

3. Hata en aza indirgene kadar(𝐸𝑖 ≅ 0) tekrarla.

2.4.10. Tam Konvolüsyonel Sinir Ağları(Fully Convolution Neural Network-FCNN)

2014 yılında Jonathan Longi, Evan Shelhamer ve Trevor Darrell tarafından “Fully Convolutional Networks for Semantic Segmantation” adlı çalışmayla tam konvolüsyonen sinir ağları fikri ortaya çıkmıştır[25]. Bu yeni yöntemde piksel şekilli haritalamayı önerdiler. Yapı olarak CNN benzerlik göstersede katman ve bazı açılardan farklılık göstermektedir. CNN genel çerçeveden bakıp sınıflandırma yaparken FCNN ise her bir pikselin neye ait olduğunu bulup buna göre sınıflandırma yapmaktadır. Bir FCNN bu yüzden bütün görüntüleri işler ve olasılık haritaları oluşturur. Eğitim için uçtan uca uygulama yaptığı için yoğun olarak etiketlenmiş görüntüler gereklidir. Bir FCNN işlemiyle, giriş görüntüsüyle aynı boyut pikselde çıktılar üretir. Bunu yaparken CNN’deki gibi geriyayılım kullanır ve hata oranı piksel şekillidir. CNN benzerliği nedeniyle mevcut sınıflandırılmış ağları FCNN yapısına dönüştürülüp kullanılabilmesidir. Bu yüzden bir FCNN önceden eğitilmiş CNN modellerinden (AlexNET, VGG,…gibi) yararlanabilir. Bir CNN modelini FCNN’de kullanabilmek için CNN katmanlarındaki Tam Bağlı Katmanları(Full Connected Layer) 1x1 kernellere dönüştürmemiz gerekmektedir. Şekil 2.11.’de bu dönüşüm işlemi gösterilmiştir. Bu sayede giriş boyutuyla aynı boyutta çıktı ısı haritaları oluşturulmaktadır.

Şekil 2.11. Tam Bağlı Katmanları Dönüştürerek Isı Haritaları Oluşturma[25].

Bir görüntü sınıflandırmada tam bağlı katmanlar tamamen mekansal bilgileri göz ardı edip bütün görüntüler için özellik vektörleri oluştururken, tam konvolüsyon katmanları her piksel için özellik haritası oluşturur ve bu özellik haritasına bağlı olarak piksel tabanlı sınıflandırma yapar. Orijinal görüntü boyutlarını geri yüklemek için bu özellik haritası

(37)

27

tarafından dekonvolüsyon yapılır. Ağırlığa bağlı olarak bir dekonvolüsyon bir çift yönlü enterpolasyon görevi görür. Tam bağlı katmanlar dışında havuzlama(pooling) işlemi de sınıflandırma doğruluğunu artırırken mekansal bilgileri kısmen de olsa ihmal eder. Bu segmantasyonun mekansal doğruluğunu sınırlandırdığı için bir dejavantajdır. Bu yüzden FCNN bu havuzlama işlemini tersine çevirmek için FCNN-32, FCNN-16 ve FCNN-8 fikrini öne sürmüştür. Kayma(Stride) yaparak çıktı haritasını giriş boyutuna çevirip, kayma miktarları 32, 16 ve 8 alınmıştır ve bu işlemler özellik çıkarımı için hepsi son katmanda değil ara katmanlarda yapılmıştır. Bu yapı Şekil 2.12.’de gösterilmiştir[25].

RESİM CONV1 CONV2 POOL2 CONV3 POOL3 CONV4 POOL4 CONV5 POOL5 CONV6-7

POOL4 2X CONV7 4X CONV7 POOL3 2X POOL4 POOL1 32X TAHMİN EDİLEN EDİLEN ÖRNEKLEME(FCN-32s) 16X TAHMİN EDİLEN EDİLEN ÖRNEKLEME(FCN-16s) 8X TAHMİN EDİLEN EDİLEN ÖRNEKLEME(FCN-8s)

Şekil 2.12. FCN Model Katmanları

2.5. Derin Öğrenme Yaklaşımı ile Sınıflandırma

Derin öğrenme yaklaşımı ile sınıflandırma çalışmaları son yıllarda popülerliği gittikçe artan bir bilim dalı olmuştur. Özellikle görüntü alanında sınıflandırmalarda her geçen gün daha iyi performans veren yöntemler aranmakta CNN, benzer makine öğrenmesi yöntemlerine göre çok daha iyi sonuçlar vermiştir. Son yıllarda yapay zekâ alanındaki gelişmeler sonucu real-time görüntü işleme daha fazla artmış bu sayede otomatik sistemlerin kullanımı optimize edilip bu sistemler daha iyi hale getirilmiştir. Bu alanda yapılan çalışmalar tek bir alanda sınırlı kalmayıp sağlıktan güvenliğe ulaşım hizmetlerine kadar her alanda kullanılmaya başlanmıştır. Yakın zamanda tahlil verilerinden teşhis veren sistemler hayal olmaktan çıkacağı bir gerçektir. Derin öğrenme hem ikili sınıflandırma olsun hem çoklu

Referanslar

Outline

Benzer Belgeler

Uluslararası Türk Kültür Evreninde Alevilik ve Bektaşilik Bilgi Şöleni Bildiri Kitabı (ed. Bülbül F., Kılıç T.) Ankara.. ALTUNIŞIK, Refika Armağan (2011) Yöre

İradesini alan bu imam efendi Sultan Muradın dairesine gider; harem halkile beraber Sultan Murat ta namaza durur.. İmam efendi sabık hakanın ak­ lını, sıhhatini

Renaissance tetkiklerinden nasıl İtal­ yan milletini çıkardılarsa, Yahya K e­ mal de aynile Malazgird’ten sonra, ön­ ce Anadolu’ya yerleşen, sonra Rumeli- yi

Türk pop müziğinin krizden kurtularak tekrar fışkırma ve ge­ lişmeye başladığı bugünlerde ge­ rek Popsal ve diğer kuruluşlarla birlikte çalışmalar yoğunlaşırken

Daha Akademi yıllarında başta hocası Çallı olmak üzere sanat çevrelerinin hayranlığını kazanan Müstakil Ressamlar ve Heykeltraşlar Birliği’nin kurucularından olan

Bu önergeyi ve­ rirken de Maliye Nazırı Cavid Bey (babam) gibi Ba­ tıcı ve üstelik mason olduğu için pek sevmedikleri bir insandan medet umarak Atatürk'ü,

 Pooling katmanı çıkışı 3D alınır ve fully connected ANN ile 1D vektör çıkışı elde

Hatanın geri yayılımı (Gizli katman 1 ve gizli katman 2 arasındaki ağırlıklar için) Yeni ağırlık değerleri.. Yeni