導航:首頁 > 網路設置 > 神經網路的權重大小多少合適

神經網路的權重大小多少合適

發布時間:2025-01-21 17:38:07

⑴ 神經網路權值怎麼確定

神經網路的權值是通過對網路的訓練得到的。如果使用MATLAB的話不要自己設定,newff之後會自動賦值。也可以手動:net.IW{}= ; net.bias{}=。一般來說輸入歸一化,那麼w和b取0-1的隨機數就行。神經網路的權值確定的目的是為了讓神經網路在訓練過程中學習到有用的信息,這意味著參數梯度不應該為0。

參數初始化要滿足兩個必要條件:

1、各個激活層不會出現飽和現象,比如對於sigmoid激活函數,初始化值不能太大或太小,導致陷入其飽和區。

2、各個激活值不為0,如果激活層輸出為零,也就是下一層卷積層的輸入為零,所以這個卷積層對權值求偏導為零,從而導致梯度為0。

(1)神經網路的權重大小多少合適擴展閱讀:

神經網路和權值的關系。

在訓練智能體執行任務時,會選擇一個典型的神經網路框架,並相信它有潛力為這個任務編碼特定的策略。注意這里只是有潛力,還要學習權重參數,才能將這種潛力變化為能力。

受到自然界早成行為及先天能力的啟發,在這項工作中,研究者構建了一個能自然執行給定任務的神經網路。也就是說,找到一個先天的神經網路架構,然後只需要隨機初始化的權值就能執行任務。研究者表示,這種不用學習參數的神經網路架構在強化學習與監督學習都有很好的表現。

其實如果想像神經網路架構提供的就是一個圈,那麼常規學習權值就是找到一個最優點(或最優參數解)。但是對於不用學習權重的神經網路,它就相當於引入了一個非常強的歸納偏置,以至於,整個架構偏置到能直接解決某個問題。

但是對於不用學習權重的神經網路,它相當於不停地特化架構,或者說降低模型方差。這樣,當架構越來越小而只包含最優解時,隨機化的權值也就能解決實際問題了。如研究者那樣從小架構到大架構搜索也是可行的,只要架構能正好將最優解包圍住就行了。

⑵ 研究人工神經網路的權值分布有什麼意義

神經網路一般都是非常龐大的,每個邊對應一個權值,如果權值不共享的話,數據量就更大了,但是為了提高效率,引入了權值共享,但是還不夠,想再次提高效率和精確度,進行主成分分析,把一些重要的權重保留,不重要的舍棄,你這個權值分布就很有意義了,比如權重是5的權值在概率上佔到了百分之95,或者說主成分分析的結果前2類權重就占據了百分之80,那麼剩下的權值就可以省略,當然這都是理論上的

⑶ 神經網路超參數選擇

深度學習模型通常由隨機梯度下降演算法進行訓練。隨機梯度下降演算法有許多變形:例如 Adam、RMSProp、Adagrad 等等。這些演算法都需要你設置學習率。學習率決定了在一個小批量(mini-batch)中權重在梯度方向要移動多遠。

如果學習率很低,訓練會變得更加可靠,但是優化會耗費較長的時間,因為朝向損失函數最小值的每個步長很小。
如果學習率很高,訓練可能根本不會收斂,損失函數一直處於波動中,甚至會發散。權重的改變數可能非常大,使得優化越過最小值,使得損失函數變得更糟。

訓練應當從相對較大的學習率開始。這是因為在開始時,初始的隨機權重遠離最優值。在訓練過程中,學習率應當下降,以允許細粒度的權重更新。

參考: https://www.jiqixin.com/articles/2017-11-17-2

批次大小是每一次訓練神經網路送入模型的樣本數。在 合理的范圍之內 ,越大的 batch size 使下降方向越准確,震盪越小,通常取值為[16,32,64,128]。

Batch_Size=全部數據集 缺點:
1) 隨著數據集的海量增長和內存限制,一次性載入所有的數據進來變得越來越不可行。
2) 以 Rprop 的方式迭代,會由於各個 Batch 之間的采樣差異性,各次梯度修正值相互抵消,無法修正。
Batch_Size = 1 缺點:
使用在線學習,每次修正方向以各自樣本的梯度方向修正,橫沖直撞各自為政,難以達到收斂。

