【完结】12篇文章告诉你深度学习理论应该学到什么水平
專欄《AI初識境》正式完結(jié)了,在這一個專題中,我們給大家從神經(jīng)網(wǎng)絡(luò)背景與基礎(chǔ),講到了深度學(xué)習(xí)中的激活函數(shù),池化,參數(shù)初始化,歸一化,優(yōu)化方法,正則項(xiàng)與泛化能力,講到了深度學(xué)習(xí)中的評測指標(biāo),優(yōu)化目標(biāo),以及新手開始做訓(xùn)練時(shí)的注意事項(xiàng)。
消化完這12期文章后,你肯定具備了扎實(shí)的深度學(xué)習(xí)理論基礎(chǔ),接下來就大膽地往前走吧,下面再次回顧提煉一下主要內(nèi)容。
作者&編輯 | 言有三
?
1、人工智能簡史
按照中國古代思想家荀子在《荀子·正名篇》的說法:“所以知之在人者謂之知,知有所合謂之智。所以能之在人者謂之能,能有所合謂之能”。老人家認(rèn)為,智能包含了兩層含義,當(dāng)然這是站在哲學(xué)的角度。
霍華德·加德納的多元智能理論中將人類的智能分成七種能力:
(1) 語言 (Verbal/Linguistic)
(2) 邏輯 (Logical/Mathematical)
(3) 空間 (Visual/Spatial)
(4) 肢體運(yùn)作 (Bodily/Kinesthetic)
(5) 音樂 (Musical/Rhythmic)
(6) 人際 (Inter-personal/Social)
(7) 內(nèi)省 (Intra-personal/Introspective)
基本覆蓋了現(xiàn)在人工智能的研究領(lǐng)域,包括計(jì)算機(jī)視覺,語音識別,自然語言處理等。
在這一篇文章里,會從圖靈與機(jī)器智能,馮諾伊曼與類腦計(jì)算,約翰·麥卡錫(John McCarthy)、馬文·閔斯基(Marvin Minsky,人工智能與認(rèn)知學(xué)專家)、克勞德·香農(nóng)(Claude Shannon,信息論的創(chuàng)始人)、艾倫·紐厄爾(Allen Newell,計(jì)算機(jī)科學(xué)家)、赫伯特·西蒙(Herbert Simon,諾貝爾經(jīng)濟(jì)學(xué)獎得主),塞弗里奇(Oliver Selfridge)等科學(xué)家參與的達(dá)特茅斯會議講起。
從人工智能的啟蒙,到三次浪潮的曲折和技術(shù)的成長史,值得每一個從事該行業(yè)的人閱讀。
【AI初識境】從3次人工智能潮起潮落說起?
?
2、神經(jīng)網(wǎng)絡(luò)
人工智能的研究派系分為兩大陣營。
第一大陣營,被稱為符號派。他們用統(tǒng)計(jì)邏輯和符號系統(tǒng)來研究人工智能。第二大陣營是統(tǒng)計(jì)派。現(xiàn)在的深度學(xué)習(xí)就屬于這一派,研究問題的方法就是仿造大腦。
這一篇從感受野,到MP模型,到感知機(jī),到反向傳播開始講起,歷數(shù)全連接神經(jīng)網(wǎng)絡(luò)的劣勢,然后講述卷積神經(jīng)網(wǎng)絡(luò)的特點(diǎn),核心技術(shù)和優(yōu)勢,是學(xué)習(xí)深度學(xué)習(xí)最重要的基礎(chǔ)。
【AI初識境】從頭理解神經(jīng)網(wǎng)絡(luò)-內(nèi)行與外行的分水嶺?
?
3、圖像領(lǐng)域的突破
既然學(xué)深度學(xué)習(xí),就必須要了解深度學(xué)習(xí)的重要進(jìn)展。
在前深度學(xué)習(xí)時(shí)代,視覺機(jī)制的發(fā)現(xiàn),第一個卷積神經(jīng)網(wǎng)絡(luò)Neocognitron的提出,反向傳播算法的流行,促進(jìn)了LeNet5和MNIST數(shù)據(jù)集的誕生。
隨著新理論的成熟,大數(shù)據(jù)的積累,GPU的普世,以卷積神經(jīng)網(wǎng)絡(luò)為代表的技術(shù)在圖像分類,目標(biāo)檢測等基礎(chǔ)領(lǐng)域取得重大突破,隨著AlphaGo的成功同時(shí)在業(yè)內(nèi)和業(yè)外人士的心目中種下了深度學(xué)習(xí)/人工智能技術(shù)的種子,從此煥發(fā)勃勃生機(jī)。
【AI初識境】近20年深度學(xué)習(xí)在圖像領(lǐng)域的重要進(jìn)展節(jié)點(diǎn)?
?
4、激活函數(shù)
深度學(xué)習(xí)的機(jī)制模仿于人腦,人腦的細(xì)胞接受刺激從而產(chǎn)生活動需要一定的閾值,這便是激活函數(shù)根本性的由來。
激活函數(shù)肩負(fù)著網(wǎng)絡(luò)非線性表達(dá)能力的提升,從早期平滑的sigmoid和tanh激活函數(shù),到后來的ReLU和各類ReLU的變種(LReLU,PReLU,RReLU,ELU,SELU,GELU等等),Maxout,研究者一直試圖讓網(wǎng)絡(luò)擁有更好的表達(dá)能力。
隨著技術(shù)的發(fā)展,利用增強(qiáng)學(xué)習(xí)等算法從函數(shù)池中學(xué)習(xí)新的激活函數(shù)如swish等,成為了當(dāng)下的研究主流,激活函數(shù)也走上了數(shù)據(jù)驅(qū)動的道路。
激活機(jī)制看似簡單,實(shí)則不易,大家不妨多了解了解。
【AI初識境】激活函數(shù):從人工設(shè)計(jì)到自動搜索?
?
5、初始化
參數(shù)初始化,一個看似很簡單的問題,卻實(shí)實(shí)在在地困住了神經(jīng)網(wǎng)絡(luò)的優(yōu)化很久,2006年Hinton等人在science期刊上發(fā)表了論文“Reducing the dimensionality of data with neural networks”,揭開了新的訓(xùn)練深層神經(jīng)網(wǎng)絡(luò)算法的序幕,仍舊被認(rèn)為是當(dāng)前第三次人工智能熱潮的紀(jì)元。
從全零初始化和隨機(jī)初始化,到標(biāo)準(zhǔn)初始化,Xavier初始化,He初始化,時(shí)至今日上千層網(wǎng)絡(luò)的訓(xùn)練都已經(jīng)成為了現(xiàn)實(shí),初始化似乎已經(jīng)不再是那么重要的課題了,但是誰說就沒有思考的空間了呢。
【AI初識境】什么是深度學(xué)習(xí)成功的開始?參數(shù)初始化
?
6、歸一化
我們總是希望所研究的統(tǒng)計(jì)問題能夠滿足固定的分布,而且這樣也的確會降低問題的難度。
在深度學(xué)習(xí)中,因?yàn)榫W(wǎng)絡(luò)的層數(shù)非常多,如果數(shù)據(jù)分布在某一層開始有明顯的偏移,隨著網(wǎng)絡(luò)的加深這一問題會加劇,進(jìn)而導(dǎo)致模型優(yōu)化的難度增加。
歸一化便是致力于解決這個問題,從數(shù)據(jù)到權(quán)重,從限定在同一樣本的一個特征通道到不同樣本的所有通道,各類歸一化方法以簡單的方式,優(yōu)雅地解決了深度學(xué)習(xí)模型訓(xùn)練容易陷入局部解的難題,順帶提升訓(xùn)練速度提高泛化能力,這是一定要掌握的理論和工程技巧。
【AI初識境】深度學(xué)習(xí)模型中的Normalization,你懂了多少??
?
7、池化
大腦學(xué)習(xí)知識靠抽象,從圖像中抽象知識是一個“從大到小”過濾提煉信息的過程。從視覺機(jī)制中來的pooling即池化,正是對信息進(jìn)行抽象的過程。
池化增加了網(wǎng)絡(luò)對于平移的不變性,提升了網(wǎng)絡(luò)的泛化能力,大家已經(jīng)習(xí)慣了使用均值池化mean pooling和最大池化(max pooling),雖然可以用帶步長的卷積進(jìn)行替代。
盡管池化究竟起到了多大的作用開始被研究者懷疑,但是池化機(jī)制仍然是網(wǎng)絡(luò)中必備的結(jié)構(gòu),所以你一定要熟悉它,而且基于數(shù)據(jù)驅(qū)動的池化機(jī)制值得研究。
【AI初識境】被Hinton,DeepMind和斯坦福嫌棄的池化,到底是什么??
?
8、最優(yōu)化
模型的學(xué)習(xí)需要通過優(yōu)化方法才能具體實(shí)現(xiàn)。深度學(xué)習(xí)模型的優(yōu)化是一個非凸優(yōu)化問題,盡管一階二階方法都可以拿來解決它,但是當(dāng)前隨機(jī)梯度下降SGD及其各類變種仍然是首選。
從SGD開始,有的致力于提高它的優(yōu)化速度如Momentum動量法和Nesterov accelerated gradient法,有的致力于讓不同的參數(shù)擁有不同的學(xué)習(xí)率如Adagrad,Adadelta與Rmsprop法,有的希望大家從調(diào)參中解脫如Adam方法及其變種,有的致力于讓收斂過程更加穩(wěn)定如Adafactor方法和Adabound方法。
沒有一個方法是完美的,訓(xùn)練的時(shí)候總歸要試試。
【AI初識境】為了圍剿SGD大家這些年想過的那十幾招?
?
9、泛化能力
如果一個模型只能在訓(xùn)練集上起作用,那不就成為了書呆子要其何用。
因此我們總是希望模型不僅僅是對于已知的數(shù)據(jù)(訓(xùn)練集)性能表現(xiàn)良好,對于未知的數(shù)據(jù)(測試集)也表現(xiàn)良好,即具有良好的泛化能力,通過添加正則項(xiàng)來實(shí)現(xiàn)。
從直接提供正則化約束的參數(shù)正則化方法如L1/L2正則化,工程上的技巧如訓(xùn)練提前終止和模型集成,以及隱式的正則化方法如數(shù)據(jù)增強(qiáng)等,研究人員在這方面投入的精力非常多,大家一定要時(shí)刻關(guān)注。
【AI初識境】如何增加深度學(xué)習(xí)模型的泛化能力?
?
10、模型評估
口說無憑,用數(shù)據(jù)說話才是研究者們進(jìn)行PK的正確姿態(tài)。計(jì)算機(jī)視覺的任務(wù)何其多,從分類,回歸,質(zhì)量評估到生成模型,這篇文章就全部都來說一遍。
【AI初識境】深度學(xué)習(xí)模型評估,從圖像分類到生成模型?
?
11、損失函數(shù)
模型的學(xué)習(xí)需要指導(dǎo),這正是損失函數(shù)的責(zé)任,它往往對模型最終表現(xiàn)如何影響巨大。
這一篇文章就重點(diǎn)總結(jié)分類問題,回歸問題,生成對抗網(wǎng)絡(luò)中使用的損失目標(biāo),為大家設(shè)計(jì)更好的優(yōu)化目標(biāo)奠定理論基礎(chǔ)。
【AI初識境】深度學(xué)習(xí)中常用的損失函數(shù)有哪些??
?
12、如何開始訓(xùn)練你的模型
磨刀不誤砍柴工,當(dāng)我們開始訓(xùn)練自己的模型的時(shí)候,總歸要想清楚一些事兒再動手。
第一步知道你要做的任務(wù)是一個什么任務(wù),找到競爭對手做好預(yù)期,想好你需要什么樣的數(shù)據(jù)。第二步確定好框架,基準(zhǔn)模型,準(zhǔn)備好數(shù)據(jù)。然后才是第三步開始訓(xùn)練,從輸入輸出,數(shù)據(jù)的預(yù)處理到維持正確地訓(xùn)練姿勢。
既然是總結(jié)出來的經(jīng)驗(yàn),想必總是有用的。
【AI初識境】給深度學(xué)習(xí)新手做項(xiàng)目的10個建議?
?
總結(jié)
相信經(jīng)過這一個系列后,大家應(yīng)該都夯實(shí)了自己的深度學(xué)習(xí)基礎(chǔ),從此向著更高的目標(biāo)前進(jìn)。
下一個系列《AI不惑境》,將在休息一個星期以后開始每周一連載,盡情期待,4月8日歸來。
如果你還有很多的疑問,那就來有三AI知識星球吧,更多好用,好玩的知識,大咖云集等你來撩。
有三帶領(lǐng)的精英小隊(duì)“學(xué)習(xí)季劃”已進(jìn)入深度學(xué)習(xí)篇,想上車速來,僅此一趟。
重新解釋“季”劃 & 為什么我不是在搞培訓(xùn)
感謝各位看官的耐心閱讀,不足之處希望多多指教。后續(xù)內(nèi)容將會不定期奉上,歡迎大家關(guān)注有三公眾號 有三AI!
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的【完结】12篇文章告诉你深度学习理论应该学到什么水平的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【杂谈】提升写代码效率不得不做的三件事
- 下一篇: 【公开课】“有三说深度学习”上线