You are on page 1of 429

Yapay Zeka Ve Makine Öğrenmesi

Ders 1
Ders İçeriği ve Yapay Zekaya Giriş

Dr. Öğretim Üyesi Hamza Osman İLHAN


hamza.ilhan@netkent.edu.tr
Ders İçeriği
 Yapay Zeka Tanımlar, Tarihçe
 Arama (Kör ve Sezgisel)
 Bilgi Temsili ve Veri Analitiği
 Çıkarım Mekanizmaları
 (tümdengelim) Tüm insanlar ölümlü. Socrates bir
insan. O halde Socrates’de ölümlü.
 (tümevarım) Bugüne kadar ki tüm insanlar öldü. O
halde hepimiz öleceğiz.
 Uzman Sistemler
 Makine Öğrenmesi / Yapay Öğrenme
 Derin Öğrenme
Yapay Zeka nedir?
Zeka nedir?
İnsanları diğer canlılardan ayıran özellik?, hayvanlar zeki olamaz mı?
Yapay Zeka nedir?
Zeka nedir?
Websters sözlüğüne göre: Öğrenme ve problem çözme kapasitesi

Hedef insansa, onu modellemeliyiz.

İnsan gibi düşünmek Rasyonel düşünmek


İnsan gibi hareket etmek Rasyonel hareket etmek

Rasyonel / doğru davranış: Eldeki verilere göre hedefe


ulaşmada maksimum fayda sağlayan davranış
Değişik Fikirler

 Robots will take over the earth


 Kevin Warwick
 Computers will never be intelligent
 Roger Penrose
 Humans will choose to become computers
 Ray Kurzweil
 Computers will evolve to be human
 Mark Jeffery
Yapay Zeka - Tanımlar

 Minsky: “İnsanlar tarafından yapıldığında zeka gerektiren


şeyleri makinelere yaptırma arayışıdır.”
 Chris Riesbeck: “Şu temel soruya cevap aramaktır:
Bilgisayarlar neden bu kadar aptal?”
Neden YZ ile uğraşıyoruz?

 YZ’nin temel hedefleri:


 Makineleri daha akıllı / yararlı hale getirmek
 İnsan zekasını daha iyi anlamak için onu simule eden
programlar yazmak.
Akıllı / Zeki Davranış’ın ipuçları
 Tecrübelerden öğrenme
 Yeni bir duruma başarılı ve çabuk adaptasyon
 Problem çözebilme
 Bilgiyi bulma ve kullanma
 Muhakeme edebilme
 Raslantılardan yararlanabilme
 Farklılar arasındaki benzerlikleri görebilme
 Benzerler arasındaki farkları görebilme
 Yeni fikirler / kavramlar üretebilme
 Çok anlamlı / çelişki içeren bilgileri kullanabilme
Düşünce deneyi
 1000 yıl öncesinde yaşayan birisinin eline bir bilgisayar
versek ve yapabildiklerini göstersek (hesaplama,
oyunlar, filmler, yüz tanıma vs.), ona zeki der mi?

Size dersin sonunda yüzümü sıyırıp bir


android olduğumu gösterirsem bana zeki
der misiniz?
YZ ile ilgili disiplinler

 Bilgisayar Bilimleri
 Psikoloji
 Felsefe
 Dilbilim
 Nöroloji
Turing Test

Loebner Yarışması
ELIZA
 1965 - Joseph Weizenbaum
 Bir terapisti simule eder.

Men are all alike.


IN WHAT WAY?
They’re always bugging us about something or other.
CAN YOU THINK OF A SPECIFIC EXAMPLE?
Well, my boyfriend made me come here.
YOUR BOYFRIEND MADE YOU COME HERE?
He says I’m depressed much of the time.
I AM SORRY TO HEAR THAT YOU ARE DEPRESSED.
It’s true that I am unhappy.
DO YOU THINK COMING HERE WILL HELP YOU NOT TO BE UNHAPPY?
I need some help, that much seems certain.
TELL ME MORE ABOUT YOUR FAMILY.
My mother takes care of me.
WHO ELSE IN YOUR FAMILY TAKES CARE OF YOU?
My father.
YOUR FATHER
ELIZA nasıl çalışır?

 Eliza çalışma mekanizmasına


baktığımızda tüm etkileyiciliğini (?) biraz
kaybeder.
Eğer uyan şablon varsa dönüşüm
uygula ve cevap ver
 (X me Y) ---> (X you Y)
 (I remember X) ---> (Why do you remember X just now?)
 (My {family-member} is Y) ---> (Who else in your family is Y?)
 (X {family-member} Y) ---> (Tell me more about your family)

Yoksa genel amaçlı cevaplarından


birini ver
ELIZA nasıl çalışır?

 Çoğunlukla kullanıcı girişini dönüştürerek kullanıcıya


söyler. (Rogerian bir psikoterapi tekniği)
 Turing Testinde
 Zeki olmadığı açık.
 Az da olsa kandırabildiği insanlar var.
Eliza Neden Terapist?

Popular Science Türkiye, 2013 Aralık Sayısı


Searle’nin Çin Odası

Şöyle bir şekil geldiyse çıkışa x. çekmecedeki şekli koy.


İçerdeki insan Çince biliyor mu?
Oda Çince biliyor mu?
Biliyor gözükmesi yetmez mi?
Ned Block’un Soru – Cevap
ağacı
 X saatten az her mümkün söyleşinin içinde yer
aldığı bir ağaç yapısı.
 Belki de depolayamayacağımız kadar büyük ama
varsayalım ki elimizde.
 Zeka yalnızca soruları zeki bir insandan ayırt
edilemeyen bir yolla yanıtlama yeteneği değildir.
 Bir davranışı zeki diye adlandırmak bu davranışın
nasıl üretildiği hakkında bir önermede bulunmaktır.
Rudolf Arnheim1- Yöntem
sorunu

 Zekanın çözebildiği her problemin, sadece zeka ile


çözüleceğini söyleyemeyiz.
 Zihinsel süreçler çıktıları aracılığıyla tanımlanmadıkça
ya da zekanın işleyişine dair görüşümüz mekanist bir
niteliğe kavuşmadıkça bilgisayarların kullandığı
yönteme zekice denemez.

1 Rudolf Arnheim, Görsel Düşünme, Metis , 2004


Rudolf Arnheim- Yöntem
sorunu
 Bilgisayarların kullandığı yöntem, başarılı bir tepkiye
rastlayana kadar olası birçok tepki arasında kör gibi
koşmaktır.
 Bu yöntemin, 1890’larda psikolog Thorndike’ın akıl
yürütemediklerini kanıtlamak üzere hayvanlara
atfettiği yöntemle temelde aynı olduğunu görmek
utanç veriyor. Bilgisayarlar sadece daha hızlılar,
hepsi bu.
Hesaplama Gücü
YZ savunucuları kabaca iki
gruba ayrılırlar:
 Aşağıdan yukarıyacılar : Beynin fiziksel yapısının
bilişsel yapımızda önemli bir yere sahiptir.
 Yapay sinir ağları (bu dünyanın bir kuramına sahip
olmadanda zeki bir şekilde davranmanın
mümkünlüğü)
 Yukarıdan aşağıyacılar : Simgesel temsil şemalarına
ve düşünme kurallarına odaklan. Beynin fiziksel
yapısına takılma.
 Arama
 Mikro dünyalar
 Marvin Minksy frame’ler, Roger Shank senaryolar
 Sağduyu bilgisi
YZ karşıtları

 John Searle: Tek başına sentaks ne miktarda olursa


olsun semantiği ortaya çıkarmaz. Bilgisayarlar
işledikleri simgelerin anlamlarına dair hiçbir anlayışa
sahip değildir. Anlam yoksa zeka da yoktur.
 Gödel Teoremi: İnsanların doğruluğunu bildiği ama
makinelerin bunu ispatlayamadığı doğrular vardır.
 John Lucas: Böyle doğrular olduğuna göre insan
zihni makinelerin kapasitesinin üzerindedir.
Turing - Searle
 Turing: ‘Makineler düşünebilir mi?’ sorusu felsefi bir
yaklaşımdan ziyade deneysel bir yaklaşımla ele
alınmalı. Çünkü ilki sonuç vermiyor.
 Searle – Deneysel bir yaklaşım olamaz. Çünkü bir
programı takip eden şey asla düşünemez.
 ? – İnsanlarda bir programı takip ediyor olabilirler mi?
YZ’nın Kısa Tarihi

 1943: McCulloch ve Pitts, ilk yapay nöron tasarımı


 1949: Hebbian öğrenme kuralı (iki nöron aynı anda
aktif olurlarsa aralarındaki bağ güçlenir.)
 1950: Turing’in makalesi
 1951: İlk yapay sinir ağı bilgisayarı (Minsky &
Edmonds)
1950 - 1966: Büyük beklentiler
dönemi
1950 Turing: 50 yıl içinde sıradan sorgulayıcıların
en az yüzde 30’u 5 dakikalık bir dialogdan
sonra doğru kararı veremeyecek.
1957 Newell ve Simon: On yıl içinde dünya satranç
şampiyonu bir bilgisayar olacak.
1950- 60 arası: Otomatik dil çevirisi çok
yakınımızda
…neden gerçekleşmediler

 Dünya / Sağduyu (Commonsense) bilgisinin büyük


etkisi
 Problemlerin karmaşıklığının üssel olması
 Kısıtlı dünyaların (microworlds) gerçek dünyaya
model olamaması
1966 - 1973: Birazda
Gerçekler
 1969: Minsky ve Papert’ın yapay sinir ağlarının
birçok problem türünde başarısızlığını kanıtlamaları,
yapay sinir ağları çalışmalarına ayrılan fonların
durdurulması
 1969: Bryson ve Ho, çok katmanlı yapay sinir
ağlarını keşifleri, 1980’lere kadar ilgi çekmemesi
 Otomatik çeviri sistemlerinde hüsran
 “the spirit is willing, but the flesh is weak”
 İngilizce’den Rusça’ya çevirisi:
 “the vodka is good but the meat is rotten”
1979 - 1990: Güzel Zamanlar

 Uzman Sistemlerin ortaya çıkışı


 Kural tabanlı, sonuçları insanlarca kolaylıkla
anlaşılabilen kısıtlı alanlarda uzmanlık görevi gören
sistemler (ör: MYCIN, kan enfeksiyonlarının analizi)
 1981 - 1991: Japonya Prolog temelli çalışan zeki
makineler üretmek için ‘Fifth Generation’ adlı projesini
duyurdu.
 Amerika ve Avrupa’da geride kalmamak için YZ
projelerine büyük paralar yatırdı.
 Yazılımda yeni klişe: ‘now with AI!’
 YZ firmalarının sayısında büyük artış
~1991 - ~1995: YZ Kışı

 Fifth Generation durduruldu


 YZ endüstrisinde yeni odak:
 İnsanların yerini tamamen alabilecek
programlar üretmeye çalışmak yerine;
 Uygun problemlere YZ tekniklerini uygulamak
 İnsanları destekleyen programlar üretmek
Günümüz

 Deep Blue Garry Kasparov’u 1997’de yendi.


 Sürücüsüz arabalar (Darpa yarışması, 132 mil)
 1991 Körfez savaşında, Amerika tüm lojistik
planlamasını YZ yazılımlarına yaptırdı.
 Mars’ta otonom bir robot
Günümüz

 Kısıtlı alanda konuşma anlayan programlar (Pegasus


seyahat yardımcısı)
 Konuşmayı yazıya çeviren programlar (Google
Speech to text)
 Otomatik Teorem ispatlayıcılar
 Ameliyat robotları (HipNav)
Günümüz

 SKICAT: Uzay teleskoplarından gelen terabyte’larca


görüntü verisinde ilginç nesneleri tanımlayan
program, % 94 sınıflandırma başarısı, insanın hız
kabiliyetlerinin ötesinde
 Hava tahmin sistemleri artık daha ilerideki tarihlerde
ve daha küçük zaman aralıklarında çalışıyorlar.
 Google news: Canlı gazete oluşturan sistem
Günümüz
 Postanelerde otomatik adres tanıma ve mektup
kümeleme
 Bankalarda
 İmza doğrulama sistemleri
 Otomatik kredilendirme kararları
 Kredi kartı yolsuzluklarını otomatik belirleyebilme
 Web’de gezinti dizinden yaş, cinsiyet, tahmini
 Dijital Kameralar: Otomatik yüz bulma ve
odaklanma
 Bilgisayar oyunlarında zeki ? Karakterler
 IBM’s Watson (2011)
AI çalışmalarında karşılaşılan
sürprizler
 İnsanlar için zor, makineler için kolay görevler:
 Satranç
 Taşıma planlama
 Havayollarında uçuş saatlerini planlama
 Fraud (internette kredi kartı yolsuzluğu) tanıma
 Teorem ispatlama
 Kare bulmaca
AI çalışmalarında karşılaşılan
sürprizler
 İnsanlar için kolay, makineler için zor görevler:
 Konuşma tanıma
 Yüz tanıma
 Beste / resim yapma
 Motor aktiviteler (yürümek)
 Dil anlama
 Dünya bilgisi (Ör: Balıkların kaç ayağı var?)
Yapay Zeka: Doğal Zeka:
•Daha kalıcı •Yaratıcı
•Kopyalanabilir •Tecrübelerini konudan
•Geniş kitlelere konuya aktarabilme
yayımlanabilir •Adaptasyon
•Daha ucuz •Bilinçli çaba olmadan
•Her zaman tutarlı modelleri öğrenebilme
•İşleyişi belgelenebilir •Var
•Var / Yok
Asimov’un Kuralları

1. Bir robot insanlara zarar veremez, insanlara zarar


verilmesine izin veremez.
2. Bir robot, insanların 1.kurala uymak şartıyla tüm
isteklerini yerine getirmelidir.
3. Bir robot ilk iki kurala uymak şartıyla kendi varlığını
sürdürmek zorundadır.

İnsanlar böyle giderse kendi türlerini yok edecekler,


Bu durumda insanların yönetimi insanlara bırakılamaz?
Yapay Zeka Ve Makine Öğrenmesi

Ders 2
Yapay Zekaya Giriş ve Ajanlar

Dr. Öğretim Üyesi Hamza Osman İLHAN


hamza.ilhan@netkent.edu.tr
Yapay Zeka nedir?
Zeka nedir?
Websters sözlüğüne göre: Öğrenme ve problem çözme kapasitesi

Hedef insansa, onu modellemeliyiz.

İnsan gibi düşünmek Rasyonel düşünmek


İnsan gibi hareket etmek Rasyonel hareket etmek

Rasyonel / doğru davranış: Eldeki verilere göre hedefe


ulaşmada maksimum fayda sağlayan davranış
Neden YZ ile uğraşıyoruz?

 YZ’nin temel hedefleri:


 Makineleri daha akıllı / yararlı hale getirmek
 İnsan zekasını daha iyi anlamak için onu simule eden
programlar yazmak.
Turing Test

Loebner Yarışması
Searle’nin Çin Odası

Şöyle bir şekil geldiyse çıkışa x. çekmecedeki şekli koy.


İçerdeki insan Çince biliyor mu?
Oda Çince biliyor mu?
Biliyor gözükmesi yetmez mi?
Rudolf Arnheim1- Yöntem
sorunu

 Zekanın çözebildiği her problemin, sadece zeka ile


çözüleceğini söyleyemeyiz.
 Zihinsel süreçler çıktıları aracılığıyla tanımlanmadıkça
ya da zekanın işleyişine dair görüşümüz mekanist bir
niteliğe kavuşmadıkça bilgisayarların kullandığı
yönteme zekice denemez.

1 Rudolf Arnheim, Görsel Düşünme, Metis , 2004


Rudolf Arnheim- Yöntem
sorunu
 Bilgisayarların kullandığı yöntem, başarılı bir tepkiye
rastlayana kadar olası birçok tepki arasında kör gibi
koşmaktır.
 Bu yöntemin, 1890’larda psikolog Thorndike’ın akıl
yürütemediklerini kanıtlamak üzere hayvanlara
atfettiği yöntemle temelde aynı olduğunu görmek
utanç veriyor. Bilgisayarlar sadece daha hızlılar,
hepsi bu.
Günümüz

 Deep Blue Garry Kasparov’u 1997’de yendi.


 Sürücüsüz arabalar (Darpa yarışması, 132 mil)
 1991 Körfez savaşında, Amerika tüm lojistik
planlamasını YZ yazılımlarına yaptırdı.
 Mars’ta otonom bir robot
Günümüz

 Kısıtlı alanda konuşma anlayan programlar (Pegasus


seyahat yardımcısı)
 Konuşmayı yazıya çeviren programlar (Google
Speech to text)
 Otomatik Teorem ispatlayıcılar
 Ameliyat robotları (HipNav)