在合理范圍內,增大 Batch_Size 有何好處?
1) 內存利用率提高了,大矩陣乘法的並行化效率提高。
2) 跑完一次 epoch(全數據集)所需的迭代次數減少,對於相同數據量的處理速度進一步加快。
3) 在一定范圍內,一般來說 Batch_Size 越大,其確定的下降方向越准,引起訓練震盪越小。

盲目增大 Batch_Size 有何壞處?
1) 內存利用率提高了,但是內存容量可能撐不住了。
2) 跑完一次 epoch(全數據集)所需的迭代次數減少,要想達到相同的精度,其所花費的時間大大增加了,從而對參數的修正也就顯得更加緩慢。
3) Batch_Size 增大到一定程度,其確定的下降方向已經基本不再變化。

參考: https://blog.csdn.net/juronghui/article/details/78612653

迭代次數是指整個訓練集輸入到神經網路進行訓練的次數,當測試錯誤率和訓練錯誤率相差較小,且測試准確率趨於穩定時(達到最優),可認為當前迭代次數合適;當測試錯誤率先變小後變大時則說明迭代次數過大了,需要減小迭代次數,否則容易出現過擬合。

用激活函數給神經網路加入一些非線性因素,使得網路可以更好地解決較為復雜的問題。參考: https://blog.csdn.net/tyhj_sf/article/details/79932893

它能夠把輸入的連續實值變換為0和1之間的輸出。
缺點:
1) 在深度神經網路中梯度反向傳遞時導致梯度爆炸和梯度消失,其中梯度爆炸發生的概率非常小,而梯度消失發生的概率比較大。
2) Sigmoid 的 output 不是0均值,使得收斂緩慢。batch的輸入能緩解這個問題。

它解決了Sigmoid函數的不是zero-centered輸出問題,然而梯度消失的問題和冪運算的問題仍然存在。
tanh函數具有中心對稱性,適合於有對稱性的二分類

雖然簡單,但卻是近幾年的重要成果,有以下幾大優點:
1) 解決了梯度消散問題 (在正區間)
2)計算速度非常快,只需要判斷輸入是否大於0
3)收斂速度遠快於sigmoid和tanh
ReLU也有幾個需要特別注意的問題:
1)ReLU的輸出不是zero-centered
2)Dead ReLU Problem,指的是某些神經元可能永遠不會被激活,導致相應的參數永遠不能被更新。有兩個主要原因可能導致這種情況產生: (1) 非常不幸的參數初始化,這種情況比較少見 (2) learning rate太高導致在訓練過程中參數更新太大,不幸使網路進入這種狀態。解決方法是可以採用Xavier初始化方法,以及避免將learning rate設置太大或使用adagrad等自動調節learning rate的演算法。

為了解決Dead ReLU Problem,提出了將ReLU的前半段設為 αx 而非 0 ,如 PReLU 。

1)深度學習往往需要大量時間來處理大量數據,模型的收斂速度是尤為重要的。所以,總體上來講,訓練深度學習網路盡量使用zero-centered數據 (可以經過數據預處理實現) 和zero-centered輸出。所以要盡量選擇輸出具有zero-centered特點的激活函數以加快模型的收斂速度。
2)如果使用 ReLU,那麼一定要小心設置 learning rate,而且要注意不要讓網路出現很多 「dead」 神經元,如果這個問題不好解決,那麼可以試試 Leaky ReLU、PReLU 或者 Maxout.
3)最好不要用 sigmoid,你可以試試 tanh,不過可以預期它的效果會比不上 ReLU 和 Maxout.

公式: https://www.cnblogs.com/xiaobingqianrui/p/10756046.html
優化器比較: https://blog.csdn.net/weixin_40170902/article/details/80092628

⑷ 神經網路—前饋網路(feedforward network)

