Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 143

DOÇ. DR.

SERAL ÖZŞEN
KONYA-2015

9.10.2017 1
KONULAR

1. Yapay Zeka Kavramına giriş, tarihçe ve gelişimi
2. Kural-tabanlı sistemler
3. Bulanık uzman sistemler
4. Sınıflama, öğrenme ve kümeleme kavramları
5. Yapay Sinir Ağları
6. Evrimsel hesaplama

9.10.2017 2
1. Yapay Zeka Kavramına Giriş,
tarihçe ve gelişimi

  Zeka:
- Birinin bir şeyi anlama ve öğrenme yeteneği
 Yapay Zeka:
-İnsan zekası gerektiren problemlerin çözümünü
makinelerin yapabilmesi
 Alan Turing (kariyer:1930, Enigma)
Makineler zeka testini geçebilir mi?: Turing testi

9.10.2017 3

Depolama: 1018 , işlem yapma: 1015

9.10.2017 4
1. Yapay Zekanın «KARANLIK» zamanları (1943-56)
Warren McCulloch (Felsefe ve Tıp)
  Yapay Nöron modeli 

(on- off)veWalter Pitts (matematikçi):

9.10.2017 5
John von Neumann (Turing
arkadaşı-matematikçi)
-nükleer bomba projesi
-EDVAC (Electronic Discrete  Variable
Aotomatic Computer) proje danışmanı (ilk
kayıtlı program içeren makinelerden)

 Dartmouth Workshop-1956 (Martin


Minsky ve Claude Shannon):
Artificial Intelligence

9.10.2017 6
2. Yapay Zeka Beklentileri (1956- 1960’ların sonu)
John McCarthy (Dartmouth workshop katılımcısı):
-LISP
-Advice Taker (1958): ilk bilgi tabanlı sistem
 Frank Rosenblatt (1962): Perceptron
 yakınsama teoremi
 Lotfi Zadeh (1965): Fuzzy sets
…..
Genel Problem çözücüler, zayıf metodlar.

9.10.2017 7

3. Gerçekleşmeyen hayaller, gerçeğin
etkisi (1960 sonları- 1970’lerin başları )
Dezavantajlar:
Genel metodlar tanımlandı
 Çözülmeye çalışılan problemler çok
 geniş bir alanda ve çok zordu
 İngiliz hükümeti maddi desteği azalttı

9.10.2017 8
4. Teknoloji gelişimi- başarının anahtarı (1970 başları-
1980’lerin ortaları )
İşlem yapabilecek hızlı programlara ihtiyaç vardı
 DENDRAL(1963): kimyasal analizi (NASA): kütle
spectrogram’ımın belirlenmesi- uzman deneyimi , ilk
başarılı bilgi-tabanlı sistem (knowledge-based system), bilgi
 mühendisliği temeli
 MYCIN (1976): tıbbi teşhis sistemi (enfeksiyonlu kan hastalıkları
 teşhisi), kural tabanlı uzman sistem
 PROSPECTOR (1983): mineral araştırma. Kural tabanlı sistem +
 anlamlı ağ yapısı (semantic network)
 Kısıtlı algoritmalar, problem-tabanlı, performansları çok iyi
değil, oluşturulmaları çok uzun yıllar almış, ..vs
9.10.2017 9
5. Sinir Ağlarının Yeniden Doğuşu (1980
ortaları ve sonrası)
 YSA’nın oluşması için teorik altyapı:
1960’ların sonları- YSA gelişimi: 1980 ortaları
(teknoloji!!!!!, 1969’da Minsky ve Papert tek
katmanlı perceptronların matematiksel
 zayıflığını gösterdi- heves kalmadı)
 Grossberg, 1980: adaptif rezonans teorisi
 (Self-organized-maps için alt yapı)
  Hopfield, 1982: Hopfield ağları
  Kohonen, 1982: Self-organized-maps
 Barto, Sutton ve Anderson, 1983:
 takviyeli öğrenme- kontrol
 Rumelhart ve McClelland, 1986: GERİ
YAYILIMLI ÖĞRENME ve çok katmanlı
 perseptronlar (Bryson ve Ho, 1969)
 Broomhead ve Lowe, 1988: layered
feedforward networks with radial
basis functions

9.10.2017 10

6. Evrimsel Hesaplama, ya da yaparak
öğrenme (1970’lerin başları ve sonrası)
Doğal seleksiyon ve genetik
 Genetik algoritmalar, evrimsel stratejiler ve
 genetik programlama
 John Holland, 1975: genetik algoritma kavramı:
kromozomların binary kodlanması, seçme,
 çaprazlama ve mutasyon
 …. ve diğerleri

9.10.2017 11
7. Bilgi Mühendisliği (1980 sonları-günümüz)
 YSA: symbolic reasoning sistemlerine göre daha iyi

uyum sağlıyor fakat kara kutu (açıklama yok), eğitme


uzun olabiliyor, yeniden eğitme farklı sonuçlara yol
 açabiliyor
 Ön-bilgi az ise (knowledge-poor
 situations) performans iyi.
 Klasik uzman sistemler:uzmana bağlı kalması,
uzmanın bilgilerini her zaman iyi bir kural ile ifade
edememesi, ..vs. Çözüm: büyük veri havuzundaki
gizli bilgili çıkaran YSA ile kurallar için gerekli olan
bilginin elde edilmesi, Bulanık mantık, hibrid
sistemler

9.10.2017 12
2. Kural-Tabanlı Sistemler

  Trafik lambası,
 EĞER kırmızı İSE bekle.
IF traffic light is red THEN wait.
(IF-THEN yapısı, KURAL).
 IF: koşul
THEN: durum ya da aksiyon
 Kurallar ile ilişkiler (EĞER Yakıt deposu boş
ise araba ölüdür), tavsiyeler (EĞER hava
bulutlu ise şemsiye al), direktifler (EĞER
yakıt deposu boş ise DOLDUR), stratejiler
(EĞER araba çalışmıyor ise yakıt deposunu
kontrol et ), sezgiler (EĞER numune sıvı,
ph>6 ve sirke gibi kokuyorsa numune asetik
asit olabilir) anlatılabilir.

9.10.2017 13
Uzman Sistem Bileşenleri

9.10.2017 14
Kural-tabanlı uzman sistem yapısı

If-then kurallarından
hangilerinin alınacağını
belirler, çıkarım yapılır

Uzman sistemin sonuçlara nasıl


ulaştığını ve neden bir gerçeğe
ihtiyaç duyulduğunu
açıklamasını sağlar

9.10.2017 15
Uzman sistemin temel karakteristikleri

Yüksek-kaliteli performans (hız ikinci planda ama çok
önemli)temel kurallar, sezgisel kurallarAçıklayıcılık

Sembolik çıkarımsama
Belirli bir işlem sırası yok, tam olmayan çıkarımsama
yapılır,tam olmayan, belirsiz ve bulanık varilerle uğraşılır.
Uzman hata yapabilir
Geleneksel programlar & uzman sistemler ???
-tam veriler, kesin ve doğru sonuçlar
-uzman sistemlerde bilgi ve işlenmesi ayrılmış durumda
(modüler, değiştirilebilir ve anlaşılır yapı)

9.10.2017 16
İleri ve geri zincirleme çıkarım teknikleri
 IF-THEN kuralları: domain  
  Facts: data
 Çıkarım makinesi, veritabanındaki gerçekler ile bilgi
tabanındaki her kuralı karşılaştırır. Eşitleme varsa: FİRED

 Ateşlenen kurallar
gerçekler setini
 yenileyebilir.
 Çıkarım zincirleri
(Inference chains):
If kısmı ile
gerçeklerin eşleşmesi
9.10.2017 17
 Zincirleme çıkarım teknikleri, örnek:
Veritabanı: A, B, C, D ve E gerçekleri
 Bilgi tabanı:
Kural 1: IF Y is true AND D is true
 THEN Z is true
Kural 2: IF X is true AND B is true AND E is true
 THEN Y is true
Kural 3: IF A is true THEN X
is true

