簡體   English   中英

多(單輸出)NN與單(多目標)NN之間有什么區別?

[英]What's the difference between multi-(single outputs) NN vs single-(multi targets) NN?

我正在研究跟隨Keras / TF的以下自回歸問題:

輸入:

m個 例子x 10個時間步長(序列長度)x 7個特征

(每個值都是實際值)

產出:

m 例x 4目標/“標簽”(我想要預測的實際值)

到目前為止,最后使用LSTM 與密集層(編輯) 因此,舉一個例子,我給出了大小為10的序列中的7個特征,我只想要4個實數值(我根據先前的值預測當前值)。

我的問題如下

預測之間有什么區別:

一種。 1個輸出,尺寸為m x 4

每個尺寸為m x 1的 4個輸出

我嘗試了兩種方法,但我沒有看到任何特別的差異,但我想了解它們的作用。 在第二種情況下,我知道我可以為我想要預測的每個變量指定不同的損失和不同的權重,但這似乎不如第一種方法正確。

#python / Keras-TF
#a. multi output
model = Model(inputs = X_input, outputs = [Output1,Output2,Output3,Output4])
prediction = model.predict(X_test_normalized) #returns an inconvenient list of 4 [2 by 1 vectors] which in the end gives me m*4 real values as wanted

###### vs ######

#b. single output
model = Model(inputs = X_input, outputs = [Output1]) #vector of dimension 4
prediction = model.predict(X_test_normalized) #returns a m*4 matrix

它在大多數情況下並沒有什么不同。 如果您的輸出圖層是密集的,則每個圖層都將具有* 1權重矩陣。 如果您有單個輸出圖層,則權重的形狀為n * 4。 通常一個大輸出層更快,因為一個大矩陣乘法通常比多個小矩陣乘法更快。

您也可以對單個輸出層的輸出進行加權。 只需將它與輸出大小的權重向量相乘,然后再將其輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM