0% found this document useful (0 votes)
301 views33 pages

Machine Learning Explanation

I introduced Machine Learning in general. Presented in Turkish Language Makine öğrenimi genel anlamda tanıttım. Türkçe dilinde.

Uploaded by

Selcuk Caglar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
301 views33 pages

Machine Learning Explanation

I introduced Machine Learning in general. Presented in Turkish Language Makine öğrenimi genel anlamda tanıttım. Türkçe dilinde.

Uploaded by

Selcuk Caglar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd

Makine Öğrenimi( Machine

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

 Makine öğrenimi iki tipte çeşit teknik kullanır.


Bütün 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

 Sistemin daha çok girdi ve çıktılarıyla ilgilenirim. Sisteme önceden belirlenmiş


girdiye karşılık çıktı verileri verilir. Tabi bu veriler uzun zaman boyunca
kaydedilir.
 Kaydedilen veriler üzerinde kalıplar olup olmadığı araştırılır. Verilerde kalıplar
sistemin kalıbını verir. Eğer kalıplar tekrarlıyor ise sistemin formülü çıkartılır.
 Sistemin formülü çıkartılırsa bundan sonraki tüm girdilere karşılık çıktıyı
önceden tahmin edebilirim.
 Örnek; Girdi: 100 rastgele resim olsa, Çıktı: Erkek mi? Kadın mı? Deney
sonucunda bundan sonraki resimlerin erkek mi kız mı olduğunu ayırt edecek
bir model oluşturabilirim.
 Örnek; Kimyadaki birçok formül ve sabit deneylerden elde edilen ölçümlerin
sonucu ortaya çıkmıştır. Denetim öğrenme bilimsel yöntemlerin başında
gelir.
[lineer] regression ve hata denetimi

 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.

Önemli!!! Nokta: veriler


Süreklidir(continuous),
Kesikli(discreate) değildir.
 Eğer buradaki matematiği anlarsanız gerisini hemen halledersiniz. Slat içindeki
tüm konuların matematik özeti buradadır. Bu yüzden dikkat kesilmesiniz öneririm.
𝑛

𝑦 = ෍ β𝑘 𝑥 𝑛
𝑘=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.

 X sayıları bulundu ve artık her fiyatı tahmin edebiliriz. YEHEY! 👍


 Maalesef hayat o kadar düzenli değil bu yüzden elimizdeki verilerde düzenli
değil. 😟
 Ama hata paylarımı hesaplayabiliriz. Böylece ne kadar ihtimalle hata
yapacağımızı söylebiliriz. Yada oluşturduğumuz düz lineer çizgi yerine daha
genel bir denklem olan polinom kullanmalıyım. Polinom ile oluşturacağım
yeni çizgi olan eğri artık verilerin üzerinden geçebilir.
 Hatayı hesaplayan bir fonksiyon çıkarılır. Bu fonksiyona ‘MALİYET’
fonksiyonu demir. Bu fonksiyonun
değeri ne kadar küçükse o kadar
doğru tahmin yapabiliriz.
 3 tip resimde anlatılıyor.

 Ben şimdilik ‘a) least square


error’ üzerinde durmak istiyorum.

 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.

Algorithm for Full Inputs

Algorithm for Sparse Inputs


Hata Fonksiyonu Çıkartmak
 Resimdeki hatalar çizgiye olan yakınlıklarıdır. Ne kadar çizgiye yakın o kadar az
hata demektir.
 Maliyet fonksiyonunu inşa edersek. Önce LSE(least square error) gerekiyor. Daha
çok istatistik yöntemi olsada LSE en çok bilineni.
 Temel doğru denklemi y = 𝑏 + 𝑚 ∗ 𝑥 ve yi= Hata değeri ise y - yi=ei hata
değerimiz oluyor. Bütün hataların toplamının hep pozitif kalması için kare işlemi
yapılır.

 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

 Burada yaptığımız işlemin diğer adı kademeli azaltmadır(gradient descent). Çok


yaygın iteratif bir çözümdür. Havacılıktan kuantum fiziğine kadar kullanım alanı
çok geniştir.
 Çıklaması sonraki slayt
 Huuh! Son bir adım…
 Sorusu olan?
 LSE anladığımıza göre artık maliyet fonksiyonunun asıl yüzünü görme vakti.
 Tada

 Bu nereden geliyor? Hmm…


 Buradaki fonksiyon iki değere bağlıdır. y = 𝑏 + 𝑚 ∗ 𝑥 ise (m,b) değelerierine
bağlıdır. Bu iki parametrenin sonucuyla grafik çizdirmek istedem 3. bir ekren
açmalıyım. Yani maliyet fonksiyonumun grafiği 3 boyutludur.
 Şimdi LSE fonksiyonunu hata belirliyorsa hatanın en olduğu yer türevinin sıfıra
eşit olduğu yerdir. Trev sonucunda ortaya çıkacak ‘2’ sabitinden kurtulmak
için denklemi bir ½ ile çarpıyorum. Hata oranını ben belirliyorsan denklemi de
kafama göre değiştirebilirim. Burada tasarımcı benim.
1 (𝑖 )
 Fonksiyonu yeniden adlandırdım. 𝐽𝑡𝑟𝑎𝑖𝑛(θ) = σ𝑚 (ℎ (𝑥 ) − 𝑦 (𝑖) )2
