神經網絡是一個函數逼近器。如果你有什麼是輸入的實值向量,並且與這些向量中的每一個相關聯,那麼你就有一個目標實數或分類,例如「好」,「壞」,「紅色」等,那麼神經網絡可以被用來解決你的問題。 神經網絡最簡單的形式是函數形式n(x):= g(Wh(Ax + b)+ c),其中A和W是矩陣,b和c是向量,h是分量 - 非線性函數,通常是一個sigmoid函數,g是一個函數,其值與目標空間的值相同。 在你的情況下,你的輸入矢量,如上面的x表示,將包含pH值,濁度等,你的目標是湖將維持多長時間。如果您的網絡得到了「訓練」,它將能夠在給定一個看不見的輸入的情況下(對pH和濁度等進行新的測量),計算湖泊持續時間的近似值。 「訓練」神經網絡包括選擇A,W,b,c的參數。這些參數中有多少取決於您爲A和W選擇了多少列(因此也取決於b和c)。選擇這些參數的一種方法是使函數n(x)接近您在所有歷史(訓練)示例中的實際測量目標。更具體地說,選擇A,W,b,c以最小化E(A,W,b,c):其中t(x)是你歷史測量的目標當在x)中測量pH和濁度時,該湖持續多長時間。一種嘗試使E比A,W,b,c最小的方法是計算E相對於每個參數的梯度,然後通過稱爲反向傳播的算法向梯度的負值邁進一步。
我想要說明的是,當參數固定時,神經網絡的計算是確定性的,但是有一些算法用於計算E不確定性的梯度。其他一些算法是確定性的。
所以,所有的背景,是神經網絡矯枉過正你的項目?這取決於你試圖從你的觀察到你試圖預測的輸出的近似函數。一個神經網絡是否會給你很好的預測準確度取決於很多因素,其中最重要的可能是你需要訓練多少個例子。如果相對於預測因子的數量沒有很多訓練樣例,神經網絡可能不是您想要的,但大多數情況下,這是一個經驗問題,而不是理論問題。
好的是,如果你願意使用python,那麼有很好的庫可以讓你對這些測試非常簡單。如果你嘗試一個神經網絡,但它不能給你很好的預測,還有很多其他的迴歸方法可以嘗試。你可以嘗試線性迴歸(這是一個神經網絡的特例),或者例如一個隨機森林。如果你使用sklearn進行線性迴歸和隨機森林,所有這些都很容易在Python中進行編碼。有幾個神經網絡庫可以讓他們玩起來很容易。我建議神經網絡張量流。
我的建議是花一點時間嘗試幾種方法。對於這樣一個相對簡單的預測問題,訓練網絡的時間應該很短。您可能聽說過的幾天或幾周的較長時間是大規模數據集,包含數百萬甚至數十億訓練示例和數百萬個參數。
這裏http://pastebin.com/KrUAX9je是我創建 「學習」 來近似函數f的玩具神經網絡(A,B,C)=一個b℃。
反向傳播是微分計算方法,而不是網絡類型。這裏的網絡類型是前饋網絡。它可以用來解決你的問題,看起來像你需要線性輸出層(用於迴歸問題)。它並不過分,但您也可以嘗試使用線性迴歸或多項式迴歸。 –