CDA網(wǎng)校:數(shù)據(jù)科學、人工智能從業(yè)者的在線大學。
數(shù)據(jù)科學(Python/R/Julia)數(shù)據(jù)分析、機器學習、深度學習
作者 | 我的智慧生活
來源 | 咪付
生活中,距離通常是用于形容兩個地方或兩個物體之間的遠近。在人工智能機器學習領(lǐng)域,常使用距離來衡量兩個樣本之間的相似度。
“物以類聚”
我們知道“物以類聚”通常用于比喻同類的東西經(jīng)常聚在一起。機器學習中,距離就是遵循物以類聚的思想。通過兩個樣本特征數(shù)據(jù)進行距離計算后,得到的距離值越小,代表兩者的相似度越高,屬于同一類的可能性就越高。換句話說,距離能夠決定樣本的歸屬。
例如,在下圖中,對于機器學習來說存在著兩種距離:
(1)一是人物的空間位置距離;
(2)二是人物的性格愛好距離。
機器學習中的分類距離" style="border: 0px; max-width: 100%; margin-right: auto; margin-left: auto; display: block;">對第1種距離來說,A與C較A與B近;而對第2種距離來說,則是A與B較近(愛打球)。A與B的愛好距離可通過如下計算:
我們用0—10分來表征每個人對打球的喜好程度,分數(shù)越高代表越愛打球,假設(shè)A、B、C三人的分值分別如下:
機器學習中的分類距離" style="border: 0px; max-width: 100%; margin-right: auto; margin-left: auto; display: block;">可以看出,A、B兩人的分數(shù)較接近,A、B兩人的分數(shù)差小于A、C兩人的分數(shù)差,這個分數(shù)差值也就是機器學習中要計算的距離。通過比較得出,A、B兩者的距離小,容易歸為一類。當然,這里僅僅分析了愛打球這一個特征屬性,機器學習中通常涉及多個屬性進行綜合計算和判斷,也就是多維度分析。
物理幾何空間距離
機器學習中,計算兩個樣本點之間的距離有多種不同的距離衡量方法,其中最常見的就是采用物理幾何空間距離進行衡量。所謂物理幾何空間距離就是點到點之間在物理空間中的真實距離。通俗地說,這類距離看得見、摸得著。常見的物理幾何空間距離有:
歐氏距離
(Euclidean Distance)
曼哈頓距離
(Manhattan Distance)
切比雪夫距離
(Chebyshev Distance)
閔氏距離
(Minkowski Distance)
夾角余弦
(Cosine)
這幾類物理幾何空間距離的應(yīng)用非常多,尤其是歐氏距離。
曼哈頓距離
我們首先從曼哈頓距離來形象了解機器學習中的距離,曼哈頓距離也是機器學習中常采用的一種距離。
我們知道曼哈頓是“世界的十字路口”,那里有非常多的十字交叉路口。
機器學習中的分類距離" style="border: 0px; max-width: 100%; margin-right: auto; margin-left: auto; display: block;">曼哈頓距離,說的是從街區(qū)中的一個十字路口到另一個十字路口所經(jīng)過的街區(qū)距離,因此也稱為城市街區(qū)距離。下圖中給出了曼哈頓距離的形象說明,當我們開車從街區(qū)的一個十字路口(O)到了另一個十字路口(E)所經(jīng)過的街區(qū)距離為:a+b,這就是曼哈頓距離。
機器學習中的分類距離" style="border: 0px; max-width: 100%; margin-right: auto; margin-left: auto; display: block;">O、E兩點之間直線段距離是我們生活中常說的兩個地方(O、E)之間的距離,而在實際街區(qū)中的情形,車輛無法從O沿直線開到E,除非具備像蜘蛛俠一樣的飛行本領(lǐng)可以穿越其中的大樓,這就是曼哈頓距離的由來。
一圖看清“歐曼雪”
下面我們再從簡單的二維平面坐標圖來對比了解歐氏距離、曼哈頓距離和切比雪夫距離(以下簡稱“歐曼雪”)這三種距離的區(qū)別。
機器學習中的分類距離" style="border: 0px; max-width: 100%; margin-right: auto; margin-left: auto; display: block;">上圖是由X和Y組成的二維平面坐標,現(xiàn)有A、B兩個二維樣本值,其投影坐標點分別為:
A(X1,Y1)、B(X2,Y2)
A、B兩點之間的直線段距離(圖中的c)就是A、B兩個樣本的歐氏距離。因此,歐氏距離就是兩個樣本值投影在其坐標空間上的兩點之間的直線距離。
如何計算A與B之間的歐氏距離?
從圖中可以看出,A、B兩點之間的直線段(c)與其橫坐標差值線段:
a=X2-X1
縱坐標差值線段:
b=Y2-Y1
構(gòu)成了一個直角三角形,根據(jù)勾股定理的關(guān)系可知:
c2=a2+b2
因此,我們可以根據(jù)坐標點A(X1,Y1)、B(X2,Y2),求得c值。即計算式為:
c2=a2+b2=(X2-X1)2+(Y2-Y1)2
A與B之間的曼哈頓距離又是怎樣的距離呢?
上圖中曼哈頓距離是由A沿直線走到C,再由C沿直線走到B,總共經(jīng)過的距離,即為:
a+b=|X1-X2|+|Y1-Y2|
再來看切比雪夫距離,在上述二維平面坐標示意圖中,A與B之間的切比雪夫距離則是選取a、b中值最大的,若a>b,切比雪夫距離即等于a,其計算表達式為:
Max(|X1-X2|,|Y1-Y2|)
由此可看出,上述“歐曼雪”三種距離的實質(zhì)分別如下:
- 歐氏距離 -
兩個樣本同一特征分量值差值的平方之和,再開平方根
- 曼哈頓距離 -
兩個樣本同一特征分量值差值的絕對值之和
- 切比雪夫距離 -
兩個樣本同一特征分量值差值的絕對值中的最大值
假如現(xiàn)在有三個人A、B和C(即樣本A、樣本B和樣本C),我們需要以性格、愛好這兩個屬性為依據(jù)來判斷他們的相似度,A、B、C的綜合屬性值則表示為:A(性格1,愛好1)、B(性格2,愛好2)、C(性格3,愛好3)。
我們設(shè)定上述性格、愛好等每個分量特征屬性的取值范圍為0—10分。以性格活潑、愛好打球具體屬性為例,若性格很活潑,分值為10,若性格不活潑,分值則為0分,其余介于很活潑和不活潑之間的,則取0—10之間的分值;同理,若很愛打球,分值為10分,不愛打球,分值則為0分,其余介于很愛打球和不愛打球之間的,則取0—10之間的分值。
針對性格活潑、愛好打球的兩項特征,假設(shè)A、B、C三人的取值分別如下:
機器學習中的分類距離" style="border: 0px; max-width: 100%; margin-right: auto; margin-left: auto; display: block;">我們現(xiàn)以上述A、B、C三個樣本A(4,4)、B(9,5)、C(6,1)投影到二維坐標上,分別計算A、B樣本之間和A、C樣本之間各自的歐氏距離、曼哈頓距離和切比雪夫距離,參照二維坐標投影圖,計算結(jié)果如下:
機器學習中的分類距離" style="border: 0px; max-width: 100%; margin-right: auto; margin-left: auto; display: block;">機器學習中的分類距離" style="border: 0px; max-width: 100%; margin-right: auto; margin-left: auto; display: block;">
從上表結(jié)果可知,A、C兩個樣本的歐氏距離、曼哈頓距離和切比雪夫距離均小于A、B兩個樣本,因此,A與C的相似度較高。這一結(jié)果與二維坐標圖上的直觀顯示相符(即線段AC<AB)。這也很容易理解,兩點之間的直線距離越小,當然就越靠近,如果兩點完全重合,那就是零距離。
閔氏距離
由上述例子的計算結(jié)果可知,盡管歐氏距離、曼哈頓距離和切比雪夫距離各自的定義和計算都不相同,但它們最終衡量的結(jié)果是相一致的。這三類距離也可歸為閔氏距離。
閔氏距離也稱閔可夫斯基距離,根據(jù)其變參數(shù)p的不同,可以歸為不同類型的距離,比如:曼哈頓距離(p=1);歐氏距離(p=2);切比雪夫距離(p→∞)。
我們已經(jīng)知道歐氏距離的實質(zhì)是兩個樣本同一特征分量值差值的平方和,然后再開平方根,這里的平方指數(shù)就是閔氏距離的變參數(shù)p取2,如果平方指數(shù)(即2次方)換成其他次方(比如1,3,4次方等等),那就是其他類閔氏距離。
因此,也可以將閔氏距離看成是歐氏距離指數(shù)的推廣距離,兩者實質(zhì)特點對比如下:
機器學習中的分類距離" style="border: 0px; max-width: 100%; margin-right: auto; margin-left: auto; display: block;">可見,閔氏距離不僅涵蓋了“歐曼雪”三種距離,實則也是歐氏距離指數(shù)的推廣(指數(shù)范圍擴大到任意整數(shù))距離。
當然,以上僅考慮了性格、愛好這兩個特征屬性來分析判斷兩個人的相似度。但是如果僅憑性格、愛好兩個方面來預(yù)估兩人的相似度,似乎有點過于簡單粗暴,通常情況下,我們還要結(jié)合更多的特征因素來綜合考慮,例如人生觀、價值觀、家庭背景等,從而得出更加準確的歸類判斷結(jié)果。如果在性格、愛好兩個特征的基礎(chǔ)上增加人生觀這一特征因素來評判,A、B兩人的綜合屬性值則表示為:A(性格1,愛好1,人生觀1)、B(性格2,愛好2,人生觀2),其具體特征值假設(shè)為:A(4,4,3)、B(9,5,6),在計算各類距離時,則相應(yīng)增加人生觀這一特征的差值。例如:
曼哈頓距離計算為:
|4-9|+|4-5|+|3-6|=9;
切比雪夫距離計算為:
Max(|4-9|,|4-5|,|3-6|)=Max(5,1,3)=5;
歐氏距離計算為:
(4-9)2+(4-5)2+(3-6)2 =52+12+32=35,再開平方根所得。
對比上表中兩維的計算式,可見,增加了|3-6|或(3-6)2這一項差值。
同理,如果在性格、愛好、人生觀這三個特征屬性的基礎(chǔ)上,還需考慮價值觀、家庭背景這兩個特征屬性,總共就變成了五個分量特征,那就是五維的情形。在計算上述各類距離時,則相應(yīng)增加價值觀、家庭背景這兩個分量特征的差值。
可見,每增加一個分量特征,維度就增加一個,計算距離時則相應(yīng)增加該維度分量特征的差值。人工智能機器學習中,為了達到更準確的分類目的,往往要涉及非常多的維度,因而其計算量也相應(yīng)增大。例如我們熟悉的人臉識別應(yīng)用中通常采用512維特征向量,即有512個分量特征,以更好地區(qū)別出每一個人。
假設(shè)分別用兩個特征向量:
A(X1, X2,....,X511, X512)
B(Y1, Y2,....,Y511, Y512)
來表示兩個512維人臉特征數(shù)據(jù),則該兩個人臉樣本之間的歐氏距離為:
( (Y1-X1) 2+(Y2-X2) 2 +......+(Y511-X511) 2 +(Y512-X512) 2)
計算求得512個分量值差的平方和,再開平方根,即為兩者的歐氏距離。這就是高維歐氏距離的計算。
夾角余弦
除了以上各類常見的閔氏距離,還有一種較常用的距離,那就是夾角余弦。夾角余弦根據(jù)兩個樣本向量的夾角余弦值大小來確定樣本的相似性。余弦值越接近1,余弦夾角就越接近0度,兩個向量越相似。
現(xiàn)我們?nèi)砸院唵蔚钠矫娑S坐標的來了解夾角余弦的本質(zhì)。以上述A、B、C三個樣本A(4,4)、B(9,5)、C(6,1)為例,其在二維平面坐標的投影點如下圖所示,從坐標原點O出發(fā)分別指向A、B、C三個點的線段(OA、OB、OC)則為A、B、C三個樣本點的向量,A、B之間的向量夾角則為θ1,A、C之間的向量夾角則為θ2,根據(jù)三角形AOB的邊長可計算出θ1的余弦值,根據(jù)三角形AOC的邊長可計算出θ2的余弦值。θ1、θ2夾角示意圖及其計算式如下表所示:
機器學習中的分類距離" style="border: 0px; max-width: 100%; margin-right: auto; margin-left: auto; display: block;">夾角余弦計算公式(二維)
根據(jù)兩個樣本的坐標值計算
機器學習中的分類距離" style="border: 0px; max-width: 100%; margin-right: auto; margin-left: auto; display: block;">余弦值取值范圍為[-1,1]。余弦值越大,夾角越小。
A、B樣本夾角余弦值
向量OA與OB之間的夾角余弦值
機器學習中的分類距離" style="border: 0px; max-width: 100%; margin-right: auto; margin-left: auto; display: block;">A、C樣本夾角余弦值
向量OA與OC之間的夾角余弦值
機器學習中的分類距離" style="border: 0px; max-width: 100%; margin-right: auto; margin-left: auto; display: block;">可以得出θ1<θ2,從而得出A和B相似度高。
通過對比發(fā)現(xiàn),以上夾角余弦相似度的判斷結(jié)果與歐氏距離等的判斷結(jié)果正好相反。這是為什么呢?這是因為歐氏距離和余弦相似度各自的計算方式和衡量角度不相同,歐氏距離關(guān)注的是兩點之間的絕對距離,而夾角余弦相似度注重的是兩個向量在方向上的差異,而非距離。如下二維坐標圖中,有A、C兩個樣本,歐氏距離關(guān)注的是AC兩點的直線段距離,與OA、OC線段長度密切相關(guān);而夾角余弦則是關(guān)注OA線段與OC線段重合需掃過的角度(θ)大小,與OA、OC線段長度無關(guān)。因此,夾角余弦相似度是整體方向性上的判斷,而歐氏距離則是各分量特征的絕對差值判斷。
機器學習中的分類距離" style="border: 0px; max-width: 100%; margin-right: auto; margin-left: auto; display: block;">我們還可以用兩個等邊三角形的例子來具體了解兩者的實質(zhì)差別。假設(shè)有兩個等邊三角形T1和T2,其邊長分別為8和4,現(xiàn)以三個邊長為分量特征屬性來表征三角形,其在三維空間的投影坐標點分別為T1(8, 8, 8)、T2(4, 4, 4)。由邊長數(shù)值可知,兩個等邊三角形雖然邊長差距大,但形狀完全相似。從其投影坐標點可知,由于T1、T2各個邊長分量差值相同,兩個坐標點在三維空間坐標上投影方向完全相同。對T1、T2之間的歐氏距離及夾角余弦作對比如下:
機器學習中的分類距離" style="border: 0px; max-width: 100%; margin-right: auto; margin-left: auto; display: block;">機器學習中的分類距離" style="border: 0px; max-width: 100%; margin-right: auto; margin-left: auto; display: block;">
從以上對比分析可以看出,歐氏距離和余弦相似度各自的評判標準不同,得出的結(jié)論也可能完全不同,因此,兩者可根據(jù)適用的場合選擇采用。歐氏距離適用于需要從每個分量特征差距中體現(xiàn)差異的分析,如通過用戶行為指標分析用戶價值相似度。余弦相似度更適用于綜合性的導向評價,如通過用戶對內(nèi)容評分來區(qū)分用戶興趣的相似度等,余弦相似度也常用于計算兩個文本之間的相似度。
以上各類常見的物理幾何空間距離不僅容易理解,而且方便好用,在樣本各個維度數(shù)據(jù)完整好的情況下具有較理想的預(yù)判效果。但同時這幾類距離也存在著一些明顯的不足,如缺乏考慮各分量之間的相關(guān)性影響、各分量特征側(cè)重排序等。
例如上述的例子中,也許需要對性格、愛好、人生觀、價值觀、家庭背景等分量特征進行側(cè)重排序,又或者人生觀這一分量特征會對價值觀、愛好等分量特征有影響。如需考慮分量相關(guān)性、個體相對于總體的比重等相關(guān)因素,更多則是采用基于概率統(tǒng)計的分布距離,較常用的有:馬氏距離、巴氏距離、杰卡德相似系數(shù)、皮爾遜系數(shù)等。這些距離的計算多涉及統(tǒng)計學及概率論知識,因而相對較復(fù)雜。
但無論是物理幾何空間距離,還是基于概率統(tǒng)計的分布距離,它們的中心思想都是統(tǒng)一的,那就是距離越近越相似。
關(guān)注“AIU人工智能實驗室”,回復(fù)“錄播”獲取更多人工智能精選直播視頻!
完 謝謝觀看