1. 程式人生 > >深度學習之理解神經網路的四個公式

深度學習之理解神經網路的四個公式

這篇文章裡面,我們探討了:可以使用偏導值利用梯度下降來求權重w和b,但是我們並沒有提,如何求代價函式的偏導,或者說如何對代價函式使用梯度下降。這時候就需要我們的backpropagation出馬了。

backpropagaton的歷史我就不詳談了(主要是懶),總之呢,現在他已經成了神經網路計算的核心演算法了。接下來我們就詳細的講這個演算法。

首先我們從基礎開始說起,首先定義一個神經網路

在這裡,首先需要理解的就是wljk的形式。右上角的l, 代表的是層數,也就是“輸入”(可以是直接輸入,也可以是上層的輸入)與權重w結合,作用到的下一層。右下角的k, 是l1層的第k個神經元;右下角j

的,是l層的第j個神經元。

這麼寫看起來好像比較奇怪,因為直覺上說,k在l之前,才是更符合我們認知的理解方式。但是後面我們可以看到,在這種處理方法之後,我們可以得到一種更簡潔的處理式子。比較而言,這種前後稍微顛倒下,也無所謂了,適應下就好了。

除了權重w之外,我們還有b和a:

b是我們的偏差,a是我們的輸入向量經過啟用函式之後的結果,也就是a=δ(z) .

在表現形式上,b跟a有這類似的特點:

右上角的值是所在的層數;右下角的值,是所在的第幾個神經元。

於是,根據前面的一些式子,我們一結合,就可以寫出下面的式子:

alj=σ(kwljkal1k+blj),(23)
這個式子看起來好像複雜,但實際上很簡單,而且完全描述了我們剛才說的神經網路的問題,當然,這裡的a
lj
是其中的一個神經元,它位於第l層的第j個。

這個神經元的得來,就是從前一層l-1層的所有神經元,與與之對應的權重結合之後,所有的相加,經過啟用函式得來的。

說點題外話,看到相乘,然後求和的情況,你會想到什麼呢?如果你能想到矩陣相乘的話,哎吆,不錯奧。

在矩陣中,我們要求的某個值,就是行與列對應位置的值相乘之後相加得到的。在本式子中,k就是那個對應的位置。例如,我們有公式

lij=Kkmiknkj

這個公式就是典型的矩陣相乘求值的公示,那麼我們轉成矩陣相乘:

li=minj

在(23)中,可以把alj理解成第l行第j列的值,那麼我們採用矩陣相乘的方法來計算,就得到了:

al

=δ(wlal1+bl)

這樣,就得到了一個比較簡潔的式子。而且我們也可以看到之前說的 ,k和l互相顛倒的優點了。

為了更方便,我們設定

zlwlal1+bl zlj=kwljkal1k+blj

這樣,我們可以方便的得到al=σ(zl)

然後呢,為了計算backpropagation,我們需要作出兩個假設。

首先,我們知道,代價方程的形式為:

C=12nxy(x)aL(x)2,(26)
其中,n是樣本數,x是輸入樣本點,y(x)是其理所應當的輸出值,而aL(x)是我們的神經網路的輸出值。其中L是神經網路的層數,在這裡就代表了神經網路裡的最後一層。

所以,我們作出兩個假設:

1) 代價函式可以寫成這種形式:C=1nxCx,Cx=12||yaL||2

也就是說,整個的代價函式可以用每個樣本的代價就平均來得到。我們知道對於一個樣本點來說,x的值是固定的,因此,我們可以暫時把Cx中的x省略掉,寫成C的形式。

2)代價函式C可以寫成關於aL的函式。其中aL是個向量,裡面包含多個不同的輸出情況。可以寫成:

C=12yaL2=12j(yjaLj)

相關推薦

深度學習理解神經網路公式

