導航:首頁 > 網路營銷 > 選擇神經網路深度需要考慮哪些

選擇神經網路深度需要考慮哪些

發布時間:2022-09-22 14:50:53

如何訓練深度神經網路

deeplearinig就是神經網路的一類,就是解決的訓練問題的深層神經網路,所以你這問題「深度學習會代替神經網路『就不對,BP么,BP有自己的優勢,也是很成熟的演算法,做手寫識別等等效果已經商用化了,不會被輕易替代。deeplearning遠比BP要復雜,用來解決的問題也不是一個層面,所以也沒有替代的必要。Deeplearning所涉及的問題大多數BP都沒法解決的。

度學習的概念源於人工神經網路的研究。含多隱層的多層感知器就是一種深度學習結構,通過組合低層特徵形成更加抽象的高層表示屬性類別或特徵,以發現數據的分布式特徵表示。深度學習的概念由Hinton等人於2006年提出,基於深信度網(DBN)提出非監督貪心逐層訓練演算法,為解決深層結構相關的優化難題帶來希望,隨後提出多層自動編碼器深層結構。深度學習是機器學習研究中的一個新的領域,其動機在於建立、模擬人腦進行分析學習的神經網路,它模仿人腦的機制來解釋數據,例如圖像,聲音和文本。
系統地論述了神經網路的基本原理、方法、技術和應用,主要內容包括:神經信息處理的基本原理、感知器、反向傳播網路、自組織網路、遞歸網路、徑向基函數網路、核函數方法、神經網路集成、模糊神經網路、概率神經網路、脈沖耦合神經網路、神經場理論、神經元集群以及神經計算機。每章末附有習題,書末附有詳細的參考文獻。神經網路是通過對人腦或生物神經網路的抽象和建模,研究非程序的、適應性的、大腦風格的信息處理的本質和能力。它以腦科學和認知神經科學的研究成果為基礎,拓展智能信息處理的方法,為解決復雜問題和智能控制提供有效的途徑,是智能科學和計算智能的重要部分。

Ⅱ 神經網路優缺點,

優點:

(1)具有自學習功能。例如實現圖像識別時,只在先把許多不同的圖像樣板和對應的應識別的結果輸入人工神經網路,網路就會通過自學習功能,慢慢學會識別類似的圖像。

自學習功能對於預測有特別重要的意義。預期未來的人工神經網路計算機將為人類提供經濟預測、市場預測、效益預測,其應用前途是很遠大的。

(2)具有聯想存儲功能。用人工神經網路的反饋網路就可以實現這種聯想。

(3)具有高速尋找優化解的能力。尋找一個復雜問題的優化解,往往需要很大的計算量,利用一個針對某問題而設計的反饋型人工神經網路,發揮計算機的高速運算能力,可能很快找到優化解。

缺點:

(1)最嚴重的問題是沒能力來解釋自己的推理過程和推理依據。

(2)不能向用戶提出必要的詢問,而且當數據不充分的時候,神經網路就無法進行工作。

(3)把一切問題的特徵都變為數字,把一切推理都變為數值計算,其結果勢必是丟失信息。

(4)理論和學習演算法還有待於進一步完善和提高。

(2)選擇神經網路深度需要考慮哪些擴展閱讀:

神經網路發展趨勢

人工神經網路特有的非線性適應性信息處理能力,克服了傳統人工智慧方法對於直覺,如模式、語音識別、非結構化信息處理方面的缺陷,使之在神經專家系統、模式識別、智能控制、組合優化、預測等領域得到成功應用。

人工神經網路與其它傳統方法相結合,將推動人工智慧和信息處理技術不斷發展。近年來,人工神經網路正向模擬人類認知的道路上更加深入發展,與模糊系統、遺傳演算法、進化機制等結合,形成計算智能,成為人工智慧的一個重要方向,將在實際應用中得到發展。

將信息幾何應用於人工神經網路的研究,為人工神經網路的理論研究開辟了新的途徑。神經計算機的研究發展很快,已有產品進入市場。光電結合的神經計算機為人工神經網路的發展提供了良好條件。

神經網路在很多領域已得到了很好的應用,但其需要研究的方面還很多。其中,具有分布存儲、並行處理、自學習、自組織以及非線性映射等優點的神經網路與其他技術的結合以及由此而來的混合方法和混合系統,已經成為一大研究熱點。