Günümüz

 SKICAT: Uzay teleskoplarından gelen terabyte’larca


görüntü verisinde ilginç nesneleri tanımlayan
program, % 94 sınıflandırma başarısı, insanın hız
kabiliyetlerinin ötesinde
 Hava tahmin sistemleri artık daha ilerideki tarihlerde
ve daha küçük zaman aralıklarında çalışıyorlar.
 Google news: Canlı gazete oluşturan sistem
Günümüz
 Postanelerde otomatik adres tanıma ve mektup
kümeleme
 Bankalarda
 İmza doğrulama sistemleri
 Otomatik kredilendirme kararları
 Kredi kartı yolsuzluklarını otomatik belirleyebilme
 Web’de gezinti dizinden yaş, cinsiyet, tahmini
 Dijital Kameralar: Otomatik yüz bulma ve
odaklanma
 Bilgisayar oyunlarında zeki ? Karakterler
 IBM’s Watson (2011)
AI çalışmalarında karşılaşılan
sürprizler
 İnsanlar için zor, makineler için kolay görevler:
 Satranç
 Taşıma planlama
 Havayollarında uçuş saatlerini planlama
 Fraud (internette kredi kartı yolsuzluğu) tanıma
 Teorem ispatlama
 Kare bulmaca
AI çalışmalarında karşılaşılan
sürprizler
 İnsanlar için kolay, makineler için zor görevler:
 Konuşma tanıma
 Yüz tanıma
 Beste / resim yapma
 Motor aktiviteler (yürümek)
 Dil anlama
 Dünya bilgisi (Ör: Balıkların kaç ayağı var?)
Yapay Zeka: Doğal Zeka:
•Daha kalıcı •Yaratıcı
•Kopyalanabilir •Tecrübelerini konudan
•Geniş kitlelere konuya aktarabilme
yayımlanabilir •Adaptasyon
•Daha ucuz •Bilinçli çaba olmadan
•Her zaman tutarlı modelleri öğrenebilme
•İşleyişi belgelenebilir •Var
•Var / Yok
Etmenler – Ajanlar (Agents)
Etmenler – Ajanlar (Agents)
 Ajan: Algılayıcıları ile ortam bilgilerini alan ve tepki
vericileri ile bu ortama tepki veren nesne
 Ajanın herhangi bir zamandaki algısal girdilerine
duyum (percept) adı verilir
 İnsan ajan:
Algılayıcılar: gözler, kulaklar,…
Tepki vericiler: ayaklar, eller, ağız…
 Robot ajan:
Algılayıcılar: kamera, kızılötesi sensörler,…
Tepki vericiler: çeşitli motorlar, mekanik kollar,…
Ajanın yapısı

Ne Yapmalı

Algılayıcı

algılar
Ortam
Ajan ?

hareketler

Tepkiverici

17
Ajanların Tasarımı
 Ajan programı
Algıları hareketlere dönüştüren işlev
 Mimari
Programların yürütüldüğü bilgisayarlı sistem
 Ajan = mimari + program
 Ajan programını tasarlamak için aşağıdakiler
hakkında bilgimiz olmalıdır:
Olası algılamalar ve hareketler
Amaçlar ve başarı ölçütü
Ajanın işlem yapacağı ortamın türü
Ajanlar ve Ortamları
Ajan fonksiyonu, ajanın algıladığı bilgileri (P)
hareketlere (A) dönüştürür:
F(P) → A
 Ajan programı, ajanın fiziki mimarisi üzerinde F(P )’yi
üretmek içindir

 Bir ajan, alıcılarından gelen bilgilere ve tepki vericiler


ile yapabileceklerine göre doğru hareketi yapmaya
yönelmelidir.
Örnek: Süpürge ajanının dünyası

Algılamalar: mekan ve içeriği, örn: [A,Kirli]


Hareketler: Sol, Sağ, Süpür, İşlem Yok
Bir Ajanın Dış Nitelikleri

 Bir ajanın belirli bir zamana kadar algıladığı her şey,


ajanın algı serisini (percept sequence) oluşturur.

 Matematik bakış açısıyla bir ajanın davranışı,


herhangi bir algı serisini bir eyleme eşleyen ajan
fonksiyonu (agent function) ile tanımlanır.

 Ajanı betimleyen ajan fonksiyonunu bir tablo ile


gösterebiliriz. Çoğu ajan için, eğer algı serisinin
uzunluğuna bir sınır getirmezsek, bu tablo çok
büyük, hatta sonsuz büyüklükte, olacaktır.
Algı Serisinden Eyleme İdeal Eşleme

 Ajanın davranışı yalnız algı serisine bağlı ise olası tüm


algı serilerine karşı gelen eylemler tablo haline
getirilerek bir ajan tanımlanabilir.
 Çoğu zaman bu tablo çok uzun olacaktır.

 Eşleme için tablonun her bir elemanının ayrı ayrı


belirtilmesi gerekmez
 Yazılacak bir program ile de ajan tanımlanabilir

 Eğer eşleme ajanı tanımlıyorsa ideal eşleme de


ideal ajanı tanımlar.
Örnek Eşleme
 Basit ajan: karekök fonksiyonu
 Algı serisi: Hesap makinasının tuşları
 İdeal eşleme: Girilen pozitif sayı x ise z2x olacak şekilde 4
basamak doğrulukta z'yi göstermek
 Tablo yerine Newton yöntemi kullanılarak yazılan program ile
ajan tanımlanabilir.
 Tablo çok uzun olmasına karşın ajan çok kısa bir programdır.

Tablo Program
Algı X Eylem Z Function SQRT(X)
1.0 1.0000 z1.0 /* ilk tahmin */
1.1 1.0488 repeat until |z2-x|<10-4
1.2 1.0954 zz-(z2-x)/(2z)
1.3 1.1401 end
... return z
Neden arama tablosu başarısızdır
 Ajan programı yazmanın en basit yolu tablo
kullanmaktır (look-up table)
 Bu durumda olası tüm algı serisinin bellekte tutulması ve
indeks kullanarak erişilmesi gerekir
 Tablo kullanımında aşağıdaki olumsuzluklar ortaya
çıkar:
 Oldukça fazla kayıt gerekir
 Satranç oynayan ajan için 35100 kayıt
 Tabloyu oluşturmak çok zaman alır
 Özerklik yoktur
 Ajanın tüm hareketleri önceden belirlenmiştir (kaydedilmiştir)
 Ajana bir derece özerklik tanınarak öğrenme mekanizması
oluşturulsa bile tüm girişler için tablonun doğru değerlerini
bulması sonsuza kadar sürer
Ajan Programı
function Ajan(algı) returns hareket
bellek ← Bellek_Güncelle(bellek, algı)
hareket ← En_İyi_Hareket(bellek)
bellek ← Bellek_Güncelle(bellek, hareket)
return hareket
Ajan Programları - Arama tablosu
function Tablo_Tabanlı_Ajan(algı) returns
hareket
algılar, /*başlangıçta boş */
tablo /* algılar üzere indekslenmiş tablo,
başlangıçta tam belirlenmiştir*/
algı’yı, algılar tablosunun sonuna ilave et
hareket ← Tabloya_Bak(algı, tablo)
return hareket
Mantıklı Ajanlar (Rasyonel)
 Algılayabildiklerine ve yapabildiklerine dayanarak
“doğru şeyler yapmak” için çaba gösteren ajanlar
 Mantıklı (rasyonel) bir ajan doğru şeyi yapandır:
tablosunda her giriş doğru olarak doldurulmuştur.
 Başarı ölçüsü: ajanın davranışının doğruluğunu
gösteren kıstas
 E.süpürgesi ajanın başarısı temizlediği kir miktarı, harcanan
zaman, tüketilen enerji, çıkardığı gürültü ile, vs. belirlenebilir
 Mantıklı ajan, her bir algılama için olası hareketler
içinden başarıyı en fazla yapanı seçmelidir.
 Genel bir kural olarak, başarım ölçütleri ajanın nasıl
davranması gerektiğini düşündüğümüz duruma
göre değil, çevrede gerçekte ne olmasını istiyorsak
ona göre tasarlanmalıdır.
Mantıklılık ve her şeyi başarmak
 Mantıklı olmak her şeyi başarmak değildir
 “Her şeyi başarmak” ajanın, tüm hareketlerinin ne ile
sonuçlanacağını bildiği anlamına geliyor
 Örnek: caddeyi geçerken, başına pencerenin düşeceğini
önceden bilmek ☺

 Mükemmelliğe gerek yoktur


 Her zaman doğru şeyler yapmak mümkün değildir
 Beklenen başarı, nelerin algılandığına bağlıdır (Örn, girdi
hatalı ise?)
Rasyonalite
 Herhangi bir zamandaki rasyonalite (mantıklılık) dört
şeye bağlıdır:
1. Başarı kriterini tanımlayan başarım ölçütü
2. Ajanın ortam hakkındaki ön bilgisi
3. Ajanın gerçekleştirebileceği eylemler
4. Ajanın o ana kadar olan duyum serisi

 İdeal mantıklı bir ajan


 Her bir algı serisi için
 algı serisi tarafından sağlanan kanıtları ve sahip olduğu içsel
bilgiyi kullanarak,
 başarım oranını en yüksek duruma getirecek eylemi
seçmelidir.
İdeal Ajanlar
 İdeal ajanı oluşturma
 Olası tüm algılama tümcelerinin harekete dönüştürülmesi
(haritalanması)
 İdeal dönüştürme: Her algılama tümcesi için belirlenmiş en
yüksek başarı ölçüsüne uygun cevabın bulunması

 Tabloya her zaman gerek duyulmaz


 Gereken tek şey dönüştürmenin tanımlanmasıdır
 Örnek: 15’in karekökünün hesaplanması için büyük tablo
yerine küçücük bir program yeterlidir
Her şeyi bilme, öğrenme ve özerklik

 Her şeyi bilen (omniscient) bir ajan, eylemlerinin


sonucunu da bilir ve ona göre davranır. Fakat
gerçekte her şeyi bilmek imkansızdır.
 Bu örnek, rasyonalitenin (mantıklı olmanın)
mükemmellik olmadığını göstermektedir.
 Rasyonalite beklenen başarımı olabildiğince
yükseltirken, mükemmellik gerçek başarımı
yükseltmektedir.
İdeal Ajanlar - Özerklik
 Eğer ajanın tüm hareketleri yalnız önceden
kaydedilmiş bilgilere dayanırsa, bu ajan özerk
değildir
 Ajanın özerklik davranışı onun deneyimi ile
belirlenmelidir
 Bazı başlangıç bilgileri ve öğrenme yeteneği gerekmektedir
 Özerk olmayan ajanlar esneklikten yoksundur
Özerklik
 Özerk kelimesi, burada insanın doğrudan kontrolü
altında olmayan anlamındadır
 Örnek: özerk kara aracı (insansız)
 Özerk olan ajanlar çevre koşulları değiştiğinde yeni
koşullara adapte olarak görevini başarı ile
sürdürebilir
 Ajan, sadece önceden verilen bilgileri kullanırsa
başarısız olma olasılığı yüksektir.
Ön Bilgiye Karşı Öğrenme - I
 Başarılı ajanlar, ajan fonksiyonunun hesaplanması
işini üç farklı aşamaya ayırır:
1. ajan tasarlanırken, hesaplamanın bir kısmı tasarımcıları
tarafından yapılır
2. ajan bir sonraki eylemini düşünürken daha fazla hesaplama
yapar
3. ve tecrübeden öğrenmesi sebebiyle davranışını değiştirmek
için daha da fazla hesaplama yapar

 Akıllı bir ajan, kısmi veya yanlış ön bilgiyi telafi


edecek şekilde öğrenebilmelidir:
=> Özerklik
Ön Bilgiye Karşı Öğrenme - II
 Yapay zekalı bir ajana, bir miktar ön bilgiyle birlikte
öğrenme yeteneği verilmesi mantıklı olacaktır.
 Çevresi hakkında yeterli tecrübe edindikten sonra,
mantıklı bir ajanın davranışı ön bilgisinden bağımsız
hale gelebilir
=> Tam özerklik

 Öğrenmenin işin içine katılması, farklı ortamlarda


başarılı olacak bir mantıklı ajanın tasarlanmasına
olanak verir.
Ajanın Nitelendirilmesi
Mantıklı ajanların tasarımı için PEAS
bileşenleri belirlenmelidir

PEAS bileşenleri: Bir ajanın hareketi sonucu


oluşan sonucun objektif değerlendirmesi için
gerekli bileşenler
Başarım ölçütü - Performance measure
Ortam - Environment
Tepki vericiler - Actuators
Algılayıcılar - Sensors
PEAS Örnek: Taksi süren ajan
Başarım Ölçütü Ortam Algılayıcılar Tepki vericiler

Güvenlik, hızlı Yol, diğer Kamera, sonar, hız Direksiyon, gaz ve


olmak, yasalara araçlar, ölçer, GPS, km fren pedalı, korna,
uymak, rahatlık, yayalar, sayacı, ivme ölçer, farlar, sinyaller vb.
kazanç, doğru yere yolcular motor algılayıcılar,
ulaşım kontrol paneli

 Şimdiki durumu bilmek için algılar kullanılır:


 Araba şimdi nerede?
 Arabanın şu anki hızı kaçtır?
 Hareket koşulları nasıldır?
Ajan: Harita çıkaran robot

P: Haritanın doğruluğu, işlem hızı, statik /


dinamik ortamlarda çalışabilmesi
E: Duvarlar, bina içi, dış ortam, statik /
dinamik, engeller
A: Tekerlerin yönü ve hızı, kamera kontrolü
S: Lazer / sonar / kızılötesi uzaklık algılayıcılar,
kamera
Ajan: Tıbbi tehşis uzmanı

P: Hastanın sağlığı, minimum gider, yasalara


uygunluk
E: Hasta, hastane, diğer çalışanlar
A: Ekran (sorular, testler, teşhis, tedavi,
tavsiye)
S: Klavye (semptonların, hastanın
cevaplarının girilmesi)
Ajan: Bantta ilerleyen balıkları
türlerine göre ayırıcı

P: Doğru yerdeki balık yüzdesi


E: Konveyor bantın üzerinde ilerleyen
balıklar, balıkların konduğu kasalar
A: X eklemli tutucu
S: Kamera, eklem açısı sensörleri
Ajan: İngilizce öğretmeni

P: Öğrencilerin testlerdeki başarısı


E: Bir grup öğrenci
A: Ekran (denemeler, tavsiyeler, düzeltmeler)
S: Klavye
Ortam Türleri
 Ajanın tasarımı için önemlidir
 Tam/kısmi gözlemlenebilir
 Zamanın verilmiş diliminde ajanın algılayıcıları tarafından
ortamın tüm durumunun gözlemlenmesi mümkün mü?
 Belirgin (deterministik)/Tahmini (stokastik)
 Deterministik ortam: Çevrenin bir sonraki durumu, mevcut
durum ve ajanın hareketleri tarafından belirlenebilir
 Epizodik (aralıklı, bağlantısız, bölümlü)/Ardışık (sıralı)
 Ajanın yaşamı küçük parçalara (epizotlara) bölünür.
Epizottaki hareketin seçimi, yalnız epizodun kendisine
bağlıdır.
 Epizot önceki epizotlara bağlı değil
Ortam Türleri
 Statik (durağan)/Dinamik
 Ajanın karar oluşturduğu (düşündüğü) süreç içinde ortam
değişirse bu dinamik ortamdır, değişmezse statik ortamdır.
 Yarı-dinamik: ortam değişmez, ama ajanın başarı
ölçüsünün değiştiği durum
 Ayrık/Sürekli
 Algılamalar veya hareketler sayılabilirse (ayrık ise) ortam
ayrık, sayılamıyorsa süreklidir
 Satranç ortamı ayrıktır, çünkü her hamlede sınırlı sayıda
hareket var
 Tek/Çoklu ajan
 Tek ajan ortamda kendi başına hareket eder. Çoklu ajanlar
işbirliği yaparlar
Ortam Türleri
 Günlük hayattaki problemlerin bir çoğunda kısmi
gözlemlenebilir, deterministik, ardışık, dinamik, sürekli
ve çoklu ajanlı bir ortam yapısı görülür.
Ortam Tam Belirgin Epizodi Statik Ayrık
Gözleml. (Determ.) (Bölüm.) (Sayılabil.)
Satranç (saatle) E E H Y.din. E
Satranç (saatsiz) E E H E E
Poker H H H E E
Taksi sürme H H H H H
Tıbbi teşhis H H H H H
Parça toplama H H E H H
robotu
İnter. İng. H H H H E
Öğretici
Ajan Türleri

Basit tepki ajanı


