日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

线性最小二乘法推导

發布時間:2024/4/17 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线性最小二乘法推导 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

代數形式

最小二乘法在中學時講過。有一些散點有線性的趨勢,用一個一次函數去擬合,使得差距最小化。

假設數據點為 \((x_1, y_1), (x_2, y_2),\dots,(x_m, y_m)\) ,使用如下一次函數去擬合:

\[ y = w_1 x + w_0 \]

對于 \(x_i\) ,采用上述函數計算出的結果記為 \(\hat{y_i}\) ,即:

\[ \hat{y_i} = w_1 x_i+w_0 \]

定義差距為:

\[ \sum_{i=1}^m (y_i - \hat{y_i})^2 \]

現需要最小化這個差距。顯然,上式為關于 \(w_0\)\(w_1\) 的函數(損失函數)。為了方便,將 \(\sum\limits_{i=1}^m\) 簡記為 \(\sum\) ,記:

\[ \begin{split} f(w_0, w_1) &= \sum (y_i - \hat{y_i})^2 \\ &= \sum (y_i - (w_1 x_i + w_0))^2 \\ &= \sum (y_i^2 - 2y_ix_iw_1 - 2y_iw_0 + x_i^2w_1^2 + w_0^2 + 2x_iw_0w_1) \\ \end{split} \]

分別對 \(w_0, w_1\) 求偏導:

\[ \begin{split} \frac {\partial f} {\partial w_0} &= \sum (-2y_i + 2w_0 + 2x_iw_1) \\ &= -2 \sum {y_i} + 2mw_0 + 2w_1 \sum {x_i} \\ \frac {\partial f} {\partial w_1} &= \sum (-2x_iy_i + 2x_i^2w_1 + 2w_0x_i) \\ &= -2\sum{x_iy_i} + 2w_1\sum {x_i^2} + 2w_0\sum {x_i} \\ \end{split} \]

令:

\[ \begin{split} \frac {\partial f} {\partial w_0} &= 0 \\ \frac {\partial f} {\partial w_1} &= 0 \\ \end{split} \]

得:

\[ \begin{split} mw_0 + w_1\sum{x_i} &= \sum{y_i} \\ w_1\sum{x_i^2} + w_0\sum{x_i} &= \sum{x_i}{y_i} \\ \end{split} \]

聯立上面兩式可得:

\[ \begin{split} w_0 &= \frac {\sum{x_i}\sum{x_i y_i} - \sum{y_i}\sum{x_i^2}} {(\sum{x_i})^2 - m\sum{x_i^2}} \\ w_1 &= \frac {\sum{x_i}\sum{y_i} - m\sum{x_i y_i}} {(\sum{x_i})^2 - m\sum{x_i^2}} \\ \end{split} \]

注意, \(\sum{x_i^2} \ne (\sum{x_i})^2\) ,計算時要細心。

矩陣形式

\(\mathbf{X}\)\(m\times n\) 的矩陣,表示有 \(m\) 個樣本點,特征維數為 \(n\) 維; \(\mathbf{y}\)\(m\) 維列向量,表示這 \(m\) 個樣本點的實際值; \(\mathbf{\hat{y}}\)\(m\) 維列向量,表示這 \(m\) 個樣本點的估計值; \(\mathbf{w}\)\(n\) 維列向量,且:

\[ \mathbf{\hat{y}} = \mathbf{X}\mathbf{w} \]

則:

\[ \mathbf{y} - \mathbf{\hat{y}} = \mathbf{y} - \mathbf{X}\mathbf{w} \]

上式的結果是一個列向量,而我們需要的是其平方和。根據矩陣乘法的定義,損失函數為:

\[ f(\mathbf{w}) = (\mathbf{y} - \mathbf{X}\mathbf{w})^{\rm T}(\mathbf{y} - \mathbf{X}\mathbf{w}) \]

