異常偵測(anomaly detection)
/ uh-NOM-uh-lee dee-TEK-shun /
異常偵測,是一門發現「那個不該在這兒的東西」的本領——那個打破了其餘一切所遵循模式的資料點。想像一位看了同一個大堂好多年的保安;他沒有一份列著所有可能闖入者的名單,可一旦有什麼不對勁,他立刻就能察覺。異常偵測也是這樣:它不去學著認出壞的個案(壞例子也許太少,或者乾脆還沒有),而是學習「正常長什麼樣」,再把任何偏離得很遠的,都標記出來。
正是這種思路,使它既強大又棘手。在詐騙、入侵、或設備故障裡,那些值得關注的事件,往往稀少、多變、且不斷演化——你沒法為它們收集一個龐大的、帶標註的訓練集,而明天的異常,可能跟昨天的長得毫不相像。於是系統去建模那一團稠密的「尋常行為」,再把稀疏、遙遠的點當作可疑。方法從簡單的統計閾值,到一些學著「重建正常資料、再把重建得很糟的都標出來」的模型,不一而足。
它在詐騙偵測、網路安全、工業監控、醫學篩查裡都要緊——凡是稀有事件代價奇高之處。誠實的難處,在於「漏掉真異常」與「被誤報淹沒」之間的權衡。閾值定得緊,你抓住了詐騙,卻惹惱了成千上萬的正常客戶;定得鬆,真的那些就溜走了。而且「異常」本身從不意味著「壞」——一個不尋常的資料點,可能是詐騙、可能是感測器故障、也可能只是一樁罕見卻正當的事件;所以一次標記,是拋給人類的一個問題,而非一紙定罪。
你的銀行卡通常在一座城市裡、於白天進行小額消費。突然冒出一筆凌晨3點、在另一個國家的3000美元刷卡。詐騙系統從沒拿「你的」那種特定詐騙訓練過——它只是知道:這筆交易遠遠落在你的正常模式之外,於是它暫停扣款,給你發條簡訊。很多時候那其實是一趟真的出行;這次標記是一個問題,而非一紙指控。
異常偵測學的是「你的正常」,再去質疑那些偏離了它的東西。
正因為異常稀少,準確率在這裡是個糟糕透頂的指標:一個什麼都不標記的偵測器,可以有99.9%的準確率,卻毫無用處。真正的權衡,是「精確率」對「召回率」——你標記的裡頭有多少是真的,對上你抓住了多少真實個案——而恰當的平衡點,完全取決於「漏報的代價」相對於「誤報的代價」孰輕孰重。