由於其他方法也有它們各自的優點,所以將神經網路與其他方法相結合,取長補短,繼而可以獲得更好的應用效果。目前這方面工作有神經網路與模糊邏輯、專家系統、遺傳演算法、小波分析、混沌、粗集理論、分形理論、證據理論和灰色系統等的融合。

參考資料:網路-人工神經網路

Ⅲ 神經網路為什麼要深

因為深度神經網路的參數特別多(可以達到上億,目前已經可以支持到萬億參數)。參數多,表示模型的搜索空間就越大,必須有足夠的數據才能更好地刻畫出模型在空間上的分布

Ⅳ 深度學習中的神經網路編寫需要設計到哪些演算法

涉及到的演算法有很多,比如反向傳播演算法、前向傳播、卷積演算法、矩陣遠點的演算法、梯度優化的演算法、評估演算法等等。單純用演算法來描述過於籠統,一般都是直接用對應的數學原理和公式去描述神經網路的編寫過程的。首先,定義網路結構,諸如神經元個數、隱層數目、權重、偏置等,其次根據梯度下降進行前向傳播,再次反向傳播更新梯度,最後是循環往復直到網路最優。

Ⅳ 分析影響一個神經網路模型是否達到要求的因素有哪些

我模型的是否達到要求的因素應該就是他的思維狀態和他現在的各種情況。

Ⅵ 神經網路淺談

人工智慧技術是當前炙手可熱的話題,而基於神經網路的深度學習技術更是熱點中的熱點。去年穀歌的Alpha Go 以4:1大比分的優勢戰勝韓國的李世石九段,展現了深度學習的強大威力,後續強化版的Alpha Master和無師自通的Alpha Zero更是在表現上完全碾壓前者。不論你怎麼看,以深度學習為代表的人工智慧技術正在塑造未來。

下圖為英偉達(NVIDIA)公司近年來的股價情況, 該公司的主要產品是「圖形處理器」(GPU),而GPU被證明能大大加快神經網路的訓練速度,是深度學習必不可少的計算組件。英偉達公司近年來股價的飛漲足以證明當前深度學習的井噴之勢。

好,話不多說,下面簡要介紹神經網路的基本原理、發展脈絡和優勢。

神經網路是一種人類由於受到生物神經細胞結構啟發而研究出的一種演算法體系,是機器學習演算法大類中的一種。首先讓我們來看人腦神經元細胞:

一個神經元通常具有多個樹突 ,主要用來接受傳入信息,而軸突只有一條,軸突尾端有許多軸突末梢,可以給其他多個神經元傳遞信息。軸突末梢跟其他神經元的樹突產生連接,從而傳遞信號

下圖是一個經典的神經網路(Artificial Neural Network,ANN):

乍一看跟傳統互聯網的拓撲圖有點類似,這也是稱其為網路的原因,不同的是節點之間通過有向線段連接,並且節點被分成三層。我們稱圖中的圓圈為神經元,左邊三個神經元組成的一列為輸入層,中間神經元列為隱藏層,右邊神經元列為輸出層,神經元之間的箭頭為權重。

神經元是計算單元,相當於神經元細胞的細胞核,利用輸入的數據進行計算,然後輸出,一般由一個線性計算部分和一個非線性計算部分組成;輸入層和輸出層實現數據的輸入輸出,相當於細胞的樹突和軸突末梢;隱藏層指既不是輸入也不是輸出的神經元層,一個神經網路可以有很多個隱藏層。

神經網路的關鍵不是圓圈代表的神經元,而是每條連接線對應的權重。每條連接線對應一個權重,也就是一個參數。權重具體的值需要通過神經網路的訓練才能獲得。我們實際生活中的學習體現在大腦中就是一系列神經網路迴路的建立與強化,多次重復的學習能讓迴路變得更加粗壯,使得信號的傳遞速度加快,最後對外表現為「深刻」的記憶。人工神經網路的訓練也借鑒於此,如果某種映射關系出現很多次,那麼在訓練過程中就相應調高其權重。

1943年,心理學家McCulloch和數學家Pitts參考了生物神經元的結構,發表了抽象的神經元模型MP:

符號化後的模型如下:

Sum函數計算各權重與輸入乘積的線性組合,是神經元中的線性計算部分,而sgn是取符號函數,當輸入大於0時,輸出1,反之輸出0,是神經元中的非線性部分。向量化後的公式為z=sgn(w^T a)(w^T=(w_1,w_2,w_3),a=〖(a_1,a_2,a_3)〗^T)。