神經網路解決的問題是存在已知輸入和輸出,但決定輸入與輸出關系的函數未知。通過神經網路訓練,最終得出輸入與輸出之間的函數關系,使機器具備了歸納和推廣能力。例如,對於函數y=ax,其中x和y已知,系數a未知,神經網路的任務就是通過不斷訓練找到最合適的a值,使得函數關系確定。無論輸入任何x值,都能得到准確的y輸出。

前饋網路主要由以下部分組成:神經元、神經細胞層和整個神經網路。

神經元由輸入數量和權重向量組成。輸入數量決定了神經元接收多少個輸入。初始化時,將輸入數量的隨機數(-1,1之間)作為權重。神經元構造函數如下:

SNeuron::SNeuron(int input)初始化神經元,input+1作為輸入數量,為的是包含一個固定的權重值作為閾值。

神經細胞層由多個神經元組成。構造函數如下:

SNeuronLayer::SNeuronLayer(int neuron, int inputperneuron)創建神經細胞層,參數neuron為神經元數量,inputperneuron為每個神經元接收的輸入數量。

整個神經網路由多個神經細胞層組成,構造函數如下:

CNeuralNet::CreateNet()根據是否包含隱藏層,創建相應的網路結構。

神經網路的權重設置和獲取分別由CNeuralNet::PutWeights(vector& weights)和CNeuralNet::GetWeight() const函數實現。

神經網路的核心計算由CNeuralNet::Update(vector& input)函數完成。此函數通過迭代更新網路各層神經元的輸出,實現輸入與輸出之間的計算。

神經網路通過上述結構和函數,實現了復雜問題的求解能力,具備了強大的學習和推廣能力。

⑸ 神經網路演算法

20 世紀五、六⼗年代,科學家 Frank Rosenblatt其受到 Warren McCulloch 和 Walter Pitts早期的⼯作的影響,發明了感知機(Perceptrons)。

⼀個感知器接受⼏個⼆進制輸⼊, ,並產⽣⼀個⼆進制輸出:

如上圖所示的感知機有三個輸⼊: 。通常可以有更多或更少輸⼊。 我們再引⼊權重: ,衡量輸入對輸出的重要性。感知機的輸出為0 或者 1,則由分配權重後的總和 ⼩於等於或者⼤於閾值決定。和權重⼀樣,閾值(threshold)是⼀個實數,⼀個神經元的參數。⽤更精確的代數形式如下:

給三個因素設置權重來作出決定:

可以把這三個因素對應地⽤⼆進制變數 來表⽰。例如,如果天⽓好,我們把

,如果不好, 。類似地,如果你的朋友陪你去, ,否則 。 也類似。

這三個對於可能對你來說,「電影好不好看」對你來說最重要,而天氣顯得不是那麼的重要。所以你會這樣分配權值: ,然後定義閾值threshold=5。

現在,你可以使⽤感知器來給這種決策建⽴數學模型。

例如:

隨著權重和閾值的變化,你可以得到不同的決策模型。很明顯,感知機不是⼈做出決策使⽤的全部模型。但是這個例⼦說明了⼀個感知機如何能權衡不同的依據來決策。這看上去也可以⼤致解釋⼀個感知機⽹絡有時確實能夠做出一些不錯的決定。

現在我們隊上面的結構做一點變化,令b=-threshold,即把閾值移到不等號左邊,變成偏置, 那麼感知器的規則可以重寫為:

引⼊偏置只是我們描述感知器的⼀個很⼩的變動,但是我們後⾯會看到它引導更進⼀步的符號簡化。因此,我們不再⽤閾值,⽽總是使⽤偏置。

感知機是首個可以學習的人工神經網路,它的出現引起的神經網路的第一層高潮。需要指出的是,感知機只能做簡單的線性分類任務,而且Minsky在1969年出版的《Perceptron》書中,證明了感知機對XOR(異或)這樣的問題都無法解決。但是感知機的提出,對神經網路的發展是具有重要意義的。

通過上面的感知機的觀察我們發現一個問題,每個感知機的輸出只有0和1,這就意味著有時我們只是在單個感知機上稍微修改了一點點權值w或者偏置b,就可能造成最終輸出完全的反轉。也就是說,感知機的輸出是一個階躍函數。如下圖所示,在0附近的時候,輸出的變化是非常明顯的,而在遠離0的地方,我們可能調整好久參數也不會發生輸出的變化。

