Çoklu çıktı regresyonu için sinir ağı


14

34 giriş sütun ve 8 çıkış sütun içeren bir veri kümesi var. Sorunu çözmenin bir yolu, 34 girişi almak ve her bir çıkış sütunu için bireysel regresyon modeli oluşturmaktır. Bu sorunun özellikle Sinir Ağı kullanılarak sadece bir model kullanılarak çözülüp çözülemeyeceğini merak ediyorum.

Çok katmanlı bir algılayıcı kullandım, ancak bunun doğrusal regresyon gibi birden fazla modele ihtiyacı var. Sekans 1 öğrenme sıralaması uygulanabilir bir seçenek olabilir mi? Kayan değerleri işlemek mümkün görünmüyor TensorFlow kullanarak denedim.

Özellikle sinir ağı kullanan tek bir birleşik model kullanarak bu sorunu çözmek için herhangi bir öneri takdir edilecektir.

  1. Ilya Sutskever, Oriol Vinyals ve Quoc V. Le (2014). Yapay Sinir Ağları ile Sekans Öğrenme Dizisi. Sinir Bilgi İşlem Sistemlerindeki Gelişmeler , 27. ( pdf )

Nedir sorun?
TEG

2
(Potansiyel yakın seçmenlere: Bu bir programlama sorusu değildir. Stack Overflow ile ilgili konu dışı olacaktır .)
gung - Monica'yı

Burada "diziye dizilim" seçeneğini açıklığa kavuşturabilir misiniz? NN ile çalışan insanlara aşina olup olmayacağını bilmiyorum, ama bu bana göre değil.
gung - Monica'yı eski durumuna döndürün

RNN kullanarak Dizi modelleme. paper.nips.cc/paper/…
sjishan

MultiOutputRegressor () yöntemini deneyebilirsiniz. Bu, bu tür problemler için işe
yarar

Yanıtlar:


7

Birden çok sonucu olan bir sinir ağı daki sonuç boyuta sahipse , daha sonra boyuta sahip olacaktır .

Y=γ+V1Γ1+εV1=bir(γ2+V2Γ2)V2=bir(γ3+V3Γ3)VL-1=bir(γL+XΓL)
N-x8[γ1,Γ1](pV1+1)x8

Bu, her sonucun gizli katmanlardaki parametrelerin TÜMÜNÜ paylaştığını ve yalnızca en üstteki türetilmiş değişkeni alıp sonuçla ilişkilendirmek için farklı parametrelere sahip olduğunu varsaydığınız anlamına gelir.

Bu, bağlamınız için gerçekçi bir varsayım mı?


5

İlk başta generic_user'ın yorumunun bir gösterici olduğunu düşündüm, ama bunun olmadığını fark ettim:

Ben tren Eğer d üzerinde farklı ağları d farklı çıkışları, daha sonra her biri diğerleri için hiçbir konuda söz konusu boyuta uygun olacaktır.

Ancak d çıkışlı bir ağı eğitir ve tüm çıkışları backpagagation için kullanırsam, ağdaki her katmandaki her ağırlık, tüm d çıkışlarının daha doğru olacağı şekilde ayarlanır .

Yani: Her ağ parametresi toplam degradelerle ayarlanacaktır (her çıkışın bu parametrede " kıpırdatma " ile nasıl değiştiği ), seçilen yukarı veya aşağı yönde ayarlanması genel olarak daha doğru çıktıya neden olur - Bu şekilde, çıktının bazı boyutlarının daha az doğru olmasına neden olur.

Yani, evet, her bir çıktıyı nihai olarak ayıran şey sadece son katmanda kodlanmış doğrusal bir denklemdir, ancak bir çoklu çıkış ağını eğitirken her katman, son katmanı işini daha iyi yapmasına izin veren bir şeyle sunmada daha iyi hale gelecektir. . Ve sonuç olarak çıktılar arasındaki ilişkiler bu mimari tarafından açıklanacaktır.

Derin ağların girdiler arasındaki "bileşimsel" ilişkileri sömürerek sığ olanlardan daha iyi yaptığı gibi, mimarinizin çıktıdaki bilinen herhangi bir ilişkiyi yansıtmasını sağlayarak tam bağlantılı bir ağdan daha iyisini yapabilirsiniz .


Çok değişkenli bir regresyon, hedef değişkenleri birbiriyle ilişkilendiren bazı (bilinmeyen) kovaryans matrisi olduğunu varsayar. Gizli katman (lar) ı açıkça dahil etmeye gerek kalmadan bu kovaryansı yakalamak için sadece bir yoğun katmana sahip olmanın yeterli olduğunu düşünüyor musunuz?
thecity2

Gizli katmanların bu kovaryansın bir kısmını yakalaması gerektiğini öneriyorum. Tek başına yoğun bir çıktı katmanı, sadece bir grup paralel doğrusal regresör-aktivasyon fonksiyonudur. Karşılıklı ayarlama ve diğer çıkış düğümlerine girdi olarak giriş / geçiş olarak almaları için gizli bir katman olmadığında çıkışlar arasında hiçbir ilişki kurulamaz.
Pavel Komarov

0

Bunu sadece bir Sinir Ağı ile yapabilirsiniz. Ancak Sinir Ağınız şu şekilde görünmelidir:
Giriş Katmanı: 34 Düğüm (giriş sütununuz başına bir tane)
Çıkış Katmanı: 8 Düğüm (çıkış sütununuz başına bir tane)

Sinir Ağı'nda istediğiniz kadar gizli katman ekleyebilirsiniz. Böylece Sinir Ağı tahmin edilen 8 değer üretir ve her değer girdilerin farklı bir gerilemesi olacaktır.


hangi dil hangi paketi destekliyor ??
Arpit Sisodia

0

Aynı şeyi ben de merak ediyordum; İşte fikirlerim:

Çıktıların bazı gizli kalıpları paylaşması durumunda, eğitimin tüm çıktılar için aynı anda regresyonu öğrenmekten faydalanabileceğini düşünüyorum.

Her çıktı için bir sinir ağı oluşturduğunuz bir mimariyi denemek ilginç olacaktır, ancak tüm sinir ağları bazı katmanları paylaşır (örneğin ilk yarım katmanlar). Daha sonra her bir sinir ağını aynı anda eğitebilirsiniz: öğrenme döngüsünün içinde, her sinir ağı sırayla bir adım (bir parti ile) eğitilir.

Bu, bilgi transferine benzer olacaktır, ancak bilgi transferinde her bir sinir ağının, bir kısmını başka bir sinir ağını eğitmek için yeniden kullanmadan önce tamamen eğitilmiş olması ile.

Bahse girerim birisi bunu daha önce düşünmüştü, ama buna referansım yok.

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.