但是,MP模型中,權重的值都是預先設置的,因此不能學習。該模型雖然簡單,並且作用有限,但已經建立了神經網路大廈的地基

1958年,計算科學家Rosenblatt提出了由兩層神經元組成(一個輸入層,一個輸出層)的神經網路。他給它起了一個名字–「感知器」(Perceptron)

感知器是當時首個可以學習的人工神經網路。Rosenblatt現場演示了其學習識別簡單圖像的過程,在當時引起了轟動,掀起了第一波神經網路的研究熱潮。

但感知器只能做簡單的線性分類任務。1969年,人工智慧領域的巨擘Minsky指出這點,並同時指出感知器對XOR(異或,即兩個輸入相同時輸出0,不同時輸出1)這樣的簡單邏輯都無法解決。所以,明斯基認為神經網路是沒有價值的。

隨後,神經網路的研究進入低谷,又稱 AI Winter 。

Minsky說過單層神經網路無法解決異或問題,但是當增加一個計算層以後,兩層神經網路不僅可以解決異或問題,而且具有非常好的非線性分類效果。

下圖為兩層神經網路(輸入層一般不算在內):

上圖中,輸出層的輸入是上一層的輸出。

向量化後的公式為:

注意:

每個神經元節點默認都有偏置變數b,加上偏置變數後的計算公式為:

同時,兩層神經網路不再使用sgn函數作為激勵函數,而採用平滑的sigmoid函數:

σ(z)=1/(1+e^(-z) )

其圖像如下:

理論證明: 兩層及以上的神經網路可以無限逼近真實的對應函數,從而模擬數據之間的真實關系 ,這是神經網路強大預測能力的根本。但兩層神經網路的計算量太大,當時的計算機的計算能力完全跟不上,直到1986年,Rumelhar和Hinton等人提出了反向傳播(Backpropagation,BP)演算法,解決了兩層神經網路所需要的復雜計算量問題,帶動了業界使用兩層神經網路研究的熱潮。

但好景不長,演算法的改進僅使得神經網路風光了幾年,然而計算能力不夠,局部最優解,調參等一系列問題一直困擾研究人員。90年代中期,由Vapnik等人發明的SVM(Support Vector Machines,支持向量機)演算法誕生,很快就在若干個方面體現出了對比神經網路的優勢:無需調參;高效;全局最優解。

由於以上原因,SVM迅速打敗了神經網路演算法成為主流。神經網路的研究再一次進入低谷, AI Winter again 。

多層神經網路一般指兩層或兩層以上的神經網路(不包括輸入層),更多情況下指兩層以上的神經網路。

2006年,Hinton提出使用 預訓練 」(pre-training)和「微調」(fine-tuning)技術能優化神經網路訓練,大幅度減少訓練多層神經網路的時間

並且,他給多層神經網路相關的學習方法賦予了一個新名詞–「 深度學習 」,以此為起點,「深度學習」紀元開始了:)

「深度學習」一方面指神經網路的比較「深」,也就是層數較多;另一方面也可以指神經網路能學到很多深層次的東西。研究發現,在權重參數不變的情況下,增加神經網路的層數,能增強神經網路的表達能力。

但深度學習究竟有多強大呢?沒人知道。2012年,Hinton與他的學生在ImageNet競賽中,用多層的卷積神經網路成功地對包含一千類別的一百萬張圖片進行了訓練,取得了分類錯誤率15%的好成績,這個成績比第二名高了近11個百分點,充分證明了多層神經網路識別效果的優越性。

同時,科研人員發現GPU的大規模並行矩陣運算模式完美地契合神經網路訓練的需要,在同等情況下,GPU的速度要比CPU快50-200倍,這使得神經網路的訓練時間大大減少,最終再一次掀起了神經網路研究的熱潮,並且一直持續到現在。

2016年基於深度學習的Alpha Go在圍棋比賽中以4:1的大比分優勢戰勝了李世石,深度學習的威力再一次震驚了世界。

神經網路的發展歷史曲折盪漾,既有被捧上神壇的高潮,也有無人問津的低谷,中間經歷了數次大起大落,我們姑且稱之為「三起三落」吧,其背後則是演算法的改進和計算能力的持續發展。

下圖展示了神經網路自發明以來的發展情況及一些重大時間節點。

當然,對於神經網路我們也要保持清醒的頭腦。由上圖,每次神經網路研究的興盛期持續10年左右,從最近2012年算起,或許10年後的2022年,神經網路的發展將再次遇到瓶頸。