9.10.2017 18
İleri zincirleme: data-driven method
 Önceki örnek: ileri zincirleme.  Bilinen veriden başlar,
her seferinde en
Kural 1: Y & D → Z yukardaki kural işleme
Kural 2: X & B & E → Y tabi tutulur, her kural
Kural 3: A → X
iki yeni kural ekleyelim:  1 kere işleme alınır
Kural 4: C → L  Devam edildiğinde M ve
Kural 5: L & M→ N N de eklenecek

9.10.2017 19
Geri zincirleme: goal-driven method
Hedef (goal) vardır.
Bu hedefe ulaşmak
için diğer kurallar


sorgulanır,
sorgulama esnasında
ara-hedefler (sub-
goals)
oluşturulabilinir.
İleri zincirlemede
aynı sonuç için 4
kural ateşlenirken,
geri zincirlemede 3
kural ateşlendi.
Eğer uzman önce
belli bilgilere ihtiyaç
duyup ona göre yeni
kurallar oluşturacak
ise ileri zincirleme.
Bir hipotez çözüm
üretip onu
ispatlamak için yeni
kural ve gerçeklere
ihtiyaç duyacaksa,
geri zincirleme
kullanılmalıdır.
İleri ve geri
zincirleme kombine
olarak ta
kullanılabilir. Fakat
9.10.2017
20
genellikle geri
zincirleme kullanılır.
 Conflict resolution (çatışma
çözümü):
bilinen bir döngüde bir gerçek için
birden fazla kuralın ateşlenebileceği
kurallar içinden bir kuralı seçme
yöntemine denir.
 Önleme yöntemleri:
-kuralları öncelik sırasına göre dizme
-en spesifik kuralı seç (spesifik kural
genel olandan daha fazla bilgi içerir)
-veritabanına en son eklenen veriyi
kullanan kuralı seç

9.10.2017 21
 Kural sayısı arttığında uzman tüm kuralları görüp yorum
yapamayabilir:
sistemi bilgi hakkındaki bilgi ile donatmalıyız.
Metaknowledge: bilginin bilgisi (knowledge about
knowledge). Ortam bilgisini kullanmak ve kontrol
etmek için gerekli olan bilgi-Metarule. Domain-
independent. Metarule-1:
Uzmandan gelen kurallar, acemiye göre önceliklidir
Metarule-2:
İnsan hayatının kurtarılması ile ilgili kurallar Güç sistemi
elemanlarındaki fazla yükü temizleme ile ilgili
kurallardan daha önceliklidir.
Mearule-3:
Dersi dinlemek ile ilgili kurallar ders metaryli
kurallarına göre önceliklidir.

9.10.2017 22
Kural tabanlı sistemleri avantaj ve
dezavantajları:

Avantajları: Dezavantajları:
 Kurallar arasında net
  Doğal bilgi gösterimi olmayan ilişkilerin var
 Düzenli bir yapı olması. Bireysel kurallar
 (IF-THEN yapısı)  tüm stratejiyi nasıl etkiliyor?
 Bilgi ile bilginin  Etkin olmayan arama
işlendiği kısımlar ayrı stratejisi: zaman tasarrufu
ve real-time uygulamalarda
 (modüler ve adaptif)  eksiklik
 Eksik ve kesin  Öğrenme eksikliği.
olmayan bilgileri de Deneyimden öğrenmezler:
işleyebilmesi uzman söyler.

9.10.2017 23
3. Bulanık Uzman Sistemler

 Uzmn tarafından sağlanan bilgi: «güç transformatörü
hafif bir şekilde yüklendiğinde bu yükü sürekli
tutabilirim». İnsan: anlar. Bilgisayar: ???
 Bulanık mantık, bulanık olan bir mantık değildir,
 bulanıklığı açıklamak için geliştirilmiş bir mantıktır.
 Temeli: Tüm nesne ve olgular derecelere sahiptir
(Motor gerçekten ÇOK ISINDI, elektrikli arabalar ÇOK
HIZLI DEĞİL, İstanbul GÜZEL bir şehir, …vb)
 Geleneksel mantık: keskin sınırlar (Elektrikli arabanın
menzili 300 km’den az ise KISA, 300 km’den fazla ise
UZUN )

9.10.2017 24
 1930, Jan Lukasiwwicz: Çok değerli mantık. Uzun, eski
ve sıcak kavramları üzerinde keskin mantık yerine çok
değerli mantık kullanmış. Olasılık değerleri (olabilirlik


değerleri) atanmış. Örneğin 181 cm uzunluğundaki
 adam: 0.86 değeri atanmış. (Uzun olma olasılığı yüksek)
  …..
  1965, Lotfi Zadeh: Fuzzy Sets Theory
 Neden Bulanık Mantık?

9.10.2017 25
Bulanık Setler:
 Set kavramı bir çok elemanı içeren bir grup olarak
kullanılabilir: Araba derken bir çok arabanın
oluşturduğu bir seti ifade  ediyoruz. Bir araba
 derken de bu set içindeki bir arabadan bahsediyoruz.
 X: bir set, x: bir eleman. x ya X’e dahildir (x Є X) ya
da değildir. (belirsiz durumları açıklayamaz)
Örnek: UZUN adam örneği
Klasik mantık: Adam uzun mu? (evet ya da hayır), 180
cm sınırı.
Bulanık mantık: Adam ne kadar uzun? (üyelik bilgisi.
Adam 0.82 üyelikle uzun gibi)

9.10.2017 26
 «oldukça kısa», «kısa»,
«ortalama» ve «oldukça
uzun» setleri
 Yatay eksen: «universe of
discourse»: seçilen bir
değişkene uygulanabilecek
tüm değerlerin bulundupu
 aralık
 Dikey eksen: üyelik değeri

9.10.2017 27
  Bulanık set: bulanık sınırları olan set
 X: universe of discourse (değer evreni), x: elemanlar.
Kesin mantık: A seti, A’nın karakteristik fonksiyonu
ile ifade edilir.

Bulanık mantık: A seti, µA(x) üyelik fonksiyonu ile


ifade edilir. (0-1 aralığında sürekli değerler alabilir)

9.10.2017 28
Bilgisayarda Bulanık set nasıl ifade edilir?
 Öncelikle üyelik fonksiyonu belirlenmelidir.
 (Uzmanlara danışılabilir, son yıllarda: YSA)
 Uzun adam örneği:
