Sinir Ağı'ndan gerçek değerli sürekli çıktı nasıl alınır?


14

Sinir ağlarının şimdiye kadar gördüğüm örneklerinin çoğunda, ağ sınıflandırma için kullanılır ve düğümler sigmoid işleviyle dönüştürülür. Ancak, sürekli bir gerçek değer üretmek için bir sinir ağı kullanmak istiyorum (gerçekçi olarak çıktı genellikle -5 ila +5 aralığında olacaktır).

Sorularım:

1. Should I still scale the input features using feature scaling? What range?
2. What transformation function should I use in place of the sigmoid?

Başlangıçta bu katman türlerini açıklayan PyBrain uygulamak için arıyorum .

Yani başlamak için 3 katman (bir girdi, gizli ve çıktı katmanı) tüm doğrusal katmanlar olması gerektiğini düşünüyorum? Bu makul bir yol mu? Veya alternatif olarak sigmoid fonksiyonunu -5 ila 5 aralığında "uzatabilir miyim?"


1
[,][5,5]

İki gizli katman kullanmaktan kaçınmanın özel bir nedeni var mı? Bu, bir sinir ağından gerçek değerli sürekli çıktı elde etmenin en kolay yolu gibi görünmektedir. "Herhangi bir işlev, iki gizli katmana sahip bir ağ tarafından rasgele doğrulukla tahmin edilebilir" (Mitchell makine öğrenme metin slaydı 26'daki notlarda belirtilmiştir: cs.cmu.edu/afs/cs.cmu.edu/project/theo-20/ www / mlbook / ch4.pdf )
Chris Simokat

@ChrisSimokat: Hayır, ama şimdiye kadar okuduğum şeylerin çoğu tek bir gizli katmanı makul bir başlangıç ​​noktası olarak gösteriyor. Tek bir gizli katman ağı herhangi bir işleve yakın olamaz mı?
Kullanıcı

1
@ChrisSimokat: Belki bir şey eksik ama tek gizli katmanın "tek kat algı" eşit olmadığını düşündüm, değil mi?
Kullanıcı

1
Hayır, görünüşe göre bu konuda yeterince özür dilemediğim hiçbir şeyi kaçırmıyorsun.
Chris Simokat

Yanıtlar:


12

1 . Hala özellik ölçeklendirmesini kullanarak giriş özelliklerini ölçeklendirmeli miyim? Ne aralığı?

Ölçekleme daha kötü bir şey yapmaz. Bu yanıtı Sarle'nin sinir ağından okuyun SSS: Konu: Verileri normalleştirmeli / standartlaştırmalı / yeniden ölçeklendirmeli miyim? .

2 . Sigmoid yerine hangi dönüşüm fonksiyonunu kullanmalıyım?

[0,1][1,1][5,5]


Sinir ağı çıkışını [-5,5] aralığına ölçeklemenin doğru yolu nedir?
Kullanıcı

3
e[a,b][c,d]eaba(dc)+c

2
Ancak sigmoid doğrusal olmadığından, sigmoid değerini örnekleyen tekdüze dağılımla muhtemelen 1'e yakın veya 0'a yakın bir şey elde ederiz. Bu, ortadaki değerleri daha dikkatli seçmek için ağımızı öğrenmemiz gerektiği anlamına gelir. Sigmoid + ölçeklendirme gerçekten iyi bir seçim mi?
Smarty77

0

Feragatname: sunulan yaklaşım sürekli değerler için uygun değildir, ancak Smarty77 projesi için karar vermede biraz ağırlık taşıdığına inanıyorum, yeniden ölçeklendirilmiş bir sigmoid fonksiyonunun kullanılması konusunda iyi bir nokta getiriyor. Doğal olarak, sigmoid işlevi, bir örnekleme başarı oranını tanımlayan bir olasılık üretir (yani, bu özelliklere sahip 100 fotoğraftan 95'i başarıyla 'köpek'tir). Açıklanan nihai sonuç bir ikili sonuçtur ve 'ikili çapraz entropi' kullanılarak yapılan eğitim, orta aralıktaki sonuçları doğal olarak caydıran, taban tabana zıt sonuçları ayırma işlemini açıklar. Çıktının sürekliliği sadece örnek sayısına göre ölçeklendirme için mevcuttur (yani 0.9761'in bir sonucu, bu veya benzer triatları gösteren 10000 numuneden 9761'inin 'köpek' olduğu anlamına gelir), ancak her sonucun kendisinin hala ikili olduğu ve keyfi olarak ayrıntılı olmadığı düşünülmelidir. Bu nedenle, gerçek sayılarla karıştırılmamalı ve uygulanmamalıdır ve burada geçerli olmayabilir. Ağın kullanımından emin olmasam da, çıkış vektörünü kendiliğinden normalleştirirdim. Bu softmax ile yapılabilir. Bu ayrıca ağdan 11 doğrusal çıkış (bölme) olmasını gerektirir (her çıkış için bir tane -5 ila +5), her sınıf için bir tane. Doğru cevap olan herhangi bir 'çöp kutusu' için bir güvence değeri sağlayacaktır. Bu mimari, 1 etkin kodlama ile eğitilebilir ve 1 doğru bölmeyi gösterir. Sonuç, açgözlü bir strateji veya olasılıklı örnekleme gibi bir şekilde yorumlanabilir. Ancak, onu sürekli bir değişkene dönüştürmek için, her bir indeksin güvencesi, bir sayı çizgisine (sigmoid ünitesinin davranışına benzer şekilde) bir işaretçi yerleştirmek için ağırlık olarak kullanılabilir, ancak bu da birincil sorunu vurgular: ağ oldukça kesinse sonuç -2'dir veya +3, ancak başka hiçbir şey olmadığından kesinlikle emin, +1 geçerli bir sonuç mu? İlginiz için teşekkür ederim. Projenizde iyi şanslar.

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.