神經網路作為機器學習的一種,其模型訓練的目的,就是使得參數盡可能的與真實的模型逼近。理論證明,兩層及以上的神經網路可以無限逼近真實的映射函數。因此,給定足夠的訓練數據和訓練時間,總能通過神經網路找到無限逼近真實關系的模型。

具體做法:首先給所有權重參數賦上隨機值,然後使用這些隨機生成的參數值,來預測訓練數據中的樣本。假設樣本的預測目標為yp ,真實目標為y,定義值loss,計算公式如下:

loss = (yp -y) ^2

這個值稱之為 損失 (loss),我們的目標就是使對所有訓練數據的損失和盡可能的小,這就轉化為求loss函數極值的問題。

一個常用方法是高等數學中的求導,但由於參數不止一個,求導後計算導數等於0的運算量很大,所以常用梯度下降演算法來解決這樣的優化問題。梯度是一個向量,由函數的各自變數的偏導數組成。

比如對二元函數 f =(x,y),則梯度∇f=(∂f/∂x,∂f/∂y)。梯度的方向是函數值上升最快的方向。梯度下降演算法每次計算參數在當前的梯度,然後讓參數向著梯度的反方向前進一段距離,不斷重復,直到梯度接近零時截止。一般這個時候,所有的參數恰好達到使損失函數達到一個最低值的狀態。下圖為梯度下降的大致運行過程:

在神經網路模型中,由於結構復雜,每次計算梯度的代價很大。因此還需要使用 反向傳播 (Back Propagation)演算法。反向傳播演算法利用了神經網路的結構進行計算,不一次計算所有參數的梯度,而是從後往前。首先計算輸出層的梯度,然後是第二個參數矩陣的梯度,接著是中間層的梯度,再然後是第一個參數矩陣的梯度,最後是輸入層的梯度。計算結束以後,所要的兩個參數矩陣的梯度就都有了。當然,梯度下降只是其中一個優化演算法,其他的還有牛頓法、RMSprop等。

確定loss函數的最小值後,我們就確定了整個神經網路的權重,完成神經網路的訓練。

在神經網路中一樣的參數數量,可以用更深的層次去表達。

由上圖,不算上偏置參數的話,共有三層神經元,33個權重參數。

由下圖,保持權重參數不變,但增加了兩層神經元。

在多層神經網路中,每一層的輸入是前一層的輸出,相當於在前一層的基礎上學習,更深層次的神經網路意味著更深入的表示特徵,以及更強的函數模擬能力。更深入的表示特徵可以這樣理解,隨著網路的層數增加,每一層對於前一層次的抽象表示更深入。

如上圖,第一個隱藏層學習到「邊緣」的特徵,第二個隱藏層學習到「邊緣」組成的「形狀」的特徵,第三個隱藏層學習到由「形狀」組成的「圖案」的特徵,最後的隱藏層學習到由「圖案」組成的「目標」的特徵。通過抽取更抽象的特徵來對事物進行區分,從而獲得更好的區分與分類能力。

前面提到, 明斯基認為Rosenblatt提出的感知器模型不能處理最簡單的「異或」(XOR)非線性問題,所以神經網路的研究沒有前途,但當增加一層神經元後,異或問題得到了很好地解決,原因何在?原來從輸入層到隱藏層,數據發生了空間變換,坐標系發生了改變,因為矩陣運算本質上就是一種空間變換。

如下圖,紅色和藍色的分界線是最終的分類結果,可以看到,該分界線是一條非常平滑的曲線。

但是,改變坐標系後,分界線卻表現為直線,如下圖:

同時,非線性激勵函數的引入使得神經網路對非線性問題的表達能力大大加強。

對於傳統的樸素貝葉斯、決策樹、支持向量機SVM等分類器,提取特徵是一個非常重要的前置工作。在正式訓練之前,需要花費大量的時間在數據的清洗上,這樣分類器才能清楚地知道數據的維度,要不然基於概率和空間距離的線性分類器是沒辦法進行工作的。然而在神經網路中,由於巨量的線性分類器的堆疊(並行和串列)以及卷積神經網路的使用,它對雜訊的忍耐能力、對多通道數據上投射出來的不同特徵偏向的敏感程度會自動重視或忽略,這樣我們在處理的時候,就不需要使用太多的技巧用於數據的清洗了。有趣的是,業內大佬常感嘆,「你可能知道SVM等機器學習的所有細節,但是效果並不好,而神經網路更像是一個黑盒,很難知道它究竟在做什麼,但工作效果卻很好」。