Üç set: kısa, orta uzun. Bulanık mantık: 184 cm: orta setinin uzun üyesi
(0.1 üyelik değeri ile) fakat uzun setinin de üyesi (0.4 üyelik değeri ile)
-X={x1, x2, x3, x4, x5 } :
referans süper set. (Universe
of discourse)
-A: subset of X
A={x2, x3}
Burada A şu şekilde de
tanımlanabilir:
A={(x1,0), (x2,1), (x3,1), (x4,0),
(x5,0)}. ({(xi, µi(x)} şeklinde
tanımlanmış)
Buradaki soru şudur: µA(x)
sadece 0, 1 şeklinde iki
değerden birini mi alacaktır
yoksa 0-1 aralığında herhangi
bir değer mi alacaktır?
9.10.2017 29
 Bulanık subset’lerin gösterimi şu şekilde yapılır:
 A={(x1, µA(x1)}, {(x2, µA(x2)},…{(xn, µA(xn)}
 Veya (genellikle)
A={(µA(x1)/x1}, {(µA(x2)/x2},…{(µA(xn)/xn}
 Üyelik fonksiyonları: sigmaid, gaussian, pi → iyi gösterim fakat hesapsal yük.
Pratikte: Lineer üyelik fonksiyonları (hesapsal kolaylık)

Uzun adam örneğinde «uzun adam» seti bir «fit vektör» ile şu şekilde ifade
edilebilir:
Uzun adam=(0/180, 0.5/185, 1/190) veya
Uzun adam=(0/180, 1/190)
Benzer şekilde:
Kısa adam=(1/160, 0.5/165, 0/170)
Kısa adam=(1/160, 0/170)
Ortalama adam=(0/165, 1/175, 0/185)

9.10.2017 30
Dilsel değerler ve sınırlar
 «Ahmet uzun bir adamdır»: Ahmet: dilsel değişken,
uzun: dilsel değer.

 Sınırlar (hedges): bulanık  setlerin şeklini düzenlerler.
Çok (very), biraz (somewhat), oldukça (quite), daha çok
yada daha az (more, less), hafifçe (slightly) gibi sıfatlar
içerirler. Yüklemleri, sıfatları, zamirleri ve hatta tüm cümleyi
 değiştirebilirler.
* çok amaçlı değiştiriciler: çok, oldukça, çok
çok fazla,…gibi
*gerçekle ilişkili olanlar: oldukça doğru,
çoğunlukla yanlış,…gibi
* olasılıklar: olabilir, çok olabilirliği yok,…gibi
*miktar belirteçleri: çoğu, bir kaç, çok az,…gibi
*olabilirlikler: hemen hemen imkansız ve
ya oldukça olası,…gibi

9.10.2017 31
 Sınırlar insan düşünmesini
taklit etmeyi kolaylaştırır.
Önceki örnekteki setler
"very" sıfatını kullanarak
yeniden düzenlenmiştir.



 Pratik uygulamalarda
Sıkça kullanılan sınırlar
(hedges):
Very: 
Extremely:
Very Very:
More ya da Less:

Indeed: 
9.10.2017 32
Bulanık Setler Üzerindeki İşlemler:
 Complement (tersini alma)
-klasik set teorisi: set’e dahil olmayanlar neler?
-bulanık set teorisi: elemanların set’e dahil olmama
oranları nelerdir?
µ¬A(x)=1-µA(x)
Uzun adam=(0/180, 0.25/182.5, 0.5/185, 0.75/187.5, 1/190)
Uzun olmayan adam=(1/180, 0.75/182.5, 0.5/185,0.25/187.5, 0/190)

 Containment (içerme)
-klasik set teorisi: hangi setler hangi diğer setleri içerir? -
bulanık set teorisi:⊂ hangi setler diğer setlere dahildir? (very
tall man tall man)
9.10.2017 33
 Intersection (Kesişme)
-klasik set teorisi: hangi elemanlar her iki sete de dahildir?
-bulanık set teorisi: elemanların ne kadarı her iki
sette vardır?
Şişman ve uzun (klasik mantık: kesişimde yer alması
için hem şişman hem de uzun)
A ve B bulanık setleri (X değer evreninde) var.
µA∩B(x)=min[µA(x), µB(x)]= µA(x)∩µB(x)
Örnek:
Uzun adam=(0/165, 0/175, 0/180, 0.25/182.5, 0.5/185,1/190)
Ortalama adam=(0/165, 1/175, 0.5/180,0.25/182.5, 0/185,
0/190) İse
Uzun adam ∩ Ortalama adam= (0/165, 0/175, 0/180, 0.25/182.5, 0/185, 0/190)

9.10.2017 34
 Union (Birleşim)
-Klasik set teorisi: herhangi bir sete dahil olan elemanlar hangileridir?
-Bulanık set teorisi: Elemanların ne kadarı herhangi bir
sete dahillerdir?
A ve B bulanık setleri (X değer evreninde)∪ var. µA∪B(x)=max[µA(x),
µB(x)]= µA(x) µB(x) Örnek:
Uzun adam=(0/165, 0/175, 0/180, 0.25/182.5, 0.5/185,1/190)
Ortalama adam=(0/165, 1/175, 0.5/180,0.25/182.5, 0/185, 0/190)
İse ∪

Uzun adam Ortalama adam= (0/165, 1/175, 0.5/180, 0.25/182.5, 0.5/185, 1/190)

NOT: klasik teoride olduğu gibi,


- ∪ ∪

-değişme özelliği,
A B= B A
- ∪ ∪
∪ ∪

birleşme özelliği,
A (B C)= (A B) C
-
∪ ∪ ∪

dağılma özelliği,
A (B ∩ C)= (A B)∩(A C)
-

denklik özelliği,
A A=A,
-

birim uzay,
A Ø= A, A∩Ø=Ø
değilleme,
¬¬A=A
-De morgan kuralı:

¬(A ∩ B)=¬A ∪ ¬B
9.10.2017 35
Bulanık Kurallar:
 IF x is A
THEN y is B

x,y: dilsel değişkenler


A,B: dilsel değerler

 Klasik kurallar ve Bulanık kurallar arasındaki fark:


Klasik kurallar: Bulanık Kurallar:
IF speed is >100 IF speed is FAST
THEN stopping_distance is long THEN stopping distance is long

IF speed is <40 IF speed is slow


THEN stopping_distance is short THEN stopping distance is short

9.10.2017 36
Bulanık kurallarla sonuç oluşturma: (Fuzzy reasoning)
-koşulu değerlendirme (IF kısmı)
-olguyu gerçekleştirme (THEN kısmı)


  Klasik mantık: koşul doğru ise (1) gerçekleştir
 Bulanık mantık: koşul belli dereceye kadar doğru ise
gerçekleştir (üyeliği >0.8 ise)

9.10.2017 37
Kural: (Ağırlık tahmin modeli)

IF height is tall
THEN weight is heavy
Bu şekildeki çıkarımsama: monotonic selection
------------------------------------------------------------------
IF kısmı birden fazla parçadan oluşursa:
IF project_duration is long
AND project_staffing is large
AND peoject_funding is inadequate
: tüm parçaların∪ üyeliği ayrı ayrı değerlendirilir ve bulanık set işlemleri gerçekleştirilir (AND: , OR: ∩)
--------------------------------------------------------------------
THEN kısmı birden fazla parçadan oluşursa:THENriskishigh
IF temperature is high
THEN hot_water is reduced; cold water is increased
:tüm parçalar eşit derecede etkilenir.
9.10.2017 38
Bulanık Çıkarımsama (Fuzzy Inference)
 Bulanık set teorisini kullanarak verilen giriş

değerlerinden çıkış oluşturma 


1. Mamdani-Style Inference:
En sık kullaılan yöntem (1975, Ebrahim Mamdami)
Dört adım:
 Giriş verilerinin bulanıklaştırılması (fuzzification)
 Kural değerlendirme
 Kurak çıkışlarının toplanması
 geri-bulanıklaştırma (De-fuzzyfication)

9.10.2017 39

9.10.2017 40
Bulanık Çıkarımsama (Fuzzy
Inference)
 belirli giriş değerleri için (x1
ve y1) hangi setlere hangi
üyelikle dahil oldukları
hesaplanır.
 Kural değerlendirme:
Kural 1:
IF x is A3 
OR y is B1
THEN z is C1
Normalde:
µA B=max(µA(x), µB(x))
İle
hesaplanm ası ger ekiyor du.

Fakat bazen aşağıdaki gibi de OR


işleci hesaplanabiliyor
(MATLAB’de böyle yapılıyor):
µA B= probor(µA(x), µB(x))=
(x)+ µ (x)-µ (x) x µ (x)
µA ∪ B A B
Benzer şekilde AND işleci:
µA ∩ =prod(µA(x), µB(x))= µA(x) x
B

µB(x)

9.10.2017 41
Kural çıkışlarının toplanması:


-clipped (örnekteki yapılan)
-scaled

9.10.2017 42
Geri-bulanıklaştırma (Defuzzification)
Bir çok yöntem ama en yaygını: centroid tekniği (kütle
merkezi (alanları eşit olarak ikiye bölen çizgi))

Centre of Gravity (COG)-kütle merkezi:


= = ∑ =

∫ =

9.10.2017 43
2. Sugeno-style inference:
Mamdami yöntemi:İki boyutlu bir şekil üzerinden
integral alarak centroid bulmamızı istiyor: hesapsal
olarak etkin değil.
Sugeno, mamdami ile aynı sadece kural sonucu değişik.
IF x is A
AND y is B
THEN z is f(x,y)
Burada f(x,y), matematiksel bir fonksiyondur.

9.10.2017 44
Sonuç hesabı:
WA(Weighted Average- 
Ağırlıklı ortalama):

∗ + 2∗2+ 3∗3

=
= 0.1+0.2+0. 5
+2+3

0.1∗20+0.2∗50+0.5∗80
= 65

9.10.2017 45
Bulanık bir uzman sistemin tasarımı:
1) Problemi belirle ve dilsel değerleri tanımla
2) Dilsel değerler ve çıkışlailgili bulanık setleri tanımla
3) Bulanık kuralları oluştur
4) Bulanık çıkarımsama yapabilmek için bulanık setleri
ve kuralları kodla
5) Sistemi değerlendir ve ayar yap

9.10.2017 46

 ÖRNEK:
Kişinin boyuna ve kilosuna göre yapması gereken
egzersiz miktarının belirlenmesi.

9.10.2017 47
4. Sınıflama, Kümeleme ve
Öğrenme Kavramları

Veri madenciliği uygulamaları aşağıdaki iki
kategoriden birinde uygulanmaktadır:
1. Eldeki verilerle tanımlanan bir sistemin modelini
üreten, tanımsal veri madenciliği,
2. Mevcuttaki veriye dayalı olarak daha önceden
karşılaşılmamış, yeni bilgileri üreten tahminsel veri
madenciliği.

9.10.2017 48
ÖRNEK:

SİSTEM

giriş çıkış

R1

giriş R2 çıkış

Çıkış=giriş/(R1+R2)*R2

giriş
? çıkış

Bölüm-1 49
4. Sınıflama, Kümeleme ve
Öğrenme Kavramları

Veri madenciliği görevleri:
 Sınıflama (Classification)

 Regresyon (regression)

 Kümeleme (Clustering)

 Özetleme(Summarization)

 Bağımlılık modellemesi (Dependency Modelling)

 Değişim ve sapma tespiti (Change and
Deviation Detection)

Bölüm-1 50
Problemin tanımlanması


Verilerin toplanması

Önişleme

Model tahmini

Modelin yorumlanması &


sonuçların çıkarsanması
Bölüm-1 51
Veri gösterimi: özellikler

Örnekler

X
Bağımlı değişken
Z
SİSTEM
Y Bağımsız değişken
Bağımlı değişken

Bölüm-1 52
4. Sınıflama, Kümeleme ve Öğrenme
Kavramları
Verinin kalitesi:

• veri doğru olmalı
• veri tam olmalı
• veri tutarlı olmalı
• Veri kendi tipinde kaydedilmiş olmalı (sayısal
tipli bir veri ise sayısal değerli olması,..vs.)
• Veri gereksiz yere büyük olmamalı
• Veri zaman faktörü ile tutarlı olmalı
• Veri iyi anlaşılır olmalı
• Veri yorumlama farklarına imkan verecek
Bölüm-1 53
bulanıklıkta olmamalı
Sınıflama

 Örnek: bir iş için uygun işçi bulmak
başarılı

başarısız

Bölüm-3 54
sınıflama

 Örnek: klimanın otomatik artışı - azalması
Ortam sıcaklığı

İstenen derece
Çıkış değerleri

Pencerelerin durumu
Klima (0.5 derece artır
ya da azalt)

Nem

Bölüm-3 55
sınıflama

 Örnek: hastalık sınıflama

56
kümeleme

57
kümeleme

Bölüm-3 58
Tahmin (regresyon)

Örnek: reklam harcamalarına bağlı gelecek öğrenci
sayısının modeli

Bölüm-3 59
Tahmin (regresyon)

Bölüm-3 60
Tahmin (regresyon)

 Tahmin problemlerinin farklı çözümleri olabilir

Bölüm-3 61
Öğrenme teknikleri

Makine Öğrenmesi yöntemleri verinin yapısına
göre ikiye ayrılır.
 Danısmanlı (supervised) Öğrenme: Veri,
etkiye tepki prensibiyle çalısan sistemlerden
alınır ve giris-çıkıs düzeninde organize edilir.
 Danısmansız (unsupervised) Öğrenme: Sınıf
bilgisi olmayan veya verilmeyen veri içerisindeki
grupları kesfetmeyi hedefler.

Bölüm-3 62
Danişmanli öğrenme

Bölüm-3 63
Danışmanlı öğrenme

Bölüm-3 64
Danışmansız öğrenme:

Danışmansız öğrenmede elde bulunan veriler için
onlara karşılık gelen çıkışlar önceden bilinmez. Örneğin
klima örneğinde ortam sıcaklığı, nem,..vs. gibi giriş
verileri elimizde vardır fakat her bir giriş verisine
karşılık klimanın derecesinin artırılması ya da
azaltılmasını söyleyen çıkış verisi yoktur.

Bölüm-3 65
Danışmansız öğrenme:

Örneğin: (bir sınıflama problemi var ise)
Danışmanlı öğrenme Danışmansız öğrenme

Bölüm-3 66
Danışmansız öğrenme

Uygulamalar,
 otomatik olarak haber sınıflandırma (örneğin
 news.google.com)
 benzer haberleri aynı kümelere koyup aynı
 başlanğıçtan kullanıcılara sunmak
 Sosyal ağlar analizi; facebookta ilişki grafikler vb

 Pazar analizi; müşterilerin tercihleri açıklama

 Doğal veriler anlama; ekonomi, bioloji, vb

67
Eğitme ve test
kavramları
 EĞİTME İŞLEMİ 
Asıl çıkışlar

Eğitme Model Sistem Hata


verileri (y=ax+exp(bx)) çıkışı hesaplama

Bölüm-3 68
Eğitme ve test
kavramları

TEST İŞLEMİ Asıl çıkışlar

Eğitilmiş
test Model Sistem Hata
verileri (y=3x+exp(2x)) çıkışı hesaplama

Sistemin
performansı

Bölüm-3 69
5. Yapay Sinir Ağları

70
Perceptron
Perceptronlar, son derece sınırlı olmalarına karşın en eski sinir
ağlarından biridir.
Perceptron, bir sinir hücresinin birden fazla girdiyi alarak bir
çıktı üretmesi prensibine dayanır.

Basit bir perceptron yapısı


Basit Algılayıcı Öğrenme Yapısı (Kuralı)
Adım1: Ağa, girdi seti ve ona karşılık beklenen çıktı gösterilir(X,B).
Adım2: Perceptrona gelen Net girdi hesaplanır.

Adım3: Perceptron çıkışı hesaplanır.


Ağın, beklenen çıktısı 0 iken Net girdi eşik değerinin üzerinde
ise ağırlık değerleri azaltılmaktadır.


Ağın, beklenen çıktısı 1 iken Net girdi eşik değerinin altında ise
ağırlık değerleri arttırılmaktadır.

Adım4: Bütün girdi setindeki örnekler için doğru sınıflandırma


yapılıncaya kadar ilk üç adımdaki işlemler tekrarlanır.
Örnek







Perceptron Yapısı
Bias=1 Wn =Wn + LR*Xn*E

x1 Tek katmanlı perceptronlar sadece doğrusal


x2 y problemlerde kullanılır
xn
++ ------------
w1…wn Gövde Çıktı +++++ -------

(Soma) Vektörü ++++++++ ---

[Sinaps]

Ağırlık Vektörü = W Hard-Lim aktivasyon Çıktı Vektörü başka


Her girişin ağırlıkları foksiyonu katmanları besleyebilir
atanıyor g()=İf Σ(wi.xi)>0 then 1 else 0
Terimler

Epoch : Olası girdiler için ağırlıkların güncellenme sayısına denir.
Error: Çıktı değeriyle bizim fonksiyondan beklediğimiz değer arasındaki farktır.
Örneğin, eğer biz çıktı olarak 0 bekleyip de 1 aldığımızda hata (error) değeri -1‘
dir.
Target Value, T : Perceptrondan öğrenmesini beklediğimiz değerdir. Örneğin,
eğer AND fonksiyonuna [1,1] girdisini verirsek bekleyeceğimiz sonuç 1 ‘dir.
Output , O : Perceptron’un verdiği çıktıdır.
Xi : Neuron’ a verilen girdi
Wi : Xi inci girdinin ağırlık değeri
LR : Learning rate. Bir perceptron’un hedefe varması için gereken adım büyüklüğü.
Öğrenme Algoritması

Girdilere göre çıktıyı hesapla
Error = T – O
If |Error| > 0 then
W =W + LR * X * Error
i_yeni değer i_eski değer i

End If
Örnekler X1

X1 1 (1,0) (1,1)
Eşik Output
0
X2 1

X2
• Net parametre değerleri (0,0) (0,1)
(bias, W1, W2) = 0, 1, 1)
X
1 X Bias + W1*X1 + W2 *X2 Output Target
2

1 1 0+1*1 + 1*1 = 2 1 1

1 0 0+1*1+1*0=1 1 0
0 1 0+1*0+1*1=1 1 0
0 0 0+1*0+1*0=0 0 1

Perceptronlar XOR problemi gibi doğrusal
olarak sınıflandırılamayan problemleri
çözümünde başarısızdır.
Çok Katmanlı
Perceptron (MLP)

86
XOR problemini çözmek için yapılan çalışmalar sonucu çok
katmanlı algılayıcı modeli geliştirilmiştir. Rumelhart ve
arkadaşları tarafından geliştirilen bu modele hata yayma modeli
veya geriye yayılım modeli(back propogation model) de
denilmektedir.

Bunu Özellikle sınıflandırma, tanıma ve genelleme yapmayı


gerektiren problemler için çok önemli bir çözüm aracıdır. Bu
model “Delta Öğrenme Kuralı” denilen bir öğrenme
yöntemini kullanmaktadır. Bu kural aslında ADALINE ve basit
algılayıcı modelinin öğrenme kurallarının geliştirilmiş bir
şeklidir.

87
Çok Katmanlı Ağ Modelinin Yapısı
Ara
Katman
Girdi Çıktı
Katmanı Katmanı

G1 Ç1

G2 Ç2

G3 Ç3

Eşik Eşik
Değeri Değeri
88
Girdi Katmanı:
Dış dünyadan gelen girdileri alarak ara katmana gönderir. Bu katmanda bilgi işleme olmaz. Gelen her bilgi geldiği gibi bir
sonraki katmana gider. Her proses elemanın sadece bir tane girdisi ve bir tane çıktısı vardır. Yani, girdi katmanındaki her proses elemanı bir sonraki katmanda bulunan
proses elemanlarının hepsine bağlanır.

Ara Katmanı: Ara katmanlar girdi katmanından gelen bilgileri


işleyerek bir sonraki katmana gönderir. Çok katmanlı bir
ağda birden fazla ara katman ve her katmanda birden fazla
proses elemanı bulunabilir.
89
Çıkış Katmanı: Ara katmandan gelen bilgileri işleyerek ağa
girdi katmanından verilen girdilere karşılık ağın ürettiği
çıkışları belirleyerek dış dünyaya gönderir.

Bir çıktı katmanında birden fazla proses elemanı olabilir. Her
proses elemanı bir önceki katmanda bulunan bütün proses
elemanlarına bağlıdır. Her proses elemanının bir çıktısı
vardır.

Temel amacı ağın beklenilen çıktısı ile ürettiği


çıktı arasındaki hatayı en aza indirmektir. Bunu
hatayı ağa yayarak gerçekleştirdiği için bu ağa
hata yayma ağı da denmektedir.

90
Çok katmanlı ağ öğretmenli öğrenme stratejisini kullanır.
Ağa, hem örnekler hem de örneklerden elde edilmesi
gereken çıktılar verilmektedir.


Sistem, kendisine gösterilen örneklerden genellemeler
yaparak problem uzayını temsil eden bir çözüm uzayı
üretmektedir. Daha sonra gösterilen benzer örnekler için bu
çözüm uzayı sonuçlar ve çözümler üretebilmektedir.

91
Çok Katmanlı Ağ Hücresi
Girdi Nöron  n : net giriş toplamı
a : çıkış
Σ : Toplam fonksiyonu.
f : Aktivasyon fonksiyonu.
•Sigmoid
•Tanh
•Lineer

92

Bir çok giriş için genellikle bir nöron yeterli olmayabilir. Paralel
işlem yapan birden fazla nörona ihtiyaç duyulduğunda katman
kavramı devreye girmektedir. S tane nöronun tek bir katmanı
Şekil’de gösterilmiştir. Burada her giriş bir nörona bağlıdır.

93
Çok Katmanlı Ağın Öğrenme Kuralı
Çok katmanlı ağın öğrenme kuralı en küçük kareler
yöntemine dayalı  “Delta Öğrenme Kuralı”’nın
genelleştirilmiş halidir. Bu yüzden “Genelleştirilmiş Delta
Kuralı” olarak da isimlendirilmektedir.

Ağın öğrenebilmesi için eğitim seti adı verilen ve


örneklerden oluşan bir sete ihtiyaç vardır. Bu set içinde her
örnek için ağın hem girdiler hem de o girdiler için ağın
üretmesi gereken çıktılar belirlenmiştir.

94
“Genelleştirilmiş Delta Kuralı” iki aşamadan oluşur.

• İleri doğru hesaplama(Feed  Forward)

• Geri doğru hesaplama (Back Propogation)

95
I) İleri Doğru Hesaplama
Bu safhada bilgi işleme  eğitim setindeki bir örneğin
Girdi Katmanından ağa gösterilmesi ile başlar. Gelen girdiler
hiç bir değişiklik olmadan ara katmana gönderilir.

