本文基于下面的博客,結(jié)合自己第一次看的時(shí)候的一些問題,重新梳理總結(jié)一下
https://blog.csdn.net/wsj998689aa/article/details/41558945
一:什么是最小二乘
最小二乘:就是最小化,
其中:是第i個(gè)實(shí)際觀測(cè)到的值,也可以叫做真實(shí)值或者目標(biāo)值;
? ? ? ? ??則可以看作是通過x這個(gè)參數(shù)預(yù)測(cè)得到的第i個(gè)值,是對(duì)
的一個(gè)預(yù)測(cè)(估計(jì))。
最小二乘就是為了使得觀測(cè)值(真實(shí)值)和估計(jì)值之間的差距最小。
二:什么是線性最小二乘
所謂線性,指的是是x的線性函數(shù),
。
那么對(duì)于整個(gè)可以表示為圖一:

寫成矩陣形式,為圖二

此時(shí),我們有,此時(shí)最小二乘形式變?yōu)榍髕使得
最小化。(這里A是固定的,是需要自己尋找的,這也是線性的前提)
三:如何求解線性最小二乘
對(duì)于線性最小二乘,我們要求解,那么最理想的情況是求x使得
,這樣
也就是最小了(別問我為什么0是最小的,因?yàn)槠椒胶停?dāng)然0是最小值)
此時(shí),問題轉(zhuǎn)換為求解,最終得到
的解析解形式,一步求解,不需要迭代,完美~
這個(gè)具體的證明過程參考下面這篇博客,我就不當(dāng)搬運(yùn)工了:
https://blog.csdn.net/u013007900/article/details/45933435
四:什么是非線性最小二乘
所謂非線性,就是無(wú)法表示為
的線性關(guān)系,即:
無(wú)法表示為
這種線性的關(guān)系,而是
這種非線性關(guān)系(當(dāng)然這里也不一定是指數(shù)形式,對(duì)數(shù)啥的,或者什么奇奇怪怪表示不出來(lái)的形式也有可能)
當(dāng)是
的非線性關(guān)系時(shí),此時(shí)最小二乘就變?yōu)椋悍蔷€性最小二乘
五:如何求解非線性最小二乘
非線性最小二乘問題無(wú)法構(gòu)造出來(lái)一個(gè)矩陣線性方程組的,沒有辦法求一步求得解析解,那么我們?cè)趺辞蠼饽兀?/p>
思路:既然是非線性的,那么我們可不可以將其轉(zhuǎn)換為線性的呢?或者近似線性的?
答案當(dāng)然是可以啦~~~~
這就是大名鼎鼎的一階泰勒展開:
(一定要一階泰勒展開,不能采用二階以上,因?yàn)橹挥幸浑A泰勒展開才是線性函數(shù),才能轉(zhuǎn)換為線性最小二乘問題來(lái)直接求解。)
此時(shí)變成了
我們?cè)趯⑶皟身?xiàng)合并就變成了
其中如果將看作
,將
看作一個(gè)矩陣的第i行(其實(shí)這里
本來(lái)就是一個(gè)矩陣的第i行,也就是大名鼎鼎的雅各比矩陣
的第i行)
那么就變成了對(duì)應(yīng)著線性最小二乘的形式
此時(shí),我們?cè)撛趺醋瞿貇~當(dāng)然是模仿線性最小二乘的解鴨:
求解:
照著抄:
最終:
這樣子我們就得到了關(guān)于當(dāng)前的一個(gè)更新值,這樣,我們只需要不停的迭代更新x的值,直到e達(dá)到某一個(gè)精度即可~~是不是很簡(jiǎn)單呢^_^
六:結(jié)語(yǔ)
看到這里,你就入坑了鴨,你以為就這么好求解么~~
這里有幾個(gè)難點(diǎn):
1. J不會(huì)求~~腫么辦?(這點(diǎn)我不知道,我只會(huì)逆運(yùn)動(dòng)學(xué)得求雅各比的方法)
2.注意到了這一項(xiàng)么,哼哼,誰(shuí)告訴你這東西一定有逆矩陣的?那么沒有逆矩陣腫么辦,這就是一個(gè)ill-condition的問題,他的condition number非常大。這時(shí)候,我們通常引入正則項(xiàng)來(lái)降低condition number,也可以理解為強(qiáng)行讓
這個(gè)逆矩陣存在。那就是~~
直接加入一個(gè)帶權(quán)重的單位矩陣就好了。
3. 至于什么是ill condition 和condition number,等我后續(xù)有空了更新,或者大家自己搜一搜吧~我懶。