官术网_书友最值得收藏!

1.1 深度學習概述

科學技術的發展是曲折的?;仡?0多年的發展歷史,受算法瓶頸、硬件算力的影響,深度學習的發展經歷了多次低潮。直到2006年,“深度學習鼻祖”杰里弗·欣頓(Geoffrey Hinton)提出了梯度消失問題的解決方案,深度學習研究才開始了新一輪的熱潮。

1.1.1 深度學習的歷史

深度學習(參考文獻[1])的歷史最早可以追溯到1943年,心理學家沃倫·麥卡洛克(Warren McCulloch)和數學家沃爾特·皮茨(Walter Pitts)根據生物的神經元結構,提出了最早的神經元數學模型——MCP(McCulloch-Pitts)模型。MCP模型實際上是按照生物的神經元結構及其工作原理簡化抽象出來的,麥卡洛克和皮茨希望能夠用計算機來模擬人的神經元反應過程,也就是所謂的“模擬人腦”。該模型將神經元的數據處理工作簡化為3個階段,分別是對輸入信號的加權、求和與激活。其中激活階段為了模擬神經元采用了非線性的激活方式,這也是神經網絡與線性計算的根本區別。

普通的MCP模型并沒有學習能力,只能完成一些固定的邏輯判定,直到1958年美國科學家弗蘭克·羅森布拉特(Frank Rosenblatt)提出了第一個可以自動學習權重的神經元模型,其被稱為“感知機”。感知機常被用于分類任務,即使在今天,感知機仍然是入門機器學習學科必學的基礎模型,1962年,該模型被證明能夠收斂,它的理論與實踐效果引起第一次神經網絡研究的熱潮。

科學技術的發展總是迂回曲折上升的,深度學習也不例外。1969年,美國科學家馬爾溫·明斯基(Marvin Minsky)等人指出了感知機的缺陷——它無法解決簡單的異或問題,這直接導致以感知機為基礎的相關神經網絡研究陷入低潮。

20世紀80年代,神經網絡研究迎來了復興。1986年,欣頓提出了反向傳播(Back Propagation,BP)算法與非線性映射函數Sigmoid,BP算法和Sigmoid有效解決了非線性分類和神經網絡學習的問題。放眼現在,BP算法仍然是當今絕大多數神經網絡進行訓練的方法,欣頓也因此被譽為“神經網絡之父”。20世紀八九十年代,卷積神經網絡、循環神經網絡、長短期記憶(Long Short-Term Memory,LSTM)網絡等被相繼提出。但是隨著以支持向量機(Support Vector Machine,SVM)為代表的淺層機器學習算法研究的興起,神經網絡的研究再次陷入低潮。

2006年,神經網絡又一次迎來了復興,欣頓和他的學生提出了多層神經網絡訓練時梯度消失問題的解決方案,即采用多層預訓練的方式, 同時他們還提出了深度學習的概念, 至此“深度學習時代”到來!2011年,澤維爾·格羅特(Xavier Glorot)提出了線性整流單元(Rectified Linear Unit,ReLU)激活函數,它是當今使用最多的非線性激活函數之一,此后大量的深度神經網絡如雨后春筍般“破土而出”,如AlexNet、VGG(Visual Geometry Group)、GoogLeNet、ResNet、DenseNet等。值得注意的是,這些網絡都是應用在計算機視覺領域的。除此之外,還有應用于自然語言處理的網絡,如LSTM和最近火熱的BERT(Bidirectional Encoder Representations from Transformers,一種預訓練語言模型)等。當然近年來也有學者提出了應用于無線通信領域的網絡,如DetNet、CsiNet等??偠灾壳吧疃葘W習研究正處于新一輪的熱潮,同時工業界關于深度學習技術的應用也已碩果累累。

1.1.2 深度學習的原理