Girdi katmanındaki k. Proses elemanının çıktısı Çki şu şekilde


belirlenir:

Çki = Gk

96
Ara
Katman
Girdi Çıktı
Katmanı 1 Katmanı

G1 Ç1
ÇK1 2

G2 . ÇK2 Ç2
. 3
. ÇK3
Gk Ç3

ÇKi i

Eşik Eşik
Değeri Değeri

97
Ara katmandaki her proses elemanı girdi katmanındaki
bütün proses elemanlarından gelen bilgileri bağlantı
ağırlıklarının (A1,A2,....) etkisi ile alır. Önce ara katmandaki
proses elemanlarına gelen
kullanılarak hesaplanır:
net girdi (NETja) şu formül

NETja=∑Akj Çki
k=1

Burada Akj k. girdi elemanını j. ara katman elemanına


bağlayan bağlantının ağırlık değerini göstermektedir. J. ara
katman elemanının çıktısı ise bu net girdinin aktivasyon
fonksiyonundan geçirilmesiyle hesaplanır.

98
Ara
Katman
Girdi Çıktı
Katmanı 1 Katmanı

G1 
2
Ç1

wA1j
G2 Ç2
.
. wA2j 3

Gk . Ç3
wAkj
j

Eşik Eşik
Değeri Değeri

