我們從小就說,“點動成線,線動成面,面動成體”,其中的空間的概念到底是啥?之前沒有好好想過,在機器學習中多次遇到“空間”、“超平面”,“分割面”等概念,一會n維,一會兒n+1維,理解的有點模糊。今兒突然應該是徹底想明白了,記錄一下。
先拋出一個問題:\(x_1 + x_2 + 2 = 0\) 請問,是幾維空間,對,是二維空間,那是平面,還是直線哪?
咦,二維空間,我們通常不是說二維空間是平面嗎,但這里,怎么看都是一個直線方程啊。。。怎么理解 \(x_1 + x_2 + 2 = 0\) “二維的方程表達的是直線”,但同時通常說“二維平面”這一現象?
二維本質是面,是指在兩個變量沒有任何的約束情況下的任意組合(基坐標的線性組合)\(a_1x_1+a_2x_2 = {\bf ax}\) 點 \((a_1,a_2)\),則所有點的集合即為整個平面。
如果,這個線性組合被約束了,比如:\(x_1 + x_2 + 2 = 0\),則相當於一個變量能被其他變量的線性組合表達,其本質是只有1個自由變量,所以本質上是被降了一維(n-1維),所以看起來是二維的自由變量,本質上是一個自由變量,另外一個是因變量,故其本質是一維的“線”。
若果令 \(L = a_0+a_1x_1+a_2x_2={\bf ax}\)(這里把截距單獨拿出來了),跟則在 \(L\) 根據 \({\bf a}\) 的變化,可以表示二維平面中的任意一條直線,從這個角度理解,所有的直線的集合不就構成了面嗎。並且,為了形式上的統一,二維空間中的任意一條直線\(L\),可以表達為:\(a_0+a_1x_1+a_2x_2=0\) 形式。
在機器學習中,為了將這個 \(0\) 作為應變量(類別) \(y\) 的比較對象,將幾何意義直線 \(L\) 的作為代數表達 \(y=0\) :
上面的例子中,若 \(y\) 為 \(x_1 + x_2 + 2 = 0\) 的直線,如果令 \(y=2\) 則 \(y=x_1 + x_2 + 2 = 2\) 相當於該直線向下平移了2個單位距離,因此在SVM中,本質上使用距離的度量去表示因變量(樣本類別)——整個SVM模型的研究坐標空間只有特征空間(最后一個坐標是第n個自變量\(x_n\),不是因變量 \(y\))。因此,有了 \(y=x_1 + x_2 + 2 = 0\) 這條直線(超平面),可以很方便的寫出超平面的上下方區域的代數形式:\(x_1 + x_2 + 2 > 0\) 為下半面,\(x_1 + x_2 + 2 < 0\) 為直線的上半面——大於0在直線左邊,小於0在直線右邊。至於到底是上方還是下方,則看直線的斜率——斜率為正,大於0則在上方;否則在下方。
注:
由於我們是在二維平面上討論 \(y=x_1 + x_2 + 2\) 這個三個變量的事情,相當於在將三維空間的事情,放在二維空間上來討論,用直線位置的變化來表示第三維的變量的取值;如果上升一個坐標維度,放在三維空間內討論,那么就是正類、負類分別散落在平面\(y=0\)的散點圖:
關於隱函數和其求導,這邊文章寫的挺好,可以看看:
《小談導數、梯度和極值》