這樣階躍的跳變並不是我們想要的,我們需要的是當我們隊權值w或者偏置b做出微小的調整後,輸出也相應的發生微小的改變芹則禪。這同時也意味值我們的輸出不再只是0和1,還可以輸出小數。由此我們引入了S型神經元。

S型神經元使用 S 型函數,也叫Sigmoid function函數,我們用它作為激活函數。其表達式如下:

圖像如下圖所示:

利⽤實際的 σ 函數,我們得到⼀個,就像上⾯說明的,平滑的感知器。 σ 函數的平滑特性,正是關鍵因素,⽽不是其細部形式盯明。 σ 的平滑意味著權重和偏置的微⼩變化,即 ∆w 和 ∆b,會從神經元產⽣⼀個微⼩的輸出變化 ∆output。實際上,微積分告訴我們

∆output 可以很好地近似表⽰為:

上面的式子是⼀個反映權重、偏置變化嫌塵和輸出變化的線性函數。這⼀線性使得我們可以通過選擇權重和偏置的微⼩變化來達到輸出的微⼩變化。所以當 S 型神經元和感知器本質上是相同的,但S型神經元在計算處理如何變化權重和偏置來使輸出變化的時候會更加容易。

有了對S型神經元的了解,我們就可以介紹神經網路的基本結構了。具體如下:

在⽹絡中最左邊的稱為輸⼊層,其中的神經元稱為輸⼊神經元。最右邊的,即輸出層包含有輸出神經元,在圖中,輸出層只有⼀個神經元。中間層,既然這層中的神經元既不是輸⼊也不是輸出,則被稱為隱藏層。

這就是神經網路的基本結構,隨著後面的發展神經網路的層數也隨之不斷增加和復雜。

我們回顧一下神經網路發展的歷程。神經網路的發展歷史曲折盪漾,既有被人捧上天的時刻,也有摔落在街頭無人問津的時段,中間經歷了數次大起大落。

從單層神經網路(感知機)開始,到包含一個隱藏層的兩層神經網路,再到多層的深度神經網路,一共有三次興起過程。詳見下圖。

我們希望有⼀個演算法,能讓我們找到權重和偏置,以⾄於⽹絡的輸出 y(x) 能夠擬合所有的 訓練輸⼊ x。為了量化我們如何實現這個⽬標,我們定義⼀個代價函數:

這⾥ w 表⽰所有的⽹絡中權重的集合, b 是所有的偏置, n 是訓練輸⼊數據的個數,
a 是表⽰當輸⼊為 x 時輸出的向量,求和則是在總的訓練輸⼊ x 上進⾏的。當然,輸出 a 取決於 x, w和 b,但是為了保持符號的簡潔性,我沒有明確地指出這種依賴關系。符號 ∥v∥ 是指向量 v 的模。我們把 C 稱為⼆次代價函數;有時也稱被稱為均⽅誤差或者 MSE。觀察⼆次代價函數的形式我們可以看到 C(w, b) 是⾮負的,因為求和公式中的每⼀項都是⾮負的。此外,代價函數 C(w,b)的值相當⼩,即 C(w; b) ≈ 0,精確地說,是當對於所有的訓練輸⼊ x, y(x) 接近於輸出 a 時。因

此如果我們的學習演算法能找到合適的權重和偏置,使得 C(w; b) ≈ 0,它就能很好地⼯作。相反,當 C(w; b) 很⼤時就不怎麼好了,那意味著對於⼤量地輸⼊, y(x) 與輸出 a 相差很⼤。因此我們的訓練演算法的⽬的,是最⼩化權重和偏置的代價函數 C(w; b)。換句話說,我們想要找到⼀系列能讓代價盡可能⼩的權重和偏置。我們將采⽤稱為梯度下降的演算法來達到這個⽬的。

下面我們將代價函數簡化為C(v)。它可以是任意的多元實值函數, 。
注意我們⽤ v 代替了 w 和 b 以強調它可能是任意的函數,我們現在先不局限於神經⽹絡的環境。

