Neden sadece hiper parametreleri öğrenmiyoruz?


11

Oldukça popüler bir " ADVERSARIAL ÖRNEKLERİ AÇMAK VE SÜRDÜRMEK " makalesini uyguluyordum ve makalede, olumsuz bir objektif işlevi eğitiyor

J '' (θ) = αJ (θ) + (1 - α) J '(θ).

Α'ya hiperparametre gibi davranır. a, 0,1, 0,2, 0,3 vb. olabilir.

Bu özel kağıttan bağımsız olarak, merak ediyorum, neden parametrelerimize α'yı dahil etmiyoruz ve en iyi α'yı öğrenmiyoruz?

Bunu yapmanın dezavantajı nedir? Aşırı sığdırma yüzünden mi? Eğer öyleyse, neden sadece 1 tane daha parametre öğrenmek bu kadar fazla takmaya neden oluyor?


Hiperparametre maliyet fonksiyonunun bir parametresi ise (ve DGP-veri oluşturma sürecinin değil), verilerin kendisiyle ilgili bilgi içerdiği açık değildir.
kjetil b halvorsen

1
Çoğu durumda, verileri bir doğrulama kümesindeki performansına bakarak seçmek için kullanırız . (örneğin, genelleme hatası için bir proxy.)α
Vimal

Yanıtlar:


8

"Neden sadece hiper parametreleri öğrenmiyoruz?"

Harika bir soru! Daha genel bir cevap vermeye çalışacağım. TL; DR cevap kesinlikle adil değil aynı verilerden, hyperparameters öğrenebilirsiniz olmasıdır. Biraz daha ayrıntılı bir cevap için okumaya devam edin.


Bir hiperparametre tipik olarak parametrelerinden biri yerine öğrenme algoritmasının bir ayarına karşılık gelir. Örneğin derin öğrenme bağlamında, bu, belirli bir katmandaki nöron sayısı (hiperparametre) ile belirli bir kenarın ağırlığı (düzenli, öğrenilebilir bir parametre) arasındaki farkla örneklendirilir .

İlk etapta neden bir fark var? Bir parametreyi hiperparametre yapmak için tipik durum, bu parametreyi eğitim setinden öğrenmenin uygun olmamasıdır. Örneğin, daha fazla nöron ekleyerek eğitim hatasını azaltmak her zaman daha kolay olduğundan, bir katmandaki nöron sayısını düzenli bir parametre haline getirmek her zaman çok büyük ağları teşvik eder, bu da bir gerçek için her zaman arzu edilmeyen bir şeydir ( aşırı uyum gösterme).

Sorunuza göre, hiper parametreleri hiç öğrenmiyoruz. Bir dakika boyunca hesaplama zorluklarını bir kenara bırakarak, hiperparametreler için iyi değerler öğrenmek çok mümkündür ve bunun iyi performans için zorunlu olduğu durumlar bile vardır; ilk paragraftaki tüm tartışmalar, tanım gereği, bu görev için aynı verileri kullanamayacağınızdır .

