卷積神經(jīng)網(wǎng)絡(luò)的應(yīng)用 深度學習和普通的機器學習有什么區(qū)別?
深度學習和普通的機器學習有什么區(qū)別?一張圖片顯示了這種關(guān)系。機器學習是人工智能的重要領(lǐng)域之一,而深度學習是機器學習的一個分支。深度學習之所以近年來流行起來,是因為它突破了傳統(tǒng)機器學習無法解決的一些問題
深度學習和普通的機器學習有什么區(qū)別?
一張圖片顯示了這種關(guān)系。機器學習是人工智能的重要領(lǐng)域之一,而深度學習是機器學習的一個分支。深度學習之所以近年來流行起來,是因為它突破了傳統(tǒng)機器學習無法解決的一些問題。
機器學習的意義在于代替人工完成重復性工作,識別出統(tǒng)一的規(guī)則(模式)。但是對于傳統(tǒng)的機器學習來說,特征提取的難度不?。ㄌ卣骺梢允窍袼?、位置、方向等)。特征的準確性將在很大程度上決定大多數(shù)機器學習算法的性能。為了使特征準確,在特征工程部分需要大量的人力來調(diào)整和改進特征。完成這一系列工作的前提是,數(shù)據(jù)集中所包含的信息量是充分的,并且易于識別。如果不滿足這一前提,傳統(tǒng)的機器學習算法將在信息的雜亂中失去其性能。深度學習的應(yīng)用正是基于這個問題。它的深層神經(jīng)網(wǎng)絡(luò)使它能夠在雜波中學習,自動發(fā)現(xiàn)與任務(wù)相關(guān)的特征(可以看作是自發(fā)學習的特征工程),并提取高級特征,從而大大減少了特征工程部分任務(wù)所花費的時間。
另一個明顯的區(qū)別是他們對數(shù)據(jù)集大小的偏好。傳統(tǒng)的機器學習在處理規(guī)則完備的小規(guī)模數(shù)據(jù)時表現(xiàn)出良好的性能,而深度學習則表現(xiàn)不好。隨著數(shù)據(jù)集規(guī)模的不斷擴大,深度學習的效果會逐漸顯現(xiàn)出來,并變得越來越好。對比如下圖所示。
如何估算神經(jīng)網(wǎng)絡(luò)的最優(yōu)學習率?
。
具體來說,當前主流的神經(jīng)網(wǎng)絡(luò)模型使用梯度下降算法進行訓練,或?qū)W習參數(shù)。學習速率決定權(quán)重在梯度方向上成批移動的距離。理論上,學習率越高,神經(jīng)網(wǎng)絡(luò)的學習速度越快。但是,如果學習速率過高,可能會“穿越”損失函數(shù)的最小值,導致收斂失敗。
上圖左邊是高學習率,右邊是低學習率,來源:mikkel Duif(quora)
那么,如何找到最佳學習率?
方法。但是,這種方法的初始學習率(上例中為0.1)不應(yīng)該太高。如果初始學習率太高,可能會“穿越”最優(yōu)值。
另外,還有另外一種思路,就是逆向操作,從學習率很低開始,每批之后再提高學習率。例如,從0.00001到0.0001,再到0.001,再到0.01,再到0.1。這個想法背后的直覺是,如果我們總是以很低的學習率學習,我們總是可以學習到最好的權(quán)重(除非整個網(wǎng)絡(luò)架構(gòu)有問題),但它將非常緩慢。因此,從一個很低的學習率開始,我們可以肯定地觀察到損失函數(shù)的下降。逐漸分化,直到學習率過高。該方法還避免了上述方法初始學習率過高,一次“穿越”最優(yōu)值的隱患。這是Leslie n.Smith在2015年的論文《訓練神經(jīng)網(wǎng)絡(luò)的循環(huán)學習率》中提出的方法。
用同一數(shù)據(jù)集訓練神經(jīng)網(wǎng)絡(luò),每次訓練結(jié)果不一樣,有時正確率很高,有時很低,為什么?
其實這個問題的實質(zhì)是,如果我們用機器學習算法對數(shù)據(jù)集上的數(shù)據(jù)模型進行一次訓練,保存模型,然后用同樣的算法和同樣的數(shù)據(jù)集以及數(shù)據(jù)排序?qū)ζ溥M行再次訓練,那么第一個模型和第二個模型是一樣的嗎?
這可能是因為神經(jīng)網(wǎng)絡(luò)用增益或權(quán)重的隨機值初始化,然后每個模擬在訓練階段有不同的起點。如果您希望始終保持相同的初始權(quán)重,可以嘗試為初始權(quán)重修復種子以消除問題。
如果我們深入研究這個問題,我們可以根據(jù)ml算法的“確定性”來對其進行分類。當從同一個數(shù)據(jù)集進行訓練時:
一個是總是生成相同的模型,并且記錄以相同的順序呈現(xiàn);
另一個是總是生成不同的模型,并且記錄順序不同。
在實踐中,大多數(shù)是“不確定的”。模型變化的原因可能是機器學習算法本身存在隨機游走、不同權(quán)值的隨機初始化、不同分量的概率分布抽樣來分配優(yōu)化函數(shù)。
雖然模型的“不確定性”可能會對單個訓練結(jié)果造成干擾,但我們也可以用“不確定性”來確認模型的穩(wěn)定性,如決策樹、支持向量機(SVM)、神經(jīng)網(wǎng)絡(luò)等,最終可以通過多次迭代來確認模型的穩(wěn)定性。