為了使問題更加簡單我們先考慮兩個變數的情況,想像 C 是⼀個只有兩個變數 和 的函數,我們的目的是找到 和 使得C最小。

如上圖所示,我們的目的就是找到局部最小值。對於這樣的一個問題,一種方法就是通過微積分的方法來解決,我們可以通過計算導數來求解C的極值點。但是對於神經網路來說,我們往往面對的是非常道的權值和偏置,也就是說v的維數不只是兩維,有可能是億萬維的。對於一個高維的函數C(v)求導數幾乎是不可能的。

在這種情況下,有人提出了一個有趣的演算法。想像一下一個小球從山頂滾下山谷的過程, 我們的⽇常經驗告訴我們這個球最終會滾到⾕底。我們先暫時忽略相關的物理定理, 對球體的⾁眼觀察是為了激發我們的想像⽽不是束縛我們的思維。因此與其陷進物理學⾥凌亂的細節,不如我們就這樣問⾃⼰:如果我們扮演⼀天的上帝,能夠構造⾃⼰的物理定律,能夠⽀配球體可以如何滾動,那麼我們將會採取什麼樣的運動學定律來讓球體能夠總是滾落到⾕底呢?

為了更精確地描述這個問題,讓我們思考⼀下,當我們在 和 ⽅向分別將球體移動⼀個很⼩的量,即 ∆ 和 ∆ 時,球體將會發⽣什麼情況。微積分告訴我們 C 將會有如下變化:

也可以用向量表示為

現在我們的問題就轉換為不斷尋找一個小於0的∆C,使得C+∆C不斷變小。

假設我們選取:

這⾥的 η 是個很⼩的正數(稱為學習速率),於是

由於 ∥∇C∥2 ≥ 0,這保證了 ∆C ≤ 0,即,如果我們按照上述⽅程的規則去改變 v,那麼 C
會⼀直減⼩,不會增加。

所以我們可以通過不斷改變v來C的值不斷下降,是小球滾到最低點。

總結⼀下,梯度下降演算法⼯作的⽅式就是重復計算梯度 ∇C,然後沿著相反的⽅向移動,沿著⼭⾕「滾落」。我們可以想像它像這樣:

為了使梯度下降能夠正確地運⾏,我們需要選擇合適的學習速率η,確保C不斷減少,直到找到最小值。

知道了兩個變數的函數 C 的梯度下降方法,我們可以很容易的把它推廣到多維。我們假設 C 是⼀個有 m 個變數 的多元函數。 ∆C 將會變為:

其中, ∇C為

∆v為:

更新規則為:

在回到神經網路中,w和b的更新規則為:

前面提到神經⽹絡如何使⽤梯度下降演算法來學習他們⾃⾝的權重和偏置。但是,這⾥還留下了⼀個問題:我們並沒有討論如何計算代價函數的梯度。這里就需要用到一個非常重要的演算法:反向傳播演算法(backpropagation)。

反向傳播演算法的啟示是數學中的鏈式法則。

四個方程:

輸出層誤差方程:

當前層誤差方程:

誤差方程關於偏置的關系:

誤差方程關於權值的關系

演算法描述:

檢視這個演算法,你可以看到為何它被稱作反向傳播。我們從最後⼀層開始向後計算誤差向量δ。這看起來有點奇怪,為何要從後⾯開始。但是如果你認真思考反向傳播的證明,這種反向移動其實是代價函數是⽹絡輸出的函數的結果。為了理解代價隨前⾯層的權重和偏置變化的規律,我們需要重復作⽤鏈式法則,反向地獲得需要的表達式。

參考鏈接: http://neuralnetworksanddeeplearning.com/

⑹ 紲炵粡緗戠粶瓚呭弬鏁伴夋嫨

1銆佹墍浠ヨ佸敖閲忛夋嫨杈撳嚭鍏鋒湁zero-centered鐗圭偣鐨勬縺媧誨嚱鏁頒互鍔犲揩妯″瀷鐨勬敹鏁涢熷害銆