在這篇文章裡面,我們探討了:可以使用偏導值利用梯度下降來求權重w和b,但是我們並沒有提,如何求代價函式的偏導,或者說如何對代價函式使用梯度下降。這時候就需要我們的backpropagation出馬了。 backpropagaton的歷史我就不詳談了(主要是懶)

深度學習人工神經網路學習

人工神經網路就是把這樣的人工神經元互聯成一個網路:一個神經元的輸出作為另一個神經元的輸入。神經網路可以有多種多樣的拓撲結構。其中最簡單的就是「多層全連線前向神經網路」。它的輸入連線到網路第一層的每個神經元。前一層的每個神經元的輸出連線到下一層每個神經元的輸入。最後一層神經元的

深度學習迴圈神經網路

迴圈神經網路或RNN是一類用於處理序列資料的神經網路。 展開計算圖 考慮一個又外部訊號x(t)驅動的動態系統, s(t)=f(s(t−1),x(t);θ) 當前狀態包含了整個過去序列的資訊。 我們可以用一個函式g(t)代表t步展開後的迴圈: h(

深度學習中對神經網路理解

最近在研究Deep Learning在個性化推薦中的應用,由於DL跟神經網路有很大的關係,索性開篇就介紹下神經網路和自己所瞭解到的知識。接觸ML時間不是很長,難免有描述不當的地方,旨在於交流學習,有啥想法直接後面回覆。 在這篇博文中,你將會看到如下知識: 神經網路的基本模型

深度學習系列——關於神經網路理解的總結

  因為課題的需要,最近在學習深度學習方面的知識,因為是初學,博文中可能會有錯誤和不嚴謹的地方,歡迎大家批評指正、互相交流,好了言歸正傳。   目前在人工智慧和大資料方向炒的最火的就是深度學習,深度學習是神經網路的一個大的分支,深度學習的基本結構是深度神經網路

使用深度學習的CNN神經網路破解Captcha驗證碼

樣本資料的生成與處理: 我們先來看看mnist(一個手寫體數字圖片的資料集,有55000張0-9的手寫體數字的圖片)中圖片和圖片標籤的資料形式: 已知mnist資料集中的每張圖片是28x28畫素的灰度影象。每張圖片上是一個單獨的手寫體數字。 程式碼如下: from tensorf

機器學習迴圈神經網路(十)

摘要:        多層反饋RNN(Recurrent neural Network、迴圈神經網路)神經網路是一種節點定向連線成環的人工神經網路。這種網路的內部狀態可以展示動態時序行為。不同於前饋神經網路的是,RNN可以利用它內部的記憶來處理任意時序的輸入序列,這讓

深度學習 --- 徑向基神經網路RBF詳解

上一節我們基本上打開了深度學習的大門,其實下一步應該是卷積神經網路即CNN了,但是呢卷積神經網路的最後一層採用的是徑向基神經網路,為了以後到CNN不用再費力氣將RBF和保持CNN的整體性和連貫性,因此這裡我們系統的學習一下,講解之前我們還是先好好回顧我們的總體學習思路,首先我們從BP神經網路開始

吳恩達深度學習筆記(21)-神經網路的權重初始化為什麼要隨機初始化?

隨機初始化(Random+Initialization) 當你訓練神經網路時,權重隨機初始化是很重要的。 對於邏輯迴歸,把權重初始化為0當然也是可以的。 但是對於一個神經網路,如果你把權重或者引數都初始化為0,那麼梯度下降將不會起作用。 讓我們看看這是為什麼? 有兩個輸入

深度學習入門系列-神經網路

機器學習     定義:機器學習(Machine Learning, ML)是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、演算法複雜度理論等多門學科。 專門研究計算機怎樣模擬或實現人類的學習行為,以獲取新的知識或技能,重新組織已有的知識結構使之不斷改善自身的效能。    分

從零開始學深度學習二:神經網路

本課程筆記來源於深享網課程《深度學習理論與實戰TensorFlow》 2.1學習的種類 學習的種類主要分成以下三類:監督學習、非監督學習和強化學習三種。接下來,將分別對這三種學習進行介紹。 監督學習: 對已經標記的訓練樣本進行學習,然後對樣本外的資料進行標記

深度學習 --- 卷積神經網路CNN(LeNet-5網路學習演算法詳解)

上一節我們詳細探討了LeNet-5網路的架構,但是還沒有解釋該網路是如何進行學習的,如何更新權值的,本節將接著上一節進一步CNN的學習機制和權值更新過程,這裡請大家一定要對CNN網路有一個清晰的認識,知道每一層是做什麼的,為什麼這樣設定。原因在哪等。大家在學習的過程中需要多問自己幾個為什麼,這樣

深度學習 --- 卷積神經網路CNN(LeNet-5網路詳解)

卷積神經網路(Convolutional Neural Network,CNN)是一種前饋型的神經網路,其在大型影象處理方面有出色的表現,目前已經被大範圍使用到影象分類、定位等領域中。相比於其他神經網路結構,卷積神經網路需要的引數相對較少,使的其能夠廣泛應用。 本節打算先介紹背景和簡單的基本

機器學習BP神經網路演算法實現影象分類

BP 演算法是一個迭代演算法,它的基本思想為:(1) 先計算每一層的狀態和啟用值,直到最後一層(即訊號是前向傳播的);(2) 計算每一層的誤差,誤差的計算過程是從最後一層向前推進的(這就是反向傳播演算法名字的由來);(3) 更新引數(目標是誤差變小),迭代前面兩

TensorFlow入門-07.深度學習與深層神經網路

0.深度學習的定義(維基百科): 一類通過多層非線性變換對高複雜性資料建模演算法的合集。 1.深度學習與深層神經網路的關係: 因為深層神經網路時實現“多層非線性變換”最常用的一種方法,所以在實際中基本上可以認為深度學習就是深層神經網路的代名詞。 2.深度學習的兩個重要

深度學習殘差網路原理深度刨析

為什麼要加深網路? 深度卷積網路自然的整合了低中高不同層次的特徵,特徵的層次可以靠加深網路的層次來豐富。 從而,在構建卷積網路時,網路的深度越高,可抽取的特徵層次就越豐富。 所以一般我們會傾向於使用更深層次的網路結構,以便取得更高層次的特徵。 但是在使用深層次的網路結構時我們會遇到兩個問

吳恩達深度學習筆記(29)-神經網路訓練的方差和偏差分析

這一節我們學習在神經網路學習訓練時出現的結果進行分析,偏差和方差的表現和優化,仔細看好咯~ 偏差,方差(Bias /Variance) 幾乎所有機器學習從業人員都期望深刻理解偏差和方差,這兩個概念易學難精,即使你自己認為已經理解了偏差和方差的基本概念,卻總有一些意想不到的新東西出現。

吳恩達《深度學習-改善深層神經網路》3--超引數除錯、正則化以及優化

1. 系統組織超參除錯Tuning process1)深度神經網路的超參有學習速率、層數、隱藏層單元數、mini-batch大小、學習速率衰減、β(優化演算法)等。其重要性各不相同,按重要性分類的話:   第一類:最重要的引數就是學習速率α    第二類:隱藏層單元數、min

吳恩達《深度學習-卷積神經網路》2--深度卷積神經網路

1. Why look at case studies本節展示幾個神經網路的例項分析為什麼要講例項?近些年CNN的主要任務就是研究如何將基本構件(CONV、POOL、CF)組合起來形成有效的CNN,而學習瞭解前人的做法可以激發創造2. Classic Networks1)Le

深度學習--卷積神經網路工作原理

萬能的知乎 從知乎上看一篇文章,問題是卷積神經網路工作原理直觀的解釋,知乎大神用各種動圖對卷積神經網路的訓練做了介紹。YJango的回答最為精彩。奉上鍊接,希望你也能從這個回答中對卷積神經網路有更為確切的認識。https://www.zhihu.com/question/