來個小例子講述一下,過程。
apf 是0.9 , af是0.1 為什麼用0.9,用0.1 主要是因為1和0.在計算過程中,會有計算隱患(可能遇到0,就計算不下去等情況)。
a0(1)=1.78 a0(2)=1.14 也就是第一組資料。輸出a2 =0.9 。最後我們要進行多次的迭代和優化,優化的呢??就是w1,和w2.使得樣本的資料,輸入就最接近輸出的過程。bp神經網路是反饋型的。具體怎麼反饋的,後面在寫。現在大概寫一下,計算的過程。
建立乙個小的神經網路。bp神經網路,它是有監督學習型的。
假設神經網路的權係數
w1,從上到下,總共4條。w2,就2條線。分別對應乙個係數。
矩陣的第3欄,就是閾值。前面乙個章節,畫神經元的時候,有閾值的。
開始計算
u1(1)是中間的變數。它進行傳遞函式後,就是a1(1)的輸出。
數學公式表示是
這裡有個f()函式。就是我前乙個文章裡面的傳遞函式。
相同的求法,求出a2;求出的結果。剛開始的時候a2一定和0.9有誤差的,這個時候,就要對結果進行反饋調節w(就是權重)。
要進行反饋了。
代表學習率一般是-0.1。就是w權重變化的多少由它來控制。
第二層的反饋
把第一組的方程,代入到第二組。公式看起來有點亂是吧。慢慢看吧。 p是第幾組資料, t(1)是我設定的值就是0.9 a2(1)計算出來的值 它們倆相減就是誤差嘛
隱層多,精度就會高,但是運算量也會增大。而且增加隱層節點,比增加隱層層數要好(一層最好)。當然當前例子就沒有隱層。
隱層節點數不僅與輸入/輸出層的節點數有關,更與需解決的問題的複雜程度和轉換函式的型式以及樣本資料的特性等因素有關。(呵呵,看來難度有點大,看來這塊需要慢慢來了)
輸入和輸出都是規定好的。因為題目出現,輸入和輸出層,自己也就大概知道了。
bp神經網路,很容易陷入區域性最小值。有時候需要經驗,所有的這些引數,沒有統一的公式,標準,所以需要很多的嘗試才能感覺出用哪些引數更好。
到目前為止,很多關於bp神經網路的,我都沒嘗試。我也不知道有多複雜。僅僅了解一點點。
我能力有限,但是我努力分享我的知識,慢慢學習,慢慢長大。
FPGA 機器學習之BP神經網路2
來個小例子講述一下,過程。apf 是0.9 af是0.1 為什麼用0.9,用0.1 主要是因為1和0.在計算過程中,會有計算隱患 可能遇到0,就計算不下去等情況 a0 1 1.78 a0 2 1.14 也就是第一組資料。輸出a2 0.9 最後我們要進行多次的迭代和優化,優化的呢?就是w1,和w2.使...
FPGA機器學習之BP神經網路4
神經網路3,主要是一些用matlab自帶函式來完成神經網路的例子。matlab自帶的函式,都是經過優化,而且函式的實現過程是被封裝好了點。效能也是非常的優良了。可是自己寫出來的bp神經網路可能就不能達到那樣的效果。要想在fpga上實現,或者要知道內部的運 況,還是要自己寫才行。這個是自己寫的bp神經...
FPGA 機器學習之BP神經網路3
上一遍寫到了,公式,或者是一下關於bp神經網路的內容的語言描述。下面就要開始,進行深度點的分析。clcclear p 1 0.1 1 t 0.96 0.577 0.0729 0.377 0.641 0.66 0.461 0.1336 0.201 0.434 0.5 0.393 0.1647 0.09...