Ana içeriğe geç

Yapay Zekâda Bulanık Mantık: İlkeler, Uygulamalar ve Python Uygulama Rehberi

İkilikten nüansa: bulanık mantığın akıllı yapay zeka sistemlerini nasıl güçlendirdiğini ve insanın karar verme davranışını nasıl taklit ettiğini keşfedin.
· 12 dk. oku

Yapay Zeka ile Keşfedin

Gerçek dünyadaki problemler söz konusu olduğunda, kararlar kesin olarak doğru ya da yanlış şeklinde sınıflandırılamaz; bunun yerine kısmen doğru ile kısmen yanlış arasında bir yerde yer alırlar. Tam da burada bulanık mantık devreye girer. Kesin olarak tanımlanmayan, olasılıklar yelpazesinde beliren kavramları ele alır. 

Belirsizlikler ve kesin olmayan verilerle çalışmaya esneklik kazandırarak, bulanık mantık geleneksel ikili mantık sistemlerinin eksik kaldığı noktaları giderir ve insanın karar verme süreçlerini yansıtır.

Burada, bulanık mantığın yapay zekâdaki ilkelerini, mimarisini ve uygulamalarını inceleyerek, karmaşık ortamlarda gelişmiş muhakeme ve etkili karar vermeyi nasıl mümkün kıldığını vurgulamak istiyorum. Yapay zekâ yolculuğunuza yeni başlıyorsanız, yolunuza ışık tutması için AI Fundamentals beceri parkuruna göz atmanızı öneririm.

Bulanık Mantık Nedir?

Bulanık mantık (FL), ikili mantığın kesin olarak DOĞRU veya YANLIŞ çıktıları yerine EVET ve HAYIR arasında doğruluk derecelerini dikkate alarak insanın karar verme biçimini taklit eden bir akıl yürütme yaklaşımıdır. Lotfi Zadeh tarafından geliştirilen bulanık mantık, girdilere olasılıklar atayarak incelikli ve esnek muhakemeyi mümkün kılar.

Bulanık mantık ve ikili mantık

Bulanık mantık ile ikili ya da boolean mantık arasındaki farklara biraz daha yakından bakalım:

  • İkili mantık: Kesin girdilerle çalışır ve DOĞRU ya da YANLIŞ çıktılar üretir.
  • Bulanık mantık: Daha gerçekçi kararlar için çok ya da az gibi ara durumlara izin verir.

Bulanık mantık vs ikili mantık

Görsel: Yazar

Bulanık mantığın yapay zekâdaki önemi

Bulanık mantık, belirsizlik, muğlaklık ve kesin olmayan verilerle başa çıkarak sistemlerin kararlarını insanlara daha çok benzetmesini sağlar; karar alma davranışımızı yansıtan çeşitli özellikler sunar: 

  • Kesin olmayan girdilerle çalışır
  • Durumlar arasında daha yumuşak geçişler sağlar
  • Karmaşık ortamlarda incelikli muhakemeyi mümkün kılar

Yapay zekânın daha geniş kavramlarını ve uygulamalarını keşfetmek için şu DataCamp Yapay Zekâ kursuna göz atmayı düşünün.

Bulanık mantığın gerçek dünya uygulamaları

Bulanık mantık, günlük hayatımızdaki birçok teknolojinin arkasındadır: 

  • Ev aletleri: Çamaşır makineleri ve klimalarda performansı optimize etme
  • Otomotiv sistemleri: Hız sabitleyici ve vites geçişlerini iyileştirme
  • Tıbbi tanı: Farklı şiddet derecelerindeki semptomları değerlendirme
  • Kontrol sistemleri: Endüstriyel otomasyon ve enerji santrallerini yönetme

Bulanık mantığın insana benzer muhakemesi, belirsizlik ve karmaşıklığı yönetmede güçlü bir araç olmasını sağlar.

Bulanık Mantığın Temellerini Anlamak

