我論矩陣 矩陣變換的飛躍 三 理解矩陣變換 (終)站在對立面 一扇新的大門

警告 以下內容已超越矩陣變換存在,不能保證其正確性,僅代表一種看法。

我們需要知道,能夠形成一整套完整理論的,都是很成熟的,往往研究了幾十幾百年的,但是有些很新很前沿偶爾很強大的,有時理論殘缺不全,甚至沒有道理可講,很不幸這裏討論的目標就屬於後者,但又必須去理解它,不然怎麼叫強迫症呢

0 目的

上文理解矩陣變換中講到矩陣變換的缺陷,其中之一是不同的變換不能在同一空間共存,即Ax是對x做A變換,不區分x的空間位置。而我們希望有一種映射能根據x所在空間位置不同而做不同的變換。

1.評估空間內變換出現變化的方法

(注:因爲對象比較抽象不太好理解,所以這裏提出這個方法,協助理解)

那怎麼去評測空間內的這一種映射呢,在這裏提出一個用折線及其折射去衡量空間映射變化的方法

如果一條直線進入某空間時,發生了折射(向某方向偏折),表明空間中的法則(映射)發生了變化,其變化過程可以是突變,也可以是漸變,在一個方向發生,認爲一次,在n個方向逐次發生認爲n次,我們就認爲對該直線施加了n+1次法則(變換);這n個方向作爲座標系,其爲空間s,令m=dim(s);

放出任意的直線,出現了最大的那個n,稱爲max_n,則認爲該空間具有對max_n+1個子空間實施max_n+1次法則的能力;簡單說就是提出如下評判原則:

直線映射後被折了n次就表明能對n+1種不同位置的x實施n+1次不同的變換。

n>=m,令k=n/m,k是有用的,這裏不討論;上面這句話可變爲

直線映射後被折了n次就表明能對n+1種不同位置的x實施至少m種不同的變換。

2.映射及其定義

我們的目的,是如下圖所示的映射,就是在矩陣乘矩陣之間插入一個函數,變成矩陣、函數、矩陣這麼一種夾心結構,而上一章我們討論的映射是圖中虛線框內的部分

 

夾心結構中,如果沒有函數,就是矩陣乘矩陣,那還是矩陣,但是,夾入函數,產生了特別的作用

2.1 以1個斷點的線性函數爲例(非強迫症可跳過)

函數Y=(|y1|,....|yn|)T在座標i上的分量提取出來,函數如圖:

在yi=0的界面上發生了折射,上例中函數的入射斜率是1、折射斜率是-1;更一般的設入射斜率是1,折射斜率是µ。這裏不設k1、k2,µ=k1/k2,因爲入射時已包含k1,或者說折射後還是k1,那不會偏折,正是因爲k1到k2的變化才導致偏折,所以我們用µ;

y=(y1,....yn)T,y經過函數Y作用後爲Y=(Y1,....Yn)T,對於Yi有

Yi=yi, yi>0

Yi=µyi,yi<0

如果y=Ax+b,則上面可看作當yi<0時,用µA的第i列替換了A的第i列,用µb的第i行替換了b的第i行,現在先不用考慮偏置b,將其寫爲

y=A(x+b’)

我們可以看到:界面將空間劃分爲2^n個象限,第一象限內的映射爲矩陣A的線性變換,其餘象限的線性變換因象限位置而異,對應於µA對A的列的部分替換;

我們知道必定有一個象限對應於µA對A的全部替換,且也知道只要µ<=0,就能將其他象限映射到第一象限範圍之內。

以上這一大堆意味着什麼?(這裏用到前述的評估方法應能較好理解)就是說有兩個矩陣變換,一個是µA,另一個是A,我們可以讓一個子空間比如第一像限,同時出現這兩種矩陣變換,這樣會產生現象:比如直線每進入一個象限就會發生一次折射,最多能發生2^n-1次折射。

2.2 以1個同樣的例子來理解

上一章矩陣變換的侷限:根據矩陣變換的特點,可知異或運算這樣的映射,矩陣變換做不到,本質是變換時,變換矩陣是唯一的,不同的變換不能共存。這樣比較好理解:Ax是對x做A變換,不能根據x的位置不同而做不同,的變換;又由於A代表任何矩陣,所以沒有矩陣能實現根據x空間位置不同,而做不同的變換。下面用兩種函數來實現異或映射,並分析其特點

