1.4 为什么深度学习会兴起-深度学习-Stanford吴恩达教授
| 1.3 用神經(jīng)網(wǎng)絡進行監(jiān)督學習 | 回到目錄 | 1.5 關(guān)于這門課 |
為什么深度學習會興起
本節(jié)視頻主要講了推動深度學習變得如此熱門的主要因素。包括數(shù)據(jù)規(guī)模、計算量及算法的創(chuàng)新。
深度學習和神經(jīng)網(wǎng)絡之前的基礎(chǔ)技術(shù)理念已經(jīng)存在大概幾十年了,為什么它們現(xiàn)在才突然流行起來呢?本節(jié)課程主要講述一些使得深度學習變得如此熱門的主要驅(qū)動因素,這將會幫助你在你的組織機構(gòu)內(nèi)發(fā)現(xiàn)最好的時機來應用這些東西。
在過去的幾年里,很多人都問我為什么深度學習能夠如此有效。當我回答這個問題時,我通常給他們畫個圖,在水平軸上畫一個形狀,在此繪制出所有任務的數(shù)據(jù)量,而在垂直軸上,畫出機器學習算法的性能。比如說準確率體現(xiàn)在垃圾郵件過濾或者廣告點擊預測,或者是神經(jīng)網(wǎng)絡在自動駕駛汽車時判斷位置的準確性,根據(jù)圖像可以發(fā)現(xiàn),如果你把一個傳統(tǒng)機器學習算法的性能畫出來,作為數(shù)據(jù)量的一個函數(shù),你可能得到一個彎曲的線,就像圖中這樣,它的性能一開始在增加更多數(shù)據(jù)時會上升,但是一段變化后它的性能就會像一個高原一樣。假設你的水平軸拉的很長很長,它們不知道如何處理規(guī)模巨大的數(shù)據(jù),而過去十年的社會里,我們遇到的很多問題只有相對較少的數(shù)據(jù)量。
多虧數(shù)字化社會的來臨,現(xiàn)在的數(shù)據(jù)量都非常巨大,我們花了很多時間活動在這些數(shù)字的領(lǐng)域,比如在電腦網(wǎng)站上、在手機軟件上以及其它數(shù)字化的服務,它們都能創(chuàng)建數(shù)據(jù),同時便宜的相機被配置到移動電話,還有加速儀及各類各樣的傳感器,同時在物聯(lián)網(wǎng)領(lǐng)域我們也收集到了越來越多的數(shù)據(jù)。僅僅在過去的20年里對于很多應用,我們便收集到了大量的數(shù)據(jù),遠超過機器學習算法能夠高效發(fā)揮它們優(yōu)勢的規(guī)模。
神經(jīng)網(wǎng)絡展現(xiàn)出的是,如果你訓練一個小型的神經(jīng)網(wǎng)絡,那么這個性能可能會像下圖黃色曲線表示那樣;如果你訓練一個稍微大一點的神經(jīng)網(wǎng)絡,比如說一個中等規(guī)模的神經(jīng)網(wǎng)絡(下圖藍色曲線),它在某些數(shù)據(jù)上面的性能也會更好一些;如果你訓練一個非常大的神經(jīng)網(wǎng)絡,它就會變成下圖綠色曲線那樣,并且保持變得越來越好。因此可以注意到兩點:如果你想要獲得較高的性能體現(xiàn),那么你有兩個條件要完成,第一個是你需要訓練一個規(guī)模足夠大的神經(jīng)網(wǎng)絡,以發(fā)揮數(shù)據(jù)規(guī)模量巨大的優(yōu)點,另外你需要能畫到 xxx 軸的這個位置,所以你需要很多的數(shù)據(jù)。因此我們經(jīng)常說規(guī)模一直在推動深度學習的進步,這里的規(guī)模指的也同時是神經(jīng)網(wǎng)絡的規(guī)模,我們需要一個帶有許多隱藏單元的神經(jīng)網(wǎng)絡,也有許多的參數(shù)及關(guān)聯(lián)性,就如同需要大規(guī)模的數(shù)據(jù)一樣。事實上如今最可靠的方法來在神經(jīng)網(wǎng)絡上獲得更好的性能,往往就是要么訓練一個更大的神經(jīng)網(wǎng)絡,要么投入更多的數(shù)據(jù),這只能在一定程度上起作用,因為最終你耗盡了數(shù)據(jù),或者最終你的網(wǎng)絡是如此大規(guī)模導致將要用太久的時間去訓練,但是僅僅提升規(guī)模的的確確地讓我們在深度學習的世界中摸索了很多時間。為了使這個圖更加從技術(shù)上講更精確一點,我在 xxx 軸下面已經(jīng)寫明的數(shù)據(jù)量,這兒加上一個標簽(label)量,通過添加這個標簽量,也就是指在訓練樣本時,我們同時輸入 xxx 和標簽 yyy ,接下來引入一點符號,使用小寫的字母 mmm 表示訓練集的規(guī)模,或者說訓練樣本的數(shù)量,這個小寫字母 mmm 就橫軸結(jié)合其他一些細節(jié)到這個圖像中。
在這個小的訓練集中,各種算法的優(yōu)先級事實上定義的也不是很明確,所以如果你沒有大量的訓練集,那效果會取決于你的特征工程能力,那將決定最終的性能。假設有些人訓練出了一個SVM(支持向量機)表現(xiàn)的更接近正確特征,然而有些人訓練的規(guī)模大一些,可能在這個小的訓練集中SVM算法可以做的更好。因此你知道在這個圖形區(qū)域的左邊,各種算法之間的優(yōu)先級并不是定義的很明確,最終的性能更多的是取決于你在用工程選擇特征方面的能力以及算法處理方面的一些細節(jié),只是在某些大數(shù)據(jù)規(guī)模非常龐大的訓練集,也就是在右邊這個 mmm 會非常的大時,我們能更加持續(xù)地看到更大的由神經(jīng)網(wǎng)絡控制的其它方法,因此如果你的任何某個朋友問你為什么神經(jīng)網(wǎng)絡這么流行,我會鼓勵你也替他們畫這樣一個圖形。
所以可以這么說,在深度學習萌芽的初期,數(shù)據(jù)的規(guī)模以及計算量,局限在我們對于訓練一個特別大的神經(jīng)網(wǎng)絡的能力,無論是在CPU還是GPU上面,那都使得我們?nèi)〉昧司薮蟮倪M步。但是漸漸地,尤其是在最近這幾年,我們也見證了算法方面的極大創(chuàng)新。許多算法方面的創(chuàng)新,一直是在嘗試著使得神經(jīng)網(wǎng)絡運行的更快。
作為一個具體的例子,神經(jīng)網(wǎng)絡方面的一個巨大突破是從sigmoid函數(shù)轉(zhuǎn)換到一個ReLU函數(shù),這個函數(shù)我們在之前的課程里提到過。
如果你無法理解剛才我說的某個細節(jié),也不需要擔心,可以知道的一個使用sigmoid函數(shù)和機器學習問題是,在這個區(qū)域,也就是這個sigmoid函數(shù)的梯度會接近零,所以學習的速度會變得非常緩慢,因為當你實現(xiàn)梯度下降以及梯度接近零的時候,參數(shù)會更新的很慢,所以學習的速率也會變的很慢,而通過改變這個被叫做激活函數(shù)的東西,神經(jīng)網(wǎng)絡換用這一個函數(shù),叫做ReLU的函數(shù)(修正線性單元),ReLU它的梯度對于所有輸入的負值都是零,因此梯度更加不會趨向逐漸減少到零。而這里的梯度,這條線的斜率在這左邊是零,僅僅通過將Sigmod函數(shù)轉(zhuǎn)換成ReLU函數(shù),便能夠使得一個叫做梯度下降(gradient descent)的算法運行的更快,這就是一個或許相對比較簡單的算法創(chuàng)新的例子。但是根本上算法創(chuàng)新所帶來的影響,實際上是對計算帶來的優(yōu)化,所以有很多像這樣的例子,我們通過改變算法,使得代碼運行的更快,這也使得我們能夠訓練規(guī)模更大的神經(jīng)網(wǎng)絡,或者是多端口的網(wǎng)絡。即使我們從所有的數(shù)據(jù)中擁有了大規(guī)模的神經(jīng)網(wǎng)絡,快速計算顯得更加重要的另一個原因是,訓練你的神經(jīng)網(wǎng)絡的過程,很多時候是憑借直覺的,往往你對神經(jīng)網(wǎng)絡架構(gòu)有了一個想法,于是你嘗試寫代碼實現(xiàn)你的想法,然后讓你運行一個試驗環(huán)境來告訴你,你的神經(jīng)網(wǎng)絡效果有多好,通過參考這個結(jié)果再返回去修改你的神經(jīng)網(wǎng)絡里面的一些細節(jié),然后你不斷的重復上面的操作,當你的神經(jīng)網(wǎng)絡需要很長時間去訓練,需要很長時間重復這一循環(huán),在這里就有很大的區(qū)別,根據(jù)你的生產(chǎn)效率去構(gòu)建更高效的神經(jīng)網(wǎng)絡。當你能夠有一個想法,試一試,看效果如何。在10分鐘內(nèi),或者也許要花上一整天,如果你訓練你的神經(jīng)網(wǎng)絡用了一個月的時間,有時候發(fā)生這樣的事情,也是值得的,因為你很快得到了一個結(jié)果。在10分鐘內(nèi)或者一天內(nèi),你應該嘗試更多的想法,那極有可能使得你的神經(jīng)網(wǎng)絡在你的應用方面工作的更好、更快的計算,在提高速度方面真的有幫助,那樣你就能更快地得到你的實驗結(jié)果。這也同時幫助了神經(jīng)網(wǎng)絡的實驗人員和有關(guān)項目的研究人員在深度學習的工作中迭代的更快,也能夠更快的改進你的想法,所有這些都使得整個深度學習的研究社群變的如此繁榮,包括令人難以置信地發(fā)明新的算法和取得不間斷的進步,這些都是開拓者在做的事情,這些力量使得深度學習不斷壯大。
好消息是這些力量目前也正常不斷的奏效,使得深度學習越來越好。研究表明我們的社會仍然正在拋出越來越多的數(shù)字化數(shù)據(jù),或者用一些特殊的硬件來進行計算,比如說GPU,以及更快的網(wǎng)絡連接各種硬件。我非常有信心,我們可以做一個超級大規(guī)模的神經(jīng)網(wǎng)絡,而計算的能力也會進一步的得到改善,還有算法相對的學習研究社區(qū)連續(xù)不斷的在算法前沿產(chǎn)生非凡的創(chuàng)新。根據(jù)這些我們可以樂觀地回答,同時對深度學習保持樂觀態(tài)度,在接下來的這些年它都會變的越來越好。
課程板書
| 1.3 用神經(jīng)網(wǎng)絡進行監(jiān)督學習 | 回到目錄 | 1.5 關(guān)于這門課 |
總結(jié)
以上是生活随笔為你收集整理的1.4 为什么深度学习会兴起-深度学习-Stanford吴恩达教授的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.3 用神经网络进行监督学习-深度学习
- 下一篇: 1.5 关于这门课-深度学习-Stanf