Model tabanlı ajan
Hedef tabanlı ajan
Fayda tabanlı ajan
Basit Tepki (Refleks) Ajanları

 Basit bir koşul ve eylem sıralamasından ibaret olan


vekiller
 Tanımlanan kural ve koşullara göre hareket ederler
 Belirlenen koşul gerçekleşince yine daha önceden
belirlenen fiili yerine getirirler
 Kurulu bir düzenek olarak düşünülebilir
 Örneğin fare kapanı, bir insan için fareyi yakalayan
bir vekildir ve farenin peyniri yemesiyle birlikte fareyi
yakalar
 Koşul: peynir yenmesi
 Fiil: farenin yakalanması
Basit Tepki Ajanları
 Ajanın hareketi yalnız şimdiki algılamalara bağlıdır,
eski algılamalar dikkate alınmaz

algılayıcılar
ajan
Şimdi dünya nasıldır

Ortam
Şimdi hangi hareketi
Koşul-hareket kuralları yapmalıyım

tepkivericiler
Basit Tepki Ajanları

 En basit ajan türü


 Geçmişteki duyumlarını yok sayarak, şu andaki
duyuma göre karar verir
 Basit refleksli elektrikli süpürge ajanı için program:
function REFLEKS-SÜPÜRGE-AJANI([konum,durum]) returns eylem
if durum = Kirli then return Temizle
else if konum = A then return Sağ
else if konum = B then return Sol

 Uygulama alanı kısıtlıdır


Model Tabanlı Ajanlar

 Dünyanın şimdiki durumunun yalnız o anki girişe


değil bir önceki duruma da bakılarak saptanması
gerekebilir
 eski algılara bağlı olan durumların saklanması gerekir
 Buna iç durum (internal state) denir

 Örneğin, öndeki araç frene bastı mı?


 Fren lambalarını kontrol etmek gerek
 Bu amaçla bir önceki görüntünün saklanması gerek
 Önceki görüntüde lambalar sönük & şimdikinde yanıyor =>
frene şimdi basıldı
Model Tabanlı Ajanlar

 Ajanın gözlemleri tam değilse (kısmen


gözlemlenebilir dünya) kullanılır
 İç durum bilgisinin zamanla güncellenmesi, 2 tip
bilginin ajan programında kodlanmasını gerektirir:
 Dünyanın ajandan bağımsız olarak nasıl geliştiği hakkında
bir miktar bilgi
 Ajanın eylemlerinin dünyayı nasıl etkilediği hakkında bir
miktar bilgi
 “Dünyanın nasıl işlediği” hakkındaki bu bilgi,
dünyanın modeli olarak adlandırılır.
Model Tabanlı Ajanlar
Algılayıcılar

Durum
Dünya şimdi
Dünya nasıl gelişiyor? nasıldır

Ortam
Hareketlerim dünyayı
nasıl etkiliyor
şimdi hangi hareketi
Koşul-hareket kuralları yapmalıyım

Tepkivericiler
ajan

 Hareketi seçmek için iç durum bellekte tutuluyor


 Algılayıcılar tüm dünya durumuna erişimi sağlayamıyor
Model Tabanlı Ajanlar
function Model_Tabanlı_Ajan(algı) returns eylem
static: durum, /* mevcut dünyanın durumu */
kurallar , /* koşul-eylem kuralları kümesi */
eylem /* Son yapılan eylem */
durum ← Durum_Güncelle(durum, eylem, algı)
kural ← Kural_Karşılaştır(durum, kurallar)
eylem ← Kural_Eylem[kural]
durum ← Durum_Güncelle(durum, eylem)
return eylem

 Durum-güncelleme: yeni dünya durumları


oluşturuluyor
Hedef Tabanlı Ajanlar

 Ortamın şu andaki durumunu bilmek, ne


yapılacağına karar vermek için her zaman yeterli
değildir.
 Bazen ajan, şu andaki durum betimlemesi gibi,
istenen durumları betimleyen bir tür hedef bilgisine
ihtiyaç duyar
 Arama ve planlama, ajanın hedeflerine ulaşmasını
sağlayan eylem serilerini bulmayı amaçlayan Yapay
Zeka çalışma alanlarıdır.
 Bu tip bir karar verme, daha önceden bahsedilen
koşul-eylem kurallarından, geleceği de hesaba
kattığı için farklıdır.
Hedef Tabanlı Ajanlar
 Basit Tepki Ajanı fren lambasını gördüğü zaman fren
yapar (refleks olarak)
 Hedef Tabanlı Ajan ise
 Öndeki aracın fren lambaları yandığı zaman onun
yavaşlayacağını çıkarır
 Öndeki araca çarpmama hedefini gerçekleştirecek eylem
ise fren yapmaktır
 Her ne kadar hedef tabanlı ajan etkin görünmese
de esnektir
 Örneğin yağış başladığı zaman frenlerin etkin bir şekilde
kullanılabilmesi için bilgisini yenileyebilir
 Basit Tepki Ajanı için ise çok sayıda koşul-eylem kuralı
yazmak gerekir
 Hedef Tabanlı Ajanlarda amacı değiştirerek farklı noktalara
erişmek mümkündür. Basit Tepki Ajanı ise sadece bir
noktaya gider
Hedef Tabanlı Ajanlar

algılayıcılar
ajan durum
Dünya şimdi
Dünya nasıl değişiyor
nasıldır
Benim hareketlerim

Ortam
nasıl olmalıdır hareketi yapmış
olsam ne olacak

Şimdi hangi
Hedefler hareketi yapmalıyım

tepkivericiler
Hedef Tabanlı Ajanlar
Fayda Tabanlı Ajanlar
 Hedef bilgisinin yanında, eylemin ne ölçüde fayda
getirdiği de dikkate alınır
 Bir dünya durumu diğerine tercih ediliyorsa, o durum daha
faydalıdır
 Daha çok tercih edilen durumun fayda değeri daha
yüksektir
 Bir fayda fonksiyonu ile ölçülür
 Herhangi bir durumu, tercih edilme derecesine göre, sayısal
bir değere dönüştüren fonksiyon
Fayda Tabanlı Ajanlar

algılayıcılar
ajan durum
Dünya şimdi
Dünya nasıl değişiyor
nasıldır
Benim hareketlerim

ORTAM
nasıl olmalıdır hareketi yapmış
olsam ne olacak

Bu durumda ben ne
Faydalar kadar mutlu olacağım

Şimdi hangi
hareketi yapmalıyım

Tepkiverici
Fayda Tabanlı Ajanlar
Öğrenen Ajanlar
 Ortamda yapılan bazı eylemlerin beklenen sonuca
nasıl hizmet ettiğine göre yeni kurallar tanımlanır
 Ajanın çalıştığı ortamın bilinmemesi halinde
kullanışlıdırlar
 Kendi kurallarını ve durum makinelerini oluşturabilir
veya değiştirebilirler
 Bu, ajanın başlangıçta bilinmeyen ortamlarda
çalışabilmesini ve sadece başlangıç bilgisinin izin
vereceği durumdan daha yetenekli hale gelmesini
sağlar
Öğrenen Ajanlar
 Öğrenen bir ajan dört kavramsal bileşene sahiptir:
1. Öğrenme Bileşeni
2. Başarım Bileşeni
3. Eleştirmen
4. Problem Oluşturucu
Öğrenen Ajanlar
 Başarım bileşeni, duyumları (algıları) alır ve
eylemlere karar verir
 Öğrenme bileşeni, eleştirmenden gelen ve ajanın
ne kadar iyi olduğunu gösteren geri beslemeyi
kullanarak, gelecekte daha iyi olması için başarım
bileşeninin nasıl değiştirilmesi gerektiğine karar verir.
 Problem oluşturucu, yeni ve bilgilendirici tecrübelere
yol açacak eylemler önerilmesinden sorumludur
Öğrenen Ajanlar
Performans standardı

ajan algılayıcılar

Eleştirmen

ORTAM
Geri bildirim
bilgi
Başarım bileşeni
Öğrenme bileşeni
değişimler

Öğrenme hedefleri

Problem oluşturucu
Tepki vericiler
Özet - 1
 Ajan, bir ortamda algılayan ve eylemde bulunan bir şeydir.
 Ajan fonksiyonu, bir duyum serisine karşılık ajanın
gerçekleştireceği eylemi belirler.
 Performans ölçütü, ajanın ortamdaki davranışını değerlendirir.
 Rasyonel ajan, gördüğü duyum serisine karşılık, başarım
ölçütünün beklenen değerini en yüksek seviyeye çıkarmaya
çalışır.
 Görev ortamını, başarım, dış ortam, gerçekleştiriciler ve
algılayıcıları içerir. Bir ajanı tasarlarken ilk adım mutlaka görev
ortamının mümkün olduğunca tam olarak belirtilmesi olmalıdır.
 Görev ortamları, çeşitli boyutlar doğrultusunda değişim
gösterir.
 Bunlar tam veya kısmi gözlemlenebilir, deterministik veya stokastik,
bağlantısız veya sıralı, durağan veya dinamik, ayrık veya sürekli ve
tek ajanlı ya da çok ajanlı olabilir.
Özet - 2
 Ajan programı, ajan fonksiyonunu uygular. Açığa çıkarılan ve
karar sürecinde kullanılan bilginin türünü yansıtan çeşitli ajan
programı tasarımları vardır.
 Basit tepki ajanları doğrudan duyuma yanıt verir.
 Model tabanlı ajanlar, dünyanın o andaki duyumda açığa
çıkmayan açılarını takip etmek için içsel durumlarını kullanır.
 Hedef tabanlı ajanlar, hedeflerine ulaşmak için eylemde
bulunur.
 Fayda tabanlı ajanlar beklenen fayda değerini en yüksek
seviyeye çıkarmaya çalışır.
 Bütün ajanlar başarımlarını öğrenme yoluyla arttırabilirler.
Yapay Zeka Ve Makine Öğrenmesi

Ders 3
Graflar ve
Kör Arama Algoritmaları

Dr. Öğretim Üyesi Hamza Osman İLHAN


hamza.ilhan@netkent.edu.tr
Graflar
 Graf, matematiksel anlamda, tepelerden ve bu
düğümler arasındaki ilişkiyi gösteren ayrıtlardan
oluşan bir kümedir.
 Bağlantılı listeler ve ağaçlar grafların özel örneklerindendir.
 Bir G grafı V ile gösterilen tepelerden (node veya
vertex) ve E ile gösterilen ayrıtlardan (Edge) oluşur.
 Her ayrıt iki tepeyi birleştirir.

 Her ayrıt, iki bilgi (tepe) arasındaki ilişkiyi gösterir ve


(u,v) şeklinde ifade edilir.
 (u,v) iki tepeyle gösterilen bir ayrıttır.
Graflar - Örnek
G = (V, E) grafı aşağıda verilmiştir.
V = {A, B, C, D, E, F}
E = {(A, B), (A, D), (B, C), (C, D), (C, E), (D, E)}

B C

A F

D E
Graflar – Ayrıt Türleri
 Yönlü Ayrıt (Directed Edge)
 Sıralı tepe çiftleri ile ifade edilir.
 (u, v) ile (v, u) aynı değildir.
 İlk tepe orijin ikinci tepe ise hedef olarak adlandırılır.
 Yönsüz Ayrıt (Undirected Edge)
 Sırasız tepe çiftleri ile ifade edilir.
 (u, v) ile (v, u) aynı şeyi ifade ederler.

 Yönlü Graf (Directed Graphs)


 Bütün ayrıtları yönlü olan graftır.
 Digraph şeklinde de ifade edilirler.
 Yönsüz Graf (Undirected Graphs)
 Tüm ayrıtları yönsüz olan bir graftır.
Graflar - Tanımlar
 Komşu(Adjacent): Eğer (u, v) ∈ E ise u ve v tepeleri
komşudur.
 (A, B) komşudur.
 (B, D) komşu değildir.
 (C, F) komşu değildir.

B C

A F

D E
Graflar - Tanımlar
 Grafın ayrıtları üzerinde ağırlıkları olabilir. Eğer ayrıtlar
üzerinde ağırlıklar varsa bu tür graflara
ağırlıklı/maliyetli graf (Weighted Graphs) denir.
 Ağırlık uygulamadan uygulamaya değişir.
Şehirler arasındaki uzaklık.
Routerler ararı bant genişliği.
İstasyonlar(petrol, elektirik vs.) arasındaki kurulum
maliyeti
Graflar - Tanımlar
Graf Gösterimi
 Zaman ve yer karmaşıklığı aşağıdaki her iki ifade ile
de ölçülür.
 Düğüm sayısı = |V| = n
 Ayrıt sayısı = |E| = m

 Graf gösterimi için iki farklı yol vardır.


 Komşuluk matrisi
 Komşuluk listesi
Komşuluk Matrisi Gösterimi
• Komşuluk Matrisi Gösterimi:
1 (u,v) E’nin içindeyse
M(u, v) =
0 diğer

A B C D E F
A 0 1 0 1 0 0
B C
B 0 0 1 0 0 0
C 0 0 0 1 1 0
A F
D 0 0 0 0 1 0
E 0 0 0 0 0 0
D E
F 0 0 0 0 0 0
Komşuluk Matrisi Gösterimi
• Komşuluk Matrisi Gösterimi (Ağırlıklı):
Ağırlık (u,v) E’nin içindeyse
M(u, v) =
0 diğer

A B C D E F

20 A ∞ 10 ∞ 5 ∞ ∞
B C
10 B ∞ ∞ 20 ∞ ∞ ∞

30 C ∞ ∞ ∞ 30 50 ∞
A 50 F
5 D ∞ ∞ ∞ ∞ 15 ∞
15 E ∞ ∞ ∞ ∞ ∞ ∞
D E
F ∞ ∞ ∞ ∞ ∞ ∞
Komşuluk Listesi Gösterimi
• Komşuluk Listesi: (Yönsüz Graflar)

A B D
B C
B A C
A F C B D E

D E D A C E

E C D

F
Komşuluk Listesi Gösterimi
• Komşuluk Listesi: (Yönlü Graflar)

A B D
B C
B C
A F C D E

D E D E

F
Graf Üzerinde Dolaşma
 Graf üzerinde dolaşma grafın düğümleri ve kenarları
üzerinde istenen bir işi yapacak veya bir problemi
çözecek biçimde hareket etmektir.
 Graf üzerinde dolaşma yapan birçok yaklaşım
yöntemi vardır. En önemli iki tanesi aşağıda
listelenmiştir.
 BFS (Breadth First Search) Yöntemi
 DFS (Depth First Search ) Yöntemi
Graf Üzerinde Dolaşma
 Breath-First Search (BFS):
 Başlangıç düğümünden başla ve tüm komşuları ziyaret et.
 Daha sonra komşunun komşularını ziyaret et.
 Başlangıç düğümünden başlayıp dışa doğru dalga gibi.

 Depth-First Search (DFS)


 Bir düğümden başla düğümün bir kenarında o kenar
üzerinde gidilebilecek en uzak düğüme kadar sürdür.
 Geri gel ve diğer kenarı dene
 Tüm düğümler gezilene kadar devam et.
Breath-First Search (BFS)
s
0
FIFO just after
a d
queue Q processing vertex
c
a -
b e

f i

g h
Breath-First Search (BFS)

s
0 FIFO just after
a d
1 queue Q processing vertex
c
1 a -
b e a,b,c a
-
f i

g h
Breath-First Search (BFS)

s
0 FIFO just after
a d
1 queue Q processing vertex
c
1 a -
b e a,b,c a
2 a,b,c,f b
f i -
g h
Breath-First Search (BFS)

s
0 FIFO just after
a d
1 queue Q processing vertex
c
1 2 a -
b e a,b,c a
2 a,b,c,f b
f i a,b,c,f,e c
g h
Breath-First Search (BFS)

s
0 FIFO just after
a d
1 queue Q processing vertex
c
1 2 a -
b e a,b,c a
2 a,b,c,f b
f i a,b,c,f,e c
a,b,c,f,e,g,h f
g h
3 3
Breath-First Search (BFS)

s
0 3 FIFO just after
a d
1 queue Q processing vertex
c
1 2 a -
b e a,b,c a
2 a,b,c,f b
f i a,b,c,f,e c
3
a,b,c,f,e,g,h f
g h
3 3
a,b,c,f,e,g,h,d,i e
Breath-First Search (BFS)

s
0 3 FIFO just after
a d
1 queue Q processing vertex
c
1 2 a -
b e a,b,c a
2 a,b,c,f b
f i a,b,c,f,e c
3
a,b,c,f,e,g,h f
g h
3 3
a,b,c,f,e,g,h,d,i g
Breath-First Search (BFS)

s
0 3 FIFO just after
a d
1 queue Q processing vertex
c
1 2 a -
b e a,b,c a
2 a,b,c,f b
f i a,b,c,f,e c
3
a,b,c,f,e,g,h f
g h
3 3
a,b,c,f,e,g,h,d,i g
Breath-First Search (BFS)

