Kayıp Fonksiyonunun Matematiksel Yaklaşımı

Ceren Belhan
Deeper Deep Learning TR
6 min readMar 16, 2021

--

Bu yazı, AdresGezgini Ar-Ge Merkezi’ nde gerçekleştirdiğimiz çalışmalar kapsamında yazılmıştır.

Bu yazıda kayıp fonksiyonunun matematiksel incelemesinden bahsedilmiştir. Lineer regresyonla ilişkisini ve kullanımı ile ilgili detaylı yazımız için burayı ziyaret edebilirsiniz.

Kayıp fonksiyonu, hedefin gerçek ve tahmin edilen değeri arasındaki mesafeyi ölçer. Ölçülen değer üzerinden modelin istenilen değere ne kadar yaklaştığı sonucuna ulaşılır. En yaygın kullanılan fonksiyon ise ortalama kare hatadır (Mean Squared Error). Biz de bu yazımızda bu formülün matematiksel incelemesi hakkında çıkarımlarda bulunacağız.

Öncelikle formülü incelersek, l(w , b) bizim kayıp fonksiyonumuzun ağırlık (w) ve bias (b) değerlerine bağlı olduğunu anlatan 2 değişkenli fonksiyon ifadesidir. (Ağırlık ve bias kavramlarının detaylı tanımına buradan ulaşabilirsiniz.) y ise bizim modeli ilk oluştururken verilen asıl değerimizken ŷ de model sonucu elde ettiğimiz tahmin değeridir.

Şimdi ise matematiksel incelemeye geçebiliriz. Öncelikle ŷ değerini 0.75 ve x değerini 0.5 te sabit tutuyoruz. Bu şekilde çizilen ŷ doğrusunun aşağısında ve yukarısında kalan aynı ŷ ve x değerlerine sahip farklı y değerlerinin etkisini incelemeye başlıyoruz. Her iki durumda da w=0.5 ve b=0.5 olarak başlanmış olsun ve learning rate (η) bizim için sabit değer olacağından işlem kolaylığı sağlaması açısından 0.01 diyelim.

Minibatch Stochastic Gradient Descent

Oluşturulan modelde elde edilen sonuçların gerçeğe en yakın olması hedeflenir. Bu sebeple modelde bu yönde optimizasyon sağlamak için çeşitli metodlar kullanılır. Bu metodlardan en yaygın olanı gradyan inişidir (Gradient Descent). Bu algoritmada amaç kayıp fonksiyonunu azaltacak yönde parametrelerin modelde güncellenmesidir. Modelde yer alan ağırlık (w) ve bias (b) parametrelerinin güncellenmesi aşağıdaki gibidir.

Bir güncellemeyi hesaplamamız gerektiğinde, minibatch stokastik gradyan inişi olarak bilinen ve gradyan inişin bir türü olan bu method, modelin hatasını ölçmek ve model parametrelerini güncellemek için eğitim veri setini küçük gruplara ayırır. Yukarıdaki formülü kısaca anlatacak olursak, ilk olarak sabit sayıda eğitim örneğinden oluşan bir minibatch’ i (β) rastgele olarak örnekliyoruz. Sonrasında ise güncellenecek model parametrelerine göre minibatch’ deki ortalama kaybın türevini hesaplıyoruz. Son olarak da türevi alınmış ifadeyi daha önceden pozitif bir değer olarak belirlenmiş learning rate (η) ile çarpıp, mevcut parametre değerlerinden çıkararak güncelleme işlemini tamamlıyoruz.

Her minibatch içinde tek bir örnek olduğunu varsayarak güncelleme işlemini aşağıdaki gibi gerçekleştirebiliriz.

Neden sadece farkını almıyoruz?

Matematiksel olarak diğer bir soru ise neden arasındaki değişimi gözlemlemek için sadece çıkarma işlemi uyguladığımızdır. Burada incelemek istediğimiz soruna göre formülü modifiye edip incelemeyi bu formül üzerinden gerçekleştiriyoruz. İlk olarak koşul 1 i ele alarak başlayalım.

Sonuç:

Gradyan yaklaşımda parametrelerin güncellenmesi işleminde kayıp fonksiyonunun türevi alınarak işlem yapılmaktadır. Bu durumda kayıp fonksiyonunun w’ya bağlı türevi x olurken b’ye bağlı türevi 1 olacaktır. Bu nedenle w yalnızca x’e ve learning rate-minibatch oranına bağlı; b de yine yalnızca learning rate-minibatch oranına bağlı sabit bir değişim gösterecektir. Değişim sabit ve önceki parametrelerin azalması yönünde olduğundan doğru bir yaklaşım olmayacaktır. Bu çıkarıma koşul 1 üzerinden ulaşıldığından bir benzeri olan koşul 2 yi incelemeye gerek yoktur.

