正如Azure最新的機(jī)器學(xué)習(xí)服務(wù)所顯示的那樣,機(jī)器學(xué)習(xí)已不再僅僅是關(guān)乎視覺和語音。
微軟在機(jī)器學(xué)習(xí)上押下重注的一個關(guān)鍵部分是,這些技術(shù)需要被民主化,并且能夠轉(zhuǎn)變?yōu)橄鄬θ菀桌斫獾臉?gòu)建塊,以便微軟的開發(fā)人員能夠快速學(xué)習(xí)并在自己的應(yīng)用程序中進(jìn)行使用。
這就是Azure認(rèn)知服務(wù)的用武之地。這些服務(wù)不需要用戶了解ResNet50深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)的訓(xùn)練層次,也不需要了解如何使用TensorFlow或Microsoft Cognitive Toolkit (CNTK)來構(gòu)建學(xué)習(xí)平臺,而僅僅只需要使用API即可。微軟已經(jīng)為這些服務(wù)訓(xùn)練了神經(jīng)網(wǎng)絡(luò),并將繼續(xù)對它們進(jìn)行優(yōu)化,還將真實世界的操作用來作為未來改進(jìn)的基礎(chǔ)。與構(gòu)建和運行您自己的機(jī)器學(xué)習(xí)算法的計算和存儲成本相比,它們的使用成本則相對低廉。
Azure上的機(jī)器學(xué)習(xí)工具已迅速成為了任何想要向應(yīng)用程序添加基本人工智能的人的重要資源。需要注意的是它們的使用范圍依然是有限的,其重點放在了以下三個關(guān)鍵領(lǐng)域:計算機(jī)視覺、文本分析和語音識別。它們都是重要的領(lǐng)域,但它們也只是現(xiàn)代機(jī)器學(xué)習(xí)的一個有限子集而已。
Azure認(rèn)知服務(wù)
進(jìn)入了一個新的AI領(lǐng)域
幸運的是,第一個探索機(jī)器學(xué)習(xí)在其他方面應(yīng)用的新認(rèn)知服務(wù)也在最近進(jìn)入了測試階段:將異常檢測添加到了功能集中。異常檢測是一種重要的人工智能工具,用于分析在數(shù)據(jù)源正常運行特征之外的時間序列數(shù)據(jù)。這使得它成為了一個非常靈活的工具,因為現(xiàn)代企業(yè)擁有大量的流數(shù)據(jù),從金融交易到軟件日志再到設(shè)備遙測。顯然,你不應(yīng)低估使用一個API就可以在所有這些不同的數(shù)據(jù)源中工作的能力,因為它使構(gòu)建適當(dāng)?shù)能浖兊酶尤菀琢恕?/span>
正常情況下,異常檢測需要足夠的時間來設(shè)置。您需要使用大量數(shù)據(jù)來對您的模型進(jìn)行訓(xùn)練,以確定什么是正常操作,什么是異常操作。這就是信用卡欺詐檢測系統(tǒng)是如何建立一個你的消費(以及他們所有客戶的習(xí)慣)模型,以檢測何時使用了被泄密了的卡片,并阻止任何未來的交易,將損失降到最低的。
如果要使這種類型的操作成為通用服務(wù),就需要能夠為發(fā)送到服務(wù)的數(shù)據(jù)類型切換合適的檢測模型。這正是Azure認(rèn)知服務(wù)異常檢測器所采用的方法,它能夠使用一個自適應(yīng)推理引擎來選擇一個適合當(dāng)前時間序列數(shù)據(jù)的檢測模型。
通過在運行時選擇算法,微軟繞過了異常檢測訓(xùn)練成本中最糟糕的部分。可能它使用的算法并不完美,但是它將比使用一個通用規(guī)則引擎來處理異常檢測要好得多。還有一個額外的好處:您不必花費大量的時間來標(biāo)記千兆字節(jié)的訓(xùn)練數(shù)據(jù)了。
構(gòu)建異常檢測應(yīng)用程序
與所有Azure認(rèn)知服務(wù)一樣,異常檢測器也需要一個訂閱密鑰,該密鑰可以在Azure門戶中生成,連同你的訂閱端點URL。微軟還提供了一個運行在Jupyternotebook上的演示服務(wù),您可以使用它在使用您自己的代碼和數(shù)據(jù)之前快速試用該服務(wù)。
實際上,您將通過異步函數(shù)來向服務(wù)端發(fā)送JSON格式的數(shù)據(jù)。如果您正在處理流數(shù)據(jù),您可以在每次更新時發(fā)送一個時間序列數(shù)據(jù)的移動窗口,并檢測序列中最后一段數(shù)據(jù)的異常情況。如果您使用它來分析批處理數(shù)據(jù),那么您將得到數(shù)據(jù)集中已標(biāo)識的異常位置的列表,其中保存著每個數(shù)據(jù)點的布爾值數(shù)組。如果為true,則表示異常,您可以使用任何true值所對應(yīng)的索引來作為您所提供的源數(shù)據(jù)數(shù)組中異常的索引。
使用時間序列數(shù)據(jù)
異常檢測器的工作原理與大多數(shù)Azure平臺服務(wù)類似,它提供了一個REST API來接收J(rèn)SON格式的數(shù)據(jù)。使用C# SDK可以更容易地構(gòu)建代碼來使用該服務(wù);您也可以使用其他語言,但這樣你就需要手工來構(gòu)建REST調(diào)用。
微軟對數(shù)據(jù)格式也有一些限制:數(shù)據(jù)之間的時間間隔必須是固定的,雖然系統(tǒng)可以接受丟失最多10%預(yù)期點的數(shù)據(jù),但最好確保您的數(shù)據(jù)是完整的。如果要交付具有清晰模式的數(shù)據(jù),則批處理中的數(shù)據(jù)點的數(shù)量可能會有所不同。數(shù)據(jù)集中至少需要有12個點,最多8,640個點,時間戳使用UTC格式。
您不僅限于在流數(shù)據(jù)上使用異常檢測器;如果使用時間序列數(shù)據(jù)庫來記錄數(shù)據(jù),那么你也可以在所有數(shù)據(jù)上以批處理的方式運行它,但這可能意味著要發(fā)送大量的數(shù)據(jù)。這種方法可以幫助識別過去可能被忽略的問題,例如發(fā)現(xiàn)不正常的金融交易,這些交易是出現(xiàn)欺詐的指標(biāo),或是可能影響整體生產(chǎn)力的機(jī)器的持續(xù)問題。在歷史數(shù)據(jù)上運行它可以幫助您獲得所需的信息,以便對您所使用的算法進(jìn)行微調(diào),從而使其更有可能發(fā)現(xiàn)您特定業(yè)務(wù)中的問題。
調(diào)整異常檢測器
關(guān)于異常檢測API需要注意的一點是:它與其他的認(rèn)知服務(wù)有所不同,因為您可以調(diào)整它處理數(shù)據(jù)的方式。作為JSON請求的一部分,您可以指定數(shù)據(jù)周期的詳細(xì)信息、它的粒度以及兩個微調(diào)算法敏感性的選項。其中一個是maxAnomalyRatio,它被用來幫助識別數(shù)據(jù)點是否出現(xiàn)了異常。另一個則是sensitivity,幫助調(diào)整算法的邊際值;數(shù)值越低,邊緣越大,異常檢測的靈敏度則越低。
您的應(yīng)用程序中可能有大量的時間序列數(shù)據(jù),而且通常很難從中提取價值。通過添加一點機(jī)器學(xué)習(xí),您就可以開始查看那些不符合正常模式的內(nèi)容了,然后使用這些信息構(gòu)建適當(dāng)?shù)捻憫?yīng)。
這就是為什么使用像Jupyter Notebook這樣的工具來探索結(jié)果,并在將其構(gòu)建為代碼之前對檢測器進(jìn)行調(diào)優(yōu)是一個好主意的原因了。您首先需要查看發(fā)生了什么異常,并且能夠?qū)⑺鼈兣c需要管理的事件聯(lián)系起來。通過使用交互式筆記本和歷史數(shù)據(jù),您可以從中找到適當(dāng)?shù)南嚓P(guān)性,從而幫助您設(shè)計應(yīng)用程序,以使用接近實時的異常檢測來交付您可以理解的結(jié)果。這時您就可以開始使用異常檢測API來獲得真正的業(yè)務(wù)價值了。
-
異常檢測
+關(guān)注
關(guān)注
1文章
42瀏覽量
9740 -
Machine
+關(guān)注
關(guān)注
0文章
6瀏覽量
8331 -
Azure
+關(guān)注
關(guān)注
1文章
123瀏覽量
12778
原文標(biāo)題:如何在Azure machine learning中使用異常檢測
文章出處:【微信號:D1Net08,微信公眾號:AI人工智能D1net】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論