我們通過 lmfit使用scipy.optimize.differential_evolution來解決主要引數幅度差異的優化問題。
我們知道leastsq確實處理了這類問題,但我們想知道different_evolution 是否也能處理,或者我們是否應該提前將它們歸一化?
此致
uj5u.com熱心網友回復:
我認為您的兩個選項的答案都是否定的。
第一個否:scipy(以及 lmfit)differential_evolution()不會自動重新調整引數值以具有相似的數量級。
第二個否:您不應該重新調整值。
基本上,對于某些方法(例如,leastsq),重新縮放很重要,因為該演算法構建并使用包含所有變數的導數矩陣。如果尺度變化很大,矩陣的操作在數值上可能不穩定。
差分進化不使用這樣的導數(即使它們會有所幫助,因此其速度非常慢)。所以,它不會有這個問題。
也就是說,僅從數值計算穩定性的角度來看,我建議不要使用 1.e-12 范圍內的一些變數和 1e12 范圍內的其他變數。如果您知道比例在 1e-6 到 1e6 之外,請重新調整比例。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/351739.html
下一篇:逼近未知函式的逆
