去年2017年,發生了兩件事情:
- 2017年蘋果公司推出了iPhoneX,捨棄指紋,改用人臉識別Face ID,造成人臉識別相關應用,突然火紅起來。許多做人臉識別的新創公司,市值也倍速增長。
- 2016年,Amazone推出無人商店,Amazone GO。大陸有樣學樣,很快,在2017年中,開始冒出了許多無人商店,其盛況,可比當年2016年共享單車的興起。
這兩件事情,結合在一起,就是「人臉識別在無人商店的應用」。
本篇,從Machine Learning的角度,探討Face Recognition,可以用在無人商店的那些場景。對於客戶而言,無人商店有這4個場景:
- 商店知道進店的客戶是誰
- 商店能為客戶推銷商品
- 客戶能在無店員的情況下,為購買的商品付款
- 商店可以根據客戶過往的銷售記錄,給客戶相關折扣
那麼,Face Recognition是否能應用在這4個場景?其實學過台大線上課程的Machine Learning Foundations,或對統計學有基本概念的,應該可以回答這個問題。
Face Recognition和Fingerprint Verification一樣,都是二元分類的問題:
上圖是Fingerprint Verification。f表示我們有一個很明確的方法,可以知道目前這個指紋是不是你的。若是,則輸出為+1,否則為-1。結果只有兩個,不是+1,就是-1,稱為二元分類問題。
可是通常,我們找不到這種很明確的方法。我們會用機器學習的方式,找到一個與f很接近的方法,稱為g,做為驗證指紋或人臉的方法。
用g識別這張臉是不是你的,若是,則輸出為+1,否則為-1。因為g是來自於機器學習的結果,不能完全代表未知的f。大部份情況下,g的預測的結果和f的一致,少部份情況下會不一致。我們將x視為某個fingerprint或是某個face,做進一步分析:
- g(x) = +1
- g(x) == f(x) True Positive (TP)
- g(x) != f(x) False Positive (FP) —> Error
- g(x) = -1
- g(x) == f(x) True Negative (TN)
- g(x) != f(x) False Negative (FN) —> Error
會有以上4個情況,會有兩個型態不同的Error。
True和False,這兩值是從何而來?當預測的g和實際的f一致 g(x) == f(x),則為True,不一致 g(x) != f(x),則為False。
Positive和Negative,這兩值是從何而來?取決於g的結果,+1代表Positive中文稱為陽性,-1代表Negative中文稱為陰性。
為何Positive和Negative無法從f的結果得出?那是因為我們永遠無法找到f。若能找到,就不用機器學習了。
以上4個情況,我們可以整理出一個Confusion Matrix:
這兩種型態不同的Error,稱為False Accept和False Reject:
- False Accept (False Positive):誤識別
- 別人的指紋,識別成我的指紋。或我的指紋,識別成別人的指紋
- 別人的臉,識別成我的臉。或我的臉,識別成別人。如,小孩的臉可以解鎖父母的iPhone X,這種情況時有耳聞。
- False Reject (False Negative):不識別
- 系統不認我的指紋。如iPhone的指紋,常常不靈光。
- 系統不認我的臉。如iPhone X在昏暗的環境下,人臉解鎖的失敗率較高。
然後,根據場景的需要,會有兩種Cost Matrix:
Cost Matrix 1
Cost Matrix 2
Cost Matrix 1 在乎的是 False Accept。如發生False Accept時,Cost設為1000。適用的場景如下:
- 支付:
- False Accept發生的機率要很低:若無人商店採用刷臉支付,萬一有一個人刷臉,系統誤識別為我的臉,那麼我就莫明奇妙被扣款。發生這種事情,會對無人商店的品牌信任度造成極大的損失。
- False Reject發生的機率不用太低:頂多刷臉支付失敗,再刷一次就好了。
- 手機解鎖:
- Fase Accept發生的機率要很低:駭客想用指紋登入我的手機,萬一真的被試成功了,我會造成很多損失。
- False Reject發生的機率不用太低:頂多指紋登入失敗,再按指紋一次就好了。
Cost Matrix 2 在乎的是 False Reject。如發生False Reject時,Cost設為10。適用的場景如下:
- 商品推薦
- False Reject發生的機率要很低:若無人商店根據人臉,為客戶推薦商品。若False Reject機率太高,識別不出客戶,就無法為客戶推薦商品。商店可能會有營收上的損失
- False Accept發生的機率不用太低:無人商店誤識別人臉為另外一個客戶,為客戶推薦錯誤的商品,這件事情的嚴重性,比識別不出客戶而不推薦任何商品,要來的低。
- 折扣
- False Reject發生的機率要很低:若無人商店根據人臉,給客戶折扣。若False Reject機率太高,識別不出客戶,客戶拿不到折扣會不高興。
- False Accept發生的機率不用太低:無人商店將陌生人臉誤認為另外一個客戶,而給陌生人折扣,這件事情的嚴重性,比識別不出客戶而給任何折扣,要來的低。
是不是有一個方法讓False Accept和False Reject發生的機率都變小?Face Accept Rate (FAR)和False Reject Rate (FRR)之間的關係,是一個 DET 曲線 (Detection Error Tradeoff Graph):
FAR = (False Accept) / (True Positive + False Accept)
FRR = (False Reject) / (True Negative + False Reject)
若透過Machine Learning找到一個g,它的FAR愈小,FRR就愈大,反之亦然。
回到客戶在無人商店的4個場景,看看Face Recognition可以應用在那些方面。
- 商店知道進店的客戶是誰
- 商店能為客戶推銷商品
- 客戶能在無店員的情況下,為購買的商品,付款
- 商店可以根據客戶過往的銷售記錄,給客戶相關折扣
1 商店知道進店的客戶是誰
此場景可以用Face Recognition實現,並且重點在FRR要盡可能小。
2 商店知道進店的客戶是誰
此場景可以用Face Recognition實現,並且重點在FRR要盡可能小。
3 客戶能在無店員的情況下,為購買的商品,付款
用Face Recognition實現刷臉付款,非常危險,即使FAR可以設非常小,也會有問題。根據2015年FDDB為各家的Face Recognition分析,發現在FRR<=70%的情況下,FAR可以達1/2845。意思就是2845次刷臉,會有一次出現FAR。若無人商店的註冊人數突破2845,那麼FAR出現的次數就會更頻繁,會造成災難性的結果。
所以,完全靠刷臉支付,不可行。那我們會想,結果其它的Biometric Authentication,如指紋、虹膜、或聲紋,是否會好一點?這是所謂的Biometric Multi-Factor Authentication,還是會有FAR的問題。另外一個方法是,Biometric Authentication後,要求客戶輸入簡單的PIN碼,但還是有可能,誤識別的客戶,PIN碼剛好和另一個客戶一樣。
我個人認為,無人商店,在免密支付的過程中,不應該用任何生物識別技術(包含人臉)驗證客戶的身份,做為支付與否的依據。
4 商店可以根據客戶過往的銷售記錄,給客戶相關折扣
此場景可以用Face Recognition實現,並且重點在FRR要盡可能小。
-Count
沒有留言:
張貼留言