人類對機器學習的環節干預越少,就意味著距離人工智慧的方向越近。神經網路的這個特性非常有吸引力。

1) 谷歌的TensorFlow開發了一個非常有意思的神經網路 入門教程 ,用戶可以非常方便地在網頁上更改神經網路的參數,並且能看到實時的學習效率和結果,非常適合初學者掌握神經網路的基本概念及神經網路的原理。網頁截圖如下:

2) 深度學習領域大佬吳恩達不久前發布的《 神經網路和深度學習 》MOOC,現在可以在網易雲課堂上免費觀看了,並且還有中文字幕。

3) 《神經網路於深度學習》(Michael Nielsen著)、《白話深度學習與TensorFlow》也是不錯的入門書籍。

Ⅶ 深度前饋網路

看過西瓜書和李航的《統計學習方法》,對機器學習的基本演算法算是有了初步的理解。機器學習的演算法和思想固然重要,在實際中也有很多應用場景,但在超大數據集的表現上,深度學習才是當下效果最好的工具。可惜的是,花書這樣一本經典著作的中文版翻譯和機翻差不多水平,因此看的時候只能放慢速度。閑言少敘,下面是第六章的學習記錄。

深度前饋網路(deep feedforward network) ,也叫作前饋神經網路(feedforward neural network)或者多層感知機(multilayer perceptron, MLP),是典型的深度學習模型。 前饋網路的目標是近似某個函數 。例如,對於分類器, 將輸入 映射到一個類別 。前饋網路定義了一個映射 ,並且學習參數 的值使它能夠得到最佳的函數近似。

下面我們把「深度前饋網路」這個詞拆開來看:

那麼深度前饋網路的各層之間有什麼區別呢?從功能來講,訓練樣本直接指明了 輸出層 在每一點x上必須做什麼,它必須產生一個接近 y 的值。但訓練數據並沒有給出其它層中的所需的輸出,所以這些層被稱為 隱藏層(hidden layer)

一種理解前饋網路的方式是從線性模型開始,並考慮如何克服它的局限性。如果各層的函數 都是線性函數,那麼復合後的函數依然是線性的,此時我們的網路模型等價於線性模型。為了提高模型的表示能力,我們需要將各層的 設置為非線性的,從而得到一個非線性映射 。我們可以認為 提供了一組描述 的特徵,或者認為它提供了 的一個新的表示。

設計和訓練神經網路與使用梯度下降訓練其他任何機器學習模型並沒有太大不同。神經網路和線性模型等演算法的最大區別,在於神經網路的非線性導致大多數我們感興趣的代價函數都變得 非凸 。這意味著神經網路的訓練通常使用迭代的、基於梯度的優化, 僅僅使得代價函數達到一個非常小的值 ;而不是像用於訓練線性回歸模型的線性方程求解器或者用於訓練邏輯回歸或 SVM 的凸優化演算法那樣保證全局收斂。

用於非凸損失函數的隨機梯度下降沒有這種收斂性保證,並且 對參數的初始值很敏感。對於前饋神經網路,將所有的權重值初始化為小隨機數是很重要的。偏置可以初始化為零或者小的正值。

大多數現代的神經網路使用最大似然來訓練。這意味著代價函數就是負的對數似然,它與訓練數據和模型分布間的 交叉熵 等價。這個代價函數表示為

使用最大似然來導出代價函數的方法的一個優勢是,它減輕了為每個模型設計代價函數的負擔。明確一個模型 則自動地確定了一個代價函數 。

用於實現最大似然估計的交叉熵代價函數有一個不同尋常的特性,那就是當它被應用於實踐中經常遇到的模型時,它 通常沒有最小值。 如果模型可以控制輸出分布的密度(例如,通過學習高斯輸出分布的方差參數),那麼它可能對正確的訓練集輸出賦予極其高的密度,這將導致交叉熵趨向負無窮。 正則化技術提供了一些不同的方法來修正學習問題,使得模型不會通過這種方式來獲得無限制的收益。

一種簡單的輸出單元是基於仿射變換的輸出單元,仿射變換不具有非線性。這些單元往往被直接稱為 線性單元 。給定特徵 ,線性輸出層產生一個向量 ,線性輸出層經常被用來 產生條件高斯分布的均值