Verilerin başka bir bölümünü kullanmak (böylece üç ayrık parça oluşturmak: eğitim seti, doğrulama seti ve test seti, teoride yapabileceğiniz şu iç içe optimizasyon prosedürüdür: dış döngüde, bulmaya çalışın doğrulama kaybını en aza indiren hiperparametrelerin değerleri ve iç döngüde, eğitim kaybını en aza indiren normal parametrelerin değerlerini bulmaya çalışırsınız .

Bu teorik olarak mümkündür, ancak hesaplama açısından çok pahalıdır: dış halkanın her adımı (tamamlanıncaya kadar veya buna yakın bir yerde) tipik olarak hesapsal olarak ağır olan iç halkanın çözülmesini gerektirir. İşleri daha da zorlaştıran şey, dış sorunun kolay olmamasıdır: birincisi, arama alanı çok büyük.

Yukarıdaki kurulumu basitleştirerek (ızgara arama, rastgele arama veya model tabanlı hiper parametre optimizasyonu) bunun üstesinden gelmek için birçok yaklaşım vardır, ancak bunları açıklamak sorunuzun kapsamının çok ötesindedir. Referansta bulunduğunuz makalenin de gösterdiği gibi, bunun maliyetli bir prosedür olduğu gerçeği, genellikle araştırmacıların bunu tamamen atladığı veya çok az ayarı manuel olarak deneyip sonunda en iyisine (tekrar, doğrulama kümesine göre) karar verdikleri anlamına gelir. Yine de orijinal sorunuza göre, çok basit ve tutarlı olsa da, bunun hala bir "öğrenme" biçimi olduğunu iddia ediyorum.


Merhaba, Cevabınız için teşekkürler. Aynı verileri kullanırsam ne olur ??
Aerin

7

Bu kağıttaki gibi hiperparametreler genellikle kayıp fonksiyonundaki çoklu terimleri dengelemek için kullanılır. Bunları öğrenilebilir hale getirdiyseniz, optimizasyon işlemi, tüm ağırlığı, optimize edilmesi daha zor olan terimlerin maliyetine göre optimize edilmesi daha kolay olan ve terimleri dengeleme noktasını bozan terimlere tahsis etmeyi öğrenecektir.

Bunu görmenin bir başka yolu, kayıp fonksiyonunun, "çıktı görüntülerinin üretilmesi gerçekçi görünmeli" veya "rakip örneklere karşı dirençli olması" gibi tanımlanması veya optimize edilmesi zor olan gerçek bir hedef için bir vekil olmasıdır. Bu durumda, gerçek hedef "vekil kaybını en aza indirgemek için hiperparametreleri bulmak" değildir, "hiperparametreleri bulmak, böylece vekil optimize etmek için parametrelerin geri kalanında SGD'yi çalıştırdığımızda, gerçekte iyi performans elde ederiz. amaç".


4

"Kağıda bakılmaksızın" diye sorduğunuzdan, daha basit bir örnek vermek istiyorum: Cezalandırılmış doğrusal regresyon (Ridge / Lasso).

Bu durumlar için iki nedenden dolayı düşünebilirim: Ama önce burada iki fonksiyon olduğunu unutmayın: (F1) Hiper parametrenin ve verilerin (bağladığınız kağıtta, analitik bir fonksiyon olan) kayıp fonksiyonu, onun J~; ve (F2) (F1) 'e optimum çözüm ve (F1)' de seçtiğiniz hiper parametreye bağlı olan genelleme hatasının tahmini.

Uyarı: Makaleye üstünkörü bir bakış, yazarların MNIST veri kümesi için bir sinir ağı sınıflandırıcısı eğittiklerini ortaya koymaktadır. Hiper parametrenin nasıl seçileceğini açıkça söylemiyorα, ama bir tane seçerdim α en iyi modelin doğrulama hatasını en aza indirir.

  1. Hiper parametrenin optimize edilmesine yönelik amaç işlevi, genelleme hatası için bir proxy olan bir ifadedir. Bu ifadenin ayırt edilebilecek basit bir analitik fonksiyon olarak yazılması zordur, ancak bir noktada temeldeki optimizasyon problemini çözerek kolayca değerlendirilebilir.

  2. İşlevi (F2) değerlendirmek, pahalı olabilecek bir optimizasyon problemini çözmenizi gerektirir. Bu nedenle, F2'nin degrade inişini yapması için degradeyi yaklaşık olarak tahmin edebilseniz bile pahalı ve yavaş olur. Bu gibi durumlarda, ızgara araması yapmak genellikle "yeterince iyi" olur.

Bunu söyledikten sonra, hiper-parametreye bağımlı olmaları nedeniyle bazı pürüzsüzlük yapılarını varsayarak kara kutu objektif fonksiyonlarını (F2 gibi) optimize etmek için teknikler vardır. Örnek olarak, bir Kement modelinin performansının hiper parametresine göre nasıl değiştiğini gösteren bu yayını görebilirsinizλ:

Kement Modeli Performansı

(Bu gönderiden alınan resim: https://stats.stackexchange.com/a/26607/54725 )

Bazı referanslar:


Özellikle J (θ, x + esign (∇xJ (θ, x, y))
belgesindeki 2. terime

@Aaron no. J maliyet fonksiyonudur; J~düzenli maliyet fonksiyonudur. Bir sınıflandırıcı oluşturdukları için F2'nin validasyon kaybı fonksiyonu olabileceğini söyleyebilirim. Kağıt aslında seçtiklerini söylüyorα yeterince iyi çalıştığı için 0,5 olması (diğer değerleri keşfetmediler) α, ne de seçme stratejisi α).
Vimal

Peki makalede F1 ve F2 olarak bahsediyor musunuz?
Aerin

F1 J~ve doğrulama hatasını F2 olarak kullanırdım. Bunu açıklığa kavuşturmak için cevabımı güncelleyeceğim.
Vimal

1

Hiperparametreyi takarsak, ilk sipariş koşulunun nasıl görüneceğini görelim α ve aynı şekilde öğrenmeye çalışın θ verilerden:

αJ"(θ)=ααJ(θ)+α(1-α)J'(θ)=J(θ)-J'(θ)=0
Bu nedenle,
J(θ)=J'(θ)

Bu hiperparametre optimize edildiğinde, hem J hem de J 'aynı fonksiyona, yani eşit ağırlığa neden olur. Sonunda önemsiz bir çözüm elde edeceksiniz.

Daha genel bir felsefe istiyorsanız, bunu düşünün: hiperparametreler genellikle verilerle karışık değildir. Ne demek istiyorum? Bir sinir ağında veya hatta basit bir regresyonda, model parametreleriniz bazı yollarla doğrudan verilerle etkileşime girecektir:

yL=XLβL
birL=σ(yL)
XL+1=birL
ve böylece katmanlar aşağı. Nasıl olduğunu görüyorsunβLverilerinize karışmak. Yani, herhangi bir türeviniβ objektif fonksiyonun matris, Hessians, çapraz ürünler vb.

Bununla birlikte, hiperparametreler üzerindeki birinci dereceden koşulları tahmin etmeye çalışırsanız, bu etkiyi elde edemezsiniz. Hiperparametrelerin türevleri genellikle türevleri gibi parçalarını parametrelerin üzerine karıştırmadan modelinizin tüm parçalarını çalıştırır. Bu yüzden hiperparametreleri optimize etmek genellikle size belirli bir kağıt için verdiğim gibi önemsiz çözümlere yol açar. Hiperparametreleri optimize etmek veri kümenizi rahatsız etmez ve ilginç bir şey üretecek kadar rahatsız edici hale getirmez.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.