重溫五條 AI 基礎規律
?本文詳細介紹了5條幫助工程師們處理技術問題的基礎AI規律,enjoy~
如果每個人都有足夠的時間和熱誠,并樂意去大學拿個 AI 學位,那你大概就不會讀到這篇博客了。
雖說 AI 的工作方式挺神秘的,但在處理技術問題的時候,以下這五個 AI 原則應該可以幫你規避一些錯誤。它們對于當代的基于統計學習的機器學習(Machine Learning)系統,尤其是深度學習(Deep Learning)系統尤其適用。
這篇來自eloquent.ai博客的文章所說的,總結起來就是這 5 條 AI 原則:
- 利用未曾見過的數據評估AI系統
- 更多數據可以帶來更好的模型
- 有效數據的價值遠遠超過無效數據
- 從一個簡單的基線開始
- 人工智能并不是魔法
給大家一個小小的忠告——通過對機器學習的基本理解,這篇文章將更有意義。
一、利用未曾見過的數據評估AI系統
在上一篇文章中,我們介紹了如何構建分類器以將圖像標記為貓(綠色圓圈)或狗(藍色三角形)。
在將我們的訓練數據轉換為向量之后,我們得到了下面的圖表,其中紅線表示我們的“決策邊界”(即將訓練數據轉換為向量后,這條“邊界線”就將圖像劃分為貓和狗)。
顯然,圖中的決策邊界錯誤地將一只貓(綠色圓形)標記標記成了狗(藍色三角形),即遺漏了一個訓練個樣本。那么,是什么讓訓練算法沒有選擇下圖中的紅線作為決策邊界呢?
在這兩種情況下,我們對訓練集進行分類都得到了同樣的準確率——兩中決策邊界都標錯了一個例子。但是如圖示,當我們在數據中加上一只未出現過的貓時,只有左圖的決策邊界會正確地預測這個點為貓:
分類器可以在用來訓練它的數據集上工作得很順利,但它未必適用于訓練的時候沒有見過的數據。
此外,即使分類器在特定類型的輸入(例如,室內場景中的貓)上工作良好,它對于相同任務的不同數據(例如,室外場景中的貓)也可能無法很好地工作。
盲目地購買 AI 系統而不對相關的未知信息進行測試,可能會付出很大的代價。
一種測試未知數據的實用方法是——先保留一部分數據不提供給開發人工智能系統的企業或個人,然后自己通過生成的系統運行這些保留數據。最不濟,也得保證你能自己試用才行。
二、更多數據可以帶來更好的模型
如果給你下面的訓練數據集,你會把決策邊界畫在哪里?
你想的可能沒錯——許多決策邊界可以準確地分割這些數據。
雖然下面的每個假設決策邊界都正確地分割了數據,但它們彼此之間的差別很大,正如我們上面所看到的,其中一些可能會在目前尚未見到的數據(也就是你真正關心的數據)上更糟糕:
從這個小數據集中,我們不知道這些彼此不同的決策邊界中,究竟哪一個最準確地代表了現實世界。缺乏數據會導致不確定性,因此我們得收集更多數據點,并將其添加到初始圖表中,則可得到下圖:
額外的數據能幫助我們大幅縮小選擇范圍,立即畫出綠色和藍色間的決策邊界,因此決策邊界會是如下所示:
當機器學習模型表現異常時,潛在的問題通常是模型沒有經過足夠或正確的數據訓練。盡管更多的數據幾乎總是有幫助,但需要注意,數據越多可能得到的回報卻在減少。當
我們將第一個圖的數據加倍時,準確度明顯增加。但是基于該圖表,如果將數據再加倍,則精度的提高不會有之前那么大。
準確度隨著訓練數據的數量大致呈對數增長,因此從 1k 到 10k 個樣本可能比從 10k 到 20k 個對準確性產生更大的影響。
對于我個人來說,這一條特別忌諱,尤其是對于預算緊張的創業公司:你們經常給ML工程師支付數高額薪水,但也請確保提供足夠的預算和時間來讓他們仔細收集數據。
?三、有效數據的價值遠遠超過無效數據
在上面的例子中,雖說有更多的數據會對訓練有所幫助,但前提是它們足夠準確才行。
還是前面的例子,在收集了附加數據之后,可以得到一個這樣的圖形和一個決策邊界,如下所示:
但是,如果這些新數據點中的一些其實是被錯誤標記了,而真是情況是下面這樣的呢?
我們要注意,雖然這些標記錯誤的點與第一個圖中的點坐標相同,但它們代表的意義已經改變。
這導致了一個完全不同的決策邊界:
即使只有四分之一的數據集被錯誤標記,但很明顯,錯誤的數據會對我們的模型構建有重大影響。
我們可以在訓練期間使用一些技術來減少標記數據時的錯誤,但這些技術作用有限。在大多數情況下,清理基礎數據更加容易和可靠。
這里的要點是“有效數據”至關重要,有效數據意味著數據準確標記,意味著數據合理涵蓋了我們想關注的范圍,也意味著訓練集中同時存在簡單案例和困難案例等等。
因而決策邊界沒有那么多的擺動空間,只有一個“正確”的答案。
四、 從一個簡單的基線開始
這并不是說你應該嘗試了一點簡單的東西就覺得滿意然后停下來。
即便你最終的方法既現代又復雜,通過這條原則,你也會開發得更快,并且最終的結果也會更好。
我可以舉一個關于我自己的真實例子,當我讀研一時,我們實驗室的同學兼 Eloquent 的研究員 Angel 和我參與了一個項目,我們各自將語言里描述時間的詞轉化成可供機器閱讀的格式。
本質上來說,就是試圖讓計算機理解諸如“上周五”或“明天中午”之類的短語。
由于這些項目是申基金所必需的,Angel 致力于一個實用性強,有確定性的規則系統。她為了讓這個系統能實用起來而絞盡腦汁。
而我當時只是一個在實驗室輪崗的學生,團隊讓我自主選擇任何花哨的方法,就像糖果店里的孩子一樣。我探索了最時髦、最動人的語義解析方法。
在我的項目中,我運用了 EM、共軛先驗、一個完整的自定義語義解析器等等新奇的方法。
差不多十年之后,我很高興還留下了一篇受到好評并且引用數還行的論文。然而,Angel 的項目 SUTime 呢,現在是斯坦福流行的 CoreNLP 工具包中最常用的組件之一——簡單的方法擊敗了時髦的方法。
你可能以為我已經吸取了教訓,然而幾年之后,當我成為一名高年級研究生時,我要讓另一個系統啟動并用于另一個基金項目。
我再一次試圖訓練一個花哨的機器學習模型,但幾乎沒有做出什么成果。有一天我覺得無比失敗和沮喪,以至于我甚至開始寫“模式”。
“模式”就是一些簡單的確定性規則。比如,當一個句子包含“出生于”這個詞時,則假設這是一個出生地。模式不會學習,作用有限,但它們易于編寫且用起來合理。
最后,基于模式的系統不僅勝過我們原來的系統,它后來還被加到了 NIST 排名前 5 的系統中,并深深影響了那些基于機器學習的模型高性能系統。
結論就是:先做簡單的事。當然了,我們還有其他更好的理由:
1. 它會給你的最終模型的性能提供一個安全的最低值
當你做出一個簡單的基準模型之后,你會希望任何聰明的東西都會擊敗它。幾乎不會有什么模型會比一個基于規則的模型表現還要差。
這給你的更高級的方法提供了一個比較,如果你的高級方法的表現更差,那意味著你有什么東西徹底做錯了,并不是任務太過艱巨。
2. 通常簡單的方法需要較少的或不用訓練數據
這就使你可以在沒有大量數據投資的情況下進行原型設計。
3. 它經常會揭示出手頭任務的難度
這通常會向你指明如何選擇更好的機器學習方法來處理這些困難的部分;此外,它還能向你指明如何給需要更多數據的方法收集數據。
4. 簡單的方法一般只需要很少的額外努力就可以泛化到未見過的數據上
(記住:總是用模型沒有見過的數據來評估模型?。└唵蔚哪P屯菀捉忉?,這使得它們更具可預測性,因此讓它們向沒有見過的數據上泛化的過程也更明了。
五、人工智能并不是魔法
這句話是我經常掛在嘴邊的。
大家雖然表面上都表示贊同,但心里未必真的服氣,因為人工智能看起來就像魔術一樣。
在談到 Eloquent 人工智能的宏偉未來計劃時,我對曾經反復強調這個錯誤觀念感到內疚。
我從訓練機器學習模型的細節中得到的越多,模型看起來就越看起來不像是曲線的擬合,它們看起來更像一個黑匣子,我可以付出一些代價來進行操控。
人們很容易忘記,現代機器學習領域還很年輕——只有二三十歲。與現代機器學習工具包的成熟度和復雜性相比,整個領域仍然相當不成熟。它的快速進步使人們很容易忘記這一點。
機器學習的一部分邪惡之處在于它具有內在的概率性。它在技術上無所不能,但不一定達到你想要的準確度。
我懷疑在許多機構中,在組織結構圖上添加新東西時,“準確度”的細微差別被漏下,只留下“人工智能可以做任何事情”的敘述部分。
你如何將不可能與可能分開?
我嘗試遵循一些最佳做法:
1. 與實際訓練模型的人交談
不是團隊領導,不是部門主管,而是讓模型訓練代碼運行起來的人。他們通??梢愿玫亓私饽P偷墓ぷ髟砑捌湎拗啤?/p>
確保他們愿意隨時告訴你,你的模型有限制并且在某些方面表現不佳。我敢保證,無論他們是否告訴你,你的模型總會有一些不行的方面。
2. 對于NLP項目可以使用一個快速又繁雜的基于規則的系統來檢查任務的可行性
機器學習是一種很好的方式,可以用來生成一個非常大且模糊的、很難用人工的方法寫下來的規則集。
但如果一開始你就很難寫下一套合理的規則來完成你的任務,那這通常是一個不好的跡象。
然后,收集一個小數據集并嘗試使用你學習到的系統。
接下來是一個稍微大一點的數據集,并且在你獲得表現提升時繼續這樣做。一個重要的經驗法則就是:準確度隨著數據集大小的對數而增長。
3. 永遠不要相信高得出奇的準確性:任何超過 95 或 97% 的數值
同樣地,不要相信任何高于人類輸出平的準確性,或者高于一致性評價。
很大概率上,要么是數據集有缺失,有么是評估不完善。兩者都經常發生,即使是對于經驗豐富的研究人員。
作者:Gabor Angeli
翻譯:劉肉醬
來源:https://blog.eloquent.ai/2018/09/18/5-fundamental-ai-principles/
本文來源于人人都是產品經理合作媒體 @雷鋒網,翻譯@劉肉醬
題圖來自Unsplash,基于CC0協議。
5條AI建設的原則:
利用未曾見過的數據評估AI系統
更多數據可以帶來更好的模型
有效數據的價值遠遠超過無效數據
從一個簡單的基線開始
人工智能并不是魔法