官术网_书友最值得收藏!

2.7 高維空間

我們通常會認為各種各樣的物體占據著(或者說“生活在”)一個或另一個想象的、抽象的空間。有些空間會有成百上千的維度,以至于我們無法繪制出。但是,因為我們將經常談論這樣的“空間”,所以需要對此類空間的含義有一個大致的了解,這很重要。

這一空間的基本含義是,空間的每個維度(或者軸)都指向一種單獨的度量方式。如果我們有一段數據,這段數據中只有一個測量值(如溫度),就可以用一個只有單個值的列表來表示它。從視覺上,我們僅用一條線就可以表示測量值的大小,如圖2.19所示。我們將這條線稱為一維空間(one-dimensional space)。

(a)                         (b)

圖2.19 具有單個值的數據段只需要一個軸(或者說維度)就可以繪制。(a)我們通常用x表示橫軸;(b)包含3段數據,其相對應的線表示它們的大小,從x軸的左邊開始測量

如果我們有兩段信息,如溫度和風速,那么需要兩個維度(或者一個有兩項的列表)來保存數據。我們可以通過兩個軸進行表示,如圖2.20所示。點的位置是這樣確定的,沿x軸移動測量得到第一個度量值,然后沿y軸移動測量得到第二個度量值。我們稱之為一個二維空間(two-dimensional space)。

(a)                    (b)

圖2.20 如果數據有兩個值,我們就用兩個維度(或者說軸)來繪制它。(a)我們通常用y表示垂直方向;(b)包含4段數據,每段數據在二維空間中的位置都由兩個值確定,一個值代表x,而另一個值代表y

如果每段數據有3個值,那么需要一個可以容納3個值的列表,而這3個維度可以用3個軸來表示,如圖2.21所示。我們稱之為三維空間(three-dimensional space)。

(a)                        (b)

圖2.21 如果每段數據有3個值,就用3個維度(或者說軸)去繪制它。(a)一般第3個軸的方向是垂直于紙面進出的,并標記為z;(b)三維空間中的一些點,我們通過它們所在位置沿xyz軸的長度定位它們。其中的盒子只是為了幫助我們看到點在立方體中的位置

如果有4個值呢?盡管做出了很多大膽的嘗試,但是仍然沒有一種可以被廣泛接受的方法來繪制四維空間,尤其是在二維空間上進行繪制([Banchoff90]和[Norton14])。當上升到五維、十維或是二十維的空間時,二維空間更是限制我們的一大原因。

這些高維度空間看起來似乎很深奧、很罕見,但實際上它們很常見,我們每天都可以見到。為了證實這一點,讓我們考慮一下用什么樣的空間來表示一張照片。

假設有一個灰度圖像是500像素×500像素的,那么該用多大的空間來表示這個圖像呢?一條邊上有500個像素,那么整個圖像就是500像素×500像素=250000個像素。其中的每個像素都包含一個值,或者說它們都包含一個度量值。從整個空間的一個角落開始,向右移動(沿著x軸)第一個像素值給定的距離,然后向上移動(沿著y軸)第二個像素值給定的距離,再向后移動(沿著z軸)第三個像素值給定的距離,之后沿著第四個軸移動由第四個像素給定的距離。以此類推,隨后是第五個軸、第六個軸等,讓每個像素都沿著它們相對應的軸移動,這些軸都是不同的。

因為有250000個像素,所以需要250000個維度。這是一個很大的維度!有時,每個像素也可能需要3個值,就需要3 × 250000=750000個維度。

我們畫不出750000維的圖像,甚至無法在腦海中描繪出一個維度如此多的圖像。但是,機器學習算法可以像處理二維或三維空間那樣輕松地處理這樣的空間。數學和算法并不關心一個空間有多少個維度。

要記住的關鍵是:在這個龐大的空間中,每條數據都是單獨的點,就像二維空間中的點用兩個數字告訴我們它在平面上的位置一樣,750000維空間中的點只是用750000個數字告訴我們它在這個龐大空間中的位置。因此可以說,圖像是由一個巨大的“圖像空間”中的一個點表示的。

我們把有很多維度的空間稱為高維空間(high-dimensional space),而對于多少維才算“高”維這一點,目前還沒有一個正式的、統一的規定,但是這個短語常用于描述那些超出我們可以合理繪制的范圍的空間,也就是高于三維的空間。當然,大多數人認為數十或數百個維度才稱得上“高”維。

本書所用算法最大的優點之一就是:它們可以處理任意維度的數據,甚至可以處理近一百萬維的圖像。當涉及更多的數據時,算法的運行速度會變慢,但是它運行的流程不會發生任何更改。

本書頻繁使用的數據可以被抽象成高維空間中的點。我們會側重于對剛剛看到的概念進行直觀的概括,而不是深入數學中。我們會把“空間”看作對直線、正方形和立方體的巨大(無法可視化的)類比,其中每段數據都由用一個點表示。

主站蜘蛛池模板: 延庆县| 仁化县| 米脂县| 松潘县| 都安| 枣庄市| 兰州市| 藁城市| 偏关县| 克什克腾旗| 通渭县| 广平县| 新晃| 敦化市| 华容县| 屏东县| 彰化县| 叶城县| 洛扎县| 桐梓县| 海南省| 仁寿县| 双牌县| 将乐县| 呼玛县| 庄河市| 林周县| 大名县| 新兴县| 泗水县| 余姚市| 永年县| 贡觉县| 绥滨县| 威远县| 方正县| 从化市| 准格尔旗| 伊通| 肇州县| 上蔡县|