當前位置:
首頁 > 科技 > 應用 AI 之前,你必須了解的 10 項準備工作

應用 AI 之前,你必須了解的 10 項準備工作

2017-09-02 Martin Heller 機器之能

這篇文章對你的人工智慧和機器學習項目進行分解,討論其各個部分所帶來的影響,從而幫助你確定公司是否真正準備利用機器學習、深度學習或人工智慧。

編譯 | Rik R 藤子

來源 | CIO

不是每一個問題都可以通過機器學習來解決,且不是每一個公司都準備應用人工智慧。本文會告訴你,你的公司是否有利用人工智慧的條件,以及在那之前如何才能實現它。

首先,你知道自己想要預測或檢測什麼嗎?你有足夠的數據進行分析以建立預測模型嗎?你有定義模型和訓練模型所需的人員和工具嗎?你已經有了統計或物理模型來作為一個預測基準嗎?

這篇文章對你的人工智慧和機器學習項目進行分解,討論其各個部分所帶來的影響,從而幫助你確定公司是否真正準備需要利用機器學習、深度學習或人工智慧。

你擁有大量的數據

足夠的相關數據是預測和特徵識別的必要條件。有了它,你可能會成功;沒有它,則註定失敗。那麼你需要多少數據呢?你嘗試納入模型的因素越多,所需要的數據就越多,無論你是在做普通的統計預測、機器學習還是深度學習。

以銷售預測中常見的問題為例,比如,為了避免延遲交貨,且不會佔用太多金錢和現貨貨架空間,那麼你下個月將在邁阿密出售多少海軍藍短袖襯衫?以及你需要在邁阿密店和亞特蘭大倉庫中儲備多少存活?零售是強季節性行業,所以你需要從多年的歷史數據中總結出有統計學意義的月度數據,從而修正月度銷量波動,並建立一個年化趨勢——這還只是一個標準的時間序列分析。機器學習比統計模型需要更多的數據,而深度學習模型是它的好幾倍。

統計模型會分析你的全國連鎖店在 5+ 年間的襯衫月銷量,並使用這一數據來預測下個月的襯衫銷量,可能有幾十萬(假設是 30 萬)。然後你可以預測邁阿密的襯衫銷量佔全國銷量的百分比(假設是 3%),並單獨預測出藍色短袖上衣銷量所佔襯衫性銷量的百分比(假設是 1%)。該模型會指出,下個月藍色短袖襯衫總銷量的 90% 左右將售於邁阿密。你可以通過對比不同產品的年度同店銷量來核實預測結果,同時分析它們之間的差異程度。

現在,假設你想要考慮一些外部因素,比如天氣和流行趨勢。短袖襯衫在熱天或晴天時是不是比陰雨天時賣的更好?可能如此。你可以將歷史氣象數據納入到你的模型中來做預測,雖然這樣做有點笨拙,因為你需要做一個時間序列的統計模型,所以你可能會決定使用回歸森林,順便再試試其它 7 種回歸機器學習模型,然後將每個模型測得的「cost」(一個歸一化誤差函數)與去年的實際結果相比較,從而找到最佳模型。

相比於去年同時段的海軍藍襯衫銷量,下個月會更好還是更差?你可以看看海軍藍服裝所有的月度銷量,並預測出年度流行趨勢,然後將其納入到你的機器學習模型中。或者你可能需要來自時尚媒體方面的信息對模型進行手動校正。(「為以防萬一,假設下月銷量會提高 20%。」)

也許你想建立一個深度神經網路來完善這個模型。你可能會發現,每添加一個隱藏層,就可以將回歸誤差提高几個百分點,直到某一時刻,再添加隱藏層也無濟於事,此後收益遞減。這種情況可能是因為模式中沒有更多的特徵可供識別,或者更可能的原因是,已經沒有足夠多的數據來支持模型的深入改進。

你有足夠的數據科學家

可能你已經注意到,單個人需要獨自建立上面討論的所有模型。其實不是這樣,建模型不僅僅是把數據倒在漏斗中然後按個按鈕這麼簡單。不管你使用哪種工具——儘管供應商可能對此會有要求,它需要經驗、直覺、編程能力和良好的統計學背景,這樣才能輕鬆駕馭機器學習,從而實現你的想法。

