Yığılmış otomatik kodlayıcı ile 2 katmanlı sinir ağı eğitimi arasında fark var mıdır?


14

Diyelim ki 2 katmanlı yığın otomatik kodlayıcı ve 2 katmanlı sinir ağı oluşturmak için bir algoritma yazıyorum. Aynı şeyler mi yoksa fark mı?

Anladığım kadarıyla, bir yığın otomatik kodlayıcı oluşturduğumda, katman katman oluşturacağım. Sinir ağı için, ağdaki tüm parametreleri başlatırım ve daha sonra her veri noktası için, ağdan geçiririm ve kaybı hesaplar (örneğin, ökosuz mesafe) ve backpropagation yaparım.

Yanıtlar:


16

Yığın otomatik kodlayıcılar ve çok katmanlı sinir ağları farklıdır. Pratikte, iki ağın ağırlıklarını paylaşması ve muhtemelen bellek arabelleklerini paylaşması gerekir. Böylece uygulamanızda iki ağ birbirine dolanır.

Tipik olarak, oto-kodlayıcılar denetimsiz, açgözlü, katman bazında bir şekilde eğitilir. (Etiket yok, yalnızca ağın ilk katmanıyla eğitime başlayın ve sonra yeni katmanlar ekleyin.) Ağırlıklar "toplu" degrade inişten çeşitli teknikler kullanılarak öğrenilebilir (lütfen bunu yapmayın), mini-yığın stokastik gradyan inişine (SGD), L-BFGS gibi yarı Newton yöntemlerine.

Fikir, temsil öğrenme görevi için yeniden yapılandırma hatasını en aza indirgemek amacıyla denetimsiz bir şekilde öğrenilen ağırlıkların, sınıflandırma veya benzerlik gibi denetlenen ayrımcı bir görev için bir ağ başlatmak için iyi bir başlangıç ​​noktası sunmasıdır. Yani ağ, etiketlenmemiş verilere bakarak temel etiketleme hakkında bir şeyler öğrenir ve etiketlenmiş veriler arasında ayrım yapmasına izin verir. Bununla birlikte, bu yeni görev için ağırlıkların hala "ince ayarlanması" gerekmektedir. Bu yüzden ağın üstüne bir lojistik regresyon katmanı ekleyin ve ardından etiketli bir veri kümesiyle denetimli öğrenme yapın. İnce ayar adımı degrade iniş yapacak ve ağdaki tüm katmanların ağırlıklarını aynı anda ayarlayacaktır .

Sinir ağlarını bu şekilde eğitmenin avantajları:

  1. Denetimsiz eğitim, ağa daha fazla veri göstermenize olanak tanır, çünkü büyük denetimsiz veri kümeleri, etiketli olanlara göre çok daha kolaydır.
  2. Önceden eğitilmiş ağı, yeni sınıflandırıcıları eğitmek için "atlama noktası" olarak kullanabilirsiniz, böylece her seferinde sıfırdan başlamak zorunda kalmazsınız.

Kağıt için, bkz. Yığılmış denoising otomatik kodlayıcılar: Yerel bir denoising ölçütüyle derin bir ağdaki yararlı gösterimleri öğrenme .


Kodlama katmanını bir sınıflandırma görevi için bir sınıflandırma katmanıyla (örn. Softmax katmanı) eğittiğiniz ikinci adım hakkında kafam karıştı. Etiketleri öğrenmek için bu bölümün eğitim veri kümesini tekrar kullanıyor musunuz? Bunu garip buluyorum, çünkü eğitim seti sadece kendi yaklaşımını öğrenmek için kullanıldı.
adam

Zaten etiketlenmiş verilerin hepsine sahip olmanız pek mantıklı değil. Daha önceden etiketlemek için çok daha fazla etiketlenmemiş veriye sahip olduğunuz ve daha sonra ince ayar yapmak için etiketli "eğitim" verilerini kullandığınız durumlar için daha fazladır.
Miyav
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.