2𝑚 𝑖=1 θ
 Lineer modelimi ℎθ(𝑥) = σ𝑛𝑗=0 θ𝑗𝑥 𝑗 ile oluşturmuştum.
 Sistem tek parametreye bağlı olsaydı 𝐽𝑡𝑟𝑎𝑖𝑛(θ) türev denkleminden işimiz
biterdi. Fakat iki parametre için iki türev olacak ve iki denklemede en uygun
değerleri bulmak üzere biraz deneme yapacağız.
𝜕
 O zaman artık yinelemeli fonksiyon olan θ𝑗 ≔ θ𝑗 − α ∗ 𝜕θ (𝐽𝑡𝑟𝑎𝑖𝑛(θ)) fonksiyonu
𝑗
elde edilir. Buradaki ‘≔’ ifadesi iteratif, sürekli güncellendiğini belirtiyor. α
öğrenme katsayısı(learning rate) olarak geçer. α Çok küçük olursa işlem çok
yavaş ilerler, çokbüyük olursa hata artar ve sonuca ulaşabilememiz zorlaşır.
 Bütün türev vb. işlemler yapıldığında ortaya çıkan grafik…
Her θ𝑗=1,…m için hesaplanırsa…
Fonksiyonun dibisin…
 Evet, genelde
buna benzer
fonksiyon çıkıyor.
 Şu anda
bitirdiğimiz şeyin
tam adı
‘Stochastic
Gradient Descent’

 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 𝑋𝑇𝑦
𝜕𝑤

 Ortaya çıkan sonucun sonunda her seferinde döngüye girmek zorunda


kalmadım. Artık α öğrenme katsayısını seçmek zorunda değilim.
 Bu sonuç ilerletilebilir değil. SVM eklemek istersem bu elde ettiğim denklemi
kullanamam. sonucunda elde edilen grafikler biraz gürültülü olabilir. Ayrıca
𝑋𝑇 ve y matrix boyutları boyutları uyumlu olmalıdır yoksa denklem çalışmaz.
 Çok kısıtlı bir alanda kullanmak üzere tek seferde hesaplayabileceğim bir
denklem elde etmiş oldum.
∗ −1 𝑇
𝑤 = (𝑋𝑇𝑋) 𝑋 𝑦
Denklemden elde ettiğim sonuç

[Link]
Jq0vhkuzgfU/TqjfI_mXhLI/AAAAAAAADIs/juXvuk4qvYs/s1
600/gradient_descent_linear_regression_screenshot.png
Öğrenme oranı – Veri kaybı
Gradient Descent çeşitleri

 Gradient Descent çeşitleri temel olarak işlem doğruluğuna ve hızına göre


çeşitlenmiştir.
 Learning with Large Data Sets
 Stochastic Gradient Descent
 Mini-Batch Gradient Descent
 Stochastic Gradient Descent Convergence
 Map Reduce and Data Parallelism
 Online Learning(verileri depolamazsın artık internetten kendisi bulur ve
öğrenir. Veri merkezlerinde)
Sınıflandırma(classification) = [logic]
regression
 Verileri belli sınıflara ayırır. Önceden programa hangi sınıflandırma için hangi
sınıflara ayırması gerektiği söylenir.
 Resimdeki bay mı bayan mı? Bu köpek Doberman mı Rottweiler mı? Gibi
soruların cevabını verir.

Önemli!!! Nokta: veriler


Sürekli(continuous) değil, Kesiklidir(discreate)
 Regression farkı ara değerlere ihtiyaç yok. LSE yerine MSE(mean square
error) kullanılıyor.
1 () − log ℎ𝜃 𝑥 , 𝑥 = 1
 𝐽𝑡𝑟𝑎𝑖𝑛 θ = 2𝑚 σ𝑚 𝑖 𝑖 2
𝑖=1 𝑙(𝑥)(ℎ𝜃 (𝑥 ) − 𝑦 ) ⇒ 𝑙 𝑥 = ቊ
− log 1 − ℎ𝜃 𝑥 , 𝑥 = 0
 Diğer çok uzun şekliyle;

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.

 Maalesef burada en algoritma en iyisini yaptım, sonuç budur demiyor. kaça


ayırırsanız ayırın.
Hiyerarşik Kümeleme
 Asynı sonucu hedefliyor fakat, farklı bir yöntemle, taneciklerden bütüne
doğru ilerliyor. K-Ortalamalar tekniğinde olduğu gibi küme kullanıcıdan
sayısını istemiyor.
 İki tip hiyerarşik kümeleme yöntemi var: Agglomerative (sözlük karşılığı
yığınsal) ve Divisive (bölücü)
 Agglomerative yöntemde; başlangıçta her nokta bir kümedir. Bu nokta,
en yakınındaki noktaları toplayarak küçük kümeleri, daha sonra bu kümeler
en yakınındaki diğer kümeleri toplayarak daha büyük kümeleri, en sonunda
da bütün noktların dahil olduğu büyük tek küme oluşur.
 Oluşan kümeler arasındaki kalan noktalar kümelere olan uzaklıklara
göre(genelde) yada sizin belirlediğiniz bir özelliğe göre bir kümeye katılır.
[Link]
content/uploads/2017/08/Kumeleme_Notlar%
C4%B1_5_Hiyerarsik_Kumeleme_Agglomerative
_Adim_Adim_Sekil.png
Mustafa Selçuk Çağlar

 Sonuç olarak ; I HAVE GOT THE DATA!, DATA!


 Do you have some data?
 Youtube: Mustafa Selçuk Çağlar Youtube
 Linkedin: /in/mselcukcaglar

 Veriyle kalın… ✋
Günün karikatürleri

You might also like