著手查出牛頓法不穩定的原因

2022-07-31 15:15:12 字數 1871 閱讀 9303

今天把測試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位置前。其次,說一下穩定性的好處。排序演算法如果是穩定的,那麼從乙個鍵上排序,然後再從另乙個...