s
0 3 FIFO just after
a d
1 queue Q processing vertex
c
1 2 a -
b e a,b,c a
2 a,b,c,f b
f i a,b,c,f,e c
3
a,b,c,f,e,g,h f
g h
3 3
a,b,c,f,e,g,h,d,i g
Breath-First Search (BFS)

s
0 3 FIFO just after
a d
1 queue Q processing vertex
c
1 2 a -
b e a,b,c a
2 a,b,c,f b
f i a,b,c,f,e c
3
a,b,c,f,e,g,h f
g h
3 3
a,b,c,f,e,g,h,d,i g

algorithm terminates: all vertices are processed


Breath-First Search (BFS)

 Sonuçların gösterilmesi
 Her bir v düğümü için, d[v]’yi (s ve v arasındaki uzaklığı)
kaydetmemiz gerekiyor.
 “v” ve “s” düğümleri arasındaki uzaklık, “s” den “v” ye giden yol
üzerindeki minimum düğüm sayısıdır.
 Dolayısıyla d[s] = 0

 Ayrıca aile (parent) düğümünü de tutmamız gerekiyor. v den


s ye giderken yoldaki ilk düğüm
 pred[s] = 0 (pred → predecessor → önceki)
Depth-First Search (DFS)

 Bir v düğümüne gidildikten sonra v düğümünün bir


komşusu seçilir ve ziyaret edilir.
 Ardından onun bir komşusu seçilir ve ard arda komşu
seçimi yapılarak devam edilir.
 Komşu kalmadığında geri dönülür.
Depth-First Search (DFS)

A
Adjacency Lists
A: F G
B: A I
C: A D
B H C G D: C F
E: C D G
F: E:
I G: :
D H: B:
I: H:

E
F
Depth-First Search (DFS)
A

B H C G

E
F

dfs(A)
A-F A-G

Function call stack:


Depth-First Search (DFS)
A

B H C G

E
visit(F)
F
F-E

dfs(A)
A-F A-G

Function call stack:


Depth-First Search (DFS)
A

B H C G

I
dfs(E)
D
E-C E-D E-G

E
dfs(F)
F
F-E

dfs(A)
A-F A-G

Function call stack:


Depth-First Search (DFS)
A

B H C G dfs(C)
C-A C-D
I
dfs(E)
D
E-C E-D E-G

dfs(F)
E
F F-E

dfs(A)
A-F A-G

Function call stack:


Depth-First Search (DFS)
A

B H C
dfs(C)
G
C-A C-D

I
dfs(E)
D E-C E-D E-G

dfs(F)
E
F F-E

dfs(A)
A-F A-G

Function call stack:


32
Depth-First Search (DFS)
A
dfs(D)
D-C D-F

dfs(C)
B H C G
C-A C-D

I dfs(E)
D E-C E-D E-G

dfs(F)
F
E F-E

dfs(A)
A-F A-G

Function call stack:


Depth-First Search (DFS)
A
dfs(D)
D-C D-F

B H C
dfs(C)
G
C-A C-D

I
dfs(E)
D E-C E-D E-G

dfs(F)
E
F F-E

dfs(A)
A-F A-G

Function call stack:


34
Depth-First Search (DFS)
A
dfs(D)
D-C D-F

dfs(C)
B H C G
C-A C-D

I dfs(E)
D E-C E-D E-G

dfs(F)
E F-E
F

dfs(A)
A-F A-G

Function call stack:


35
Depth-First Search (DFS)
A

dfs(C)
B H C G C-A C-D

I dfs(E)
E-C E-D E-G
D
dfs(F)
E F-E
F
dfs(A)
A-F A-G

Function call
36
Depth-First Search (DFS)
A

B H C G

dfs(E)
I
E-C E-D E-G
D
dfs(F)
E F-E
F
dfs(A)
A-F A-G

Function call
37
Depth-First Search (DFS)
A

B H C G

I dfs(E)
D E-C E-D E-G

dfs(F)

F
E F-E

dfs(A)
A-F A-G

Function call
38
Depth-First Search (DFS)
A

dfs(G)
B H C G

I dfs(E)
D E-C E-D E-G

dfs(F)

F
E F-E

dfs(A)
A-F A-G

Function call
39
Depth-First Search (DFS)
A

B H C G

dfs(E)
I
E-C E-D E-G
D
dfs(F)
E F-E
F
dfs(A)
A-F A-G

Function call
40
Depth-First Search (DFS)
A

B H C G

dfs(F)
E
F F-E

dfs(A)
A-F A-G

Function call stack:


41
Depth-First Search (DFS)
A

B H C G

E
F
dfs(A)
A-F A-G

Function call
42
Depth-First Search (DFS)
A

B H C G

E
F

dfs(A)
A-F A-G

Function call
43
Depth-First Search (DFS)
A

B H C G

E
F

Nodes reachable from A: A, C, D, E, F, G


44
DFS vs BFS
Vacuum world
Single-state, start in #5. Solution??
[Right; Suck]

Conformant, start in f1; 2; 3; 4; 5; 6; 7; 8g


e.g., Right goes to f2; 4; 6; 8g. Solution??
[Right; Suck; Left; Suck]

Contingency, start in #5
Murphy's Law: Suck can dirty a clean
carpet
Local sensing: dirt, location only.
Solution??
[Right; if dirt then Suck]
DFS vs BFS
Yapay Zeka Ve Makine Öğrenmesi

Ders 5
Arama Yöntemleri – Kör Arama

Dr. Öğretim Üyesi Hamza Osman İLHAN


hamza.ilhan@netkent.edu.tr
Planlama
 Problem: Masadaki küpleri mevcut pozisyondan
istenilen pozisyona getirmek
 Olası hareketler: küp tutma, küpü yere koyma, küpü
bir başka küpün üzerine koyma
 Çözüm: Hareketler sırası

C
B
A B C A
Table
Robot Yol Planlama
 Başlangıç noktasından (R) hedef noktasına (D)
ortamdaki engellere dokunmadan gitmek.
 Olası hareketler: Sola, Sağa, Aşağıya, Yukarıya
 Olası hareketlerin maliyetleri birbirlerinden farklı
olabilir.
 En az maliyetli hareketler dizisini bulmak.

O2
R
O1 Robot
Path

D
Cin Ali Nehirde
Ali’nin küçük bir
sandalla, kurt, keçi ve
kabağı nehrin karşısına ?
geçirmek istiyor.
Sandal Ali’yle birlikte en
fazla bir tane nesneyi
taşıyabiliyor.
Keçi - kabak, kurt - keçi
ikilileri Ali yanlarında
değilken, nehrin aynı
tarafında olmamalı.
Problemin Gösterimi
 İfade edilmesi gerekenler
 4 nesnenin pozisyonu
 Sandalı ifade etmeye gerek yok. Çünkü yeri her zaman Ali ile
aynı.
 Nesneler ya kuzeyde (N), ya da güneyde (S)
 Her bir nesneyi pozisyonunu gösteren bir harfle
ifade:

farmer wolf goat cabbage


( A? , B? , C? , D? )
Problemin Gösterimi
farmer wolf goat cabbage
İlk durum
(S, S, S, S) ( A? , B? , C? , D? )
Yasak durumlar
Kurt keçiyi yer (Ali olay yerinde değilse)
(N, S, S, _)
(S, N, N, _)
Keçi kabağı yer (Ali olay yerinde değilse)
(N, _, S, S)
(S, _, N, N)
Hedef durum
(N, N, N, N)
Operatörler
 Aksiyonlar / hareketler / oparetörler durumları
birbirine dönüştürür.
 Keçiyi kuzeye taşımak
 Başlangıç durumu: keçi güneyde
 Bitiş durumu: keçi kuzeyde
 Diğer nesnelerin yerinin önemi yok.
 Gösterim
 Move(Goat, North)
 (S, ?wolf, S, ?cabbage) => (N, ?wolf, N, ?cabbage)
 ?wolf kurtun yerini gösteren bir değişken
 Değişken kullanımı bizi çok sayıda kural yazmaktan
kurtarır. Burada 4 kural yerine 1 kural yetti.
 Herbir nesne iki yerde olabildiğine göre toplam 24 = 16
durum (state) var.
Bir çözüm örneği

F G G F W G
M-G-N M-F-S M-W-N

F W G C W C F W C C
S1: (S,S,S,S) S2: (N,S,N,S) S3: (S,S,N,S) S4: (N,N,N,S)

M-G-S

F W G C W C F W C W

M-G-N M-F-S M-C-N


F G G F G C
S8: (N,N,N,N) S7: (S,N,S,N) S6: (N,N,S,N) S5: (S,N,S,S)
8 – puzzle
4 3 6 1 2 3

2 1 8 4 5 6

7 5 7 8

S0 G

Karmaşıklığı azaltmak için taş hareketleri boş karenin


hareketleri olarak temsil edilebilir.
Operatörler:
L : Boş kare sola
R : Boş kare sağa
U : Boş kare yukarıya C(L) = C(R) = C(U) = C(D) = 1
D : Boş kare aşağıya
8 puzzle’ın arama ağacı

Ortalama adım sayısı 22, Ortalama dallanma sayısı: 2,67


Tekil olmayan 2.7 milyar durum
Misyonerler ve Yamyamlar
R

boat River
boat
L

Missionaries Cannibals
Misyonerler Yamyamlar
Kısıtlar
⚫ Kayık en fazla 2 insanı taşıyabilir

⚫ Herhangi bir durumda yamyamların sayısı misyonerlerin

sayısını geçmemeli, yoksa ...


Misyonerler ve Yamyamlar
Durum, State : <#M, #C, P>
#M = Nehrin L tarafındaki misyoner sayısı
#C = Nehrin L tarafındaki yamyam sayısı
P = Kayığın yeri

S0 = <3, 3, L>
G = < 0, 0, R >

Operatörler
M2 = 2 misyoner karşıya geçer
M1 = 1 misyoner karşıya geçer
C2 = 2 yamyam karşıya geçer
C1 = 1 yamyam karşıya geçer
MC = 1 misyoner ve 1 yamyam karşıya geçer
Misyonerler ve Yamyamlar
<3,3,L>
Arama ağacından bir kesit

C2 MC

<3,1,R> <2,2,R>

MC

<3,3,L>
Küpler dünyası
Arama neden zor olabilir?
Varsayımlar:
Bir durumdan gidilebilecek durum sayısı , dallanma sayısı : b=10
Saniyede işlenen durum / node sayısı: 1000
Bir durum / node için tutulan bellek miktarı: 100 bytes

Çözümün derinliği İşlenen durum sayısı Zaman Bellek


0 1 1 millisecond 100 bytes

2 111 0.1 seconds 11 kbytes

4 11,111 11 seconds 1 megabyte

8 108 31 hours 11 gigabytes

12 1012 35 years 111 terabytes


Arama Algoritmaları / Stratejileri
 Arama stratejileri, bir durumdan diğer bir duruma
giderken gidilecek durumun olası gidilebilecek durumlar
arasından nasıl seçildiğini belirler.
 Stratejiler birkaç boyutta değerlendirilir:
 Tamlık (completeness): Bir çözüm varsa mutlaka bulması
 Zaman Karmaşıklığı (time complexity): Aramanın alacağı süre
 Hafıza Karmaşıklığı (space complexity): Arama için gereken hafıza
miktarı
 Optimumluk (optimality): ilk bulunan çözümün en düşük maliyetli
çözüm olması
 Zaman ve Hafıza karmaşıklıklarının ölçümlerinde
kullanılar kavramlar
 b: Maksimum dallanma sayısı (bir düğümden çıkan maksimum
düğüm sayısı)
 d: En az maliyetli çözümün derinliği
 m: arama uzayının maksimum derinliği (bazen ∞)
Tanımlar
• Durum Uzayı, Arama Uzayı, Arama ağacı, State
Space, Search Space, Search Tree : Durumları,
aralarındaki geçişleri, geçiş parametrelerini ve
kısıtlarını gösteren graflar
• Operatörler : Durumlar arası geçişleri sağlarlar.
• Başlangıç durumu : S0 (Aramanın başladığı durum)
• Hedef durumu: {G} - (Aramanın bittiği durum)
• Maliyet, Cost : Operatürü uygulamanın maliyeti
• Çözüm yolu, solution path: Başlangıç durumundan
hedef duruma giden yol
• Optimum Yol, Optimal path : En düşük maliyetli
çözüm yolu
Bilgisiz (Kör) arama stratejileri

Sadece problem formulasyonundaki mevcut bilgiyi


kullanır.

Bilgisiz arama yöntemlerinde çözüme ulaşmak için


hiçbir bilgi verilmez.

Aramanın herhangi adımında çözüme ne kadar


yakın (veya uzak) olması hakkında veya çözümün
bulunabileceği hakkında fikir söylemek mümkün
değildir.
Bilgisiz (Kör) arama stratejileri
 Enlemesine Arama / Breadth-first search
 Düşük Maliyetli Arama / Uniform cost search
 Derinlemesine Arama / Depth-first search
 Sınırlı Derinlikte Arama / Depth-limited search
 Artan Derinlikli Arama / Iterative deepening search
 Çift Yönlü Arama / Bidirectional search
Enlemesine Arama
Breadth-first search
• Enine aramada ağaç arama ağacı CG
soldan sağa,
yukarıdan aşağıya SC
doğru taranır.
• FIFO yapısı = İlk Giren S
W
İlk Çıkar – First In First SR CS
Out L
L SG
A CS
A E
R SG E
SG
FA R
başarı SG
FA
Enlemesine Arama
Breadth-first search
Örnek: Arad’dan
Bucharest’e seyahat
Örnek: Arad’dan
Bucharest’e seyahat
Örnek: Arad’dan
Bucharest’e seyahat
Örnek: Arad’dan
Bucharest’e seyahat
Örnek Düğüm Seti
Initial state
A

B C D E F
Goal state

G H I J K L M N O P

Q R S T U V W X Y Z

Press space to see a BFS of the example node set


We
Node
The
then
search
B isbacktrack
expanded
then moves
tothen
expand
to
removed
the
node
firstC, Node
This
We begin
node
A is removed
is
with
then
ourexpanded
initial
from thestate:
to
queue.
reveal
the
from
and
node
the
the
inprocess
queue.
the queue.
The
continues.
Press
revealed
space
Press
nodesto
A further
Each
noderevealed
labeled
(unexpanded)
A.
node
Press
isnodes.
added
space Press
to the
are
space
continue.
added to the END of the queue. space
END
continue
of the queue. Press space to
Press space. continue the search.
B C D E F

G H I J K L M N O P
Node L is located and the search
returns a solution. Press space to
Q R S T U end.

Press space to continue


begin thethe
search
search

Size of Queue: 0
1
5
6
7
8
9
10 Queue: A
B,J,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
Empty
G,
K,
M,
F,
C,
D,
E,
I,
L,
H,K,
J,
G,
H,
L,
M,
F,
N,
D,
E,
I, L,
K,
J,
M,
G,
H,
I,F,
O,
E,M,
N, J,
L,
K,
G,
H,
I,
N,
F
O,
P,K,
M,
J,
N,
L,
I,
H
O,
Q,
P,K,
L,
JO,
M,
N,
Q,
P,
R,
M,
LO,
P,
N,
Q,
S,
R,N
Q,
P,
O,
R,
T,
S,Q
RP
U
ST

Nodes expanded: 9
0
1
2
3
4
5
6
7
8 CurrentFINISHED
Action: Backtracking
Expanding
SEARCH Current level: 2
n/a
0
1
10
11
BREADTH-FIRST SEARCH PATTERN
Genişlik-önce arama
S
1 5 8

A B C
3 9
7 4 5
D E G
Genişlik-önce aramanın
özellikleri
• Tamlık:
• Zaman karmaşıklığı:
• Bellek karmaşıklığı:
• Optimallik :

Stratejiler dört kritere göre değerlendirilebilir:


• Tamlık (Completeness): Eğer çözüm varsa strateji çözümü garanti ediyor mu?
• Zaman Karmaşıklığı (Time complexity): Çözümü bulmak ne kadar zaman alıyor?
• Bellek Karmaşıklığı (Space complexity): Aramayı gerçekleştirmek için ne kadar bellek gerekiyor?
• Optimallik (Optimality): Birden fazla çözüm olduğu zaman strateji en iyi olanını buluyor mu?
(en düşük maliyetli çözüm)
– Zaman ve bellek karmaşıklığı şu terimler cinsinden ölçülür:
– b – arama ağazının maksimum dallanma faktörü
– d – en düşük maliyetli çözümün derinliği
– m – arama ağacının maksimum derinliği(sonsuz olabilir)
Enlemesine Aramanın Analizi
Complete? Eğer b sonlu ise evet
Time? 1+b+b2+b3+… +bd = O(bd)
Space? O(bd) (her node hafızada)
Optimal? Her adımın maliyeti eşitse evet
Hafıza zamandan daha büyük problem