Artık bulanık mantığın temel tanımına ve yapay zekâdaki kullanımına aşina olduğumuza göre, bazı temel kavramlara daha ayrıntılı bakalım.

Bulanık kümeler ve üyelik fonksiyonları

Bulanık Mantık, bulanık kümeler kavramını ortaya koyar; bu kümeler, klasik kümelerden farklı olarak katı dahil olma/dışlanma yerine kısmi üyeliğe izin verir. 

Klasik kümelerde bir eleman ya:

  • Kümeye aittir (üyelik değeri = 1) 
  • Ait değildir (üyelik değeri = 0)

Buna karşılık bulanık kümeler, 0 ile 1 arasındaki değerlerle temsil edilen üyelik derecelerine olanak tanır.

Üyelik fonksiyonu, girdi değerlerini bir kümeye üyelik derecelerine eşleyen, bulanık mantığın temel bir kavramıdır. 

Örneğin bir sıcaklığın "sıcak" olup olmadığını belirlemede, üyelik fonksiyonu 0 (hiç sıcak değil) ile 1 (tamamen sıcak) arasında bir doğruluk derecesi atar; ara değerler kısmi doğruluğu temsil eder.

Bu esneklik, bulanık mantığın belirsizlik ve kesin olmayla etkin biçimde başa çıkmasını sağlar.

Bulanık kurallar ve çıkarım sistemleri

Bulanık mantık, girdiler ve çıktılar arasındaki ilişkileri bulanık bir şekilde ifade eden EĞER-O HALDE kuralları aracılığıyla çalışır. Örneğin:

  • EĞER sıcaklık "orta derecede sıcak" ise O HALDE fan hızı "orta"dır.

Bu kurallar, karar vermek için birden fazla bulanık kuralı birleştiren bulanık çıkarım sistemleri tarafından işlenir. Süreç şunları içerir:

  1. Girdi değerlerine göre her bir kuralın doğruluk derecesini değerlendirme.
  2. Uygulanabilir tüm kuralların sonuçlarını mantıksal işlemlerle birleştirme.
  3. Bulanık bir çıktı oluşturma ve bunu durulaştırma (defuzzification) yöntemleriyle kesin bir değere dönüştürme.

Bu yapı, bulanık mantık sistemlerinin insan muhakemesini taklit etmesini sağlar ve kontrol sistemleri, tıbbi tanı ve yapay zekâ gibi uygulamalarda değerli kılar.

Bulanık kümeler, üyelik fonksiyonları ve çıkarım sistemlerinden yararlanarak, bulanık mantık kesin olmayla başa çıkmak ve incelikli kararlar üretmek için sağlam bir çerçeve sunar.

Bulanık Mantık Sisteminin Mimarisi

Bir bulanık mantık sistemi, girdileri işlemek, insan benzeri muhakemeyi uygulamak ve eyleme dönük çıktılar üretmek için birlikte çalışan dört temel bileşenden oluşur.

Bulanık Mantık Sisteminin Mimarisi

Görsel: Yazar

1. Bulanıklaştırma

Bulanıklaştırma, sensörler tarafından ölçülen kesin girdileri—örneğin sıcaklık veya basınç—üyelik fonksiyonları kullanarak bulanık değerlere dönüştürür. Bu bulanık değerler, farklı kategorilere (ör. "soğuk", "ılık" veya "sıcak") üyelik derecelerini temsil eder ve sistemin kesin olmayla etkin biçimde başa çıkmasını sağlar.

2. Bilgi tabanı

Bilgi tabanı, uzmanlar tarafından sağlanan EĞER-O HALDE kurallarını ve üyelik fonksiyonlarını içerir. Bu kurallar, dilsel girdileri eyleme dönük çıktılara çevirerek karar verme sürecini yönetir. Bulanık mantık tasarımındaki gelişmeler, etkin çalışmaya yetecek kural sayısını sıklıkla azaltarak bulanık denetleyicilerin geliştirilmesini ve ayarlanmasını kolaylaştırmıştır.