尤其是某些廠商往往聲稱,「任何人」或「任何業務角色」都可以使用商家預先訓練過、可應用的機器學習模型。如果該模型正好可以解決手頭的問題,這話不假,比如將正式的魁北克法語文本翻譯為英語,但更常見的情況是,現有的訓練過的機器學習模型並不適用於你的數據。既然你已經訓練了模型,你就需要數據分析師和數據科學家來指導訓練,這更像是一門藝術,而非工程或科學。

在招聘數據科學家時,最奇怪的事情之一就是對工作崗位的要求,尤其是與受聘者的實際技能相比。廣告上經常說「招聘:數據科學家。STEM 博士。20 年經驗。」第一個怪事是,該領域的發展歷程還未足 20 年。第二件怪事是,公司僱傭 26 歲的碩士畢業生——也即除學術界外沒有任何工作經驗,與 20 年經驗的要求相去甚遠——偏好那些已經有相關經驗的人,因為他們擔心高級人員太貴,儘管他們的要求是 20 年工作經驗。是的,這很虛偽,且十之八九是非法的年齡歧視,但現實情況就是這個樣子。

你跟蹤或獲得那些重要的因素

即使你有大量的數據和很多數據科學家,你也可能無法擁有包含所有相關變數的數據。以資料庫術語的話說,你可能有大量的行,但缺少一些列。統計學上來說就是,你可能有無法解釋的方差。

一些獨立變數的測量(比如天氣觀測)很容易獲得並被合併到數據集中,甚至可在事後被合併。其它一些變數的測量或獲取過程可能較為困難,比如不切實際或成本高昂,即使你知道這些變數是什麼。

舉一個化學領域的例子。當你在銅上鍍鉛時,你可以測量氟硼酸鍍液的溫度和濃度,並記錄陽極電壓,但如果溶中沒有適宜數量的肽鏈,那麼你就不會得到很好的結果。如果你沒有稱量放入溶液中的肽鏈,就無法知道這種關鍵催化劑的劑量,那麼你將無法使用其它變數來解釋電鍍質量的變化。

你有清理和轉換數據的方法

數據幾乎總是那麼嘈雜。測量過程可能會丟失一個或多個值;單個值可能會超出範圍,或與同一計量過程中的其它值不相稱;電子測量可能由於電雜訊而變得不準確;回答問題的人可能並不理解問題本身,或是編造答案;諸如此類。

在任何分析過程中,數據過濾步驟通常需要消耗最多設置時間——是根據我的經驗,它佔到總分析時間的 80% 到 90%。有些公司在它們的 ETL(提取、轉換和載入)過程中清理數據,這樣分析師應該永遠都看到不良數據點了,而其它公司則將數據與 ETL(以及最後一步的轉換步驟)過程放在數據倉庫或數據湖中。這意味著,即使是最容易過濾掉的臟數據也會被保存下來,理論上,過濾器和轉換步驟需要隨著時間的推移而進行改進。

即使是過濾後的精確數據可能也需要在分析前做進一步的轉換。與統計學方法一樣,只有當每種可能的狀態都有相似的行數時,機器學習模型的效果才最好,這意味著,那些最受歡迎的狀態數可能會由於隨機抽樣而減少;同樣,當所有變數的範圍都被標準化後,機器學習模型才能達到最佳效果。

例如在微軟的一篇博文中,微軟小娜分析了特朗普和柯林頓的競選捐款,說明了準備機器學習數據集的方式:創建標籤、處理數據、設計附加功能以及清洗數據。這種分析用 SQL 和 R 語言做了幾個轉換,以確定與柯林頓或特朗普相關的各種委員會和競選資金,並基於捐贈者的姓名來確定他們的性別,以及糾正拼寫錯誤,並修復類之間的不平衡性(數據集中有 94% 都是柯林頓的捐款,且大部分是小額捐款)。

你已經對數據做了統計分析

在分析數據和解決問題時,最應該避免的就是一個勁地往前沖。在你能夠弄清楚發生的事情及其原因之前,你需要退後一步,看一看所有的變數及其相互之間的關係。

探索性的數據分析可以快速顯示出所有變數的範圍和分布,比如變數對是趨向於彼此依賴還是各自獨立、簇位於何處,或哪些地方可能會有離群值。當你的變數高度相關,往往減少分析過程中的某個變數是很有用的,或進行一些類似於逐步多元線性回歸的方法來確定最佳的變數選擇。並不是說最終模型是線性的,但是在引入困難問題之前,嘗試一些簡單的線性模型很有用;如果你的模型條件太多,那麼你可以以一個超定組(overdetermined system)收尾。

