Uygulamalı Derin Öğrenme

Yazar: Yalçın ÖZKAN (Ph.D.)

 

 

 Farkımız, kitaplarımızda...

 

 

 

 Tüm üniversiteler bu kitapları okutuyor.

 

 

 

ISBN: 978-605-9594-81-3, tamamen renkli

 Mayıs 2021    272 sayfa

(16x24 cm2), 80 gr 1. hamur kağıt            ŞİMDİ SATIN AL


Uygulamalı Derin Öğrenme indir PDF                                               Yalçın Özkan Kitapları için tıklayınız.


Bu kitabımız, yapay zekanın en önemli algoritması sayılan derin öğrenme üzerine hazırlanmış olup hem konunun matematiksel yapısını açıklamakta hem de çeşitli alanlardaki uygulamalarını sunmaktadır.

Derin öğrenme algoritmasının çeşitli uygulamalarından söz edilebilir. Derin öğrenme algoritmasının en yaygın kullanım biçimi sınıflandırma adı verilen işlemlerdir. Bunun yanı sıra özellikle öngörülerin elde edilmesinde regresyon modelleri tercih edilmektedir.

Derin öğrenme uygulamaları arasında yer alan geri dönüşlü ağlar yaygın bir kullanım alanına sahiptir. Özellikle NLP uygulamalarında ve zaman serisi uygulamalarında geri dönüşlü ağlar tercih edilmektedir. Geri dönüşlü ağlar arasında yer alan LSTM modeli ise NLP alanında tercih edilmektedir.

Bir diğer önemli uygulama alanı görüntü işleme ile ilgilidir. Görüntü işlemede kullanılan evrişimli sinir ağları, görüntü işleme alanında proje geliştirmek isteyenlere yararlı olacaktır. Evrişimli sinir ağlarıyla ilgili teorik bilgilerin sunulması yanı sıra ilginç pratik uygulamalar da verilmiştir. 

Derin öğrenme algoritmaları Python programlama diliyle geliştirildi; Python dili söz konusu amaç için zengin uygulama paketleri sunmaktadır. Derin öğrenme algoritmalarının her aşamasında bu dili kullanarak uygulama prototipleri hazırlanabilir. Uygulamalarda açık kaynaklardan yararlanıldı ve uygulamacıların yakından tanıdığı veri kümeleri tercih edildi.



Önsözden. Bu kitap, yapay zeka alanında çok önemli bir yere sahip olan “derin öğrenme” kavramına odaklanmıştır. Hatta birçok kaynakta yapay zeka ile derin öğrenme eş anlamlı olarak da kullanıldığı gözlemlenmektedir. Kuşkusuz yapay zekanın dayandığı çok sayıda algoritmadan söz edilebilir. Ancak derin öğrenmenin oldukça önemli bir yer tuttuğunu söyleyebiliriz. Kitabımız derin öğrenmeyi en baştan adım adım öğrenmek isteyenler için tasarlanmıştır.

 

Derin öğrenme algoritmalarını örnek veri kümelerini kullanarak kodlayarak uygulamak için bir programlama dilini bilmek gerekiyor. Başka seçenekler olmasına karşılık, yaygın biçimde kullanılan Python dilini seçtik. Bu dil derin uygulama uygulamaları geliştirilmesi açısından uygundur. Kitabımızın birinci bölümünde Python diline bir giriş yapılmaktadır. Bu bölümde çok ayrıntıya girmeden dilin temel özellikleri üzerinde durulmakta ve derin öğrenme uygulamaları için gerekebilecek bilgiyi bize sunmaktadır. Kitabı takip eden okuyucularımın bu bölümde anlatıldığı biçimde öncelikle Python uygulamasını kurmalarını ve sunulan örnekleri aynen yapmalarını öneriyoruz.

 

İkinci bölümde yapay zekanın en önemli bileşeni olan makine öğrenmesi kavramı üzerinde durulmaktadır. Makine öğrenmesi süreci, veriden öğrenme, öğrenme türleri, algoritmalar, sınıflandırma ve regresyon modelleri makine öğrenmesinin önemli kavramları arasındadır. Makine öğrenmesinin denetimli öğrenme modelleri içinde yer alan sınıflandırma ve regresyon konuları bu bölümde ele alınmakta, özellikle modellerin değerlendirilmesini sağlayan performans ölçütleri üzerinde yeterince durulmaktadır.

 

Üçüncü bölümde, makine öğrenmesi algoritmalarının uygulanabilmesini sağlamak üzere, elde edilen veri kümesinin bir önişleme adımından nasıl geçirilebileceği konusu işlenmektedir. Verinin durumuna göre uygulanabilecek çeşitli önişleme adımları mevcuttur.

