1. 程式人生 > >BP 神經網路演算法原理

BP 神經網路演算法原理

本篇文章主要根據《神經網路與機器學習》和《人工神經網路原理》兩本書,對 BP 神經網路的數學推導過程做了一個總結,為自己進入深度學習打下一個基礎。

一、 人工神經網路

1.人工神經網路簡介

人工神經網路(ANN)是一種旨在模仿人腦結構及其功能的由多個非常簡單的處理單元彼此按某種方式相互連線而形成的計算機系統,該系統靠其狀態對外部輸入資訊的動態響應來處理資訊 。
這裡寫圖片描述
神經元由細胞及其發出的許多突起構成。細胞體內有細胞核,突觸的作用是傳遞資訊。作為引入輸入訊號的若干個突起稱為“樹突”,而作為輸出端的突起只有一個稱為“軸突” 。

2.神經元M-P模型

所謂M-P模型,其實是按照生物神經元的結構和工作原理構造出來的一個抽象和簡化了的模型。

對於第j個神經元,接受多個其它神經元的輸入訊號xi。各突觸強度以實係數wij表示,這是第 i個神經元對第 j個神經元作用的加權值。
這裡寫圖片描述

神經元的“淨輸入”用Ij表示,其表示式是線性加權求和,即:
這裡寫圖片描述
神經元j的輸出yj是其當前狀態的函式, M-P 模型的數學表示式為:
這裡寫圖片描述
式中,θj為閾值, sgn是符號函式。當淨輸入超過閾值時,yj取+1 輸出,反之為-1輸出 。如果考慮輸出與輸入的延時作用,表示式可修正為:
這裡寫圖片描述

3.ANN的基本要素

  • 神經元啟用函式
  • 網路的學習
  • 神經元之間的連線形式

(1)常用啟用函式
這裡寫圖片描述

(2)常用學習規則

  • Hebb規則
  • 誤差修正法學習演算法 (如:BP演算法)
  • 勝者為王(Winner-Take-All)學習規則

(3)神經元之間連線方式
<1>字首網路
這裡寫圖片描述

<2>反饋網路
這裡寫圖片描述

> 注:BP 神經網路屬於字首網路

二、 BP 神經網路原理

BP(Back Propagation)神經網路的學習過程由訊號的正向傳播與誤差的反向傳播兩個過程組成。正向傳播時,輸入樣本從輸入層傳入,經隱層逐層處理後,傳向輸出層。若輸出層的實際輸出與期望輸出不符,則轉向誤差的反向傳播階段。誤差的反向傳播是將輸出誤差以某種形式通過隱層向輸入層逐層反傳,並將誤差分攤給各層的所有單元,從而獲得各層單元的誤差訊號,此誤差訊號即作為修正各單元權值的依據。BP網路由輸入層﹑輸出層和隱層組成,N

1 為輸入層, Nm為輸出層,其餘為隱層。BP 神經網路的結構如下:
這裡寫圖片描述

這裡介紹三層神經網路的推導(一個輸入層、一個隱層和一個輸出層)

BP 神經網路反向傳播演算法的神經元示意圖圖一

這裡寫圖片描述

上圖描繪了神經元j被它左邊的一層神經元產生的一組函式訊號所饋給。m是作用於神經元j的所有輸入不包括偏置的個數。突觸權值wj0(n)等於神經元j的偏置bj

1.前向傳播過程推導

圖一中,在神經元j的啟用函式輸入處產生的誘導區域性域vj(n)(即神經元j 的輸入)是:
這裡寫圖片描述