2.2.1函數Y=(|y1|,|y2|)T

首先做矩陣變換,根據矩陣變換平行關係不變,可以推論得到平行四邊形不變,右圖可看作平行四邊型一個對角線被縮放爲0。

 

然後使用函數在y2軸上發生折射

 

這裏選用的函數是Y=(|y1|,|y2|)T,這樣完成了異或變換。

2.2.2 用如下函數來實現異或

 

分析:函數折射是投影(壓縮座標),如下變換實現異或

 

可以看出,在y1軸上發生了折射,導致三點不在一條直線上,用一個矩陣的壓縮變換就得到結果。

2.2.3 特點對比

第二種映射的優點:第二種進行了2次矩陣變換,是我們前面定義的夾心結構,設第一次爲A,第二次爲B;函數對矩陣A變換後穿過界面那部分進行了擦除,然後進行B變換,這樣做的優點是能將直線映射爲任何折線(最多折2^n-1次);根據評判原則,我們最多能對特定的2^n種x做2^n種變換。

第一種映射的缺點和優點:第一種映射缺點是折射後沒有進行矩陣變換,不能將直線映射爲任意折線,只能映射爲特定折線,能行是巧合。

其優點就在於只進行了一次矩陣變換,爲什麼這麼說?

  1. 爲什麼這些變換矩陣不寫出來,放個圖片就完了?因爲限於作者水平,即使再簡單也碼不出來;而稍微複雜的,計算機能夠自動生成。
  2. 有電腦了,終於不用自己動手了,但是伴隨着新的問題,只是讓電腦去找一個A還好,要是讓它去找AB,那完蛋了,因爲:AB=AIB=(AC)(DB),不給它一個限制,只要滿足CD=I的C、D矩陣計算機都能找出來,或者說,它會浪費時間搞出各種A,B矩陣(對於它來說AC就是A,DB也是B),所以正則化是自從計算機和矩陣乘法有關聯後,就必討論的題目之一。

2.3 偏移b

偏移b很重要,從前面的圖可看出,對於有一個斷點的線性函數,發生折射的區域是第一象限外,所以需要依靠偏移b把需要分離的點或點集移出第一象限。

3分形與級聯(串聯)

上面我們看到一個夾心結構能夠直線映射爲任何折線(最多折2^n-1次),可以解決許多矩陣變換不能解決的問題。但是僅限於此也談不上多特別,畢竟用核函數也未必不能得到。

3.1 級聯(串聯)

所以如下圖所示,我們將上述映射作爲一層,2層級聯(串聯)

 

連接處做簡化,下圖所示,虛線框內是令A2等於上圖的B1A2。

根據評判原則,一層的作用最多能將一條直線折2^n-1次,做l層串聯最多可以將一條直線折(2^l^n)-1次,但是這個與單層的折(2^l^n)-1次不同,這是一種類似分形。

3.2 分形與級聯

可以想象,我們把一張紙(平行直線排列成一個陣列)2^n-1折(折不準確,應該是m個方向扭曲,每個方向k折,但是有助於理解)有2^n個子空間後,在上面刻花,每條打折的直線會記錄下花的部分信息,把這些直線拉直排列起來,會發現有2^n朵花的圖案,這是一種分形,來一個分形的圖案(來自百度百科:分形)

如果是多層級聯,那麼相似的圖案就像細胞分裂或類似核反應,往下層複製。

從映射上看,對於兩層,上層劃分成各種子空間,各子空間內對應B1、B2、B3...變換,由於下層會分形般複製上層,也必然會複製上層的子空間劃分,那麼在下層中,各個子空間的空間內按上層的方式進行劃分,分成子子空間,第i個子空間的第j個子空間內實施AiBj映射。

擴展想象:多層級聯就是一層又一層,層層疊疊,形成一層一層的空間嵌套,比如類似盜夢空間,類似分形。

3.3 級聯的意義

其意在於什麼呢,應該在於高效利用資源,比如:單層如果要實施2^nl種變換需要2個n×l維方陣(注意:n×l維意味着m×m矩陣,m=n×l),但是對於級聯只需要l+1個n維方陣。

4 特點分析

4.1.1矩陣規模