1.1.1小節提到了神經元模型,神經元模型的工作流程可分為3個步驟,首先輸入數據向量,然后進行數據處理,最后輸出處理好的數據向量。神經元模型在進行數據處理時又分成3個階段,依次是加權、求和與激活。許多神經元以特定的規則排列并連接成網狀就形成了神經網絡。如圖1.1所示,圖中的網絡稱為全連接(Fully Connected,FC)神經網絡,其中每一個圓圈表示一個神經元。如圖1.1所示,通過排列,神經元之間形成了固定的層級關系。圖1.1中的網絡共分3層:習慣上將第一層稱為輸入層;將最后一層稱為輸出層;因為外部看不到輸入層與輸出層之間的網絡結構,所以將第一層與最后一層中間包含的所有層稱為隱藏層。之所以把圖1.1所示網絡稱為全連接神經網絡,是因為后一層的神經元會把它前一層的所有神經元的輸出都作為自己的輸入。值得注意的是,神經元之間的每一個連接都代表著一個權重(用w表示)。

圖1.1 全連接神經網絡結構

神經網絡實際上是一個將輸入向量映射到輸出向量的非線性函數,其中非線性主要由神經元的非線性激活函數提供。圖1.1所示的神經網絡可以記為

(1.1)

神經網絡能夠通過反向傳播進行“訓練”來縮小輸出值與期望值之間的差距。具體來說,在獲得了輸出值以后,在監督學習條件下,便可以計算出網絡輸出值與期望值之間的損失函數值,然后通過BP算法(依據的是鏈式求導法則),能夠計算出損失函數關于神經網絡中每一個權重的梯度,這樣通過梯度下降算法,如式(1.2)所示,就可以實現權重的迭代更新,使得損失函數值變得更小,其中lr是梯度下降算法的學習率(Learning Rate,LR)。通過大量數據不斷地訓練,神經網絡會越來越“適應”當前數據集,在當前數據集中的損失函數值就會越來越小,那么預測得也就會越來越準,同時在一些分布相似但未參與訓練的數據集上也會有不錯的表現。

(1.2)

深度學習網絡可以看作多層的神經網絡,當然神經網絡不僅限于全連接神經網絡,還包括卷積神經網絡、循環神經網絡等一眾變化多端、風格各異的優秀網絡。也正是因為網絡結構多變,深度學習才具備了巨大的潛力與更多的可能。雖然不同的網絡結構迥異,但相通的是,絕大多數神經網絡都是依托大量數據進行監督學習,并通過BP算法來實現參數迭代更新的。

下面介紹一種計算機視覺領域常見的神經網絡——卷積神經網絡。常見卷積神經網絡的結構如圖1.2所示。與全連接神經網絡相比,卷積神經網絡在結構上有很大差異,全連接神經網絡中的神經元都是按照一維排列的,而卷積神經網絡中的神經元是按照三維排列的,3個維度分別是長度、寬度和高度,可以分別與圖像中的長、寬、通道一一對應,所以卷積神經網絡天然適用于處理圖像問題。卷積神經網絡通常包含卷積層、池化層和全連接層,其中池化層負責對圖像進行“過濾”,卷積層負責對圖像進行卷積操作。相比于全連接層,卷積層的參數更少,并且卷積層能夠考慮到圖像像素位置的相關性?;谝陨咸攸c,卷積神經網絡常常是圖像領域的不二之選,同時,一些包含位置相關性的問題也會考慮應用卷積神經網絡。

圖1.2 常見卷積神經網絡的結構

主站蜘蛛池模板: 辰溪县| 合山市| 鹰潭市| 荔浦县| 奉新县| 英超| 临泽县| 金湖县| 沾益县| 若羌县| 汤阴县| 昌吉市| 托克托县| 纳雍县| 石台县| 扶绥县| 那曲县| 铜山县| 阳朔县| 天柱县| 新野县| 甘德县| 商都县| 阿拉尔市| 永靖县| 福海县| 聂荣县| 梓潼县| 宝兴县| 南部县| 汝城县| 康定县| 武平县| 平湖市| 响水县| 竹溪县| 章丘市| 白城市| 鲜城| 台北县| 醴陵市|