NETja=∑Akj Çki
k=1
99
Sigmoid fonksiyonu kullanılması halinde çıktı:

1
Ç a= +β
-(NET
j )

a a
1+e j j

Burada βj , ara katmanda bulunan j. elemana bağlanan eşik


değer elemanının ağırlığını göstermektedir. Bu eşik değer
ünitesinin çıktısı sabit olup 1’e eşittir. Eğitim sırasında ağ bu
değeri kendisi belirlemektedir.

100
Ara
Katman
Girdi Çıktı
Katmanı 1 Katmanı

G1 Ç1
2
wA1j 
G2 . Ç2
. wA2j 3

Gk .
Ç3
wAkj
j
wβj
Eşik Eşik
Değeri Değeri

Ç a= 1
j -(NET a+β a)
1+e j j 101

Ara katmanın bütün proses elemanları ve çıktı katmanının
proses elemanlarının çıktıları aynı şekilde kendilerine gelen
NET girdinin hesaplanması ve sigmoid fonksiyonundan
geçirilmesi sonucu belirlenirler. Çıktı katmanından çıkan
değerler bulununca ağın ileri doğru hesaplama işlemi
tamamlanmış olur.

102
II) Geriye Doğru Hesaplama
Ağa sunulan girdi için  ağın ürettiği çıktı ağın beklenen
çıktıları ile karşılaştırılır. Bunların arasındaki fark hata olarak
kabul edilir. Amaç bu hatanın düşürülmesidir.
Bu hata, ağın ağırlık değerlerine dağıtılarak bir sonraki
iterasyonda hatanın azaltılması sağlanır. Çıktı katmanındaki
m. Proses elemanı için oluşan hata Em ;

