• Sonuç bulunamadı

2. YAPAY ZEKA

2.3. Yapay Zeka Teknolojileri

2.3. Yapay Zeka Teknolojileri

2.3.1. Uzman sistemler

Uzman sistemler (US), belirli bir alanda sadece o alan ile ilgili bilgilerle donatılmış ve problemlere çözümler getirebilen, çözümü kesin belli olmayan problem tipleri için bazı algoritmik olmayan uzmanlıkları somutlaştıran, hem makine hem de insan müdahalesine ihtiyaç duyan bilgi uygulamaları olarak bilinir.

Araştırmacı DENDRAL ile başlayan çalışmalar sonucunda, 1976 yılında Stanford Üniversitesinde Araştırmacı Fiegenbaum ve arkadaşları tarafından bakteriyolojik ve menenjitik hastalıkların tedavisine yönelik bir sistem olan ilk uzman sistem MYCIN ortaya atılmıştır. Son zamanlarda uzman sistemlerin geliştirilmesinde US kabuklarından (expert system shell) faydalanılmaktadır. Kabuk sistemler genellikle bir karar mekanizması, boş bir bilgi tabanı, kullanıcı ile sistem arasındaki iletişimi sağlayan bir arayüz ve bilgi mühendisinin kullanabileceği bir US programlama dili kullanarak konunun uzmanından edindiği bilgileri bu birim aracılığıyla bilgi tabanına aktarır.

LEONARDO ve KAPPA gibi US kabukları bunlara örnek verilebilir. Ayrıca kullanıcının kendisinin özel çıkarım mekanizması geliştirmesine imkan veren daha gelişmiş sistemler de mevcuttur (Sağıroğlu vd., 2003).

Bir uzman sistem, Kural Tabanı, Data Tabanı ve Kural Çözümleyici gibi üç parçadan oluşur. Kural tabanında, kural çözümleyicinin sonuca varmak için kullanacağı kural kümesi bulunur. Pek çok uygulamada Kural tabanı IF-THEN kural yapısında tutulur. Data tabanında probleme özgü olgular tutulur. Bu olgular IF-THEN kural yapısındaki koşulların değerleridir. Kural çözümleyici ise kural tabanındaki kurallara bakarak yeni kurallar veya sonuçlar üretir. Böyle bir sistemde doğal bir dil arabirimi kullanılması ile kullanıcının akıllı bir sistem üzerinden bir uzman ile bağlantı kurması sağlanabilir.

Uzman sistemlerin elemanları ve arayüzleri:

• Bilgi tabanı (knowledge base): Uzmanın bildirilerinden oluşur. If–then kurallarıyla yapılandırılır.

• Çalışma alanı (working space): Problem çözümünde gerekli özel bilgileri bulundurur.

• Çıkarım birimi (inference engine): Bilgi tabanından ve problemin özel verilerinden gelen tavsiyelerle değişen sistemin merkezindeki kod (Tektaş vd., 2003).

2.3.2. Yapay sinir ağları

Bilgisayarların olayları öğrenmesini sağlayan teknolojidir. Genellikle örnekler kullanılarak olayların girdi ve çıktıları arasındaki ilişkiler öğrenilir. Yapay sinir ağı yolu ile öğrenilen bilgiler ile benzer olaylar yorumlanarak karar verilir ve problemler çözülür (Öztemel, 2003). Yapay sinir ağları, non-lineer olmaları ve olasılıksal davranışları nedeniyle lineer metotlara göre daha iyi çözümlere ulaşılabilmesine izin vermektedir (Clarkson, 1999).

2.3.3. Zeki etmenler

Bunlar bağımsız karar verebilen bilgisayar sistemleridir. Hem donanım hem de yazılım olarak geliştirilmektedirler. Birden fazla yapay zeka tekniğini kullanabilirler.

Öğrenme ve gerçek zamanlı çalışabilme özellikleri vardır. Algılama, kavrama ve eylem olmak üzere genel olarak üç aşama vardır. Dış dünyadan gelen bilgiler algılandıktan sonra yorumlanır, gereksiz bilgiler ayıklanır ve önem derecelerine göre sıralanır. Daha sonra bilgi işleme, karar verme, problem çözme, planlama, öğrenme vb. işlemler gerçekleştirilir. Bilgi işleme sonucunda oluşturulan problem ve çözümlere göre sistemin davranışları belirlenir (Öztemel, 2003).