現要求 \(\frac {\partial f} {\partial \mathbf{w}}\) ,可 \(\mathbf{w}\) 是個向量呀,這個該怎么求呢?

預備知識

【實數值函數對向量求導】

\[ \frac {\partial f} {\partial \mathbf{x}} = \begin{bmatrix} \frac{\partial f}{x_1} & \frac{\partial f}{x_2} & \dots & \frac{\partial f}{x_n} \\ \end{bmatrix} \]
其中, \(\mathbf{x}= \left[x_1, x_2, \dots, x_n\right]^{\rm T}\)\(n\) 維列向量, \(f\)\(\mathbf{x}\)\(\Re^n \to \Re\) 的函數(也就是, \(f\) 的輸入是 \(n\) 維列向量,輸出是實數)

【向量值函數對向量求導】

\[ \frac {\partial \mathbf{y}} {\partial \mathbf{x}} = \begin{bmatrix} \frac{\partial{y_1}}{\partial x_1} & \frac{\partial{y_1}}{\partial x_2} & \dots & \frac{\partial{y_1}}{\partial x_n} \\ \frac{\partial{y_2}}{\partial x_1} & \frac{\partial{y_2}}{\partial x_2} & \dots & \frac{\partial{y_2}}{\partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial{y_m}}{\partial x_1} & \frac{\partial{y_m}}{\partial x_2} & \dots & \frac{\partial{y_m}}{\partial x_n} \\ \end{bmatrix} \]

即:

\[ (\frac {\partial \mathbf{y}} {\partial \mathbf{x}})_{ij} = \frac{\partial{y_i}}{\partial x_j} \]

其中, \(\mathbf{x}= \left[x_1, x_2, \dots, x_n\right]^{\rm T}\)\(n\) 維列向量, \(\mathbf{y}\) 是定義在 \(\mathbf{x}\)\(\Re^n \to \Re^m\) 的函數(也就是, \(\mathbf{y}\) 的輸入是 \(n\) 維列向量,輸出是 \(m\) 維列向量),上面的矩陣稱為雅可比(Jacobi)矩陣

【鏈式求導】

\(\mathbf{x}\) 為列向量,復合函數 \(\mathbf{h(\mathbf{x}) = \mathbf{f(\mathbf{g(\mathbf{x})})}}\) ,其中向量值函數(也就是函數的值域是向量) \(\mathbf{f(\mathbf{g})}\)\(\mathbf{g(\mathbf{x})}\) 均可微,則:

\[ \mathbf{h}^\prime(\mathbf{x}) = \mathbf{f}^\prime(\mathbf{g(\mathbf{x})})\mathbf{g}^\prime(\mathbf{x}) \]

和代數形式的鏈式求導類似。

計算過程

\(\mathbf{u(\mathbf{w})} = \mathbf{y} - \mathbf{X}\mathbf{w}\) ,則:

\[ \begin{split} f &= \mathbf{u}^{\rm T} \mathbf{u} \\ &= \sum\nolimits_i {u_i^2} \\ \end{split} \]

\[ \begin{split} \frac {\partial f} {\partial \mathbf{u}} &= \begin{bmatrix} \frac {\partial {\sum\nolimits_i {u_i^2}}} {\partial {u_1}} & \frac {\partial {\sum\nolimits_i {u_i^2}}} {\partial {u_2}} & \dots & \frac {\partial {\sum\nolimits_i {u_i^2}}} {\partial {u_i}} \\ \end{bmatrix} \\ &= \begin{bmatrix} 2u_1 & 2u_2 & \dots & 2u_i \end{bmatrix} \\ &= 2 \begin{bmatrix} u_1 & u_2 & \dots & u_i \end{bmatrix} = 2 \mathbf{u}^{\rm T}\\ \end{split} \]