Dördüncü bölümde yapay sinir ağlarının yapısı incelenmektedir. Aslında derin öğrenme de bir yapay sinir ağıdır. Farklılığı birden fazla gizli katmanın sahip olmasıdır. Bu bölümde sinirlerin ve katmanların görevleri ve bağlantı ağırlıklarının hesaplanması matematiksel açıdan ortaya konulmaktadır. Bu bölümde derin öğrenmeyi de kapsayacak biçimde yapay sinir ağlarındaki öğrenme sürecinin matematiksel yapısı açıklanmakta, ileri ve geri yayılım süreçlerinin ayrıntıları üzerinde durulmaktadır.

 

Buraya kadar olan kavramsal açıklamalardan sonra, beşinci bölümden itibaren derin öğrenme uygulamalarının nasıl geliştirilebileceği hususuna ağırlık verilmektedir. Uygulamalarımızda Keras isimli Python paketini esas alıyoruz. Açık kaynak kodlu olan bu yazılım, derin öğrenme alanında en yaygın kullanılan bir üründür. Bu pakete bağlı olarak tüm uygulamalarımızı geliştirdik. Beşinci bölümde Keras programında sınıflandırma ve regresyon uygulamaları için gerekli hususlar anlatılmaktadır. Bu bölümde ilk derin öğrenme uygulamamızı geliştirmeye başladık ve sınıflandırma ile regresyona ilişkin örnek uygulamalar kodladık.

 

Altıncı bölümde derin öğrenmenin önemli uygulamalarından birisi olan geri dönüşlü yapay sinir ağları üzerinde durulmaktadır. Bu tür ağlarda, bir dizinin önceki durumlarının da hatırlanarak modelin ona göre oluşturulması sağlanır. Özellikle doğal dil işleme (NLP) ile ilgili uygulamalarda, örneğin çeviri işlemlerinde bir cümlede yer alan bir kelimeden sonra hangi kelimenin gelmesi gerektiğinin tahmin edilmesinde kullanılabilir.

 

Yedinci bölümde derin öğrenmenin ilginç bir alanı ele alınıyor. Otokodlayıcılar adı verilen bu uygulama sınıfında yapay sinir ağlarının mimarisinde önemli bir değişiklik göze çarpar. Modelin girdisi ile çıkışları aynı özniteliklere sahiptir. Model mimarisi ortada bir yerden daraltılarak bir darboğaz elde edilir. Söz konusu darboğaz katmanı çok önemli bir işleve sahiptir. Darboğaza kadar lan katmanlar modelin kodlayıcı adı verilen bölümünü oluşturur. Kodlanan bu kısım bir tür sıkıştırma işlemidir. Darboğazdan sonraki katmanlar ise kodlamanın çözüldüğü bölümlerdir. Bu model yardımıyla kodlamanın çözülmesi esnasında veri kümelerindeki anormallikler belirlenebilir. Darboğaza kadar olan katmanlar ise veri kümesinin boyutlarının azaltılması işleminde kullanılabilir.

 

Kitabımızın sekizinci ve dokuzuncu bölümleri görüntü işlemeyle ilgili evrişimli derin öğrenmeye ayrılmıştır. Sekizinci bölümde bu tür bir mimarinin teorik esasları anlatılmış, dokuzuncu bölümde ise uygulamalarına yer verilmiştir. Bu amaçla, NLP ile ilgili bir uygulamaya, kedi-köpek resimlerinin sınıflandırılması ve medikal görüntüleri esas alan bir sınıflandırma uygulamasına yer verilmiştir.

 

Kitapta yer alan tüm uygulamalarda makine öğrenmesi alanında sıkça kullanılan, iyi bilinen ve kolay erişilen veri kümelerine yer verilmiştir. Geliştirilen Python kodlarında basitlik ve anlaşılırlılık ön plana alınarak karmaşık kodlamalardan kaçınılmıştır.


İÇİNDEKİLER

Önsöz 

Bölüm 1. Python Programlama Diline Giriş

1.1. Bu Bölümün Amacı         13

1.2. Python Kurulumu            13

1.3. Python Arayüzleri           14

1.3.1. Komut Satırı İşlemleri           15

1.3.2. Yazılım Geliştirme   16

1.4. Değişkenler        17

1.5. Açıklama Satırları           19

1.6. Basit Veri Girişi ve Çıkışı 20

1.7. Fonksiyonlar      22

1.8. Modüller ve Import Deyimi           23

1.9. Python Paketleri 24

1.10. Operatörler      25

1.10.1. Aritmetik Operatörler          25