最大化其對數似然此時等價於最小化均方誤差。

許多任務需要預測二值型變數 的值。具有兩個類的分類問題可以歸結為這種形式。此時最大似然的方法是定義 在 條件下的 Bernoulli 分布。為保證模型給出了錯誤答案時,總能有一個較大的梯度。可以使用 sigmoid輸出單元 結合最大似然來實現。sigmoid 輸出單元定義為:

這種在對數空間里預測概率的方法可以很自然地使用最大似然學習。因為用於最大似然的代價函數是 ,代價函數中的 抵消了 中的 。如果沒有這個效果,sigmoid 的飽和性會阻止基於梯度的學習做出好的改進。因此, 最大似然幾乎總是訓練 輸出單元的優選方法。

當我們想要表示一個具有 n 個可能取值的離散型隨機變數的分布時,我們可以使用 函數。它可以看作是 函數的擴展。

函數最常用作分類器的輸出,來表示 個不同類上的概率分布。比較少見的是, 函數可以在模型內部使用,例如如果我們想要在某個內部變數的 個不同選項中進行選擇。 函數的形式為:

和 一樣,當使用最大化對數似然訓練 來輸出目標值 時,使用指數函數工作地非常好。

隱藏單元的設計是一個非常活躍的研究領域,並且還沒有許多明確的指導性理論原則。

整流線性單元(Rectified Linear Unit, ReLU)是隱藏單元極好的默認選擇。許多其他類型的隱藏單元也是可用的。決定何時使用哪種類型的隱藏單元是困難的事(盡管整流線性單元通常是一個可接受的選擇)。我們這里描述對於每種隱藏單元的一些基本直覺。這些直覺可以用來建議我們何時來嘗試一些單元。 通常不可能預先預測出哪種隱藏單元工作得最好。設計過程充滿了試驗和錯誤,先直覺認為某種隱藏單元可能表現良好,然後用它組成神經網路進行訓練,最後用驗證集來評估它的性能。

大多數的隱藏單元都接受輸入向量 x,計算仿射變換 ,然後使用一個逐元素的非線性函數 。大多數隱藏單元的區別僅僅在於激活函數 的形式。

整流線性單元使用激活函數:

整流線性單元通常作用於仿射變換之上:

當初始化仿射變換的參數時,可以將 b 的所有元素設置成一個小的正值,例如 0.1。這使得整流線性單元很可能初始時就對訓練集中的大多數輸入呈現激活狀態,並且允許導數通過。

整流線性單元的一個缺陷是它們不能通過基於梯度的方法學習那些使它們激活為零的樣本。整流線性單元的各種擴展保證了它們能在各個位置都接收到梯度。

整流線性單元的三個擴展基於當 時使用一個非零的斜率 :

絕對值整流(absolute value rectification) 固定 來得到: ,它用於圖像中的對象識別 (Jarrett et al., 2009a); 滲漏整流線性單元(Leaky ReLU) (Maas et al., 2013) 將 固定成一個類似 0.01 的小值; 參數化整流線性單元(parametric ReLU) 將 作為學習的參數 (He et al., 2015)。

maxout 單元(maxout unit) (Goodfellow et al., 2013a) 進一步擴展了整流線性單元。maxout單元將 劃分為每組有 個值的組,而不是使用作用於每個元素的函數 。每個maxout單元則輸出每組中的最大元素:

這里 是組 的輸入索引集 。因為激活函數中有了max操作,所以整個maxout網路也是一種非線性的變換。

maxout的擬合能力是非常強的,它可以擬合任意的的凸函數。最直觀的解釋就是任意的凸函數都可以由分段線性函數以任意精度擬合,而maxout又是取k個隱隱含層節點的最大值,這些」隱隱含層"節點也是線性的,所以在不同的取值范圍下,最大值也可以看做是分段線性的(分段的個數與k值有關)。

整流線性單元和它們的這些擴展都是基於一個原則,那就是如果它們的行為更接近線性,那麼模型更容易優化。

在引入整流線性單元之前,大多數神經網路使用 logistic sigmoid 激活函數:

或者是雙曲正切激活函數:

這些激活函數緊密相關,因為:

