Hessian'lar optimizasyon için çok iyiyse (bkz. Newton'un yöntemi ), neden orada durdunuz? Üçüncü, dördüncü, beşinci ve altıncı türevleri kullanalım mı? Neden olmasın?
Hessian'lar optimizasyon için çok iyiyse (bkz. Newton'un yöntemi ), neden orada durdunuz? Üçüncü, dördüncü, beşinci ve altıncı türevleri kullanalım mı? Neden olmasın?
Yanıtlar:
Soruyu "Newton'un yöntemi neden üçüncü veya daha yüksek türevleri değil, yalnızca birinci ve ikinci türevleri kullanıyor?" Olarak yorumluyorum.
Aslında, çoğu durumda, üçüncü türevine gitmek yardımcı olur; Daha önce özel şeyler yaptım. Ancak, genel olarak, daha yüksek türevlere gidilmesi, hesaplama karmaşıklığı ekler - tüm bu türevleri bulmanız ve hesaplamanız gerekir ve çok değişkenli problemler için, ilk türevlerden çok daha fazla üçüncü türev vardır! - eğer varsa, elde ettiğiniz adım sayısındaki tasarruftan daha ağır basar. Örneğin, eğer 3 boyutlu bir sorunum varsa, 3 birinci türev, 6 ikinci türev ve 10 üçüncü türevim var, bu yüzden yapmam gereken değerlendirme sayısını iki katından daha fazla olan üçüncü dereceden bir sürüme geçiyorum (9'dan 9'a kadar) 19), bu değerlendirmeleri yaptıktan sonra adım yönünü / boyutunu hesaplamanın artan karmaşıklığından bahsetmiyorum bile, ancak neredeyse kesinlikle yarıya atmam gereken adım sayısını kesmeyecek.
Şimdi, genel durumda, değişkenlerinin, toplanması kısmi türev olacak sayıda , bu nedenle, beş değişken üçüncü toplam sayısı ile ilgili bir sorun için dördüncü ve beşinci kısmi türevler, birinci ve ikinci kısmi türevlerin sayısında 10 kat fazla bir artışa (20) 231 eşit olacaktır. Bu ekstra hesaplama yükünü telafi etmek için yineleme sayımlarında yeterince büyük bir düşüş görebilmek için değişkenlerde beşinci dereceden polinomlara çok, çok yakın bir probleminiz olması gerekir.
Bu sorunun istatistiksel yönünü gerçekten göremiyorum, bu yüzden optimizasyon bölümüne cevap vereceğim.
Hemen hemen her cevap sadece iterasyon maliyetine odaklanmakta ve iterasyon sayısını göz ardı etmektedir . Ama ikisi de önemli. 1 nanosaniye içinde yinelenen, ancak yakınsaması yinelemeyi alan bir yöntem size bir fayda sağlamaz. Üfleyen bir yöntem de yineleme maliyeti ne kadar ucuz olursa olsun yardımcı olmaz.
Neler olduğunu çözelim.
Kısmen çünkü (ve bu 2. sıra için de geçerlidir, ancak bunun üzerinde biraz daha fazla):
Diğer taraftan, optimum seviyeden uzak olduklarında daha kolay patlarlar!
(Tabii ki, bu her zaman doğru değildir ; örneğin, bir kuadratik Newton'un yöntemiyle 1 adımda birleşir. Fakat gerçek dünyada hoş özelliklere sahip olmayan keyfi fonksiyonlar için, bu genellikle doğrudur.)
Bu, optimum seviyeden uzak olduğunuzda, genellikle düşük dereceli (okuma: birinci dereceden) bir yöntem istediğiniz anlamına gelir . Sadece yakın olduğunuzda yöntemin sırasını arttırmak istersiniz.
Nedenini öğrenmek için, ilk olarak ne "kuadratik yakınsama" anlamak zorunda anlamına gelir .
Matematiksel olarak, kuadratik yakınsama araçlarının takdirde, yineleme adresinden hatasıdır , sonra sonunda bazı sabit için de geçerlidir aşağıdaki :
Düz İngilizce olarak, bu, optimum seviyeye yaklaştığınızda (önemli!), Her ekstra adımın doğruluk rakamını iki katına çıkardığı anlamına gelir .
Niye ya? Bir örnek görmek kolaydır: için ve , sahip , vs olan gülünç hızlı . ( Süper üstel !)
Aslında, insanlar genellikle ikinci dereceden türevler çok pahalı hale geldiğinde bunu yapar. Ancak doğrusal yakınsama çok yavaş olabilir. Örneğin, eğer o zaman almak için doğrusal yakınsamaya sahip 10.000.000 yinelemeye ihtiyacınız olacak , ancak kuadratik yakınsamaya sahip sadece 23 yinelemeye ihtiyacınız olacak. Öyleyse neden doğrusal ve ikinci dereceden yakınsama arasında ciddi bir fark olduğunu görebilirsiniz . Bu, örneğin 2. ve 3. dereceden yakınsaklık için geçerli değildir (bir sonraki paragrafa bakınız).
Bu noktada, herhangi bir bilgisayar bilimi biliyorsanız, 2. derece yakınsama ile sorunun zaten çözülmüş olduğunu anlıyorsunuzdur . Nedenini görmüyorsanız, işte neden: ikiye katlamak yerine her yinelemedeki rakam sayısını üçe katlamaktan kazanacak pratik hiçbir şey yok - sizi ne alacak? Sonuçta, bir bilgisayarda, bir double
kesin sayı bile 16 ondalık basamaktan oluşan 52 bit hassasiyete sahiptir.
Belki de gerekli olan adım sayısını 16'dan 3'e düşürür ... ki bu , her yinelemede, üçüncü boyut türevlerini hesaplamak zorunda kalmanın bedeli olduğunu fark edene kadar , ki bu boyutlandırma lanetisana vurur. Bir İçin boyutlu bir sorun, sadece bir faktör ödenen bir faktör kazanmak için dilsiz olduğunu. Ve gerçek dünyada, sorunların yalnızca değil , en az yüzlerce boyutu (hatta binlerce hatta milyonlarca) var ! Demek ki, 20,000 ... faktörü ödeyerek çok az akıllı bir taksit ödeyerek belki 20 faktör kazanıyorsunuz.
Diğer yarısı ise , optimum olmaktan uzak olduğunuzda genellikle daha kötü davranışlarda bulunmanız, bu genellikle yapmanız gereken tekrar sayısını olumsuz etkiliyor.
Genel bir ortamda, 2'den yüksek dereceli yöntemler kötü bir fikirdir. Tabii ki, (örneğin belki veri tablonuza ilave yardımcı varsayımları getirebilir eğer yok o zaman belki olduklarını bulabilir, yüksek dereceden polinomu benzemeye veya vb optimum, yerini sınırlayan yollarını var) iyi bir fikir - ancak bu, probleme özgü bir karar olacak ve yaşayacağınız genel bir kural değil.
hesaplamak bile oldukça iştir:
Şimdi üçüncü türevin nasıl göründüğünü görün: Bu üç boyutlu bir matristir. Öğeleri şöyle görünür:
Altıncı türev altı boyutlu matris olacaktır:
Genellikle, takas Hessian'dan daha yüksek bir seviyeye çıkmak için uygun değildir. Gürültü amplifikasyonuna karşı daha yüksek dereceli yaklaşımlar kullanarak hızdaki potansiyel kazanım arasındaki dengeyi kast ediyorum. Girdilerde her zaman parazit var çünkü istatistiksel uygulamalardan bahsediyoruz. Bu ses türevler tarafından güçlendirilecektir.
Golf oynarsanız, optimizasyondaki analoji ilk önce yeşile dönmeye çalışırken salınmaktır, bir delik için endişelenmeyin. Bir kere, yeşilin üzerine, bir deliğe nişan alacağız.
Tipik olarak, bu tür algoritmaların etkinliğini analiz ettiğinizde, dördüncü dereceden bir algoritmanın bir aşaması gibi, kabaca bir ikinci dereceden algoritmanın iki aşaması ile aynı etkinliğe sahip sonuçlar bulacaksınız.
Bu nedenle, hangi algoritmanın kullanılacağının seçimi nispeten basittir: dördüncü dereceden algoritmanın bir adımı iki kat daha fazla iş veya ikinci dereceden algoritmanın bir adımından daha fazlasını alıyorsa, bunun yerine ikincisini kullanmalısınız.
Bu tür yöntemler için tipik durum budur: Klasik algoritma, genel problemler için optimum iş-etkililik oranına sahiptir. Daha yüksek dereceli bir yaklaşımın hesaplanması alışılmadık derecede kolay olan ve klasik değişkeni geride bırakan zaman zaman sorunlar olsa da, bunlar nispeten nadirdir.
Türevlerin sırasını, işleve polinom yaklaşımının bir sırası olarak düşünebilirsiniz. Çoğu optimizasyon yordamı dışbükeyliğe dayanır. İkinci dereceden bir polinom her yerde dışbükey / içbükey, üçüncü dereceden veya daha yüksek bir polinom her yerde dışbükey olmayacaktır. Çoğu optimizasyon yordamı, bu nedenle kuadratiklerle dışbükey fonksiyonların art arda yaklaşımlarına dayanır. Dışbükey olan ikinci dereceden bir yaklaşım, ikinci dereceden dışbükey olmak için uygulanacak pozitif bir kesinlik şartı gerektirir.
SGD yakınsama için 3. dereceden yöntemleri savunan tek kişi benim olacağım, ama kesinlikle tüm alanda değil katsayılara ihtiyaç duyacağız , ancak örneğin sadece tek bir yönde, sadece tek bir ek katsayı gerektiren Zaten bu yönde 2. dereceden modeli var.
Tek yön 3. dereceden model neden faydalı olabilir? Örneğin, bu doğrultuda sıfıra yakın ikinci türev, temel olarak iki alternatif senaryo anlamına gelir: plato veya bükülme noktası - yalnızca ilki daha büyük adım boyutunu gerektirir ve 3. türev bunları ayırt etmeye izin verir.
Hibrit çok dereceli yöntemlere gideceğimize inanıyorum : düşük dereceli bir alt alanda ikinci dereceden yöntem, örneğin yakın zamandaki gradyanların PCA'sı, hala bu alt alana dik derecenin bir kısmına doğru serbest birinci dereceden eşzamanlı gradyan inişine izin veren ve ... Örneğin, en uygun tek yön için 3. dereceden bir model ekleyeceğim.