您的位置:首頁>科技>正文

深度學習如何改變資料科學範式?

深度學習正在改變一切。 正如電子和電腦改變了人類所有的經濟活動一樣, 人工智慧將重塑零售業、交通運輸業、製造業、醫藥、電信業、重工業……甚至資料科學本身。 而且, 像AlphaGo這種人工智慧超越人類的領域及其應用在不斷增長。 在Schibsted, Manuel Sánchez Hernández看到了深度學習所提供的機會, 他們很高興為此而出力。

Manuel Sánchez Hernández在最近的NIPS 2016(Neural Information Processing Systems, 神經資訊處理系統)會議上, 聽取了Andrew Ng分享的一些關於深度學習的想法。 Manuel Sánchez Hernández做了一則筆記, 經作者授權, InfoQ翻譯並整理本文, 以饗讀者。

Manuel Sánchez Hernández是位於倫敦的Schibsted Product & Technology的資料科學家。

深度學習的第一大優勢是它的規模。 Andrew總結如下圖:

當資料量增加時, 深度學習模型表現得更好。 不僅如此, 神經網路越大, 對於更大的資料集, 會做得更好。 不同于傳統的模型, 一旦性能達到一定的水準, 往模型裡增加更多的資料或者改變演算法的複雜度, 並不能帶來性能的提升。

深度學習模型之所以如此強大的另一個原因是它們擁有端到端學習的能力。

傳統模型通常需要顯著的特徵工程。 例如, 一個模型能夠轉錄一個人可能需要做許多中間步驟輸入的聲音, 找到音素, 正確連結, 為每個連結分配相應單詞。

深度學習模型通常不需要這樣的特徵工程。 你通過為模型展示大量實例進行端到端的訓練, 該技術工作並不是被應用到轉換特徵, 而是進入模型的架構。 資料科學家需要決定和嘗試他想要的神經元類型、層數以及如何連接它們等等。

構建模型的挑戰

深度學習模型有他們自己的挑戰。 許多決策必須在其構建過程中進行。 如果採取錯誤的路徑, 將浪費大量的時間和金錢, 那麼資料科學家如何才能做出明智的決定?確定為了改善他們的模型下一步需要做什麼?Andrew向我們展示了他用於開發模型的經典決策框架,

但這次他將其擴展到其他有用的案例中。

讓我們從基礎開始:在一個分類任務(例如, 從掃描做診斷), 對於來源如下的錯誤, 我們應該有一個好的想法。

人類專家訓練集交叉驗證(CV)集(也稱為開發或開發集)

一旦我們有了這些錯誤, 資料科學家可以遵循基本流程去發現模型模型構建中的有效決策。 首先問你的訓練錯誤高嗎?如果是這樣, 那麼說明該模型不夠好;它可能需要更豐富(例如, 更大的神經網路)和不同的架構, 或者需要更多的訓練。 重複該過程直到偏差減小。

一旦訓練集錯誤減少, CV集的低錯誤率是必要的。

否則, 分歧高, 意味著需要更多的資料, 更多的正則化或新的模型架構。 重複該過程, 直到模型在訓練和CV集中表現良好。

這些過程並沒有什麼新事物。 然而, 深度學習已經在改變這個過程。 如果你的模型不夠好, 總有一個“出路”:增加你的資料或使你的模型更大。

在傳統模型中, 正則化用於調整這種權衡, 或者產生新的特徵——這點看著容易做著難。 但是, 自從有了深度學習之後, 我們有了更好的工具, 以減少這兩個錯誤。

改進人工資料集的偏差/分歧過程

事實上並沒有那麼多大量的可用樣本, 那麼還有另一種方法是建立自己的訓練資料。 一個很好的示例可以是語音辨識系統的訓練, 通過對同一個聲音添加雜訊可以創建人工訓練樣本。 然而, 這並不意味著訓練集將具有和實集相同的分佈。 對於這些情況下的偏差/分歧權衡需要不同的框架。

