Bulanık Mantık ile Risk Değerlendirme — 1

Bu yazı dizisinde makinelerin insan gibi düşünebilme becerisini kazanmasında en önemli sıçrama noktalarından biri olan bulanık mantıktan bahsediyorum.

Cetin Karahan
DataBulls
9 min readFeb 10, 2022

--

Photo by Roberto Sorin on Unsplash

Giriş

Yazının sonunda olması gereken soruyu en baştan sorayım; bu yazıyı beğendiniz mi? Cevabınızın klasik küme teorisine göre ya da birazdan kısaca değineceğim binary (0 ve 1) cinsinden olması gerekiyor. Bu da seçeneklerinizin sadece “evet” ve “hayır” ile sınırlı olması demek. Medium alkışı cinsinden hayır “0”a, evet ise “50”ye denk geliyor. Yani “eh işte”, “hiç beğenmedim”, “ortalamanın üzerinde” gibi ara değerlerde cevap vermek istediğinizde de “0” ya da “50”yi seçmek zorundasınız.

Medium bu sorunu 1 ile 50 arasında istediğiniz sayıda alkış bırakabilmenize olanak sağlayarak gideriyor. Peki bu basit örnekteki gibi, ara değerlerin kullanılmasının mümkün olmadığı durumlarda ne yapacağız? Bir bilgisayara hayatın ve seçeneklerin sadece sıfır ve bir, siyah ve beyaz, doğru ve yanlıştan ibaret olmadığını nasıl anlatacağız?

İşte bu yazı dizisinde sıfır ve birlerden ibaret Aristo mantığı ile işleyen sisteme getirdiği yaklaşım ile makinelerin insan gibi düşünebilme becerisini kazanmasında en önemli sıçrama noktalarından biri olan bulanık mantıktan bahsedeceğim.

Dünyada (00000010) çeşit insan vardır; binary’yi anlayanlar ve anlamayanlar.

Konu biraz uzun olduğu için üç parçaya ayırdım. Bu ilk kısımda çok teknik detaylara girmeden bulanık mantığa neden ihtiyaç duyulduğu, klasik küme teorisinden farkları ve bulanık mantık işlemlerini gerçekleştirmek için bilinmesi gereken temel tanımlardan bahsediyorum. Bu tanımlardan bahsederken birçok kaynakta bulabileceğiniz standart anlatım yerine genel bir çerçeve çizmeyi, adımlara bölüp teori ve formül vermek yerine temel mantığı aktarmaya çalışmayı tercih ettim. İlk kısımdan sonra paylaşacağım örnek ile (serinin ikinci ve üçüncü yazıları) sadece kağıt kalem kullanarak basit bir bulanık mantık hesaplaması yapabileceksiniz.

Leibniz’in ikili sayma sistemi: soyut matematiğin temeli

Yeni bir konuyu -özellikle de bilgi teknolojileri alanında- öğrenmenin en iyi yolu öğrenmeye tarihçesi ve arkasında yatan felsefe ile başlamak. Günümüz bilgi teknolojileri dünyasını 1600'lü yıllardan, Blaise Pascal’ın “Pascaline” adlı sadece toplama ve çıkarma işlemi yapan hesap makinasından, Gottfried Leibniz’in ikili sayma sisteminden, Charles Babbage’ın programlanabilir bir bilgisayar fikrinden başlayarak okumak hem konuyu anlamayı kolaylaştırıyor, hem de hiçbir teknolojinin bir anda ortaya çıkmadığını, bugün kullandığımız tüm teknolojik araçların temellerinin aslında yüzlerce yıl önce yapılmış olan çalışmalara dayandığını göstererek insana şevk ve ilham veriyor.

Teknolojinin gelişimindeki ana motivasyon makinelerin insanlar tarafından yürütülen bazı faaliyetleri devralarak hem daha hızlı hem de daha az maliyetli biçimde gerçekleştirmesine dayanıyor. Günümüzde ise artık makinelerden insan gibi düşünmesi, insan gibi davranması, karar vermesi ve uygulaması bekleniyor. Bu da özetle makinelerin insanlaşması anlamına geliyor.

Klasik bilgisayar işleyişi var-yok, sıfır-bir, doğru-yanlış gibi yalnızca iki duruma dayalıdır. Makinelerin insanlar tarafından yürütülen görevleri üstlenmeye başlamasını işte bu iki durumu modelleyen, 1650–1700 yılları arasında Gottfried Wilhelm Leibniz tarafından geliştirilen, soyut matematiğin temeli olan ikili sayma sistemine (binary)borçluyuz. Aslında, bugün de kullandığımız tüm teknolojik cihazların çalışma mantığı Leibniz’in ikili sayma sistemine dayalıdır.