1.10.2. Atama Operatörleri 26

1.10.3. Karşılaştırma Operatörleri    28

1.10.4. Mantıksal Operatörler          29

1.11. Veri Türleri      32

1.11.1. Liste        33

1.11.1.1. Listenin Yaratılması     33

1.11.1.2. Liste Eleman Sayısı      34

1.11.1.3. Liste Elemanlarına Erişim          34

1.11.1.4. Liste Elemanlarını Değiştirme    35

1.11.1.5. Liste Yöntemleri          36

1.11.2. Karakter Dizisi (Sözce)        38

1.11.2.1. Karakter Sayısı Öğrenme           38

1.11.2.2. Karakter Dizisi Elemanlarına Erişim        38

1.11.2.3. Karakter Dizilerinin Birleştirilmesi          39

1.11.2.4. Karakter Dizisi Yöntemleri        39

1.11.3. Numpy Paketi ile Dizi ve Matrisler    40

1.11.3.1. Dizinin Yaratılması      41

1.11.3.2. Dizi İşlemleri 42

1.11.3.3. Numpy Paketi ile Matrisler        44

 1.12. Program Denetimi         45

1.12.1. if Deyimi ile Karşılaştırma   46

1.12.2. Döngüler (Tekrarlamalar): for ve while            47

1.13. Pandas Paketi ile Veri İşleme       49

1.13.1. Veri Çerçevesi   49

1.13.1.1. Veri Çerçevesi Yaratma        50

1.13.1.2. Veriye Erişim         51

1.13.1.3. Yeni Sütun Ekleme 54

1.13.1.4. Sütun Silme           54

1.13.1.5. Yeni Satır Ekleme   55

1.13.2. Veri Kümlerine Erişim    56

1.14. Grafikler          59

1.14.1. Dağılma Grafiği59

1.14.2. Çubuk Grafik    61

1.14.3. Çizgi Grafik      62

1.14.4. Pasta Grafik      63

 

Bölüm 2. Makine Öğrenmesine Giriş

2.1. Bu Bölümün Amacı         65

2.2. Makine Öğrenmesi           65

2.2.1. Makine Öğrenmesi Süreci      66

2.2.2. Makine Öğrenmesi ile İlgili Öğrenme Türleri     66

2.2.3. Denetimli Öğrenme: Sınıflandırma ve Regresyon            67

2.2.4. Denetimsiz Öğrenme 71

2.2.5. Pekiştirilmeli Öğrenme          72

2.3. Sınıflandırma Süreci        72

2.3.1. Eğitim ve Test Verisinin Hazırlanması    72

2.3.2. Sınıflandırma Modelinin Yaratılması    73

2.3.3. Öngörü ve Model Performansının Belirlenmesi  73

2.4. Model Performansı          74

2.4.1. Doğruluk Ölçütleri   74

2.4.2. Aşırı Öğrenme         77

2.4.3. Python ile Doğruluk Ölçütleri   77

2.4.4. Roc Eğrileri            79

2.4.5. Python ile Roc Eğrileri          80

 

Bölüm 3. Veri Önişleme

3.1. Bölümün amacı  83

3.2. Kayıp Veri         83

3.2.1. Uygulama: Mammographic Masses Veri Kümesinde Kayıp Veri       84

3.2.2. Kayıp Veri İçeren Satırın Yok Edilmesi            85

3.2.3. Kayıp Verinin Tahmin Edilmesi          87

3.2.4. Uygulama: Mammographic Masses Kümesinde Kayıp Veri Tahmini 87

3.3. Veri Dönüştürme – Normalleştirme88

3.3.1. Ondalık Ölçekleme   89

3.3.2. Min-Max Normalleştirmesi    89

3.3.2.1. Uygulama: İris Veri Kümesi Üz. Min-Max Normalleştirme        89

3.3.3. Z-Score Standartlaştırma        91

3.3.3.1. Uygulama: İris Verisi Üzerinde z-score Normalizasyonu           91

3.3.4. Kategorik Değerlerin Sayısal Değerlere Dönüştürülmesi   93

3.3.4.1. Uygulama: İris Veri Kümesinde Sayısal Değerlere Dönüşüm      93

3.4. Aykırı Değerler  94

3.4.1. Uygulama: Diabetes Veri Kümesinde Aykırı Değerlerin Bulunması    95

3.5. Boyut Azaltma (PCA)      98

3.5.1. Uygulama: İris Verisi İçin PCA İle Boyut Azaltma99

3.6. Dengesiz Veri    102

3.6.1. Uygulama: Dengesiz Verinin Düzeltilmesi            105