想像一下, 對於語音辨識模型, 我們有50,000小時的生成資料, 但只有100小時的真實資料。 在這種情況下, 生成的集將是訓練集, 真正的集應分割成CV和測試集。 否則,在CV和測試集之間將有不同的分佈,一旦模型“完成”,將會注意到這些差異。問題由CV集指定,因此它應該盡可能接近實集。

在實踐中,Andrew建議將人工資料分為兩部分:訓練集及其一小部分,我們稱之為“訓練/CV集”。這樣,我們將估量以下錯誤:

因此,(1)和(2)之間的區別是偏差,(2)和(3)之間的區別是分歧,(3)和(4)之間的區別是由於分佈不匹配,(4)和(5)之間的區別是因為過度擬合。

考慮到以前的工作流程應該像這樣修改:

如果分佈誤差高,修改訓練資料分佈,使其盡可能類似於測試資料。對偏差/分歧的正確理解,能提高機器學習的效率。

人類水準的表現

瞭解人類的表現水準非常重要,因為這將指導決策。事實證明,一旦一個模型超越人類的表現,通常是很難改善的。因為我們越來越接近“完美的模型”,即沒有模型可以做得更好(“貝葉斯率”)。這不是傳統模型原有的問題——它的表現已經超越人類水準,但在深度學習領域這個問題變得越來越普遍了。

因此,當構建一個模型時,以人類專家組的表現誤差為參考將是“貝葉斯率”的代表。例如,如果一組醫生比一位專家醫生做得更好,則使用醫生組測量的誤差。

怎樣才能成為更好的資料科學家?

閱讀許多論文和複現別人的結果是成為一個更好的資料科學家的最佳和最可靠的路徑。這是Andrew已經從他的學生身上看到的模式,我對此也十分認同。

即使幾乎你做的全都是“苦活”:清潔資料、調整參數、調試、優化資料庫等,不要停止閱讀論文和驗證模型,在驗證別人模型的過程中,你將得到啟發。

感謝魏星對本文的審校。

否則,在CV和測試集之間將有不同的分佈,一旦模型“完成”,將會注意到這些差異。問題由CV集指定,因此它應該盡可能接近實集。

在實踐中,Andrew建議將人工資料分為兩部分:訓練集及其一小部分,我們稱之為“訓練/CV集”。這樣,我們將估量以下錯誤:

因此,(1)和(2)之間的區別是偏差,(2)和(3)之間的區別是分歧,(3)和(4)之間的區別是由於分佈不匹配,(4)和(5)之間的區別是因為過度擬合。

考慮到以前的工作流程應該像這樣修改:

如果分佈誤差高,修改訓練資料分佈,使其盡可能類似於測試資料。對偏差/分歧的正確理解,能提高機器學習的效率。

人類水準的表現

瞭解人類的表現水準非常重要,因為這將指導決策。事實證明,一旦一個模型超越人類的表現,通常是很難改善的。因為我們越來越接近“完美的模型”,即沒有模型可以做得更好(“貝葉斯率”)。這不是傳統模型原有的問題——它的表現已經超越人類水準,但在深度學習領域這個問題變得越來越普遍了。

因此,當構建一個模型時,以人類專家組的表現誤差為參考將是“貝葉斯率”的代表。例如,如果一組醫生比一位專家醫生做得更好,則使用醫生組測量的誤差。

怎樣才能成為更好的資料科學家?

閱讀許多論文和複現別人的結果是成為一個更好的資料科學家的最佳和最可靠的路徑。這是Andrew已經從他的學生身上看到的模式,我對此也十分認同。

即使幾乎你做的全都是“苦活”:清潔資料、調整參數、調試、優化資料庫等,不要停止閱讀論文和驗證模型,在驗證別人模型的過程中,你將得到啟發。

感謝魏星對本文的審校。

Next Article
喜欢就按个赞吧!!!
点击关闭提示