經常聽到搞算法的人把“feature”掛在嘴邊,這個 feature 可不是產品經理丟給開發的feature -- 產品的新特性,而是“特征”。在機器學習中,特征是被觀測對象的一個獨立可觀測的屬性或者特點。比如識別水果的種類,需要考慮的特征(屬性)有:大小、形狀、顏色等。要識別一個人是誰,可以用他的走路姿勢、說話語氣等來衡量。古人歸有光在《項脊軒志》提到了“足音辨人”的技能,所以走路的腳步聲也可以用來作為是別人的特征。
特征一般用數值而非文字等其他形態,主要是為了處理和統計分析的方便。特征的特點是:有信息量,區別性,獨立性。背后的思路是通過一個抽象、簡化的數學概念來代表復雜的事物。
特征向量
一個特征不足以代表一個物體,所以機器學習中使用特征的組合--特征向量。它是一個 n 維的數值向量,可以用來代表某個東西。比如人臉識別中,使用256維度的向量來代表一個人的面部特征。特征向量都是為了解決實際問題而專門設計的,比如進行人臉識別的場景和進行水果種類識別的場景,使用的特征向量肯定是不一樣的。
用途
有了特征向量這種物體的數字化表示,就可以做檢索,分類等應用了。
檢索場景:收集公司中員工的面部特征值作為底庫,在公司門口使用攝像頭分析鏡頭前來人的特征,兩者做比對就可以作為門禁使用。可以使用逃犯的照片作為底庫,在演唱會門口分析參會人員的特征,就可以抓逃犯。
分類、預測場景:特征向量經常和權重做點乘來構建一個線性預測函數,可以用來做預測。比如預測人的性別,年齡,種族等。
極簡例子
假設我們要實現《寫給小朋友看的人工智能介紹》中的識別蘋果和香蕉的邏輯。那么可以選擇特征向量 fv 為 [形狀狹長,是黃色]。形狀狹長這個特征的取值范圍為[0, 1],值越大代表形狀越狹長。是黃色這個特征是離散值,是為1,不是為0。設置閾值為0.5,如果計算出來的結果大於0.5,說明是香蕉;反之結果小於0.5,是蘋果。那么我們的預測機制是:先判斷出當前照片的特征向量,如下圖,由於形狀是圓形,顏色為綠色,所以其特征向量 fv為:[0,0],然后再求fv和w的標量積:fv*w = 0, 所以結果是蘋果。
總結一下,特征最早來源於統計學中如線性回歸中的可解釋變量,用途是為了用數字化的形式來區分實際場景中的物體,一般會要求特征有區分度、可衡量相似性的特點。