Lei Feng net notu: Bu makalenin yazarı, eski American Express (American Express) kıdemli makine öğrenimi mühendisi, derin öğrenme çevrimiçi eğitim web sitesi Deeplearningtrack'in kurucu ortağı Jahnavi Mahanta'dır.
Jahnavi Mahanta: Algoritmaların rolüne ilişkin sezgisel bir anlayış oluşturmak - makine öğrenmeye ilk başladığımda, kendimi çok zor hissettirdi. Sadece matematiksel teoriyi ve notasyonu anlamak kolay değil, aynı zamanda sıkıcı olduğu için. Bir yol bulmak için çevrimiçi eğiticiye gittim, ancak yalnızca formüller veya üst düzey açıklamalar var ve çoğu durumda ayrıntılara girmeyeceğim.
O sırada, bir veri bilimi meslektaşım beni yeni bir yöntemle tanıştırdı Algoritmaları uygulamak için Excel elektronik tablolarını kullanın, Bu yöntem beni hayrete düşürüyor. Daha sonra, hangi algoritma olursa olsun, onu Excel'de küçük ölçekte öğrenmeye çalışacağım - güven bana, bu yöntem, algoritmayı daha iyi anlamak ve matematiksel güzelliğini tam olarak anlamak için bir mucizedir.
Size bir örnekle açıklayayım.
Çoğu veri bilimi algoritması optimizasyon problemleridir. Bu konuda en yaygın kullanılan algoritma gradyan iniştir.
Gradyan iniş kulağa çok gizemli gelebilir, ancak bu makaleyi okuduktan sonra, bu konudaki duygularınız muhtemelen değişecektir.
Burada konut fiyatı tahmin problemini örnek olarak kullanıyoruz.
Şimdi, tarihsel konut verileriyle, bölgeye göre yeni bir konutun fiyatını tahmin edebilecek bir model oluşturmamız gerekiyor.
Görev: Yeni bir ev için, X alanı verildiğinde, Y fiyatı nedir?
Geçmiş konut verilerini çizerek başlayalım.
Şimdi, X bölgesine göre yeni bir Ypred evin fiyatını tahmin etmek için geçmiş verileri bir çizgiyle eşleştirmek için basit bir doğrusal model kullanacağız.
Yukarıdaki şekilde kırmızı çizgi, farklı alanlar altında tahmin edilen Ypred fiyatı göstermektedir.
Ypred = a + bX
Mavi çizgi, geçmiş verilerden Yactual'in gerçek ev fiyatıdır.
Yactual ile sarı kesikli çizgi olan Ypred arasındaki fark, tahmin hatası E'dir.
A ve b ağırlıklarının optimum değeri elde etmesini sağlayan düz bir çizgi bulmalı ve tahmin hatasını azaltarak ve tahmin doğruluğunu artırarak geçmiş verilerle en iyi eşleşmeyi sağlamalıyız.
Bu nedenle amaç, Yactual ile Ypred arasındaki E hatasını en aza indirmek için en uygun a, b'yi bulmaktır.
Hata Karelerinin Toplamı (SSE) = ½ a (gerçek fiyat - tahmini fiyat) 2 = ½ a (Y - Ypred) 2
(Leifeng.com, hataları ölçmenin birden fazla yolu olduğunu hatırlatır, bu sadece bunlardan biridir)
Bu, gradyan inişinin sahneye çıktığı zamandır. Gradyan inişi, tahmin hatasını azaltmak için optimum ağırlığı (a, b) bulabilen bir optimizasyon algoritmasıdır.
Şimdi gradyan iniş algoritmasını adım adım anlayalım:
A ve b ağırlıklarını rastgele değerler ve hesaplanan hata (SSE) ile başlatın.
Gradyanı hesaplayın, yani ağırlıklar (a ve b) rastgele başlangıç değerinden biraz arttığında veya azaldığında, SSE değişir. Bu, SSE'yi en aza indirmek için a ve b'nin değerlerini hareket ettirmemize yardımcı olur.
Optimum değere ulaşmak ve SSE'yi en aza indirmek için ağırlığı ayarlamak için gradyanı kullanın.
Tahmin yapmak ve yeni SSE'yi hesaplamak için yeni ağırlıkları kullanın.
Ağırlık ayarı artık hatayı etkili bir şekilde azaltamayana kadar ikinci ve üçüncü adımları tekrarlayın.
Yukarıdaki adımların her birini Excel'de yaptım, ancak buna bakmadan önce verileri standartlaştırmamız gerekiyor çünkü bu optimizasyon sürecini daha hızlı hale getiriyor.
SSE tahmin hatasını hesaplamak için düz çizgiyi Ypred = a + b X rasgele a ve b değerleriyle başlatın.
Hata gradyanını farklı ağırlıklarla hesaplayın.
SSE / a = - (Y-YP)
SSE / b = - (Y-YP) X
Burada SSE = ½ (Y-YP) 2 = ½ (Y- (a + bX)) 2
Biraz matematik bilmeniz gerekiyor, ancak başka bir gereklilik yok.
SSE / a ve SSE / b, a ve b hareketinin yönlerini vermek için SSE'ye dayanan gradyanlardır.
SSE'yi en aza indiren optimum değeri elde etmek için ağırlıkları gradyanlarla ayarlayın
Optimal a ve b yönünde hareket etmemizi sağlamak için a ve b'nin rastgele değerlerini güncellememiz gerekir.
Kuralları güncelleyin:
a - SSE / a
b - SSE / b
bu nedenle:
Yeni a = a - r * SSE / a = 0.45-0.01 * 3.300 = 0.42
Yeni b = b - r * SSE / b = 0.75-0.01 * 1.545 = 0.73
Burada r, ağırlık ayarlama oranı olan öğrenme oranı = 0.01'dir.
Tahmin yapmak ve toplam SSE'yi hesaplamak için yeni a ve b'yi kullanın.
Yeni tahminde, toplam SSE'nin 0,677'den 0,553'e düştüğünü görebilirsiniz. Bu, tahmin doğruluğunun arttığı anlamına gelir.
A ve b'nin ayarlanması hatayı etkili bir şekilde azaltamayana kadar üçüncü ve dördüncü adımları tekrarlayın. Şu anda, optimal a, b ve en yüksek tahmin doğruluğuna ulaştık.
Bu, gradyan iniş algoritmasıdır. Optimizasyon algoritması ve varyantları, derin ağlar ve hatta derin öğrenme gibi birçok makine öğrenimi algoritmasının temelini oluşturur.
Leifeng.com tarafından derlenen kdnuggets aracılığıyla.