你測試許多方法來找到最佳模型

對於一個給定的數據集,找到最佳模式的方法只有一種:全部試一遍。如果你的建模對象之前已經有很多人做過,但仍具挑戰性,比如攝影特徵識別和語言識別,你可能不由得只想嘗試大賽中的「最佳」模型,但不幸的是,那些模型往往是最為計算密集型的深度學習模型,比如圖像識別需要卷積層,語音識別需要長短期記憶層(LSTM)。如果你需要訓練那些深度神經網路,你可能需要比日常辦公所需的更多的計算能力。

你有足夠的計算能力來訓練深度學習模型

你的數據集越大,你的深度學習模型就需要越多的層,訓練神經網路的時間也就越多。擁有大量的數據可以幫助你訓練出一個更好的模型,層數多可以幫助你識別更多特徵,但它們也會由於訓練時間的增加而對你產生不利的影響。你可能等不了一年的時間來訓練每一個模型;一周是比較合理的,特別是因為你將很有可能需要調整幾十次模型。

解決訓練時間問題的一個方法是使用通用圖形處理器(GPGPU),比如使用英偉達公司生產的晶元,來做有關神經網路層的向量和矩陣計算(也稱為線性代數)。相比於僅僅使用一張 CPU,同時使用一張 GPU 和一個 CPU K80 往往可以提升 5 到 10 倍的訓練速度,如果你能將整個網路的「核(kernel)」輸入到 GPU 的本地存儲器中的話,而如果使用一張 P100 GPU,則可以將訓練速度提升 100 倍。

在一張 GPU+一張 CPU 的組合之外,你還可以建立多個 CPU 和 GPU 的協調網路,以便在更短的時間內解決更大的問題。除非你全年都在訓練深度學習模型,且有一個巨大的資本預算,否則你會發現,租賃雲端 GPU 的使用時間會是性價比最高的選擇。一些深度學習框架,包括 CNTK,MXNet 和 TensorFlow,支持 CPU 和 GPU 的並行計算,對於有著適宜性能 GPU 的大型虛擬機(virtual machine,VM)網路來說,它們已被證明擁有合理的縮放係數(在一個測試中大約為 85%)。你可以找到這些框架,並且它們正越來越多地被安裝到由主要雲提供商上支持的 GPU 虛擬機中。

你的機器學習模型優於你的統計模型

簡單的統計模型為你的機器學習和深度學習項目奠定了基礎。如果你不能提升一個給定的模型的性能,那麼你就應該對其進行調整或嘗試不同方法。一旦你知道你在做什麼,你就可以在一個超參數優化演算法的控制下,同時為許多模型設置訓練參數,然後用最好的結果指導你的下一步行動。

你可以部署預測模型

最終,你將希望實時應用你所訓練的模型。預測模型可以運行在伺服器、雲端、個人計算機或電話上,這取決於應用程序的不同需要。深度學習框架提供了各種選項來將模型嵌入到網頁和移動應用程序中。亞馬遜、谷歌和微軟都是通過生產能理解語音的消費級設備和智能手機應用程序來證明其實用性。

你能夠定期更新你的模型

如果你已經利用自己的數據訓練好了模型,你會發現該模型的誤差率(假陽性和真陰性)會隨著時間的推移而增加。基本上,這是因為數據會隨著時間的推移而漂移:你的銷售模型、競爭對手、風格和經濟都會改變。為了適應這種影響,大多數深度學習框架都有一個選項,可以在新數據上對舊模型進行再訓練,並用新模型替換預測服務。如果你每月都這樣做,應該能夠保證你不會受到數據漂移的影響。如果你不能,那麼你的舊模型最終將變得不足為靠。

回到本文開頭的那些問題,你知道自己想要預測或檢測什麼嗎?你有足夠的數據進行分析以建立預測模型嗎?你有定義模型和訓練模型所需的人員和工具嗎?你已經有統計或物理模型來作為一個預測基準嗎?

如果已萬事俱備,那你還在等什麼?

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之能 的精彩文章:

2億條視頻觀看時間提升20倍…GoogleBrain如何讓YouTube煥發生機
過去 24 小時的 9 件重要事——AI Daily
摘取自動拾取機器人技術的「聖杯」,隨機拾取在艱難中前行
將量化計算和 AI 用於藥物固相篩選與設計,晶泰科技擬降低不斷攀升的藥物研發成本

TAG:機器之能 |