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