ϕj是啟用函式,則出現在神經元j輸出處的函式訊號(即神經元j的輸出yj(n)是:
這裡寫圖片描述

2.誤差反向傳播過程推導

在圖一中,yj(n)dj(n)分別是神經元j實際輸出期望輸出,則神經元j的輸出所產生的誤差訊號定義為:

這裡寫圖片描述
其中,dj(n)是期望響應向量d(n)的第j個元素。

為了使函式連續可導,這裡最小化均方根差,定義神經元j瞬時誤差能量為:
這裡寫圖片描述

將所有輸出層神經元的誤差能量相加,得到整個網路的全部瞬時誤差能量
這裡寫圖片描述
其中,集合C 包括輸出層的所有神經元。

BP 演算法通過反覆修正權值使式(2-5)En最小化,採用梯度下降法對突觸權值wji(n)應用一個修正值wji(n)它正比於偏導數δE(n)/δwji(n)。根據微分鏈式規則,把這個梯度表示為:
這裡寫圖片描述
偏導數δE(n)/δwji(n)代表一個敏感因子,決定突觸權值wji在權值空間的搜尋方向。

在式(2-5)兩邊對ej(n)取微分,得到:
這裡寫圖片描述

在式(2-3)兩邊對yj(n)取微分,得到:
這裡寫圖片描述

在式(2-2)兩邊對vj(n)取微分,得到:
這裡寫圖片描述

最後在式(2-1)兩邊對wji(n)取微分,得到:
這裡寫圖片描述

將式(2-7)——(2-10)帶入式(2-6)得:

這裡寫圖片描述

應用於wji(n)的修正wji(n)定義為:
這裡寫圖片描述

其中,η是誤差反向傳播的學習率負號表示在權空間中梯度下降

將式(2-11)帶入式(2-12)得:
這裡寫圖片描述

其中,δj(n)是根據delta法則定義的區域性梯度
這裡寫圖片描述
區域性梯度指明瞭突觸權值所需要的變化。

現在來考慮神經元j所處的層。

(1) 神經元j是輸出層節點

當神經元

相關推薦

BP神經網路演算法原理推導(數學建模進階演算法/機器學習)

       BP神經網路(Back-Propagation Network)演算法原理推導 簡介        反向傳播網路(Back-Propagation Network)簡稱BP網路,基於誤差反向傳播演算法(BP演算法)的一種多層網路。      

BP 神經網路演算法原理

本篇文章主要根據《神經網路與機器學習》和《人工神經網路原理》兩本書,對 BP 神經網路的數學推導過程做了一個總結,為自己進入深度學習打下一個基礎。 一、 人工神經網路 1.人工神經網路簡介 人工神經網路(ANN)是一種旨在模仿人腦結構及其功能的由多

BP神經網路演算法的理解

BP神經網路在百度百科中的解釋就是:BP(back propagation)神經網路是1986年由Rumelhart和McClelland為首的科學家提出的概念,是一種按照誤差逆向傳播演算法訓練的多層前饋神經網路,是目前應用最廣泛的神經網路。大家應該對基本的神經網路模型有一定程度的瞭解,

神經網路學習(三)——BP神經網路演算法

前面學習了感知器和自適應線性神經網路。 下面介紹經典的三層神經網路結構,其中每個神經元的啟用函式採用Sigmoid。PS:不同的應用場景,神經網路的結構要有針對性的設計,這裡僅僅是為了推導演算法和計算方便才採用這個簡單的結構。 訓練步驟: 1.正向傳播 2.反向傳播(BP)

BP神經網路演算法的深度解析和工程例項搭建

首先宣告,這篇文章不是神經網路的掃盲文,如果只想知道神經網路的概念那筆者還是推薦找一些深入淺出的文章來看。但是如果需要自己實際搭建和使用一個神經網路,同時具備一定的數學功底的話,那這篇文章就是為了深入的剖析神經網路演算法的工作過程和模型而寫的。這裡筆者把整個神經網路的工作過程

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

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

BP神經網路演算法學習---基礎理論1

今天來講BP神經網路,神經網路在機器學習中應用比較廣泛,比如函式逼近,模式識別,分類,資料壓縮,資料 挖掘等領域。接下來介紹BP神經網路的原理及實現。 Contents   1. BP神經網路的認識   2. 隱含層的選取   3. 正向傳遞子過程   4. 反向傳

人工神經網路演算法原理和應用

人工神經網路 什麼是人工神經網路? 我們先從他的結構談起 說明: 通常一個神經網路由一個input layer,多個hidden layer和一個output layer構成。圖中圓圈可以視為一個神經元(又可以稱為感知器)設計神經網路的重要工作是設計hidden layer,及神經元之間的權重新增

菜鳥學matlab之智慧演算法(2)——————————BP神經網路演算法

一.演算法背景和理論 BP(Back Propagation)神經網路是1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。BP網路能學習和存貯大量的輸入-輸出

BP神經網路演算法與實踐

神經網路曾經很火,有過一段低迷期,現在因為深度學習的原因繼續火起來了。神經網路有很多種:前向傳輸網路、反向傳輸網路、遞迴神經網路、卷積神經網路等。本文介紹基本的反向傳輸神經網路(Backpropagation 簡稱BP),主要講述演算法的基本流程和自己在訓練BP

BP神經網路演算法之matlab具體實現

之前的幾篇部落格的一個共同點就是梯度下降法,梯度下降法是用來求解無約束最優化問題的一個數值方法,簡單實用,幾乎是大部分演算法的基礎,下面來利用梯度下降法優化BP神經網路。 [TOC] 梯度公式 下面的BP神經網路結構為最簡單的三層網路,各層的神經元數量

一文入門BP神經網路——從原理到應用(應用篇)

編號 公式 備註 1 Z[l]=w[l]A[l−1]+b[l] 2 A[l]=σ(Z[l]) 3 dZ[L]=∇AC⊙σ′(Z[L]) 4 dZ[l]=[w[l+1]

淺顯易懂的BP神經網路演算法matlab處理方法詳解

BP神經網路演算法提供了一種普遍並且實用的方法從樣例中學習值為實數、離散值或者向量的函式,這裡就簡單介紹一下如何用MATLAB程式設計實現該演算法。 這裡以一個普遍實用的簡單案例為例子進行程式設計的說明。 1、假設一組x1,x2,x3的值對應一個y值,有2000組這樣

BP神經網路演算法學習---處理流程(虛擬碼)

本文轉自  主要學習本文對於BP神經網路處理流程的梳理。 BP(Back Propagation)網路是1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。BP網

JAVA實現BP神經網路演算法

工作中需要預測一個過程的時間,就想到了使用BP神經網路來進行預測。 簡介 BP神經網路(Back Propagation Neural Network)是一種基於BP演算法的人工神經網路,其使用BP演算法進行權值與閾值的調整。在20世紀80年代,幾位不同的學者分別開發出了用於訓練多層感知機的反向傳播演算法,D

遺傳演算法+BP神經網路組合求解非線性函式

用遺傳演算法求解非線性問題是常見的求解演算法之一,求解的過程就是隨機生成解,計算適應度,然後選擇,交叉,變異,更新種群,不斷迭代,這樣,每個個體都會向每代中最佳的個體學習並靠攏,這是區域性最優解;而變異操作是為了在靠近當前最優解的同時還有機會變異出更佳的基因,從而跳出區域性最優解而達到全域性最優解。

人工智慧起步-反向回饋神經網路演算法BP演算法

        人工智慧分為強人工與弱人工。         弱人工智慧就包括我們常用的語音識別,影象識別等,或者為了某一個固定目標實現的人工演算法

BP神經網路反向傳播演算法一步一步例項推導(Backpropagation Example)

1. loss 函式的優化 籠統來講: 設計loss函式是為了衡量網路輸出值和理想值之間的差距,儘管網路的直接輸出並不顯式的包含權重因子,但是輸出是同權重因子直接相關的,因此仍然可以將loss函式視作在權重因子空間中的一個函式。 可以將loss 記為E(w),這裡為

[純C#實現]基於BP神經網路的中文手寫識別演算法

效果展示 這不是OCR,有些人可能會覺得這東西會和OCR一樣,直接進行整個字的識別就行,然而並不是. OCR是2維畫素矩陣的畫素資料.而手寫識別不一樣,手寫可以把使用者寫字的筆畫時間順序,抽象成一個維度.這樣識別的就是3維的資料了.識別起來簡單很多. 最近需要做一箇中文手寫識別演算法.搜尋了網上的

深入淺出|深度學習演算法BP神經網路 詳細公式推導

所謂神經網路,目前用得最廣泛的一個定義是“的神經網路是由具有適應性簡單單元組成的廣泛並行互連的網路,它的組織能夠模擬生物神經系統對真實世界物體所做出的互動反應”。 BP(back propagation)神經網絡一種按照誤差逆向傳播演算法訓練的多層前饋神經網路,是目前應用