Bellek sorunu önemlidir. Neden tüm


düğümleri hafızada tutalım? Çok kolayca
sonsuz döngülere götürebilecek bir yapı.
Gezilmiş bir düğümü tekrar gezmekten
kaçınmak gerekir.
Genişlik-önce aramanın
zaman karmaşıklığı
• Eğer hedef düğüm ağacın d derinliğinde bulunursa bu derinliğe
kadarki tüm düğümler oluşturulur.

d
m
b G

• Böylece: O(bd)
Genişlik-önce aramanın
zaman karmaşıklığı
• Kuyruktaki(QUEUE) en büyük düğüm sayısına hedef düğümün d
seviyesinde ulaşılır.

d
m
b G

• QUEUE tüm ve G düğümleri içerir. (Böylece: 4) .


• Genel olarak: bd
Genişlik-önce aramanın
zaman karmaşıklığı s
1
• d derinlikli tam arama ağacı; her bir 1 b
yaprak olmayan düğümün b oğlu
var: 2 b^2
• Toplam: 1 + b + b^2 + ... + b^d

d b^d

– Örnek: 12 derinlikli tam arama ağacında 0,…,11 derinlikte her


düğümün 10 oğlu var. 12.ci derinlikteki düğümlerin oğulları
yoktur. Böylelikle, ağaçta 1 + 10 + 100 + 1000 + ... + 10^12 =
(10^13 - 1) düğüm var
Düşük/Düzenli Maliyetli Arama
Uniform Cost Search
▪ Genişlik öncelikli aramaya benzer.
▪ Dallar üzerinde kökten itibaren toplam maliyeti en az
düğümü seçer ve genişletir.
▪ Tüm maliyetler birbirine eşitse enlemesine aramanın
aynısı

A A A A
1 15 1 15 1 15 1 15
5 5 5 5
B C D B C D B C D B C D

5 10 10 5 10 5
E F F E F E
10 1
1 1
F F

B,C,D → B F,C,D → C F,E,D → E


min(1,5,15)→1 min(11,5,15)→ 5 min(11,10,15)→10
Düşük/Düzenli Maliyetli Arama
Uniform Cost Search
• Algoritmalarla bağlı kaynaklarda“Dijkstra Algoritması” ,
yöneylem araştırmasında “Dal ve Sınır Algoritması” denir

Düşük/Düzenli Maliyetli Arama
Uniform Cost Search
O
71 151 F
S 99
Z

75 211
80
A 140
R B
97 P
120 101
118

D 146 138
75
T 111 L 70 M
C
Düşük/Düzenli Maliyetli Arama
Uniform Cost Search
A
Z75 T118 S140 O
71 151
S F
T118 S140 O146 Z 99

S140 O146 L229 75 211


80
O146 R220 L229 F239 O291 A 140
R
97 P B
R220 L229 F239 O291 S297 120 101
118
L229 F239 O291 S297 P317 D340 C366
D 146 138
F239 O291 S297 P317 D340 C366 M 75
T 111 L 70
M299… C
Consider the following
problem…

A
1 10

5 5
S B G

15 5
C

We wish to find the shortest route from node S to node G; that is, node S is the
initial state and node G is the goal state. In terms of path cost, we can clearly
see that the route SBG is the cheapest route. However, if we let breadth-first
search loose on the problem it will find the non-optimal path SAG, assuming
that A is the first node to be expanded at level 1. Press space to see a UCS of
the same node set…
Once
Node
WeNode
Wenow
A
node
start
is
Sexpand
removed
isB
with
removed
hasour
the
been
from
initial
node
from
expanded
the
state
at
the
queue
the
queue
and
front
itand
is
expand
and
removed
ofthe
the
the
revealed
queue,
revealed
fromnode
node
thenodes
queue
A.(node
Press
areand
G)added
space
the
is added
revealed
to
totheto
the
nodeit…
continue.
queue.
queue.
(node The
The
G)queue
isqueue
added.
isisthen
again
Thesorted
queue
sorted onison
path
again
path
cost.
sorted
cost.Nodes
Note,
on path
with
wecost.
cheaper
haveNote,
nowpath
found
nodecostGa have
goal
nowpriority.In
appears
state butthis
indothe
case
notqueue
recognise
the queue
twice,itwill
once
as beit isas
Node
not
G10 atAand
the
(1),once
front
nodeof
as
Bthe
G
(5),
11queue.
.followed
As G10 Node
isbyatnode
Bthe
is C
the(15).
frontcheaper
of Press
the queue,
node.
space. Press
we now space.
proceed to goal state. Press space.

A
1 10

5 5
S B G
The goal state is achieved and
15 the path S-B-G is returned. In
C relation to path cost, UCS has
found the optimal route. Press
space to end.
Press space to begin the search

Size of Queue: 0
1
3 Queue: A,
S 10B,
B,
G
Empty
G
, 11
GC,11C, C15

Nodes expanded: 3
0
1
2 CurrentFINISHED Waiting….
action: Expanding
Backtracking
SEARCH Current level: 2
n/a
0
1

UNIFORM COST SEARCH PATTERN


Düşük/Düzenli Maliyetli Arama
Uniform Cost Search

S
1 5 8

A B C
3 9
7 4 5
D E G
Düşük Maliyetli Aramanın Analizi
Complete? Eğer b sonlu ve maliyet >0 ise
Evet
Time? O(bd)
Space? O(bd)
Optimal? Tüm maliyetler pozitif ise Evet
Hafıza zamandan daha büyük problem
Derinlemesine arama
Derinlik öncelikli aramada daima ağacın en Arama ağacı CG
derin düğümlerinden biri açılır. Yani arama
ağacı yukarıdan aşağıya en sol düğümden
başlayarak yaprak düğüme ulaşılana dek SC
geliştiriliyor. Eğer amaçlanmayan düğüme
erişilmiş ise veya açılacak düğüm kalmamış S
W
ise açma işlemine daha sığ (en sol ve
SR
genişletilmemiş) seviyelerden devam edilir. L
CS
L SG
A CS
A E
LIFO yapısı = Son Giren İlk Çıkar – Last In R SG E
First Out SG
FA R
SG
FA
Derinlemesine arama

Seviye 0

Seviye 1

Seviye 2

Seviye 3
Derinlemesine arama
Derinlemesine arama
Derinlemesine arama
Derinlemesine arama
Derinlemesine arama
Initial state
A

B C D E F
Goal state

G H I J K L M N O P

Q R S T U V W X Y Z

Press space to see a DFS of the example node set


The process
Nodesearch
B is expanded
then
nowmoves
continues
andtoremoved
the
until
first Node
We
Thisbegin
node
A is with
removed
is then
ourexpanded
initial
from state:
the to
queue.
reveal
the
node
from
the goal
the
in the
state
queue.
queue.
is Revealed
achieved.
Press space
nodes
Pressto A node revealed
further
Each labeled
(unexpanded)
A.node
Press
isnodes.
space
addedto Press
to the
continue
are
space.
added to the FRONT of the continueof the queue. Press space to
space.
FRONT
queue. Press space. continue.
B C D E F

Node L is located and the


G H I J K L search returns a solution.
Press space to end.

Q R S T U

Press space to continue


begin thethe
search
search

Size of Queue: 0
1
6
5
4
3 Queue: A
B,J,
G,
Q,
H,
R,
C,
I,
S,
J,
T,
D,
K,
U,
L,
Empty
D,
E,
J,
C,
D,
E,
L,
H,D,
E,
D,
F
E,
F
D,
E,
C,E,
F
E,
F
F
E,
D,FFF
E, F

Nodes expanded: 9
0
1
2
3
4
5
6
7
8 CurrentFINISHED
Action: Backtracking
Expanding
SEARCH Current level: 2
n/a
0
3
1
10
11
12
13
14
DEPTH-FIRST SEARCH PATTERN
Derinlemesine arama

S
1 5 8

A B C
3 9
7 4 5
D E G
Derinlemesine Aramanın Analizi
Complete? Sonsuz derinlikli / loop içeren
arama uzayları için Hayır
Eğer algoritma durum tekrarını önleyecek şekilde
değiştirilirse Evet.
Time? O(bm): Eğer m, d’den çok büyükse
çok kötü
 Çözümler arama uzayında yoğunsa enine
aramadan hızlı olabilir.
Space? O(bm), lineer!
Optimal? Hayır. Bulduğu çözümden daha
optimumu olabilir.
Derinlemesine Aramanın Analizi
Zaman Karmaşıklığı
• En kötü durumda: hedef(sadece) dalın en sağında olabilir,

m
b

• Zaman karmaşıklığı == bm + bm-1 + … + 1 = bm+1 -1


• Böylece: O(bm) b-1
Derinlemesine Aramanın Analizi
Zaman Karmaşıklığı
• Kuyrukta(QUEUE) en fazla düğüme altta en solda ulaşılır.
• Örnek: m = 3, b = 3 :

...

• QUEUE, tüm düğümleri içerir. Böylece: 7.


• Genelde: ((b-1) * m) + 1
• Mertebe: O(m*b)
Sınırlı Derinlikte Arama
Depth-limited search
Derinine aramada olası sonsuz (ölü döngü) arama işlemini önlemek için
aramanın belirli bir seviyeye kadar yapılması düşünülmektedir.
Örneğin 20 şehrin bulunduğu haritada bir şehirden diğerine gitmek için
yapılacak bir aramada maksimum derinlik 19 olarak verilebilir. Yeni
işlem formu "eğer A'da iseniz ve seyahat ettiğiniz şehir sayısı 19'dan
küçük ise yol uzunluğu bir fazla olan B şehrinde yeni bir durum oluştur"
şeklinde ifade edilebilir
Derinlik limitli bir derinlik-önce aramadır
Complete: kesim uygun şekilde seçilmişse o zaman bir çözümü garanti
eder. Eğer derinlik az seçilirse tamlık da tehlikeye girer.
Optimal: en düşük maliyetli çözümü garanti etmez
Derinliğine aramada olduğu gibi derinlik sınırlamalı aramada da zaman
karmaşıklığı O(bl), bellek karmaşıklığı O(bl)'dir. Burada l derinlik
sınırıdır
Sınırlı Derinlikte Arama
• Eğer gereken çözüm L+1 derinlikte ise, o hiç zaman bulunamayacak.
(L-sınır derinliği)
• Karmaşıklık bakımından yöntem sıradan derinine aramaya benzer
• Sınırlı derinine arama yönteminde iyi arama sınırını bulmak çoğu
zaman kolay olmaz.
• Arama uzayı büyük ve çözüm derinliği belli olmayan durumlarda
yinelemeli derinine arama tercih edilen yöntemdir
• Başarıya ulaşana dek derinlik sınırı her defa 1 arttırılıyor

Zaman karmaşıklığı Uzay karmaşıklığı Tam? Optimal?

O(bl) O(bl) Evet(çözüm <=l hayır


derinlikte ise)
limit = 0

limit = 1

limit = 2

limit = 3
Artan Derinlikli Arama l =0
Artan Derinlikli Arama l =0
Artan Derinlikli Arama l =0
Artan Derinlikli Arama l =0
Artan Derinlikli Arama
Initial state
A

B C D E F
Goal state

G H I J K L M N O P

Q R S T U V W X Y Z

Press space to see a IDS of the example node set


We
Node
begin
A iswith
thenour
expanded
initial state:
and the
A node
removed
labeled
from
A.the
Thisqueue.
node Press
is added
to
space.
the queue. Press space to
continue

As this is the 0th iteration of the search, we cannot search past any level
greater than zero. This iteration now ends, and we begin the 1st iteration.

Press space to begin the search

Size of Queue: 0
1 Queue: A
Empty

Nodes expanded: 1
0 Current Action: Expanding Current level: 0
n/a

ITERATIVE DEEPENING SEARCH PATTERN (0th ITERATION)


We
Node
Thenowsearch
B is
back
expanded
now
trackmoves
toand
expand
removed
to level
nodeone
C, Node
We again
A is expanded,
begin with then
our initial
removed
state:
from
and
of the
the
thenode
process
queue.
set.Press
continues.
Pressspace.
space
Press
to
A from
the node
the queue,
labeledand
A. Note that the 1st
the revealed
nodes
iteration
arecarries
added on
to the
fromfront th, and
the .0Press
space.
continue
therefore the ‘nodes expanded’ value
space.
is already set to 1. Press space to
B C D continue E F

As this is the 1st iteration of the search, we cannot search past any level
greater than level one. This iteration now ends, and we begin a 2nd iteration.

Press space to continue


begin thethe
search
search

Size of Queue: 0
5
4
3
2
1 Queue: A
B, F
C,
D,
E,
F
Empty
C, F
D,
E, D, F
E, E, F

Nodes expanded: 7
1
2
3
4
5
6 Current Action: Expanding
Backtracking Current level: 1
n/a
0

ITERATIVE DEEPENING SEARCH PATTERN (1st ITERATION)


Node
The
We search
After
nowB is expanded
then
expanding
move to moves
and
level
node Gtothe
two welevel
of theone Node
We
Again,
again
Aweis begin
removed
expandwith
node
from
ourAthe
initial
to reveal
queue
of
revealed
theset.
node node
backtracknodes
set.
Press
to added
Press
expand space
to
to the
spacenode H.to
front
continue.
The
A state:
the
and level
each
theone
revealed
nodenodes.
labeled
node
Press
A.isNote
added
space.
that
to
continue
of the queue. nd iteration
process thenPress spaceuntil
continues to goal the 2front of the queue.
carriesPress
on from space.
the
continue.
state. Press space 1st, and therefore the ‘nodes
expanded’ value is already set to 7
B C D E to continueFthe
(1+6). Press space
search

G H I J K L
Node L is located on the second level and the search returns a
solution on its second iteration. Press space to end.

Press space to continue the


search
Size of Queue: 0
1
6
5
4
3 Queue: A
B,J,
G,
H,
C,
I,
J,
D,
K,
L,
Empty
D,
E,
C,
D,
E,
L,
H,D,
F
E,
F
D,
E,
C,E,
FF
E,
D,FF
E, F

Nodes expanded: 9
7
8 CurrentSEARCH
Action: Backtracking
Expanding
FINISHED Current level: 2
n/a
0
1
10
11
12
13
14
15
16
ITERATIVE DEEPENING SEARCH PATTERN (2nd ITERATION)
Artan Derinlikli Arama Analizi
 Complete? Evet
 Time? (d+1)b0 + d b1 + (d-1)b2 + … + bd = O(bd)
 Space? O(bd)
 Optimal? Eğer tüm maliyetler eşitse Evet

Genişlik-önce ve derinlik-önce arama stratejilerinin


avantajlarını birleştirir. Genişliğine arama gibi optimal ve
tamdır, derinliğine arama gibi az bellek gerektirir
Karşılaştırma
DFS,
+ Hafıza gereksimininde lineer
- Loop içeren arama uzaylarında sonsuza kadar çalışır
- Optimum çözümü bulmayı garantilemez

BFS,
+ Optimum çözüm
+ Loop lardan kurtulabilir
- Hazıfa gereksinimi derinlikle üssel olarak büyüyor

IDS,
+ Lineer hafıza gereksinimi
+ Looplardan kurtulabilir
+ optimum çözümü garantiler
Karşılaştırma
Graflar
 Graf, günlük yaşamda karşılaştığımız
problemlerin bir şekilsel gösterimi yani bir
modellemesi olup, elimizdeki problemin
çözümü için bize görsel olarak kolaylık
sağlayan bir yapıdır.
Graflar
 Örnek: 4 adet arkadaş (Murat, Burçin, Çağrı, Tuncay)
eve gelen 4 adet gazeteyi (A,B,C,D gazeteleri)
okumak istiyor. Murat A ve B, Burçin A ve C, Çağrı B
ve C, Tuncay ise B ve D gazetelerini okumayı seviyor.
Hangi şahsa hangi gazeteleri verebileceğimizi graf
kullanarak gösterebiliriz.
Graflar
 Örnek: 5 adet ilin komşuluklarını graf ile temsili olarak
gösterebiliriz.
Graflar
 İki veya daha fazla kenar
bir düğüm çifti ile bağlanabilir.
Paralel kenar ile birleştirme adını
almaktadır.

Kenarın başlangıç ve bitiş


noktası aynı düğüm ise
döngü söz konusudur.
Graflar
 Basit Graf : Yönsüz, paralel
kenar olmayan ve döngü
içermeyen graf türüdür.

 Çoklu Graf: Yönsüz,


paralel kenarı olan ve
döngü içermeyen graf
türüdür.
Graflar
 Pseudo Graf: Yönsüz, paralel
