1. 程式人生 > >BP神經網路擬合數據及調優

BP神經網路擬合數據及調優

一 、 實驗背景
原始資料共4116個樣本,4個類,每個樣本的輸入x=[x1,x2],輸出y,y的取值{1,2,3,4};用一個三層的BP網路做資料的擬合

二、 演算法描述與分析
1.演算法描述
採用BP網路分類,BP網路結構為221n=2個輸入單元,l=2個隱含單元,m=1個輸出單元,隱含層採用sigmoid函式sigm(x)=11+ex ,輸出層單元採用線性函式
網路第一層,即輸入層與隱含層:
權值wij 閾值aj ;程式中用均值為0.01,方差0.2的高斯分佈的隨機數初始化
網路第二層,即隱含層與輸出層:
權值wjk 閾值bk ;程式中wjk用均值為0.01,方差0.2的高斯分佈的隨機數初始化,b

k用(0,1)區間的均勻分佈值初始化
sigmoid函式的影象
這裡寫圖片描述

sigm(-5)=0.0067
sigm(5)=0.9933

採用誤差反向傳播更新權值閾值,訓練網路,設定學習率η1,η2,最大迭代次數iteration
1) 隱含層輸出
Hj=f(n1wijxiaj) ...........j=1,2,,l
l為隱含層節點數,f為隱含層啟用函式
2) 輸出層
Ok=ljHjwjkbk .............k=1,2,,m
3) 誤差計算
ek=ykOk .....................k=1,2,,m
4) 權值閾值更新
wij=

wij+η1Hj(1Hj)x(i)mk=1wjkek
wjk=wjk+η2Hjek
aj=aj+η1Hj(1Hj)mk=1wjkek
bk=bk+η2ek

i=1,2,,n
j=1,2,l
k

相關推薦

BP神經網路合數調

一 、 實驗背景 原始資料共4116個樣本,4個類,每個樣本的輸入x=[x1,x2],輸出y,y的取值{1,2,3,4};用一個三層的BP網路做資料的擬合 二、 演算法描述與分析 1.演算法描述 採用BP網路分類,BP網路結構為2−2−1,n=

matlab與BP神經網路合非線性函式

背景介紹在實際工程應用中會遇到一些複雜的非線性系統,這些系統方程複雜,難以用數學方法建模。在這種情況下,可以使用BP神經網路表達這些非線性系統。該方法把位置系統看成是一個黑箱,首先用系統輸入輸出資料訓練BP神經網路,使網路能夠表達該未知函式,然後用訓練好的BP神經網路預測系統

BP神經網路說明推導

    學習神經網路,很多基礎知識不用就會忘了,這段時間重新進行一下整理和總結。在此留做記錄。首先從最基礎的BP神經網路開始。並進行相關演算法的推導。     人工神經網路是仿照人大腦的功能而用數學公式搭建的一種結構。現在藉助計算機語言在高效能的計算機上得

130行程式碼實現BP神經網路原理應用舉例

    優化演算法是機器學習的一個重要組成部分,BP神經網路是深度學習的基礎,BP神經網路原理非常簡單,幾乎可以理解作是logistic迴歸的一種集合方式,在前面的博文中,筆者利用R語言實現了幾種優化演算法,本文以前面提到的粒子群演算法為工具,以神經網路的原理為基礎,實現了

BP神經網路學習matlab實現

什麼是神經網路? 神經網路是由很多神經元組成的,首先我們看一下,什麼是神經元 上面這個圖表示的就是一個神經元,我們不管其它書上說的那些什麼樹突,軸突的。我用個比較粗淺的解釋,可能不太全面科學,但對初學者很容易理解: 1、我們把輸入訊號看成你在matlab中需要輸入的資料,

人工神經網路(ANN)BP演算法

1 什麼是神經網路 1.1 基本結構 說明: 通常一個神經網路由一個input layer,多個hidden layer和一個output layer構成。 圖中圓圈可以視為一個神經元(又可以稱為感知器) 設計神經網路的重要工作是設計hidde

