導航:首頁 > 網路問題 > 神經網路學習率怎麼設置

神經網路學習率怎麼設置

發布時間:2023-07-20 11:10:41

① 神經網路中學習率、批處理樣本數量、迭代次數有什麼意義和影響

學習率是指每次訓練過程中(迭代)變數改變(更新)的比率,例如x(t+1) = x(t) - a * delta
其中a可以看出學習率,一般在0 - 1之間,相當於步長,而delta相當於方向。
批處理樣本數量,標準的BP是單樣本學習的方法,例如圖片識別,第一個圖是貓,然後輸入圖像,網路學習一次(變數更新一次),學習到圖片的特徵,然後再輸入第二個圖片狗,在前面的基礎上再學習。 而批訓練,就是說兩個圖片一起輸入後,計算兩個樣本學習的平均的誤差(Loss), 從整體上來學習整個訓練樣本集合,這樣的學習對於大樣本數據更加有效率。
迭代次數就是學習的次數了,每次迭代就是向最優點前進的一小步,神經網路要學習到樣本的特徵,那就要一步一步地走,走了很多步才能到達符合精度地地點,所以需要學習很多次。

② 神經網路超參數選擇

深度學習模型通常由隨機梯度下降演算法進行訓練。隨機梯度下降演算法有許多變形:例如 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

③ BP神經網路中學習速率如何確定

學習率的作用是不斷調整權值閾值。
對於traingdm等函數建立的BP網路,學習速率一般取0.01-0.1之間。

④ 神經網路BP演算法中,如何選擇網路學習效率及閾值調整效率

學習效率一般取0~1之間的數如:0.1,0.4,網路初始化閾值賦值(0,1)區間內隨機數,之後通過神經網路訓練不斷調整。樓主只用調整學習效率就行了

閱讀全文

與神經網路學習率怎麼設置相關的資料

熱點內容
網路共享中心沒有網卡 瀏覽:490
電腦無法檢測到網路代理 瀏覽:1348
筆記本電腦一天會用多少流量 瀏覽:473
蘋果電腦整機轉移新機 瀏覽:1347
突然無法連接工作網路 瀏覽:959
聯通網路怎麼設置才好 瀏覽:1188
小區網路電腦怎麼連接路由器 瀏覽:929
p1108列印機網路共享 瀏覽:1184
怎麼調節台式電腦護眼 瀏覽:601
深圳天虹蘋果電腦 瀏覽:839
網路總是異常斷開 瀏覽:582
中級配置台式電腦 瀏覽:893
中國網路安全的戰士 瀏覽:601
同志網站在哪裡 瀏覽:1378
版觀看完整完結免費手機在線 瀏覽:1430
怎樣切換默認數據網路設置 瀏覽:1077
肯德基無線網無法訪問網路 瀏覽:1252
光纖貓怎麼連接不上網路 瀏覽:1374
神武3手游網路連接 瀏覽:936
局網列印機網路共享 瀏覽:973