AI技術的發展,一直都是所有人關注的焦點,數據科學和機器學習更是其中的難點。隨著我們進入2017年下半年,我們可以看到數據科學和機器學習的公司都面臨著共同的挑戰。假設你的公司已經在大規模收集數據,需要用到分析工具,而且你已經認識到數據科學可以發揮重大作用(包括改善決策或企業經營、增加收入等等),并進行了優先排序。收集數據和識別感興趣的問題并非小事,但假設你已經在這些方面起了個好頭,那么還剩下哪些挑戰呢?
數據科學是一個寬泛的話題,所以我要說明一下:本文主要探討的是督導式機器學習的使用現狀。
一切從(訓練)數據開始
假設你有一支處理數據攝取和整合的團隊,以及一支維護數據平臺(“真相來源”)的團隊,新的數據來源不斷出現,由領域專家負責找出這些數據來源。而且,由于我們主要探討督導式學習,因此,訓練數據的缺乏依然是機器學習項目的首要瓶頸,這一點毫不意外。
在迅速創建龐大的訓練數據集(或者加強現有的訓練數據集)方面,有一些很好的研究項目和工具。斯坦福大學的研究人員已經證明,弱監督和數據編程可以用來訓練模型,不必使用大量手工標記的訓練數據。深度學習研究人員對生成式模型的初步研究,已經在無督導式學習的計算機視覺和其他領域取得了可喜的成果。
“思考特性而不是算法”,這是在機器學習背景下評估數據的另一個有用方法。友情提示:數據擴充可能改善你的現有模型,在某些情況下,甚至有助于緩解冷啟動問題。大部分數據科學家可能已經利用開源數據或者通過第三方數據提供商,來擴充他們的現有數據集,但我發現,數據擴充有時會遭到忽視。人們覺得,獲取外部數據、使之規范化、并利用這些數據進行實驗,這不像開發模型和算法那么具有吸引力。
從原型到產品
讓數據科學項目實現產品化,這是許多用例的目標。為了使這一過程更有效率,近來出現了一個新的工作角色——機器學習工程師。還有一套新的工具用于推進從原型到產品的轉變,幫助追蹤與分析產品有關的背景和元數據。
機器學習在產品中的應用還處于早期階段,最佳實踐才剛剛開始出現。隨著高級分析模型的普及,有幾點需要考慮,包括:
部署環境:你可能需要與已有的日志或A/B測試基礎設施進行整合。除了把穩定、高性能的模型部署到服務器以外,部署環境還越來越多地包括,如何以及何時把模型部署到邊緣側(移動設備是常見的例子)。把模型部署到邊緣設備的新工具和策略已經出現。
規模,延遲,新鮮度:需要用多少數據來訓練模型 模型推導的響應時間應該是多少 重新訓練模型和更新數據集的頻率應該是多少 后者說明你擁有可重復的數據管道。
偏差:如果你的訓練數據不具有代表性,那么你將得到不理想(甚至不公正)的結果。在某些情況下,你也許可以利用傾向得分或其他方法,相應地調整數據集。
監控模型:我認為人們低估了監控模型的重要性。在這個方面,學過統計學的人擁有競爭優勢。想知道模型何時退化以及退化了多少,這可能很棘手。概念漂移也許是一個因素。就分類器而言,一個策略是把模型預測的類別分布與預測類別的觀測分布進行比較。你也可以設立不同于機器學習模型評估指標的商業目標。比如,一個推薦系統的任務可能是幫助發現“隱藏或長尾”內容。
關鍵應用程序:與普通的消費者應用程序相比,在關鍵環境中部署的模型必須更加穩定。另外,這類環境中的機器學習應用程序必須能夠數月“連續”運行(不會發生內存泄漏等故障)。
隱私和安全:通常來說,如果你能讓用戶和企業相信他們的數據是安全的,那么他們可能更愿意共享數據。如上文所述,用額外特征進行擴充的數據往往會帶來更好的結果。對于在歐盟經商的企業而言,一個迫在眉睫的問題是,《一般數據保護條例》(GDPR)將于2018年5月生效。在其他領域,對抗性機器學習和安全性機器學習(包括能夠處理加密數據)的實踐研究開始出現。
模型開發
媒體對模型和算法開發的報道越來越多,但如果你同數據科學家交談,他們中的大多數人都會告訴你,訓練數據的匱乏以及數據科學的產品化是更加緊迫的問題。通常來說,市面上已有足夠多的簡單明了的用例,讓你可以開發你喜歡的(基本或高級的)算法,并在以后進行調整或替換。
由于工具使算法的應用變得容易,因此,先回想一下如何評估機器學習模型的結果,這很有必要。盡管如此,不要忽視了你的業務指標和目標,因為它們未必與調試得最好或表現得最好的模型完全相符。關注與公正和透明有關的事情進展,研究人員和企業正開始檢查、解決這方面的問題。對隱私的擔憂,加之設備的激增,催生了不依賴于集中式數據集的技術。
深度學習正逐漸變成數據科學家必須了解的算法。深度學習最初用于計算機視覺和語音識別,現在開始涉及數據科學家能想到的各種數據類型和問題。其中的挑戰包括,選擇適當的網絡結構(結構工程是新的特征工程),超參數調整,以及描述問題和轉換數據以適合深度學習。(巧合的是,今年我見過的最有趣的大型數據產品之一,并不是基于深度學習。)
很多時候,用戶更喜歡可解釋的模型(某些情況下,黑盒模型不被人們所接受)。考慮到基本機制易于理解,可解釋的模型也更容易改進。隨著深度學習的興起,企業開始使用那些能解釋模型預測原理的工具,以及能解釋模型從何而來(通過追蹤學習算法和訓練數據)的工具。
工具
我不想列出一個工具清單,因為可列舉的工具實在太多了。幫助我們攝取、整合、處理、準備和存儲數據以及部署模型的工具都非常重要。以下是對機器學習工具的幾點看法:
Python和R是最流行的機器學習編程語言。對于那些想使用深度學習技術的人來說,Keras是最受歡迎的入門級語言。
雖然筆記本電腦似乎是不錯的模型開發工具,但集成開發環境(IDE)在R用戶中深受歡迎。
通用機器學習和深度學習的庫有很多,其中一些更善于推進從原型到產品的轉變。
推進從單機到集群的擴展是重要的考慮事項。在這方面,Apache Spark是使用廣泛的執行框架。經過一系列的數據整理后,你的數據集往往適合部署到穩定的單一服務器上。
供應商開始支持協作和版本控制。
最后,你可能需要數據科學工具來無縫整合現有的生態系統和數據平臺。
企業如果想評估哪些問題、哪些用例適合于運用機器學習,眼下就是一個很好的時機。我總結了一些近期的趨勢和尚未解決的瓶頸,你從中得出的主要結論應該是:現在可以開始使用機器學習了。先從已經擁有一部分數據的問題入手,然后建立出色的模型。
評論
查看更多