Upload
quynn-petersen
View
41
Download
2
Embed Size (px)
DESCRIPTION
MAKİNE ÖĞRENİMİ-Machine learning. Öğrenme. Algılamalar yalnız vekilin tepkisi için değil, aynı zamanda vekilin gelecek davranışlarını daha da iyileştirmek için kullanılmalıdır Bu öğrenme yolu ile mümkündür Danışmanlı öğrenme-supervised learning Danışmansız öğrenme-unsupervised learning - PowerPoint PPT Presentation
Citation preview
MAKİNE ÖĞRENİMİ-Machine learning
Öğrenme
> Algılamalar yalnız vekilin tepkisi için değil, aynı zamanda vekilin gelecek davranışlarını daha da iyileştirmek için kullanılmalıdır
> Bu öğrenme yolu ile mümkündür Danışmanlı öğrenme-supervised learning
Danışmansız öğrenme-unsupervised learning
> Danışmanlı öğrenmede girdi ve çıktı (algı ve tepki) örneklerinden bir fonksiyon öğrenilmeye çalışılıyor.
> Danışmansız öğrenmede girdi örüntü örnekleri bellidir, ama çıktılar belli değil.
> Temiz danışmansız öğrenme mümkün değil. Olasılık kullanılıyor
Makine öğreniminin uygulanma alanları
> Biyokimya-akıllı toksikoloji> Tıp-teşhis> Biyoinformatik- proteinlerin yapılarının
öğrenilmesi> Doğal Dil -doğal dili kavramak için gramerin
öğrenilmesi> Maliye-borsa ve Pazar iniş-kalkışlarının
öngörülmesi> Askeriye- görsel bilgiler esasında araçların
tanınması> Müzik- müzik örneklerinin üslubuna göre
sınıflandırılması
Danışmanlı öğrenme-danışmansız öğrenme
> Danışmanlı öğrenme (sınıflandırma-classification)
Danışmanlı öğrenme: eğitim verileri (gözlemler, ölçümler,
vb) gözlem sınıfını belirten etiketleri tanımlar
Yeni veriler eğitim kümesine dayanarak sınıflandırılır
> Danışmansız öğrenme- (kümeleme)
Eğitim verilerinin sınıf etiketleri belli değil
Sınıflar veya kümeler oluşturmak için ölçümler,
gözlemler,vb . veriler verilmiştir
Sınıflandırma
> Kesin sınıf etiketleri önceden bellidir> Sınıflandırmanın 2 adımı: > 1. önceden tanımlanmış sınıflar kümesinin tanımlanması
Her bir sınıf “sınıf etiketleri” denen özelliklerle tanımlanır;
Her örüntü bir sınıfa ait edilir;
Örüntüler kümesi eğitim modelini (kümesini) oluşturur;
Model- karar ağacı, üretim kuralları, matematiksel formüllerle ifade edilebilir
> 2. Modelin kullanımı: yeni örnekler için sınıfın belirlenmesi• Test edilen örneğin belli etiketleri modeldeki
sınıflandırma sonucu ile karşılaştırılır; • Modelin kesinliği karşılaştırmaların sonucuna
bağlıdır;• Deneme kümesi eğitim kümesinden bağımsızdır
Sınıflandırma adımı 1: Model oluşturma
Eğitim verileri
adı unvanı yıl daimi kadro
Ahmet Yrd.Doç 3 hayırMehmetYrd.Doç 7 evetAli Profesör 2 evetFatma Doç.Dr. 7 evetMete Yrd.Doç 6 hayırAsli Doç.Dr. 3 hayır
Sınıflandırma algoritmaları
IF unvanı = ‘profesör’OR yıl > 6THEN d_kadro = ‘evet’
sınıflandırıcı(Model)
Sınıflandırma adımı 2: Modelin tahminde kullanımı
sınıflandırıcı
Eğitim verileri
adı unvanı yıl daimi_kadru
Hamdi Yrd.Doç. 2 hayırKasım Yrd.Doç. 7 evetNazlı Profesör 5 evetAli Yrd.Doç. 7 evet
Yeni veri
(Kerim, Profesör, 4)
Daimi_kadro?
Evet
Karar ağacı tümevarımı- Decision Tree Induction
> Karar ağacı Ağaç yapısı
Aralık düğümler özellikler üzere testleri ifade eder
Dallar test sonuçlarını ifade eder
Yaprak düğümler sınıf etiketlerini veya sınıf dağılımlarını ifade eder
> Karar ağacı oluşturma 2 aşamadan oluşmaktadır Ağacı yapılandırma
• Başlangıçta tüm eğitim örnekleri ağacın kökündedir• Ardışık seçilen özellikler üzere örnek kısımları
Ağaç budama• Sapmaları yansıtan dalları tanımlamalı ve budamalı
> Karar ağacını kullanma: Belirsiz örneğin sınıfını bulma Karar ağacı üzere örneğin özellik değerlerini test etmeli
Eğitim kümesi
yaş gelir öğrenci kredi_derecelendirme bilg. alabilme<=30 yüksek hayır orta hayır<=30 yüksek evet iyi evet31…40 yüksek hayır orta evet>40 orta hayır orta hayır>40 düşük evet orta hayır>40 düşük evet iyi evet31…40 düşük evet iyi evet<=30 orta hayır orta hayır<=30 düşük evet orta evet>40 orta evet orta hayır<=30 orta evet iyi evet31…40 orta hayır iyi evet31…40 yüksek evet orta evet>40 orta hayır iyi evet
Sonuç: “bilgisayar alabilir” için karar ağacı
yaş?
overcast
öğrenci? Kredil_der.?
hayır evet iyiorta
<=30 >40
hayır hayırevet evet
evet
30..40
Karar Ağacı oluşturma Algoritması
> Temel algoritma (a greedy algorithm)
Ağaç yukarıdan aşağıya “parçala yönet” mantığıyla oluşturuluyor
Başlangıçta tüm eğitim örnekleri kök üzerindedir
Özellikler kesindir (sürekli olanlar önceden kesinleştirilmelidir)
Örnekler , seçilmiş özellikler üzere ardışık parçalanıyor
Test özellikleri, sezgisel veya istatistiksel ölçüm (örneğin, bilgi kazancı) temelinde seçilir
Özelliğin seçilmesi-Bilgi kazancı
> En yüksek bilgi kazancı olan özelliği seçmeli
> Varsayalım ki, 2 sınıf (P ve N) var S örnekler kümesi, P sınıfından p öğe , N sınıfından n öğe içermektedir (Eğitim kümesi örneğinde P –”bilgisayar
ala bilenler”, N-”bilgisayar alamayanlar” sınıfını ifade ediyor.p=5,n=9
Her hangi örneğin P veya N sınıfına ait olmasına karar vermek için gereken bilgi miktarı böyle tanımlanır:
> Bilgi miktarı:
npn
npn
npp
npp
npI
22 loglog),(
Karar ağacı ve bilgi kazancı
> Varsayalım ki, A özelliğini kullanmakla S kümesi {S1, S2 , …,
Sv} kümelerine parçalanmıştır
Eğer Si , P’den pi örneklerini ve N’den ni örneklerini içeriyor ise , tüm Si altağaçları üzere nesneleri
sınıflandırmak için gereken entropi veya beklenen bilgi aşağıdaki gibi hesaplanabilir:
> A altağacı (dalı) üzere beklenen bilgi
> A altağacı üzere kazanılan bilgi
1),()(
iii
ii npInp
npAE
)(),()( AEnpIAK
Bilgi kazancını hesaplamakla özelliğin seçilmesi
sınıf P: bilgisayar al = “evet”
sınıf N: bilgisayar al = “hayır”
I(p, n) = I(9, 5) =0.940
Yaş için entropi’nin (beklenen bilginin) hesaplanması:
buradan
K(yaş)=0.940-0.69=0.25
Benzer olarak
yaş pi ni I(pi, ni)<=30 2 3 0,97130…40 4 0 0>40 3 2 0,971
69.0)2,3(14
5
)0,4(14
4)3,2(
14
5)(
I
IIyaşE
048.0)_(
151.0)(
029.0)(
irmederecelendkrediK
ögrenciK
gelirK
)(),()( yaşEnpIyaşK
Karar ağacına göre sınıflandırma kurallarının oluşturulması
> Bilgileri IF-THEN kuralları ile ifade etmeli> Kökten yaprağa doğru her yol için kural oluşturulur> Yol üzerinde her özellik-değer çifti birleşme (“ve” işlemini
kullanmakla) oluşturur> Yaprak düğüm sınıf tahminini içerir > Kurallar daha kolay anlaşılandır
> Örnek
IF yaş = “<=30” AND öğrenci = “hayır” THEN bilgisayar_almak = “hayır”IF yaş = “<=30” AND öğrenci = “evet” THEN bilgisayar_almak = “evet”IF yaş = “31…40” THEN bilgisayar_almak = “evet”IF yaş = “>40” AND kredil.derecesi = “iyi” THEN bilgisayar_almak = “evet”IF yaş = “>40” AND kredil.derecesi = “orta” THEN bilgisayar_almak = “hayır”
Örnekleme> Doğru sınıflandırmak için kavramlar öğrenilmelidir.
Öğrenmenin bir yolu örnekleme ile yapılıyor> Artı örneklerpositive(kedi,memeliler)positive(köpek,memeliler)positive(kartal,kuş)positive(timsah,sürüngen)positive(mersin,balık)
> Eksi örneklernegative(şahin,balık)negative(kirpi,sürüngen)negative(yılan,kuş)negative(insan,sürüngen)negative(kertenkele,kuş)
Michalski problemiBu örnek klasik sınıflandırma örneğidir. Vagonların boyutuna, taşıdıkları yüke,açık-kapalı olmalarına,tekerliklerinin sayısına göre neden sağa ve sola gittiklerinin belirlenmesi gerekiyor
İlaç bileşenleri sorunu
7 ilaçtan 4’nün zehirli olduğu,3’nün ise zehirsiz olduğu biliniyor. Kimyasal bileşenlerinin yapısına göre zehirli olanı belirlemek gerekiyor
Fonksiyon Öğrenme
> Sınıflandırmanın sayısal soruna dönüştürülmesi Her sınıfa numara (sayı) verilir
Ve ya gerçek değerli sayılar verilir (örn., 0.5 - 0.9)
> Fonksiyon öğrenme örnekleri Giriş = 1,2,3,4 Çıkış = 1,4,9,16
Bu kare tam sayıları öğrenme örneğidir
Giriş = [1,2,3], [2,3,4], [3,4,5], [4,5,6]
Çıkış = 1, 5, 11, 19
[a,b,c] -> a*c - b• İkinci örnek daha karmaşık hesaplama
gerektirmektedir
İki Seviyeli Yapay Sinir Ağları
İnsan Beyninde Sinir Hücrelerinin Yapısı
Neden Yapay sinir ağları
> Biyoloji nedenler: Beyin ,sinir hücreleri (nöron) ağından oluşuyor
Her sinir hücresi pek çok hücre ile doğrudan ilişkilidir• Bir hücrenin girişi bir başkasının çıkışıdır• Eğer girişlerin ağırlık değeri S>eşik değeri ise
hücre “tetiklenir”> Yapay Sinir Ağları ile gerçek sinir hücrelerini eşleştirmek
doğru değil• İnsan beyni: 100,000,000,000 sinir hücresi • YSA: < 1000 • YSA, gerçek sinir ağlarının çok-çok
basitleştirilmesidir
Örnek:Araçların Sınıflandırılması
giriş giriş giriş giriş
> Fonksiyon girişi: aracın görüntüsünden pixel verileri> Çıkış: sayılar: 1 araba için; 2 otobüs için; 3 tank için
çıkış = 3 çıkış = 2 çıkış = 1 çıkış=1
Bilgilerin tasviri
> YSA’nın araçları doğru tanımlaya bilmesi için ”araba”,otobüs”… hakkında belirli bilgileri bulunmalıdır
> Sınıflandırma düğümlere göre yapılır: Giriş değerleri çıkışa nasıl yansımalıdır?
> Uygulamalarda Tüm düğümler aynı hesaplamaya tabi tutuluyor
• Ağırlık toplamları (weighted sum)> “Siyah kutu” tasviri:
Öğrenilecek nesne (kavram) hakkında yararlı bilgilerin çıkarılması zordur
Temel fikir
1.1
2.7
3.0
-1.3
2.7
4.2
-0.8
7.1
2.1
-1.2
1.1
0.2
0.3
Gizli tabakalarGiriş tabakası
Gir
iş s
ayıla
rı
çık
ış s
ayıla
rı
Çıkış tabakası sınıf
Değerler ağ boyunca yayılmaktadır
A
B
C
A sınıfını seç(en yüksek çıkış değeri)
Tüm giriş değerlerini kullanmakla hesaplanan değer
YSA’nın öğrenme sorunu
> Öğrenme için sınıflar sayısal olarak ifade edilmiştir Eğitim (öğrenme) örnekleri de sayısal ifade edilmiştir
• Her örnek için doğru sınıflandırma> Sinir ağını örneklerle eğitme
Önceden bilinmeyen örneklerle doğru sonucun üretilmesi> YSA mimarisi sorunları
(a) Doğru ağ mimarisinin seçilmesi• Gizli katmanların sayısı,girişlerin sayısı…
(b) Her bir giriş için (aynı) işlevin seçilmesi(c) Düğümler doğru çalışana dek ağırlıkları eğitmeli
Perceptron
> Perseptron basit YSA mimarisidir> Birden fazla giriş düğümü> Tek çıkış düğümü> Gizli katman bulunmuyor
Girişlerin ağırlıkları toplamı-S
Ağın çıkışının hesaplanması için fonksiyon
> Perceptron büyük ağları oluşturmak için kullanıla bilir> Perceptron’un tasvir yeteneği sınırlıdır
Perceptron örneği> 2x2 pikselli siyah-beyaz
tasvirlerin sınıflandırılması “parlak” ve “koyu”
> Bu kuralları uygulayacağız: Eğer tasvirde 2, 3 veya 4 beyaz
piksel varsa tasvir parlaktır
0 veya 1 beyaz piksel varsa tasvir koyudur
> Perceptron mimarisi: Dört giriş birimi (her piksel için bir
tane)
Bir çıkış birimi: +1 beyaz için, -1 koyu için
Perceptron Örneği
> Örnek hesaplama: x1=-1, x2=1, x3=1, x4=-1 S = 0.25*(-1) + 0.25*(1) + 0.25*(1) + 0.25*(-1) = 0
> S=0 olduğundan ağını çıkışı +1 Tasvir “aydınlık” sınıfına ait edilmiştir
giriş giriş katmanı çıkış katmanı sınıf
parlaklık
karanlıkEksi halde
S≥0 ise
Çıkış değerlerinin hesaplanması
> Eşik fonksiyonları (Threshold Functions) S- her bir giriş düğümünün ağırlık
değerinin uygun giriş değerine çarpımlarının toplamıdır
Bu değer belirlenmiş eşik değeri ile karşılaştırılıyor.
S’in değeri eşik değerinden büyük ise büyük değerli çıkış düğümü seçiliyor.
Eksi halde küçük değerli çıkış düğümü seçiliyor.
> Bizim örnekte Eşik değeri=0 eğer S > Eşik Çıkış +1 eksi halde Çıkış –1
Özel giriş düğümü –çıkışı her zaman 1
Öğrenme algoritması
> Öğrenilecek: Giriş ve çıkış düğümleri arasındaki ağırlıklar
Eşik değeri
> Eşik özel girişinin ağırlığı 1 olarak kabul ediliyor> Ağırlıklar rastgele başlangıç değerler alıyorlar> Her öğrenme örneği E için
Ağın çıkışını hesaplamalı- o(E)
Eğer amaçlanan çıkış t(E), o(E)’den farklı ise• Tüm ağırlıkları öğle değiştirmeli ki, o(E), t(E)’ye yakın olsun
> Bu işlem her bir E örneği için yapılmalıdır Eğitim kümesindeki tüm örnekler için ağ doğru sonuç üretene dek işlemi devam
ettirmeli
Perceptron Öğrenme Kuralı
> t(E), o(E)’den farklı ise Δi farkını wi ağırlığına ilave etmeli
Δi = η(t(E)-o(E))xi
Bunu ağın her ağırlığı için yapmalıBizim örnekte (örnek sonraki sayfalarda verilmiştir) (t(E) – o(E)) ya 0, +2 veya –2 olacak Eğer alınan çıkışla gereken(beklenen) aynı ise fark 0, alınan -1,beklenen 1
ise -2, alınan 1 ,beklenen -1 ise fark 2 olacak
O zaman Δi farkını ilave etmekle ağırlığın değişme yönünü belirleye bileriz > η –öğrenme oranıdır. Ağırlık değerinin değişimini kontrol etmek
için kullanılır
Genelde çok küçüktür (örn., 0.1) Bir örnek için değişim farkı çok olmamalıdır
Örnek> “parlak-koyu” örneğine bir daha bakacağız> Öğrenme oranı (learning rate) η = 0.1> Rasgele ağırlıklar verildiğini varsayalım:
Örnek> Örnek üzerinde ağırlıkların değiştirilmesini öğrenelim:
> x1 = -1, x2 = 1, x3 = 1, x4 = -1 > Çıkış katmanının değeri:
S = (-0.5 * 1) + (0.7 * -1) + (-0.2 * +1) + (0.1 * +1) + (0.9 * -1) = -2.2> Ağın çıkışı o(E) = -1 olacak (-2.2<=0 olduğu için)> Ama doğru sınıflandırma “parlak”=+1olmalı idi
t(E) = +1
> Her bir giriş katmanı için fark hesaplanır: > Δ0 = η(t(E)-o(E))x0
= 0.1 * (1 - (-1)) * (1) = 0.1 * (2) = 0.2> Δ1 = η(t(E)-o(E))x1
= 0.1 * (1 - (-1)) * (-1) = 0.1 * (-2) = -0.2> Δ2 = η(t(E)-o(E))x2
= 0.1 * (1 - (-1)) * (1) = 0.1 * (2) = 0.2> Δ3 = η(t(E)-o(E))x3
= 0.1 * (1 - (-1)) * (1) = 0.1 * (2) = 0.2> Δ4 = η(t(E)-o(E))x4
= 0.1 * (1 - (-1)) * (-1) = 0.1 * (-2) = -0.2
Bu farkları dikkate almakla yeni ağırlık değerleri hesaplanır (eski değerin üzerine fark ilave edilir)
> w’0 = -0.5 + Δ0 = -0.5 + 0.2 = -0.3
> w’1 = 0.7 + Δ1 = 0.7 + -0.2 = 0.5
> w’2 = -0.2 + Δ2 = -0.2 + 0.2 = 0
> w’3= 0.1 + Δ3 = 0.1 + 0.2 = 0.3
> w’4 = 0.9 + Δ3 = 0.9 - 0.2 = 0.7
Örnek-Hata değerlerinin ve ağırlık değerlerinin hesaplanması
Örnek-çıkış katmanının hesaplanması
> S yeniden hesaplanıyor: S = (-0.3 *+ 1) + (0.5 * -1) + (0 *
+1) + (0.3 * +1) + (0.7 * -1) = -1.2
> -1.2<0 olduğu için sınıf (-1)’e uygun-”karanlık” olmalıdır.Bu yanlış olduğundan öğrenme devam ettirilmelidir. Ama önceki adıma oranda S’in değeri sıfıra (yani doğru sınıflandırmaya) daha yakın olmuştur(-2.2 yerine -1.2). Bu yönde birkaç adımdan sonra öğrenme yapılmış olacak.ç) Gör
Perseptron’un öğrenme yeteneği
> Perceptron çok basit ağdır> Bazı kavramların perceptronla öğrenilmesi mümkün değil> Minsky ve Papert perceptron’un yeteneklerinin sınırlı
olduğunu göstermişler Bazı basit boolean işlevlerini öğrenemiyorlar
Mantık fonksiyonları
> iki giriş (-1 or +1)> Tek çıkış üretmeli (-1 or +1)> 0 ve 1 değerlerini de kullanmak mümkündür> Örnek: AND işlevi
Tüm girişler +1 oldukta +1 üretiyor
> Örnek: OR işlevi Girişlerden en azından birisi +1 oldukta +1 üretiyor
Mantık Fonksiyonları Perseptron gibi
> Sorun: XOR işlemi Girişler farklı oldukta +1 üretiyor
Doğrusal ayrılabilir olmadığı için perceptron gibi ifade edilemez
Mantık Fonksiyonlarının doğrusal ayrılabirliği
> Doğrusal ayrıalbilen: +1 ve –1’leri doğru ile ayırmak mümkündür
> Doğruyu eşiğin tasviri gibi düşünmeli
Çok seviyeli Yapay Sinir Ağları
Çokseviyeli YSA’ların perceptron birimleri üzerinde kurulması
> Perceptron bazı kavramları öğrenemez Yalnız doğrusal ayrılabilir fonksiyonları öğrene bilir
> Ama perceptron daha karmaşık yapılar için temel oluştura biler Daha karmaşık kavramların öğrenilmesi
Sigmoid Birimi> Girişlerin ağırlık toplamı S ve çıkış:
> Artı yönleri Adım fonksiyonuna çok benzerdir
Ayrıla bilendir
Kolay hesaplana bilendir:
Sigmoid birimli YSA örneği
> İleri beslemeli ağ-Feed forward network Girişlere soldan değer veriliyor, sayılar ileri doğru yayılıyor
> Örnek bir ağ şeması Ağırlık kümesi rasgeledir
Ağın hesaplanması örneği
> Girişler- 10, 30, 20 > Gizli katman için ağırlıkların hesaplanması:
SH1 = (0.2*10) + (-0.1*30) + (0.4*20) = 2-3+8 = 7
SH2 = (0.7*10) + (-1.2*30) + (1.2*20) = 7-6+24= -5
> Çıkışlar için ağırlıkların hesaplanması: Using: σ(S) = 1/(1 + e-S)
σ(SH1) = 1/(1 + e-7) = 1/(1+0.000912) = 0.999
σ(SH2) = 1/(1 + e5) = 1/(1+148.4) = 0.0067
böylelikle H1 tetiklenecek
Örneğin devamı
> Çıkış katmanları için ağırlık toplamları hesaplanıyor: SO1 = (1.1 * 0.999) + (0.1 * 0.0067) = 1.0996
SO2 = (3.1 * 0.999) + (1.17 * 0.0067) = 3.1047> Ağın çıkışları hesaplanıyor
σ(SO1) = 1/(1+e-1.0996) = 1/(1+0.333) = 0.750
σ(SO2) = 1/(1+e-3.1047) = 1/(1+0.045) = 0.957> O2 > O1
Demek ki, YSA (10,30,20) girişi için O2’ye uygun sınıfı belirlemiştir
YSA uygulama sorunları
> Örnekler ve hedef sınıflandırma Gerçek sayılarla ifade edilmelidir
> Tahmin edilen kesinlik çok önemlidir• Kara kutu yaklaşımı-anlamak zordur
> Yavaş eğitme Eğitme saatler ve günlerle uzaya bilir
> Öğrenme fonksiyonu hızlı çalışmalıdır Eğitilmiş ağ hızlı sınıflandırma yapa bilmelidir
• Zamanın önemli olduğu durumlarda çok gereklidir