特徵提取

特徵提取（Feature extraction）在機器學習、模式識別和圖像處理中有很多的應用。特徵提取是從一個初始測量的資料集合中開始做，然後建構出富含資訊性而且不冗餘的導出值，稱為特徵值（feature）。它可以幫助接續的學習過程和歸納的步驟，在某些情況下可以讓人更容易對資料做出較好的詮釋。特徵提取是一個降低維度的步驟，初始的資料集合被降到更容易管理的族群（特徵）以便於學習，同時保持描述原始資料集的精準性與完整性。

當一個演演算法的輸入資料太過於龐大冗餘以至於不便處理（如：一樣的測量方法但是分別使用英尺和公尺表示，或是影像中像素的重複性），這些資料可以被轉換成化簡後的特徵集合，也稱作特徵向量（feature vector），決定這些原始資料子集的步驟稱為特徵提取。成功的情形下，被選擇的特徵包含跟輸入資料相關的資訊，因此這些被化簡後的特徵能夠被用來做理想的任務，而不使用原始完整的初始資料來做這個任務。

## 概論

相較於原始龐大的資料集合需要很大量的資源來描述，特徵提取可以減少需要描述這些資料的資源。當我們分析複雜資料時，其中一個主要的問題是源自於變數的數量過多。分析很多個變數一般來說需要很大量的記憶體以及計算能力，同時太多變數也可能造成分類問題的演演算法有過度擬合於訓練資料的現象，因此對新的採樣無法有效地歸納。特徵提取是處理變數組合並維持資料充足的準確性時，常通稱的術語。很多機器學習的實作者認為適當的特徵提取是有效模型構建的關鍵。

可以利用已經建構好的應用相關的特徵集合來改善結果，通常這樣的特徵集合是被專家所建構。其中一種此類處理被叫做特徵工程師。除此之外，我們也可以使用一般的降維技術，如下:

- 獨立成分分析
- 等距特徵映射
- 核主成分分析
- 潛在語義學
- 偏最小二乘迴歸
- 主成分分析
- 多因子降維法
- 非線性降維
- 多線性主成分分析
- 半定式嵌入
- 自編碼器

## 圖像處理

特徵提取其中一個非常重要的應用領域為圖像處理，其中的演演算法可以被用來偵測跟分離數位影像跟影片串流中，想要提取的部分或形狀(特徵)，無論是哪種類型的圖像，二值圖像（binary image）、彩色圖像（colored image）或灰度圖像（gray image），圖像處理都可以通過特徵提取來進行，特徵提取可以應用於多種用途，像是識別（identification）、分類（classification）、診斷（diagnosis）、聚類（clustering）、認識（recognition）、檢測（detection）。而從初始的特徵提取原理說起，當中最為重要的幾個特徵提取方法又可以分為四種：幾何特徵、統計特徵、紋理特徵和色彩特徵。

### 色彩特徵

色彩特徵的定義：色彩特徵可以被定義為能夠根據圖像自身的顏色特徵來區分圖像的尺度（scales）。

色矩 (英語：Color Moments)

在圖像中，色彩矩被解釋為機率分佈（probability distribution）。色彩矩有三個主要部分：均值（Mean）、標準差（Standard Deviation）和偏度（Skewness）。

- 均值 (Mean)

平均值可以被定義為影像中的平均色彩值，由以下方程式定義。

$$M_j = \frac{1}{M} \sum_{i=1}^{m} P_{ji}$$

- 標準差（Standard Deviation）

標準差是分佈變異的平方根，以下方程式解釋了標準差的定義。

$$\sigma_j = \sqrt{\frac{1}{M} \sum_{i=1}^{M} (P_{ji} - M_j)^2}$$

- 偏差 （Skewness）

將偏差解釋為分佈不對稱程度的量測。

$$S_1 = \sqrt[3]{\frac{1}{M} \sum_{i=1}^{M} (P_{ji} - M_j)^3}$$

- 偏度 （Color Moment Skewness）

偏度是描述數據分布不對稱性的統計量，正偏表示右側有長尾，負偏表示左側有長尾，零值表示對稱分布。

