如何成為更好的AI專業人員?請查收這7條實戰經驗

Baihai_IDP發表於2022-04-12

作者:Ygor Serpa 編輯:小白

在從事機器學習、人工智慧和開發工作近六年後,我列出了我多年來從成功和失敗的專案中總結的七條經驗教訓。最核心的一點是,儘管學習了無數的模型和技術,一名高效、專業的資料科學家和演算法工程師要學會盡可能避免複雜性。畢竟真正驅動商業價值的是對緊迫問題的有效解決,而非盲目追求最先進的技術。

更具體地說,在實際業務中,資料科學家需要解決的問題從來不是單一孤立的,而是複雜多元的。資料科學家有很多事情可以做,如改進現有模型,部署新模型,重做某個特定步驟等。經驗告訴我,人們往往會陷入模型而忘記其他事情,但通常那些被遺忘忽略的事情往往會對解決問題起到決定性作用。

自2015年來,我一直在從事人工智慧的相關工作,在多項AI專案中擔任領導者或唯一的開發人。我的職業生涯發展主要涉及兩個重要的方面:(1)我必須自己弄清楚專案和開發的大部分內容;(2)大多數時候,我與那些幾乎不知道 AI 真正能做什麼的人一起工作。

通過這些經歷,我總結了如下經驗:

1. 最簡單的模型通常表現最好
2. 生產中優先選擇久經考驗的方法
3. 生活中的一切都可以改善,最關鍵的是要知道優先改進什
4. 尋找AI應用場景和解決方案的重要性高於對現有模型的優化
5. 程式碼的準確度和結果的準確一樣重要
6. 不要為用AI而用AI
7. AI需與業務緊密耦合

1. 最簡單的模型通常表現最好

不同問題的最佳解決方案各不相同,有些需要神經網路來解決,有些依賴XGBoost,還有一些特殊問題也可以使用決策樹、邏輯迴歸和線性迴歸來合理解決。

在瞭解了所有奇妙的技術之後,演算法工程師總是很想在 Scikit-learn庫中尋找新的技術,但不要這樣做。正相反,從你可以使用的最簡單的方法開始,如果線性插值就可以解決問題,那就用這一方法。一味追求花哨最終什麼也得不到。

在實踐中,更簡單的方法或許不會像其他方法那樣可以解決多種問題,但其核心優勢在於,模型越簡單,就越容易解釋它的工作原理,解釋它和資料的適配度,解釋其預測的原因,同時也越容易進行模型除錯等。使用花哨的高斯過程或最先進的網路不會帶來任何額外的增益。在可能的情況下,優先考慮線性插值,然後是邏輯迴歸和決策樹。

Tips:花了幾個月的時間學習複雜的分類器、校準和預處理,但最終會發現最簡單的方法是最好的。

2. 生產中優先選擇久經考驗的方法

摒棄其他因素,直觀地去看神經網路的話,新發布的網路過於花哨了。所有華麗的點綴最終都只是點綴而已。我們需要一個在任何不確定的環境都能執行良好的、久經考驗的模型。

在我的經驗中,ResNet 正是這樣:久經考驗。

在我幾乎每天與訓練網路打交道的三年中,我總是在專案計劃中選擇一天尋找新的損失函式、啟用函式等來嘗試解決問題。在這一過程中我發現,95%的情況下,採用創新方法得出的結論與我使用Cross entropy/L2, ReLU, CNN和Adam函式等得到的結果大致相同(存在1%的波動)。

Tips:我們不應該嘗試新事物嗎?當然不是。但是請記住,堅持久經考驗的方法始終是最安全的選擇。

3. 生活中的一切都可以改善,最關鍵的是要知道優先改進什麼

坦白說,這可能是本文最重要的資訊。

我們可以隨時改進模型,總是可以讓其執行得更快,但問題的關鍵在於我們最優先要做什麼。

我參與過不計其數的會議,討論一些不存在的可擴充套件性問題或者規劃如何避免一些永遠不會發生的潛在變化。事實上,大多數人並不需要10%更優的模型,他們真正需要的是多 10% 的客戶。

花幾天時間去除錯這些我們稱之為網路的瘋狂野獸是令人愉快的,但這對真正商業價值的影響是有限的。企業啟動 AI 專案時,最緊迫的問題是構建AI模型。擁有模型之後,下一個關鍵點是獲取更多資料,以及將AI模型投入實際生產。一旦這兩個問題都解決了,最重要的問題便成為如何擴大AI的應用範圍。對於實際業務來說,與持續優化改進單點的AI模型相比,在更大範圍內應用AI通常可帶來更高的投資回報率。

坦白說,大多數企業管理者並不知道AI到底是什麼以及AI能做什麼,他們或許會想象AI會做出超人的壯舉。因此,掌握模型並教育周圍的人也是資料科學家和演算法工程師的一項重要工作。

*Tips:認真審視你所做的和擁有的一切,明確最薄弱的環節是什麼,準確識別改變什麼會帶來最大的業務價值,識別之後便持續改進和迭代這些方面。