這裏還有一個問題,我們知道Ax表示對x做A變換,如果我們要找的映射關係是Bx與Cx的疊加那一個矩陣夠用嗎,由於B+C還是個矩陣,所以我們就用1個沒問題,但如果是這種映射呢,即對特定的x實施多種變換的疊加,由於多種變換的疊加後還是一個變換(這個解釋是從有限斷點的線性函數得出的。又因①非線性函數可以用有限斷點的線函數來逼近,②爲保證扛擾動,矩陣變換後需要分離的數據點不會太近。所以非線性函數的作用可以用有限斷點的線函數替代)

那能行,所以相同的矩陣規模能對各種問題做出很好的映射,或者說,只要能對一種或多種問題做出很好的映射,那總是能對各種問題做出很好的映射

4.1.2減小矩陣規模

n維矩陣最多實現2^n種變換共存,多層級聯的話更多,但實際上我們遇到的問題用不了這麼多,又由於解法並不唯一,比如我們做異或運算只用了y1軸作爲界面,很明顯y2軸也可以,解法不唯一。1個矩陣變換就可以解決許多映射,所以很多問題即使縮減規模也能得到很好映射,表現在把某層或多層的矩陣的部分元素拿走,比如基數或偶數元素拿走。

4.2與核函數的區別

單獨比較,本文的映射:兩矩陣夾一個函數比核函數靈活,總的來看,與核函數不衝突,可協作,比如對核函數作用後的數據進行映射作爲一層,多層級聯,等等等各種奇葩組合....

5小結

本文一開始,我們希望有一種變換能根據x所在空間位置的不同而做不同的變換,如今得到了這麼一種映射,這是一扇新的大門;

雖然矩陣乘矩陣還是矩陣,但是,我們在這裏看到,中間夾了一個函數後,就發生了特別的變化;但其本質是對矩陣變換飛躍性的改進,這就是作者持有的一個核心觀點之一。

6用途與缺陷

6.1 用途

全文都在講這種特殊的映射,那麼它(這種映射)有什麼用,比如,矩陣變換可以做圖像處理這種映射,但是做不了邏輯映射或模式識別,意味着相對矩陣,它擅長邏輯映射與模式識別。

實際情況也差不多,大家用它來做圖像識別(會比較慢),一般都配合核函數,會比較快(分工合作,它專門負責識別模式),也用它來做語言識別,互動,翻譯什麼的;開車好像也可以,比如紅燈停綠燈行這些簡單的邏輯,或者很複雜的交通邏輯,等等等,反正用途大的要死。但是問題在於什麼呢,這些場合,比如語言識別,互動,翻譯、開車等等需要的是死記硬背模式,還是理解執行?

6.2 缺陷

1)與矩陣變換類似,這種變換同樣存在類似的問題:不同映射不能共存,這個很好理解,每一層的矩陣確定了,映射就確定了。 這意味着一旦映射改變(我們的問題改變),矩陣就會變,就需要計算機重新尋找矩陣,所以雖然是多細胞了,但還是有缺陷。

2)這種變換做的是映射,這是它的特點,也是它的缺陷,與矩陣變換類似,世界很複雜,特點變缺點;難道世界有這麼複雜,是的,如果我們對它期望很高。

如果我們想得到更高級的映射,那至少需要它具備觀察、感知、認知、學習、推理、執行這麼幾點;但它總是被詬病爲鸚鵡,因爲鸚鵡不理解卻也能靠死記硬背講出流利的語言,只不過它是更強大的鸚鵡。

有對立面,才能進化,作者認爲雖然有缺陷,但它有繼續進化的潛能

6.3 繼續進化

首先第2點詬病的理由是不對的,理解屬於高度抽象的層面,而其載體不具備理解能力,那很正常,比如,細胞只能進行生化反應,巨量細胞構成的腦只能進行大量的生化反應,但是它們這些反應的集合體-意識,纔有理解的能力;所以說計算機不理解,不能說明什麼,也說明不了什麼。

其次真正讓它成爲鸚鵡的原因是大數據小任務的特點,或者說,如果它理解了,根本不需要這麼多的數據,比如有一句話叫舉一反三,只要學習1條數據就能解決3個問題;鏈接http://www.sohu.com/a/227854954_297710對這些問題講的很好。

“理解”這個詞太抽象層次太高了,先撇開不說,對於第一個缺陷,那麼有沒有一種算法能夠不用改變矩陣就能做出多種映射呢?答案是肯定的,下一章站在對立面的對立面來討論這個問題。(有其他事,暫時終)

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章