Machine Learning Explanation
Machine Learning Explanation
Learning)
Makine öğrenimi
Denetimli(supervised) öğrenim, [lineer] regression, sınıflandırma(classification) = [logic] regression ve
hata denetimi
Denetimsiz(unsupervised) öğrenim, Kümeleme – Gruplama(clustring), ve yeni teknikler
Not: Eğer aranızda şimdi büyü
falan yapacağımı zannedenler
varsa o düşünceleri kafasından
atsın.
Ne sihirdir ne keramet, mantık ve
matematiktedir keramet.
Makine Öğrenimi Teknikleri
Fark
ettiniz
mi?
Hepsinde
ortak olarak
‘neural
network’
geçiyor.
Sistem Kavramı
Yaşam bir sistemdir. Her sistemin girdileri ve çıktıları vardır. Sistemler bir kapalı
kapalı kutu gibidir. Her sistemin nasıl çalıştığını belirleyen bir modeli vardır.
Nasıl çalıştığını merak ederiz ama bazen sistemin nasıl çalıştığını anlamak
yerine sadece girdilere karşılık çıktıları görürüm, ayrıntılarına girmem.
Fabrikaya 10 kg buğday girer -> 3 tepsi börek çıkar. Börek tarifini bilmeme
gerek yok. Böreği yerim, karnımı doyururum.
Silikon girer -> mikrodevre çıkar. Mikro devreler entegreler halinde bana gelir ve
devreme takar veri tabanına göre kullanırım. İçeriğinin tamamını bilmeme
gerek yok.
Başka örnek olarak ekonomi ve finans verilebilir.
Bazen sistemler birleşir ve daha büyük sistemleri oluşturabilir.
Bu anlattıklarım aynı zamanda kontrol teorisinin, model tabanlı tasarımın ve
programlamanın temelidir.
Temel Makine Öğrenimi
kavramları
Önce temel olarak bu kavramlar nedir?
Çokça matematik, denklem ve kavram var.
Makine Öğreniminin Matematiği
Çokça matematik, denklem ve
kavram var.
Fakat bu kavramlar kafadan
atılmıyor(bazıları hariç).
Kavramların dayandığı matematik
dalları
Üniversitenin ilk sınıflarındaki
derslerde iyi olanlar makine
öğrenimi kolayca anlar.
*Statistics(istatislik): Makine
öğreniminde herşeyin temeli
Calculus(differansiyel denklemler):
makine nasıl öğrenir? ve nasıl
optimize edilir?
Linear Algebra(lineer cebir): Bu
yöntemlerin büyük verilerle
uygulmasını sağlar.
Probability(olasılık): Tahmin etme
oranını arttırmanıza yardımcı olur.
Denetimli(supervised)
öğrenim
Sınıflandırma(classification), [lineer] regression ve hata denetimi
Denetimli(supervised) öğrenim
Verileri belli parametrelere göre ayırır. Aslında günlük hayatta fark etmeden
yaptığımız alışkanlıklardır.
Evin büyüklüğüne göre fiyatı belirleme, Metal ne kadar ender bulunuyorsa o
kadar değer kazanır, A takımına kaç kişi para yatırdı ve basit katsayısı ne
olacak? Lahmacum kalp krizine sebep olma olasılığı nedir?
Sorularının cevaplarını verir.
𝑦 = β𝑘 𝑥 𝑛
𝑘=0
Parametre sayısına ve değerine göre bir lineer denklem elde edilir. Her β katsayı
önceden kaydedilmiş bir veriye karşılık gelir. β1, β2, …, βn
En az (n+1) tane veri olmak zorundadır. B0 değeri ‘offset’ olarak bilinir.
Yeteri kadar veri bir araya gelirse lineer denklem sistemi oluşur. X istediğimiz önem
değerleri olmak üzere β ve y matrisinin analitik ifadesi;
β*x=y => x=β-1*y şeklinde hesaplanır. Matlab lineer işlemleri yaparken
Matlab ifadesi x=inv(β)*y yada yeni haliyle x=β\y yada mldivide(β,y)
Diğer şekilde Cramer metodu lineer sistemleri çözmeye yardım edecektir.
HARİKA!
Matlab ‘\’(mldivide) fonksiyonu
Matlab bu algoritmasına hayran olduğum için
paylaşmak istedim. Bizi lineer algoritma ile
uğraşırken birçok işlem yapmaktan kurtarıyor.
Aslında buradaki algoritmalar için haftalar
ayırabilirim.
Oldukça hızlı hatta Matlab bu algoritması için
c/c++/cuda/hdl(fpga ve asic) kodları üretiyor.
LSE =
Tabi Bu fonksiyonun değeri veri sayısı arttıkça buradaki değer artacaktır. Veri
sayısına oranlarsak değeri veri sayısına göre sabitlemiş yani normalize etmiş
oluruz. Yani maliyet fonksiyonunun ortalamını almamız gerek. Sadece ‘m’ ile
bölelim.
1
Bölüm sonucu varyans formülüne denk geliyor 😉 𝑠 2 = 𝑚 σ𝑚 𝑖
ො𝑖
𝑖=1 𝑦 − 𝑦
2
Lineer
regression
bitti.
Sorusu olan?
[Link]
scale/#1b-stochastic-gradient-descent
Belki internette görürseniz diye
Mini Toplu Dereceli Azalma(Mini-Batch
Gradient Descent)
SGD(Stochastic Gradient Descent) ne yapar eder sonuca ulaşır ama çok
yavaştır. Veri yığınının küçük bir parçasıyla uğraşırız. Daha hızlı işlem
yapmanızı sağlar.
Bu algoritma, tüm eğitim örneklerinde yineleme yaptığımız b = m ise, toplu
degrade inişi ile aynıdır. ‘m’ doğrunun eğrisi, b doğrunun sabit sayısı
ℎθ(𝑥) = σ𝑛𝑗=0 θ𝑗𝑥 denkleminin diğer ifadesi ℎθ 𝑥 = θ𝑗𝑇𝑥 olarakgösterebilirim.
1 ()
O halde 𝐽𝑡𝑟𝑎𝑖𝑛(θ) = 2𝑚 σ𝑚
𝑖=1(ℎθ(𝑥 ) − 𝑦 ) = (𝑋θ − 𝑦)
𝑖 (𝑖) 2
Ԧ olabilir.
Ԧ T ∗ (𝑋θ − 𝑦)
X ve Y değerleri;
Biraz lineer cebir hatırlamak lazım. Biraz daha matematik hilesi yapacağız.
Daha sonrasını (𝑋θ − 𝑦) Ԧ sonucu ortaya çıkıyor. Θ yerine
Ԧ T = (𝑋θ − 𝑦)
𝜕𝐽
= 2𝑋𝑇𝑋𝑤 − 2𝑋𝑇𝑦
𝜕𝑤
𝜕𝐽 ∗
= 0 → 𝑋𝑇𝑋𝑤 = 𝑋𝑇𝑦 → 𝑤 = (𝑋𝑇𝑋)−1 𝑋𝑇𝑦
𝜕𝑤
[Link]
Jq0vhkuzgfU/TqjfI_mXhLI/AAAAAAAADIs/juXvuk4qvYs/s1
600/gradient_descent_linear_regression_screenshot.png
Öğrenme oranı – Veri kaybı
Gradient Descent çeşitleri
1 1
Diğer bir gösteririmi 1+ⅇ𝑏−𝑎𝑥 en sade ve en çok kullanılan 1+ⅇ−𝑥
Bu uzun fonksiyonun özeti grafiği dümdüz keser. Aynı bir kılıç ustası gibi
savurur ve keser. Eğer birden kılıç varsa karar ağacı denir.
Denetimsiz(unsupervised) öğrenim
Burada elinizdeki verilerin özelliklerine göre Clustering(demetleme) yöntemi
ile belli gruplar oluşturan öğrenme şeklidir.
Bu öğrenme şeklinde bu gruplamanız sayısını bilemezsiniz, fakat örnek bir
resim verdiğinizde bunun hangi demetleme içerisinde olduğunu bularak
benzerlerini getirebilir.
Grup özelliklerini yada sayısını algoritmaya siz verirsiniz. Bütün veriler tek tek
kontrol edilir. Çok fazla karar ifadesin aynı anda oluştuğundan karar
ifadeleri artık bir karar ağacı yapısını almaya başlar. Bir Denogram ortaya
çıkar. Denogramı yatay düzlemde kesen çizgi sayısı küme sayısına eşittir.
Bu tip makine öğrenmesine’de Denetimsiz-Gözetimsiz Öğrenme yanı
Unsupervised Learning denir.
Veri Madenciliği, Büyük veri analizi, Market araştırması, Hastane ve Karakol
gibi önemli binaların bölge içindeki en ideal konumlarının bulunmasında
kullanılır.
Franchise kurulurken her ilçedeki ekonominin hacmine göre kaç tane ve
nerelere kurulacağı belirleniyor. McDonalds bu yöntemi çokça kullanıyor.
En meşur algoritmalar; K-Means ve Hiyerarşik kümeleme
Bunlara yardımcı olarak Öklid uzaklık teoremi kullanılır. Grafik üzerinde basit
analitik geometri işlemi: (x2-x1)2 + (y2-y1) 2
Sonuç olarak 1 ile 5 arasında rastgele oluşturduğumuz 10 noktayı hiyerarşik
kümeleme kullanarak iki küme altında toplamış olduk.
[Link]
content/uploads/2017/08/Kumeleme_Notlar%C4%B1_5_Hiyerarsik_K
umeleme_Agglomerative_dendogram_kumelere_ayirma-[Link]
Clustter(kümeleme)
Clustter(kümeleme)
Amacımız resimdekini gerçekleştirmektir. Formülü şimdilik boş verin.
Birbirine benzeyenler, yakın olanlar aynı kümede olsun birbirine
benzemeyenlerle mümkün olduğunca uzak olsunlar (yabancı düşmanlığı :))
Küme sayısını belirledik. Algoritmayı çalıştırdık. Algoritma her bir noktayı bir
kümeye yerleştirdi. Her bir noktanın küme merkezine olan uzaklığının
karesinin toplamını alıyoruz. Bunu her küme için yapıyoruz. Toplamda çıkan
rakam ne kadar düşük ise kümeleme o kadar iyi çalışmış merkez noktalar ile
kümeye dahil noktalar birbirine yakın durmuş demektir.
YADA
Aslında her nokta bir kümedir ve aynı zamanda küme merkezidir.
Her nokta aynı zamanda bir küme ve küme merkezi olursa mesafeler hep
sıfır olacaktır.
O halde her noktanın küme olduğu modelde WCSS sıfır olacaktır.
Veriyle kalın… ✋
Günün karikatürleri