3.7. Verinin Bölünmesi           106

 

Bölüm 4. Yapay Sinir Ağlarına Giriş

4.1. Bu Bölümün Amacı         109

4.2. Biyolojik ve Yapay Sinir Ağları     109

4.3. Yapay Sinir Ağları Yapısı111

4.3.1. Girdi Katmanı         111

4.3.2. Gizli Katman           112

4.3.3. Çıktı Katmanı          113

4.3.4. Bağlantı Ağırlıkları ve Eşik Değerler   113

4.3.5. Toplama Fonksiyonu ve Girişlerin Hesaplanması114

4.3.6. Etkinleştirme Fonksiyonu      115

4.3.7. Eşik Değerleri         116

4.4. Ağın Öğrenmesi 116

4.4.1. İleri Yayılım           117

4.4.1.1. Gizli Katman Sinir Hücreleri İçin Giriş ve Çıkışlar  118

4.4.1.2. Çıkış Katmanı Sinir Hücreleri İçin Giriş ve Çıkışlar 120

4.4.2. Toplam Hata            122

4.4.3. Geri Yayılım           123

4.4.3.1. Gizli Katmandan Çıkış Bir. Giden Ağırlık. Güncellenmesi     123

4.4.3.2. Gizli Katmana Giriş Ağır. Güncel. W1’deki Değişiklik          125

4.5. Uygulama          128

4.5.1. Sayısal Bir Örnek     128

4.5.1.1. İleri Yayılma   130

4.5.1.2. Geri Yayılma   132

 

Bölüm 5. Keras ile Derin Öğrenme

5.1. Bu Bölümün Amacı         135

5.2. Keras Sıralı Modeli          135

5.2.1. Model Mimarisi ve Katmanların Eklenmesi        135

5.2.2. Modelin Özetlenmesi ve Grafiğinin Çizdirilmesi 136

5.2.3. Modele Seyreltme Katmanlarının Eklenmesi      138

5.2.4. Modelin Derlenmesi 139

5.2.5 Modelin Eğitilmesi    140

5.2.6. Modelin Performansı141

5.3. Keras ile Derin Öğrenme Sınıflandırması     142

5.3.1. Uygulama: İris Verisiyle Sınıflandırma  142

5.3.1.1. Veri Yükleme ve Önişlemler        142

5.3.2.1. Keras Modelleme           145

5.3.1.3. Öngörüler         150

5.4. Keras ile Derin Öğrenme Regresyonu          150

5.4.1. Uygulama: Abalone Veri Kümesi ile Regresyon Modeli Oluşturma     151

5.4.1.1. Veri Yükleme ve Önişlemler         151

5.4.1.2. Keras Regresyon Modeli 154

5.4.1.3. Öngörüler         157

 

Bölüm 6. Geri Dönüşlü Derin Yapay Sinir Ağları

6.1. Bu Bölümün Amacı         159

6.2. Geri Dönüşlü Derin Yapay Sinir Ağları       159

6.2.1. Geri Yayılım           162

6.2.2. RNN ile NLP Uygulaması      164

6.2.2.1. Kelime Yerleştirme        164

6.2.2.2. IMDB Veri Kümesi       165

6.2.2.3. Kütüphanelerin ve Veri kümesinin Yüklenmesi        166

6.2.2.4. Kelime Yerleştirme İçin Ön Hazırlıklar      166

6.2.2.5. Keras Yerleştirme, Model Mimarisi ve Kelime Yerleştirme    168

6.2.2.6. Modelin Eğitilmesi        169

6.2.2.7. Modelin Performansı     171

6.3. LSTM Ağları     172

6.3.1. LSTM Ağlarının Yapısı         172

6.3.2. LSTM Adımları       173

6.3.3. Uygulama: LSTM ile IMDB Sentiment Uygulaması           176

6.3.3.1. Kütüphanelerin ve Veri Kümesinin Yüklenmesi       176

6.3.3.2. Veri Kümesinin Yük. ve Kelime Yerleş. için Ön Hazırlıklılar   177

6.3.3.3. Keras Model Mimarisi ve Kelime Yerleştirme          177

6.3.3.4. Modelin Eğitilmesi        179

6.3.3.5. Test Verisiyle Modelin Performansı           181

6.3.4. LSTM ile Zaman Serileri       182

6.3.4.1. Uygulama: Brent Petrol Zaman Serisi ile Öngörü        182

6.3.4.2. Kütüphanelerin ve Veri Kümesinin Yüklenmesi       183

6.3.4.3. Normalleştirme İşlemi    184

6.3.4.4. Verinin Bölünmesi         185

