Hızlandırılmış GPU Programlama, Otonom Robot Kontrolü, SMD Elektronik Devre Tasarımı
Hızlandırılmış GPU Programlama, Otonom Robot Kontrolü, SMD Elektronik Devre Tasarımı
Gelişen ve değişen teknoloji ile cihazların kontrolü üzerindeki ihtiyaç günden güne artmaktadır. Mevcut sistemlerin kontrolünde, yazılım dilleri üzerinde geliştirilen algoritmaların önemi büyüktür. Bulanık mantık (BM) sistemlerin kontrolü hayatımızın ayrılmaz bir parçası haline gelmiştir. Bulanık mantık hakkında yabancı dillerde çok sayıda çalışma mevcuttur. Bunlar arge araştırmaları, kitaplar, ders notları, makaleler ve bildiri çalışmalarıdır. Bu yayınlar arasında günümüz programlama dillerinden olan Python programlama dili ile hazırlanmış kapsamlı bir Türkçe Bulanık mantık kaynağı yer almamaktadır. Bu kitap Python programlama dili üzerinde geliştirilmiş bulanık mantık çalışmaları konusunda Türkçe literatüre katkı sağlayacaktır.
Yapay zeka (YZ) günümüzde teknoloji ile birleşince büyük adımlar doğrultusunda ilerlemiştir. Yapay zekanın kullanım alanları içerisinde askeri ve polis uygulamaları, tarımsal uygulama, görüntü işleme uygulamaları, veri bilimi çalışmaları, doğal dil işleme uygulamaları, siber güvenlik uygulamaları ve ses tanıma ve işleme uygulamaları gibi çok fazla uygulama alanı mevcuttur. Yapay zeka alanında kullanım alanlarının farklılaşması ile bu platformlarda kullanılan algoritmalar farklılaşmıştır. Yapay zekanın bulanık mantık, makine öğrenmesi, uzman sistemler ve genetik algoritmalar olmak üzere konu ve içerik olarak birbirinden farklı olan alt sistemleri vardır. Bu farklılıklar uygulama alanlarına bağlı olarak ilerlemektedir. Örneğin yapay zekanın bir alt konusu olan derin öğrenme ile imge işleme konusunda çok başarılı sonuçlar elde edilmektedir. Diğer bir alt kolu olan makine öğrenmesi ile veri bilimi çalışmaları gerçekleştirilebilmektedir. Bulanık mantık ile kontrol sistemleri üzerinde geliştirilen uygulamalarda karar verme çalışmaları gerçekleştirilmektedir. Bu kitap üzerinde yapay zeka alt dallarından olan bulanık mantık ile ilerlenecektir.
Bulanık mantık ilk olarak 1965 yılında Profesör Lotfi A. Zadeh tarafından ortaya çıkarılmıştır (Zadeh, 1965). İlk düşünce sonrası ortaya çıkan çalışmalarda bulanık mantığın özellikleri ve uygulamaları ile ilgili çalışmalar yapılmıştır. Bulanık mantık, içerisinde kullanılan fonksiyonların farklı sözel kavramlarla ifade edilmesi prensibine göre çalışmaktadır. Bu ifadelere bağlı olarak her bir üyeliğin derecesi bulunmaktadır. Üyelik derecelerinden faydalanarak yeni bulanık kümeler oluşturulur. Bulanık kümelerin sayısı tasarlayacağımız sistem üzerindeki fonksiyonlara göre arttırılabilir veya azaltılabilmektedir (Zadeh, 1965 & Zadeh, 1988 & Şen, 2009 & Bede, 2013).
Bu kitap üzerinde bulanık mantık yani fuzzy logic kavramlarını Python programlama dili ile öğrenerek ve uygulayarak ilerleyeceğiz.
Neler öğreneceğiz?
- Python ile programlama temellerini işleyeceğiz.
- Bulanık mantık nedir sorusunu cevaplayacağız?
- Bulanık mantığın avantajlarını ve dezavantajlarını inceleceğiz.
- Bulanık mantığın kurallarını ve aşamalarını inceleyeceğiz.
- Python dili üzerinde bulanık mantık işlemleri gerçekleştirip uygulamalar yapacağız. Devam eden sayfalarda kitabın konumuz ile ilgili bölümleri detaylandırılarak anlatımları ve uygulamaları yapılarak anlatımları gerçekleştirilmiştir.
2.1. Neden Python
2.2. Python Programı Dağıtımı Kurulumları ve Notları
2.2.1. Python-Spyder Derleyicisi
2.2.2. Jupyter Notebook Kullanım Notları
2.3. Anaconda Yazılımı Üzerinde Python Kütüphanelerin Genel Kullanımı
2.3.1. Python Numpy Kütüphanesi ve Uygulaması
2.3.2. Python Pandas Kütüphanesi ve Uygulaması
2.3.3. Python Matplotlib Kütüphanesi ve Uygulaması
2.3.4. Skfuzzy Kütüphanesi ve Uygulaması
2.4. Python Veri Yapıları
2.4.1. Veri Değişken Tipleri; String, Integer ve Float veri tipleri
2.4.2. Temel Matematik Operatörleri
2.4.3. Stringler ve Karakter Dizileri
2.4.4. Veri Tipi Dönüşümleri
2.4.5. Print Fonksiyonu
2.4.6. Liste Veri Tipleri
2.4.7. Demet (Tupple) Veri Tipleri
2.4.8. Sözlük (Dictionary) Veri Tipi
2.4.9. Kullanıcıdan Bilgi (input) Alma İşlemleri
2.4.10. Python ile Yazılıma Veri Yükleme ve Görüntüleme İşlemi
2.5. Koşul İfadeleri
2.5.1. Koşul İfadelerine Giriş
2.5.2. Karşılaştırma Operatörleri
2.5.3. If-Else Koşul Blokları
2.5.4. If-Elif-Else Koşul Blokları
2.6. Döngü Yapıları
2.6.1. Döngü Yapılarına Giriş
2.6.2. For Döngüsü
2.6.3. While Döngüsü
2.6.4. Range Fonksiyonu
2.6.5. Break-Continue İfadeleri
2.7. Fonksiyonlar
2.7.1. Fonksiyon Yapılarına Giriş
2.7.2. Random() Fonksiyonu
2.7.3. Time() Fonksiyonu
2.7.4. Math() Fonksiyonu
2.8. Python Hata Yakalama ve İstisnalar
2.8.1. Hatalar Nedir? Nasıl yakalarız?
2.8.2. Git Hata Durumu
2.8.3. Kütüphane Hataları
2.8.4. Try-Except Blokları
2.8.5. Try-Except-Finally Blokları
3.1. Bulanık Mantığın Avantajları ve Dezavantajları
3.2. Bulanık Mantığın Uygulama Alanları
4.1. Bulanıklık Kavramı
4.2. Bulanık Kümeler Üzerinde Kural Tabanı Belirlenmesi
5.1. Üçgen Üyelik Fonksiyonları
5.2. Yamuk Üyelik Fonksiyonları
5.3. Gaussian Üyelik Fonksiyonları
5.4. Sigmoid Üyelik Fonksiyonları
Müşterilerin soruları varsa, bizim de yanıtlarınız var. En sık sorulan soruları ekleyin; böylece herkes kazançlı olsun.
7.1. Python ve Skfuzzy
7.2. Giriş ve Çıkış Değerlerinin Tanımlanması
7.3. Üyelik İşlemleri
7.4. Bulandırma
7.5. Bulanık Çıkarım
7.5.1. Mamdani
7.5.2. Sugeno
7.5.3. Tsukatomo
7.6. Bulanık Kuralların Belirlenmesi
7.7. Durulama Yöntemleri
7.7.1. Centroid of area, Center of gravity method, Ağırlık merkezi Yöntemi
7.7.2. Bisector of area, Alan açıortay yöntemi
7.7.3. Mean of maximum, En Büyük Üyelik dereceli elemanların orta noktası yöntemi
7.7.4. Min of maximum, En Büyük Dereceli elemanlardan küçük olanı yöntemi
7.7.5. Max of maximum, En büyük dereceli elemanlardan büyük olanı yöntemi
7.8. Durulama yöntemlerinin üyelik fonksiyonu grafiği üzerinde gösterimi
Müşterilerin soruları varsa, bizim de yanıtlarınız var. En sık sorulan soruları ekleyin; böylece herkes kazançlı olsun.
9.1. Uygulama-1
9.2. Uygulama-2
9.3. Uygulama-3
9.4. Uygulama-4
Zadeh, L. A. (1965). Fuzzy sets, Information and Control, 8(3), 338-353.
Zadeh, L. A. (1988). Fuzzy logic. Computer, 21(4), 83-93.
Kosko, B., & Isaka, S. (1993). Fuzzy logic. Scientific American, 269(1), 76-81.
Buckley, J. J. (1985). Fuzzy hierarchical analysis. Fuzzy sets and systems, 17(3), 233-247.
Chen, G., & Pham, T. T. (2000). Introduction to fuzzy sets, fuzzy logic, and fuzzy control systems. CRC press.
Zadeh, L. A. (1996). Soft computing and fuzzy logic. In Fuzzy Sets, Fuzzy Logic, and Fuzzy Systems: Selected Papers by Lotfi a Zadeh (pp. 796-804).
Zadeh, L. A. (2015). Fuzzy logic—a personal perspective. Fuzzy sets and systems, 281, 4-20.
Allahverdi, N. (2002). Uzman Sistemler: Bir Yapay Zeka Uygulaması. Atlas Yayın Dağıtım.
Nabiyev, V. V. (2003). Yapay zeka: problemler-yöntemler-algoritmalar. Seçkin Yayıncılık.
Okatan, A., & Gökalp, D. (2004). Obstacle avoidance and fuzzy control of a mobile robot. In 1th International Conference on Informatics.
Nabıyev, V., Karal, H., Arslan, S., Erumıt, A. K. & Cebı, A. (2013). An Artificial Intelligence-Based Distance Education System: Artimat. Turkish Online Journal of Distance Education, 14 (2), 81-98.
Kurt, B., Nabiyev, V. V., & Turhan, K. (2013). Automatic microcalcification segmentation using rough entropy and fuzzy approach. Information Technology in Bio-and Medical Informatics, 103-105.
Ibrahim, A. (2004). Fuzzy logic for embedded systems applications. Newnes.
Wang, L. X. (1999). A course in fuzzy systems.
Warner, J., & Sexauer, J. (2019). JDWarner/scikit-fuzzy: Scikit-Fuzzy version 0.4.2.
Méndez, L. A. (2016). A practical introduction to fuzzy logic using LISP. Cham: Springer International Publishing.
Buckley, J. J., & Eslami, E. (2002). An introduction to fuzzy logic and fuzzy sets (Vol. 13). Springer Science & Business Media.
Rao, V., & Rao, H. V. (1995). C++ neural networks and fuzzy logic (pp. 33-39). Mis: Press.
Tamir, D. E., Rishe, N. D., & Kandel, A. (Eds.). (2015). Fifty years of fuzzy logic and its applications (Vol. 326). Springer.
Cerami, M. (2012). Fuzzy description logics from a mathematical fuzzy logic point of view.
Passino, K. M., Yurkovich, S., & Reinfrank, M. (1998). Fuzzy control (Vol. 42, pp. 15-21). Reading, MA: Addison-wesley.
Ross, T. J. (2005). Fuzzy logic with engineering applications. John Wiley & Sons.
Klir, G. J., & Yuan, B. (1996). Fuzzy sets and fuzzy logic: theory and applications. Possibility Theory versus Probab. Theory, 32(2), 207-208.
McNeill, F. M., & Thro, E. (2014). Fuzzy logic: a practical approach. Academic Press.
Bede, B. (2013). Fuzzy sets. In Mathematics of Fuzzy Sets and Fuzzy Logic (pp. 1-12). Springer, Berlin, Heidelberg.
Elmas, Ç. (2007). Yapay zeka uygulamaları:(yapay sinir ağı, bulanık mantık, genetik algoritma). Seçkin Yayıncılık.
Elmas, Ç. (2003). Bulanık mantık denetleyiciler.
Türkşen, İ. B., (2015). Dereceli Bulanık Sistem Modelleri. Abaküs Kitap.
Şen, Z. (2009). Bulanık mantık ilkeleri ve modelleme:(Mühendislik ve sosyal bilimler). Su Vakfı.
Çetinkaya, A. (2017). Otonom bir robotun bulanık kontrolör yaklaşımı ile konum kontrolü (Master's thesis, Fen Bilimleri Enstitüsü).
IEEE. (2016). The 2016 Top Programming Languages. Son Erişim Tarihi: 12.12.2021, https://spectrum.ieee.org/the-2016-top-programming-languages
IEEE. (2014). The 2014 Top Programming Languages. Son Erişim Tarihi: 12.12.2021, https://spectrum.ieee.org/top-10-programming-languages
IEEE. (2021). The 2021 Top Programming Languages. Son Erişim Tarihi: 12.12.2021, https://spectrum.ieee.org/top-programming-languages/
IEEE. (2019). The 2019 Top Programming Languages. Son Erişim Tarihi: 12.12.2021, https://spectrum.ieee.org/the-top-programming-languages-2019
Anaconda. (2021). Anaconda Documentation. Son Erişim Tarihi: 10.12.2021, https://docs.anaconda.com/anaconda/navigator/index.html
Numpy. (2021). Numpy Documentation. Son Erişim Tarihi: 08.10.2021, https://numpy.org/
Pandas. (2021). Pandas Documentation. Son Erişim Tarihi: 08.10.2021, https://pandas.pydata.org/
Matplotlib. (2021). Matplotlib Documentation. Son Erişim Tarihi: 08.10.2021, https://matplotlib.org/stable/users/index.html
SciKit-Fuzzy. (2021). Skfuzzy Documentation. Son Erişim Tarihi: 10.10.2021, https://pythonhosted.org/scikit-fuzzy/overview.html
Defuzzification. (2021). Skfuzzy Documentation. Son Erişim Tarihi: 10.10.2021, https://scikit-fuzzy.github.io/scikit-fuzzy/auto_examples/plot_defuzzify.html
Python CSV. (2021). CSV File Reading and Writing. Son Erişim Tarihi: 10.10.2021,
https://docs.python.org/3/library/csv.html
Python (2022). What’s New In Python 3.10. Son Erişim Tarihi: 01.02.2022, https://docs.python.org/3/whatsnew/3.10.html
Berkeley. (2021). Lotfi A. Zadeh | EECS Elektrical Engineering and Computer Sciences page’s. Son
Erişim Tarihi: 17.10.2021, https://www2.eecs.berkeley.edu/Faculty/Homepages/zadeh.html/
Resmi Gazete. (2014). Türkiye İlaç ve Tıbbî Cihaz Kurumundan. Eczacılar ve Eczaneler Hakkında Yönetmelik. Son Erişim Tarihi: 18.01.2022, https://www.resmigazete.gov.tr/eskiler/2014/04/20140412-14.htm
T.C. Çevre, Şehircilik ve İklim Değişikliği Bakanlığı, (2021). Hissedilen Sıcaklık (Sıcaklık ve Neme Göre) ve Rüzgar Etkisi (Wind chill). Son Erişim Tarihi: 18.01.2022, https://www.mgm.gov.tr/genel/sss.aspx?s=hissedilensicaklik
Web sitesi trafiğini analiz etmek ve web sitesi deneyiminizi optimize etmek amacıyla çerezler kullanıyoruz. Çerez kullanımımızı kabul ettiğinizde, verileriniz tüm diğer kullanıcı verileriyle birlikte derlenir.
Hoş Geldiniz! Yeni çalışmalarıma Araştırma bölümünden detaylarına ulaşabilirsiniz. Githup linkleri üzerimden ilgili çalışmanın dökümanına erişebilirsiniz.