back to index
Linear Algebra Lecture 30: Orthogonal Projection

link |
整理&字幕由Amara.org社區提供
link |
整理&字幕由Amara.org社區提供
link |
隨便給你一個vector set S,接下來你把所有跟這一個vector set裡面的所有的vector都orthogonal的那個vector找出來,那你會形成一個新的vector set,形成一個vector的集合,這個vector我們就寫做S的perp。
link |
這樣講也許你沒有聽得很懂,如果試著列出來就是這個樣子。
link |
有一個vector set S,裡面有一堆vector u,我們現在找出所有的vector v,這些vector v它們有什麼共通的特性呢?
link |
它們共通的特性就是你把v跟所有的u做double product以後會等於零,你把v跟每一個u做double product以後通通都等於零,把這些跟u做double product以後等於零的v通通集合起來,你得到的就是S的perp。
link |
舉例來說,在二維平面上,假設你有一個vector set,這個vector set裡面的vector都落在w這一個subspace裡面,我們假設w就是一條線,那它上面的vector就都是在這個w裡面,然後假設有一個vector set叫做w。
link |
那跟w垂直的那個vector set,也就是w的perp,它就是跟w這個方向垂直的這個向量所形成的subspace,這個w就是wperp。
link |
那今天假如我們說有一個vector set,這個vector set就是rn,就是整個rn這個vector space,那S的perp是什麼呢?S的perp就是zero vector,因為只有zero vector才會跟所有rn裡面的vector做double product以後都是零。
link |
那反過來說,假設我們現在的vector set是zero vector,假設我們現在考慮的vector set裡面只有一個vector,它就是zero vector。
link |
那這一個zero vector,它的perp是什麼呢?這個zero vector,它的perp就是所有的vector,因為每一個vector跟zero vector做double product以後都是零。所以假設你現在考慮的vector set S是zero vector,是只有zero vector,那S的perp就是整個rn,就是所有的vector。
link |
那這邊再舉一個例子,假設有一個vector set叫做w,那w是什麼呢?現在我們考慮的vector是三維的vector,那w是什麼呢?
link |
w是xy平面,就只有x跟y有值,只有x走第一維跟第二維有值,第三維固定都是零。
link |
那w的perp是什麼呢?那你這邊可以先很直覺的想一下,如果現在有一個三維空間的平面,那w是xy這個平面。
link |
那w的perp是什麼呢?w的perp顯然就是z軸,對不對?z軸上面的每一個vector,假設這個是z軸,我不知道我這樣畫你看不看得出來,這個是z軸,那z軸上面的每一個vector都跟xy平面上的每一個vector做double product以後顯然都是零。
link |
所以今天假設w是xy平面的話,w的perp我們就寫一個倒過來的釘子的符號,這樣你手放在上面就會被扎到,倒過來的釘子的符號就叫做perp。
link |
那w的perp是什麼呢?w的perp就是z軸。
link |
這個東西怎麼證呢?這個東西怎麼證呢?在證明的時候,你可以就先證說,假設這個v就是z軸,那你先證v一定包含在w的perp裡面,再證說w的perp一定包含在v裡面。
link |
然後因為v包含在w的perp裡面,w的perp也包含在v裡面,所以v會等於w,所以v也就是z軸就是w的perp。
link |
那這件事情怎麼證呢?你可以輕易的證明說,v裡面所有的vector都跟w裡面所有的vector做double product以後會等於零。
link |
我剛剛好像點到一個放大鏡的功能,這個v裡面所有的vector跟w裡面所有的vector做double product以後顯然是零,所以v裡面的每一個成員都包含在w的perp裡面。
link |
但這並不能夠保證v就一定等於w的perp,為什麼呢?因為也許還有一些其他的vector跟w裡面所有的成員做double product以後也是零,只是我們還沒有找到,你沒有想到它是什麼。
link |
也許在z軸之外還有其他的vector,它跟w裡面所有的成員做double product以後都是零,只是你現在一時還沒有想到,所以接下來要證的是說,w的perp其實是包含在v裡面的。
link |
那怎麼證w的perp是包含在v裡面呢?接下來你就是要說,現在我們從w的這個set裡面選出兩個vector,就是e1跟e2。
link |
假設你要找出某一個vector z,它的三個維度是z1、z2、z3,它跟e1跟e2做double product以後要是零,那你會需要z1等於零、z2等於零,也就是z必須要是一個在z座標上的vector,它才能夠跟e1跟e2都做double product等於零。
link |
這個只要求跟e1跟e2做double product等於零,這個條件是比perp還要寬鬆的。假設今天z是w的perp的一個成員,那它需要不只跟e1、e2做double product以後等於零,它要跟所有w裡面的vector做double product以後都等於零。
link |
現在假設我們要求只跟e1跟e2做double product等於零,那你就發現說要跟e1、e2做double product等於零,哪些vector跟e1、e2做double product等於零呢?能滿足這個條件的只有在b裡面的成員,所以代表說這個w的perp是比b又還要小的,w的perp是包含在b裡面的。
link |
所以綜合這兩點說明,你就可以說w是等於b的。
link |
再來就是講一些osagno complement的性質。第一個就是,我們剛好強調說s它不見得是一個subspace,我用sub來表示subspace就好,它不一定是一個subspace。
link |
但是s的perp它一定會是一個subspace嗎?覺得它一定會是subspace的同學舉手一下。
link |
手放下來,覺得它不一定是subspace的同學舉手一下。沒有,沒錯,它確實一定是一個subspace,所以這個是圈,它一定是一個subspace。那這個就不需要證明,你就用subspace的特性帶進去看看有沒有符合,你會發現說就算s不是一個subspace,s的perp它仍然是一個subspace。
link |
那這邊是說任何vector set s的perp會等於它的span的perp,就是s是一個vector set。
link |
假設你把這個vector set s做span,你會得到另外一個vector set,當然這個新的vector set,這個span s這個東西它會是一個subspace,對不對,這個我想大家應該沒有問題吧,span s會是一個subspace。
link |
那你會發現說s的perp跟span s的perp它們是一樣的,它們是一樣的。那這個也是比較直覺的,所以我們就不證這個東西。
link |
接下來,如果w是一個subspace,那b是w的basis,b是w的basis的意思是說,你把b做span,我把span寫出來,你把b做span會等於w。
link |
那這個時候,按照我們剛才在上面,在這個綠色的框框裡面所講過的東西,b的perp會是w的perp。
link |
所以一個subspace,它的perp會等於它的basis的perp。那最後呢,s跟s的perp,它們的交集是什麼呢?它們的交集是什麼呢?它們的交集其實就是zero vector。
link |
那這件事情其實非常容易證明,為什麼?因為假設有某一個vector u,它屬於s,它也屬於s的perp。
link |
那意味著什麼呢?意味著我們剛才說,sperp裡面的成員有什麼樣的特性,就是它跟s裡面每一個vector做搭發達都是0。
link |
所以我們現在知道說,u跟u自己跟自己做搭發達必須要是0。u跟u自己跟自己做搭發達必須要是0。
link |
然後在講搭發達特性的時候,我們已經講過說,一個vector如果自己跟自己做搭發達等於0的話,代表這個vector是zero vector。
link |
所以s跟s的perp,它們的交集是什麼?哪一個誰可以共同出現在s跟s的perp裡面呢?只有zero vector可以做到這件事情,只有zero vector可以同時存在這兩個vector set裡面。
link |
這邊就是給一個orthogonal complement的例子,假設說我們現在有兩個vector u1跟u2,你把u1跟u2做set,你就得到w。
link |
那今天orthogonal complement,也就是wperp裡面的成員,它一定滿足什麼特性呢?如果v屬於wperp的話,那v跟u1做搭發達,v跟u2做搭發達一定會等於0。
link |
那我們現在要怎麼把這些v通通都找出來呢?我們要怎麼把這些v通通都找出來呢?假設我們現在把v這個vector把它完整的寫出來,它裡面有四個component,四個element,就是x1、x2、x3、x4。
link |
現在把x1、x2、x3、x4跟u1做搭發達,也就是把x乘上1、x2乘上1、x3乘上-1、x4乘上4,x1加x2減x3加上4倍的x4一定會等於0。
link |
那你把這個vector跟這個vector做搭發達,也就是x1減x2加x3加2倍的x4也一定會等於0。
link |
然後接下來呢,你就可以解這個System of Linear Equations,因為左邊這個東西是一個System of Linear Equations,你就可以解出這個System of Linear Equations,
link |
發現說,找出它的這個parametric representation,發現它長這個樣子。所以你就會知道說,w的perp長什麼樣子呢?
link |
這個w的perp啊,它這個subspace啊,它的basis就是0,1,1,0跟-3,-1,0,1,就這兩個vector,就是wperp的basis,就這樣。
link |
那你也可以說,假設我們把U1跟U2視為是一個matrix A,把U1、U2當作是這個matrix A的兩個row,
link |
那這個AX等於0的這個System of Linear Equations,它的null space,它的solution就是w的perp。
link |
好,那也快下課了,在下課之前呢,也許這個比較複雜,我們就下次再講。那在下課之前,我們想要講一個很重要的事情,那至於為什麼會這個樣子,我們下次再解釋。
link |
那這個就會接到這個orthogonal的projection。這個重要的事情是什麼呢?這個重要的事情是這樣子的,這個w的perp,講perp這個東西到底有什麼重要性呢?
link |
你會發現說一個vector,每一個vector,它都可以拆解成兩個部分。就假設你隨便拿一個subspace w出來,然後呢,你拿出這個w以後,接下來你就會發現說,所有的vector,它都可以拆解成兩個部分。
link |
一個部分落在subspace w裡面,另外一個部分落在subspace w的perp裡面。每一個vector都可以拆解成兩部分,一部分在w裡面,一部分在w的perp裡面。
link |
而且這個拆解是唯一的。也就是說,假設以二維空間為例,假設你有一個vector是u,然後呢,你有一個subspace w,你有一個subspace w的perp,那u一定可以拆解成兩個向量加起來,其中一個向量落在w裡面,另外一個向量落在w的perp裡面。
link |
好,那因為時間到了,講到這邊正好,報一個段落,我們今天上課呢,就上到這邊。謝謝大家,謝謝。
link |
我們上週呢,講了什麼是orthogonal complement,那這週呢,就接下來呢,繼續講orthogonal complement其餘的部分。
link |
那上週呢,已經跟大家講了說,給了你一個vector的set,那你可以定義出另外一個vector的set,叫做,這個假設原來的vector的set呢,你叫做s,那這個s呢,你可以定義出一個s的perp。
link |
那這個s的perp呢,它不只是一個vector set,它還是一個subspace,在這個subspace裡面,每一個vector都跟原來的那個vector set s是orthogonal的。
link |
好,那這個呢,都是我們上週講過的內容。好,那上週呢,我們有講說這個sperp,它永遠都是一個subspace,然後我們還講了sperp的種種性質。
link |
舉例來說呢,這個某一個subspace w,它的perp呢,一定跟它的basis的perp是一樣的,然後我們說呢,某一個這個vector set s跟它的perp,它們中間的這個交集呢,只有zero vector而已。
link |
好,那這個也是一個我們上週看過的example。好,那我們上週呢,是講到這裡。
link |
好,那對任何一個matrix A來說啊,它的row space的perp,它這個對任何一個matrix A來說呢,它的這個row space的perp,就是這個matrix的null space。
link |
好,那這個其實是蠻直覺的,因為想想看哦,假設你有一個matrix A,你有一個matrix A,然後所謂的matrix A的row space呢,就是把這個matrix的每一個row,每一個row,每一個row拿出來做linear combination,就是row space。
link |
那我們知道所謂perp的定義就是,跟這一個vector set裡面的每一個vector都是orthogonal。
link |
所以,今天呢,假如有某一個vector,它落在row space的perp裡面,那意味著這個vector,我們今天就把它當作x好了,這個vector,我們說它叫做x。
link |
這個vector x呢,它跟這個matrix的每一個row相乘,做inner product都是0。
link |
也就是說,這一個vector跟這個matrix的每一個row,做inner product都是0。
link |
也就是說,這個vector跟這個matrix的每一個row都是orthogonal。
link |
也就是說,如果你把這個vector跟這個matrix做相乘,你得到的一定是一個0 vector,你得到的一定是一個0 vector。
link |
因為這個vector x呢,它跟matrix的每一個row都是orthogonal的,所以你把這個vector乘上這個matrix,你會得到0 vector。
link |
那這個vector,它就會屬於這個matrix的neural space,所以我們今天知道說呢,如果你把一個matrix的row space找它的perp,那它的perp就是這個matrix的neural space。
link |
好,那這邊呢,就是把剛才講過的事呢,再重複說明一下,假設呢,有一個vector v,它是屬於row a的perp的話,那意味著什麼事呢?
link |
意味著說,對所有在matrix a的row space裡面的vector w,w跟v呢,做double product都會等於0。
link |
那也就是說呢,如果你把這個vector v,在這個row space的perp裡面,這個vector v跟a相乘的話呢,會等於0。
link |
那意思就是說呢,這個vector v呢,是在a的neural space裡面的。
link |
好,那根據上面這一個想法呢,我們可以知道說,a的colon space的perp,會等於這個a的transpose的neural space。
link |
那為什麼呢?這個就非常的直覺,因為a的colon space等於a的transpose的row space,等於a的transpose的row space。
link |
那這個呢,我想就不需要說明,一個matrix的colon的linear combination,就是它的transpose以後的row的linear combination。
link |
所以matrix a的colon space,就是matrix a的transpose的row space。
link |
好,那如果你把a的transpose的row space取perp,那你得到的就會是a的transpose的neural space。
link |
因為我剛才說,如果你把a的row space取perp,是a的neural space,所以a的transpose取perp,a的transpose的row space取perp,會是a的transpose的neural space。
link |
好,那右邊這個呢,就只是把我們剛才講過的事再說明一次而已。
link |
好,那現在呢,要講一個非常重要的事情,這件事情非常重要,這件事情是什麼呢?
link |
假設隨便給你一個subspace w,那這個subspace w,它的dimension跟這個w的perp,它的dimension的和,一定會是n。
link |
也就是說呢,今天假設w這個subspace,它的dimension是k,那w的perp,它的dimension一定就是n-k,一定就是n-k。
link |
那w呢,它是Rn的一個subspace,所以它的dimension最大就是n,它的dimension其實不可能超過n,它的dimension最大就是n。
link |
那當w的dimension是n的時候呢,它的perp的dimension就是0。如果我們要舉幾個例子的話,其實非常容易舉,就非常直覺地說這件事情應該是對的。
link |
你想想看,在二維平面裡面,如果你有一個subspace是一條直線,那它的perp就是跟這一條直線垂直的方向,對不對?
link |
那我們知道說,在二維平面上,一條直線它的dimension是1,那跟它垂直的直線dimension是1,所以w跟w的perp,它們的dimension的和正好是2。
link |
或是如果你以三維空間做例子的話,在三維空間裡面,一個平面,它的dimension是2。
link |
那假設一個平面,我們知道平面就是一個subspace,這個subspace它的perp就是這個平面的法向量,對不對?
link |
那法向量是一條直線,所以它的dimension是1。所以平面的dimension是2,法向量的dimension是1,合起來正好是3。
link |
所以這件事情聽起來,感覺就是對的。或者你說,我們再舉一個例子,假設w它就是rn,假設w就是整個rn。
link |
那w的perp是什麼呢?假設w是所有n維的vector,那w的perp,其實我們上次有講過說顯然就是zero vector,
link |
因為只有zero vector跟所有的vector相乘起來會是0,所以就是zero vector。
link |
那rn的dimension是多少呢?rn的dimension是n,w的perp的dimension是多少呢?假設w的perp是zero vector的話,
link |
我們只有zero vector,就假設一個subspace只有zero vector,它的dimension是0,所以n加0也正好是0。
link |
那反過來說也是一樣,假設w是zero vector,那w的perp就是整個rn,它們的dimension合起來是0。
link |
所以你想好幾個例子都會覺得說,這件事情是對的。
link |
那如果要證明的話,其實用上面這些我們已經知道的東西,要來證明下面這件事情並沒有太過困難,我們就來想一下。
link |
好,那我們現在來想一下這個w的perp,它的dimension應該要是多少。
link |
我們來想一下這個w的perp,它的dimension應該要是多少。
link |
你想想看,今天我們假設w它有一個basis,它的basis我們就寫作b。
link |
然後這個b呢,它的這個column space,b的這個column space就等於w,column b就等於w。
link |
那b是一個什麼樣的matrix呢?假設這個subspace它的dimension是k的話,那b顯然就有k個vector。
link |
所以它是一個nxk的matrix,它是一個nxk的matrix。
link |
好,那今天我們知道說column b就是w,那column b的perp是什麼呢?column b的perp就是null b的perp。
link |
我把它寫在這裡好了,就是null b的perp。所以這個東西就是null b的perp。
link |
然後b的transpose,所以b的transpose是這樣,b的transpose會等於這樣。
link |
它是一個這個kxn的matrix,它是一個kxn的matrix。
link |
好,那這個wperp是null b的transpose,那null b的transpose它的dimension應該是多少呢?
link |
好,你就可以來想想看。我們來想想看,其實我們知道說b的transpose它的null space就是它的nullity,對不對?
link |
那你要知道nullity是多少,你只要知道b的transpose的rank是多少就好了。
link |
然後n減掉rank就是nullity。那你怎麼知道btranspose的rank是多少呢?
link |
那你記不記得有一個很神奇的事情就是b的transpose跟b的rank是一樣。
link |
所以這個它的rank跟它的rank是一樣。那b的rank又是多少呢?
link |
b的rank就是k,也就是說rank b的transpose就是k。
link |
為什麼呢?因為你想想看,b是一個basis,basis裡面的vector都是independent的,所以今天b的k的colon都是independent。
link |
那rank是什麼?rank就是有幾個independent的vector,幾個independent的colon,所以b的rank就是k。
link |
b的rank又等於b的transpose的rank,所以b的transpose的rank就是k。
link |
然後所以我們知道說b的transpose的rank既然是k,它的nullity是多少呢?就是n減k,對不對?
link |
就是colon的數目減掉rank的數目就是n減k。
link |
那我們已經假設這個w的dimension就是k,那wperp的dimension是n減k,所以它們的和就是n。
link |
那這邊這一段是要跟你說明說,w跟w的perp,它們的dimension的和是n。
link |
那如果你這個地方你沒有辦法聽得很懂的話也沒有關係,你就把它記起來。
link |
這件事情非常的直覺,你舉幾個例子就會發現說它顯然是對的。
link |
好,那我們現在學到說對任何一個subspace w而言,這個subspace的dimension跟它的perp的dimension的和正好會是n。
link |
那接下來要告訴你的事情是說,假設我們把w的basis找出來,就是w1到wk。
link |
假設我們把wperp的basis找出來,就是z1到zn減k,因為我們知道說w的dimension是k,wperp的dimension是n減k。
link |
所以w的basis裡面有n個vector,wperp的basis裡面有n減k個vector。
link |
而如果我們把這k個vector跟這n減k個vector把它組合起來,它就會變成一個basis。
link |
它會變成一個什麼樣的basis呢?它會變成整個Rn的basis。
link |
這件事情要怎麼證呢?這邊你需要做的證明就是,你唯一需要證的東西就是,
link |
如果我們把左邊這k個vector跟右邊這n減k個vector放在一起,集合在一起,變成n個vector,
link |
這n個vector必須是independent的,如果它們是independent的,它就是整個Rn的basis。
link |
我們之前有說過說,你怎麼知道一個vector set是不是某一個subspace的basis?
link |
首先這個vector set的數目要正好等於dimension的數目。
link |
如果這個vector set的數目正好等於dimension的數目,它又都是independent的,那它就是一個basis。
link |
我們現在唯一需要講的就是,這個W1到Wk,還有Z1到Zn-k,它們是不是independent的呢?
link |
那怎麼說它們是不是independent的呢?其實如果你今天要做一個證明,
link |
有人要你證說一個vector set是不是independent的時候,假設你沒有什麼特別厲害的想法,
link |
所以如果你要證說這些vector set是independent的,那從定義來的話,
link |
意思就是說,今天如果你有一個比如說A1W1加A2W2一直加到AkWk,
link |
然後加上B1Z1,加上B2Z2,一直加到Zn-k,等於0的時候,
link |
就是如果這些vector set,這些vector做一點combination等於0的時候,
link |
代表說這些係數A,這些係數B,也一定都會等於0。
link |
證明這件事,你就可以證明它們是不是independent。
link |
那這個怎麼證呢?這個怎麼證呢?你可能有不同的想法,
link |
那我這邊是這樣想,我們把這個東西挪到右邊去,
link |
所以我們知道說A1W1加A2W2會等於負的B1Z1加B2Z2,等等,點點點。
link |
好,然後接下來,我們會發現說,我們可以怎麼說呢?
link |
我們可以說這個vector,它屬於W-curve,這件事沒有問題嘛,對不對?
link |
因為Z是W-curve的位置,你把Z做linear combination,當然是屬於W-curve,
link |
這沒有什麼問題。但是同時,同時它還是屬於W,
link |
為什麼它同時也是屬於W呢?因為你把這個vector,
link |
它其實是W1到Wk的linear combination再取一個負號,對不對?
link |
那你把W裡面的某一個vector,你把W1到Wk做linear combination,
link |
它在W裡面,再把它取一個負號,它還在W裡面,所以它屬於W。
link |
那我們前面說過說,什麼樣的vector會同時既屬於W又屬於W-curve呢?
link |
只有zero vector才辦得到這件事。所以這個vector,它就是zero vector,
link |
它就是等於零,所以這告訴我們說,W1到Wk,
link |
它們做linear combination,等於零。
link |
如果這一件事情成立,那這一項一定要等於零,
link |
這一項等於零意味著什麼?我們已經知道說W1到Wk,
link |
它是independent的,所以這告訴我們說,A1等於A2等於Ak等於0這樣。
link |
然後用同樣的方法,就一模一樣的做法,
link |
就是你現在把W跟Z,A跟B的那個角色對調,
link |
你馬上就可以知道說,B1等於B2到Bn-k等於0。
link |
所以今天你把W1到Wk跟Z1到Zn-k同時集合起來,
link |
你想要拍沒有問題,同時集合起來,它們會是independent的。
link |
所以今天這個有趣的地方就是說,這個W1到Wk它們是independent的,
link |
Z1到Zn-k是independent的,兩個independent的再組合起來,不一定會是independent的。
link |
但是今天如果一個是W的basis,一個是Wperp的basis,
link |
組起來就是independent的,就這樣。
link |
好,那如果W跟Wperp,它們的basis通通拿出來,
link |
可以變成Rn的basis,那意味著什麼?
link |
這意味著說你隨便拿任何一個Rn裡面的vector u出來,
link |
我們現在找到了一個Rn的basis,這個Rn的basis就是W1,W2到Wk,
link |
然後這個Z1,Z2到Zn-k,這個東西就是Rn的basis,這是一個basis。
link |
所以任何Rn裡面的vector,任何u屬於Rn,都可以寫成這個basis的linear combination。
link |
所以u一定可以寫成C1W1加C2W2加到CkWk,然後這邊我們繼續用Ck加1,Z1,我寫個加號,加上Ck加2,Z2,
link |
加下去一直加到Cn,然後Zn-k,這樣子。
link |
然後接下來,你把前面用W做linear combination的部分拿出來,
link |
這一項一定是落在W裡面,因為它是W的basis,vector的linear combination。
link |
然後下面這一項,它一定落在W的perp裡面,它一定落在Wperp裡面,因為它是Wperp的basis的linear combination。
link |
所以u就一定可以拆解成W加Z,W是在W這個subspace裡面,Z是在Wperp的subspace裡面。
link |
然後這個拆解是唯一的。為什麼這個拆解是唯一的?因為今天W跟Z,W1到Wk,Z1到Zn-k,它是個basic。
link |
所以你這些係數C1到Cn,它是唯一的,它是unique的。
link |
所以你的拆解出來的W跟Z,它當然是unique。
link |
所以今天我們得到一個很重要的事情,今天隨便拿一個vector出來,它都可以拆解成落在W的subspace裡面的部分跟落在Wperp裡面的部分。
link |
落在W裡面的部分跟落在Wperp裡面的部分,而這個拆解是唯一的。
link |
好,那接下來我們就要進入orthogonal projection。
link |
orthogonal projection是什麼意思呢?orthogonal projection的意思就是說,我們現在拿出一個subspace,在這個圖上就是這個藍色的平面,藍色的空間,它是一個subspace。
link |
我們說每一個vector U,它都可以拆解成在subspace上的部分跟在subspace的perp的部分。當我們把一個U裡面屬於W的部分把它找出來,
link |
這件事情這個operation就叫做orthogonal projection。所以給你一個U,你把它落在W裡面的部分找出來,這個叫做orthogonal projection。
link |
那orthogonal projection這件事情,你可以把它想成是一個operator,你可以把它想成是一個function。
link |
有一個function,它吃U當作input,然後它就會吃W當作輸出。所以你可以把orthogonal projection這件事情寫成一個function。
link |
這個function,你把U丟進去,然後它的輸出就會等於W。
link |
那這個function,我們有一個下標大W,為什麼這個function會需要一個下標大W呢?代表說,我們現在的subspace是大W。
link |
那如果subspace不一樣,大W當然就是不一樣的。這個orthogonal projection如果是不同的subspace,這個orthogonal projection的function當然是不一樣的。
link |
那這邊問大家一個問題,假設大W是固定的,我們就固定考慮某一個subspace,那orthogonal projection這件事情是linear的還是nonlinear的呢?
link |
想想看,用你對linear function的了解來思考一下。覺得它是linear的同學舉手一下。好,手放下,覺得它不是linear的同學舉手一下。
link |
好,沒有,沒錯,確實它是linear的。為什麼這個function是linear的呢?那orthogonal projection這件事情感覺好像很複雜,但它還是linear的,為什麼?
link |
如果我們把U乘上k倍,把U乘上k倍,W跟Z也就相應的都乘上k倍,也就都乘上k倍,那你就變成輸入乘k倍,輸出就乘k倍。
link |
所以它反滿足linear的其中一個multiplication的特性。那你說會不會U乘上k倍以後,W跟Z變了呢,變成有別的拆解方式呢?
link |
不會,因為拆解方式是唯一的。我今天既然已經知道說k乘上U可以拆解成kW加kZ,那就不會有別的拆解方式了,因為拆解方式就只有一種而已,它是unique的。
link |
那再來,如果我們看相加的部分,你說U1等於W1加Z1,然後U2等於W2加Z2,那你把它們相加以後會發生什麼事呢?
link |
如果你把U1跟U2相加的話,那你就會發現說,當你把U1跟U2相加的時候,屬於W的部分就會變成W1加W2。
link |
就你把U1跟U2相加,變成一個新的vector,屬於W的部分就變成W1加W2,屬於Z的部分,屬於W2的部分就變成Z1加Z2。
link |
那因為拆解是唯一的,你只要找到一種拆解方式就等於找到全部的拆解方式。那我們知道說linear的另外一個特性就是輸入相加要等於輸出相加,所以forgonal projection它是一個linear的function。
link |
好,那W有什麼樣的特性呢?W可以說是在W這個平面上最靠近U的一個vector。
link |
當然在高維空間中它不見得是個平面啦,但W這個subspace裡面有無窮無盡的vector,在這些無窮無盡的vector裡面,最靠近U的那個就是W,那等一下我們會來證明這件事情。
link |
那所謂的最靠近的意思是說,今天這兩個vector相減,它們的null是最小的,這個是最靠近的定義。
link |
好,那另外就是這個Z這個vector,它跟W裡面所有的vector都會是orthogonal,那這件事情是trivial,這個不用證明,因為Z它在W的perp裡面。
link |
那Z既然在W的perp裡面,它跟任何一個W裡面的vector相乘,做inner product,它們當然都會是orthogonal的,就這樣。
link |
W、Z跟W上面的任何一個vector,不管它是這樣還是這樣,做double order以後一定都會是0,所以就這樣。
link |
好,所以就是說,今天W跟U的距離是最短的,然後Z跟這個W上面的每一個vector都是orthogonal的。
link |
好,那再來就是要證明一下說,為什麼今天這個小w跟U的距離是最短的呢?
link |
好,那現在剛才講過所謂距離的意思,就是我們把U跟W相減,然後計算它的perp,這個就是距離的意思。
link |
那現在這個證明的方法是說,我們現在在W上面再隨便找另外一點W',也計算W'跟U之間的距離。
link |
然後接下來你要證明說,U-W'的距離,也就是U-W'的non一定大於等於U-W的non。
link |
那這個怎麼證明呢?你知道在證這個跟orthogonal有關係的東西的時候,你就是要用一下orthogonal的特性。
link |
這個證明都是千篇一律的,就是用個特性。什麼樣的特性呢?就是今天這個vector,也就是U-W這個vector,一定會跟這個平面上所有的vector是orthogonal的這個特性。
link |
也就是跟W這個subface裡面所有的vector都是orthogonal的特性。你看我就是直接先寫出這個式子,然後再整理一下就結束了。
link |
所以我們就先把這個式子寫出來。我們現在知道說,U-W這個vector,它跟W-W'一定是orthogonal的。
link |
如果今天這是一個三維平面的話,其實你用看的就可以知道說,這個U-W的距離一定是比較短的。
link |
我發現說,這個平面如果是用紅色其實不太好。為什麼呢?因為它會跟筆混在一起這樣子,我就會找不到那個滑鼠出現在哪裡,換個顏色。
link |
所以今天假設是在三維的空間中,其實你可以直接用想的,因為這個U跟W這條線和W-W'這個向量,它們是垂直的。
link |
所以這邊就變成一個直角三角形。直角三角形的斜邊一定比另外兩邊還要長,然後就結束了。
link |
但是因為我們現在是在高維的空間中,所以我們沒有辦法直接用想的。那如果在高維的空間中是怎麼樣子呢?
link |
在高維的空間中,我們就可以說,今天這個U-W弄的平方可以拆解成U-W加上W-W'。這個沒有問題嘛。
link |
然後這件事情,因為你可以把這一項展開,你可以把U-W加上W-W'展開,那中間會有一項是U-W跟W-W'的疑惑,對不對?
link |
如果你把這一項展開,本來除了U-W的平方加上W-W'以外,你本來應該還要再加上兩倍的U-W跟W-W'。
link |
這樣子的東西怎麼拆解,我們上次其實已經花時間講過了,所以我假設你已經很熟了。所以U-W加上W-W'的弄平方,會等於U-W的弄平方加上W-W'的弄平方加上兩倍的U-W跟W-W'的大夥大。
link |
但是因為這一項大夥大是0,所以就可以無視,所以我們就知道說U-W'的弄平方等於U-W的弄平方加上W-W'的弄平方。
link |
所以弄一定是正的,所以W-W'的弄平方一定是大於等於0,除非W跟W'一樣,不然它們會是大於0的,所以我們這邊寫大於等於0,所以它是大於U-W的弄平方,所以就這樣,就結束了。
link |
好,所以我們現在知道說所謂的orthogonal projection這件事情也可以想成是在給界subspace上面尋找一個最接近的vector,這件事情也可以想成就是orthogonal projection。
link |
好,那接下來呢,orthogonal projection我們說它是linear,既然它是linear的,它就會有一個center的matrix,對不對,linear的方向背後我們說它都會對應到一個matrix。
link |
接下來我們做的事情就是找出這個matrix長什麼樣子,我們假設這個orthogonal projection的matrix,我們寫作P-W,之所以要用下標W的意思就是說,它是投影到W這個subspace上的orthogonal projection的matrix,但這個orthogonal projection的matrix是存在的,
link |
因為linear的,雖然我們現在還不知道它長什麼樣子,但它一定是存在的,因為我們現在知道說orthogonal projection這件事只是linear,linear的方向背後都對應到一個matrix,所以我們現在要做的事情就是把那個matrix找出來。
link |
那一旦我們找出那個matrix以後,我們做orthogonal projection這件事情就變成直接乘上那個matrix就結束了,我們說如果我們把一個vector U帶到orthogonal projection的vector裡面,你會得到W。
link |
那意思是什麼?意思就是把U這個vector乘上P-W,把U這個vector乘上orthogonal projection的vector,會等於W。
link |
那今天如果把W拿去做orthogonal projection,假設你有另外一個vector V,這個vector V它落在W的subspace上面,假設vector V它就在W的subspace裡面,那意味著什麼?
link |
意味著我們把W做完orthogonal projection以後還是它自己,對不對?那這個很直覺,因為你可以想成說,如果我今天要把V拆成屬於W的跟屬於W-perp的,那就是V等於V加0,就是這樣,這是一個想法。
link |
那或者是說,今天在W這個subspace裡面,哪一個vector跟V最接近呢?就是V自己,因為V自己就在W這個subspace裡面。所以你今天把V做orthogonal projection,你得到的東西就是V自己,所以你把V自己乘上P-W也會等於V自己。
link |
好,接下來就是要找orthogonal projection的vector了,我們把這個部分講到一個段落,我們再下課。
link |
那怎麼找orthogonal projection呢?假設我們現在要考慮的subspace是只有one dimension的,我們先在只有one dimension的subspace上面做討論,等下再推廣到高維的更多dimension的subspace。
link |
好,現在假設我們要考慮的,要被project的那個subspace,它就是一條直線,它就是一條直線,那這一條直線呢,假設這一條直線呢,它的這個向量呢,我們就寫作U,假設有某一個向量U,它就落在這一條直線上面,那它當然是一個非0的向量,這個U呢,就代表了這一條直線L的方向。
link |
好,那V呢,它是任何一個vector,現在我們要把V這個vector,對某一條直線L所定義出來的subspace做orthogonal projection,我們要找出把V呢,拆成Z跟W兩項,W就落在L裡面,Z呢,它落在L的perp裡面,落在這個subspace的perp裡面。
link |
好,那我們知道說W啊,它一定是U這個vector的scaling,對不對,因為在L的這個定義的這個subspace裡面,每一個vector都是U乘上某一個scale,所以你把U乘上某一個scale C,就會等於W,你把U乘上某一個scale C,就會等於W。
link |
我們現在只是不知道說,這個C到底是多少,我們不知道說,這個隨便給你一個U,它跟W中間的這個長短的差距有多少,但我們知道說,U乘上某一個scale C,一定會變成W。
link |
那我們知道說呢,這個Z它是V減W,這個Z它是V減W。好,那在做這個orthogonal projection的證明的時候啊,它是千篇一律的,怎麼樣的千篇一律法呢?
link |
你就是要用這個orthogonal特性,也就是你要用這個vector Z跟這個vector W,或者是跟vector U,它們是orthogonal這件事情來進行證明。
link |
好,那我們現在知道說,按照定義啊,Z跟U它們是orthogonal的,Z跟U它是orthogonal的。然後你就接下來,你就把式子寫出來,Z呢可以寫成這個V減W,Z呢可以寫成V減W,Z可以寫成V減W,然後它跟U呢,做double order以後呢,會做double order以後呢,會等於0。
link |
好,接下來呢,我們又知道說W可以寫成C倍的U,W呢可以寫成C倍的U,所以V減掉C倍的U跟U做double order以後等於0。
link |
那你可以把double order呢,做展開,把U呢,乘進去,所以U跟V做double order,減掉CU跟U做double order,也會等於0。
link |
那U跟U做double order,就是U的none的平方,這個我們之前講過,double order跟none的定義就是,U跟自己的double order就等於U的none的平方,這一項等於0。
link |
好,既然這一項等於0,我們接下來就可以把C找出來,我們就可以把C找出來,怎麼把C找出來呢?你不過就是把這一項挪到右邊去而已,把這一項挪到右邊去。所以要找出C是多少?C是U跟V的double order除以U平方。
link |
那如果你今天要找W的話,怎麼找呢?W就是C倍的U,你把C代進去,就結束了,就結束了。好,那如果你想要找這個V跟這個subspace之間的距離,怎麼辦呢?
link |
那反正你現在都知道W是多少了,把V跟W做相減,就結束了,就結束了。好,所以這邊就舉個例子告訴你說,如果今天我們考慮的對象是one dimension的,考慮的subspace是one dimension的,怎麼做?
link |
那其實考慮的對象,這個你八成在高中的時候學過,高中的時候其實應該常常做這種題目,對不對?那如果今天是高維的,維度更高的dimension,那其實也沒有問題。
link |
好,這邊還有一個例子,這邊就實際代一個數字,說好,我們現在考慮的subspace L,它是y等於1 2x,它是y等於1 2x。那現在假設V是4 1,然後U是2 1。
link |
接下來,叫你找它的,這邊沒有了,下面居然沒有打出來,叫你找它的這個C跟W怎麼做呢?那這邊我想應該就不用做計算,你就代個公式就結束了,代個公式就結束了。
link |
好,那接下來就進入重點,接下來進入重點,這個在general的case,假設我們要做orthogonal projection的時候,我們的subspace它是比如說k dimensional的subspace,那我們到底要怎麼計算它的orthogonal projection的結果呢?
link |
好,那我們先假設我們現在要考慮的這個subspace W,我們要做orthogonal projection的這個subspace W,它的basis可以寫作一個n by k的metric。
link |
也就是W的dimension等於k,我們假設dinW等於k,假設W的dimension等於k,那W就basis裡面就會有k個vector,把這k個vector排起來就會變成一個n乘以k的metric,它們排列的順序並不重要。
link |
接下來公式就在這裡,以下的東西你聽不懂,你就把這個公式背下來,搞不好我考試會考,也說不定這樣子。
link |
那這個n減k的這個metric,我們把它叫做C,然後接下來orthogonal projection的metric Pw,就是這個很複雜,C乘上括號,C的transpose乘上C,再做inverse,再乘上C的transpose,就是orthogonal projection。
link |
那你可能會覺得說,這個有點複雜,那我們現在檢查一下它的dimension對不對。
link |
orthogonal projection這個linear operator,它的dimension一定是一個n乘以n的metric,因為你是input一個n-way的vector,output也是一個n-way的vector,所以它是一個n by n的metric。
link |
C是一個n by k的metric,我們先來檢查說Pw到底是不是一個n by n的metric吧,你想想看C的transpose,它是k by n,k寫得很醜,k乘上n。
link |
C呢,C是n乘k,那n乘k加上k乘n,也不能說加上,n乘k乘以n乘k,是k乘以k,再做transpose,還是k乘以k,所以括號裡面是一個k乘以k的metric。
link |
接下來C,又是一個n乘以k的metric,C的transpose,又是一個k乘以n的metric,C的transpose,又是一個k乘以n的metric。
link |
所以這四個C的各種不同變化,把它們通通乘起來以後,它變成Pw,它是一個n by n的metric。所以如果你背公式背到後來,你有點不太確定你到底記的那個對不對,你可以check一下它的dimension,看看它的dimension到底是不是對的。
link |
好,它的正名呢,我就把它列在下面。好,怎麼證呢?這邊有點被遮到了,不過沒有關係,我想應該還是看得清楚的。
link |
假設有一個vector u,這個u就是我們要拿去做projection的對象,我們把u拿來做projection。我們把u帶到這個projection的metric uw裡面,得到的結果就是w,就是projection以後的結果。
link |
好,那我們知道說,subspace w,它呢,是metric C的column space,你取metric C的column space,就是我們要找的subspace w。
link |
那我們知道說,在subspace w裡面,每一個element w,它都是metric C乘上vector b,都是metric C的column的linear combination。
link |
那b是什麼?b是係數,你把b跟c做相乘,就會等於w。你把b跟c相乘,就會等於w。
link |
好,那這個u減w呢,就是w的perp,u減w就是w的perp。好,那我們現在呢,你知道要證跟orthogonal有關係的東西的時候,你就是要用到orthogonal的特性,你就要看說,什麼東西,它們這個做double product以後,會等於0。
link |
好,那這邊用的性質呢,是如果我們把C這個metric的transpose,跟u減w,因為我們知道u減w落在w的perp裡面,把C的transpose跟u減w做double product,它一定會等於0。
link |
為什麼?因為C的每一個column,都是w的basis,C的transpose的每一個row,也是w的basis,C的transpose的每一個row,都是w這個space裡面的vector。
link |
而既然u減w落在w的perp裡面,u減w跟c相乘,跟c的每一個row相乘,都會是0。所以C的transpose乘上u減w,會等於0vector。
link |
好,那這邊你可以把這個括號裡面的東西乘出來,所以C的transpose乘上u減w,等於C的transpose乘u減掉C的transpose乘w,等於,那我們知道w是什麼,w是C乘上b,w是C的column的linear combination,所以我們說w是C乘上b。
link |
所以我們可以把w等於C乘上b這件事情帶進去,所以我們知道C的transpose乘上u,減掉C的transpose乘上C再乘上b,它會等於0vector。
link |
這意味著C的transpose乘上u,會等於C的transpose乘上C乘上b。
link |
那我們現在就可以把b找出來了,假設C的transpose乘以C,它是invertible,下一頁投影片,我會證C的transpose乘上C是invertible這件事情,我們先假設你接受它是invertible。
link |
事實上C本身是不能做inverse,不一定可以做inverse的,為什麼,因為你想想看,C是一個n by k的matrix,inverse我們只有在square的matrix上我們才能夠做inverse,對不對,non-square的matrix都是non-invertible的。
link |
所以今天C本身,如果它不是square的,它就不能夠被inverse,C不一定是invertible,但是我們等一下會說Ctranspose C一定是invertible的,為什麼,Ctranspose C它至少它是一個square,對不對,Ctranspose C是一個square,
link |
Ctranspose本身是k by n,C是n by k,所以相乘以後是k by k,所以這個k by k的matrix它一定會是invertible。
link |
我們先接受Ctranspose C它一定是invertible,我們就可以把Ctranspose C拿到左邊,也就是左右都乘上Ctranspose C的inverse,也就是說B這個vector會等於C的transpose C乘上inverse,再乘上C的transpose,再乘上u,所以我們現在知道B是什麼了,我們現在知道B這個係數是什麼了。
link |
那接下來要怎麼找W呢,C乘上B就是W,所以我們知道說B是Ctranspose C的inverse,再乘上Ctranspose,再乘上u,那W就是C乘上,這一項其實代表的就是B,這一項其實代表的就是B。
link |
所以W就是C乘上Ctranspose C括號inverse,乘上Ctranspose,乘上u,所以這個matrix就是projection matrix,這個證明沒有很複雜,但是這個結果看起來是有點複雜,假如你第一次看到的話就覺得,嗯,明天人家問你的時候你絕對就想不起來了。
link |
好,那再來就是要證這個Ctranspose C它為什麼是invertible,那這邊要注意一下C它有一個特性,因為C是由W的basis所構成的,所以C它的column都是independent,這個是它的特性。
link |
然後我們要證說,如果今天有一個matrix C它的column都是independent的,那Ctranspose C一定是invertible的,好,那怎麼證呢?這邊的證法是這個樣子的,你知道當有人要問你說Ctranspose C它是不是invertible的時候,那我們來想一下invertible有什麼樣的特性。
link |
如果我們今天可以證明Ctranspose C它的所有的column都是independent,如果我們可以證Ctranspose C它所有的column都是independent的話,那Ctranspose C就是invertible。
link |
如果Ctranspose C它的column都是independent,那Ctranspose C這個matrix它就是invertible,所以我們只需要證Ctranspose C它的column是不是independent,那怎麼證column是不是independent呢?
link |
這個方法差不多就是那個樣子,你要證一個vector set是不是independent的,方法就是並沒有千變萬化,這個pattern非常固定,這個打法非常固定。
link |
就是說你就先按照independent的定義把式子列出來,再說當這個vector set的linear combination等於零的時候,它的系數一定到是零就結束了。
link |
所以現在我們把Ctranspose C的column做linear combination,也就是把Ctranspose C的column乘上b這個vector,就等於對b這個vector裡面的系數做linear combination。
link |
那我們說它一定會等於zero vector,假設它等於zero vector,接下來就是要告訴證說,假設它等於zero vector的情況下,b一定要等於零,就結束了,這個是按照independent的定義來進行證明。
link |
好,那Ctranspose C乘上b這個東西等於零,那我們把它左邊乘上btranspose,還是等於零,因為零乘上任何東西都仍然是零,然後接下來你可以把b跟c組在一起,b的transpose乘上c的transpose,這一下會等於c乘上b的transpose,再乘上c乘上b。
link |
那c乘上b的transpose,再乘上c乘上b是什麼呢?它就是Cb自己跟自己的大化檔,它就是Cb的none的平方,它等於零。
link |
那所以,今天什麼樣的vector做它的none會等於零呢?唯有zero vector的none等於零,所以Cb也是等於零。
link |
所以我們今天學到什麼?我們今天學到,當Ctranspose Cb等於零的時候,Cb一定等於零。
link |
那我們知道C它是一個independent的vector set,C的column都是independent,所以Cb等於零,按照independent的定義,b一定等於零。
link |
所以我們現在就知道說,Ctranspose Cb如果要等於零,b一定要等於零,所以Ctranspose C,它的column都是independent,所以Ctranspose C都是invertible。
link |
這邊大家有問題要問的嗎?我知道說,為什麼它的none的平方是零?今天這個是這個樣子,就是Ctranspose Cb等於零真的是沒問題,所以我們把它的左邊乘上b的transpose,還是會等於零。
link |
然後我們現在有了這個式子,然後把這個式子做一番整理以後,你可以寫成Cb跟Cb的大發達,那Cb跟Cb的大發達,就是Cb的none平。
link |
對,是從上面這邊來的。這樣這個大概沒有問題了。
link |
然後再來,我知道說這個東西實在是很難證,所以我就想了一個記憶的方法,這個東西其實跟丁丁是有關係的。你可能想不出來說,為什麼這個東西跟丁丁是有關係的。
link |
丁丁是藍色的,我們來畫一個這個沒有政治的立場,它真的是藍色,或者它介於藍色跟紫色之間,有時候它看起來比較像紫色,有時候它是藍色。
link |
我們來畫一個丁丁,丁丁就是有一個耳朵,這個是它的耳朵,它有一個大耳朵。接下來,你畫它的臉。接下來,我要畫它的眼睛,這是它的眼睛。
link |
然後我讓它往左邊看好了,你看看左邊那個丁丁。然後接下來,這個丁丁的特色就是它頭上有一個丁,所以它才叫做丁丁。
link |
這不是天線,這個是寫一個丁。你會發現說它已經跟上面這個很像了,我們已經有C的陳述C了,而且我們也有畫好,現在只差右邊不像。
link |
為什麼右邊不一樣呢?這個是這樣子,它的耳朵後來就掉了,它耳朵掉下來,掉下來變成這個樣子。
link |
那你會想說,那掉下來怎麼辦呢?就是你要把它的耳朵黏回去,那怎麼辦呢?就是用一個圖丁,這個是圖丁,跟一個錘子把它的耳朵黏回去。
link |
所以這個projection的metric就是長這個樣子,這樣子,你記起來了嗎?我們就在這邊休息五分鐘就好,謝謝。
link |
有一個subspace w,它是一個三維空間中的two-dimensional subspace,它其實是一個平面嘛,那這個平面呢,你可以把它的equation寫出來,我們舉例來說,這個平面呢,它的equation是x1-x2加兩倍的x3等於零。
link |
接下來,我們把這一個平面呢,它的basis找出來,我們先把它的basis找出來,那你有各種不同的方法可以來找basis,反正我們假設找出來的basis呢,就是110-201。
link |
然後接下來呢,你就可以寫出你的metric c,就把兩個basis那兩個vector拼起來,就得到metric c。接下來就是怒套一發左邊的公式,你就可以得到,如果你要project到現在這個subspace w上面的時候,你的projection的metric長什麼樣子。
link |
怒套一發左邊的公式,那這個就不用算了,就這樣子,就很麻煩,就不要算了,就直接可能call個matlab來算一下,然後算出來的結果呢,Pw是長這個樣子。
link |
接下來呢,可能就會有人問你說,舉例來說,假設有一個vector是1-3-4,它project到這個two-dimensional的subspace上面的時候,它得到的結果,它projection的vector,project後的結果長什麼樣子,那你就把1-3-4乘上Pw,得到0-4-2,所以projection以後的結果就是0-4-2,結束,就這樣。
link |
好,這個是orthogonal的projection的metric。好,那接下來要講的就是orthogonal的projection這個東西到底有什麼樣的應用,它的應用是這個樣子。
link |
假設你今天有一個system of linear equation,那你知道一個system of linear equation,它可能有解也有可能無解,那過去我們是說,如果今天一個system of linear equation它無解的話,那就結束了,就結束了。
link |
那所謂的無解的意思是說,今天呢,等號右邊的這個vector b,它不在等號左邊的這個matrix A的current space裡面,如果b不在A的current space裡面,那這個system of linear equation就是無解,無解就結束了,那就沒有再繼續討論下去了。
link |
但是有了這個orthogonal projection的概念以後,現在無解並不是討論的結束,無解呢,你仍然可以繼續討論下去,你可以說,假設現在是無解的,但你能不能夠找一個最近似的結果呢?
link |
也就是說,你能不能夠找到一個Z,使得AZ跟B最接近,你找不到一個X,可以乘以A以後正好等於B,這個X是不存在的,因為這個system of linear equation是inconsistent的。
link |
但是就算它是inconsistent的,你能不能夠找到一個vector Z,這個Z跟matrix A相乘以後,我們希望它跟B越接近越好,我們希望AZ跟B越接近越好,也就是你想要讓AZ-B這個vector,它的norm越小越好,你想要找到一個Z,使得AZ-B的norm越小越好。
link |
那下面就只是圖示的說明而已,你把A的column space找出來,叫做W,接下來呢,你現在要找一個Z,它乘上A以後跟B越接近越好,那這句話到底是什麼意思呢,AZ跟B越接近越好是什麼意思呢?
link |
其實就是把B對W,也就是A的column space做projection,為什麼?因為我們知道說,今天在這個column space上面,每一個vector都是A的column的linear combination,今天在W這個subspace裡面,每一個vector都是A的column的linear combination。
link |
所以每一個vector都可以寫成A乘上某一個vector,在這個subspace裡面,每一個vector都可以寫成A乘上某一個vector,比如說AX。
link |
那在這些AX裡面,哪一個人跟B最近呢?哪一個人他就是AZ可以跟B最近呢?就是orthogonal projection以後的結果。所以其實今天要找一個Z跟A相乘以後跟B最近,其實就是把Bproject到A的subspace上面,就結束了。
link |
從上面這句話翻譯起來,就是要叫你做orthogonal projection,把Bproject到A的column所形成的subspace上面。
link |
好,那接下來你可能會問說,那解這種沒有inconsistent system linear equation,有什麼樣的應用呢?那它就有很多的應用,這邊就是舉一個例子。
link |
好,那假設現在我們有一組資料,這組資料每一筆資料都是一個pair,裡面每一筆資料都有一個X一個Y,你有一個X就有一個Y,你有一個X1就有一個Y1,你有一個X2就有一個Y2,以此類推。
link |
舉例來說呢,你可以收集今天的股票跟明天的股票,就X1是今天的股票,然後Y1就是明天的股票,或者說X1是譬如說十月一號的股票,某支股票的指數,然後Y1就是十月二號的某支股票的指數。
link |
或者說X1是十月一號的中午的PM2.5的數值,然後Y1就是十月二號的中午的PM2.5的數值,總之你有一大堆這種pair的data。
link |
那接下來怎麼辦呢?接下來你可以想辦法用一條直線去逼近這些data,這些data在XY平面上它散佈的樣子可能像是這個樣子。
link |
你找一條直線,這些直線可以盡量代表這些點,這一條直線的式子你可以寫作Y等於A0加A1X,我們現在還不知道怎麼把這條直線畫出來,我們還不知道怎麼求出A0跟A1的數值。
link |
那我們假設如果我們可以找到這一條直線,它可以代表這個圖上的這些紅色的點的話,那這一條直線,這一條藍色的線有什麼作用呢?它就可以拿來做預測。
link |
舉例來說,假設你只知道X不知道Y,那你就把X帶到這一條藍色的直線所代表的這個式子裡面去,你就可以把Y給它求出來,你把X帶進去,你就可以把Y求出來。
link |
也就是說,你有這條藍色的直線以後,你就可以做預測,舉例來說,給你今天的股票,你就可以預測明天的某支股票的指數,給你今天中午的PM2.5,你就可以預測明天中午的PM2.5。
link |
所以有了這條藍色的直線,你就可以做預測,這件事情又叫做regression。我不知道有沒有同學有修過機器學習的課,機器學習課的開場,我們其實就是講regression。
link |
所以線性代數在機器學習裡面是有很多很重要的應用的。
link |
接下來我們要講的就是,怎麼把這條直線找出來呢?找出這條直線以後,你就可以做預測,那怎麼把這條直線找出來呢?
link |
這條直線的式子寫作y等於a0加a1x。那你當然,就是這個紅色的這些點,它的分布可能非常的複雜,所以今天你沒有辦法畫一條藍色的直線穿過所有紅色的點。
link |
你只能說,我畫一條藍色的直線,我希望這些紅色的點跟藍色直線的距離越接近越好。
link |
就是我們希望這些紅色的點,雖然你沒有辦法找到一條藍色的直線穿過所有紅色的點,因為這些紅色的點可能分布根本不在同一條直線上,所以你沒有辦法真的穿過它。
link |
但是你可以找到一條藍色的直線跟這些紅色的點之間,它們的距離越接近越好。
link |
那這件事情,你其實可以把它寫成一個System of Linear Equations。 怎麼把它寫成一個System of Linear Equations呢? 如果現在你有一筆資料xiyi,你現在的直線叫作y等於a0加a1x,那這一點跟對應到直線上的點,
link |
如果你今天用這一條藍色的直線來做預測,輸入xi,它的輸出就是a0加a1乘以xi。
link |
那這個xi跟a0加a1乘以xi,它跟xiyi之間的距離就是yi減掉a0加a1xi,但這邊可以取絕對值,如果你在意正負號的話,我們可以取一個絕對值。
link |
那這個東西就是我們預測的誤差,那我們希望今天這個預測的誤差越小越好。 那對於每一筆資料,我們都可以算出一個預測的誤差。
link |
對每一筆資料x1、x2、x1y1、x2y2,我們通通可以算出一筆預測的誤差。 對第一筆資料來說,它的預測誤差就是y1減掉a0加a1x1,第二筆資料它的誤差就是y2減掉a0加a1x2,以此類推。
link |
最後一筆資料的誤差是yn減掉a0加a1xn,得到一個error的vector。 你可以把所有的誤差,每一筆資料的誤差排成一個向量,這個向量我們用小1來表示。
link |
我們希望誤差越小越好,希望誤差越小越好這句話到底是什麼意思呢? 這句話的意思你可以想成是,我們希望所有誤差的平方和,每一筆資料的誤差的平方和越小越好。
link |
那讓每一筆資料的誤差的平方和越小越好意味著什麼呢? 每一筆資料的誤差的平方和越小越好這件事情,等同於我們希望1這個vector,它的弄的平方越小越好。
link |
所以我們現在已經把我們剛才要做的prediction這件事情,逐漸跟線性代數把它連在一起。 我們希望我們的誤差越小越好這件事情,等同於我們希望某一個vector,這個vector叫做1,我們希望1這個vector,它的弄的平方越小越好。
link |
接下來,我們就要把1的這個vector,它的弄的式子,把它寫出來。 那我們來把1的這個vector寫出來看看。 1的這個vector,它長什麼樣子呢?
link |
1的這個vector裡面,它包含了y1的部分,就是它包含了y的部分。 你可以把y1、y2到yn串起來,當作一個vector,寫做y。
link |
那它包含了a0的部分,那你可以用一個都是1的vector來表示它,這邊寫做v1。
link |
然後你把x2到xn集合起來,也可以看作是一個vector,我們這邊用v2來表示。
link |
所以今天,1這個arrow vector,你可以把它寫成y減a0乘v1,減掉a1乘v2。
link |
這個大家可以接受嗎?這個很直覺,就是1等於y這個紅色的部分,紅色這個部分就是y,紅色這個部分就是y。 然後-a0是什麼?-a0就寫成-a0乘上v1。
link |
然後a1、x1、a1、x2到a1、xn寫成什麼?就寫成a1乘上v2。
link |
所以1可以寫成y減掉a0、v1,減掉a1、v2。
link |
接下來,我們把1的none的平方式子把它列出來。那我們現在可以再進一步把1寫成y減掉c乘以一個vector a,我們可以把1寫成y減掉ca。
link |
然後這個c就是v1、v2,你把v1跟v2拼起來變成一個matrix C,然後a就是a0、a1。
link |
好,那這個東西它就是1,我們希望它的none越小越好。這件事情是不是我們剛才已經說過呢?我們剛才說我們有辦法讓這個az-b的none越小越好。
link |
我們有辦法讓az-b的none越小越好。我們能夠找到一個z,讓az-b的none越小越好。
link |
那麼現在的問題是,我們要找到一個a,讓y減ca,那其實這個式子你要不要乘負號,其實意思是一樣的啦,對不對?
link |
那我們今天要找到一個a,讓y減ca的值,它的none越小越好。我們要讓預測error越小越好這件事,等同於我們找到一個vector,這個vector其實只有二維而已,二維的vector a,讓y減ca的none越小越好。
link |
大家有問題要問嗎?好,那如果大家沒有問題要問的話,接下來我們就繼續。
link |
那所以現在的問題變成是,我們要找到一個a,然後讓y減ca的to none的值越小越好。那如果是過去的話,你可能說,我直接列一個式子,就是c乘上a,然後等於y,然後解這個system of linear equation。
link |
但是我們現在呢,其實我們現在知道說這個system of linear equation,它是inconsistent的,它是沒有解的。你找不到一個a,它乘上c以後可以正好等於y。
link |
如果你找到一個a乘上c以後等於y,代表說你所有收集到的資料,所有收集到的xy片,都在同一條直線上。
link |
它們都在同一條直線上的時候,c乘上a才會等於y,但它們並不在同一條直線上,所以你找不到一個a乘上c正好等於y,你只能找某一個a乘上c以後跟y越接近越好。
link |
好,那這個呢,就回到線性代數的部分,這個東西就是of a common order projection。那現在我們要找的這一個matrix C,它的column space裡面有兩個vector,它的basis有兩個vector,就是v1,v2。
link |
那我們這邊必須要假設說,v1,v2必須是independent的,它才能夠當作basis來用嘛,對不對?但是,v1,v2會是independent的嗎?它有非常非常高的機率會是independent的。
link |
因為實際上在收集資料的時候呢,這個你想想看,v1它的每一個dimension值都不一樣,v2它的值是x1到xn,除非你收集到的所有x的值都是一樣的,不然v1跟v2合起來的這個vector set不太可能是dependent,它有非常非常高的機率會是independent。
link |
如果它是dependent,就會有問題這樣子,但是這件事情幾乎是不可能發生的。好,現在v1跟v2,C的兩個column,v1跟v2,它們是independent的。
link |
好,那接下來呢,我們就是要根據v1,v2所展開的那個suspect,做orthogonal的projection。那接下來要做的事情,其實就只是套個公式而已,舉例來說,假設你要找PW的話,你會不會找呢?
link |
你其實是會找,你就把PW的公式列出來,你就知道說PW長什麼樣子。反正你現在知道說,你的C就是v1、v2,然後呢,你把這個公式寫出來,它是這樣子,C乘上這個C的transpose,再乘上C,然後呢,再乘上把這個耳朵釘上去,是這個樣子。
link |
所以它的式子是這個樣子,這個東西就是PW,這個東西就是PW,所以你可以直接把PW寫出來,這樣給你任何一個vector y,你把y乘上PW,你就可以把a1跟a2找出來。
link |
就結束了,就這樣子,就只是舉一個例子,這個是來自於課本上的例子。課本上的這個例子是這樣講的,它說,在製造螺帽的工廠裡面,你需要注意一下螺帽的重量,你希望螺帽不要太重,如果螺帽太重的話,你就必須要把它丟掉。
link |
今天為了避免浪費時間,所以希望在製程的一半就量它的重量。其實我也不太確定這個東西是不是叫螺帽,我也不知道這個東西應該叫什麽名字。反正課本指的就是右上角的這些東西,你希望在它製程進行到一半的時候,就預測它製程完畢的時候的重量。
link |
所以現在你就收集了一些資料,你知道說,今天某一個東西在某一個螺帽製程還沒有結束的時候,它的中間某一個步驟,它的重量是2.6磅,做完以後變成2磅,看起來做完以後都是變得比較輕,可能是削掉了一些東西,所以做完以後是變得比較輕。
link |
然後2.72磅做完以後變成2.1磅,2.75磅做完以後變成2.1磅,以此類推。那你現在要做的事情就是,你希望找出一條直線。
link |
這條直線可以幫你進行預測,假設一個螺帽還沒有做完之後,你就量一下它的重量,然後你可以知道它真的完成以後它的重量是多少,你就可以決定說要不要把這個螺帽完成它。
link |
那要怎麼做呢?你就把我們剛才講的東西的式子都帶進來,舉例來說,y就是你要預測的結果,你把這些東西排起來,變成一個向量。
link |
然後c呢?c的第一個column就通通都是1,c的第一個column,剛才是寫作v1,就通通都是1。第二個column v2是什麼呢?第二個column v2就是x的值。
link |
那接下來呢?就沒有什麼,就直接把A0跟A1把它求出來。
link |
如果你今天是要直接求projection matrix的Pw,它的式子我們已經有講過了,我們有講過它是長什麼樣。那如果你現在不是要直接求Pw,而是要求的是A0跟A1,
link |
如果你要求的是A0跟A1,而不是要直接求Pw的話,你要求的是v1跟v2的係數,你要求的是,你現在並不是要找projection以後的結果,
link |
而是要找說,哪些在這個要被projection的subspace上面,那些vector要用什麼樣的係數做linear combination以後才能得到projection的結果。
link |
如果你要找的是那些係數的話,那你的式子就少一項c,就是ct,c的transpose ct乘上y。
link |
為什麼是這個樣子呢?因為我們知道說,這個Pw乘上y,會等於projection以後的結果,也就是x。
link |
但是我們現在並沒有要你把projection以後的結果找出來,我們要找的是,也許我用x會有一點誤導,這邊寫做x'好了。
link |
x'的意思是說,假設你現在這個v1、v2產生的subspace是這個樣子,然後你現在要把y投影到這個subspace上面,透過Pw。
link |
Pw的式子你可以寫得出來,假設這個投影後的結果叫做x',你只要把y乘上Pw,就可以直接得到這個x'.
link |
但假設今天要你求的,其實是這個x'要怎麼用v1跟v2組出來,也就是a0乘上v1,加上a1乘上v2。
link |
他們要如何等於這個x',也就是你要找出a1跟a0的話,那你要套用的式子其實是這個樣子。
link |
為什麼?因為這個式子,x'可以寫成c這個matrix乘上a0、a1,乘上a0、a1。
link |
然後x'本身等於什麼呢?x'本身等於這個Pw的式子,我想大家應該都很熟了吧,就是c,我們先這樣畫,然後c,c,然後transpose,然後頂起來這樣子,然後再乘上y,這個東西會等於x'.
link |
那我們知道說,這個a0、a1乘上c也會等於x',所以這一項,扣掉c的這一項的部分,顯然就是a0、a1,扣掉c的這一項的部分,顯然就是a0、a1。
link |
所以我們知道說,如果你要算a0、a1的話,它是c的transpose乘上c的invert,乘上c的transpose,再乘上y,就是a0、a1。
link |
所以你有了a0、a1以後,你就可以把你要做prediction的那個式子把它寫出來,然後接下來,你就可以拿這個式子來進行預測。
link |
好,那再來還有更多的例子,舉例來說,你今天不只是只能把你的預測的那一條藍色的線寫成y等於a0加a1的x,你可以把它寫得更複雜一點,因為也許你有很強的直覺知道說,你現在所收集到的那些資料,它們之間的關係並沒有辦法用一條直線來表示,也許它需要用一個二次的曲線才能夠來表示。
link |
所以你就可以把x和y之間的關係寫成這個樣子,你可以把x和y之間的關係寫成y等於a0加a1的x加a2的x平方,然後接下來,我們就把a0、a1跟a2找出來。
link |
順道一提一下,這個就是我們下一個作業要做的事情。下一個作業其實就是Machine Learning那一堂課的作業1的簡化版。在Machine Learning那一堂課裡面,是不允許你用線性代數的解法來解這個作業的,但在線性代數這門課裡面,你就可以用線性代數的解法來解同一個作業,那其實是會簡單很多。
link |
那我們現在就把1寫出來,這我想大家應該都沒有問題吧,每一筆資料的error,你就可以寫成y減掉a0加a1的x加a2的x的平方,把它整理一下,然後我們要找出a0、a1、a2,它去minimize我們的error,也是要找出a0、a1、a2,minimize1這個vector的null的平方。
link |
要怎麼做呢?你就列三個vector,v1、v2跟v3,當然我們需要v1、v2、v3是independent的,如果v1、v2、v3是dependent的,那你就會有麻煩,但是好在v1、v2、v3有非常非常高的機率,它們是independent的。
link |
好,所以我們現在得到的matrix C就是把v1、v2、v3,v1全部都是1,v2就是x1到xn,v3就是x1的平方到xn的平方,v1代表的是這一項,然後v2代表的是這一項,v3代表的是這一項。
link |
你現在要求它們的係數,a0、a1、a3,然後C現在是v1、v2、v3,然後帶進去一個式子裡面,null算一發,你就可以把a0、a1、a2把它寫出來了,就是這樣子。
link |
這邊也是一個課本的例子,現在有人對某一個物體的拋物線進行了一下觀測,就他把某一個東西從海拔100公尺的地方往上拋,然後那個東西就掉下來。
link |
在掉落的過程中,它就會在記錄那個物體的位置,它隨著時間的變化的時候,它的高度,假設這個橫軸是時間的變化,0秒、1秒、2秒、3秒,這樣一直下去。
link |
他把這個東西往上拋,本來在100公尺的地方,後來拋得比較高一點,變118公尺,然後再掉下來,變92、48到7,最後掉到地上就摔壞了,掉下來。
link |
那y等於a0、a1、a2的x²,那你可以帶個式子算出a0、a1、a2。那怎麼算a0、a1、a2呢?我們知道c的第一個維度就是全部都是1,c的第二個維度就是x,c的第三個維度就是x²。
link |
然後你就把它們統統帶進去,y你也知道,y帶進去,c帶進去,怒算一發以後,得到的值是這個樣子。
link |
然後接下來你就可以拿這個東西來預測未來你要丟某一個物體,它在其他的時間會有多高的高度。
link |
那這個其實還有更多的應用,這個我們就不細講,但你可以想像在作業裡面,在作業要做的事情應該就是預測pn2.5,要你預測某一段時間以後的pn2.5。
link |
那你要預測某一段時間以後的pn2.5,你會需要根據什麼樣現在收集到的資料,舉例來說現在這個時間點的pn2.5。但是其實除了pn2.5以外,可能其他的數值也會影響你預測的結果,舉例來說可能臭氧的濃度也會影響下一個時間點的pn2.5。
link |
所以假設y是你要預測的對象,比如說pn2.5,那有很多factor都會影響pn2.5的值,比如說xa可能是前一個時間點的pn2.5,xb可能是前一個時間點臭氧的含量。
link |
把前一個時間點的pn2.5乘以a1的值,再加上臭氧的含量乘以a2的值,再加上a0,才能夠得到y。
link |
這個時候,你在解的時候,你就必須要把兩個不同的變數考慮進去。但是這個會對你造成任何影響嗎?其實不會,因為你解的時候就只是這樣子而已。
link |
你的c,剛才是第一維全部都是1,第二維就是xa,第三維就是xb。
link |
就把xa所有的值都拿來,拼在一起,拼在一起,拼在一起,拼在一起,得到一個c。
link |
然後y你也知道,你可以做一下統計,就知道說y是多少。
link |
接下來,就套個公式,就把a0、a1、a2都找出來了,就結束了。其實我們下一個作業就是要做這麼一件事。
link |
我們今天就正好講到這邊,到一個段落,那我們就下課。