今天把測試hessian的**加進去了,但是發現hessian並無大的問題。
測試例子:一根圓柱向指定方向彎曲。
下面對比,在有彎曲方向引數,與無方向引數(該引數被被乘以0)的情況下,各幀迭代的函式值。
無方向引數:幀號1
2345
第1次迭代
073777.396480
615269.331763
1566548.018724
2799725.912609
第2次迭代
150.018686
1116.876970
3499.198322
8757.705770
第3次迭代
144.756549
785.078791
1510.680152
2220.662691
第4次迭代
785.053385
1510.524488
2219.948136
有方向引數幀號1
2345
第1次迭代
073777.396480
615457.873791
1566753.791283
2797987.408846
第2次迭代
238.365110
1093.703963
2470.166542
6643.182270
第3次迭代
234.873881
837.922487
693.717725
561.082432
第4次迭代
234.873881
837.922027
693.695513
560.826661
關鍵在於第二幀,兩種方法的初始函式值是相同的,但是最終卻收斂到不同的值。而且有方向的引數收斂到的值要大一些。猜測是收斂到區域性極值點了。為了驗證這一點,需要檢查第二幀兩種方法的梯度。12
34無方向梯度gn
1437015.459672
12004.873928
9.966298
有方向梯度gn
1437015.459672
10015.666457
1.390628
0.000000
無方向梯度gp
5596204.567079
2756.358209
0.697293
有方向梯度gp
5596204.567079
10439.419591
464.339724
0.271374
兩個梯度都收斂,但估計收斂的方向不同。
若改變導數有限差商的步長,不影響收斂趨勢,只是具體每步迭代的梯度值會稍微變化。
在計算導數的過程中,q,v,a,p的值都沒有被錯誤修改。因此迭代的過程是確實收斂的。
寫乙個測試導數的命令。
用無方向的方法模擬一次,測試第二幀最終梯度:
funval:144.757682 gradient: |gn| = 5.132273, |gp| = 1.245470
此時把系統改為有方向,測試此時梯度:
funval2:144.757682 gradient2: |gn| = 5.132273, |gp| = 1.285636
測試梯度是否為函式線性近似:
可見此時結果比較接近。現在懷疑有方向和無方向這兩種情況,在迭代的後期對函式值僅有微小的影響,在迭代的後期,步長的前進極為緩慢,因而導致不同的結果。
進一步提高迭代精度發現,在迭代的後期,梯度值可以變得很小。這暗示函式是收斂到區域性最小值了。
GAN訓練不穩定原因
1 很難使得g和d同時收斂 大多深度模型的訓練都使用優化演算法尋找損失函式比較低的值。優化演算法通常是個可靠的 下山 過程。生成對抗神經網路要求雙方在博弈的過程中達到勢均力敵 均衡 每個模型在更新的過程中 比如生成器 成功的 下山 但同樣的更新可能會造成博弈的另乙個模型 比如判別器 上山 甚至有時候...
網路不穩定是什麼原因 液壓站壓力不穩定的原因
液壓站壓力不穩定主要表現在以下三個方面 第 一 沒有壓力 通常的檢查排除法就是,開啟油幫浦與管路連線處,開機看看有沒有油幫浦出,正常的話,電機和幫浦就是好的,排除,否則拆幫浦檢查 接著把溢流閥 單向閥 節流閥等開度調整到中間位置,換向看看,換向閥倆燈不是同時亮的,若沒有只是一閃,換一頭的電磁繼電器,...
穩定的和不穩定的排序
首先,排序演算法的穩定性大家應該都知道,通俗地講就是能保證排序前2個相等的數其在序列的前後位置順序和排序後它們兩個的前後位置順序相同。在簡單形式化一下,如果ai aj,ai原來在位置前,排序後ai還是要在aj位置前。其次,說一下穩定性的好處。排序演算法如果是穩定的,那麼從乙個鍵上排序,然後再從另乙個...