我們已經看過 sigmoid 單元作為輸出單元用來預測二值型變數取值為 1 的概率。與分段線性單元不同,sigmoid 單元在其大部分定義域內都飽和——當 z 取絕對值很大的正值時,它們飽和到一個高值,當 z 取絕對值很大的負值時,它們飽和到一個低值,並且僅僅當 z 接近 0 時它們才對輸入強烈敏感。sigmoid 單元的廣泛飽和性會使得基於梯度的學習變得非常困難。因為這個原因,現在不鼓勵將它們用作前饋網路中的隱藏單元。當使用一個合適的代價函數來抵消 sigmoid 的飽和性時,它們作為輸出單元可以與基於梯度的學習相兼容。

當必須要使用 sigmoid 激活函數時,雙曲正切激活函數通常要比 logistic sigmoid 函數表現更好。在 而 的意義上,它更像是單位函數。因為 tanh 在 0 附近與單位函數類似。

架構(architecture) 一詞是指網路的整體結構: 它應該具有多少單元,以及這些單元應該如何連接。

在鏈式架構中,主要的架構考慮是選擇網路的深度和每一層的寬度。我將會看到,即使只有一個隱藏層的網路也足夠適應訓練集。 更深層的網路通常能夠對每一層使用更少的單元數和更少的參數,並且經常容易泛化到測試集,但是通常也更難以優化。 對於一個具體的任務,理想的網路架構必須通過實驗,觀測在驗證集上的誤差來找到。

萬能近似定理(universal approximation theorem)

一個前饋神經網路如果具有線性輸出層和至少一層具有任何一種 『『擠壓』』 性質的激活函數(例如logistic sigmoid激活函數)的隱藏層,只要給予網路足夠數量的隱藏單元,它可以 以任意的精度來近似任何從一個有限維空間到另一個有限維空間的 Borel 可測函數 。前饋網路的導數也可以任意好地來近似函數的導數 (Hornik et al., 1990)。

萬能近似定理意味著無論我們試圖學習什麼函數,我們知道一個大的MLP一定能夠表示這個函數。

然而,我們不能保證訓練演算法能夠學得這個函數。即使 MLP能夠表示該函數,學習也可能因兩個不同的原因而失敗。 首先,用於訓練的優化演算法可能找不到用於期望函數的參數值。其次,訓練演算法可能由於過擬合而選擇了錯誤的函數。

總之,具有單層的前饋網路足以表示任何函數,但是網路層可能大得不可實現,並且可能無法正確地學習和泛化。在很多情況下,使用更深的模型能夠減少表示期望函數所需的單元的數量,並且可以減少泛化誤差。

存在一些函數族能夠在網路的深度大於某個值d時被高效地近似,而當深度被限制到小於或等於d時需要一個遠遠大於之前的模型。在很多情況下,淺層模型所需的隱藏單元的數量是n的指數級。

Montufar et al. (2014) 的主要定理指出, 具有 個輸入深度為 每個隱藏層具有 個單元的深度整流網路可以描述的線性區域的數量是

根據經驗,更深的模型似乎確實在廣泛的任務中泛化得更好。

目前為止,我們都將神經網路描述成層的簡單鏈式結構,主要的考慮因素是網路的深度和每層的寬度。在實踐中,神經網路顯示出相當的多樣性。

一般的,層不需要連接在鏈中,盡管這是最常見的做法。許多架構構建了一個主鏈,但隨後又添加了額外的架構特性,例如從層 i 到層 i + 2 或者更高層的 跳躍連接 。這些跳躍連接使得梯度更容易從輸出層流向更接近輸入的層。

架構設計考慮的另外一個關鍵點是如何將層與層之間連接起來。默認的神經網路層採用矩陣 W 描述的線性變換,每個輸入單元連接到每個輸出單元。許多專用網路具有較少的連接,使得輸入層中的每個單元僅連接到輸出層單元的一個小子集。這些用於 減少連接數量 的策略減少了參數的數量以及用於評估網路的計算量,但通常高度依賴於問題。

當我們使用前饋神經網路接收輸入 並產生輸出 時,信息通過網路向前流動。輸入 提供初始信息,然後傳播到每一層的隱藏單元,最終產生輸出 。這稱之為 前向傳播(forward propagation) 。在訓練過程中,前向傳播可以持續向前直到它產生一個標量代價函數 。 反向傳播(back propagation) 演算法 (Rumelhart et al., 1986c),經常簡稱為backprop,允許來自代價函數的信息通過網路向後流動,以便計算梯度。

