微積分 chain rule的問題

2014-12-28 6:24 am
如圖http://ipicbox.tw/p/aWQ9T184WE9URVg=&b=user

圖中的A是一個矩陣,x b 是一個向量

我想請問為什麼chain rule的值不是

2*(Ax-b)*(d(Ax-b)/dx)

問題出自於http://www.csie.ntnu.edu.tw/~u91029/Regression.html

感謝各位大神
更新1:

感謝大大詳細的回答 不過用chain rule的方式還是比較簡單易懂八 只要能搞懂chain rule的值為什麼不是2*(Ax-b)*(d(Ax-b)/dx) 其他就很好懂 不知道這是針對矩陣才有的公式還是什麼 感謝

更新2:

看來要了解chain rule也挺困難的樣子~"~

回答 (4)

2014-12-28 10:09 am
✔ 最佳答案
首先讓我們令


圖片參考:https://s.yimg.com/rk/AE03766702/o/1807966346.gif


其中


圖片參考:https://s.yimg.com/rk/AE03766702/o/340215291.gif

再來(Ax-b)^2應當理解為(Ax-b)^T*(Ax-b),因此


圖片參考:https://s.yimg.com/rk/AE03766702/o/883097658.gif


如果上式有最小值,也就是0時,則每一個
圖片參考:https://s.yimg.com/rk/AE03766702/o/96008599.gif
都等於0。換句話說,Ax=b。

而偏微分方程式


圖片參考:https://s.yimg.com/rk/AE03766702/o/910886226.gif


也應該視為對所有的 i=1,2,...,n 都有


圖片參考:https://s.yimg.com/rk/AE03766702/o/1980315467.gif


因為矩陣不能當做偏微分當中的變數。因此這實則為n個聯立方程式。

展開(Ax-b)^T*(Ax-b)得


圖片參考:https://s.yimg.com/rk/AE03766702/o/1555896723.gif


我們再令


圖片參考:https://s.yimg.com/rk/AE03766702/o/1439147972.gif


其中
圖片參考:https://s.yimg.com/rk/AE03766702/o/440485581.gif
代表第i個元素是1其餘都是0的n*1向量。
偏微分後得到


圖片參考:https://s.yimg.com/rk/AE03766702/o/1184054100.gif


圖片參考:https://s.yimg.com/rk/AE03766702/o/1577420717.gif


圖片參考:https://s.yimg.com/rk/AE03766702/o/526379760.gif


因為上式各項均是純量,而轉置的純量等於自身,因此有


圖片參考:https://s.yimg.com/rk/AE03766702/o/1990500605.gif


圖片參考:https://s.yimg.com/rk/AE03766702/o/781305817.gif


圖片參考:https://s.yimg.com/rk/AE03766702/o/491126679.gif


圖片參考:https://s.yimg.com/rk/AE03766702/o/294221484.gif


圖片參考:https://s.yimg.com/rk/AE03766702/o/522876105.gif


圖片參考:https://s.yimg.com/rk/AE03766702/o/1760664994.gif


由於上式是對於所有的i=1,2,...,n都成立,因此我們有


圖片參考:https://s.yimg.com/rk/AE03766702/o/7166361.gif


2014-12-28 02:10:29 補充:
將1_i改寫成e_i會是更通俗的寫法

沒有注意這一點請包含,謝謝。