kenarı olan ve döngü içeren
graf türüdür.

 Ağırlıklı Graf: her bir kenarına


numerik bir değer ağırlık olarak
verilmiş graf türüdür.
Graflar
 Yönlü Graf: Her bir kenarı
sıralı bir düğüm çifti ile
ilişkilendirilmiş ve her kenarı
yönlü olan graftır.
Graflar
 Tam Graf:
n>3
 complete graph Kn : n adet dügüm
içeren basit graf yapisindadir. Her
dügüm, diger dügümlere bir kenar
ile baglantilidir.
Ağaçlar
 Bir graf şayet bağlı grafsa ve hiç döngü içermiyorsa
bu grafa ağaç adı verilir.
 Bilgisayar bilimlerinin önemli veri tutma
yöntemlerinden birisi de ağaçlardır. Buna göre
veriler bir ağaç yapısına benzer şekilde (kök gövde
yapraklar) tutulur.

d=2
b=2
Düğüm sayısı = 7
Yaprak sayısı = 4
Yapay Zeka Ve Makine Öğrenmesi

Ders 6
Oyun – Bilgi ve Veri Kavramları
Bilginin Gösterimi

Dr. Öğretim Üyesi Hamza Osman İLHAN


hamza.ilhan@netkent.edu.tr
Oyun türleri

imperfect information= eksik bilgi Ör: karşı tarafın elindekini bilmeme


Minimax
 Rasgele olmayan oyunlar için ideal
 Yaklaşım: En yüksek minimax değerini sağlayan
hamleyi yap
 Örnek: 2-oyunculu oyun:
Minimax bileşenleri

 MAX = Bizim olası hamlelerimizden kendi açımızdan


en iyi sonucu verenin seçilmesi
 MIN = Rakibin olası hamlelerinden kendi açısından
en iyi sonucu veren, bizim açımızdan en kötü
sonucu verenin seçilmesi
 UTILITY = Oyunun sonucunu gösteren durum (Ör:
kazanırsak +1, berabere 0, kaybedersek -1)
Oyun ağacı – Game tree
(2-oyuncu)

Kazanırsa +1
Kaybederse -1
Beraberlik 0
Satrançta Sınırlar

 Arama uzayının büyüklüğü (3240)


Ortalama hamle sayısı = 40
Her adımda yapılabilecek farklı hamle sayısı
ortalaması = 32
3240 = 2200 ~= 1060
 Saniyede 3 milyar durum işlersek
Bir yıldaki saniye sayısı ~= 32*106
Bir yılda işlenecek durum sayısı ~= 1017
Tüm durumların değerlendirilmesi 1043 yıl sürer.
Evrenin yaşı ~= 1010 yıl
Satranç için değerlendirme fonks.
 Taş değerleri:
Piyon=1, at=fil=3, kale=5, vezir=9
 Siyahlar:
 5 piyon, 1 fil, 2 kale
 Skor = 1*(5)+3*(1)+5*(2)
= 5+3+10 = 18
 Beyazlar:
 5 piyon, 1 kale
 Skor = 1*(5)+5*(1)
= 5 + 5 = 10
Bu durumun iki taraf için skorları:

siyahlar için = 18-10 = 8


beyazlar için = 10-18 = -8
Değerlendirme fonksiyonları

 Oyunun sonucunun çok derinlerde olduğu


durumlarda durumların değerlendirilmesi için
kullanılan fonksiyonlardır.
 Satranç için bu fonksiyon genellikle önceden
belirlenen özniteliklerin doğrusal toplamı olarak
düşünülür.
Eval(s) = w1 f1(s) + w2 f2(s) + … + wn fn(s)
 Örnek, w1 = 9 ve
 f1(s) = (beyaz vezir sayısı) – (siyah vezir sayısı), vs.
 Ağırlıklı toplam, bileşenlerin birbirinden bağımsız
olduğunu varsayar.
Satranç için değerlendirme
fonksiyonu

Asıl iş: f’leri ve w’leri belirlemek:


 Etrafı boş olan piyonlar kötüdür.
 Şahın korumaları var mı?
 Hakeret kabiliyetin nasıl?
 Tahtanın ortasının kontrolü sende mi?
 Oyun süresince w lerin değerleri değişir mi?
Tic-Tac-Toe için Değerlendirme
fonksiyonu
Tic-Tac-Toe için Değerlendirme fonksiyonu
(ilk hamlemiz, 2 derinlikli arama)
Tic-Tac-Toe için Değerlendirme fonksiyonu
(2. hamlemiz, 2 derinlikli arama)
Aramayı farklı derinliklerde yapmanın
etkisi:
Sınırlı Derinlikte C2’deki beyaz kale a2’deki piyonu alır
mı?
Arama’da
Ufuk Etkisi - 1 derinlik
Bir piyon kazançta olduğundan alır.
Horizon Effect 2 derinlik
Bir piyona bir kale değmez. Almaz.

3 derinlik
Bir piyon + bir kaleye, bir kale değer.
Alır.

4 derinlik
bir piyon + bir kaleye, 2 kale değmez.
Almaz.
Rastgele olmayan oyun
uygulamaları
Dama (Checkers): Chinook 1994’de dünya
şampiyonu Marion Tinsley ile başabaş
oynadı, aynı yıl Tinsley sağlık sebeplerinden
oyunlardan çekildi ve Chinook o zamandan
beri dünya şampiyonu. Günümüzde dama
tamamen çözülmüşü durumda.
Satranç: Deep Blue 1997’de 6 oyun sonunda
dünya satranç şampiyonu Garry Kasparov’u
yendi. Deep Blue saniyede 200 milyon
düğümü arayabilmekte, oldukça iyi bir
değerlendirme fonksiyonu kullanmakta,
gerektiğinde 40-kat hamle ileriyi görebilecek
derecede arama yapabilmektedir.
Rastgele olmayan oyun
uygulamaları
Othello (reversi): Günümüzde insan dünya
şampiyonları bilgisayarlara karşı
yarışamamaktadırlar, bilgisayarlar bu alanda
çok üstündür.
Rastgele olmayan oyun
uygulamaları
 Go: İnsanlar halen üstünlüklerini korumaktadırlar.
Bunun sebebi 19x19’luk oyun tahtasında b=361
olmasıdır. Arama teknikleri yerine örüntü tanıma
teknikleri daha yaygın kullanılmaktadır. Ağustos
2008’de herbiri 32 işlemciye sahip 25 server’da
çalışan Mygo profesyonel bir go oyuncusunu yendi.
Bilgisayarla satranç oynamak
 1957 - Newell ve Simon: 10 yıl içinde dünya satranç
şampiyonunun bir bilgisayar olacak
 1958 : Satranç oynayan ilk bilgisayar IBM 704
 1967 : Mac Hack programı insanların katıldığı bir
turnuva da başarıyla yarıştı
 1983 : Belle programı, Amerika Satranç
Federasyonundan master ünvanını aldı.
 1980’lerin ortaları : Carnegie Mellon üniversitesinde
bilim adamları sonradan Deep Blue’ya dönüşecek
çalışmayı başlattı.
 1989: Projeyi IBM devraldı.
Bilgisayarla satranç oynamak
 11 Mayıs 1997, Gary Kasparov, 6 oyunluk maçta Deep Blue’ya 3.5 a
2.5 yenildi.
 2 oyun deep blue, 1 oyun Kasparov aldı, 3 oyun berabere

http://www.resea
rch.ibm.com/dee
pblue/meet/html/
d.3.html
Metotların Tarihi

Shannon, Turing Minimax arama 1950


Kotok/McCarthy Alpha-beta budama 1966
MacHack Dönüşüm tabloları 1967
Chess 3.0+ Iterative-deepening 1975
Belle Özel donanım 1978
Cray Blitz Paralel arama 1983
Hitech Paralel değerlendirme 1985
Deep Blue yukarıdakilerin hepsi 1997
İçinde şans faktörü olan oyunlar

 Tavla – atılan zara göre oyun oynanır.


 Kağıt oyunları – kağıtların dağılımına göre oyun
oynanır.
 Oyun ağacını oluşturmak için her türlü varyasyonun
göz önüne alınması gerekir.
Bilgi Nedir?

İşleme /
Yorumlama
Miktarı

Kişiye özel oluş


Bilmenin farklı seviyedeki göstergeleri

 Farkında olma
 Anımsama / Çağrıştırma / Hatırlama
 Tanıma
 Yorumlama
 Açıklayabilir olma
 Kanıtlayabilir olma
 Hakkında konuşabilme
 Yerine getirebilir/yapabilir olma
Veri’den Bilgiye

Pikseller Bölgesel etiketler Tek bir etiket

2, A

İki yaşlı insan


Bir kadın bir erkek
Mutluluk
İkisininde şapkaları var
Birbirlerine sarılmışlar
İkisi de gülümsüyorlar
Veri’den Bilgiye
Pikseller Bölgesel etiketler Tek bir etiket

Yaşlı bir kadın


Fakir bir kadın Mutluluk, şükran, ?
Bir çorba tenceresi tutuyor
Gülümsüyor

İki kilit Gülen bir yüz


Bir anahtar
Bir eğik çizgi
Bilgi Gösterim Türleri
 Kurallar (Rules)
 Anlamsal Ağlar (Semantic net)
 Yüklem mantığı (Predicate Logic)
 Çerçeveler (Frames)
 Sahneler (Scripts)
Kurallar

-Genel format

IF condition THEN conclusion (action)

-Genelde sonlu sayıda birçok kuralımız olur.

IF condition is Ai THEN conclusion is Bi

-Genelde kurallarımız çok değişkenlidir.

IF condition1 and condition2 or …. and conditionn THEN conclusion


Kurallar; ilişkileri, tavsiyeleri, direktifleri ifade
edebilir:
İlişki
IF the ‘fuel tank’ is empty
THEN the car is dead
Tavsiye
IF the season is autumn
AND the sky is cloudy
AND the forecast is drizzle
THEN the advice is ‘take an umbrella’
Direktif
IF the car is dead
AND the ‘fuel tank’ is empty
THEN the action is ‘refuel the car’
Anlamsal Ağlar (Semantic Nets)
 Bir Anlamsal Ağ bilgiyi, birbirine değişik tipte
bağlarla bağlanmış bir küme düğüm şeklinde
gösterir. Tipik olarak düğümler kavramları, bağlar
ise kavramlar arasındaki ilişkileri gösterir.
 Düğümler arası linkler ilişkiyi gösterir.
 “instance of”

 “is a”

 “ has a”

 “part of”

 Anlamsal ağların popülerliğinin en büyük sebebi


grafiksel gösterime çok uygun olmalarıdır.
Anlamsal Ağlar

mother age
Sue john 5

age father

34 Max
age

mother(john,sue)
age(john,5)
wife(sue,max)
age(max,34)
...
Anlamsal Ağlar
Yüklem Mantığı
Predicate Logic

 Tanımlarla programlama
 Problemin kural ve gerçeklerinin tanımlanması
 Çıkarım mekanizmaları gerçekleri ve kuralları
birlikte kullanarak çıkarım yaparlar.
 Örnek: Prolog
Çerçeveler - Frames

 Bir çerçeve, öznitelikleri (slot) olan bir kavramı


belirtir.
 Bir öznitelik ait olduğu çerçeveye ait çeşitli
türdeki bilgileri tutar.
 Ref: Marvin Minsky, 1975

 Bir çerçevenin çeşitli öznitelikleri (slot) vardır.


 Bir özniteliğin çeşitli yuvaları (facets) olabilir.
slotlar

33
Öznitelik / Yuva (Slot / Facet)
 Yuva türleri
• İnsan çerçevesinin ayak sayısı
 Değer: tek / çok kavram / sayı özniteliğinin (slot) yuvaları
/ metin (Facets):
 Varsayılan değer – Değer: 2
 Değer aralığı: alabileceği – Varsayılan değer: 2
değerin alt / üst sınırı, alabileceği – Değer aralığı: [0,1,2]
değerler kümesi
– Değerin türü: sayı
 Değerin türü
– if-added: değer Є değer
 Prosedür: (if-needed, if-added, aralığı
if-removed) (değerin
– if-removed: değer =
doldurulması istenirse, bir değer
girilirse, bir değer silinirse varsayılan değer
çağrılacak prosedür)
 Önem katsayısı: Slot’un ait
olduğu çerçeve için önemi
 Çerçeve: Bazı sistemlerde yuva
bir başka çerçeveyi gösterebilir.
Çerçeveler arası ilişkiler

Jenny
Panda
Name: Jenny
Bamboo Type: Animal Height: 1.6
Colour: Black and white Age: 5
Type: Plant Food:
GrowFunc: …….. Sibling:
EatFunc: ……..
Location: Name:
Height: 2 Vicky
Height:
Age: 0 Name: Vicky
Sibling Height: 0.7
Age: 1
Sibling:
Sahneler - Scripts

 Belirli bir durumda, basmakalıp bir olaylar dizisinin


ifade edilmesi
 Örnek sahneler: Lokantada yemek yemek,
otobüse binmek, sinemaya gitmek, sınava
girmek vs.
 Ref:Roger Shank, 1980
Sahneler’in amacı
 Gerçek dünyadaki olaylar genelde basmakalıp
dizilimleri takip eder. İnsanlar bu dizilimleri
yaşamları boyunca öğrenirler, bilgisayarlar ise
sahneleri kullanabilirler.
 Sahneler gözlemlenmeyen olayları tahmin
edebilirler.
Lokanta Sahnesi

Sahne ismi: Giriş Koşulları:


Lokanta Müşteri aç
Nesneler: Müşterinin parası var
Masalar
Menü Sonuçlar:
Yiyecek Müşteri tok
Para Müşterinin daha az parası var
Roller: Lokanta sahibinin daha çok
Müşteri parası var
Garson Müşteri memnun
Ahçı
Kasiyer
Lokanta sahibi
Lokanta Sahnesi
Alt sahne 1: lokantaya giriş Alt sahne 4: yemeğin yenmesi
Müşteri lokantaya girer Garson yemeği müşteriye getirir.
Boş yer arar Müşteri yemeği yer.
Boş yeri görür Alt sahne 5: lokantadan
Boş masaya gider ayrılma
Masaya oturur Müşteri garsonu çağırır
Alt sahne 2: sipariş Müşteri garsondan hesabı ister
Müşteri menüyü alır Garson müşteriye hesabı getirir
Müşteri menüyü okur Müşteri parayı verir
Müşteri yiyecek kararını verir Garson parayı kasiyere verir
Müşteri garsonu çağırır Müşteri lokantadan ayrılır
Müşteri yiyeceği garsona
söyler
Alt sahne 3: yiyeceğin
hazırlanması
Garson siparişi ahçıya söyler
Ahçı yemeği hazırlar.
Ahçı garsona haber verir
Yapay Zeka Ve Makine Öğrenmesi

Ders 7
Makine Öğrenmesi - Giriş

Dr. Öğretim Üyesi Hamza Osman İLHAN


hamza.ilhan@netkent.edu.tr
Why “Learn” ?
 Machine learning is programming computers to optimize a
performance criterion using example data or past experience.
 There is no need to “learn” to calculate payroll
 Learning is used when:
 Human expertise does not exist (navigating on Mars),
 Humans are unable to explain their expertise (speech
recognition)
 Solution changes in time (routing on a computer network)
 Solution needs to be adapted to particular cases (user
biometrics)
What We Talk About When We Talk
About “Learning”
 Learning general models from a data of particular examples
 Data is cheap and abundant (data warehouses, data marts);
knowledge is expensive and scarce.
 Example in retail: Customer transactions to consumer behavior:
People who bought “Outliers” also bought “Blink”
(www.amazon.com)

 Build a model that is a good and useful approximation to the


data.
Data Mining
 Retail: Market basket analysis, Customer relationship
management (CRM)
 Finance: Credit scoring, fraud detection
 Manufacturing: Control, robotics, troubleshooting
 Medicine: Medical diagnosis
 Telecommunications: Spam filters, intrusion detection
 Bioinformatics: Motifs, alignment
 Web mining: Search engines
 ...
What is Machine Learning?
 Optimize a performance criterion using example data or past
experience.
 Role of Statistics: Inference from a sample
 Role of Computer science: Efficient algorithms to
 Solve the optimization problem
 Representing and evaluating the model for inference
 Applications
 Association
 Supervised Learning
 Classification
 Regression
 Unsupervised Learning
 Reinforcement Learning
Learning Associations
 We (Human Being) learn by association
 Our minds naturally connect events that occur in sequence
 Associative Learning is a learning that two events occur
together
 Two stimuli as a response and its consequences
 Example = Basket analysis in Markets
