所以,當你有一個機器學習算法,訓練了你的圖層,節點和權重後,它究竟如何得到一個輸入向量的預測?我正在使用MultiLayer Perceptron(神經網絡)。機器學習,訓練後,它如何得到預測? opencv
從我目前的理解,你開始你的輸入向量來預測。然後,將其發送到您的隱藏層,在其中它將偏置項添加到每個數據點,然後添加每個數據點的產品和每個節點的權重(在訓練中找到)的總和,然後通過訓練中使用的激活函數相同。對每個隱藏層重複一次,然後對輸出層執行相同的操作。然後,輸出層中的每個節點都是您的預測。 這是正確的嗎?
我使用OpenCV時也做到這一點,因爲在guide它說,當你使用函數預測弄糊塗了:
如果您使用的是默認cvANN_MLP :: SIGMOID_SYM激活 函數的默認參數值fparam1 = 0和fparam2 = 0 那麼使用的函數是y = 1.7159 * tanh(2/3 * x),所以輸出 的範圍將從[-1.7159,1.7159],而不是[0,1]。
然而,當訓練認爲SIGMOID_SYM使用激活函數的文檔中還指出: f(x)= beta*(1-e^{-alpha x})/(1+e^{-alpha x})
其中α和β是用戶定義的變量。
所以,我不太清楚這是什麼意思。 tanh功能在哪裏起作用?任何人都可以清除它嗎?謝謝你的時間!
發現此問題的文檔是here: 參考tanh在函數說明predict下。 對激活函數的引用是由頁面頂部的S查看圖形引用的。
由於這是一個普遍性的問題,而不是特定的代碼,我沒有發佈任何代碼。