$$s_j = \sqrt[3]{\frac{1}{N} \sum_{i=1}^{N} (p_{ij} - \mu_j)^3}$$

色彩直方圖

顏色是最常見且廣泛使用的特徵，因為相較於其他特性，它更直觀且包含更多重要的資訊。從圖像中提取顏色特徵非常容易，而且顏色直方圖將顏色分佈以一組方框呈現。

平均RGB值使用此功能的目的是在使用各種功能時進行影像過濾。第二個原因選擇這個特徵是因為使用少量資料來表示向量參數。

### 紋理特徵

紋理是自然界中隨處可見的許多類型影像的最重要特徵例如醫學影像和感測器影像等。紋理定義為表面人類視覺系統對自然物體的表現。很容易被大家肉眼辨識，但很難確定矩陣中的紋理，但它發生在分析的矩陣區域中透過定量和定性分析進行，其主要有兩種方法。

灰階共生矩陣 (Gray Level Co-occurrence Matrices (GLCM))

用於測量影像上給定偏移處出現的灰階值的直方圖。用於提取紋理來自破碎的組織圖像。這些是 GLCM 熵、對比、相關性、能量和均勻性所特有的五種不同的紋理特徵。

- 熵（Entropy）

利用隨機性的統計測量來區分輸入影像的紋理。

$$\text{Entropy} = -\sum\sum{q(i,j)\log{q(i,j)}}$$

其中 $q$ 是GLCM中灰階共生矩陣的數量。

- 對比

計算整個影像的像素和相鄰像素之間的密度對比。

$$\text{Contrast} = \sum {(i, j)^2 q(i, j)}$$

其中，$q(i,j)$ 為位置 $(i,j)$ 的像素。

- 相關性

這個尺度的作用是衡量指定像素對中指定的機率。

$\text{Correlation} = \sum_{i=0}^{M-1} \sum_{j=0}^{M-1} \frac{(i - n_i)(j - n_j) q(i, j)}{\sigma_i \sigma_j}$

- 能量

是 GLCM 中元素的平方和。

$$\text{Energy} = \sum\sum {q(i,j)^2}$$

- 均勻性

它用於測量 GLCM 中元素分佈到 GLCM 對角線的近似程度，如下公式所定義。

$$\text{Homogeneity} = \sum_{i,j} \frac{q(j,i)}{1+\left| {j-i} \right|}$$

Tamura

- 粗糙度（英語：Coarseness）

粗糙度主要是與灰度空間變化的距離相聯繫，這隱含地與構成紋理的原始元素的大小相關聯。它直接與尺度和重複的平均值以及最大主要紋理特徵相關。圖像在不同的尺度上包含迭代的紋理圖案，粗糙度試圖找到組織存在的最大尺寸，即使在較小的組織情況下，如下方程所示。

$$R_M(x,y) = \sum_{i=x-2^{M-1}-1}^{x+2^{M-1}} \sum_{y-2^{M-1}-1}^{y+2^{M-1}} \frac{F(i,j)}{2^{2M}}$$

其中，$2^{M*}2^M$大小為鄰域的平均值。

方程式如下表示計算對應於非重疊鄰域的一對平均值之間的差異。

$$S_{M,h}(x,y) = \left|R_M(x+2^{M-1},y)-R_M(x-2^{M-1},y) \right|$$

- 對比

灰階變化程度的測量分配是其分佈為黑色或白色。確定對比度，使用四階灰度和二階的中心矩。

$\text{Contrast} = \frac{\sigma} {\alpha_4}$, where $\alpha_4 = \frac{N_4}{\sigma^4}$

where $N_4$ is the fourth moment about the mean and 2 is the variance. $m = 1/4$ to give the closest

value according to Tamura.

- 方向性（英語：Directionality）

方向性（Directionality）是衡量圖像中局部邊緣相對於方向角分佈頻率的方法。它是一個區域的全局屬性。這一特徵不能區分趨勢或模式，但通過方向性來測量圖像的整體方向性程度。在Tamura特徵中，方向性是最重要的特徵之一，它通過矩陣來區分圖像之間區域一致性的差異。

