數值解和解析解/softmax迴歸/泰勒展開/牛頓法

一隻勤奮愛思考的豬發表於2018-08-17

在解元件特性相關的方程式時,大多數的時候都要去解偏微分或積分式,才能求得其正確的解。依照求解方法的不同,可以分成以下兩類:解析解和數值解。

解析解(analytical solution)就是一些嚴格的公式,給出任意的自變數就可以求出其因變數,也就是問題的解, 他人可以利用這些公式計算各自的問題.
所謂的解析解是一種包含分式、三角函式、指數、對數甚至無限級數等基本函式的解的形式。
用來求得解析解的方法稱為解析法〈analytic techniques〉,解析法即是常見的微積分技巧,例如分離變數法等。
解析解為一封閉形式〈closed-form〉的函式,因此對任一獨立變數,我們皆可將其帶入解析函式求得正確的相應變數。
因此,解析解也被稱為閉式解(closed-form solution)

數值解(numerical solution)是採用某種計算方法,如有限元的方法, 數值逼近,插值的方法, 得到的解.別人只能利用數值計算的結果, 而不能隨意給出自變數並求出計算值.
當無法藉由微積分技巧求得解析解時,這時便只能利用數值分析的方式來求得其數值解了。數值方法變成了求解過程重要的媒介。
在數值分析的過程中,首先會將原方程式加以簡化,以利後來的數值分析。
例如,會先將微分符號改為差分符號等。然後再用傳統的代數方法將原方程式改寫成另一方便求解的形式。
這時的求解步驟就是將一獨立變數帶入,求得相應變數的近似解。
因此利用此方法所求得的相應變數為一個個分離的數值〈discrete values〉,不似解析解為一連續的分佈,而且因為經過上述簡化的動作,所以可以想見正確性將不如解析法來的好。

數值解是在特定條件下通過近似計算得出來的一個數值,而解析解為該函式的解析式。
解析解就是給出解的具體函式形式,從解的表示式中就可以算出任何對應值; 數值解就是用數值方法求出解,給出一系列對應的自變數和解。

參考:http://deeplearning.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92

https://www.cnblogs.com/ljy2013/p/5129294.html
泰勒展開的概念:
數學中,泰勒公式是一個用函式在某點的資訊描述其附近取值的公式。如果函式足夠平滑的話,在已知函式在某一點的各階導數值的情況之下,泰勒公式可以用這些導數值做係數構建一個多項式來近似函式在這一點的鄰域中的值。泰勒公式還給出了這個多項式和實際的函式值之間的偏差。

泰勒展開:已知一個函式的在某個已知點的值,以及在該點的一階、二階值,那麼可以通過泰勒展開求取函式在該點鄰域的值;很強大!!!
上述中某個點在實際中,既可能只包含一個元素的點(即一維的點);也可能是包含多個元素的點(即多維的點);

引入牛頓法:(牛頓法的前提其實是泰勒展開)

當點是一維的時候,很簡單的計算形式,就可以求出X(k+1)與X(k)滿足的迭代關係(注意,我們之前,通過令導數為0,求諸如一元二次方程的解,求出來的直接是函式取得極值時的點;現在是我們不能通過求的極值等閉合解的形式求取出解,我們需要藉助數值解的形式,找出函式在取所有點時的輸出來確定函式;因此,可以通過這樣一個策略:首先,我們知道一個初始點;然後,我們可以知道該點的迭代方向(前提是必須保證點沿著這個方向迭代我們想得到的函式值一定往收斂的方向跑);最後,一直這樣迭代求函式值下去,知道函式值達到我們的最小值;

當點是二維(或者大於二維的時候),我們可以通過同樣的方式求解,只不過,求一階導的時候增加了維度;求二階導就變成了海森矩陣;由於海森矩陣非奇異,因此可以求逆,這樣可以直接求得二維或者多維的點的迭代方向(按理說應該是一個向量);這樣依次迭代下去,按同樣的思路可以求得極值。

由於牛頓法的過程中,沒有迭代的步長因子,因此,對於二次項收斂(即,函式最高為二次項)的函式,一步迭代即可;而對於非二次項(比如三次項,用二次項的迭代方向有可能達不到想要的效果),其定長迭代會導致函式取值偏差很大,因此,牛頓法有上述缺點。

相關文章