2.3.4. Bulanık mantık

Bulanık mantık (Fuzzy Logic) kavramı ilk kez 1965 yılında California Berkeley Üniversitesinden Prof. Lofti A. Zadeh’in bu konu üzerinde ilk makalelerini yayınlamasıyla duyulmuştur. O tarihten sonra önemi gittikçe artarak günümüze kadar gelen mantık, belirsizliklerin anlatımı ve belirsizliklerle çalışılabilmesi için kurulmuş katı bir matematik düzen olarak tanımlanabilir (Sağıroğlu vd., 2003).

Bulanık mantık teknolojisinde, 0-1 ikili mantık yerine çok değerli, ara değerleri de alabilen, uygulayabilen düşünceler ve uygulamalar vardır. Doğru veya yanlış yerine

biraz doğru biraz yanlış şeklinde açılımlar sergilenir (Pirim, 2007). Bulanık mantık ile klasik mantık arasındaki temel fark bilinen anlamda matematiğin sadece aşırı uç değerlere izin vermesidir. Klasik matematiksel yöntemlerle karmaşık sistemleri modellemek ve kontrol etmek bu nedenle zordur. Bulanık mantık daha niteliksel bir tanımlama olanağı sağlar. Kesin olarak karar verilemeyen olaylar için uzmanlar normal, yüksek, düşük, yaklaşık gibi linguistik değişken kavramları kullanmaktadırlar. Bulanık mantık, bilgisayarların da bu gibi durumlarda karar verebilmesi için geliştirilmiş bir teknolojidir. Bulanık mantık ile ‘normal’ gibi kavramların bilgisayar tarafından anlaşılması sağlanır. Bulanık mantık şu sürece göre çalışmaktadır;

Bulanıklaştırma (Fuzifikasyon) → Bulanık Önermeyi Đşleme → Netleştirme (Defuzifikasyon) (Öztemel, 2003).

Son yıllarda, bulanık mantık ve yapay sinir ağları, kontrol, karar destek ve denetim gibi geniş alanlarında uygulanmaya başlanmıştır (Wang and Lei, 1999: Detlef, 1997;

Lihvoh et al., 1998). Bu iki hesaplama yazılım tekniği, belirsizlik ve kesinsizlik sorunlarını ortadan kaldırmak için kullanılmış olmalarına rağmen, her ikisinin de kendine özgü dezavantajları vardır. Bulanık mantığın en büyük dezavantajlarından birisi; açıklama yeteneğine rağmen, öğrenme yeteneğinin düşük olmasıdır. Öte yandan yapay sinir ağları örneklerden öğrenebilir fakat genellikle elde edilmiş sonuçları açıklayamaz. Bu noktada bulanık mantık sistemlerinin öğrenebilme kapasitesini artırmak amacıyla iki sistemi birleştiren “neuro-fuzzy” sistemler geliştirilmiştir (Wang and Lei, 1999: Tsoukalas, 1997). Bulanık sinir ağları, eş zamanlı yapay sinir ağı/bulanık mantık sistemleri, işbirlikli neuro-fuzzy modeller, neuro-fuzzy bağlamında geliştirilmiştir.

Bulanık mantık sistemleri, örneğin; santrifüj pompa denetim uygulamalarında, elde yalnızca sezgiye dayalı ve doğruluğu kesin olmayan olağandışı hata ve sonuçlar varken kullanılır. Fakat bulanık mantık sisteminin başarıyla uygulanabilmesi açısından en önemli engel, tam ve konu ile ilgili bulanık bir ilişki (bulanık bilgi çıkarımı) elde etmektir. Bu bilgiyi sağlamak için en büyük kaynak insan uzmanlığıdır. Öte yandan, kesin ve tam insan bilgisinin elde edilemediği durumlarda, dikkate alınan sistem

girdi/çıktı verilerinden bu ilişkiyi çıkarmak arzu edilen bir durumdur. Bu durum özellikle mekanik araç denetim ve tanı durumlarında iki sebepten dolayı kullanışlıdır;