3. Çıkarım motoru

Çıkarım motoru, bulanık girdiler ile bilgi tabanında depolanan kurallar arasındaki uyum derecesini değerlendirerek insan muhakemesini taklit eder. Bu değerlendirmeye göre hangi kuralların etkinleştirileceğine karar verir ve bunların sonuçlarını denetim eylemleri oluşturmak üzere birleştirir. Bu süreç, bulanık mantık sistemindeki karar vermenin özünü oluşturur.

4. Durulaştırma

Durulaştırma, çıkarım motoru tarafından üretilen bulanık çıktıyı kesin bir değere dönüştürür. Bu adım, bulanık denetim eylemlerini gerçek dünya uygulamalarına uygun, kesin ve eyleme dönük çıktılara çevirir. Birçok durulaştırma tekniği vardır ve yöntem seçimi, belirli sistem gereksinimlerine bağlıdır.

Bulanıklaştırma, sağlam bir bilgi tabanı, çıkarım motoru ve durulaştırmayı entegre ederek, bir bulanık mantık sisteminin mimarisi karar süreçlerindeki belirsizlik ve karmaşıklığı ele almak için güçlü bir çerçeve sunar.

Yapay Zekâ Sistemlerinde Bulanık Mantık Uygulaması: Adım Adım Rehber

Bulanık mantığın yapay zekâ sistemlerinde uygulanması, karmaşık ortamlarda iyileştirilmiş karar vermeyi mümkün kılan birkaç yapılandırılmış adımı içerir. Örnek olarak basit bir otomatik klima sistemini kullanacağız. 

İşte sürece ilişkin kısa bir rehber:

1. Dilsel değişkenleri ve terimleri tanımlayın

Sisteme ilişkin girdi ve çıktı değişkenlerini belirleyin ve bunları dilsel terimlerle tanımlayın. Bizim örneğimizde şunlar olacak: 

Girdiler:

  • Sıcaklık: "Düşük", "Orta", "Yüksek"
  • Nem: "Düşük", "Orta", "Yüksek"

Çıktı:

  • Fan Hızı: "Düşük", "Orta", "Yüksek"

Bu dilsel terimler, girdi koşullarının aralığını ve istenen çıktı eylemlerini tanımlar.

2. Üyelik fonksiyonlarını oluşturun

Her bir dilsel terim için üyelik fonksiyonları geliştirerek belirli bir girdinin (bizim örneğimizde hem sıcaklık hem nem) bir bulanık kümeye ne ölçüde ait olduğunu niceliksel hâle getirin. Bu fonksiyonlar, girdi değerlerini 0 ile 1 arasında kısmi üyeliği gösteren aralığa eşler.

3. Bulanık kuralları formüle edin 

Girdiler ile istenen çıktı arasındaki ilişkiyi yakalamak için EĞER-O HALDE kurallarından oluşan bir küme geliştirin. Bu kurallar, değişen koşullar altında karar vermeyi simüle eder.

Klima Sistemi için Örnek Kurallar:

  1. EĞER sıcaklık yüksek VE nem yüksekse O HALDE fan hızı yüksektir.
  2. EĞER sıcaklık orta VE nem yüksekse O HALDE fan hızı ortadır.
  3. EĞER sıcaklık düşük VE nem düşükse O HALDE fan hızı düşüktür.

4. Çıkarım motorunu geliştirin

Geçerli girdi değerlerine göre bulanık kuralları değerlendirecek bir çıkarım motoru uygulayın. Motor, hangi kuralların geçerli olduğunu belirler ve çıktıları birleştirerek bulanık bir sonuca ulaşır.

