Makine Öğrenmesi II (Machine Learning II)

Şevval Yurtekin
4 min readJul 7, 2021

--

https://www.nature.com/articles/s41591-020-01197-2?utm_source=other&utm_medium=other&utm_content=null&utm_campaign=JRCN_1_DD01_CN_NatureRJ_article_paid_XMOL

Makine Öğrenmesi I’ de modellerimizin tahmin başarılarını, sürecin nasıl olduğunu gözlemlemiştik. Artık birinci gözlüğü çıkarıp, ikinci gözlüğe geçme vakti geldi :)

Parametrelerin Tahmin Edilmesi (Ağırlıkların Bulunması)

Optimize edilmesi gereken fonksiyon gözüyle bakarak parametrelerin tahmin edilmesi konusunu ele alacağım. ( parametre tahmincileri, ağırlıkların bulunması)

Problem: b ve w değerlerini cost fonksiyonunu minimum yapabilecek şekilde bulmak.

Aşağıdaki cost fonksiyonu aslında MSE değerini ifade etmektedir. MSE’den farklı olarak fonksiyonun başında 1/2m bulunmaktadır. Bunun sebebi aslında türev alındığında, işlemi kolaylaştırmak içindir. Karedeki 2 başa geçeceği için birbirini götürecektir. Böylece elimizde MSE değeri kalır.

Aşağıdaki tablo bazı terimlerin literatürde farklı isimlendirmelerinin olduğunu ifade etmektedir.

Amacımız, belirttiğim gibi cost fonksiyonunu minimum yapacak b ve w katsayılarına ulaşmaktır. Peki bunun için nasıl bir yöntem izleyeceğiz?

Bunun için iki yöntem bulunmaktadır.

  1. En Küçük Kareler / Normal Denklemler Yöntemi / Ordinary Least Squares
  2. Gradient Descent Yöntemi

1. Normal Denklemler Yöntemi

Bu yöntem genellikle scikit-learn, scipy gibi kütüphanelerde, regresyon problemlerinde kullanılır. Bu kütüphanelerde gradient descent yöntemi kullanılmaz.

Normal Denklemler yöntemi bize analitik bir çözüm verir. Birbirine bağlı olarak değişen iki fiziksel büyüklük arasındaki matematiksel bağlantıyı, mümkün olduğunca gerçeğe uygun bir denklem olarak yazmak için kullanılan, standart bir regresyon yöntemidir.

Simple Linear Regression probleminde görüldüğü üzere, b0 ve b1 ‘e göre türev alınıp 0’a eşitlenir. Multiple Linear Regression’da da aynı şekilde türev alınıp 0'a eşitlenir. Tahmin edilen parametre değerleri bulunur. Ancak, beta değerinde bir ters alma işlemi var. Matrisin büyük olduğu durumlarda ters alma işlemi imkansızlaşacaktır.

2. Gradient Descent Yöntemi

Gradient Descent yönteminde parametrelerin eski değerleri belirli hızlarla değiştirilerek güncellenir, hatanın değişimi izlenir. Bu yöntem bize optimizasyon çözümü verir. Gradient descent yöntemi makine öğrenmesiyle birlikte türetilmiş bir konu değildir. Zaten istatistik camiasında bulunan bir yöntemdir.

Peki nasıl çalışır?

Gradyanın negatifi olarak tanımlanan ‘en dik iniş’ yönünde iteratif olarak parametre değerlerini güncelleyerek ilgili fonksiyonun minimum değerini verebilecek parametreleri bulur.

Makine Öğrenmesi için Gradient Descent

Cost fonksiyonunu minimize edebilecek parametreleri bulmak için kullanılmaktadır.

Parametre değerlerini iteratif olarak cost’u azaltacak şekilde değiştirerek yapar. Cost fonksiyonun bir noktadaki(w) türevi fonksiyonun maksimum artış yönünü verir(bir fonksiyonun eğimi dediğimiz yer). Eğer bu yönün tersine gidersek maksimum azaldığı yöne doğru gitmiş oluruz. Yani w’ya göre kısmi türev alındığında cost’u en fazla arttıracak yön bilgisi bulunur. Bu yönün tersine gittiğimizde cost fonksiyonun en hızlı azalacağı yöne gidilmiş olur.(formüldeki eksi ifadeler buradan gelmektedir.)Belirli bir gidiş hızında yani learning rate ile ve belirli bir iterasyon sayısınca bu işleme devam edilir.

Yukarıdaki fonksiyonda görüldüğü üzere, teta0 ve teta 1' e göre kısmi türevler alınıp gradyanlar elde edilmiştir. Tanımda belirttiğim gibi gradyanların tersine belirli bir hız ile gidersek, (alfa = belirli bir hız dediğimiz kavram learning rate ile ifade edilmektedir.)

Gradient descent yönteminde minimum cost için katsayıya ulaşmak bir süreçtir. Ancak normal denklemler yönteminde bir matrisin hesaplanmasıyla minimum cost yani katsayılar elde edilir.

Normal Denklemler Yöntemi vs Gradient Descent Yöntemi

İki yönteminde amacı katsayıları/ağırlıkları(b,w) bulmaktır.

Normal denklemler yönteminde,

  1. Katsayılar bulunduğunda hata (MSE) bellidir.
  2. Hatayı düşürmek için feature engineering, data preperation gibi yöntemler kullanılabilir.
  3. Çok büyük veri setlerinde matrisin tersini bulmak zorlaşacaktır.
  4. Yaygın kullanılan kütüphanelerde bu yöntem kullanılmaktadır.(scikit-learn, scipy vs.)

Gradient Descent yönteminde,

  1. Hata (MSE) her iterasyonda değişir.
  2. Geliştiricinin sürece müdahele etmesi ve hiperparametre ayarları yapması gerekmektedir. (iterasyon sayısı, learning rate)

Doğrusal Regresyon (Linear Regression)

Amaç : Bağımlı değişken ile bağımsız değişken arasındaki ilişkiyi doğrusal olarak modellemek.

Regresyon analizi, basit doğrusal regresyon, çoklu değişkenli regresyon analizi, doğrusal olmayan regresyon analizi olarak sınıflandırılabilir.

Regresyon analizi ile ilgili çalışmalarımı görmek için buraya tıklayabilirsiniz.

Lojistik Regresyon (Logistic Regression)

Bağımlı değişkenin kategorik bir değişken olduğu bir problemdir. Yani bir sınıflandırma problemi diyebiliriz. Bağımlı değişken ikili (binary) olduğunda uygulanabilecek regresyon analizidir.

Lineer regresyonda modelimiz yi= b + wxi şeklindeydi. Aslında yukarıdaki z değerine bakarsanız, aynı işlemi burada da gerçekleştiriyoruz. Fakat, elde edeceğimiz sonuçların 0 ile 1 değerinde olabilmesi için z’ye bir işlem uyguluyoruz. (sigmoid fonksiyonu ile dönüştürme işlemi gerçekleştiriyoruz)

Dönüştürme işleminden sonra, gerçek değerler ile tahmin edilen değerler arasındaki farklara göre log loss değerini minimum yapabilecek ağırlıkları buluyoruz. Logistic Regression ile ilgili çalışmalarımı buraya tıklayarak inceleyebilirsiniz.

Bu iki modelin başarı kıyaslamalarını önceki yazım olan Makine Öğrenmesi I’ de ele almıştım. Keyifli okumalar :)

REFERANSLAR

https://www.veribilimiokulu.com/

--

--