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 Sınıflandırma algoritmaları sınıflandırıcı (Model) IF unvanı = ‘profesör’ OR yıl > 6 THEN d_kadro = ‘evet’
Sınıflandırma adımı 2: Modelin tahminde kullanımı sınıflandırıcı Eğitim verileri Yeni veri (Kerim, Profesör, 4) Daimi_kadro? Evet
Karar ağacı tümevarımı- Decision Tree Induction 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
Sonuç: “bilgisayar alabilir” için karar ağacı <=30 overcast 30..40 >40 öğrenci? evet Kredil_der.? hayır evet orta iyi hayır evet hayır evet
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ı:
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
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
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ı örnekler positive(kedi,memeliler) positive(köpek,memeliler) positive(kartal,kuş) positive(timsah,sürüngen) positive(mersin,balık) Eksi örnekler negative(şahin,balık) negative(kirpi,sürüngen) negative(yılan,kuş) negative(insan,sürüngen) negative(kertenkele,kuş)
Michalski problemi Bu ö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ı 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 giriş giriş giriş giriş çı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 Giriş sayıları çıkış sayıları A sınıfını seç (en yüksek çıkış değeri) Tüm giriş değerlerini kullanmakla hesaplanan değer Giriş tabakası Gizli tabakalar Çıkış tabakası sınıf 1.1 1.1 A 2.7 7.1 4.2 Giriş sayıları 0.2 çıkış sayıları 3.0 B 2.1 -0.8 -1.3 0.3 C -1.2 2.7 Değerler ağ boyunca yayılmaktadır
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 giriş giriş katmanı çıkış katmanı sınıf S≥0 ise parlaklık karanlık Eksi halde Ö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
Çı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
Örnek-Hata değerlerinin ve ağırlık değerlerinin hesaplanması 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 Δ3 = η(t(E)-o(E))x3 Δ4 = η(t(E)-o(E))x4 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-çı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