2銆佹瘮濡傚湪BP紲炵粡緗戠粶涓錛屽叾鐩鐨勪富瑕佷負浜嗛夋嫨妯″瀷鐨勫眰鏁般佺炵粡鍏冪殑嬋媧誨嚱鏁般佹瘡灞傛ā鍨嬬殑紲炵粡鍏冧釜鏁(鍗蟲墍璋撶殑瓚呭弬鏁)錛屾瘡涓灞傜綉緇滅炵粡鍏冭繛鎺ョ殑鏈緇堟潈閲嶆槸鍦ㄦā鍨嬮夋嫨(鍗矺鎶樹氦鍙夐獙璇)涔嬪悗錛岀敱鍏ㄩ儴鐨勮緇冩暟鎹閲嶆柊璁緇冦

3銆侀夊彇璁緇冪炵粡緗戠粶鏃跺厛閫夊ソbatchsize錛屽啀璋冨叾浠栫殑瓚呭弬鏁般傚苟涓斿疄璺典笂鏉ヨ達紝灝變袱涓鍘熷垯鈥斺攂atchsize鍒澶灝忥紝涔熷埆澶澶э紝鍏朵粬閮借屻傚洜涓哄悎閫傜殑batchsize鑼冨洿鍜岃緇冩暟鎹瑙勬ā銆佺炵粡緗戠粶灞傛暟銆佸崟鍏冩暟閮芥病鏈夋樉钁楃殑鍏崇郴銆

4銆佷綋緋葷粨鏋勫拰瓚呭弬鏁扮殑閫夋嫨閬靛驚銆傚湪絎涓杞涓錛屽畾浣嶅櫒妯″瀷搴旂敤浜庡浘鍍忎腑鏈澶-鏈灝忎腑蹇冩柟褰浣滅墿銆備綔鐗╃殑澶у皬璋冩暣鍒扮綉緇滆緭鍏ュぇ灝廼s220脳220銆傚崟嬈¢氳繃榪欎釜緗戠粶錛屾垜浠灝卞彲浠ュ緱鍒頒笂鐧句釜鍊欓夋棩鏈熸嗐

5銆佺劧鑰岋紝DNN瓚呴珮鐨勫噯紜鎬ф槸浠ヨ秴楂樼殑璁$畻澶嶆潅搴︿負浠d環鐨勩傞氬父鎰忎箟涓嬬殑璁$畻寮曟搸錛屽挨鍏舵槸GPU錛屾槸DNN鐨勫熀紜銆

6銆侀拡瀵笲P紲炵粡緗戠粶鍥炲綊榪囨嫙鍚堥棶棰橈紝寤鴻灝濊瘯浣跨敤L1姝e垯鍖栧拰dropout鏂規硶鏉ヨВ鍐熾傚傛灉闇瑕佽繘琛岀壒寰侀夋嫨錛屽垯鍙浠ヤ嬌鐢↙1姝e垯鍖栥傚傛灉闇瑕佹彁楂樼綉緇滅殑娉涘寲鑳藉姏錛屽垯鍙浠ヤ嬌鐢╠ropout鏂規硶銆

閱讀全文

與神經網路的權重大小多少合適相關的資料

熱點內容
中國移動網路密鑰重設 瀏覽:891
沒有網路打哪個電話最好 瀏覽:13
地攤和網路哪個比較好 瀏覽:9
網路問卷一般多少錢 瀏覽:380
停電了筆記本如何有網路 瀏覽:161
蘋果手錶上的微信沒有網路連接 瀏覽:627
移動網路通用應該怎樣使用 瀏覽:401
網路教育客觀題滿分60多少合格 瀏覽:56
手機網路信號97d 瀏覽:435
55寸網路電視怎麼接線 瀏覽:480
網路不能用怎麼撥號 瀏覽:783
計算機網路中ppp名詞解釋 瀏覽:285
如何重啟手機網路 瀏覽:946
蘋果6s有信號沒網路 瀏覽:8
美國網路安全就業 瀏覽:914
用黑蘋果系統怎麼連接網路 瀏覽:18
FS1130mfp設置網路 瀏覽:599
杭州語音網路電話軟體 瀏覽:602
湖南網路營銷培訓 瀏覽:920
網路被騙轉賬最低多少立案 瀏覽:375

友情鏈接