2014-12-31 14:45:35 補充:
後來我發現其實有存在矩陣微分,因此向量或矩陣其實可以當作微分的自變數
可以參考如下的網頁:
https://ccjou.wordpress.com/2013/05/31/%E7%9F%A9%E9%99%A3%E5%B0%8E%E6%95%B8/
研究之後再補充給你更完整的解答
-----------------------------------------------------
首先由於補充無法打出數學式,因此我用 A' 來代表A的轉置矩陣,並且以下的微分符號都是偏微分符號
設 x , b 都是n維向量,A 是m*n的矩陣,求d[(Ax-b)'(Ax-b)]/dx

2014-12-31 14:54:14 補充:
(更正:b是m微向量)
設m維向量 u=Ax-b ,那麼偏微分變成 d(u'*u)/dx
用恆等式(SV-6)
d(u'*u)/dx=(du/dx)u+(du/dx)u=2(du/dx)u
再用恆等式(V V-1)和(V V-3)
du/dx=d(Ax-b)/dx=d(Ax)/dx=A'
所以我們得到
d[(Ax-b)'(Ax-b)]/dx=2A'(Ax-b)
2014-12-31 6:44 am
九卅休閒特區 官方網 http://ts777.cc 免費 註冊 體驗

彩球 - bingo、三星彩、四星彩、539、六合、KENO彩、威力彩等各國彩球遊戲

體育 -- 世界各國籃球(NBA)、棒球(MLB)、網球、冰球、足球等遊戲

電子 機台 -- 5PK、水果盤、7 PK、金瓶梅、趙雲救主等復古 遊戲

真人 遊戲 -- 骰寶、翻攤、龍虎、百家樂、三公、21點、輪盤等現場及手臂 遊戲

對戰 GAME -- 麻將、大老二、德州撲克、暗棋、接龍、五 子棋、鬥地主等真 人競技 遊戲

歡迎 加入 會員

九州體育場 官方 TS777.CC 免費 加入試玩
2014-12-29 1:16 am
所引第一個網址(圖)的演算式寫得很糟, 甚至應說是錯的!


A, x, b 是矩陣, (Ax-b) 是矩陣或向量, 除非 Ax-b 是方陣, 否則根本不能算
(Ax-b)^2, 遑論極小化?

2014-12-28 17:17:03 補充:
最小平方法是要 fit data points (X_i,y_i), i=1,...,n 到一個線性方程式, 其中
X_i 是一個向量. 明確的表示, 就是要用線性函數 y = α+β_1 x_1+...+β_p x_p
去 approximate 那些資料點 (x_{1i},...,x_{pi},y_i). 而最佳化準則是要求
minimize Σ_i [y_i - (α+β_1 x_{1i}+...+β_p x_{pi})]^2.

2014-12-28 17:17:27 補充:
用矩陣表示, 是要 minimize (y-Xb)'(y-Xb), 其中 (y-Xb)' 是 (y-Xb) 的轉置,
而 b = (α,β_1,...,β_p)', y = (y_1,...,y_n)', A 是常數 1 及諸 x_{ji} 構成的
n×(p+1) 矩陣.

用微分法, 以矩陣表示, 是找 (∂/∂b)(y-Xb)'(y-Xb) = 0 的 b 值. 事實上用
微積分課程中頓用的符號, 以 b 為自變數, 是找 ▽ (y-Xb)'(y-Xb) = 0
所對應的 b 值.

2014-12-28 17:17:39 補充:
想用 chain rule, 須知 y-Xb 是 b 的向量值函數, 因此, 要正確應用這公式,
必須適當指定向量值函數對向量值自變數的微分符號, 而且 chain rule 中
相乘的兩項順序是要注意的.

令 z = y-Xb, 則 ∂z/∂b = -X'.
又 (∂/∂z)(z'z) = 2z

所以
(∂/∂b)(y-Xb)'(y-Xb) = (∂z/∂b) (∂/∂z)(z'z) = -X'(2z) = -2X'(y-Xb).

2014-12-28 17:24:21 補充:
為什麼 z = y-Xb, 則 ∂z/∂b = -X' ?

考慮 z 之第 i 個成員, 一般寫成 z_i = y_i - (X_i)'b,
z_i 對 b 之微分, 即是 z_i 的梯度向量, 以行向量表示, 是 - X_i.


(∂/∂b)(z_i) 是 ∂z/∂b 的 i'th column.

2014-12-29 14:50:59 補充:
用原來的符號, 是
(∂/∂x)(Ax-b)'(Ax-b) = (∂/∂x)(Ax-b).2(Ax-b) = A'.2(Ax-b) = 2A'(Ax-b).

注意在 y = f(G(x)) = f(u) 關係 (假設 y 是實數值, u = G(x) 是向量值)
之中, 連鎖律是:
∂y/∂x = (∂u/∂x)(∂y/∂u)
而且 ∂u/∂x 是一個矩陣, 其 i'th column 即 u 之 i'th component 對
x 之梯度(行向量).

2014-12-29 14:57:55 補充:
設 y = f(G(x)) = f(u) (u = G(x) 是向量值)

若 x in R^n, u in R^m, y in R, 則
∂y/∂x 是 n-dimensional,
∂u/∂x 是 n×m matrix (m 個 columns 對應 u 的 m 個 components),
∂y/∂u 是 m-dimensional.

所以連鎖律是:
∂y/∂x = (∂u/∂x)(∂y/∂u)
這樣 dimension 才符合.
2014-12-29 12:21 am
2*(Ax-b)*(d(Ax-b)/dx)不對

2*(Ax-b)^T*(d(Ax-b)/dx)就對了
因為:
2*(Ax-b)^T*(d(Ax-b)/dx)
=2(Ax-b)^T*A……(1)
2*d(Ax-b)^T/dx*(Ax-b)
2*A^T*(Ax-b)……(2)
(1)^T
=[2(Ax-b)^T*A]^T
=2*A^T*(Ax-b)
=(2)
矩陣(1)為矩陣(2)的轉置矩陣,寫法不同,效果相同,
沒有甚麼不可以。


收錄日期: 2021-05-04 01:57:35
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20141227000010KK03633

檢視 Wayback Machine 備份