機器學(xué)習(xí)的樂趣與辛勞
很少有人能夠發(fā)現(xiàn)機器學(xué)習(xí)在企業(yè)應(yīng)用中的巨大潛能。我非常幸運地在***份工作的前幾個月里,就感受到了機器學(xué)習(xí)所帶來的潛在利益。1995年,信用卡發(fā)行方開始使用神經(jīng)網(wǎng)絡(luò)模型進行信用卡詐騙的實時監(jiān)測。一旦信用卡被使用,交易數(shù)據(jù)則會從銷售網(wǎng)點系統(tǒng)傳至信用卡發(fā)行方所授權(quán)的系統(tǒng),在該系統(tǒng)內(nèi),利用神經(jīng)網(wǎng)絡(luò)模型進行欺詐概率的判斷。如果判斷出欺詐的可能性非常高,則會立即拒絕交易。我是開發(fā)此種模型的專家,我所交付的***批模型中,有些就應(yīng)用于南美銀行。模型部署好的***天,就識別出了之前未探測到的詐騙信息,并已達數(shù)百萬美元。這可真是令人大開眼界啊。從那時候開始,我便意識到了機器學(xué)習(xí)在各種應(yīng)用中的巨大價值,例如,需求預(yù)測,故障和異常檢測,廣告定向,網(wǎng)絡(luò)評價以及類似于科塔娜的虛擬助手等。通過將機器學(xué)習(xí)技術(shù)嵌入至企業(yè)系統(tǒng)中,可以改善客戶體驗,降低發(fā)生系統(tǒng)性故障的風(fēng)險,增加收入以及能夠顯著地節(jié)約成本。
但是,建立機器學(xué)習(xí)系統(tǒng)是一個漫長,耗時而且極易出錯的過程。即使現(xiàn)如今我們能夠處理分析非常龐大的數(shù)據(jù)集,并且能夠以較高的交易速率進行部署,但仍有幾個瓶頸問題有待解決:
- 機器學(xué)習(xí)系統(tǒng)的開發(fā)需要精深的專業(yè)知識。雖然機器學(xué)習(xí)的核心原理已經(jīng)廣為人知,但杰出的數(shù)據(jù)科學(xué)家們?nèi)韵穸昵皠偣ぷ髂前阏J真刻苦地進行著研究。
- 從業(yè)者們不得不使用各種工具進行數(shù)據(jù)的收集,清理,整合和分析。這些工具往往入門難,并且綜合性差。部署和維護商業(yè)性機器學(xué)習(xí)軟件的成本也是較高的。
- 建立與驗證模型需要大量的實驗。數(shù)據(jù)專家們往往受限于計算機的性能和存儲容量,因為他們需要運行大量的實驗數(shù)據(jù),而且還會產(chǎn)生大量的新數(shù)據(jù)。
- 軟件工具不支持組織實驗運行的可擴展性試驗與方法。團隊合作的實驗,以及變量和腳本,都是通過人工進行共享,點對點的。所以,評估和調(diào)試統(tǒng)計型模型仍是一大挑戰(zhàn)。
數(shù)據(jù)專家們進行機器學(xué)習(xí)技術(shù)的實驗時,能夠在此種限制條件下編寫定制程序,完成無差別的重任。但是部署階段則非常困難。將機器學(xué)習(xí)模型部署到一個關(guān)鍵性的商務(wù)程序中,例如實時詐騙防護,或者廣告定向等,都需要非常復(fù)雜的工程技術(shù):
- 比較具有代表性的就是,如今線下開發(fā)的機器學(xué)習(xí)模型需要用C++,C#或者Java等開發(fā)語言重新實現(xiàn)。
- 交易數(shù)據(jù)通道需要重新探究。線下模型中的數(shù)據(jù)轉(zhuǎn)化和變量都需要被重新編碼和編譯。
- 重新實現(xiàn)必然會產(chǎn)生故障,需要驗證模型是否能夠如最初設(shè)計的運行。
- 必須為模型建立一個帶有合適監(jiān)測器,權(quán)值和注冊信息的定制容器。
- 高級部署需要A/B測試,用以并行評估可擇模型。還需要一個控制模型進出的開關(guān)機制,***可以避免重新編譯和部署整個應(yīng)用。
- 必須通過統(tǒng)計測試,驗證候選版本的產(chǎn)品模型能如原始設(shè)計一樣工作。
- 必須記錄系統(tǒng)所作出的自動化決策,以及商務(wù)產(chǎn)出,以便于改善機器學(xué)習(xí)模型的監(jiān)測功能。
- 必須具有高可用性的服務(wù),以及端點和端點周圍區(qū)域的災(zāi)難恢復(fù)服務(wù)。
當(dāng)服務(wù)需要滿足更高的交易速率以及/或者低延遲時,則需要更新硬件,還需將服務(wù)部署至新機器并向外擴展。
所有的這些都需要經(jīng)過比較耗時并工程較為密集的步驟。人力和物力的消耗也比較大。端到端的工程建設(shè),以及機器學(xué)習(xí)技術(shù)應(yīng)用產(chǎn)品的維護,則需要水平較高的技術(shù)團隊,但很少有組織或企業(yè)能夠建立并維持這種團隊。
微軟機器學(xué)習(xí)云平臺Azure則可以解決這些問題:
- Azure提供的是全托管式的云服務(wù),不需要安裝軟件,也沒有硬件需要管理,更無需考慮系統(tǒng)版本和開發(fā)環(huán)境等。
- 只需要使用瀏覽器,數(shù)據(jù)專家們則可以登錄Azure,開始機器學(xué)習(xí)模型的開發(fā),沒有地域以及設(shè)備的限制。Azure幾乎可以存儲***量的文件數(shù)據(jù)。
- ML Studio,是一個機器學(xué)習(xí)技術(shù)的整合性開發(fā)環(huán)境??梢愿鶕?jù)簡單的數(shù)據(jù)流圖建立實驗數(shù)據(jù),具有簡便的模板拖拽和連接功能。數(shù)據(jù)專家避免了大量的重復(fù)性勞動,可以集中精力于實驗的設(shè)計和迭代。
- 提供許多實驗范本,入門學(xué)習(xí)較為方便簡單。
- 內(nèi)置許多由微軟研究院開發(fā)的多種優(yōu)秀算法,支持自定義重新編碼 。Azure上有超過350種開源R包,可以安全地使用。
- 數(shù)據(jù)流圖具有可自動并行運行的并行通道,專家們可以執(zhí)行復(fù)雜的實驗,無計算約束地進行并行比較。
- 實驗程序可以隨時分享,讓其他人能夠接著完成未完成的工作。
Azure 易于云上開展大規(guī)模的產(chǎn)品部署。預(yù)先測試過的機器學(xué)習(xí)模型能夠與評分工作流合并,僅僅幾步操作,就能生成一個名為REST的新型云托管API(應(yīng)用程序編程接口)。其具有低延遲響應(yīng)的特點,并且無需重新實現(xiàn),也沒有端口,這大大優(yōu)于傳統(tǒng)的數(shù)據(jù)分析軟件。互聯(lián)網(wǎng)上的任何信息,無論是來自筆記本,網(wǎng)站,還是移動設(shè)備,可穿戴設(shè)備,它們都會被發(fā)送至這個新生成的API,并得到預(yù)測結(jié)果。例如,一位數(shù)據(jù)專家創(chuàng)建了一個詐騙監(jiān)測API,輸入為交易信息,輸出為低/中 /高級別的風(fēng)險指示。此種API會在云端激活,隨時準備好接受調(diào)用。API后端具有可伸縮性,所以,當(dāng)交易頻率起伏較大時,Azure的服務(wù)器能夠自行處理負載量。實際上,Azure并沒有限制數(shù)據(jù)專家們創(chuàng)建和部署的機器學(xué)習(xí)API的數(shù)量,而且,這一切都獨立于其設(shè)計的。對于工程設(shè)計和信息技術(shù)來說,通過使用那些REST API,整合一個新的機器學(xué)習(xí)模型,以及在部署之前對多重模型進行并行測試,都變得較為容易了。而且還具有明顯地高靈活性,低成本的特點。Azure在產(chǎn)品中提供了一些調(diào)整和管理API的機制,包括測量可用性,延遲和性能的機制。對于企業(yè)來說,更快,更低成本,更簡易地建立一套穩(wěn)健,高可用性和高可靠性的機器學(xué)習(xí)系統(tǒng)會帶來巨大的商業(yè)利益。
我們相信Azure帶來了行業(yè)內(nèi)的巨大改變。它使得機器學(xué)習(xí)技術(shù)在初創(chuàng)企業(yè)和大企業(yè)中都具有不可思議的潛能。如今,許多原本只能復(fù)雜業(yè)務(wù)使用的性能,初創(chuàng)公司同樣能使用。大企業(yè)則能挖掘出其大數(shù)據(jù)中的潛在價值,從而提高效率,獲取巨大收益。最重要的是,快節(jié)奏地迭代和實驗伴隨著快速創(chuàng)新,為我們周圍所有智能云端設(shè)備的發(fā)展做好了準備。
在我事業(yè)期初的1995年,建立和部署一套信用卡詐騙監(jiān)測系統(tǒng)需要一個龐大的組織才能完成。如今,借助于如Azure這類的工具和云計算的力量,僅一位杰出的數(shù)據(jù)專家就能完成相同的任務(wù)了。