|
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
Akademik bilimsel ve üniversite kitapları; Papatya Bilim; farkımız, kitaplarımızda... |