Örnek Senaryo:

  • Girdi değerleri: Sıcaklık = 32°C ("Orta" ve "Yüksek"te kısmi üyelik), Nem = %75 ("Orta" ve "Yüksek"te kısmi üyelik).
  • Uygulanabilir kurallar:
    • Kural 1: Yüksek sıcaklık ve yüksek neme bağlı kısmi doğruluk.
    • Kural 2: Orta sıcaklık ve yüksek neme bağlı kısmi doğruluk.

Motor, bu kısmi doğrulukları birleştirerek bulanık bir çıktı oluşturur.

5. Durulaştırmayı gerçekleştirin

Bulanık çıktıyı eyleme dönük denetim için kesin bir değere dönüştürün. Nihai çıktıyı hesaplamak için ağırlık merkezi (centroid) yöntemi gibi durulaştırma yöntemlerini kullanın.

Örnek:

  • Toplanmış bulanık çıktı: Kural etkinleşmesine bağlı olarak "Orta" ve "Yüksek" fan hızlarının bir kombinasyonu.
  • Durulaştırılmış çıktı: Toplanmış çıktının ağırlık merkezini hesaplayın ve belirli bir fan hızı değeri elde edin (ör. maksimum hızın %70'i).

Bu adımları izleyerek, yapay zekâ sistemleri belirsizlikle etkin biçimde başa çıkmak ve çeşitli uygulamalarda insan benzeri kararlar almak için bulanık mantığı entegre edebilir. Anlayışınızı derinleştirmek ve bulanık mantık uygulamasına daha fazla örnek görmek için DataCamp'in bu kapsamlı Python ile bulanık metin eşleştirme eğitimine göz atın.

Bulanık Mantık Python Örneği

Şimdi Python kullanarak uygulamalı bir örnek gerçekleştireceğiz. Bunu yapmak için önce scikit-fuzzy kütüphanesini kurmanız gerekir. 

! pip install scikit-fuzzy

Ardından, ilgili Python kodunu üreteceğiz.

1. Gerekli kütüphaneleri içe aktarın

Python'da kodumuzu çalıştırmak için gerekli kütüphaneleri içe aktarıyoruz. 

import numpy as np
import skfuzzy as fuzz
from skfuzzy import control as ctrl

2. Dilsel değişkenleri tanımlayın (girdiler ve çıktı)

Burada girdileri (temperature ve humidity) ve çıktıyı (fan_speed) bulanık değişkenler olarak tanımlıyoruz. Her değişkenin, olası gerçek dünya ölçümlerini temsil eden belirli bir değer aralığı vardır.

temperature = ctrl.Antecedent(np.arange(15, 41, 1), 'temperature')
humidity = ctrl.Antecedent(np.arange(0, 101, 1), 'humidity')
fan_speed = ctrl.Consequent(np.arange(0, 101, 1), 'fan_speed')

3. Üyelik fonksiyonları 

Üyelik fonksiyonları, belirli bir değerin (ör. sıcaklık veya nem) "düşük", "orta" veya "yüksek" gibi kategorilere ne ölçüde ait olduğunu tanımlar. Basitlik için bunlar üçgensel fonksiyonlar (trimf) olarak temsil edilir.

# For temperature
temperature['low'] = fuzz.trimf(temperature.universe, [15, 15, 25])
temperature['medium'] = fuzz.trimf(temperature.universe, [20, 25, 30])
temperature['high'] = fuzz.trimf(temperature.universe, [25, 40, 40])

# For humidity
humidity['low'] = fuzz.trimf(humidity.universe, [0, 0, 50])
humidity['medium'] = fuzz.trimf(humidity.universe, [25, 50, 75])
humidity['high'] = fuzz.trimf(humidity.universe, [50, 100, 100])

# For the speed of the fan
fan_speed['low'] = fuzz.trimf(fan_speed.universe, [0, 0, 50])
fan_speed['medium'] = fuzz.trimf(fan_speed.universe, [25, 50, 75])
fan_speed['high'] = fuzz.trimf(fan_speed.universe, [50, 100, 100])

4. Bulanık kuralları tanımlayın

Kurallar, girdiler ve çıktılar arasındaki ilişkileri kurar. Örneğin:

  • Kural 1: Hem sıcaklık hem nem yüksekse, fan hızı da yüksek olmalıdır.

Bu kurallar, sistemdeki karar verme sürecine yön verir.

rule1 = ctrl.Rule(temperature['high'] & humidity['high'], fan_speed['high'])
rule2 = ctrl.Rule(temperature['medium'] & humidity['high'], fan_speed['medium'])
rule3 = ctrl.Rule(temperature['low'] & humidity['low'], fan_speed['low'])

5. Kontrol sistemi

ControlSystem, bulanık kuralları çalışan bir modele derler. ControlSystemSimulation ise sistemi belirli girdi değerleriyle simüle etmemizi sağlar.

fan_ctrl = ctrl.ControlSystem([rule1, rule2, rule3])
fan_simulation = ctrl.ControlSystemSimulation(fan_ctrl)

6. Girdi değerleri ve hesaplama

Burada, belirli girdi değerleri (ör. sıcaklık için 32°C ve nem için %75) verilir. Sistem bu girdileri bulanık kuralları kullanarak işler ve karşılık gelen fan hızını hesaplar.

# Input values
fan_simulation.input['temperature'] = 32  # Example temperature (°C)
fan_simulation.input['humidity'] = 75    # Example humidity (%)

# Perform computation
fan_simulation.compute()

Sistem, bulanık mantık hesaplamasına dayalı olarak fan hızı için kesin bir değer çıktılar. Örneğin:

Fan Speed: 78.33%

Yapay Zekâda Bulanık Mantığın Uygulamaları

Tahmin edebileceğiniz gibi, gerçek dünyada bulanık mantığın sistemleri iyileştirdiği pek çok örnek vardır. İşte bazıları: 

Tüketici elektroniği

Bulanık mantık, belirsizlik ve değişken koşulları yöneterek cihaz performansını optimize eder. Örneğin çamaşır makineleri yük boyutuna göre çevrimleri ayarlar, klimalar ise sıcaklık ve fan hızını verimli şekilde düzenler.

Otomotiv sistemleri

Bulanık mantık, akıllı kontrol için araç sistemlerini geliştirir. İyi bir örnek olarak otomatik şanzımanların hız ve gaz pedalı konumuna göre optimum vites değişimlerini belirlemek için bunu kullanması; uyarlanabilir hız sabitleyici ve ortam yönetim sistemlerinin ise anlık ayarlamalar için buna dayanması verilebilir.

Sağlık

Yapay zekâ sağlıkta yaygın olarak kullanılır ve bulanık mantık, insan sağlığındaki değişkenliği ele alarak tıbbi tanı ve izlemeyi destekler. Örneğin tanı sistemleri semptomları ve test sonuçlarını analiz ederek olasılıksal tanılar sağlar; hasta izleme sistemleri hayati bulguları takip ederek anormallikleri tespit eder.

Endüstriyel otomasyon

Bulanık mantık, güvenilirliği sağlamak için karmaşık endüstriyel süreçleri yönetir. Örneğin kimyasal üretimde, bulanık denetleyiciler reaktörlerde sıcaklık ve basıncı düzenleyerek tutarlı kalite sağlar.

Robotik

Bulanık mantık, robotların belirsiz ortamlarda etkin biçimde gezinmesini sağlar. Gerçek zamanlı yol planlama ve engelden kaçınma için bulanık mantık kullanan otonom robotlara aşinasınızdır; bu sayede güvenli ve verimli hareket sağlanır. 

Bulanık mantığın belirsizlikle başa çıkma ve dinamik koşullara uyum sağlama yeteneği, onu çeşitli yapay zekâ uygulamalarında vazgeçilmez kılar.

Bulanık Mantığın Avantajları ve Sınırlamaları

Gördüğümüz gibi, bulanık mantık insan muhakemesini taklit ederek karmaşık problemlere çözümler sunan çok yönlü ve güçlü bir araçtır. Ancak her yaklaşım gibi bunun da güçlü ve zayıf yönleri vardır. Bunları anlamak, avantajlarından yararlanırken zorluklarını ele almanıza yardımcı olur.

Avantajlar

  • Kesin olmayan verileri işler: Bulanık mantık, kesin olmayan, gürültülü veya bozulmuş girdilerle etkin biçimde çalışabilir; bu da onu son derece uyarlanabilir kılar.
  • Anlaşılması ve uygulanması kolaydır: Kümeler kuramından gelen yalın matematiksel kavramlara dayanır; inşa edilmesi ve anlaşılması erişilebilirdir.
  • İnsana benzer muhakeme: İnsan karar süreçlerini taklit ederek, karmaşık gerçek dünya problemlerine verimli çözümler sunar.
  • Düşük kaynak gereksinimi: Bulanık mantık algoritmaları minimum veri ve bellek gerektirir; kaynak açısından verimlidir.

Sınırlamalar

  • Sistematik tasarım eksikliği: Bulanık mantıkla problem çözmeye yönelik standart bir yaklaşım yoktur; bu da belirsizlik ve tutarsızlığa yol açabilir.
  • Doğrulamada zorluk: Birçok durumda kesin matematiksel tanımların yokluğu nedeniyle bulanık mantık sistemlerinin özelliklerini ve etkinliğini kanıtlamak zorlu olabilir.
  • Olası doğruluk takası: Kesin olmayan verileri iyi yönetirken, bulanık mantık bazen yüksek hassasiyetten ödün verebilir.

Bulanık mantığın belirsizlik ve karmaşıklığı ele alma yeteneği büyük bir güçtür; ancak sınırlamaları, etkinliği sağlamak için dikkatli uygulama ve tasarım gereksinimine işaret eder.

Sonuç

Bulanık mantık, sistemlerin belirsizlikle başa çıkmasını ve insan muhakemesini taklit etmesini sağlar. Esnekliği ve kesin olmayan verileri işleyebilmesi, tüketici elektroniğinden robotik ve sağlığa kadar çeşitli uygulamalarda onu gerekli kılar.

Sağlam mimarisi ve uygulama kolaylığıyla bulanık mantık, karmaşık problemlere verimli çözümler sunar. Sistematik tasarım eksikliği ve olası doğruluk takasları gibi zorluklar bulunsa da, güçlü yönleri sınırlamalarını açık ara geride bırakır.

Bulanık mantığın insan benzeri muhakeme ile hesaplamalı kesinlik arasında köprü kurmadaki rolü, yapay zekâ teknolojilerini ilerletmede süregelen önemini güvence altına alır. Yapay zekâ alanına tamamen yeniyseniz, DataCamp'in AI Fundamentals beceri parkuruyla başlayabilirsiniz. Daha ileri düzey kullanıcılar için, yapay zekâ becerilerini geliştirmelerine yardımcı olacak diğer iyi kaynaklar şunlardır: 

Josep Ferrer

Yazar

Josep Ferrer

Josep, Avrupa projelerine odaklanan serbest bir Veri Bilimcidir; veri depolama, işleme, ileri analitik ve etkili veri hikâyeleştirme konularında uzmandır. 

Eğitmen olarak Navarra Üniversitesi'nin Yüksek Lisans programında Büyük Veri dersleri vermekte ve Medium, KDNuggets ve DataCamp gibi platformlarda yayımladığı makalelerle görüşlerini paylaşmaktadır. Josep ayrıca Databites bülteninde (databites.tech) Veri ve Teknoloji üzerine yazmaktadır. 

Katalonya Politeknik Üniversitesi'nden Mühendislik Fiziği lisans derecesine ve Pompeu Fabra Üniversitesi'nden Akıllı Etkileşimli Sistemler yüksek lisans derecesine sahiptir.

Konular

İlgili