Em =Bm- Çm

103
Em =Bm- Çm


Yukarıdaki hata, bir proses elemanı için oluşan hatadır.
Çıktı katmanı için oluşan toplam hatayı (TH) bulmak için
bütün hataların toplanması gerekir.

TH=1/2(∑Em2)

Toplam hatayı enazlamak için bu hatanın kendisine neden


olan proses elemanlarına dağıtılması gerekmektedir.

104
Ağın ağırlıklarını değiştirmek için 2 durum söz konusudur:

• Ara katman ile çıktı


değiştirilmesi
katmanı arasındaki ağırlıkların
• Ara katmanlar arası veya ara katman girdi katmanı
arasındaki ağırlıkların değiştirilmesi

105
Ara Katman ile Çıktı Katmanı Arasındaki
Ağırlıkların Değiştirilmesi
Ara katmandaki j. Proses elemanı çıktı katmanındaki m.
Proses elemanına bağlayan bağlantının ağırlığındaki değişim
miktarına ∆Aa denirse; herhangi bir t zamanında ağırlığın
değişim miktarı şöyle hesaplanır:
∆Ajma(t)=λδmÇja + α ∆Ajma(t-1)

Burada λ öğrenme katsayısını, α momentum katsayısını


göstermektedir.

106
Momentum katsayısı ağın öğrenmesi esnasında yerel bir
optimum noktaya takılıp kalmaması için ağırlık değişim
değerinin belirli bir oranda bir sonraki değişime eklenmesini
sağlar.
∆Ajma(t)=λδmÇja + α ∆Ajma(t-1)

Yine yukarıdaki formül dikkate alındığında δm ise m. çıktı


ünitesinin hatasını göstermektedir.
δm= f’(NET)Em

107
f’(NET) aktivasyon fonksiyonunun türevidir. Sigmoid
fonksiyonun kullanılması durumunda ;

δm= Çm(1-Ç  m)Em

Değişim miktarı hesaplandıktan sonra ağırlıkların t.


iterasyondaki yeni değerleri:

Ajma(t) = Ajma(t-1) + ∆ Ajma(t)

108
Benzer şekilde eşik değer ünitesinin de ağırlıklarını
değiştirmek gerekmektedir. Çıktı katmanında bulunan proses
elemanlarının eşik değer  ağırlıkları βç ile gösterilirse; bu
ünitenin çıktısı sabit ve 1 olması nedeni ile değişim miktarı:

∆βmç(t) = λ δm + α ∆ βmç(t-1)

βmç(t) = βmç(t-1) + ∆ βmç(t)

109
Ara Katmanlar Arası veya Ara Katman Girdi
Katmanı Arasındaki Ağırlıkların Değiştirilmesi


Ara katman ile çıktı katman arasındaki ağırlıkların
değişiminde her ağırlık için sadece çıktı katmanındaki bir
proses elemanının hatası dikkate alınmıştır. Oysaki bu
hataların oluşmasında girdi katmanı ve ara katman
arasındaki ağırlıkların payı vardır.

110
Girdi katmanı ile ara katman arasındaki ağırlıkların değişimi ∆Ai
miktarı:
ile gösterilirse değişim
∆Akji(t)=λ δja Çki + α∆Akji(t-1)

Yine burdaki hata terimi δa şöyle hesaplanacaktır:

δja=f’(NET)∑δmAjma
m

111
Aktivasyon fonksiyonu olarak sigmoid fonksiyonun
kullanılması durumunda ;

δ a = Ç a (1- Ç A a
)∑δ
a

m
j j j m jm

Ağırlıkların yeni değerleri ;

Akji(t)= Akji(t-1) + ∆Akji(t)

112
Benzer şekilde eşik değer ünitesinin de ağırlıklarını
değiştirmek gerekmektedir. Ara katman eşik değer ağırlıkları
βa ile gösterilirse değişim miktarı ;


∆βja(t)=λδja + α ∆βja(t-1)

βja(t)=βja(t-1) + ∆ βja(t)

Böylece ağın ağırlıklarının hepsi değiştirilmiş olacaktır. Bir


iterasyon hem ileri hem de geriye doğru hesaplamaları
yapılarak tamamlanmış olcaktır.

113
XOR Problemi
XOR problemini çözerken  kullanılacak
aktivasyon fonksiyonu 2 şekilde seçilerek
YSA’da hücrelerin
çözüm getirilmeye
çalışılmıştır :

• Step Fonksiyon ile


• Sigmoid Fonksiyon kullanarak

114
Step Fonksiyon ile Çözüm
Aktivasyon
a3 = w2 * o1 + w3 * o2

a3 = 1 * 0+ 1* 0 = 0

Çıktı

a4 = w1 * o1 + w5 * o3 + w4 * o2

a4 = -1 * 0 + 2 * 0 + (-1 * 0) = 0

O4=0

Eşik değeri, bütün hücreler için 0.02 olarak seçilmiştir.


115
Sigmoid Fonksiyon Seçilmesi
Durumunda

Sigmoid fonksiyon 0 ve 1 gibi değerler alır.

116
Adım 1. Ağırlıkların başlangıç değerlerinin verilmesi
– Ağırlıklar verilirken genel olarak küçük değerler seçilir.


Adım 2. Çıkışların hesaplanması
– Ara katmandaki oj gibi bir hücrenin çıkışı aşağıdaki
sigmoid fonksiyon ile hesaplanır.

1
oj = f ( ∑ wjioi - θj ) =
-α ( ∑ wjioi - θj )
1+e
♦ wji = weight of input i to neuron j
♦α is a constant
♦θj =node threshold
♦F=sigmoid function
117
Adım 3. Ağırlıkların ayarlanması

– Hata Gradyeni (Error gradient) hesaplanır.


• Çıktı nöronları için
δ =o (1–o )(d –o ) j j j j j

• Ara katmandaki nöronlar için


aşağıdaki şekilde hesaplanır.
δ = o (1 – o ) ∑ δ w
j j j k kj

δ k : neuron k’daki (gizli katmana bağlı olan) hata gradyeni


dj : istenilen çıktı (desired output), oj : esas çıktı (actual output)

– Ağırlıkların değişimi aşağıdaki gibi hesaplanır.


• ∆wji = ηδj oi η : öğrenme hızı (0< η <1)

– Değişimler varolan ağırlıklara ilave edilir.


w (t+1) = w (t) + ∆w
ji ji ji

118
Bu kısa hatırlatmadan sonra XOR problemimize dönersek;

Başlangıç ağırlık değerlerimiz aşağıdaki gibi random olarak verilir.

3
0.02
0.01
- 0.02
2 1
0.02
0.03
4

119
İlk durumumuz o3=1 ,o4=1 ve α ve θ değerleri de sırasıyla 1 ve 0
olsun.Ayrıca n öğrenme hızı da 0.3 olsun Bu durumda ;
1 3
1

0.02-0.018

0.01-0.010165
- 0.02
2 1
O2= 1 + e
O3= = 0.509
–(1x0.01 + 1x0.02) = 0.678 1 4
0.02
1 + e –[0.678x(-0.02) + 1x 0.02 + 1 x0.03)

1 0.03

o2 ,o3’ün çıktıları yukarıdaki gibi hesaplanır. O1’ün çıktısı istenilen