\[ \begin{split} \mathbf{u} &= \mathbf{y} - \mathbf{X}\mathbf{w} \\ &= \begin{bmatrix} y_1 \\ y_2 \\ \vdots \\ y_m \\ \end{bmatrix} - \begin{bmatrix} x_{11} & x_{12} & \dots & x_{1n} \\ x_{21} & x_{22} & \dots & x_{2n} \\ \vdots & \vdots & \ddots & \vdots \\ x_{m1} & x_{m2} & \dots & x_{mn} \\ \end{bmatrix} \begin{bmatrix} w_1 \\ w_2 \\ \vdots \\ w_n \\ \end{bmatrix} \\ &= \begin{bmatrix} y_1 - \sum {x_{1i}w_i} \\ y_2 - \sum {x_{2i}w_i} \\ \vdots \\ y_m - \sum {x_{mi}w_i} \\ \end{bmatrix} \\ \end{split} \]

\[ \begin{split} (\frac{\partial {\mathbf{u}}}{\partial {\mathbf{w}}})_{ij} &= \frac{\partial u_i}{\partial w_j} \\ &= \frac{\partial (y_i - (x_{i1}w_1 + x_{i2}w_2 + \dots + x_{in}w_n))}{\partial w_j} \\ &= -x_{ij} \end{split} \]

\[ \frac{\partial \mathbf{u}}{\partial \mathbf{w}} = - \mathbf{X} \]

使用鏈式求導:

\[ \begin{split} \frac {\partial f} {\partial {\mathbf{w}}} &= \frac {\partial f} {\partial \mathbf{u}} \frac {\partial \mathbf{u}} {\partial \mathbf{w}} \\ &= 2 \mathbf{u}^{\rm T} (- \mathbf{X}) \\ &= -2(\mathbf{y} - \mathbf{X}\mathbf{w})^{\rm T}\mathbf{X} \\ &= -2 (\mathbf{y}^{\rm T} - (\mathbf{X}\mathbf{w})^{\rm T})\mathbf{X} \\ &= -2 (\mathbf{y}^{\rm T} - \mathbf{w}^{\rm T}\mathbf{X}^{\rm T}) \mathbf{X} \\ &= -2 (\mathbf{y}^{\rm T}\mathbf{X} - \mathbf{w}^{\rm T}\mathbf{X}^{\rm T}\mathbf{X}) \end{split} \]

令:

\[ \frac{\partial f}{\partial \mathbf{w}} = \mathbf{0} \]

得:

\[ \mathbf{w}^{\rm T}\mathbf{X}^{\rm T}\mathbf{X} = \mathbf{y}^{\rm T}\mathbf{X} \]

\(\mathbf{X}^{\rm T}\mathbf{X}\) 可逆,則兩邊同時右乘 \((\mathbf{X}^{\rm T}\mathbf{X})^{-1}\) ,得:

\[ \mathbf{w}^{\rm T} = \mathbf{y}^{\rm T}\mathbf{X}(\mathbf{X}^{\rm T}\mathbf{X})^{-1} \]

兩邊同時轉置:

\[ \begin{split} \mathbf{w} &= (\mathbf{y}^{\rm T}\mathbf{X}(\mathbf{X}^{\rm T}\mathbf{X})^{-1})^{\rm T} \\ &= ((\mathbf{X}^{\rm T}\mathbf{X})^{-1})^{\rm T}\mathbf{X}^{\rm T}(\mathbf{y}^{\rm T})^{\rm T} \\ &= ((\mathbf{X}^{\rm T}\mathbf{X})^{\rm T})^{-1}\mathbf{X}^{\rm T}\mathbf{y} \\ &= (\mathbf{X}^{\rm T}(\mathbf{X}^{\rm T})^{\rm T})^{-1}\mathbf{X}^{\rm T}\mathbf{y} \\ &= (\mathbf{X}^{\rm T}\mathbf{X})^{-1}\mathbf{X}^{\rm T}\mathbf{y} \\ \end{split} \]

轉載于:https://www.cnblogs.com/jlice/p/9276714.html

總結

以上是生活随笔為你收集整理的线性最小二乘法推导的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。