P (Y | X ) probability that somebody who buys X also buys Y
where X and Y are products/services.
Example: P ( chips | beer ) = 0.7
Supervised Learning - Classification
 Example: Credit scoring
 Differentiating between low-risk and high-risk customers from their
income and savings

Discriminant:
IF income > θ1 AND savings > θ2
THEN low-risk ELSE high-risk
Supervised Learning - Classification
 Aka Pattern recognition
 Face recognition: Pose, lighting, occlusion (glasses, beard),
make-up, hair style
 Character recognition: Different handwriting styles.
 Speech recognition: Temporal dependency.
 Medical diagnosis: From symptoms to illnesses
 Biometrics: Recognition/authentication using physical and/or
behavioral characteristics: Face, iris, signature, etc
 ...
Pattern Recognition
Pattern Recognition
Face Recognition

Training examples of a person

Test images

ORL dataset,
AT&T Laboratories, Cambridge UK
Character recognition (OCR)
Character recognition (OCR)
Speech recognition
Medical Diagnosis
Biometrics
Classification

 Assign object/event to one of a given finite set of categories.


 Medical diagnosis
 Credit card applications or transactions
 Fraud detection in e-commerce
 Spam filtering in email
 Recommended books, movies, music
 Financial investments
 Spoken words
 Handwritten letters
Learning: Key Steps
• data and assumptions
– what data is available for the learning task?
– what can we assume about the problem?
• representation
– how should we represent the examples to be classified
• method and estimation
– what are the possible hypotheses?
– what learning algorithm to use to infer the most likely hypothesis?
– how do we adjust our predictions based on the feedback?
• evaluation
– how well are we doing?
Yapay Zeka Ve Makine Öğrenmesi

Ders 8
Makine Öğrenmesi Teknikleri

Dr. Öğretim Üyesi Hamza Osman İLHAN


hamza.ilhan@netkent.edu.tr
Supervised Learning - Regression

 Example: Price of a used car


x : car attributes
y : price
y = g (x | q )
g ( ) model,
q parameters
Evaluation of Learning Systems
 Experimental
 Conduct controlled cross-validation experiments to compare
various methods on a variety of benchmark datasets.
 Gather data on their performance, e.g. test accuracy,
training-time, testing-time…
 Analyze differences for statistical significance.

 Theoretical
 Analyze algorithms mathematically and prove theorems about
their:
Computational complexity
Ability to fit training data
Sample complexity (number of training examples needed
to learn an accurate function)
Supervised Learning: Uses

 Prediction of future cases: Use the rule to predict the output for
future inputs
 Knowledge extraction: The rule is easy to understand
 Compression: The rule is simpler than the data it explains
 Outlier detection: Exceptions that are not covered by the rule,
e.g., fraud
Unsupervised Learning

 Learning “what normally happens”


 No output
 Clustering: Grouping similar instances
 Example applications
 Customer segmentation in CRM
 Image compression: Color quantization
 Bioinformatics: Learning motifs
Supervised vs Unsupervised Learning
Supervised vs Unsupervised Learning
Reinforcement Learning

 Learning a policy: A sequence of outputs


 No supervised output but delayed reward
 Credit assignment problem
 Game playing
 Robot in a maze
 Multiple agents, partial observability, ...
Yapay Zeka Ve Makine Öğrenmesi

Ders 9
Makine Öğrenmesi Algoritmaları
K En Yakın Komşular

Dr. Öğretim Üyesi Hamza Osman İLHAN


hamza.ilhan@netkent.edu.tr
Let’s Start – What do we have?
Let’s Start – What do we have?
(cont.)

No labels yet
Let’s Start – What do we have?
(cont.)

0, 1 We have the labels


Classification
is also used
Let’s Start – What do we have?
(cont.)

0, 1 We have the labels


Classification
is also used
What do we want?

A new sample
What do we want? (cont.)

A new sample
What do we want? (cont.)

A new sample
Linear Classifiers
Linear Classifiers (cont.)
Linear Classifiers (cont.)
Linear Classifiers (cont.)
Linear Classifiers (cont.)
How good is a classifier?
How good is a classifier? (cont.)
How good is a classifier? (cont.)
Learning a good classifier
Learning a good classifier (cont.)
Learning a good classifier (cont.)
Learning a good classifier (cont.)
Learning a good classifier (cont.)
Instance-Based Classifiers

Set of Stored Cases • Store the training records

……... • Use training records to


Atr1 AtrN Class
predict the class label of
A unseen cases
B
B
Unseen Case
C
Atr1 ……... AtrN
A
C
B
Instance-Based Classifiers
• Instance-based Classifiers: do not create a model
but use training examples directly to classify unseen
examples (“lazy” classifiers).
• Examples:
– Rote-learner
• Memorizes entire training data and performs
classification only if attributes of record
match one of the training examples exactly
– Nearest neighbor
• Uses k “closest” points (nearest neighbors) for
performing classification
Nearest-Neighbor Classifiers
Non-parametric Classification and Prediction Techniques

 Requires three things


Unknown record
 The set of stored records
 Distance Metric to compute
distance between records
 The value of k, the number of
nearest neighbors to retrieve

 To classify an unknown record:


 Compute distance to other
training records
 Identify k nearest neighbors
 Use class labels of nearest
neighbors to determine the class
label of unknown record (e.g., by
taking majority vote)
Definition of Nearest Neighbor

X X X

(a) 1-nearest neighbor (b) 2-nearest neighbor (c) 3-nearest neighbor

K-nearest neighbors of a record x are data


points that have the k smallest distance to x
Voronoi Diagrams for NN-Classifiers

Each cell contains one sample,


and every location within the
cell is closer to that sample
than to any other sample.

A Voronoi diagram divides the


space into such cells.

Every query point will be assigned the classification of the sample within that
cell. The decision boundary separates the class regions based on the 1-NN
decision rule.
Knowledge of this boundary is sufficient to classify new points.
Remarks: Voronoi diagrams can be computed in lower dimensional spaces; in
feasible for higher dimensional spaced. They also represent models for clusters
that have been generate by representative-based clustering algorithms.
Nearest Neighbor Classification

• Compute distance between two points:


Euclidean distance
d ( p, q ) =  ( pi
i
−q )
i
2

• Determine the class from nearest neighbor list


• take the majority vote of class labels among the
k-nearest neighbors
• Weigh the vote according to distance
• weight factor, w = 1/d2
Nearest Neighbor Classification
• Choosing the value of k:
– If k is too small, sensitive to noise points
– If k is too large, neighborhood may include points
from other classes

X
K-NN: More Complex Decision Boundaries
Nearest Neighbor Classification…

• Scaling issues
– Attributes may have to be scaled to
prevent distance measures from being
dominated by one of the attributes
– Example:
• height of a person may vary from 1.5m to
1.8m
• weight of a person may vary from 90lb to
300lb
• income of a person may vary from $10K to
$1M
Summary Nearest Neighbor Classifiers
 k-NN classifiers are lazy learners
 Unlike eager learners such as decision tree induction and
rule-based systems, it does not build models explicitly
 Classifying unknown records is relatively expensive
 Rely on local knowledge (“let the data speak for themselves”)
and not on global models to make decisions.
 k-NN classifiers rely on a distance function; the quality of the
distance function is critical for the performance of a K-NN
classifier.
 Capable to create quite complex decision boundaries which
consists of edges of the Voronoi diagram.
 K-NN classifiers never actually compute decision boundaries, in
contrast to decision trees/SVMs.
 k-NN classifiers obtain high accuracies and are quite popular
in some fields, such as text data mining and in information
retrieval, in general.
Yapay Zeka Ve Makine Öğrenmesi

Ders 10
Makine Öğrenmesi Algoritmaları
Karar Ağaçları

Dr. Öğretim Üyesi Hamza Osman İLHAN


hamza.ilhan@netkent.edu.tr
Classification and Decision Boundaries

 Classification can be viewed as “learning good decision


boundaries” that separate the examples belonging to different
classes in a data set.
Decision boundary
Decision Tree and Classification Task
 Decision tree helps us to classify data.
 Internal nodes are some attribute
 Edges are the values of attributes
 External nodes are the outcome of classification
 Such a classification is, in fact, made by posing
questions starting from the root node to each terminal
node.
Decision Tree Classification

Tid Attrib1 Attrib2 Attrib3 Class Learning


1 Yes Large 125K No
algorithm
2 No Medium 100K No

3 No Small 70K No

4 Yes Medium 120K No


Induction
5 No Large 95K Yes

6 No Medium 60K No

7 Yes Large 220K No Learn


8 No Small 85K Yes Model
9 No Medium 75K No

10 No Small 90K Yes


Model
10

Training Set
Apply
Tid Attrib1 Attrib2 Attrib3 Class Model
11 No Small 55K ?

12 Yes Medium 80K ?

13 Yes Large 110K ? Deduction


14 No Small 95K ?

15 No Large 67K ?
10

Test Set
Decision Tree Classification

Tid Refund Marital Taxable


Splitting Attributes
Status Income Cheat

1 Yes Single 125K No


2 No Married 100K No Refund
3 No Single 70K No
Yes No
4 Yes Married 120K No NO MarSt
5 No Divorced 95K Yes Married
Single, Divorced
6 No Married 60K No
7 Yes Divorced 220K No TaxInc NO
8 No Single 85K Yes < 80K > 80K
9 No Married 75K No
NO YES
10 No Single 90K Yes
10

Training Data Model: Decision Tree


Decision Tree Classification

MarSt Single,
Tid Refund Marital Taxable
Married Divorce
Status Income Cheat d
NO Refun
1 Yes Single 125K No
Yes d No
2 No Married 100K No
3 No Single 70K No NO TaxInc
4 Yes Married 120K No < 80K > 80K
5 No Divorced 95K Yes
NO YES
6 No Married 60K No
7 Yes Divorced 220K No
8 No Single 85K Yes
9 No Married 75K No There could be more than one tree
10 No Single 90K Yes that fits the same data!
10
Decision Tree Classification

Tid Attrib1 Attrib2 Attrib3 Class


Tree
1 Yes Large 125K No Induction
2 No Medium 100K No algorithm
3 No Small 70K No

4 Yes Medium 120K No


Induction
5 No Large 95K Yes

6 No Medium 60K No

7 Yes Large 220K No Learn


8 No Small 85K Yes Model
9 No Medium 75K No

10 No Small 90K Yes


Model
10

Training Set
Apply Decision
Tid Attrib1 Attrib2 Attrib3 Class
Model Tree
11 No Small 55K ?

12 Yes Medium 80K ?

13 Yes Large 110K ?


Deduction
14 No Small 95K ?

15 No Large 67K ?
10

Test Set
Decision Tree Classification
Test Data
Start from the root of tree. Refund Marital Taxable
Status Income Cheat

No Married 80K ?
Refund 10

Yes No

NO MarSt
Single, Divorced Married

TaxInc NO
< 80K > 80K

NO YES
Decision Tree Classification
Test Data
Refund Marital Taxable
Status Income Cheat

No Married 80K ?
Refund 10

Yes No

NO MarSt
Single, Divorced Married

TaxInc NO
< 80K > 80K

NO YES
Decision Tree Classification
Test Data
Refund Marital Taxable
Status Income Cheat

No Married 80K ?
Refund 10

Yes No

NO MarSt
Single, Divorced Married

TaxInc NO
< 80K > 80K

NO YES
Decision Tree Classification
Test Data
Refund Marital Taxable
Status Income Cheat

No Married 80K ?
Refund 10

Yes No

NO MarSt
Single, Divorced Married

TaxInc NO
< 80K > 80K

NO YES
Decision Tree Classification
Test Data
Refund Marital Taxable
Status Income Cheat

No Married 80K ?
Refund 10

Yes No

NO MarSt
Single, Divorced Married

TaxInc NO
< 80K > 80K

NO YES
Decision Tree Classification
Test Data
Refund Marital Taxable
Status Income Cheat

No Married 80K ?
Refund 10

Yes No

NO MarSt
Single, Divorced Married Assign Cheat to “No”

TaxInc NO
< 80K > 80K

NO YES
Decision Tree and Classification Task
Vertebrate Classification

Name Body Skin Cover Gives Birth Aquatic Aerial Has Hibernate Class
Tempe Creature Creatur Legs s
rature e
Human Warm hair yes no no yes no Mammal
Python Cold scales no no no no yes Reptile
Salmon Cold scales no yes no no no Fish
Whale Warm hair yes yes no no no Mammal
Frog Cold none no semi no yes yes Amphibian
Komodo Cold scales no no no yes no Reptile
Bat Warm hair yes no yes yes yes Mammal
Pigeon Warm feathers no no yes yes no Bird
Cat Warm fur yes no no yes no Mammal
Leopard Cold scales yes yes no no no Fish
Turtle Cold scales no semi no yes no Reptile
Penguin Warm feathers no semi no yes no Bird
Porcupine Warm quills yes no no yes yes Mammal
Eel Cold scales no yes no no no Fish
Salamander Cold none no semi no yes yes Amphibian

What are the class label of Dragon and Shark?


Decision Tree and Classification Task
 Suppose, a new species is discovered as follows.
Name Body Skin Gives Aquatic Aerial Has Hibernates Class
Temperature Cover Birth Creature Creature Legs

Gila Monster cold scale no no no yes yes


?
 Decision Tree that can be inducted based on the data is as
follows.
 Once a decision tree is built, it is applied to any test to classify it.
Concept of Entropy

More ordered Less ordered


less entropy higher entropy
More organized or Less organized or
ordered (less probable) disordered (more probable)
Entropy and its Meaning
 Entropy is an important concept used in Physics in the context of heat
and thereby uncertainty of the states of a matter.
 The entropy concept in information theory first time coined by Claude
Shannon (1850).
 At a later stage, with the growth of Information Technology, entropy
becomes an important concept in Information Theory.
 The first time it was used to measure the “information content” in
messages.
 To deal with the classification job, entropy is an important concept,
which is considered as
 an information-theoretic measure of the “uncertainty” contained in a
training data
 due to the presence of more than one classes.
 We may note that information gathering may be with certainty or uncertainty.
Measure of Information Content

Entropy of a Training Set
Entropy of a Training Set
Example 9.10: OPTH dataset
Consider the OTPH data shown in the following table with total 24 instances in it.
Age Eye sight Astigmatic Use Type Class
1 1 1 1 3
1 1 1 2 2
1 1 2 1 3
1 1 2 2 1
1 2 1 1 3
1 2 1 2 2
1 2 2 1 3
1 2 2 2 1
2 1 1 1 3
2 1 1 2 2
2 1 2 1 3 A coded
2 1 2 2 1 forms for all
2 2 1 1 3 values of
2
2
2
2
1
2
2
1
2
3
attributes
2 2 2 2 3 are used to
3
3
1
1
1
1
1
2
3
3
avoid the
cluttering
3 1 2 1 3
3 1 2 2 1 in the
3 2 1 1 3 table.
3 2 1 2 2
3 2 2 1 3
3 2 2 2 3
Entropy of a training set
Specification of the attributes are as follows.

Age Eye Sight Astigmatic Use Type


1: Young 1: Myopia 1: No 1: Frequent
2: Middle-aged 2: Hypermetropia 2: Yes 2: Less
3: Old
Algorithm ID3
 In ID3, entropy is used to measure how informative a node is.

 It is observed that splitting on any attribute has the property that average entropy
of the resulting training subsets will be less than or equal to that of the previous
training set.

 ID3 algorithm defines a measurement of a splitting called Information Gain


to determine the goodness of a split.

 The attribute with the largest value of information gain is chosen as the splitting
attribute and

 it partitions into a number of smaller training sets based on the distinct values of
attribute under split.
Defining Information Gain

Defining Information Gain

Information Gain Calculation

Information Gain Calculation

Age Eye-sight Astigmatism Use type Class


1 1 1 1 3
1 1 1 2 2
1 1 2 1 3
1 1 2 2 1
1 2 1 1 3
1 2 1 2 2
1 2 2 1 3
1 2 2 2 1
Calculating Information Gain

Age Eye-sight Astigmatism Use type Class


2 1 1 1 3
2 1 1 2 2
2 1 2 1 3
2 1 2 2 1
2 2 1 1 3
2 2 1 2 2
2 2 2 1 3
2 2 2 2 3
Calculating Information Gain

Age Eye-sight Astigmatism Use type Class


3 1 1 1 3
3 1 1 2 3
3 1 2 1 3
3 1 2 2 1
3 2 1 1 3
3 2 1 2 2
3 2 2 1 3
3 2 2 2 3
Information Gains for Different
Attributes
Decision Tree Induction : ID3 Way
Decision Tree Induction : ID3 Way
31


Age Eye-sight Use Type Astigmatic