Benzer bir durum negatifliğin ortadan kaldırılması amacıyla kullanılabilecek olan mutlak değere alma işlemi için de geçerlidir. Bu negatiflik kavramına birazdan değineceğiz.

Neden üssün kuvvetini arttırmıyoruz?

Öncelikle 3. dereceden kuvvetini inceleyelim. Burada 3. dereceden kuvvetin etkisini gözlemlerken formülde bazı modifikasyonlar uyguladığımızı fark etmişsinizdir. Kareden kaynaklı olarak türev alındığında 2 çarpanının etkisinin olmaması amacıyla ½ ifade eklenirken bu hesaplamada da benzer amaçla 1/3 olarak kullanılmıştır.

Koşul 1:

Koşul 2:

Bu hesaplamalardan da görebileceğimiz gibi negatif değerlere sahip kayıp değerleri elde edebiliriz. Bu kayıp fonksiyonu için tercih etmediğimiz bir durumdur. Sebepleri ise;

  1. Kavramsal hata: Loss function hatanın büyüklüğünü veren bir fonksiyondur. Hatayı ifade ederken “-1 hatam var” gibi bir ifade kullanmayız. Eğer hatamız yoksa 0, varsa hatanın pozitif olacak şekilde büyüklüğünü kullanırız.
  2. Nümerik hata: Loss function hesaplanırken çizilen tahmin fonksiyonumuzun gerçek değere olan uzaklığını göz önünde bulundururuz. Bu uzaklığı mesafe cinsinden ifade etmeye çalışırız. Unutulmamalıdır ki uzaklık hiçbir zaman negatif değer alamaz.

Peki ya üs çift sayı ama 2’den büyük bir değer olsa?

Bu sefer ise çift katlı ve 2 den farklı olarak 4. dereceden kuvvetini deneyelim ve aynı şekilde her iki koşul için de uygulayalım. Aynı sebepten kullandığımız formül, aldığımız kuvvetin değişiminden dolayı modifiye edilmiştir.

Koşul 1:

Koşul 2:

Elde ettiğimiz sonuçlardan da gözlemleyebileceğiniz gibi 4.dereceden kuvveti alınan formülle hesaplanan kayıp fonksiyonu öğrenme hızı çok küçük bir model gibi sonuçlar verdi. Dolayısıyla iterasyon sayısını arttırırken aynı zamanda ters oranla modelin çalışma hızını düşürecektir. Bu durum da aslında kaçınmak istediğimiz bir sorundur çünkü kayıp fonksiyonunun çok küçük değişimler göstermesi bizim gradyan inişle modeli güncelleştirmemizi zorlaştırır.

Son olarak asıl kayıp fonksiyonumuzu inceleyelim

Çeşitli derecelerde kuvvetini denediğimiz kayıp fonksiyonunun bir de asıl halini yani karesi alınmış formülü inceleyelim.

Koşul 1:

Koşul 2:

Özet olarak, kayıp fonksiyonunun çeşitli kuvvetlerinin sonuca etkilerini incelerken önemli çıkarımlarda bulunduk.

Sadece çıkarma işlemi uyguladığımızda:

  • Güncelleme işlemi sırasında ağırlığa ya da bias a göre türev alındığında kayıp fonksiyonunun kaybolmasına,
  • Ağırlığın yalnızca x ve minibatch learning rate oranına ,biasın ise minibatch learning rate oranına bağlı kalmasına,
  • Kayıp fonksiyonu sonucunda negatif değerler elde edilmesine

sebep oluyor.

3. dereceden kuvvetinde ise aynı şekilde negatif değerlere ulaşıyoruz bunu çözmek için çift katlı 2 den farklı olarak denediğimiz 4. dereceden kuvveti ise kayıp fonksiyonunun kayda değer sonuçlar vermesini engelliyor.

Bu sebeplerden dolayı en doğru yaklaşım, kaybın karesinin alınması olacaktır.

Buraya kadar okuduğunuz için teşekkürler.

KAYNAKLAR

YAZAR DESTEĞİ

--

--

Ceren Belhan
Deeper Deep Learning TR

İzmir Ekonomi Üniversitesi Yazılım Mühendisliği ve Endüstri Mühendisliği 4. sınıf öğrencisi