şekilde değildir. Bu durumda ağırlıkların yeniden hesaplanmasına
gidilir. 1
δ1 = 0.509(1-0.509)(0-0.509) = -0.127 -α ( ∑ wjioi - θj ) Sigmoid fonk.
∆w13 = 0.3(-0.127) x 1 = -0.038, 1+e
w13 = 0.02 – 0.038 = -0.018
δ2 = 0.678(1-0.678)(-0.127)(-0.02) = 0.00055
∆w23 = 0.3 (0.00055) x 1 = 0.000165, Ağırlıkların
w23 = 0.01 + 0.000165 = -0.010165 değişimi
120
δ1 = 0.509(1-0.509)(0-0.509) = -0.127
∆w14 = 0.3(-0.127) x 1 = -0.038, 1 3 -0.018
w14 = 0.03 – 0.038 = -0.008
-0.010165
- 0.02
2 1
δ2 = 0.678(1-0.678)(-0.127)(-0.02) = 0.00055 0.02-0.020165
∆w24 = 0.3 (0.00055) x 1 = 0.000165,
1
0.03-0.008

w24 = 0.02 + 0.000165 = -0.020165 4

δ1 = 0.509(1-0.509)(0-0.509) = -0.127
∆w12 = 0.3(-0.127) x 0.678 = -0.0258318, 1 3 -0.018
w12 = - 0.02 – 0.0258318 = -0.0458318 - 0.02-0.0458318
-0.010165
2 1
-0.020165

1 4
-0.008

Değişik örnekler gösterilerek ağ, yukarıdaki gibi eğitilir.

121
Sonuçta aşağıdaki ağırlıklara ulaşıldığında ağ öğrenmesini
durdurur.


Sonuçta :
3
4.98
O3=1,O4=0 için
5.62 0.01’lik bir hata payı ile
2 - 11.30 1
5.60 O2=0.9964
4.98
4 O1=0.9999

Değerleri elde edilir.


Sonuç
ağırlıklar

122
Uygulama

 IRIS sınıflama problemi: YSA (MATLAB)

9.10.2017 123
5. Evrimsel Hesaplama
GENETİK ALGORİTMA (GA)
Genetik Algoritmanın Tanımı
 Genetik algoritma, doğadaki evrim mekanizmasını örnek alan bir arama
metodudur ve bir veri grubundan özel bir veriyi bulmak için kullanılır.

 Genetik algoritmalar doğada geçerli olan en iyinin yaşaması kuralına
dayanarak sürekli iyileşen çözümler üretir.

 Bunun için kullandığı operatörler;

 uygunluk fonksiyonu (fitness) : toplumdaki her kromozomun ne kadar
iyi olduğu bulmayı amaçlayan fonksiyondur. Bu fonksiyon GA nın
 beynini oluşturmaktadır.
 yeniden kopyalama (recombination) : yeni çözümler üretmek için
çaprazlama (crossover) işlemi yapılır ve bu eşleme uygunluk
 fonksiyonuna göre yapılır.
 değiştirme (mutation) : sadece bir çözüm üzerinde yapılan işlemdir.
124
5. Evrimsel Hesaplama
GENETİK ALGORİTMA (GA)

9.10.2017 125
Kromozomun şifrelenmesi


 1. İkili kodlama


Bu yöntem ilk GA uygulamalarında kullanıldığı için hala en çok
kullanılan yöntemlerdir. Her kromozom, 0 ve 1 lerden oluşan
bit dizisidir ve ikili diziyle ifade edilir. Bu dizideki her bit,
çözümün bir özelliğini taşır. Dizinin tümü ise bir sayıya
karşılık gelir.


 Kromozom A: 101110010110
Kromozom 2: 010110100000

126
Kromozomun şifrelenmesi (Devam..)


 2. Permütasyon kodlama


Bu kodlama Gezgin Satıcı Problemi ve iş sıralama problemleri
gibi sıralam problemlerinde kullanılır. Burada her kromozom
bir numaralar dizisidir.


 Kromozom A: 35127604
Kromozom B: 01562347

127
Gen takası (Çaprazlama) ve Mutasyon

 1. İkili kodlanmış kromozom




- A) Tek noktalı gen takası.
  Kromozom-1: 11011|00100110110
 Kromozom-2: 11011|11000011110
 Çocuk-1 : 1101111000011110
 Çocuk-2 : 1101100100110110

- B) Çift noktalı gen takası.


  Kromozom-1: 11011|00100|110110
 Kromozom-2: 11011|11000|011110
 Çocuk-1 : 1101111000110110
 Çocuk-2 : 1101100100011110

128
Gen takası (Çaprazlama) ve Mutasyon (Devam..)

- C) Tek biçimli (uniform) gen takası.


  Kromozom-1: 11011001
 Kromozom-2: 00011110
 Çocuk-1 : 10011010
 Çocuk-2 : 01011101

Mutasyon işlemi : Mutasyon işlemi, problemin problemin


populasyondaki çözümlerin yerel optimuma düşmesini engellemek
için kullanılır. Mutasyon yeni üretilen çocuk kromozomu rasgele
değiştirir.

  Çocuk-1(orijinal) : 11011001
 Çocuk-2: 11111001

129
Gen takası (Çaprazlama) ve Mutasyon (Devam..)

2.Permütasyon kodlanmış

kromozomÇaprazlama:
  Kromozom-1: 123456789
 Kromozom-2: 453689721
 Çocuk-1 : 123489721
 Çocuk-2 : 453656789

Mutasyon: İkitane rasgele gen seçilir ve bunların yeri değiştirilir.

  Çocuk-1(orijinal) : 123456789
 Çocuk-2: 183456289

130
Kromozom Seçimi
 1. Rulet tekeri seçimi
Bu yöntemde seçilme işlemi  bireylerin
(kromozomların) uygunluk değerine göre
yapılmaktadır. Fakat uygunluk değeri en büyük
olanın seçileceği garanti edilmez, yalnız seçilme
şansı daha fazla olacaktır.


Bu yöntemde bütün uygunluk değerleri
bir tabloya yazılır ve toplanır. Uygunluk
değeri toplama bölünerek bireylerin
[0,1] aralığında seçilme olasılıkları
belirlenir.


Rulet tekerleği seçimi çözümlerin
uygunluk değerlerinin pozitif olması
gerekir.
131
Kromozom Seçimi (Devam..)
 2. Sıralama seçimi


Rulet tekeri seçimi, uygunluklar çok farklıysa problemlere yol açar.
(Örneğin, en iyi kromozomun uygunluğu %90 ise diğer kromozomlar çok az
seçilme şansına sahip olacaktır.)


Sıralama seçimi önce populasyonu sıralamakta ve ardından her
kromozomun bu sıralamada uygunluğu aranmaktadır. En kötüsü 1
uygunlukta, ikinci kötüsü 2 uygunlukta vb., en iyisi ise N
uygunlukta olacaktır.


Böylelikle bütün kromozomlara seçilme şansı verilir. Fakat bu
yöntemde en iyi kromozomlar, diğerlerinden daha farklı
olmadığından çözüme yaklaşma yavaş olacaktır.

132
Kromozom Seçimi (Devam..)

3. Sabitdurum seçimi 


Bu yönteme göre ebeveyinlerin seçimi için kromozomların büyük
parçaları bir sonraki jenerasyona taşınmaktadır.

Her nesilde yeni bir birey (çocuk) oluşturmak için birkaç


kromozom seçilir (büyük uygunlukta iyi olanlar).

Az uygunlukta kötü olan kromozomlar atılır ve yeni çocuk


kromozomlar yerine getirilir. Geri kalan kromozomlar
değiştirilmeden yeni nesile aktarılır.

133
Genetik Algoritmaların Çalışma Prensibi
 Adım 1: Olası çözümlerin kodlandığı bir çözüm grubu oluşturulur
(çözüm grubu (population), çözümlerin kodları (string) da kromozom
 olarak adlandırılır).
 Adım 2: Her kromozomun ne kadar iyi olduğu bulunur (fitness
 function).
 Adım 3: Bu kromozomlar eşlenerek (mating), yeniden kopyalama