6.3.4.5. Verinin Otoregresif Modele Dönüştürülmesi            185

6.3.4.6. LSTM Ağı Mimarisi      186

6.3.4.7. Eğitim Verisiyle Modelin Eğitilmesi          188

6.3.4.8. Öngörüler        189

6.3.4.9. Öngörülerin Çizdirilmesi190

 

Bölüm 7. Derin Otokodlayıcılar

7.1. Bu Bölümün Amacı         193

7.2. Otokodlayıcılar  193

7.3. Otokodlayıcıların Kullanım Alanları            195

7.4. Otokodlayıcılar ile Boyut Azaltma  195

7.4.1. Uygulama: Otokodlayıcı ile İris Veri Kümesinde Boyut Azaltma   196

7.4.1.1. Kütüphanelerin ve Veri Kümesinin Yüklenmesi       196

7.4.1.2. Önişleme         197

7.4.1.3. Otokodlayıcı Model Mimarisi      198

7.4.1.4. Otokodlayıcının Eğitilmesi          199

7.4.1.5. Öngörüler        201

7.5. Otokodlayıcılar ile Anormallik Tespiti         202

7.5.1. Uygulama: Haberman Veri Kümesinde Anormal Gözlemlerin Aranması203

7.6. Otokodlayıcılarla Sınıflandırma-Kendi Kendine Öğrenme        211

7.6.1. Uygulama: Otokodlayıcılarla Sahtekarlık Belirlenmesi    211

7.6.1.1. Kütüphaneler ve Veri Kümesinin Yüklenmesi          212

7.6.1.2. Önişleme         213

7.6.1.3. Sadece Normal Etiketli Verinin Seçilmesi  213

7.6.1.4. Otokodlayıcı Modelin Kurulması  214

7.6.1.5. Otokodkayıcı Modelin Eğitilmesi 215

7.6.1.6. Test Verisiyle Öngörülerin Elde Edilmesi   217

7.6.1.7. Eşik Değerin Belirlenmesi           218

7.6.1.8. Eşik Değer Kullanılarak Sınıflandırma       219

 

Bölüm 8. Evrişimli Derin Öğrenme

8.1. Bu Bölümün Amacı         221

8.2. Evrişimli Sinir Ağları Mimarisi     221

8.2.1. Görüntünün Okutulması         223

8.2.2. Matematiksel Açıdan Evrişim İşlemi    223

8.2.3. Evrişimli Sinir Ağlarında Evrişimli İşlemi         228

8.2.4. Evrişim Katmanı      231

8.2.5. Örnekleme Katmanı 232

8.2.6. Tam Bağlantı Katmanı           233

8.2.7. Softmax ve Sınıflandırma      234

8.3. İleri Yayılım      234

8.4. Evrişim Katmanında Geri Yayılım 235

 

Bölüm 9. Evrişimli Derin Öğrenme Uygulamaları

9.1. Bu Bölümün Amacı         237

9.2. MNIST ile El Yazısı için Derin Öğrenme Uygulaması237

9.2.1. Kitaplıklar ve Veri Kümesinin Yüklenmesi        237

9.2.2. Önişleme: Resim Bilgilerinden Sınıf Bilgisinin Ayrılması 238

9.2.3. Örnek Resimler        239

9.2.4. Diğer Önişleme Adımları       239

9.2.5. Keras Modelinin Kurulması    240

9.2.6. Modelin Eğitilmesi ve Performansı      242

9.3. Yineleyicileri Kullanarak Kedi-Köpek Resimlerinin Sınıflandırılması     245

9.3.1. Veri Kümesi İçin Yeni Dizin Yapısı     245

9.3.2. Kitaplıkların Yüklenmesi       247

9.3.3. Veri Kümesinin Yüklenmesi ve Keras Yineleyicileri        247

9.3.4. Keras Modelin Kurulması      248

9.3.5. Modelin Eğitilmesi ve Performansı      250

9.3.6. Yorum       252

9.4. Medikal Görüntülerde Derin Öğrenme Uygulaması    253

9.4.1 Veri Kümesi İçi Yeni Dizin Yapısı        253

9.4.2. Breakhis Uygulaması256

9.4.3. Veri Üreteçlerinin Tanımlanması         257

9.4.4. Yineleyiciler ile Veri Kümelerinin Okutulması   257

9.4.5. Keras Modelinin Kurulması    258

9.4.6. Modelin Eğitilmesi ve Performansı      260

9.4.7. Yorum       262

 

Kaynakça  263

Dizin   269

 

ŞİMDİ SATIN AL


Akademik bilimsel ve üniversite kitapları; Papatya Bilim; farkımız, kitaplarımızda...