Hem bilgisayar kodları, hem de tüm elektrik devreleri sıfır ve bir mantığına dayanmaktadır. Bu mantık insanlar tarafından yürütülen birçok görevin makineler tarafından üstlenilmesi ve birçoğunun çok daha hızlı ve düşük maliyetli biçimde gerçekleştirilmesi için yeterli gelmekle birlikte, çok da karmaşık olmayan ancak insan öngörüsü, duygu ve deneyimlerinin de işin içine girdiği konularda yetersiz, hatta kimi zaman yanıltıcı olabilmektedir.

Klasik küme teorisi: sıcaklık 0,2°C arttığında hava ısınır mı?

Sıcak, soğuk, ılık, çok sıcak, çok soğuk veya genç, yaşlı, uzun, kısa, hafif, ağır gibi hemen herkese genel bir fikir veren nispeten subjektif sıfatlar içeren ifadeleri bilgisayara aktarmak ya da tam tersi, bilgisayarlardan çıktı olarak bu ifadeleri almak istersek nasıl bir durumla karşılaşırız?

Klasik anlayışta, ilk planda sıcaklık, yaş ya da boy nitelikleri sınıflandırılıp (ya da kümelere ayrılıp) eşik değerler belirlenir, daha sonra ilgili niteliğe ilişkin ölçüm gerçekleştirip ölçüm sonucunun hangi kümeye dâhil olduğu tespit edilir. Örneğin, sıcaklık için eşik değer olarak 15°C belirlendiğinde, 14,999…°C “soğuk” ya da “ılık” kümesinin üyesiyken 15,001°C “sıcak” kümesinin elemanı olur. Bu kadar küçük bir farkın sonucu tamamen değiştirmesi konusu birçok sistem için bir programlama problemidir.

Klasik küme teorisine göre boyu 1,69 m olan kişi orta boylu olarak nitelendirilirken 1,71 m olan kişi uzun boylu olarak tanımlanmaktadır.

Benzer bir durum Aristoteles’in çağdaşı Eubulides’e atfedilen, yığın paradoksu (sorites paradox) olarak bilinen -küçük sayıların paradoksu olarak da ifade edilir- durumda biraz daha net biçimde karşımıza çıkıyor. Yığın paradoksu özünde, küçük adımlarla yavaş yavaş ilerlerken gerçeklikten gerçek dışılığa geçişi ifade etmektedir. Yığın paradoksunun en meşhur örneklerinden biri falakros paradoksu olarak da bilinen kel adam paradoksudur.

Kafasında hiç saç olmayan adam keldir. Başında bir tel saçı olan adam da keldir. Sayıyı iki, üç, dört biçiminde artırmaya devam edersek, tüm adamlar keldir. Ya da tam tersi, kafasında 100 bin saç teli olan adam kel değildir. Saçından bir tel kopardığımızda da kel olmaz. Aynı biçimde iki, üç, dört… o zaman saçında tek bir tel kalan adam da kel sayılmaz.

Klasik mantık, ya da bilgisayar diliyle 0–1 mantığı bu duruma arzu edilen çözümü getirememektedir. İşte bu noktada, yapay zekânın alt kümelerinden biri olarak da nitelendirilen bulanık mantık büyük avantaj sağlamaktadır.

Bilgisayarla konuşabilmek: 0 ve 1'in ötesi

Bulanık mantığın en büyük avantajı insan düşünce yapısına yakınlığı ve belirsizlik koşullarındaki başarısı, daha açık ifade ile, insan düşünce yapısını sıfır ve birlerden oluşan bilgisayar dünyasına aktarma becerisidir.

Zadeh[1]’in ifadesiyle bulanık mantık teorisi, makinelere, insanların subjektif verilerini işleyebilme, tecrübe ve sezgilerinden faydalanarak çalışabilme kabiliyeti kazandırır. Bulanık sistemler, eğitilebilir dinamik sistemlerdir. Bir fonksiyonu, çıktıların girdilere ne şekilde bağlı olduğunun matematiksel modelini bilmeksizin tahmin ederler. Sayısal, bazen dilsel örnek verilerden “deney yoluyla” öğrenirler. Uyarlanabilir bulanık sistemler, karmaşık süreçleri kontrol etmeyi, neredeyse insanlar gibi öğrenebilirler.