將計算形式化為圖形的方法有很多。這里,我們使用圖中的每一個節點來表示一個變數。變數可以是標量、向量、矩陣、張量、或者甚至是另一類型的變數。為了形式化我們的圖形,我們還需引入操作(operation)這一概念。操作是指一個或多個變數的簡單函數。我們的圖形語言伴隨著一組被允許的操作。我們可以通過將多個操作復合在一起來描述更為復雜的函數。

如果變數 y 是變數 x 通過一個操作計算得到的,那麼我們畫一條從 x 到 y 的有向邊。我們有時用操作的名稱來注釋輸出的節點,當上下文很明確時,有時也會省略這個標注。計算圖的實例如下:

使用符號到符號的方法計算導數的示例如下。在這種方法中,反向傳播演算法不需要訪問任何實際的特定數值。相反,它將節點添加到計算圖中來描述如何計算這些導數。通用圖形求值引擎可以在隨後計算任何特定數值的導數。 本例從表示 的圖開始,運行反向傳播演算法,指導它構造表達式 對應的圖。

這部分花書上講了很多內容……我看得有些失去耐心……可能是講得太細致了吧……我對反向傳播演算法的認識很簡單,就是一個鏈式法則,一層一層計算梯度然後向後傳播。這里根據之前上課時候的課件內容做下簡單回顧:

總之反向傳播演算法的要點就是 以恰當的順序計算梯度,從而充分利用鏈式法則來提高計算效率 。我個人認為理解BP的最佳方式就是自己畫個圖手推一遍。

Ⅷ 如何更好的理解分析深度卷積神經網路

作者:楊延生
鏈接:
來源:知乎
著作權歸作者所有,轉載請聯系作者獲得授權。

"深度學習"是為了讓層數較多的多層神經網路可以訓練,能夠work而演化出來的一系列的 新的結構和新的方法。

新的網路結構中最著名的就是CNN,它解決了傳統較深的網路參數太多,很難訓練的問題,使用了逗局部感受野地和逗權植共享地的概念,大大減少了網路參數的數量。關鍵是這種結構確實很符合視覺類任務在人腦上的工作原理。
新的結構還包括了:LSTM,ResNet等。

新的方法就多了:新的激活函數:ReLU,新的權重初始化方法(逐層初始化,XAVIER等),新的損失函數,新的防止過擬合方法(Dropout, BN等)。這些方面主要都是為了解決傳統的多層神經網路的一些不足:梯度消失,過擬合等。

---------------------- 下面是原答案 ------------------------

從廣義上說深度學習的網路結構也是多層神經網路的一種。

傳統意義上的多層神經網路是只有輸入層、隱藏層、輸出層。其中隱藏層的層數根據需要而定,沒有明確的理論推導來說明到底多少層合適。
而深度學習中最著名的卷積神經網路CNN,在原來多層神經網路的基礎上,加入了特徵學習部分,這部分是模仿人腦對信號處理上的分級的。具體操作就是在原來的全連接的層前面加入了部分連接的卷積層與降維層,而且加入的是一個層級。
輸入層 - 卷積層 -降維層 -卷積層 - 降維層 -- .... -- 隱藏層 -輸出層
簡單來說,原來多層神經網路做的步驟是:特徵映射到值。特徵是人工挑選。
深度學習做的步驟是 信號->特徵->值。 特徵是由網路自己選擇。

閱讀全文

與選擇神經網路深度需要考慮哪些相關的資料

熱點內容
電視設置網路沒有字母 瀏覽:204
網路電影和院線電影有哪些區別呢 瀏覽:937
蘋果4s網路e 瀏覽:669
手機是4g卡顯示2g網路 瀏覽:78
網路速度快慢是看哪個 瀏覽:155
家裡有網路用哪個好 瀏覽:263
網路經紀模式有哪些網 瀏覽:595
蘋果網路環境異常1006 瀏覽:349
網路營銷廣告發源於哪個國家 瀏覽:98
計算機網路最主要特性 瀏覽:36
大興區如何做網路營銷推廣 瀏覽:623
電腦網路連接顯示感嘆號可以上網 瀏覽:811
提升路由器網路流暢度 瀏覽:851
網路安全知識百題競答答案 瀏覽:855
我連接好網路 瀏覽:58
哪裡投訴網路太貴 瀏覽:336
蘋果11是什麼網路類型 瀏覽:983
如何用word編輯網路圖 瀏覽:446
行車記錄儀有信號無網路 瀏覽:972
移動網路過戶需要什麼 瀏覽:538

友情鏈接