深度學(xué)習(xí)正在改變一切。正如電子和計(jì)算機(jī)改變了人類所有的經(jīng)濟(jì)活動(dòng)一樣,人工智能將重塑零售業(yè)、交通運(yùn)輸業(yè)、制造業(yè)、醫(yī)藥、電信業(yè)、重工業(yè)……甚至數(shù)據(jù)科學(xué)本身。而且,像AlphaGo這種人工智能超越人類的領(lǐng)域及其應(yīng)用在不斷增長(zhǎng)。在Schibsted,Manuel Sánchez Hernández看到了深度學(xué)習(xí)所提供的機(jī)會(huì),他們很高興為此而出力。
Manuel Sánchez Hernández在最近的NIPS 2016(Neural Information Processing Systems,神經(jīng)信息處理系統(tǒng))會(huì)議上,聽取了Andrew Ng分享的一些關(guān)于深度學(xué)習(xí)的想法。Manuel Sánchez Hernández做了一則筆記,經(jīng)作者授權(quán),InfoQ翻譯并整理本文,以饗讀者。
Manuel Sánchez Hernández是位于倫敦的Schibsted Product & Technology的數(shù)據(jù)科學(xué)家。
深度學(xué)習(xí)的第一大優(yōu)勢(shì)是它的規(guī)模。Andrew總結(jié)如下圖:
當(dāng)數(shù)據(jù)量增加時(shí),深度學(xué)習(xí)模型表現(xiàn)得更好。不僅如此,神經(jīng)網(wǎng)絡(luò)越大,對(duì)于更大的數(shù)據(jù)集,會(huì)做得更好。不同于傳統(tǒng)的模型,一旦性能達(dá)到一定的水平,往模型里增加更多的數(shù)據(jù)或者改變算法的復(fù)雜度,并不能帶來性能的提升。
深度學(xué)習(xí)模型之所以如此強(qiáng)大的另一個(gè)原因是它們擁有端到端學(xué)習(xí)的能力。傳統(tǒng)模型通常需要顯著的特征工程。例如,一個(gè)模型能夠轉(zhuǎn)錄一個(gè)人可能需要做許多中間步驟輸入的聲音,找到音素,正確鏈接,為每個(gè)鏈接分配相應(yīng)單詞。
深度學(xué)習(xí)模型通常不需要這樣的特征工程。你通過為模型展示大量實(shí)例進(jìn)行端到端的訓(xùn)練,該技術(shù)工作并不是被應(yīng)用到轉(zhuǎn)換特征,而是進(jìn)入模型的架構(gòu)。數(shù)據(jù)科學(xué)家需要決定和嘗試他想要的神經(jīng)元類型、層數(shù)以及如何連接它們等等。
構(gòu)建模型的挑戰(zhàn)
深度學(xué)習(xí)模型有他們自己的挑戰(zhàn)。許多決策必須在其構(gòu)建過程中進(jìn)行。如果采取錯(cuò)誤的路徑,將浪費(fèi)大量的時(shí)間和金錢,那么數(shù)據(jù)科學(xué)家如何才能做出明智的決定?確定為了改善他們的模型下一步需要做什么?Andrew向我們展示了他用于開發(fā)模型的經(jīng)典決策框架,但這次他將其擴(kuò)展到其他有用的案例中。
讓我們從基礎(chǔ)開始:在一個(gè)分類任務(wù)(例如,從掃描做診斷),對(duì)于來源如下的錯(cuò)誤,我們應(yīng)該有一個(gè)好的想法。
人類專家訓(xùn)練集交叉驗(yàn)證(CV)集(也稱為開發(fā)或開發(fā)集)一旦我們有了這些錯(cuò)誤,數(shù)據(jù)科學(xué)家可以遵循基本流程去發(fā)現(xiàn)模型模型構(gòu)建中的有效決策。首先問你的訓(xùn)練錯(cuò)誤高嗎?如果是這樣,那么說明該模型不夠好;它可能需要更豐富(例如,更大的神經(jīng)網(wǎng)絡(luò))和不同的架構(gòu),或者需要更多的訓(xùn)練。重復(fù)該過程直到偏差減小。
一旦訓(xùn)練集錯(cuò)誤減少,CV集的低錯(cuò)誤率是必要的。否則,分歧高,意味著需要更多的數(shù)據(jù),更多的正則化或新的模型架構(gòu)。重復(fù)該過程,直到模型在訓(xùn)練和CV集中表現(xiàn)良好。
這些過程并沒有什么新事物。然而,深度學(xué)習(xí)已經(jīng)在改變這個(gè)過程。如果你的模型不夠好,總有一個(gè)“出路”:增加你的數(shù)據(jù)或使你的模型更大。在傳統(tǒng)模型中,正則化用于調(diào)整這種權(quán)衡,或者產(chǎn)生新的特征——這點(diǎn)看著容易做著難。但是,自從有了深度學(xué)習(xí)之后,我們有了更好的工具,以減少這兩個(gè)錯(cuò)誤。
改進(jìn)人工數(shù)據(jù)集的偏差/分歧過程
事實(shí)上并沒有那么多大量的可用樣本,那么還有另一種方法是建立自己的訓(xùn)練數(shù)據(jù)。一個(gè)很好的示例可以是語音識(shí)別系統(tǒng)的訓(xùn)練,通過對(duì)同一個(gè)聲音添加噪聲可以創(chuàng)建人工訓(xùn)練樣本。然而,這并不意味著訓(xùn)練集將具有和實(shí)集相同的分布。對(duì)于這些情況下的偏差/分歧權(quán)衡需要不同的框架。
想象一下,對(duì)于語音識(shí)別模型,我們有50,000小時(shí)的生成數(shù)據(jù),但只有100小時(shí)的真實(shí)數(shù)據(jù)。在這種情況下,生成的集將是訓(xùn)練集,真正的集應(yīng)分割成CV和測(cè)試集。否則,在CV和測(cè)試集之間將有不同的分布,一旦模型“完成”,將會(huì)注意到這些差異。問題由CV集指定,因此它應(yīng)該盡可能接近實(shí)集。
在實(shí)踐中,Andrew建議將人工數(shù)據(jù)分為兩部分:訓(xùn)練集及其一小部分,我們稱之為“訓(xùn)練/CV集”。這樣,我們將估量以下錯(cuò)誤:
因此,(1)和(2)之間的區(qū)別是偏差,(2)和(3)之間的區(qū)別是分歧,(3)和(4)之間的區(qū)別是由于分布不匹配,(4)和(5)之間的區(qū)別是因?yàn)檫^度擬合。
考慮到以前的工作流程應(yīng)該像這樣修改:
如果分布誤差高,修改訓(xùn)練數(shù)據(jù)分布,使其盡可能類似于測(cè)試數(shù)據(jù)。對(duì)偏差/分歧的正確理解,能提高機(jī)器學(xué)習(xí)的效率。
人類水平的表現(xiàn)
了解人類的表現(xiàn)水平非常重要,因?yàn)檫@將指導(dǎo)決策。事實(shí)證明,一旦一個(gè)模型超越人類的表現(xiàn),通常是很難改善的。因?yàn)槲覀冊(cè)絹碓浇咏?ldquo;完美的模型”,即沒有模型可以做得更好(“貝葉斯率”)。這不是傳統(tǒng)模型原有的問題——它的表現(xiàn)已經(jīng)超越人類水平,但在深度學(xué)習(xí)領(lǐng)域這個(gè)問題變得越來越普遍了。
因此,當(dāng)構(gòu)建一個(gè)模型時(shí),以人類專家組的表現(xiàn)誤差為參考將是“貝葉斯率”的代表。例如,如果一組醫(yī)生比一位專家醫(yī)生做得更好,則使用醫(yī)生組測(cè)量的誤差。
怎樣才能成為更好的數(shù)據(jù)科學(xué)家?
閱讀許多論文和復(fù)現(xiàn)別人的結(jié)果是成為一個(gè)更好的數(shù)據(jù)科學(xué)家的最佳和最可靠的路徑。這是Andrew已經(jīng)從他的學(xué)生身上看到的模式,我對(duì)此也十分認(rèn)同。
即使幾乎你做的全都是“苦活”:清潔數(shù)據(jù)、調(diào)整參數(shù)、調(diào)試、優(yōu)化數(shù)據(jù)庫等,不要停止閱讀論文和驗(yàn)證模型,在驗(yàn)證別人模型的過程中,你將得到啟發(fā)。
閱讀英文原文: How is Deep Learning Changing Data Science Paradigms?