4. 尋找AI應用場景和解決方案的重要性高於對現有模型的優化

正如上一個技巧所說,根據我的經驗,改進已投入生產的模型通常是一項低優先順序的任務。但是在具有良好的AI開發生產和管理工具的情況下,我們可以不斷輸入資料對模型進行重新訓練,以得到更好的模型。

如果目前你所在企業的AI開發生產管理中沒有這樣的反饋迴圈,那麼你可以在下次會議上提出這一點,作為企業推進AI應用需要重點注意的事項。當企業建立起高效順暢的資料接入與處理、模型訓練、模型部署與應用的通路後,AI開發人員可以將更多地時間分配在AI應用場景和解決方案的探索上。與改進已經啟用的AI模型相比,擴大AI的應用、探索新的場景和解決方案,可能會帶來更大的商業價值。新場景和解決方案的探索意味著接入資料、探索資料、找到適合的模型、訓練模型、以及將模型應用到生產中看看會發生什麼等一系列系統工作。

Tips:成為一名更高效的AI專業人士需要做的顯著的轉變是,從只專注對現有模型的改進向積極探尋新的AI應用場景邁進,後者通常才是更高的商業價值所在。

5. 程式碼的準確度和結果的準確一樣重要

AI 對遺漏步驟或者糟糕的數學方法等常見錯誤具有較高的容忍度,尤其是在梯度推進器(Gradient Boosters)、支援向量機(SVM) 和神經網路等數值導向的方法中。

舉個簡單的例子,假設我們忘記對輸入的資料進行標準化,模型將從未標準化的資料中進行學習。但問題在於 AI 模型通常有兩條獨立的程式碼路徑:訓練和推理。假設模型的訓練程式碼中存在數學錯誤,但在推理指令碼中沒有,結果將是災難性的:該模型所有的引數都是基於對已損壞資料集的擬合,在隨後投入到生產中後,輸出給客戶的也必然是錯誤的結果。常見的錯誤再比如,我們在自定義資料增強時出現錯誤,使模型付出了兩倍努力來解碼一個在實際生產中永遠不會出現的條目。

方法缺陷可以以很多種形式隱藏在訓練和推理指令碼中,如未進行正態化化、錯誤的資料型別、受損的資料擴充等。AI開發人員需要確保程式碼中的這一切都是正確的,最好可以有視覺化的方法來檢查、識別這些錯誤。

最後,達到90%準確率並不意味著模型可以投入生產,高準確率的程式碼本身可能就是一個bug,不要輕信任何一段程式碼。

Tips:程式碼中可能有些可怕的錯誤未被注意到,因為它們對訓練結果的影響沒有嚴重到推翻整個模型系統。但將這樣的模型投入到生產中可能會對業務產生不利影響,因此請認真地對待對模型的測試。

6. 不要為用AI而用AI

AI並非所有問題的萬能解藥。有些問題用傳統程式碼便可以較好地處理。程式碼是可讀的、確定性的、可理解的,最重要的是,處理的結果更加精確。當我們對陣列進行排序時,我們期待的結果並不是“有89% 的機會讓陣列排序”。這種通過傳統程式碼就能夠更加精確地解決的問題則無需AI的幫助。

而另一些問題,比如物體檢測或影像生成,無法通過傳統程式碼簡單地解決,需依賴AI演算法。AI模型的問題是,它從來不是完美的, 90%準確的模型,仍有10%的可能會出錯。

Tips:準確判斷AI的適用場景很重要,不要“為用AI而用AI” 。

7. AI需與業務緊密耦合

企業應用 AI 和大資料並不是為了展示機器學習強大能力或對神經網路的掌握程度,而是希望通過將人工智慧應用於非常規任務來推動商業價值。那麼,如何衡量商業價值呢?

目前對於模型的評估主要是基於精確度指標,如正確預測的數量、找到的物件數、檢測到的人體關節點等。然而,這些都是區域性的度量指標,用以判斷模型在解決任務時的區域性具體影響。商業價值的產生則來自於模型與業務的緊耦合,切實影響利潤、轉化率、客戶流失等全域性價值。但衡量是否使用AI等單一干預措施對企業全域性業務的影響通常是極具挑戰性的,這依賴演算法團隊和業務團隊的緊密、高效配合。同時也需要選取可行的對比基線,以排除其他因素的干擾。比如,假設我們追蹤的商業價值指標是銷售量資料,但其可能受季節影響而波動。

Tips:比AI本身更重要的是讓AI對應用產品/業務/使用者生活產生有價值的影響。模型準確度是一個很好的區域性衡量標準,但它不能代表商業價值。AI業務和商業價值的充分發揮,依賴於演算法團隊和業務團隊的相互信任與緊密配合。

本譯文基於:
Ygor Serpa,7 Truths To Be a Better AI Professional


從經驗到實戰

本週六(4/16) 14:00,我們將舉辦實戰型IDP Meetup,從資料科學家、大資料工程師的視角,分享AI開發生產平臺如何幫助解決其日常工作難題。

活動詳情:https://segmentfault.com/e/11...

相關文章