HOME 首頁
SERVICE 服務產品
XINMEITI 新媒體代運營
CASE 服務案例
NEWS 熱點資訊
ABOUT 關于我們
CONTACT 聯系我們
創(chuàng)意嶺
讓品牌有溫度、有情感
專注品牌策劃15年

    神經網絡計算分為(神經網絡計算分為哪幾類)

    發(fā)布時間:2023-04-22 00:12:42     稿源: 創(chuàng)意嶺    閱讀: 108        

    大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關于神經網絡計算分為的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。

    開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等

    只需要輸入關鍵詞,就能返回你想要的內容,越精準,寫出的就越詳細,有微信小程序端、在線網頁版、PC客戶端

    官網:https://ai.de1919.com

    創(chuàng)意嶺作為行業(yè)內優(yōu)秀的企業(yè),服務客戶遍布全球各地,如需了解SEO相關業(yè)務請撥打電話175-8598-2043,或添加微信:1454722008

    本文目錄:

    神經網絡計算分為(神經網絡計算分為哪幾類)

    一、第五章 神經網絡

    神經網絡 :神經網絡是由具有適應性的簡單單元組成的廣泛并行互連的網絡,它的組織能夠模擬生物神經系統(tǒng)對真實世界物體所作出的交互反應。

    神經網絡中最基本的成分便是 神經元模型 。

    M-P神經元模型:

    感知機由兩層神經元組成,分別為輸入層、輸出層。

    以下是具體過程:

    多層神經網絡的拓撲結構如圖:

    如上圖可知,多層網絡由輸入層、隱含層和輸出層組成,頂層是輸出層,底層是輸入層,中間的便是隱含層。隱含層與輸出層都具有功能神經元。

    多層前饋神經網絡的結構需要滿足:

    1、每層神經元必須與下一層完全互連

    2、神經元之間不存在同層連接

    3、神經元不可跨層連接

    只需包含一個足夠多神經元的隱層,就能以任意精度逼近任意復雜度的連續(xù)函數

    BP神經網絡由于學習能力太強大比較榮譽造成過擬合問題,故有兩種策略來減緩過擬合的問題:

    1、早停:將數據分成訓練集和驗證集,訓練集學習,驗證集評估性能,在訓練過程中,若訓練集的累積誤差降低,而驗證集的累積誤差提高,則終止訓練;

    2、引入正則化:其基本思想是在誤差目標函數中增加一個用于描述網絡復雜程度的部分,有如連接權和閾值的平方和:

    其中λ∈(0,1)用于對累積經驗誤差與網絡復雜度這兩項進行折中,常通過交叉驗證法來估計。

    神經網絡的訓練過程可看作一個參數尋優(yōu)的過程,即尋找到適當的參數使得E最小。于是我們時常會談及“全局最小”和“局部最小”。

    1、全局最?。杭慈肿钚〗?,在參數空間中,所有其他點的誤差函數值均大于該點;

    2、局部最?。杭淳植孔钚〗猓趨悼臻g中,其鄰近的點的誤差函數值均大于該點。

    我們要達到局部極小點,很容易,只要滿足梯度為零的點便是了,局部極小點可以有多個,但全局最小點只有一個。顯然,我們追求的是全局最小,而非局部極小,于是人們通常采用以下策略來試圖“跳出”局部極小,使其接近全局最?。?/p>

    1、以多組不同參數值初始化多個神經網絡,按標準方法訓練,在迭代停止后,取其中誤差最小的解作為最終參數;

    2、使用隨機梯度下降(在計算梯度時加入了隨機因素),使得在局部最小時,計算的梯度仍可能不為0,從而可能跳出局部極小,繼續(xù)進行迭代;

    3、“模擬退火”技術,在每一步都以一定的概率接受比當前解更差的結果,但接受“次優(yōu)解”的概率要隨著迭代進行,時間推移而逐漸減低以確保算法的穩(wěn)定。

    1、RBF網絡

    單隱層前饋神經網絡 ,使用徑向基函數作為隱層神經元激活函數,輸出層是對隱層神經元輸出的線性組合。RBF網絡可表示為:

    2、ART網絡

    競爭型學習 (神經網絡中一種常用的 無監(jiān)督學習 策略),由 比較層、識別層、識別閾值和重置模塊 組成。接收到比較層的輸入信號后,識別層神經元相互競爭以產生獲勝神經元,最簡單的方式就是計算輸入向量與每個識別層神經元所對應的模式類代表向量間的距離,距離小者獲勝。若獲勝神經元對應的代表向量與輸入向量間 相似度大于識別閾值 ,則將輸入樣本歸為該代表向量所屬類別,網絡 連接權 也會進行 更新 以保證后面接收到相似的輸入樣本時該模式類會計算出更大的相似度,使得這樣的樣本能夠歸于一類;如果 相似度不大于識別閾值 ,則 重置模塊 會在 識別層 加一個神經元,其 代表向量 設置 為當前 輸入向量 。

    3、SOM網絡

    競爭型學習的無監(jiān)督神經網絡 ,將高維輸入數據映射到低維空間(通常是二維),且保持輸入數據在高維空間的拓撲結構。

    4、級聯相關網絡

    結構自適應網絡 。

    5、Elman網絡

    遞歸神經網絡 。

    6、Boltzmann機

    基于能量的模型,其神經元分為顯層與隱層,顯層用于數據輸入輸出,隱層被理解為數據的內在表達。其神經元皆為布爾型,1為激活,0為抑制。

    理論上,參數越多的模型其復雜程度越高,能完成更加復雜的學習任務。但是復雜模型的訓練效率低下,容易過擬合。但由于大數據時代、云計算,計算能力大幅提升緩解了訓練效率低下,而訓練數據的增加則可以降低過擬合風險。

    于是如何增加模型的復雜程度呢?

    1、增加隱層數;

    2、增加隱層神經元數.

    如何有效訓練多隱層神經網絡?

    1、無監(jiān)督逐層訓練:每次訓練一層隱節(jié)點,把上一層隱節(jié)點的輸出當作輸入來訓練,本層隱結點訓練好后,輸出再作為下一層的輸入來訓練,這稱為預訓練,全部預訓練完成后,再對整個網絡進行微調。“預訓練+微調”即把大量的參數進行分組,先找出每組較好的設置,再基于這些局部最優(yōu)的結果來訓練全局最優(yōu);

    2、權共享:令同一層神經元使用完全相同的連接權,典型的例子是卷積神經網絡。這樣做可以大大減少需要訓練的參數數目。

    深度學習 可理解為一種特征學習或者表示學習,是通過 多層處理 ,逐漸將初始的 低層特征表示 轉化為 高層特征表示 后,用 簡單模型 即可完成復雜的分類等 學習任務

    二、神經網絡算法

    20 世紀五、六⼗年代,科學家 Frank Rosenblatt其受到 Warren McCulloch 和 Walter Pitts早期的⼯作的影響,發(fā)明了感知機(Perceptrons)。

    ⼀個感知器接受⼏個⼆進制輸⼊, ,并產⽣⼀個⼆進制輸出:

    如上圖所示的感知機有三個輸⼊: 。通??梢杂懈嗷蚋佥?#12042;。 我們再引⼊權重: ,衡量輸入對輸出的重要性。感知機的輸出為0 或者 1,則由分配權重后的總和 ⼩于等于或者⼤于閾值決定。和權重⼀樣,閾值(threshold)是⼀個實數,⼀個神經元的參數。⽤更精確的代數形式如下:

    給三個因素設置權重來作出決定:

    可以把這三個因素對應地⽤⼆進制變量 來表⽰。例如,如果天⽓好,我們把

    ,如果不好, 。類似地,如果你的朋友陪你去, ,否則 。 也類似。

    這三個對于可能對你來說,“電影好不好看”對你來說最重要,而天氣顯得不是那么的重要。所以你會這樣分配權值: ,然后定義閾值threshold=5。

    現在,你可以使⽤感知器來給這種決策建⽴數學模型。

    例如:

    隨著權重和閾值的變化,你可以得到不同的決策模型。很明顯,感知機不是⼈做出決策使⽤的全部模型。但是這個例⼦說明了⼀個感知機如何能權衡不同的依據來決策。這看上去也可以⼤致解釋⼀個感知機⽹絡有時確實能夠做出一些不錯的決定。

    現在我們隊上面的結構做一點變化,令b=-threshold,即把閾值移到不等號左邊,變成偏置, 那么感知器的規(guī)則可以重寫為:

    引⼊偏置只是我們描述感知器的⼀個很⼩的變動,但是我們后⾯會看到它引導更進⼀步的符號簡化。因此,我們不再⽤閾值,⽽總是使⽤偏置。

    感知機是首個可以學習的人工神經網絡,它的出現引起的神經網絡的第一層高潮。需要指出的是,感知機只能做簡單的線性分類任務,而且Minsky在1969年出版的《Perceptron》書中,證明了感知機對XOR(異或)這樣的問題都無法解決。但是感知機的提出,對神經網絡的發(fā)展是具有重要意義的。

    通過上面的感知機的觀察我們發(fā)現一個問題,每個感知機的輸出只有0和1,這就意味著有時我們只是在單個感知機上稍微修改了一點點權值w或者偏置b,就可能造成最終輸出完全的反轉。也就是說,感知機的輸出是一個階躍函數。如下圖所示,在0附近的時候,輸出的變化是非常明顯的,而在遠離0的地方,我們可能調整好久參數也不會發(fā)生輸出的變化。

    這樣階躍的跳變并不是我們想要的,我們需要的是當我們隊權值w或者偏置b做出微小的調整后,輸出也相應的發(fā)生微小的改變。這同時也意味值我們的輸出不再只是0和1,還可以輸出小數。由此我們引入了S型神經元。

    S型神經元使用 S 型函數,也叫Sigmoid function函數,我們用它作為激活函數。其表達式如下:

    圖像如下圖所示:

    利⽤實際的 σ 函數,我們得到⼀個,就像上⾯說明的,平滑的感知器。 σ 函數的平滑特性,正是關鍵因素,⽽不是其細部形式。 σ 的平滑意味著權重和偏置的微⼩變化,即 ∆w 和 ∆b,會從神經元產⽣⼀個微⼩的輸出變化 ∆output。實際上,微積分告訴我們

    ∆output 可以很好地近似表⽰為:

    上面的式子是⼀個反映權重、偏置變化和輸出變化的線性函數。這⼀線性使得我們可以通過選擇權重和偏置的微⼩變化來達到輸出的微⼩變化。所以當 S 型神經元和感知器本質上是相同的,但S型神經元在計算處理如何變化權重和偏置來使輸出變化的時候會更加容易。

    有了對S型神經元的了解,我們就可以介紹神經網絡的基本結構了。具體如下:

    在⽹絡中最左邊的稱為輸⼊層,其中的神經元稱為輸⼊神經元。最右邊的,即輸出層包含有輸出神經元,在圖中,輸出層只有⼀個神經元。中間層,既然這層中的神經元既不是輸⼊也不是輸出,則被稱為隱藏層。

    這就是神經網絡的基本結構,隨著后面的發(fā)展神經網絡的層數也隨之不斷增加和復雜。

    我們回顧一下神經網絡發(fā)展的歷程。神經網絡的發(fā)展歷史曲折蕩漾,既有被人捧上天的時刻,也有摔落在街頭無人問津的時段,中間經歷了數次大起大落。

    從單層神經網絡(感知機)開始,到包含一個隱藏層的兩層神經網絡,再到多層的深度神經網絡,一共有三次興起過程。詳見下圖。

    我們希望有⼀個算法,能讓我們找到權重和偏置,以⾄于⽹絡的輸出 y(x) 能夠擬合所有的 訓練輸⼊ x。為了量化我們如何實現這個⽬標,我們定義⼀個代價函數:

    這⾥ w 表⽰所有的⽹絡中權重的集合, b 是所有的偏置, n 是訓練輸⼊數據的個數,

    a 是表⽰當輸⼊為 x 時輸出的向量,求和則是在總的訓練輸⼊ x 上進⾏的。當然,輸出 a 取決于 x, w和 b,但是為了保持符號的簡潔性,我沒有明確地指出這種依賴關系。符號 ∥v∥ 是指向量 v 的模。我們把 C 稱為⼆次代價函數;有時也稱被稱為均⽅誤差或者 MSE。觀察⼆次代價函數的形式我們可以看到 C(w, b) 是⾮負的,因為求和公式中的每⼀項都是⾮負的。此外,代價函數 C(w,b)的值相當⼩,即 C(w; b) ≈ 0,精確地說,是當對于所有的訓練輸⼊ x, y(x) 接近于輸出 a 時。因

    此如果我們的學習算法能找到合適的權重和偏置,使得 C(w; b) ≈ 0,它就能很好地⼯作。相反,當 C(w; b) 很⼤時就不怎么好了,那意味著對于⼤量地輸⼊, y(x) 與輸出 a 相差很⼤。因此我們的訓練算法的⽬的,是最⼩化權重和偏置的代價函數 C(w; b)。換句話說,我們想要找到⼀系列能讓代價盡可能⼩的權重和偏置。我們將采⽤稱為梯度下降的算法來達到這個⽬的。

    下面我們將代價函數簡化為C(v)。它可以是任意的多元實值函數, 。

    注意我們⽤ v 代替了 w 和 b 以強調它可能是任意的函數,我們現在先不局限于神經⽹絡的環(huán)境。

    為了使問題更加簡單我們先考慮兩個變量的情況,想象 C 是⼀個只有兩個變量 和 的函數,我們的目的是找到 和 使得C最小。

    如上圖所示,我們的目的就是找到局部最小值。對于這樣的一個問題,一種方法就是通過微積分的方法來解決,我們可以通過計算導數來求解C的極值點。但是對于神經網絡來說,我們往往面對的是非常道的權值和偏置,也就是說v的維數不只是兩維,有可能是億萬維的。對于一個高維的函數C(v)求導數幾乎是不可能的。

    在這種情況下,有人提出了一個有趣的算法。想象一下一個小球從山頂滾下山谷的過程, 我們的⽇常經驗告訴我們這個球最終會滾到⾕底。我們先暫時忽略相關的物理定理, 對球體的⾁眼觀察是為了激發(fā)我們的想象⽽不是束縛我們的思維。因此與其陷進物理學⾥凌亂的細節(jié),不如我們就這樣問⾃⼰:如果我們扮演⼀天的上帝,能夠構造⾃⼰的物理定律,能夠⽀配球體可以如何滾動,那么我們將會采取什么樣的運動學定律來讓球體能夠總是滾落到⾕底呢?

    為了更精確地描述這個問題,讓我們思考⼀下,當我們在 和 ⽅向分別將球體移動⼀個很⼩的量,即 ∆ 和 ∆ 時,球體將會發(fā)⽣什么情況。微積分告訴我們 C 將會有如下變化:

    也可以用向量表示為

    現在我們的問題就轉換為不斷尋找一個小于0的∆C,使得C+∆C不斷變小。

    假設我們選?。?/p>

    這⾥的 η 是個很⼩的正數(稱為學習速率),于是

    由于 ∥∇C∥2 ≥ 0,這保證了 ∆C ≤ 0,即,如果我們按照上述⽅程的規(guī)則去改變 v,那么 C

    會⼀直減⼩,不會增加。

    所以我們可以通過不斷改變v來C的值不斷下降,是小球滾到最低點。

    總結⼀下,梯度下降算法⼯作的⽅式就是重復計算梯度 ∇C,然后沿著相反的⽅向移動,沿著⼭⾕“滾落”。我們可以想象它像這樣:

    為了使梯度下降能夠正確地運⾏,我們需要選擇合適的學習速率η,確保C不斷減少,直到找到最小值。

    知道了兩個變量的函數 C 的梯度下降方法,我們可以很容易的把它推廣到多維。我們假設 C 是⼀個有 m 個變量 的多元函數。 ∆C 將會變?yōu)椋?/p>

    其中, ∇C為

    ∆v為:

    更新規(guī)則為:

    在回到神經網絡中,w和b的更新規(guī)則為:

    前面提到神經⽹絡如何使⽤梯度下降算法來學習他們⾃⾝的權重和偏置。但是,這⾥還留下了⼀個問題:我們并沒有討論如何計算代價函數的梯度。這里就需要用到一個非常重要的算法:反向傳播算法(backpropagation)。

    反向傳播算法的啟示是數學中的鏈式法則。

    四個方程:

    輸出層誤差方程:

    當前層誤差方程:

    誤差方程關于偏置的關系:

    誤差方程關于權值的關系

    算法描述:

    檢視這個算法,你可以看到為何它被稱作反向傳播。我們從最后⼀層開始向后計算誤差向量δ。這看起來有點奇怪,為何要從后⾯開始。但是如果你認真思考反向傳播的證明,這種反向移動其實是代價函數是⽹絡輸出的函數的結果。為了理解代價隨前⾯層的權重和偏置變化的規(guī)律,我們需要重復作⽤鏈式法則,反向地獲得需要的表達式。

    參考鏈接: http://neuralnetworksanddeeplearning.com/

    三、神經網絡算法是什么

    神經網絡算法是指邏輯性的思維是指根據邏輯規(guī)則進行推理的過程;神經網絡的研究內容相當廣泛,反映了多學科交叉技術領域的特點,主要的研究工作集中在生物原型研究、建立理論模型、網絡模型與算法研究、人工神經網絡應用系統(tǒng)等方面;生物原型研究:從生理學、心理學、解剖學、腦科學、病理學等生物科學方面研究神經細胞、神經網絡、神經系統(tǒng)的生物原型結構及其功能機理;建立理論模型:根據生物原型的研究,建立神經元、神經網絡的理論模型;網絡模型與算法研究:在理論模型研究的基礎上構作具體的神經網絡模型,以實現計算機模擬或準備制作硬件;人

    四、一文讀懂神經網絡

    要說近幾年最引人注目的技術,無疑的,非人工智能莫屬。無論你是否身處科技互聯網行業(yè),隨處可見人工智能的身影:從 AlphaGo 擊敗世界圍棋冠軍,到無人駕駛概念的興起,再到科技巨頭 All in AI,以及各大高校向社會輸送海量的人工智能專業(yè)的畢業(yè)生。以至于人們開始萌生一個想法:新的革命就要來了,我們的世界將再次發(fā)生一次巨變;而后開始焦慮:我的工作是否會被機器取代?我該如何才能抓住這次革命?

    人工智能背后的核心技術是深度神經網絡(Deep Neural Network),大概是一年前這個時候,我正在回老家的高鐵上學習 3Blue1Brown 的 Neural Network 系列視頻課程,短短 4 集 60 多分鐘的時間,就把神經網絡從 High Level 到推導細節(jié)說得清清楚楚,當時的我除了獲得新知的興奮之外,還有一點新的認知,算是給頭腦中的革命性的技術潑了盆冷水:神經網絡可以解決一些復雜的、以前很難通過寫程序來完成的任務——例如圖像、語音識別等,但它的實現機制告訴我,神經網絡依然沒有達到生物級別的智能,短期內期待它來取代人也是不可能的。

    一年后的今天,依然在這個春運的時間點,將我對神經網絡的理解寫下來,算是對這部分知識的一個學習筆記,運氣好的話,還可以讓不了解神經網絡的同學了解起來。

    維基百科這樣解釋 神經網絡 :

    這個定義比較寬泛,你甚至還可以用它來定義其它的機器學習算法,例如之前我們一起學習的邏輯回歸和 GBDT 決策樹。下面我們具體一點,下圖是一個邏輯回歸的示意圖:

    其中 x1 和 x2 表示輸入,w1 和 w2 是模型的參數,z 是一個線性函數:

    接著我們對 z 做一個 sigmod 變換(圖中藍色圓),得到輸出 y:

    其實,上面的邏輯回歸就可以看成是一個只有 1 層 輸入層 , 1 層 輸出層 的神經網絡,圖中容納數字的圈兒被稱作 神經元 ;其中,層與層之間的連接 w1、w2 以及 b,是這個 神經網絡的參數 ,層之間如果每個神經元之間都保持著連接,這樣的層被稱為 全連接層 (Full Connection Layer),或 稠密層 (Dense Layer);此外,sigmoid 函數又被稱作 激活函數 (Activation Function),除了 sigmoid 外,常用的激活函數還有 ReLU、tanh 函數等,這些函數都起到將線性函數進行非線性變換的作用。我們還剩下一個重要的概念: 隱藏層 ,它需要把 2 個以上的邏輯回歸疊加起來加以說明:

    如上圖所示,除輸入層和輸出層以外,其他的層都叫做 隱藏層 。如果我們多疊加幾層,這個神經網絡又可以被稱作 深度神經網絡 (Deep Neural Network),有同學可能會問多少層才算“深”呢?這個沒有絕對的定論,個人認為 3 層以上就算吧:)

    以上,便是神經網絡,以及神經網絡中包含的概念,可見,神經網絡并不特別,廣義上講,它就是

    可見,神經網絡和人腦神經也沒有任何關聯,如果我們說起它的另一個名字—— 多層感知機(Mutilayer Perceptron) ,就更不會覺得有多么玄乎了,多層感知機創(chuàng)造于 80 年代,可為什么直到 30 年后的今天才爆發(fā)呢?你想得沒錯,因為改了個名字……開個玩笑;實際上深度學習這項技術也經歷過很長一段時間的黑暗低谷期,直到人們開始利用 GPU 來極大的提升訓練模型的速度,以及幾個標志性的事件:如 AlphaGo戰(zhàn)勝李世石、Google 開源 TensorFlow 框架等等,感興趣的同學可以翻一下這里的歷史。

    就拿上圖中的 3 個邏輯回歸組成的神經網絡作為例子,它和普通的邏輯回歸比起來,有什么優(yōu)勢呢?我們先來看下單邏輯回歸有什么劣勢,對于某些情況來說,邏輯回歸可能永遠無法使其分類,如下面數據:

    這 4 個樣本畫在坐標系中如下圖所示

    因為邏輯回歸的決策邊界(Decision Boundary)是一條直線,所以上圖中的兩個分類,無論你怎么做,都無法找到一條直線將它們分開,但如果借助神經網絡,就可以做到這一點。

    由 3 個邏輯回歸組成的網絡(這里先忽略 bias)如下:

    觀察整個網絡的計算過程,在進入輸出層之前,該網絡所做的計算實際上是:

    即把輸入先做了一次線性變換(Linear Transformation),得到 [z1, z2] ,再把 [z1, z2] 做了一個非線性變換(sigmoid),得到 [x1', x2'] ,(線性變換的概念可以參考 這個視頻 )。從這里開始,后面的操作就和一個普通的邏輯回歸沒有任何差別了,所以它們的差異在于: 我們的數據在輸入到模型之前,先做了一層特征變換處理(Feature Transformation,有時又叫做特征抽取 Feature Extraction),使之前不可能被分類的數據變得可以分類了 。

    我們繼續(xù)來看下特征變換的效果,假設 為 ,帶入上述公式,算出 4 個樣本對應的 [x1', x2'] 如下:

    再將變換后的 4 個點繪制在坐標系中:

    顯然,在做了特征變換之后,這兩個分類就可以很容易的被一條決策邊界分開了。

    所以, 神經網絡的優(yōu)勢在于,它可以幫助我們自動的完成特征變換或特征提取 ,尤其對于聲音、圖像等復雜問題,因為在面對這些問題時,人們很難清晰明確的告訴你,哪些特征是有用的。

    在解決特征變換的同時,神經網絡也引入了新的問題,就是我們需要設計各式各樣的網絡結構來針對性的應對不同的場景,例如使用卷積神經網絡(CNN)來處理圖像、使用長短期記憶網絡(LSTM)來處理序列問題、使用生成式對抗網絡(GAN)來寫詩和作圖等,就連去年自然語言處理(NLP)中取得突破性進展的 Transformer/Bert 也是一種特定的網絡結構。所以, 學好神經網絡,對理解其他更高級的網絡結構也是有幫助的

    上面說了,神經網絡可以看作一個非線性函數,該函數的參數是連接神經元的所有的 Weights 和 Biases,該函數可以簡寫為 f(W, B) ,以手寫數字識別的任務作為例子:識別 MNIST 數據集 中的數字,數據集(MNIST 數據集是深度學習中的 HelloWorld)包含上萬張不同的人寫的數字圖片,共有 0-9 十種數字,每張圖片為 28*28=784 個像素,我們設計一個這樣的網絡來完成該任務:

    把該網絡函數所具備的屬性補齊:

    接下來的問題是,這個函數是如何產生的?這個問題本質上問的是這些參數的值是怎么確定的。

    在機器學習中,有另一個函數 c 來衡量 f 的好壞,c 的參數是一堆數據集,你輸入給 c 一批 Weights 和 Biases,c 輸出 Bad 或 Good,當結果是 Bad 時,你需要繼續(xù)調整 f 的 Weights 和 Biases,再次輸入給 c,如此往復,直到 c 給出 Good 為止,這個 c 就是損失函數 Cost Function(或 Loss Function)。在手寫數字識別的列子中,c 可以描述如下:

    可見,要完成手寫數字識別任務,只需要調整這 12730 個參數,讓損失函數輸出一個足夠小的值即可,推而廣之,絕大部分神經網絡、機器學習的問題,都可以看成是定義損失函數、以及參數調優(yōu)的問題。

    在手寫識別任務中,我們既可以使用交叉熵(Cross Entropy)損失函數,也可以使用 MSE(Mean Squared Error)作為損失函數,接下來,就剩下如何調優(yōu)參數了。

    神經網絡的參數調優(yōu)也沒有使用特別的技術,依然是大家剛接觸機器學習,就學到的梯度下降算法,梯度下降解決了上面迭代過程中的遺留問題——當損失函數給出 Bad 結果時,如何調整參數,能讓 Loss 減少得最快。

    梯度可以理解為:

    把 Loss 對應到 H,12730 個參數對應到 (x,y),則 Loss 對所有參數的梯度可以表示為下面向量,該向量的長度為 12730:

    $$

    nabla L(w,b) = left[

    frac{partial L}{partial w_1},

    frac{partial L}{partial w_2},...,

    frac{partial L}{partial b_{26}}

    right] ^top

    $$

    所以,每次迭代過程可以概括為

    用梯度來調整參數的式子如下(為了簡化,這里省略了 bias):

    上式中, 是學習率,意為每次朝下降最快的方向前進一小步,避免優(yōu)化過頭(Overshoot)。

    由于神經網絡參數繁多,所以需要更高效的計算梯度的算法,于是,反向傳播算法(Backpropagation)呼之欲出。

    在學習反向傳播算法之前,我們先復習一下微積分中的鏈式法則(Chain Rule):設 g = u(h) , h = f(x) 是兩個可導函數,x 的一個很小的變化 △x 會使 h 產生一個很小的變化 △h,從而 g 也產生一個較小的變化 △g,現要求 △g/△x,可以使用鏈式法則:

    有了以上基礎,理解反向傳播算法就簡單了。

    假設我們的演示網絡只有 2 層,輸入輸出都只有 2 個神經元,如下圖所示:

    其中 是輸入, 是輸出, 是樣本的目標值,這里使用的損失函數 L 為 MSE;圖中的上標 (1) 或 (2) 分別表示參數屬于第 (1) 層或第 (2) 層,下標 1 或 2 分別表示該層的第 1 或 第 2 個神經元。

    現在我們來計算 和 ,掌握了這 2 個參數的偏導數計算之后,整個梯度的計算就掌握了。

    所謂反向傳播算法,指的是從右向左來計算每個參數的偏導數,先計算 ,根據鏈式法則

    對左邊項用鏈式法則展開

    又 是輸出值, 可以直接通過 MSE 的導數算出:

    而 ,則 就是 sigmoid 函數的導數在 處的值,即

    于是 就算出來了:

    再來看 這一項,因為

    所以

    注意:上面式子對于所有的 和 都成立,且結果非常直觀,即 對 的偏導為左邊的輸入 的大??;同時,這里還隱含著另一層意思:需要調整哪個 來影響 ,才能使 Loss 下降得最快,從該式子可以看出,當然是先調整較大的 值所對應的 ,效果才最顯著 。

    于是,最后一層參數 的偏導數就算出來了

    我們再來算上一層的 ,根據鏈式法則 :

    繼續(xù)展開左邊這一項

    你發(fā)現沒有,這幾乎和計算最后一層一摸一樣,但需要注意的是,這里的 對 Loss 造成的影響有多條路徑,于是對于只有 2 個輸出的本例來說:

    上式中, 都已經在最后一層算出,下面我們來看下 ,因為

    于是

    同理

    注意:這里也引申出梯度下降的調參直覺:即要使 Loss 下降得最快,優(yōu)先調整 weight 值比較大的 weight。

    至此, 也算出來了

    觀察上式, 所謂每個參數的偏導數,通過反向傳播算法,都可以轉換成線性加權(Weighted Sum)計算 ,歸納如下:

    式子中 n 代表分類數,(l) 表示第 l 層,i 表示第 l 層的第 i 個神經元。 既然反向傳播就是一個線性加權,那整個神經網絡就可以借助于 GPU 的矩陣并行計算了

    最后,當你明白了神經網絡的原理,是不是越發(fā)的認為,它就是在做一堆的微積分運算,當然,作為能證明一個人是否學過微積分,神經網絡還是值得學一下的。Just kidding ..

    本文我們通過

    這四點,全面的學習了神經網絡這個知識點,希望本文能給你帶來幫助。

    參考:

    以上就是關于神經網絡計算分為相關問題的回答。希望能幫到你,如有更多相關問題,您也可以聯系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內容。


    推薦閱讀:

    神經網絡的特點(循環(huán)神經網絡的特點)

    lstm神經網絡和bp神經網絡(lm bp神經網絡)

    ai神經網絡算法(ai神經網絡算法智能車)

    杭州g20峰會主會場蓮花(杭州g20峰會花銷)

    小二是什么職業(yè)(小二是什么職業(yè)類別)