BP神經網路

2022-10-09 01:42:12 字數 1228 閱讀 1846

import math

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

def sigmoid(x): # 定義網路啟用函式

return 1/(1+math.exp(-x))

data_tr = pd.read_csv('3.3 data_tr.txt') # 訓練集樣本

data_te = pd.read_csv('3.3 data_te.txt') # 測試集樣本

n = len(data_tr)

yita = 0.1 # 自己設定學習率

out_in = np.array([0.0, 0, 0, 0, -1]) # 輸出層的輸入,即隱層的輸出

w_mid = np.zeros([3,4]) # 隱層神經元的權值&閾值

w_out = np.zeros([5]) # 輸出層神經元的權值&閾值

delta_w_out = np.zeros([5]) # 輸出層權值&閾值的修正量

delta_w_mid = np.zeros([3,4]) # 中間層權值&閾值的修正量

err =

#將測試集樣本放入訓練好的網路中去

def ceshi():

net_in = np.array([data_te.iloc[it, 0], data_te.iloc[it, 1], -1]) # 網路輸入

for i in range(4):

out_in[i] = sigmoid(sum(net_in * w_mid[:, i])) # 從輸入到隱層的傳輸過程

res = sigmoid(sum(out_in * w_out)) # 模型**值

return res

if __name__ == '__main__':

for it in range(len(data_te)):

print('第', it + 1, '個測試值:', ceshi(),"真實值",data_te.iloc[it,2])

執行結果:

**結果:

BP神經網路

基本bp神經網路演算法包括 訊號的前向傳播 誤差的反向傳播 也即計算實際輸出時按照輸入到輸出的方向進行,權值閾值調整則相反。bp是一種多層前饋神經網路,由輸入層 隱含層和輸出層組成。層與層之間有兩種訊號在流動 一種是從輸入流向輸出的工作訊號,是輸入和權值的函式 另一種是輸入流向輸出的訊號,即誤差。隱...

BP神經網路

x 為輸入向量,y為隱藏層的神經元,z 為輸出層,d為目標真實值,本文預設 z 不經過sigmod處理。x y的權重為 w,y z的權重為 v yj ix iwij 1 oyi f y j 2 其中激勵函式f x 1 1 e x f x f x 1 f x 3 z k j f yj vjk 此時系統...

BP神經網路

bp是back propagation bp神經網路主要的演算法在於誤差反向傳播error backpropagation 有三層 輸入層 input 隱含層 hidden 輸出層 output 輸入層 n個神經元 隱含層 p個神經元 輸出層 q個神經元 輸入向量 x x1,x2,x n 隱含層輸入...