Products and Services PRODUCTS & SERVICES

24/07/2017 作者:ANUP GHOSH

RSA 大會黑帽的展會上,沒有廠商不會談到機器學習和「人工智慧」。但他們很少會解釋它是什麼,它是如何運作的,以及為什麼您應該關心。

在 Sophos,我們已經在資料科學和機器學習方面做了大量投資,包括收購機器學習公司 Invincea,並建立了一組把機器學習融入我們產品核心的資料分析團隊。

我們的機器學習方法一直都是以科學、透明度和驗證為基礎。

我們將透過這個論壇來描述機器學習的基本組成要件和挑戰,以及我們如何處理這些機器學習,而不是將它描述得像萬靈丹一樣。

那只是數學,是嗎?

評估機器學習產品最困難的部分之一,就是揭開面紗和追根究底。

為了提供您了解機器學習,以下我們列出 5 個問題。這些問題直接討論方法的成果,而不論其使用的是什麼演算法。

 

問 1:它的高偵測率令人印象深刻,但是當偵測率提高到這種程度時,誤報率是多少?

只是不斷強調機器學習演算法的偵測率是不夠的。

畢竟,只要簡單地將每個掃描的檔案判定為惡意,就可以輕而易舉地達到 100% 的偵測率。但是,如果您錯誤地阻擋合法檔案,誤報率也會接近 100%。這時連電腦都沒辦法用了。

換句話說,偵測演算法的誤報率至少要與真正的偵測率一樣重要。忽略誤報率就正如只是不斷追趕網路上的幽靈或是中斷使用者的工作。

在機器學習中,這種情形會由所謂的接收器操作特性曲線 (ROC 曲線) 圖表示,該圖將顯示真正的偵測率與誤報率之間的關係。

如果廠商不能也不願意讓您知道 ROC 曲線,那麼您甚至無法在使用前猜到這些產品的偵測率有多低 (換句話說,產品會讓多少惡意軟體通過)。

應該問的問題:我能看看這個產品現在和過去的 ROC 曲線嗎?

 

問題 2:您的模型多久需要更新一次,以及模型在更新之間的準確度下降了多少?

機器學習的真正威力在於,如果訓練有素,它可以非常可靠地偵測到過去未曾發現的威脅。這使得它在主動阻止新的威脅方面特別有效。

另外,一個好的機器學習模式不僅能夠在偵測當今的威脅方面表現出色,而且還會顯示出一種「慢速熟成」的特性,這意味著它能在一段時間不需更新的情況下繼續發現新的威脅。

簡而言之,一個好的機器學習模型在幾個月內能保持一個可接受的偵測率/誤報率平衡,而不僅僅是幾個星期或幾天。

應該問的問題:我可以看看您六個月前發佈的產品更新,它現在的 ROC 曲線嗎?

 

問題 3:您的機器學習演算法是否能夠即時做出決策?

如果掃描惡意軟體的時間比惡意軟體運作的時間更長,那麼您擁有是偵測而不是預防的能力。換句話說,您只會在攻擊發生後才會發現。

某些類型的機器學習被用於篩選攻擊後的資料,試圖大海撈針找到蛛絲馬跡。這對於弄清楚過去發生了什麼事很有用,以便防止它再次發生;但是如果您想在攻擊得逞之前便加以阻止,那麼您需要以毫秒速度運作的演算法,而不是幾分鐘或幾秒鐘。

一般來說,使用資料集且需要連線到雲端的機器學習解決方案不適合您,因為速度慢且不可靠。實際上,資料集應該要夠小,以便可以保存在記憶體中,免去在掃描檔案時從磁碟讀取偵測資料的需要。

應該問的問題:這是即時的嗎?如果是,決策時間需要多長?當電腦處於離線狀態時,效能和準確性會發生什麼變化?

 

問題 4:您的訓練集是什麼?

演算法在實務上的表現是取決於用來訓練它的資料。

「垃圾進,垃圾出」(GIGO) 這句老話在這裡適用。如果用來代表真實環境的資料是純學術性、老舊或者與現實有距離的,那麼在當面對實驗室以外的檔案時,這個演算法不見得夠可靠。

應該問的問題:訓練資料來自哪裡?它為什麼夠真實?有多少資料?您如何保持訓練集永遠如新?

 

問題 5:您的機器學習系統規模有多大?

有鑑於新的威脅 (和新的清理檔案) 一直出現,您需要隨時收集新的且具代表性的資料。

收集越來越多的相關資料就已經夠難了,但是您還需要能夠加快重新訓練和重新測試模型的速度,否則最後產生更新的時間會越來越長。

但是,即使訓練集以指數般的速度暴增,您擷取後用於機器學習模型的資料組大小也需要保持不變。否則運作時的效能會越來越差,只能勉強保持偵測率。

換句話說,「規模」有幾個變數,包括您可以多快地提高訓練集的大小和相關性,無論隨著訓練資料增加,在訓練和測試所需的時間是否可以保持優勢,以及您是否可以保持運作時資料組的大小而不犧牲偵測率 (或增加誤報率)。

應該問的問題:我是否可以從產品的歷史數據了解訓練和運作時間的表現有什麼進步?

 

不僅僅是數學

總結一下,您理想的機器學習方法將會:

  • 可以從發佈的 ROC 曲線中得知,對已知和未知的攻擊提供高偵測率和低誤報率。
  • 使用訓練有素的訓練集來代表現實世界的威脅。
  • 在每次更新之後,能繼續提供數個月的高效能。
  • 提供即時效能 (威脅阻擋),而不會佔用大量的記憶體。
  • 即使在訓練集增加的情況下,也可以可靠地進行擴展,而不會使用更多記憶體或損失效能。

綜合以上,看起來可能要求甚多,但它們正是所有營運環境中的機器學習方法所需要的,也是我們在 Sophos 建置和開發產品的重點。

下次您跟某某聲稱使用機器學習的公司談話時,一定要問這些問題。

當他們回答「那只是數學罷了」時,您就知道該說些什麼了。

 

英文原文: https://news.sophos.com/en-us/2017/07/24/5-questions-to-ask-about-machine-learning/

(本博文為翻譯本,內容以英文原文為準)

Read Similar Articles

Leave a Reply

Your email address will not be published. Required fields are marked *