İÇİNDEKİLER
İçindekiler
Önsöz 7
1. BÖLÜM
PYTHON PROGRAMLAMA DİLİ
1.1 GİRİŞ 19
1.2 PYTHON KÜTÜPHANELERİ 21
1.2.1. Veri Bilimleri Kütüphaneleri 22
1.2.1.1 Matplotlib 22
1.2.1.2 NumPy 22
1.2.1.3 Pandas 22
1.2.1.4 SciPy 23
1.2.1.5 SQLAlchemy 23
1.2.1.5 SymPy 23
1.2.1.6 Pillow 23
1.2.1.7 Seaborn 24
1.2.1.8 OpenCV Python 24
1.2.1.9 scikit–image 24
1.2.1.10 NLTK 24
1.2.2. Makine Öğrenmesi Kütüphaneleri 25
1.2.2.1 Scikit–learn 25
1.2.2.2 PyLearn2 25
1.2.2.3 NuPIC 25
1.2.2.4 Ramp 26
1.2.2.5 Bob 26
1.2.2.6 PyBrain 26
1.2.2.7 MILK 26
1.2.2.8 Pattern 27
1.2.3. Derin öğrenme kütüphaneleri 27
1.2.3.1 TensorFlow 27
1.2.3.2 Keras 28
1.2.3.3 PyTorch 28
1.2.3.4 Hebel 28
1.2.3.5 Chainer 28
1.2.3.5 Theano 29
1.2.3.5 Caffe2 29
1.3 ANACONDA 29
1.3.1. Anaconda Bireysel Sürümü 30
1.3.2 Anaconda Bireysel Sürümü Kurulumu 31
1.3.2 Spyder 38
2. BÖLÜM
YAPAY ZEKÂ KAVRAMI
2.1 AKIL VE ZEKÂ KAVRAMLARI 41
2.1.1 Akıl Kavramı 41
2.1.2 Zekâ Kavramı 41
2.1.2.1 Zekâ Türleri 42
2.2.1.2 Zekânın Bileşenleri 44
2.2 YAPAY ZEKÂ TEMEL KAVRAMI? 47
2.3 YAPAY ZEKÂ KAVRAMINI OLUŞTURAN ETMENLER 50
2.4 YAPAY ZEKÂNIN TARİHSEL GELİŞİMİ 51
2.5 YAPAY ZEKÂNIN ALT ALANLARI 55
2.5.1 Makine öğrenmesi ve örüntü tanıma 55
2.5.1.1 Örüntü Tanıma 55
2.5.1.2 Derin Öğrenme 56
2.5.2 Mantık tabanlı yapay zekâ 57
2.5.2.1 Deneyimden öğrenmek 57
2.5.3 Arama 57
2.5.4 Bilgi temsili 58
2.5.5 Planlama 58
2.5.6 Sezgisel 58
2.5.7 Genetik programlama 59
2.5.8 Sürü Zekâsı 59
2.5.9 Sibernetik 60
2.6 YAPAY ZEKÂ UYGULAMALARI 60
2.6.1 Bilgisayarla Görme 62
2.6.2 Doğal Dil İşleme 62
2.6.2.1 Konuşma Tanıma 63
2.6.2.2 El yazısı tanıma 63
2.6.4 Uzman Sistemler 63
2.6.5 Bilgisayar Oyunları 64
2.6.6 Robotik 65
2.6.7 Durum tahmini 66
2.6.8 Veri Madenciliği ya da Bilgi Çıkarma 66
2.7 YAPAY ZEKÂDA ÇÖZÜM YAKLAŞIMLARI 67
2.8 İŞLETMELERDE YAPAY ZEKÂ 68
2.9 YAPAY ZEKÂ ETİĞİ VE GELECEĞİN İŞLETMELERİ 69
2.9.1. Geleceğin İşletmelerinde Yapay Zekâ Etiği 70
2.9.2. Uygulanabilir Çözümler 71
2.10 YAPAY ZEKÂNIN AVANTAJLARI VE DEZAVANTAJLARI 72
2.10.1 Yapay Zekânın Avantajları 73
2.10.2 Yapay Zekânın Dezavantajları 75
3. BÖLÜM
MAKİNE ÖĞRENMESİ
3.1. MAKİNE ÖĞRENMESİ KAVRAMI 79
3.2 MAKİNE ÖĞRENMESİNİN TEMELLERİ 81
3.2.1 Makine Öğrenmesinde Görevler 84
3.2.2 Makine Öğrenmesinde Deneyim 85
3.2.3 Makine Öğrenmesinde Performans 86
3.3 MAKİNE ÖĞRENMESİ TÜRLERİ 87
3.3.1 Denetimli Öğrenme 89
3.3.2 Denetimsiz Öğrenme 91
3.3.3 Yarı Denetimli Öğrenme 93
3.3.4 Pekiştirmeli Öğrenme 93
3.3.5 Toplu Öğrenme 94
3.3.6 Çevrimiçi öğrenme 95
3.3.7 Örnek Tabanlı Öğrenme 95
3.3.8 Model Tabanlı Öğrenme 96
3.4 MAKİNE ÖĞRENMESİ SÜREÇ ADIMLARI 96
3.4.1 Problemin Belirlenmesi 96
3.4.2 Veri Toplama 97
3.4.3 Veri Hazırlama ve Analiz Etme 97
3.4.4 Model Seçimi 98
3.4.5 Modelin Eğitimi 99
3.4.6 Model Değerlendirme 99
3.4.7 Tahmin ya da Çıkarım 100
3.5 MODEL DEĞERLENDİRME VE SINIFLANDIRMA PERFORMANS ÖLÇÜLERİ 101
3.5.1. Karışıklık Matrisi 104
3.5.2 Doğruluk (Accuracy) 106
3.5.3. Duyarlılık (Hassasiyet) ya da hatırlama (SensitivityRecall) 107
3.5.4. Özgüllük (Specificity) 108
3.5.5. Kesinlik (Precision) 109
3.5.6 F1 Puanı (F1 Score ya da F measure) 109
3.5.7 ROC Eğrisi ve AUC değeri 114
3.5.7.1 ROC Eğrisi 114
3.5.7.1 AUC değeri 115
3.6 BİLİŞSEL MODELLEME 117
4. BÖLÜM
AKILLI ETMENLER
4.1 GİRİŞ 121
4.2 ETMENLERİN ÖZELLİKLERİ 123
4.3 ETMEN TÜRLERİ 124
4.3.1 Tepkili Etmenler 125
4.3.1.1 Model Tabanlı Etmenler 125
4.3.1.2 Hedefe Dayalı Etmenler 126
4.3.1.3 Fayda Tabanlı Etmenler 128
4.3.2 Ara Yüz Etmenleri 129
4.3.3 Mobil Etmenler 129
4.3.4 Bilgi Toplama Etmenleri 130
4.3.5 Çok Etmenli Sistemler 130
4.3.6 İşbirlikçi Etmen Sistemleri 131
4.3.7 Öğrenme Etmenleri 131
4.3.8 Robot Etmenler 132
4.4 ORTAMLARIN DOĞASI 133
4.4.1 Görev Ortamlarının Özellikleri 136
4.5 ETMENLER VE ORTAMLAR 138
4.5.1 Etmen Sistemleri 140
4.5.2 Etmenlerin İşlevi 141
4.5.3 Etmen Programları 144
4.5.3.1 Tablo tabanlı etmen 145
4.5.3.2 Basit Tepki Etmeni 146
4.5.3.3 Model Tabanlı Tepki Etmeni 147
5. BÖLÜM
ARAMA İLE PROBLEM ÇÖZME
5.1 GİRİŞ 155
5.2 GENEL PROBLEM ÇÖZME 155
5.2.1 Problemin Tanımlanması 156
5.2.2 Problem Uzayı 157
5.2.3 Problem Çözme 157
5.2.4 Durumlar 157
5.2.5 Problemin çözümü 158
5.2.6 Problemin Tanımlanması 158
5.3 Arama 159
5.3.1 Arama Algoritmaları 160
5.3.2 Arama Algoritmalarının Özellikleri 162
5.4 BİLGİSİZ ARAMA ALGORİTMALARI 162
5.4.1 Derinlemesine Arama 162
5.4.2 Derinlemesine Sınırlı Arama 165
5.4.3 Yinelemeli Derinlemesine Arama 168
5.4.4 Enlemesine Arama 170
5.4.5 Maliyet Öncelikli Arama 172
5.4.6 Çift Yönlü Arama 175
5.4.7 Bilgisiz Arama Algoritmalarının Karşılaştırılması 178
5.5 BİLGİLİ ARAMA ALGORİTMALARI 179
5.5.1 En İyiyi Arama 179
5.5.2 A Arama 181
5.5.3 AO* Arama 185
5.5.4 Araç–Sonuç Analizi 188
5.5.5 Tepe Tırmanma 189
5.5.5.1 Tepe Tırmanmanın Durum–uzay Şeması 190
5.5.5.1 Tepe Tırmanmanın Türleri 191
5.5.5.1.1. Basit Tepe Tırmanışı 191
5.5.5.1.2. En Dik–Yükseliş Tepesi Tırmanma 192
5.5.5.1.3. Rastgele Tepe Tırmanma 193
5.5.6 Oluştur ve Test Et 196
5.6 BİLGİSİZ VE BİLGİLİ ARAMA ALGORİTMALARININ KARŞILAŞTIRILMASI 197
6. BÖLÜM
RAKİP ARAMA
6.1 GİRİŞ 199
6.2 OYUN OYNAMA ARAMASININ ÖĞELERİ 201
6.3 OYUN AĞACI 201
6.3 RAKİP ARAMA TÜRLERİ 204
6.3.1 Minimax Algoritması 204
6.3.1.1 Minimax Algoritmasının Çalışması: 205
6.3.1 2 Python'da Minimax Uygulaması 208
6.3.2 Alfa–Beta Budama Algoritması 209
6.3.2.1 Alfa–Beta Algoritmasının Çalışması: 210
6.3.2.2 Alfa–Beta budamada Sıralamayı Taşıma 213
6.3.2.3 Alfa–Beta budamada Sıralamayı Taşıma 213
7. BÖLÜM
BİLGİ TEMSİLİ VE AKIL YÜRÜTME
7.1 GİRİŞ 221
7.1.1 Bilgi Kavramı 221
7.1.1.1 Bilginin Türleri 222
7.1.2 Bilgi Temsili Kavramı 224
7.1.2.1 Yapay Zekada Bilgi Temsili Döngüsü 225
7.1.2.3 Bilgi Temsilinin Gereksinimleri 226
7.1.2.4 Bilgi Temsilindeki Sorunlar 228
7.1.3 Akıl Yürütme Kavramı 229
7.2 NEDEN BİLGİ TEMSİLİ VE AKIL YÜRÜTME? 230
7.2.1 Bilgi Tabanlı Sistemler 231
7.2.2 Neden bilgi temsili? 233
7.2.3 Neden akıl yürütme? 234
7.3 MANTIĞIN ROLÜ 236
7.4 YAPAY ZEKÂDA BİLGİ TEMSİLİ TEKNİKLERİ 237
7.4.1 Mantıksal Temsil 237
7.4.2 Anlamsal Ağ Temsili 238
7.4.3 Çerçeve Temsili 240
7.4.4 Üretim Kuralları Temsili 240
7.4.5 Yapay Zekada Bilgi Temsili Yaklaşımları 242
7.5 BİLGİ TABANLI ETMENLER 242
7.5.1 Genel Bilgi Tabanlı Etmen 243
7.5.2 Bilgiye Dayalı Etmen Seviyeleri 246
7.5.3 Bilgi Tabanlı Etmen Oluşturmak Yaklaşımları 247
8. BÖLÜM
ZEKİ OPTİMİZASYON
8.1 ZEKİ OPTİMİZASYON VE ARAMA ALGORİTMALARI 249
8.2 ZEKİ OPTİMİZASYON TÜRLERİ 250
8.3 GENETİK ALGORİTMALAR 251
8.4 GENETİK ALGORİTMALARIN BİLEŞENLERİ 253
8.4.1 Genotip 253
8.4.2 Popülasyon 253
8.4.3 Uygunluk işlevi 254
8.4.4 Seçim 254
8.4.5 Genetik Değişim 255
8.4.6 Mutasyon 255
8.5 GENETİK ALGORİTMALAR TEORİSİ 256
8.6 GELENEKSEL ALGORİTMALARDAN FARKLILIKLARI 258
8.7 GENETİK ALGORİTMALARIN AVANTAJLARI 259
8.8 GENETİK ALGORİTMALARIN SINIRLAMALARI 260
8.9 GENETİK ALGORİTMALARIN EN ÇOK KULLANILDIĞI YERLER 261
8.10 GENETİK ALGORİTMALAR KULLANARAK PROBLEM ÇÖZME 262
8.10.1 Genetik Algoritmalarla Tahmin 263
8.10.2 DEAP Çerçevesi 267
8.10.3 OneMax Probleminin Genetik Algoritmalarla Çözümü 267
8.10.4 Sembol Regresyon Problemini Çözme 270
8.10.5 Katsayı hesaplatma 273
8.10.6 N–Queens problemini çözme 275
8.10.7 Genetik Algoritma ile Özellik Seçimi 284
8.10.7.1 Parkinson veri seti ile seçim 284
8.10.7.2 Göğüs kanseri veri seti 290
8.10.7.3 PCOS veri seti 292
8.10.7.4 Iris veri seti 294
8.10.8 Modellerde Öne Çıkan Parametrelerin seçimi 295
8.11 PARÇACIK SÜRÜ OPTİMİZASYONU 298
8.12 KARINCA KOLONİ OPTİMİZASYONU 301
9. BÖLÜM
BULANIK MANTIK
9.1 GİRİŞ 307
9.2 BULANIK KÜME TEORİSİ 308
9.2.1 Bulanık küme işlemleri 313
9.3 BULANIK MANTIK DENETLEYİCİNİN GENEL YAPISI 315
9.3.1 Bulanıklaştırma Birimi 316
9.3.2 Bilgi Tabanı 316
9.3.3 Karar Verme Birimi 316
9.3.4 Durulama Birimi 316
9.4 Bulanık Denetim Kurallarının Oluşturulması 317
9.5 Karar Verme Mantığı 318
9.6 Çıkarım Motoru 319
9.7 Bulanık Çıkarım Yöntemleri 320
9.7.1 Birinci Tip Bulanık Çıkarım 320
9.7.2 İkinci Tip Bulanık Çıkarım 321
9.7.3 Üçüncü Tip Bulanık Çıkarım 322
9.7.4 Dördüncü Tip Bulanık Çıkarım 323
9.8 DURULAMA YÖNTEMLERİ 324
9.8.1 Max Kriteri Yöntemi 324
9.8.2 Maksimumların Ortalaması Yöntemi 324
9.8.3 Ağırlık Merkezi Yöntemi 325
9.9 DARALAN ÜYELİK FONKSİYONLU BULANIK MANTIK DENETLEYİCİ 325
9.9.1 Daralan Aralıklı Üyelik Fonksiyonları ile Bulanık Mantık Denetleyici Tasarımı 326
9.10 BULANIK MANTIK ÇIKARIM SİSTEMİ TASARIMI 329
9.11. BULANIK MANTIK UYGULAMALARI 330
9.11.1 Bulanık Küme İşlemleri Python Örneği 330
9.11.2 Öğrenciler İçin Spor Seçim Problemi 332
9.11.3 Arkadaşlık Teklif Etme Problemi 336
9.11.4 Bulanık C–Ortalamalar Kümeleme 340
9.11.5 Bulanık Mantık Denetleyici 348
9.12 BULANIK MANTIĞIN AVANTAJLARI VE DEZAVANTAJLARI 352
9.12.1 Avantajları 352
9.12.2 Dezavantajları 353
10. BÖLÜM
YAPAY SİNİR AĞLARI
10.1 GİRİŞ 355
10.2 YAPAY SİNİR AĞLARININ TEMELLERİ 355
10.2 YAPAY SİNİR AĞLARI MİMARİLERİ 359
10.2.1 Uyarlamalı Ağlar 361
10.2.2 İleri Beslemeli Ağlar İçin Geriye Yayılan Öğrenme 363
10.2.3 Eş Zamanlı İşletilen Ağlar 365
10.2.4 Zaman İçerisinden Geriye Yayılma 366
10.2.5 Gerçek Zaman Tekrarlanan Öğrenme 366
10.2.6 Karma Öğrenme Kuralı 367
10.2.7 Çevrim Dışı Öğrenme 367
10.2.8 Çevrim İçi Öğrenme 368
10.3 YAPAY SİNİR AĞLARI UYGULAMALARI 369
10.3.1 Çok Katmanlı YSA Örneği 369
10.3.2 Çok Katmanlı YSA Kısaltılmış Örneği 375
10.3.3 Scikit–Learn Kitaplığı ile Çok Katmanlı YSA Örneği 376
10.3.4. MLPClassifier ile YSA Sınıflandırıcı Örneği 377
10.3.5. MLPRegressor ile YSA Regresyon Örneği 381
10.3.6 YSA ile Sınıflandırma Örneği 384
11. BÖLÜM
SİNİRSEL BULANIK DENETİM
11.1 GİRİŞ 391
11.2 SİNİRSEL BULANIK DENETLEYİCİLERİN YAPISI 392
11.3. UYARLANABİLİR SİNİRSEL–BULANIK ÇIKARIM SİSTEMİ UYGULAMASI 395
Kaynakça 421 |