Age Eye Ast Use Class Age Eye Ast Use Class
1 1 1 2 2
1 1 1 1 3
1 1 2 2 1
1 1 2 1 3
1 2 1 2 2
1 2 1 1 3
1 2 2 2 1
1 2 2 1 3
2 1 1 2 2
2 1 1 1 3
2 2 1 1 3 2 1 2 2 1

2 2 2 1 3 2 2 1 2 2

3 1 1 1 3 3 1 1 2 3

3 1 2 1 3 3 1 2 2 3

3 2 1 1 3 3 2 1 2 2

3 2 2 1 3 3 2 2 2 3

Age Eye- Astigmati CS 40003:


Age Eye- Astigmati
sight c Data
sight c
Analytics
Support Vector Machines (SVMs)
B1

• SVMs use a single hyperplane; one Possible Solution


Support Vector Machines (SVMs)

B2

• Another possible solution


Support Vector Machines (SVMs)

• Other possible solutions


Support Vector Machines (SVMs)
B1

B2

• Which one is better? B1 or B2?


• How do you define better?
Support Vector Machines (SVMs)
B1

B2

b21
b22

margin
b11

b12

• Find a hyperplane maximizing the margin => B1 is better than B2


Key Properties of Support Vector Machines
1. Use a single hyperplane which subdivides the space into two half-
spaces, one which is occupied by Class1 and the other by Class2
2. They maximize the margin of the decision boundary using
quadratic optimization techniques which find the optimal
hyperplane.
3. When used in practice, SVM approaches frequently map (using )
the examples to a higher dimensional space and find margin
maximal hyperplanes in the mapped space, obtaining decision
boundaries which are not hyperplanes in the original space.
4. Moreover, versions of SVMs exist that can be used when linear
separability cannot be accomplished.
Support Vector Machines
• What if the problem is not linearly
separable?
Support Vector Machines

• Linear SVM for Non-linearly Separable


Problems
No kernel
Measures prediction error
• What if the problem is not linearly separable?
– Introduce slack variables Parameter
– Need to minimize:  2
|| w || N
 
L( w) = + C  ik 
2  i =1 
Inverse size of margin Slack variable
between hyperplanes

allows constraint violation


to a certain degree
– C is chosen using a validation set trying to
keep the margins wide while keeping the
training error low.
Nonlinear Support Vector Machines

• What if the problem is not linearly


separable?
Non-linear function
Nonlinear Support Vector Machines

1. Transform data into higher dimensional


space
2. Find the best hyperplane using the
methods introduced earlier
Summary Support Vector Machines
• Support vector machines learn hyperplanes that separate
two classes maximizing the margin between them (the empty
space between the instances of the two classes).
• Support vector machines introduce slack variables—in the
case that classes are not linear separable—trying to maximize
margins while keeping the training error low.
• The most popular versions of SVMs use non-linear kernel
functions and map the attribute space into a higher
dimensional space to facilitate finding “good” linear decision
boundaries in the modified space.
• Support vector machines find “margin optimal” hyperplanes
by solving a convex quadratic optimization problem.
However, this optimization process is quite slow and support
vector machines tend to fail if the number of examples goes
beyond 500/5000/50000…
• In general, support vector machines accomplish quite high
accuracies, if compared to other techniques.
• In the last 10 years, support vector machines have been
generalized for other tasks such as regression, PCA, outlier
detection,…
Yapay Zeka Ve Makine Öğrenmesi

Ders 11
Makine Öğrenmesi Algoritmaları
Yapay Sinir Ağları

Dr. Öğretim Üyesi Hamza Osman İLHAN


hamza.ilhan@netkent.edu.tr
Yapay Sinir Ağları - Neural Networks

• How do animals learn (including humans)? Perhaps we can simulate that for
learning simple patterns?

• How does the brain work (simplistically)? The brain has lots of neurons which
either fire or not and are linked together in a huge three dimensional structure.
It receives input from many neurons and sends its output to many neurons. The
input comes from external connected sensors such as eyes.

• So ... can we model an artificial network of neurons to solve just one task (a

classification problem)?
Yapay Sinir Ağları - Neural Networks

• We need some inputs, then some neurons connected together and then some
outputs. Our inputs are the attributes from the data set. Our outputs are
(typically) the classes. We can have connections from all of the inputs to the
neurons, then from the neurons to the outputs.

• Then we just need to train the neurons to react to the values in the attributes
in the proper way such that the output layer gives us the classification. (Which

is of course the complicated part, just like animals learning)


Perceptron (Algılayıcı - Uyaran)

• Very simple eager methods.


• Use the idea of a single neuron that fires when given the right stimuli.
• First thing to keep in mind is that the input to the perceptron must be a vector
of numbers.
• Secondly, that it can only answer a 2 class problem – either the neuron fires

(class 1) or it doesn't (class 2).


Perceptron (Algılayıcı - Uyaran)

The square boxes are inputs, the w lines are weights and the circle is the perceptron.

The learning problem is to find the correct weights to apply to the attributes.

The bias is a fixed value (1)


that is then learnt in the
same way as the other
attributes, in order to ensure
that the result perceptron can
check if the result is > 0 or
not to see if it should fire.
Perceptron (Algılayıcı - Uyaran)

X1 X2 X3 Y Input Black box


1 0 0 0
1 0 1 1
X1
1 1 0 1 Output
1 1 1 1 X2
0 0 1 0
Y
0 1 0 0
0 1 1 1 X3
0 0 0 0

Output Y is 1 if at least two of the three inputs are equal to 1.


Perceptron (Algılayıcı - Uyaran)

Input
nodes Black box
X1 X2 X3 Y
1 0 0 0 Output
1 0 1 1
X1 0.3 node
1 1 0 1
1 1 1 1 X2 0.3 
0 0 1 0
Y
0 1 0 0
0 1 1 1 X3 0.3 t=0.4
0 0 0 0

Y = I (0.3 X 1 + 0.3 X 2 + 0.3 X 3 − 0.4  0)


1 if z is true
where I ( z ) = 
0 otherwise
Perceptron (Algılayıcı - Uyaran)

Input
Model is an assembly of inter- nodes Black box
connected nodes and Output
weighted links X1 w1 node
w2
Output node sums up each of
X2  Y
w3
its input value according to the
weights of its links X3 t

Compare output node against


some threshold t Perceptron Model

Y = I (  wi X i − t ) or
i
Y = sign (  wi X i − t )
i
Algorithm for Perceptron
Step 1: Initialisation
Set initial weights w1, w2,…, wn and threshold θ to random
numbers in the range [−0.5, 0.5].
Step 2: Activation
Activate the perceptron by applying inputs x1(p), x2(p),…,
xn(p) and desired output Yd (p). Calculate the actual output at
iteration p = 1

where n is the number of the perceptron inputs, and step is a step


activation function.
Algorithm for Perceptron
Step 3: Weight training
Update the weights of the perceptron

where ∆wi(p) is the weight correction at iteration p. The weight


correction is computed by the delta rule:

Step 4: Iteration
Increase iteration p by one, go back to Step 2 and repeat the
process until convergence.
Algorithm for Perceptron - example
Two-dimensional plots of basic logical
operations

A perceptron can learn the operations AND and OR,


but not Exclusive-OR.
Algorithm for learning ANN
Perceptron vs Multilayer Neural Networks

A Neural Network is kind of like a lot of Perceptrons bundled together,


but there are some significant differences:

– The training methods for Perceptron aren't used


– The activation function is often not binary, but a function
– Neural Networks can handle multiple classes, not just 2
– There are multiple layers of nodes, normally 3
Multilayer Neural Networks

A multilayer perceptron is a feedforward neural network with one or


more hidden layers.
The network consists of an input layer of source neurons, at least one
middle or hidden layer of computational neurons, and an output
layer of computational neurons.
The input signals are propagated in a forward direction on a layer-by-
layer basis.
General Structure of ANN
x1 x2 x3 x4 x5

Input
Layer Input Neuron i Output
I1 wi1
wi2 Activation
I2
wi3
Si function Oi Oi
Hidden g(Si )
Layer I3

threshold, t

Output Training ANN means learning


Layer the weights of the neurons
y
General Structure of ANN
What does the middle layer hide?

A hidden layer “hides” its desired output. Neurons in the hidden layer
cannot be observed through the input/output behaviour of the
network. There is no obvious way to know what the desired output of
the hidden layer should be.
Commercial ANNs incorporate three and sometimes four layers,
including one or two hidden layers. Each layer can contain from 10 to
1000 neurons.
Experimental neural networks may have five or even six layers,
including three or four hidden layers, and utilise millions of neurons.
Back-propagation neural network
Learning in a multilayer network proceeds the same way as for a
perceptron.
The network computes its output pattern, and if there is an error − or
in other words a difference between actual and desired output
patterns − the weights are adjusted to reduce this error.
In a back-propagation neural network, the learning algorithm has two
phases.
First, a training input pattern is presented to the network input layer.
The network propagates the input pattern from layer to layer until the
output pattern is generated by the output layer.
If this pattern is different from the desired output, an error is
calculated and then propagated backwards through the network from
the output layer to the input layer. The weights are modified as the
error is propagated.
Back-propagation neural network
Back-propagation neural network
More Complex ANN
Neural Network Issues

Issues with constructing a neural network classifier:


Attributes as source nodes
– Need to be numeric for weighting
Number of hidden layers
– Not necessarily just one layer, could have multiple
Number of nodes per hidden layer
– Complicated. Too many and will over-fit, too few won't learn properly
Number of output neurons
– One per class, or perhaps a bit based combination (eg 101 = class5 with 3
outputs)
Interconnections
– Node might not connect to all in next layer, might connect backwards
Weights, Constants, Activation function to use

Learning Technique to adjust weights


Neural Network Issues

In order to apply a weight to an attribute, that attribute needs to be


numeric. 6.5 * “fish” is not meaningful. But assigning numbers to the
different values is also not meaningful. “squirrel” (2) is not 1 greater than
“fish” (1)

Could divide the nominal attribute into many Boolean attributes with
values of 0 or 1.

The number of hidden layers is typically 1, but it is quite possible to


construct a network with more than that. More than 2 hidden layers
becomes very time consuming to train as there will be many more inter-
connections.
Neural Network Issues

The number of nodes in the hidden layer is highly debated, but no


good rule has been discovered to date. Depends on the structure,
activation function etc.

The number of output neurons is typically one per class, but the
value output by the neuron might not be 0/1. It could be 0.2 in each
of 2 nodes (the network thinks it's equally likely to be either, and
likely to be neither of them). In a two class set, 0.2 in a single neuron
would mean that it predicts 0.8 for the other class, if 1.0 is the
maximum.
Neural Network Issues

The simplest structure is all nodes connect to all nodes in the next
highest layer, but this is not necessarily the case.

Two other possibilities:


● Nodes may connect to only some of the next layer
● Nodes may also be allowed to connect to previous layers

Of course the most important consideration is how to teach the


network the desired outputs. We're going to assume the simplest case
for all of the previous issues from now on.
Training

The network classifies by propagating the values forwards through


the network (feedforward) and applying the activation function at
each step.

The most common learning method is the reverse, called back-


propagation. We feed an instance forwards through the network,
calculate how badly it did, and then try to reverse backwards modifying
each node's weight to be more accurate.

Repeat for each instance in the training set until the network stabilises,
an acceptable error rate is reached, or you give up and try a different
network structure.
Training

We know the expected output at the final layer (the class) so we


can work out the error of the output from the nodes that connect
to it. A typical measure is the mean squared error (MSE):

Where for node i, y is the output and d is the desired output.

This could be repeated for all nodes in the network and summed to
find the total error for a given instance. The goal is then to minimize
that error across all instances of the training set.
Training

GDA finds the gradient of the error curve. To minimise, we want the gradient
to be zero, so it takes many derivatives
Neural Network Benefits

Why use a NN rather than a Decision Tree then?


– More robust -- can use all attributes at once, without splitting
numeric or turning them into nominal
– Improves performance by later learning.
– More robust in noisy environments as can't go down the wrong
path so easily
Other points to consider:
– Difficult to understand for non-experts. Can understand a
decision tree.
– Generating rules from a NN is not easy.
– Learning phase may never converge for a given structure.
Neural Network Benefits
Neural Network Benefits

Types of Exclusive-OR Classes with Most General


Structure Decision Regions Problem Meshed regions Region Shapes

Single-Layer Half Plane A B


Bounded By B
Hyper plane A
B A

Two-Layer Convex Open A B


Or B
Closed Regions A
B A

Three-Layer Arbitrary
(Complexity A B
Limited by No. B
A
of Nodes) B A
K-Fold Cross-Validation

• The need for multiple training/validation sets


{Xi,Vi}i: Training/validation sets of fold i
• K-fold cross-validation: Divide X into k, Xi,i=1,...,K
Measuring Error

• Error rate = # of errors / # of instances = (FN+FP) / N


• Recall = # of found positives / # of positives
• = TP / (TP+FN) = sensitivity = hit
rate
• Precision = # of found positives / # of found
• = TP / (TP+FP)
• Specificity = TN / (TN+FP)
• False alarm rate = FP / (FP+TN) = 1 – Specificity
• TP rate, TPR = TP/(TP+FN)
• FP rate, FPR = FP/(FP + TN)
Performance Evaluation

dataset amlall ann bi75ds3 derma gkanser Hava


Özellik sayısı 7129 21 470 34 30 34
Sınıf sayısı 2 3 9 6 2 2
Örnek sayısı 72 3772 315 286 456 281

NB 97,14 95,55 68,49 77,97 94,29 89,31


SVM 92,86 93,74 62,11 79,37 96,26 86,48
1NN 94,29 93,4 63,19 76,26 96,26 89,72
C45 83,39 99,58 65,01 75,2 93,62 91,82
RF 95,71 99,5 72 76,96 95,38 95,02
Modelin karmaşıklığı arttığında eğitim kümesindeki hata sürekli
Düşerken, test kümesindeki hata bir noktadan sonra yükselir.

Her veri kümesi için optimum nokta (optimum karmaşıklık) farklıdır.


Fraction incorectly classified
Hata

Test (prediction) error

Training error
Yapay Zeka Ve Makine Öğrenmesi

Ders 12
Makine Öğrenmesi Algoritmaları
Kümeleme - KMeans

Dr. Öğretim Üyesi Hamza Osman İLHAN


hamza.ilhan@netkent.edu.tr
Kümeleme Algoritmaları
 Kümeleme algoritmaları eğiticisiz öğrenme metotlarıdır.
 Örneklere ait sınıf bilgisini kullanmazlar.
 Temelde verileri en iyi temsil edecek vektörleri bulmaya
çalışırlar.
 Verileri temsil eden vektörler bulunduktan sonra artık tüm
veriler bu yeni vektörlerle kodlanabilirler ve farklı bilgi sayısı
azalır.
 Bu nedenle birçok sıkıştırma algoritmasının temelinde
kümeleme algoritmaları yer almaktadır.
Kümeleme Algoritmaları
 Bir boyutlu (özellikli) 10 örnek içeren bir veri
12-15-13-87-4-5-9-67-1-2
 Bu 10 farklı veriyi 3 farklı veriyle temsil etmek istersek:
12-12-12-77-3-3-3-77-3-3
 şeklinde ifade edebiliriz.
 Kümeleme algoritmaları bu 3 farklı verinin değerlerini bulmakta
kullanılırlar.
 Gerçek değerlerle temsil edilen değerler arasındaki farkları
minimum yapmaya çalışırlar.

Yukarıdaki örnek için 3 küme oluşmuştur.


 12-15-13 örnekleri 1. kümede
 87-67 örnekleri 2. kümede
 4-5-1-2-9 örnekleri 3. kümede yer almaktadır.
Renk Kümeleme
Resim Kümeleme

10*10 luk blokları ifade eden


vektörler kümelenmiş
K-means

Sadece sayısal veriyle çalışır


1) Rasgele K adet küme merkezi ata
2) Her örneği en yakınındaki merkezin kümesine ata
3) Merkezleri kendi kümelerinin merkezine ata
4) 2. ve 3. adımları küme değiştiren örnek kalmayıncaya kadar
tekrar et.
K-means örnek adım 1
Rasgele
3 küme 1
merkezi c1
ata.
Y

c2

c3

X
K-means örnek adım 2

c1
Y

c2
Her örnek
en yakınındaki
merkezin
kümesine atanır.
c3

X
K-means örnek adım 3

c1 c1
Y

c2
Merkezleri
kendi c3
kümelerinin c2
merkezine
götür. c3

X
K-means örnek adım 4
Her örneği
yeniden en
yakınındaki
merkezin 1
kümesine c1
ata. Y
3
Q: Hangi
örneklerin 2
kümesi c3
değişti? c2

X
K-means örnek adım 5

c1
Y
Merkezleri
kendi
kümelerinin c3
merkezine c2
götür.

X
Weka

Copyright: Martin Kramer (mkramer@wxs.nl)

You might also like