birincisi; bir sistemin davranışının tam olarak anlaşılamadığı durumlarda, ileri düzey araştırmalar ve ayarlamalar için, bir dizi bulanık girdi/çıktı ilişkisi elde etmek veya bulanık uzman sistemler yapılandırmak amacıyla, ikincisi ise; bulanık bir sistem yapılandırıldığında sistemin uyumu ve başarıya ulaşması çevrim içi yapay sinir ağları öğrenmesi gerçekleştirilerek denetim ve tanı koyma performansı artırılabilir (Wang and Lei, 1999).

2.3.5. Genetik algoritmalar

Genetik algoritmalar, canlılardaki doğal gelişim prensibine dayanmaktadır.

Karmaşık optimizasyon problemlerinin çözülmesinde kullanırlar. Bir problemi çözebilmek için öncelikle rasgele başlangıç çözümleri belirlenmekte, daha sonra bu çözümler birbirleri ile birleştirilerek performansı yüksek çözümler elde edilmektedir (Öztemel 2003).

Genel olarak bir genetik algoritmada; çözümlerin genetik olarak ifade edilmesi, çözümlerin başlangıç popülasyonunun oluşturması için bir yöntem, çözümleri uygunluk açısından değerlendirecek bir değerlendirme fonksiyonu (yani çevre), genetik yapıyı değiştirecek genetik operatörler ile popülasyon büyüklüğü gibi kontrol parametre değerlerine ihtiyaç vardır. Bu algoritmalarda, araştırma uzayında bulunan bazı çözümlerin oluşturduğu bir başlangıç yoğunluğu kullanılmaktadır. Bu başlangıç yoğunluğu her kuşakta doğal seçme ve tekrar üreme işlemleri vasıtasıyla tekrar geliştirilir. Son kuşağın en uygun bireyi problem için optimal bir çözüm olmaktadır. Bir genetik algoritmada potansiyel çözümler ile ilgili bilgiler, diziler (string) şeklindeki sayılarla ifade edilir. Optimizasyonun başlangıcında çoğunlukla rasgele olarak, bir sayı üretme jeneratörü tarafından bir grup çözüm üretilir. Başlangıç yoğunluğunun üretilmesini takiben, her çözümün uygunluğu veya iyiliği, seçilen bir uygunluk fonksiyonu kullanılarak değerlendirilir.

Uygunluk fonksiyonunun seçimi probleme bağlıdır. Seçme, çaprazlama ve mutasyon gibi genetik operatörler, elde edilen iyi çözümlerden denenmiş yeni çözümler üretmek için kullanılırlar. Bu iyileştirme işlemi, daha önceden belirlenen bir jenerasyon sayısına veya tatmin edici bir sonuca ulaşılıncaya kadar devam ettirilir. Birçok seçenek operatörü vardır. Bu operatörlerden ekilmiş (seeded) seçme, daha iyi çözüm arasındaki yoğunluktan seçme işlemini gerçekleştirir. Rasgele (random) seçme, o andaki elde edilen çözümlerden tamamen rasgele olarak yeni bir yoğunluk oluşturur. Seçkin (elite) operatörü, her zaman en iyi çözümü bir kuşaktan diğerine kopyalar. Çaprazlama operatörü, var olan iki çözümün uzantılarının belirli bir noktadan itibaren yer değiştirmesi ile denenmemiş yeni iki çözüm üretir. Mutasyon operatörü ise, var olan bir çözümün herhangi bir bitinin terslendirilmesi ile yeni bir çözüm üretir (Sağıroğlu vd., 2003).

Genel olarak genetik algoritma, çözüm bilgisinin hiç olmadığı veya çok az olduğu bir durumla aramaya başlar. Çözüm çevreden gelen etkileşime ve genetik operatörlere bağlıdır. Genetik algoritma, aramaya paralel bir şekilde, birbirinden bağımsız noktalardan başlar, bu nedenle alt optimal çözümlere takılma olasılığı azdır. Bu nedenle karmaşık arama problemleri (birden çok alt çözüm kümesi olan) için en iyi optimizasyon tekniği olarak bilinir (Tektaş vd., 2002).