(recombination) ve değiştirme (crossover) operatörleri uygulanır. Bu
 sayede yeni bir toplum oluşturulur.
 Adım 4: Yeni kromozomlara yer açmak için eski kromozomlar
 ortadan kaldırılır.
 Adım 5: Tüm kromozomların uygunlukları tekrar hesaplanır.

 Adım 6: İşlemler tekrarlanarak verilmiş zaman içerisinde daha iyi
olan yeni nesillerin oluşturulması gerçekleştirilir (3. adıma gidilir).

 Adım 7: O ana kadar hesaplanma sırasında en iyi kromozom
bulunduğunda istenen sonuç elde edilmiş olur.
134
GA’nın Performansını Etkileyen Nedenler
Kromozom sayısı:Kromozom sayısını arttırmak çalışma zamanınıarttırırken, azaltmak da
kromozom çeşitliliğini yok eder.


Mutasyon Oranı:Kromozomlarbirbirinebenzemeye başladığında
halaçözüm noktalarının uzağında bulunuyorsa mutasyon işlemi GA’nın
sıkıştığı yerden kurtulmak için tek yoludur. Ancak yüksek bir değer
vermek GA’ın kararlı bir noktaya ulaşmasını engelleyecektir.

 Kaç Noktalı Çaprazlama Yapılacağı: Normal olarak çaprazlama tek


noktada gerçekleştirilmekle beraber yapılan araştırmalar bazı
problemlerde çok noktalı çaprazlamanın çok yararlı olduğunu
göstermiştir.


 Çaprazlamanın sonucu elde edilen bireylerin nasıl değerlendirileceği: Elde
 edilen iki bireyin birden kullanılıp kullanılamayacağı bazen
önemli olmaktadır.

135
Nesillerin birbirinden ayrıkolupolmadığı:Normalolarakhernesil
tümüyle bir önceki nesle bağlı olarak yaratılır. Bazı durumlarda yeni nesli eski
nesille birlikte yeni neslin o ana kadar elde edilen bireyleri ile yaratmak yararlı
olabilir.


Parametre kodlanmasının nasıl yapıldığı:Kodlananın nasıl
yapıldığıen önemli noktalardan biridir. Örnek vermek gerekirse
kimi zaman bir parametrenin doğrusal yada logaritmik kodlanması
GA’nın performansında önemli bir farka yol açabilir.

 Kodlama gösteriminin nasıl yapıldığı: Kodlamanın nasıl olduğu


yeterince açık olmamakla beraber GA’nın performansını etkileyen
bir noktadır. İkilik düzen, kayan nokta aritmetiği ya da gray kodu
ile gösterim en yaygın yöntemlerdir.


 Başarı değerlendirmesinin nasıl yapıldığı: Akıllıca yazılmamış bir
değerlendirme işlevi, çalışma zamanını uzatabileceği gibi çözüme
hiçbir zaman ulaşmamasına da neden olabilir.
136
GA’ nın Uygulama Alanları
 Optimizasyon: Sayısal optimizasyon ve kombinetoral optimizasyon
problemleri olan devre tasarımı, doğrusal olmayan denklem sistemlerinin
 çözümünde ve fabrika-üretim planlamasında kullanılır.
 Otomatik Programlama (automatic  programming): Bilgisayar programları
yardımıyla network sıralamasında (sorting), ders programı hazırlanmasında kullanılır.

 Makine öğrenmesi (machine learning): Robot sensorlerinde, yapay sinir
ağlarında, VLSI yonga tasarımı ve protein yapısal analizinde kullanır.

 Ekonomi (economics): Ekonomik modellerin geliştirilmesinde ve işlemesinde
kullanılır.

 İmmün sistemler (Immune systems): Çok-gen’li ailelerin evrimi esnasında ve
doğal immün sistem modellerinde kullanılır.

 Topluluk genetiği (population genetics): Evrim ile ilgili sorulara cevap
bulmada kullanılır.

 Evrim ve öğrenme (evolution and learning): Fertlerin öğrenmesini ve
türlerin evrilmesinde kullanılır.

 Sosyal sistemler (social systems): Sosyal sistemlerin analizinde kullanılır.

137
Örnek: Fonksiyon Maksimizasyonu
Problem : f(x)=x², x∈[0, 31] şeklinde verilen bir fonksiyonun.
Amaç : Verilen aralıkta fonksiyonun maksimizasyonu.


Adım 1: x’in 0 ve 1'lerden oluşan 2 tabanındaki gösterilimi
yapılmaktadır
0 : “00000” 31 : “11111” olacaktır.
Adım 2: Toplumun birey sayısı n:4 olarak seçilmiştir. Toplumu
oluşturan dört birey, her biri 5 bit uzunluğunda birer kromozomla
temsil edildiği için toplam 20 kere yazı tura atmak suretiyle
belirlenmiştir.
Birey 1: 01101, x = 13 , x² = 169
Birey 2: 11000, x = 24 , x² = 576
Birey 3: 01000, x=8, x² = 64
Birey 4: 10011, x = 19 , x² = 361

138
Adım 3: Belirlenen bireyler için f(x)=x² ile uygunluk değerlerini
hesaplanır. Dört bireyin toplam uygunluk değerleri;

169 + 576 + 64 + 361 = 1170

Her bir bireyin rulet tekerleğinde kaplayacağı alan;

Birey 1: 169 / 1170 = 0.14 : %14


Birey 2: 576 / 1170 = 0.49 : %49
Birey 3: 64 / 1170 = 0.06 : %6
Birey 4: 361 / 1170 = 0.31 : %31

Bu değerler, rulet tekerleğinin her çevrilişinde hangi olasılıkla hangi


bireyin seçileceğini belirtir.

139
Adım 4: Toplumda ki birey sayısının sabit kaldığı
varsayıldığından, rulet tekerleği 4 kere çevrilerek çiftleşme
havuzu oluşturulur.

Birey 1 : 1 kere
Birey 2 : 2 kere
Birey 3 : 0 kere
Birey 4 : 1 kere

Elde edilen çiftleşme havuzu şu şekildedir;

Aday 1 : 01101 (Birey 1)


Aday 2 : 11000 (Birey 2)
Aday 3 : 11000 (Birey 2)
Aday 4 : 10011 (Birey 4)

140
Adım 5: Çiftleşme havuzu belirlendikten sonra iki aşamalı
çaprazlama uygulanır.

İlk aşamada adaylar  çiftleşmek üzere rasgele olarak eşlenirler.


Rasgele eşleştirme sonucunda ( Aday 1, Aday 2) ve (Aday 3, Aday 4) ikili
grupları oluşturulur.

İkinci aşamada her ikili grup için birer kere zar atılarak
çaprazlaşmanın oluşacağı nokta belirlenir. Zar atılarak 1. Grup
için k=4 ve 2. Grup içinde k=2 olarak belirlenmiştir.

Çiftleşme grubu 1: (k=4)


Aday 1 : 0110/1 oluşan Birey 1 : 01100
Aday 2 : 1100/0 oluşan Birey 2 : 11001
Çiftleşme grubu 2 : (k=2)
Aday 3 : 11/000 oluşan Birey 3 : 11011
Aday 4 : 10/011 oluşan Birey 4 : 10000

141
Adım 6: Son aşama olan mutasyon işlemi bitler düzeyinde uygulanır.
Birey 3’ün 2 numaralı bitinde mutasyon işlemi tapılmaktadır.
Oluşan Birey 3 : 11011
Mutasyon sonucu oluşan Birey 3 : 10011
Bu adımın tamamlanmasıyla bir sonraki kuşağı oluşturacak toplumun
bireyleri belirlenmiş olur. Yeni toplum şu şekildedir;
Birey 1 : 01100, x=12, x²=144
Birey 2 : 11001, x=25, x²=625
Birey 3 : 10011, x=19, x²=361
Birey 4 : 10000, x=16, x²=256

Bu örnekte tek bir iterasyon yapılmış ve başlangıç toplumundan bir


sonraki kuşak oluşturulmuştur ancak genetik algoritmanın
çalışmasının tam olarak gözlenebilmesi için tek bir iterasyon yeterli
değildir.

142

You might also like