2. 動量(momentum)演算法
2.2 nag 演算法(nesterov 動量)
3. 自適應學習率的優化演算法
3.2 rmsprop
3.3 adadelta
3.4 adam
4. 如何選擇優化演算法
5. 基於二階梯度的優化演算法
微積分中使用梯度表示函式增長最快的方向;因此,神經網路中使用負梯度來指示目標函式下降最快的方向。
負梯度中的每一項可以認為傳達了兩個資訊:
基本的梯度下降法每次使用所有訓練樣本的平均損失來更新引數;
在訓練集上抽取指定大小 bat
chsi
zebatchsize
batchs
ize 的一批資料 (x,
y)(x,y
)前向傳播
將這批資料送入網路,得到這批資料的**值 ypr
edy_yp
red
計算網路在這批資料上的損失,用於衡量 ypr
edy_yp
red
和 yy
y 之間的距離
反向傳播
計算損失相對於所有網路中可訓練引數的梯度 g
gg將引數沿著負梯度的方向移動,即 w−=
lr∗g
w -= lr * g
w−=lr∗
g當批的大小為2 的冪時能充分利用矩陣運算操作,所以批的大小一般取 32、64、128、256 等。
例如:訓練詞向量的例子
從形式上看, 動量演算法引入了變數v
充當速度角色,以及相相關的超引數α
。
原始 sgd 每次更新的步長只是梯度乘以學習率;現在,步長還取決於歷史梯度序列的大小和排列;當許多連續的梯度指向相同的方向時,步長會被不斷增大;
- 如果動量演算法總是觀測到梯度g
,那麼它會在−g
方向上不斷加速,直到達到最終速度。
- 在實踐中,α
的一般取0.5, 0.9, 0.99
,分別對應最大2 倍、10 倍、100 倍
的步長
- 和學習率一樣,α
也可以使用某種策略在訓練時進行自適應調整;一般初始值是乙個較小的值,隨後會慢慢變大。
偏差修正
缺點
演算法優化專題 C POJ 2777
題目大意 長度為l的板被分成l段,每段長乙個單位長度 1 l 100000 有o個操作 1 o 100000 操作分兩種 c a b c 表示將區間 a,b 染成顏色c 1 c 30 p a b 輸出 a,b 有多少種不同的顏色 開始時 1,l 的顏色為1 解題思路 觀察顏色的種數最多為30種。因此...
演算法優化專題E POJ 2528
題目大意 有一塊長度為x的板 1 x 10000000 均分成x份,每份長乙個單位長度。現在有n張海報 1 n 10000 每張海報有個區間 li,ri 表示這張海報會占用 li,ri 的位置,若區間 li,ri 有其他海報,那麼這些海報會被新貼的覆蓋,按照輸入的順序貼這n張海報。問最後能看見多少張...
演算法優化一
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...