490 likes | 688 Views
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
E N D
Öğ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ımlarYeni 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
Eğitim verileri sınıflandırıcı (Model) Sınıflandırma adımı 1: Model oluşturma Sınıflandırma algoritmaları IF unvanı = ‘profesör’ OR yıl > 6 THEN d_kadro = ‘evet’
sınıflandırıcı Eğitim verileri Yeni veri Sınıflandırma adımı 2: Modelin tahminde kullanımı (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
Sonuç:“bilgisayar alabilir” için karar ağacı yaş? <=30 overcast >40 30..40 öğrenci? Kredil_der.? evet hayır evet iyi orta 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
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 Bilgi kazancını hesaplamakla özelliğin seçilmesi
Karar ağacına göre sınıflandırma kurallarının oluşturulması • Bilgileri IF-THENkuralları 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
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 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 A 1.1 2.7 7.1 4.2 Giriş sayıları çıkış sayıları 0.2 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 4beyaz 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 S≥0 ise parlaklık karanlık Eksi halde
Çı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ğerS > 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ı wiağı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 = 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-çı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
Ç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