假如可以直接 train 一個 classifier,為什麼我們需要 metric learning?
Original Source Here
假如可以直接 train 一個 classifier,為什麼我們需要 metric learning?
在 AMMAI 課堂上,我學了多種 metric learning 的方法,metric learning 的目的是希望學一個好的 embedding, 可以有效的把相同 class 的 sample 聚在一起,不同 class 的 sample 盡量分開。但是假如我們已知有 N 種 class ,那 metric learning 跟直接 train 一個可以 predict N class 的 classifier 差別在哪呢?他的優勢是什麼?
我發現在 stack overflow 上 2017 年就有人討論過這個問題:
Why do we use metric learning when we can classify
整理一下底下的留言大概有幾個情境是 metric learning 可以做得更好的:
- unbalanced dataset: 假如某些 class 的 sample 數量特別少,那 training classifier 可能會完全忽略這些 class。但是 metric learning 因為是針對 sample 計算距離,比較不會受影響。
- one-shot/few-shot learning:當出現一個 新的 class 只擁有 一個/少量 sample 時,metric learning 可以更輕易的去 adapt,學習新的 class,但是一般的 classifier 沒有辦法輕易的 extend 到新的 class。
- metric learning 是 generative model, 而 classifier 是 discriminative model。 或許可以說,metric learning 只是因為他可以把 class 分開,所以可以“順便”拿來做 classification 的問題,但他還可以有其他的應用。他的功能是更強大的,因為可以把 input space 轉換到另一個 feature space, 使得 classifier 更容易工作。
因為這些特性,所以 metric learning 很常被應用在人臉辨識上。假如是使用一般的 classification,那當出現一個新的員工、新的人臉需要辨識的時候(通常稱之為 open-set),我們就必須拿舊有的人臉資料庫加上這個新的人臉資料來重新訓練模型,而這是非常耗時耗資源的。想像公司裡本來有一萬個員工,每天都有 10 位新員工加入,每一次模型訓練都要花 2 天,那根本來不及即時更新人臉辨識打卡系統。但是假如是使用 metric learning,那麼當有新的員工加入,也許只需要一兩個小時的時間,就可以輕鬆成功辨識這個員工了。
AI/ML
Trending AI/ML Article Identified & Digested via Granola by Ramsey Elbasheer; a Machine-Driven RSS Bot
via WordPress https://ramseyelbasheer.io/2021/07/01/%e5%81%87%e5%a6%82%e5%8f%af%e4%bb%a5%e7%9b%b4%e6%8e%a5-train-%e4%b8%80%e5%80%8b-classifier%ef%bc%8c%e7%82%ba%e4%bb%80%e9%ba%bc%e6%88%91%e5%80%91%e9%9c%80%e8%a6%81-metric-learning%ef%bc%9f/