BP神經網路原理分析c++程式碼實現(上)

    本部落格所述BP神經網路,是本人研究總結的結果,希望對您有所幫助,當然,如果有需要,大家可以互相交流。    設計一個BP神經網路類,來實現一個BP神經網路。要求輸入層節點數、隱層數、隱層節點數、輸出層節點數、傳遞函式、演算法等等可以由使用者自主設定。 神經網路

bp神經網路matlab實現

%讀取訓練資料 [f1,f2,f3,f4,class] = textread('trainData.txt' , '%f%f%f%f%f',150); %特徵值歸一化 [input,minI,maxI] = premnmx( [f1 , f2 , f3 , f4 ]') ;%構造輸出矩陣 s = leng

基於遺傳演算法優化的BP神經網路的 非線性函式

遺傳演算法 ( GA , Genetic Algorithm ) ,也稱進化演算法 。 遺傳演算法是受達爾文的進化論的啟發,借鑑生物進化過程而提出的一種啟發式搜尋演算法。因此在介紹遺傳演算法前有必要簡單的介紹生物進化知識。 一.進化論知識    作為遺傳演算法生物

BP神經網路原理分析c++程式碼實現(下)

為了方便廣大使用者的使用,本人將BP神經網路寫成了一個BPNNS類,這樣使用者們可以很方便的將此類潛入到自己的工程當中,此類的具體的使用規則,下面會介紹。 /*********************************************************

機器學習02之BP神經網路圖解JAVA實現

package com.fei.bp02; public class Bp { private double[] hide1_x;//// 輸入層即第一層隱含層的輸入;hide1_x[資料的特徵數目+1], hide1_x[0]為1 private

BP神經網路原理matlab例項

轉載:http://blog.csdn.net/u013007900/article/details/50118945 上一次我們講了M-P模型,它實際上就是對單個神經元的一種建模,還不足以模擬人腦神經系統的功能。由這些人工神經元構建出來的網路,才能夠具有學

C# + Matlab 實現計件工時基於三層BP神經網路合--真實專案

  工序工時由該工序的工藝引數決定,有了工時後乘以固定因子就是計件工資。一般參考本地小時工資以及同類小時工資並考慮作業的風險等因素給出固定因子 採用的VS2010 , Matlab2015a 64,  開發端是win7 64 , 部署端是win2012 R2 Datacenter 64 M

BP神經網路基於Tensorflow的實現(程式碼註釋詳細)

BP(back propagation)神經網路是1986年由Rumelhart和McClelland為首的科學家提出的概念,是一種按照誤差逆向傳播演算法訓練的多層前饋神經網路,是目前應用最廣泛的神經網路。 在一般的BP神經網路中,單個樣本有m個輸入和n個輸出,在輸入層

BP神經網路 如何進行權值的初始化

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

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

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

通俗理解神經網路的對抗攻擊keras程式碼例項

上一篇轉載的博文《神經網路中的對抗攻擊與對抗樣本》幫助我理解了神經網路學習的本質,以及對抗攻擊的來龍去脈。接下來在這篇文章:《忽悠神經網路指南:教你如何把深度學習模型騙得七葷八素》中進一步理解了神經網路中白箱攻擊,本博文擬在加深學習印象,並結合自己的一些理解對該文章將的一些內容做一個重梳理。

神經網路學習(3)————BP神經網路以及python實現

一、BP神經網路結構模型                BP演算法的基本思想是,學習過程由訊號的正向傳播和誤差的反向傳播倆個過程組成,輸入從輸入層輸入,經隱層處理以後,傳向輸出層。如果輸出層的實際輸出和期望輸出不符合

BP神經網路演算法的理解

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

單隱層BP神經網路C++實現

    這幾天抽時間學習了一下很久之前就想學習的BP神經網路。通過閱讀西瓜書的神經網路部分的原理和參考了網上幾篇部落格,我自己用C++編寫、實現了一個單隱層BP神經網路。     簡單畫了個示意圖,好理解下面給出的公式:(注意:圖中省略了其他的節點之間的連