Klasik küme teorisine göre, bir eleman bir kümenin ya üyesidir, ya da üyesi değildir. Kavramsal olarak, bulanık küme teorisi bir nesnenin birden çok kümenin elemanı olmasına izin vermektedir. Her küme için, o kümeye bir üyelik derecesi bulunmaktadır. Örneğin, kredi notu için “düşük”, “orta” ve “yüksek” olmak üzere üç derecenin olduğu bir durumda, klasik küme teorisine göre, kredi notu bilindiğinde bunun hangi kümenin elemanı olduğu net olarak ifade edilebilir. Kredi notu 3.5 ise, bu nota sahip üye % 100 “yüksek” kümesine aittir. Ya da kredi notu 0,99 ise ait olduğu küme “düşük”tür.

Kredi notu derecelendirmesinde klasik küme yaklaşımı

Aşağıdaki şekilde ise kredi notlarına ilişkin bulanık kümeleri gösteren grafik verilmiştir. Her küme, kendisine ait bir üyelik fonksiyonuna sahiptir ve bu fonksiyon üyelik derecesini gösterir (Bu örnekte bu üyelik fonksiyonu yüksekliği ve tepe uzunluğu 1, taban uzunluğu 3 birim olan yamuktur). Örneğin; 3.5 kredi notu % 50 “yüksek” % 50 “orta” kümesinin elemanıdır.

Kredi notu derecelendirmesinde bulanık küme yaklaşımı — 1

Aşağıda verilmiş olan bir başka örnekte ise yine benzer biçimde 0 ile 5 arasında değişen kredi notları için yamuk ve üçgen fonksiyonlarının birlikte kullanıldığı bulanık kümelere ilişkin grafik verilmiştir.

Kredi notu derecelendirmesinde bulanık küme yaklaşımı — 2

Bu örnekte de kredi notu 1,4 için üyelik dereceleri gösterilmiştir. Örneğe göre, kredi notu 1,4 olan üye ya da müşteri 0,25 (ya da %25) “Orta” 0,75 (ya da %75) düşük kümesinin üyesidir. Peki bunun anlamı nedir? Eğer klasik yaklaşımla değerlendirecek olsaydık kredi notu 1,4 olan müşteri “orta” riskli grubunda yer alacak, ve bu grup için öngörülen hak ya da yükümlülüklere sahip olacaktı. Bulanık mantık ile değerlendirme yapıldığında ise çok daha hassas bir sonuca ulaşacağız.

Kısaca bulanık küme; tanımlanan bir kesin kümede, evrensel kümenin elemanlarına 0–1 kapalı aralığında değerlerin atanmasıyla, bu elemanların kesin kümenin elemanı olup olmadıklarını ve atanan değerlerle bu elemanların kümeye aitlik derecelerinin belirlendiği kümelerdir.

Bu kısa ama anlaşılması belki biraz güç tanımı en klasik örnek üzerinden biraz somutlaştırırsak; bir trafik kazasının iki tarafını düşünelim. Trafik kazalarında tarafların kusur oranı belirlenirken 8'lik bir skala kullanılır. Taraflardan birinin kusuru 3/8 ise diğer tarafın kusuru da 5/8'dir. Yani her iki taraf da kusurlu kümesinin elemanıdır. Birinin üyelik derecesi 0,375, diğerinin üyelik derecesi ise 0,625'tir. Eğer klasik küme teorisine göre kusur belirlenecek olsaydı taraflardan biri kusurlu (%100 kusurlu kümesinin elemanı) diğeri ise kusursuz (%0) olacaktı. Peki bunun bize katkısı nedir? Burada girişini yaptığımız konunun ikinci ve üçüncü yazılarında bu sorunun yanıtını almış olacağız. Ama kısaca burada belirteyim; bu sayede rakamlara dökemediğimiz ifadelerle (az kusurlu, çok kusurlu gibi) matematiksel işlemler yapabilecek, rakamlara dökebildiğimiz ifadeler için de çok daha hassas sonuçlara ulaşabileceğiz.

Bulanık sistem: girdiler-çıktı, eğer-ise yapısı, üyelik fonksiyonları ve üyelik dereceleri

Bulanık bir sistem tasarlanırken, sistemin girdileri ve çıktıları belirlenir ve her bir girdi ve çıktı için bulanık kümeler oluşturulur. Bu girdi ve çıktı kümeleri arasındaki ilişki ise mantıksal işlemler aracılığıyla kurulur. Bir mantıksal kuralın yapısı “eğer” ile başlar, şartlar sıralanır ve en son “ise” bağlacından sonra “sonuç” değeri ile yapı sona erer.