$$\text{Directionality} = 1-rm_{peaks}\sum_{p=1}^{m_{peaks}}\sum_{b \in w_{p}}(b-b_p)^2H_{directionality}(b)$$

其中：

$m_p$：峰值的數量

$b_p$：峰值的位置

$w_p$：分配給第P個峰值的角度範圍

$r$：一個與角度的量化水平相關的歸一化因子

$b$：量化的方向角

$\mathrm{H_{directionality}}$：量化方向值的直方圖，由具有相應方向角的邊緣像素數量構成

- 線條相似性（英語：Line-Likeness）

線狀性（Line-likeness）僅指紋理基元的形狀。線狀紋理具有直線或波狀的基元，其方向可能不固定。通常，線狀紋理同時具有方向性。線狀性（flin）可以按如下方式計算：

$$flin = \sum\sum{PDd(i,j)njmicos^{f()}[(i-j)2\pi n}]\sum\sum{PDd(i,j)njmi}$$

其中$PDd(i,j)$是距離 d 處的點的 n×n 局部方向共生矩陣。

- 規律性（英語：Regularity）

規律性（Regularity）衡量圖像中模式的恆定性或可比較性，其定義如下公式所示：

$$\text{Y}_{\text{Regularity}} = 1 - R(C_{\text{CRS}} + C_{\text{con}} + C_{\text{dir}} + C_{\text{lin}})$$

其中:

$R$ 是一個歸一化因子。

$C_{\text{CRS}}$ 是粗糙度指標，表示 $f_{\text{CRS}}$ 的標準差。

$C_{\text{con}}$ 是對比度指標，表示 $f_{\text{con}}$ 的標準差。

$C_\text{dir}$ 是方向性指標，表示 $f_\text{dir}$ 的標準差。

$C_\text{line}$ 是線狀性指標，表示 $f_\text{line}$ 的標準差。

- 粗糙度（英語：Roughness）

規律性（Regularity）衡量圖像中模式的恆定性或可比較性，其定義如下公式所示：

$$Roughness = Coarseness + contrast$$

常見的影像處理相關的特徵處理如下:

### 低階的特徵

- 邊緣檢測
- 角檢測
- 斑點檢測
- 脊檢測
- 尺度不變特徵轉換

### 曲率

- 邊緣方向
- 改變強度
- 自相關

### 影像動作

- 移動偵測
- 微分方法
- 光流法

### 形狀相關

- 二值化
- 連通分量標記
- 模板匹配
- 霍夫變換
- 廣義霍夫變換

## 軟體中的特徵提取

很多資料分析的軟體包提供特徵提取以前資料降維。常見的數值編程環境有提供內建的指令來做一些較簡單而常用的特稱提取(例如:主成分分析)。更多特定的演演算法可以在公開的腳本或第三方提供的擴充包中取得。另外，也有軟體包為了特定軟體機器學習應用，特別為其設計特徵提取。

## 深度學習的特徵提取

以往主成分分析為特徵提取極常使用的降維方法，近來利用深度學習神經網路的自編碼器則相當常被使用。他可以跟深度學習中的各種技術(例如:深度神經網路，卷積神經網路)結合。其中，卷積神經網路能十分有效的擷取影像中的特徵，因此對於影像的資料降維擷取特徵的效果特別傑出。此外，卷積神經網路在大型資料庫中影像辨識相關的議題上(例如:物件分類)取得相當傑出的成果。因此也有人使用在大型資料庫上預先訓練好的卷積神經網路來做特徵提取。

### 現代特徵提取技術

方法｜創新點｜適用領域

Vision Transformer｜基於注意力機制的圖像分塊處理｜CV/NLP

MoCo v3｜對比自監督學習｜跨模態任務

DINO｜自蒸餾特徵提取｜Few-shot學習

基準測試*（ImageNet-1K）：

- - ViT-L/16 Top-1 Acc: 85.3%
- - ResNet-50 Top-1 Acc: 76.5%