Degrade inişinin doğrusal regresyon için kullanılmasının ana nedeni, hesaplama karmaşıklığıdır: Bazı durumlarda degrade inişini kullanarak çözümü bulmak için hesaplama daha ucuzdur (daha hızlı).
Yazdığınız formül çok basit, hatta hesaplama gibi görünüyor, çünkü yalnızca tek değişkenli bir durumda, yani yalnızca bir değişkeniniz olduğunda çalışır. Çok değişkenli durumda fazla değişken olduğunda, formülleri kağıtta biraz daha karmaşıktır ve gerektirir kadar sen bunu yazılımla zaman daha hesaplamaları:
Burada, sizi matrisini hesaplamanız gerekiyor, sonra ters çevirin (aşağıdaki nota bakınız). Bu pahalı bir hesaplama. Başvuru için, (tasarım) matrisinde X, K'nin kestirici sayısı ve N gözlem sırası sayısı olduğu K + 1 sütunlarına sahiptir. Bir makine öğrenme algoritmasında K> 1000 ve N> 1.000.000 ile sonuçlanabilir. matris kendisi o zaman çevirmek zorunda hesaplamak için biraz zaman alırX ′ X X ′ X K × K
β=(X′X)−1X′Y
X′XX′XK×K matrisi - bu pahalıdır.
Böylece, gradyan iniş hesaplamaları çok zaman kazandırır. Dahası, yapılma şekli önemsiz bir paralelleştirmeye izin verir, yani hesaplamaları çoklu işlemciler veya makineler arasında dağıtma. Doğrusal cebir çözümü de paralelleştirilebilir, ancak daha karmaşık ve hala pahalıdır.
Ek olarak, verilerinizin yalnızca bir kısmını bellekte tuttuğunuzda, bilgisayar belleği gereksinimlerini azaltan degrade iniş sürümleri vardır. Genel olarak, ekstra büyük problemler için doğrusal cebir çözümünden daha verimlidir.
Makine öğreniminde olduğu gibi binlerce değişkeniniz olduğunda, boyutluluk arttıkça bu daha da önemli hale gelir.
Açıklama . Ng'in derslerinde gradyan inişine ne kadar dikkat edildiğine şaşırdım. Bu konuda konuşmadan önemsiz miktarda zaman harcıyor, belki de dersin% 20'sini. Bana göre bu sadece bir uygulama detayı, tam olarak nasıl bir optimum bulduğunuzdur. Anahtar, optimizasyon problemini formüle etmektir ve onu tam olarak ne kadar önemli bulduğunuzda. Bunun için fazla endişelenmem. Bilgisayar bilimleri insanlarına bırakın ve istatistikçi olarak sizin için neyin önemli olduğuna odaklanın.
Ben aynen öyle diyerek nitelemek gerekir Bunu söyledikten anlamak önemlidir hesaplama karmaşıklığı ve sayısal istikrarı çözüm algoritmalarının. Hala algoritmaların uygulama ve kodlarının detaylarını bilmek zorunda olduğunu sanmıyorum. Genellikle zamanınızı istatistikçi olarak kullanmak en iyi yol değildir.
Not 1 . Matrisi didaktik amaçlar için tersine çevirmeniz gerektiğini yazdım ve bu denklemi genellikle çözme şekliniz değil. Uygulamada, lineer cebir problemleri, QR gibi bir tür faktoringi kullanarak çözülür, burada matrisi doğrudan ters çevirmez, fakat cevap almak için diğer bazı matematiksel olarak eşdeğer manipülasyonları yaparsınız. Bunu yaparsınız, çünkü matris inversiyonu birçok durumda pahalı ve sayısal olarak dengesiz bir işlemdir.
Bu, gradyan iniş algoritmasının bir başka küçük avantajını da bir yan etki olarak ortaya koyuyor: tasarım matrisi, eşliklilik sorunları olduğunda bile işe yarıyor. Her zamanki gibi lineer cebir yolu patlardı ve gradyan iniş collinear prediktörler için bile devam eder.