Mantıksal bir eğer — ise kuralına örnek olarak:

EĞER sıcaklık düşük nem yüksek ve zemin düz-pürüzsüz İSE buzlanma riski yüksektir

ifadesi verilebilir.

Bu ifadede “sıcaklık” birinci girdi, “nem” ikinci girdi, “zemin” ise üçüncü girdi olarak belirlenmiştir. Sıcaklık ve nem için bulanık kümeler “düşük”, “orta” ve “yüksek”, zemin için bulanık kümeler ise “düz-pürüzlü”, “düz-pürüzsüz”, “eğimli-pürüzlü” ve “eğimli-pürüzsüz” olarak belirlenmiş, sistemin çıktısı ise “buzlanma riski” olarak tanımlanmıştır. Sistemde gerekli işlemler yapıldıktan sonra bu riskin derecesi elde edilecektir (riskin derecesi ile kastedilen yüzdelik dilimde ifade edilen sayısal bir sonuçtur).

Bulanık sistem tasarımı için bilinmesi gereken temel kavramlardan bir diğeri ilgi haritası ya da üyelik fonksiyonlarıdır. Üyelik fonksiyonu, bulanık sistemdeki girdi faktörlerinin 0 ile 1 aralığında üyelik derecesinin belirlenmesi için kullanılan fonksiyondur. Üçgen, yamuk, Gaussian, Π biçiminde gibi farklı fonksiyonlar kullanılabilmektedir.

Üyelik fonksiyonlarını iki girdiye sahip tek çıktısı olan bir bulanık sistem üzerinden örneklendirecek olursak:

Girdiler eğitim yılı sayısını ve yıl olarak deneyimi, çıktı ise maaşı ifade etsin. Eğitim yılının terim kümesini {düşük, orta, yüksek} olarak, değer aralığını da [0–15] yıl olarak belirleyelim. Deneyim yılı için aynı parametreler {düşük, orta, yüksek} ve [0–30] yıl olsun. Çıktı değerimiz olan maaş için de parametrelerimiz {çok düşük, düşük, orta, yüksek, çok yüksek}, değer aralığı ise [20.000 — 200.000]$ olsun.

Deneyim ve eğitim girdilerinden maaş çıktısını oluşturmak için öncelikle ilgili bulanık kümeler tanımlanmalıdır. Bu kümeler tanımlanırken istatistiki veriler, uzman görüşleri, kişinin kendi yargısı gibi birçok kaynak ayrı ayrı ya da bir arada kullanılabilir. Örneğimizdeki iki girdiye ait bulanık üyelik fonksiyonları aşağıdaki biçimdedir:

Girdi-1 ve Girdi-2 için bulanık üyelik fonksiyonları
Çıktı-1 için bulanık üyelik fonksiyonu

Bu fonksiyonlar bulanık sistemdeki ilk işlem adımı olarak, girdilerin ait olduğu kümelere üyelik derecelerinin bulunmasında kullanılır.

Yazının bu ilk bölümünde bulanık mantığın tarihçesi, hesaplama metotları, bulanık bir sistemin tasarım aşamaları gibi konulara yer verilmemiş, yalnızca bulanık mantık konusunda genel bir çerçeve çizilmiştir.

Basit bir bulanık mantık sisteminin tasarımını bir sonraki yazıda, örnek bir risk değerlendirme uygulaması için bulanık sistem tasarımı ile aktarmaya çalışıyorum. İkinci yazı biraz uzun olduğu için “Risk” ve “Bulanık Sistem Tasarımı” olarak ikiye böldüm. Aşağıdaki bağlantı adreslerinden bu yazılara erişebilirsiniz.

[1] Bulanık mantık kavramı ilk kez, 1965 yılında Prof. Lotfi A. Zadeh isminde Azerbaycanlı bir bilim adamı tarafından ortaya atılmıştır.

Kaynaklar:

Bu çalışmada kısmen Yüksek Lisans tezimden, kısmen de IGI Global — Encyclopedia of Information Science and Technology, Fourth Edition (Chapter 588) için hazırladığımız Fuzzy Logic Approach in Risk Assessment başlıklı bölümden faydalandım:

1- Bulanık küme teorisi ile yüksek seviyede buzlanma potansiyelini tahmin eden program tasarımı / A software predicting upper-level icing potential by fuzzy set theory (212863)) YÖK’ün tez merkezinden erişilebilir.)

Diğer Yazılar:

--

--

Cetin Karahan
DataBulls

CISA, Internal Auditor, Industrial Engineer MSc., MIS PhD candidate -/- I only write about something that I really have competence -/-