Professional Documents
Culture Documents
Ders 1
Ders İçeriği ve Yapay Zekaya Giriş
Bilgisayar Bilimleri
Psikoloji
Felsefe
Dilbilim
Nöroloji
Turing Test
Loebner Yarışması
ELIZA
1965 - Joseph Weizenbaum
Bir terapisti simule eder.
Ders 2
Yapay Zekaya Giriş ve Ajanlar
Loebner Yarışması
Searle’nin Çin Odası
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
Tablo Program
Algı X Eylem Z Function SQRT(X)
1.0 1.0000 z1.0 /* ilk tahmin */
1.1 1.0488 repeat until |z2-x|<10-4
1.2 1.0954 zz-(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 ☺
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ı
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
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ı
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.
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
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.
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
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
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
B H C G
E
visit(F)
F
F-E
dfs(A)
A-F A-G
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
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
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
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
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
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
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
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
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
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:
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
2 1 8 4 5 6
7 5 7 8
S0 G
boat River
boat
L
Missionaries Cannibals
Misyonerler Yamyamlar
Kısıtlar
⚫ Kayık en fazla 2 insanı taşıyabilir
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
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
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.
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 :
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
d b^d
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
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
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
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
Q R S T U
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
...
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
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.
Size of Queue: 0
1 Queue: A
Empty
Nodes expanded: 1
0 Current Action: Expanding Current level: 0
n/a
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.
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
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.
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
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.
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
Kazanırsa +1
Kaybederse -1
Beraberlik 0
Satrançta Sınırlar
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
İşleme /
Yorumlama
Miktarı
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
2, A
-Genel format
“is a”
“ has a”
“part of”
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
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
Ders 7
Makine Öğrenmesi - Giriş
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
Test images
ORL dataset,
AT&T Laboratories, Cambridge UK
Character recognition (OCR)
Character recognition (OCR)
Speech recognition
Medical Diagnosis
Biometrics
Classification
Ders 8
Makine Öğrenmesi Teknikleri
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
Ders 9
Makine Öğrenmesi Algoritmaları
K En Yakın Komşular
No labels yet
Let’s Start – What do we have?
(cont.)
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
X X X
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
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ı
3 No Small 70K No
6 No Medium 60K No
Training Set
Apply
Tid Attrib1 Attrib2 Attrib3 Class Model
11 No Small 55K ?
15 No Large 67K ?
10
Test Set
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
6 No Medium 60K No
Training Set
Apply Decision
Tid Attrib1 Attrib2 Attrib3 Class
Model Tree
11 No Small 55K ?
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
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.
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 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
B2
B2
B2
b21
b22
margin
b11
b12
Ders 11
Makine Öğrenmesi Algoritmaları
Yapay Sinir Ağları
• 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
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.
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
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
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
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
Input
Layer Input Neuron i Output
I1 wi1
wi2 Activation
I2
wi3
Si function Oi Oi
Hidden g(Si )
Layer I3
threshold, t
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
Could divide the nominal attribute into many Boolean attributes with
values of 0 or 1.
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.
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
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
Three-Layer Arbitrary
(Complexity A B
Limited by No. B
A
of Nodes) B A
K-Fold Cross-Validation
Training error
Yapay Zeka Ve Makine Öğrenmesi
Ders 12
Makine Öğrenmesi Algoritmaları
Kümeleme - KMeans
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