神经网络学习(3)————BP神经网络以及python实现

import numpy as np
import math
import random
import string
import matplotlib as mpl
import matplotlib.pyplot as plt# random.seed(0)  #当我们设置相同的seed,每次生成的随机数相同。如果不设置seed,则每次会生成不同的随机数
# 参考https://blog.csdn.net/jiangjiang_jian/article/details/79031788# 生成区间[a,b]内的随机数
def random_number(a, b):return (b - a) * random.random() + a# 生成一个矩阵,大小为m*n,并且设置默认零矩阵
def makematrix(m, n, fill=0.0):a = []for i in range(m):a.append([fill] * n)return a# 函数sigmoid(),这里采用tanh,因为看起来要比标准的sigmoid函数好看
def sigmoid(x):return math.tanh(x)# 函数sigmoid的派生函数
def derived_sigmoid(x):return 1.0 - x ** 2# 构造三层BP网络架构
class BPNN:def __init__(self, num_in, num_hidden, num_out):# 输入层,隐藏层,输出层的节点数self.num_in = num_in + 1  # 增加一个偏置结点self.num_hidden = num_hidden + 1  # 增加一个偏置结点self.num_out = num_out# 激活神经网络的所有节点(向量)self.active_in = [1.0] * self.num_inself.active_hidden = [1.0] * self.num_hiddenself.active_out = [1.0] * self.num_out# 创建权重矩阵self.wight_in = makematrix(self.num_in, self.num_hidden)self.wight_out = makematrix(self.num_hidden, self.num_out)# 对权值矩阵赋初值for i in range(self.num_in):for j in range(self.num_hidden):self.wight_in[i][j] = random_number(-0.2, 0.2)for i in range(self.num_hidden):for j in range(self.num_out):self.wight_out[i][j] = random_number(-0.2, 0.2)# 最后建立动量因子(矩阵)self.ci = makematrix(self.num_in, self.num_hidden)self.co = makematrix(self.num_hidden, self.num_out)# 信号正向传播def update(self, inputs):if len(inputs) != self.num_in - 1:raise ValueError('与输入层节点数不符')# 数据输入输入层for i in range(self.num_in - 1):# self.active_in[i] = sigmoid(inputs[i])  #或者先在输入层进行数据处理self.active_in[i] = inputs[i]  # active_in[]是输入数据的矩阵# 数据在隐藏层的处理for i in range(self.num_hidden - 1):sum = 0.0for j in range(self.num_in):sum = sum + self.active_in[i] * self.wight_in[j][i]self.active_hidden[i] = sigmoid(sum)  # active_hidden[]是处理完输入数据之后存储,作为输出层的输入数据# 数据在输出层的处理for i in range(self.num_out):sum = 0.0for j in range(self.num_hidden):sum = sum + self.active_hidden[j] * self.wight_out[j][i]self.active_out[i] = sigmoid(sum)  # 与上同理return self.active_out[:]# 误差反向传播def errorbackpropagate(self, targets, lr, m):  # lr是学习率, m是动量因子if len(targets) != self.num_out:raise ValueError('与输出层节点数不符!')# 首先计算输出层的误差out_deltas = [0.0] * self.num_outfor i in range(self.num_out):error = targets[i] - self.active_out[i]out_deltas[i] = derived_sigmoid(self.active_out[i]) * error# 然后计算隐藏层误差hidden_deltas = [0.0] * self.num_hiddenfor i in range(self.num_hidden):error = 0.0for j in range(self.num_out):error = error + out_deltas[j] * self.wight_out[i][j]hidden_deltas[i] = derived_sigmoid(self.active_hidden[i]) * error# 首先更新输出层权值for i in range(self.num_hidden):for j in range(self.num_out):change = out_deltas[j] * self.active_hidden[i]self.wight_out[i][j] = self.wight_out[i][j] + lr * change + m * self.co[i][j]self.co[i][j] = change# 然后更新输入层权值for i in range(self.num_in):for j in range(self.num_hidden):change = hidden_deltas[j] * self.active_in[i]self.wight_in[i][j] = self.wight_in[i][j] + lr * change + m * self.ci[i][j]self.ci[i][j] = change# 计算总误差error = 0.0for i in range(len(targets)):error = error + 0.5 * (targets[i] - self.active_out[i]) ** 2return error# 测试def test(self, patterns):for i in patterns:print(i[0], '->', self.update(i[0]))# 权重def weights(self):print("输入层权重")for i in range(self.num_in):print(self.wight_in[i])print("输出层权重")for i in range(self.num_hidden):print(self.wight_out[i])def train(self, pattern, itera=100000, lr=0.1, m=0.1):for i in range(itera):error = 0.0for j in pattern:inputs = j[0]targets = j[1]self.update(inputs)error = error + self.errorbackpropagate(targets, lr, m)if i % 100 == 0:print('误差 %-.5f' % error)# 实例
def demo():patt = [[[1, 2, 5], [0]],[[1, 3, 4], [1]],[[1, 6, 2], [1]],[[1, 5, 1], [0]],[[1, 8, 4], [1]]]# 创建神经网络,3个输入节点,3个隐藏层节点,1个输出层节点n = BPNN(3, 3, 1)# 训练神经网络n.train(patt)# 测试神经网络n.test(patt)# 查阅权重值n.weights()if __name__ == '__main__':demo()

结果:

误差 0.86023
误差 0.58985
误差 0.64366
误差 0.51606
误差 0.55386
误差 0.56766
误差 0.58620
误差 0.65918
误差 0.52816
误差 0.86481
误差 0.55965
误差 0.82810
误差 0.56962
误差 0.47354
误差 0.74581
误差 0.48510
误差 0.59480
误差 0.58077
误差 0.71780
误差 0.45187
误差 0.93931
误差 0.46048
误差 0.56960
误差 0.76725
误差 0.81773
误差 0.54358
误差 0.47831
误差 0.48107
误差 0.46366
误差 0.48697
误差 0.77635
误差 0.39619
误差 0.66792
误差 0.64117
误差 0.60496
误差 0.72439
误差 0.54821
误差 0.41889
误差 0.63763
误差 0.41689
误差 0.39388
误差 0.64405
误差 0.64352
误差 0.42360
误差 0.71710
误差 0.76736
误差 0.64447
误差 0.64407
误差 0.62638
误差 0.63406
误差 0.42880
误差 0.65383
误差 0.73860
误差 0.39187
误差 0.64166
误差 0.81734
误差 0.50334
误差 0.74295
误差 0.66517
误差 0.63512
误差 0.64875
误差 0.65415
误差 0.65576
误差 0.65574
误差 0.72372
误差 0.45550
误差 0.41530
误差 0.84033
误差 0.51368
误差 0.68000
误差 0.39588
误差 0.39556
误差 0.40956
误差 0.49167
误差 0.39361
误差 0.67083
误差 0.44479
误差 0.56940
误差 0.43307
误差 0.41667
误差 0.59000
误差 0.50001
误差 0.60007
误差 0.77716
误差 0.66743
误差 0.62312
误差 0.58575
误差 0.39543
误差 0.49035
误差 0.52384
误差 0.44034
误差 0.45535
误差 0.51588
误差 0.40573
误差 0.43734
误差 0.39467
误差 0.43928
误差 0.59220
误差 0.41767
误差 0.55241
误差 0.58860
误差 0.42624
误差 0.44666
误差 0.58653
误差 0.42700
误差 0.44841
误差 0.58767
误差 0.42827
误差 0.44993
误差 0.58870
误差 0.42966
误差 0.45120
误差 0.58965
误差 0.43123
误差 0.45226
误差 0.59053
误差 0.43299
误差 0.45305
误差 0.59096
误差 0.44253
误差 0.44837
误差 0.58619
误差 0.44832
误差 0.44836
误差 0.58511
误差 0.45204
误差 0.44729
误差 0.58360
误差 0.45531
误差 0.44607
误差 0.58222
误差 0.45780
误差 0.44499
误差 0.58109
误差 0.45970
误差 0.44407
误差 0.58017
误差 0.46129
误差 0.44002
误差 0.57898
误差 0.46468
误差 0.43984
误差 0.58944
误差 0.42271
误差 0.44844
误差 0.58584
误差 0.46725
误差 0.43196
误差 0.57721
误差 0.42424
误差 0.45173
误差 0.48101
误差 0.49286
误差 0.39991
误差 0.39203
误差 0.43120
误差 0.46928
误差 0.44825
误差 0.51072
误差 0.61836
误差 0.43063
误差 0.43525
误差 0.42400
误差 0.60272
误差 0.48579
误差 0.49776
误差 0.44139
误差 0.60627
误差 0.44367
误差 0.49354
误差 0.42703
误差 0.43379
误差 0.40226
误差 0.43852
误差 0.62119
误差 0.48029
误差 0.44353
误差 0.43807
误差 0.41631
误差 0.46806
误差 0.45401
误差 0.42631
误差 0.39435
误差 0.46483
误差 0.50037
误差 0.46388
误差 0.40751
误差 0.49335
误差 0.54135
误差 0.56361
误差 0.48398
误差 0.43130
误差 0.46706
误差 0.45253
误差 0.48492
误差 0.42506
误差 0.44503
误差 0.64714
误差 0.40498
误差 0.40517
误差 0.47275
误差 0.45291
误差 0.60992
误差 0.42852
误差 0.50709
误差 0.48002
误差 0.43986
误差 0.54782
误差 0.44215
误差 0.48710
误差 0.50226
误差 0.49834
误差 0.44039
误差 0.50387
误差 0.43150
误差 0.55021
误差 0.59167
误差 0.44071
误差 0.43828
误差 0.43755
误差 0.63002
误差 0.51616
误差 0.58971
误差 0.62752
误差 0.58921
误差 0.59130
误差 0.50195
误差 0.48359
误差 0.42646
误差 0.47537
误差 0.64452
误差 0.46998
误差 0.58922
误差 0.49876
误差 0.41762
误差 0.41597
误差 0.51736
误差 0.43215
误差 0.44210
误差 0.59002
误差 0.52297
误差 0.49265
误差 0.41451
误差 0.44843
误差 0.41722
误差 0.42100
误差 0.39423
误差 0.44637
误差 0.57343
误差 0.44827
误差 0.47037
误差 0.53270
误差 0.41570
误差 0.43527
误差 0.41227
误差 0.38944
误差 0.56273
误差 0.45570
误差 0.44658
误差 0.48751
误差 0.46697
误差 0.43794
误差 0.66581
误差 0.42707
误差 0.39042
误差 0.44853
误差 0.53345
误差 0.65307
误差 0.63195
误差 0.41752
误差 0.40411
误差 0.41296
误差 0.53718
误差 0.40465
误差 0.45492
误差 0.41346
误差 0.52020
误差 0.41801
误差 0.39677
误差 0.44430
误差 0.48697
误差 0.44052
误差 0.41406
误差 0.47073
误差 0.44394
误差 0.61077
误差 0.53376
误差 0.41145
误差 0.62197
误差 0.63439
误差 0.44805
误差 0.43211
误差 0.44598
误差 0.38892
误差 0.38867
误差 0.38827
误差 0.48301
误差 0.48311
误差 0.41820
误差 0.42866
误差 0.63335
误差 0.47259
误差 0.66048
误差 0.41474
误差 0.46217
误差 0.50823
误差 0.61167
误差 0.43069
误差 0.59243
误差 0.65448
误差 0.44247
误差 0.47030
误差 0.57900
误差 0.48438
误差 0.43541
误差 0.45280
误差 0.39422
误差 0.56578
误差 0.64601
误差 0.42438
误差 0.45491
误差 0.48203
误差 0.52684
误差 0.46605
误差 0.59018
误差 0.45506
误差 0.54546
误差 0.50442
误差 0.59578
误差 0.45867
误差 0.65899
误差 0.44410
误差 0.45553
误差 0.41079
误差 0.42813
误差 0.50485
误差 0.49951
误差 0.67611
误差 0.50374
误差 0.52619
误差 0.41347
误差 0.43231
误差 0.66487
误差 0.54281
误差 0.41235
误差 0.64742
误差 0.39245
误差 0.41537
误差 0.48424
误差 0.45055
误差 0.56599
误差 0.52121
误差 0.43228
误差 0.66605
误差 0.43847
误差 0.40318
误差 0.49064
误差 0.43533
误差 0.65632
误差 0.42678
误差 0.51184
误差 0.54161
误差 0.42412
误差 0.57842
误差 0.40607
误差 0.62549
误差 0.48340
误差 0.43730
误差 0.57311
误差 0.45526
误差 0.53995
误差 0.42484
误差 0.41155
误差 0.54089
误差 0.41618
误差 0.39234
误差 0.48654
误差 0.53520
误差 0.52579
误差 0.58129
误差 0.43778
误差 0.57005
误差 0.38852
误差 0.43004
误差 0.51829
误差 0.45371
误差 0.49957
误差 0.49689
误差 0.42949
误差 0.51513
误差 0.42780
误差 0.66756
误差 0.45289
误差 0.42282
误差 0.59086
误差 0.41804
误差 0.43678
误差 0.67205
误差 0.61693
误差 0.54281
误差 0.43688
误差 0.41749
误差 0.55348
误差 0.49932
误差 0.51790
误差 0.55658
误差 0.43323
误差 0.47605
误差 0.54762
误差 0.50520
误差 0.42026
误差 0.41257
误差 0.55276
误差 0.40148
误差 0.42269
误差 0.51551
误差 0.43723
误差 0.42679
误差 0.44984
误差 0.43882
误差 0.58760
误差 0.65196
误差 0.47922
误差 0.40179
误差 0.64560
误差 0.43185
误差 0.45715
误差 0.47744
误差 0.46864
误差 0.41716
误差 0.46192
误差 0.62110
误差 0.42589
误差 0.63559
误差 0.41589
误差 0.47759
误差 0.41755
误差 0.47618
误差 0.48836
误差 0.47139
误差 0.44378
误差 0.43186
误差 0.60379
误差 0.41730
误差 0.57938
误差 0.49455
误差 0.42924
误差 0.64338
误差 0.42228
误差 0.41969
误差 0.56564
误差 0.47440
误差 0.43565
误差 0.43015
误差 0.40698
误差 0.51402
误差 0.48879
误差 0.52571
误差 0.59698
误差 0.57154
误差 0.41716
误差 0.42741
误差 0.56387
误差 0.40265
误差 0.47238
误差 0.63418
误差 0.65810
误差 0.40748
误差 0.40859
误差 0.41484
误差 0.56391
误差 0.60966
误差 0.39522
误差 0.43803
误差 0.49786
误差 0.65911
误差 0.54461
误差 0.41952
误差 0.54949
误差 0.49257
误差 0.43983
误差 0.41604
误差 0.43568
误差 0.46312
误差 0.41469
误差 0.44786
误差 0.59285
误差 0.44303
误差 0.68030
误差 0.42358
误差 0.40325
误差 0.41611
误差 0.45583
误差 0.65616
误差 0.68709
误差 0.41885
误差 0.45049
误差 0.58441
误差 0.45468
误差 0.42417
误差 0.40616
误差 0.58975
误差 0.46033
误差 0.50709
误差 0.42368
误差 0.43028
误差 0.40943
误差 0.59018
误差 0.45247
误差 0.40702
误差 0.45012
误差 0.43814
误差 0.66052
误差 0.46182
误差 0.43200
误差 0.41210
误差 0.49363
误差 0.55820
误差 0.61065
误差 0.45960
误差 0.43083
误差 0.45568
误差 0.52966
误差 0.44433
误差 0.56739
误差 0.57119
误差 0.50704
误差 0.64660
误差 0.64042
误差 0.39460
误差 0.67179
误差 0.41528
误差 0.68708
误差 0.56846
误差 0.38867
误差 0.48374
误差 0.54604
误差 0.59861
误差 0.41199
误差 0.40295
误差 0.58763
误差 0.54170
误差 0.43621
误差 0.45044
误差 0.60369
误差 0.68037
误差 0.43257
误差 0.64975
误差 0.46789
误差 0.39079
误差 0.61803
误差 0.43451
误差 0.41843
误差 0.46582
误差 0.67466
误差 0.50756
误差 0.50637
误差 0.54450
误差 0.48875
误差 0.50196
误差 0.63848
误差 0.44165
误差 0.48745
误差 0.44065
误差 0.43083
误差 0.42260
误差 0.63085
误差 0.67345
误差 0.59646
误差 0.42215
误差 0.53324
误差 0.58784
误差 0.53949
误差 0.42469
误差 0.66324
误差 0.38830
误差 0.45208
误差 0.41903
误差 0.45689
误差 0.41323
误差 0.52505
误差 0.68890
误差 0.56372
误差 0.44420
误差 0.44335
误差 0.44317
误差 0.44315
误差 0.44315
误差 0.44316
误差 0.44317
误差 0.44318
误差 0.44319
误差 0.44321
误差 0.44322
误差 0.44323
误差 0.44324
误差 0.44325
误差 0.44326
误差 0.44327
误差 0.44329
误差 0.44330
误差 0.44331
误差 0.44332
误差 0.44333
误差 0.44334
误差 0.44335
误差 0.44336
误差 0.44337
误差 0.44338
误差 0.44339
误差 0.44340
误差 0.44342
误差 0.44343
误差 0.44344
误差 0.44345
误差 0.44346
误差 0.44347
误差 0.44348
误差 0.44349
误差 0.44350
误差 0.44351
误差 0.44352
误差 0.44353
误差 0.44354
误差 0.44355
误差 0.44356
误差 0.44357
误差 0.44358
误差 0.44359
误差 0.44360
误差 0.44361
误差 0.44362
误差 0.44363
误差 0.44364
误差 0.44365
误差 0.44366
误差 0.44367
误差 0.44368
误差 0.44369
误差 0.44369
误差 0.44370
误差 0.44371
误差 0.44372
误差 0.44373
误差 0.44374
误差 0.44375
误差 0.44376
误差 0.44377
误差 0.44378
误差 0.44379
误差 0.44380
误差 0.44381
误差 0.44381
误差 0.44382
误差 0.44383
误差 0.44384
误差 0.44385
误差 0.44386
误差 0.44387
误差 0.44388
误差 0.44389
误差 0.44389
误差 0.44390
误差 0.44391
误差 0.44392
误差 0.44393
误差 0.44394
误差 0.44395
误差 0.44396
误差 0.44396
误差 0.44397
误差 0.44398
误差 0.44399
误差 0.44400
误差 0.44401
误差 0.44401
误差 0.44402
误差 0.44403
误差 0.44404
误差 0.44405
误差 0.44406
误差 0.44406
误差 0.44407
误差 0.44408
误差 0.44409
误差 0.44410
误差 0.44410
误差 0.44411
误差 0.44412
误差 0.44413
误差 0.44414
误差 0.44414
误差 0.44415
误差 0.44416
误差 0.44417
误差 0.44418
误差 0.44418
误差 0.44419
误差 0.44420
误差 0.44421
误差 0.44422
误差 0.44422
误差 0.44423
误差 0.44424
误差 0.44425
误差 0.44425
误差 0.44426
误差 0.44427
误差 0.44428
误差 0.44428
误差 0.44429
误差 0.44430
误差 0.44431
误差 0.44431
误差 0.44432
误差 0.44433
误差 0.44434
误差 0.44434
误差 0.44435
误差 0.44436
误差 0.44437
误差 0.44437
误差 0.44438
误差 0.44439
误差 0.44440
误差 0.44440
误差 0.44441
误差 0.44442
误差 0.44442
误差 0.44443
误差 0.44444
误差 0.44445
误差 0.44445
误差 0.44446
误差 0.44447
误差 0.44447
误差 0.44448
误差 0.44449
误差 0.44450
误差 0.44450
误差 0.44451
误差 0.44452
误差 0.44452
误差 0.44453
误差 0.44454
误差 0.44454
误差 0.44455
误差 0.44456
误差 0.44456
误差 0.44457
误差 0.44458
误差 0.44458
误差 0.44459
误差 0.44460
误差 0.44460
误差 0.44461
误差 0.44462
误差 0.44462
误差 0.44463
误差 0.44464
误差 0.44464
误差 0.44465
误差 0.44466
误差 0.44466
误差 0.44467
误差 0.44468
误差 0.44468
误差 0.44469
误差 0.44470
误差 0.44470
误差 0.44471
误差 0.44472
误差 0.44472
误差 0.44473
误差 0.44474
误差 0.44474
误差 0.44475
误差 0.44475
误差 0.44476
误差 0.44477
误差 0.44477
误差 0.44478
误差 0.44479
误差 0.44479
误差 0.44480
误差 0.44481
误差 0.44481
误差 0.44482
误差 0.44482
误差 0.44483
误差 0.44484
误差 0.44484
误差 0.44485
误差 0.44485
误差 0.44486
误差 0.44487
误差 0.44487
误差 0.44488
误差 0.44489
误差 0.44489
误差 0.44490
误差 0.44490
误差 0.44491
误差 0.44492
误差 0.44492
误差 0.44493
误差 0.44493
误差 0.44494
误差 0.44495
误差 0.44495
误差 0.44496
误差 0.44496
误差 0.44497
误差 0.44497
误差 0.44498
误差 0.44499
误差 0.44499
误差 0.44500
误差 0.44500
误差 0.44501
误差 0.44502
误差 0.44502
误差 0.44503
误差 0.44503
误差 0.44504
误差 0.44504
误差 0.44505
误差 0.44506
误差 0.44506
误差 0.44507
误差 0.44507
误差 0.44508
误差 0.44508
误差 0.44509
误差 0.44509
误差 0.44510
误差 0.44511
误差 0.44511
误差 0.44512
误差 0.44512
误差 0.44513
误差 0.44513
误差 0.44514
误差 0.44514
误差 0.44515
误差 0.44516
误差 0.44516
误差 0.44517
误差 0.44517
误差 0.44518
误差 0.44518
误差 0.44519
误差 0.44519
误差 0.44520
误差 0.44520
误差 0.44521
误差 0.44522
误差 0.44522
误差 0.44523
误差 0.44523
误差 0.44524
误差 0.44524
误差 0.44525
误差 0.44525
误差 0.44526
误差 0.44526
误差 0.44527
误差 0.44527
误差 0.44528
误差 0.44528
误差 0.44529
误差 0.44529
误差 0.44530
误差 0.44530
误差 0.44531
误差 0.44532
误差 0.44532
误差 0.44533
误差 0.44533
误差 0.44534
误差 0.44534
误差 0.44535
误差 0.44535
误差 0.44536
误差 0.44536
误差 0.44537
误差 0.44537
误差 0.44538
误差 0.44538
误差 0.44539
误差 0.44539
误差 0.44540
误差 0.44540
误差 0.44541
误差 0.44541
误差 0.44542
误差 0.44542
误差 0.44543
误差 0.44543
误差 0.44544
误差 0.44544
误差 0.44545
误差 0.44545
误差 0.44546
误差 0.44546
误差 0.44547
误差 0.44547
误差 0.44548
误差 0.44548
误差 0.44548
误差 0.44549
误差 0.44549
误差 0.44550
误差 0.44550
误差 0.44551
误差 0.44551
误差 0.44552
误差 0.44552
误差 0.44553
误差 0.44553
误差 0.44554
误差 0.44554
误差 0.44555
误差 0.44555
误差 0.44556
误差 0.44556
误差 0.44557
误差 0.44557
误差 0.44558
误差 0.44558
误差 0.44558
误差 0.44559
误差 0.44559
误差 0.44560
误差 0.44560
误差 0.44561
误差 0.44561
误差 0.44562
误差 0.44562
误差 0.44563
误差 0.44563
误差 0.44564
误差 0.44564
误差 0.44564
误差 0.44565
误差 0.44565
误差 0.44566
误差 0.44566
误差 0.44567
误差 0.44567
误差 0.44568
误差 0.44568
误差 0.44568
误差 0.44569
误差 0.44569
误差 0.44570
误差 0.44570
误差 0.44571
误差 0.44571
误差 0.44572
误差 0.44572
误差 0.44572
误差 0.44573
误差 0.44573
误差 0.44574
误差 0.44574
误差 0.44575
误差 0.44575
误差 0.44576
误差 0.44576
误差 0.44576
误差 0.44577
误差 0.44577
误差 0.44578
误差 0.44578
误差 0.44579
误差 0.44579
误差 0.44579
误差 0.44580
误差 0.44580
误差 0.44581
误差 0.44581
误差 0.44582
误差 0.44582
误差 0.44582
误差 0.44583
误差 0.44583
误差 0.44584
误差 0.44584
误差 0.44585
误差 0.44585
误差 0.44585
误差 0.44586
误差 0.44586
误差 0.44587
误差 0.44587
误差 0.44587
误差 0.44588
误差 0.44588
误差 0.44589
[1, 2, 5] -> [0.622052007154865]
[1, 3, 4] -> [0.6349308447617792]
[1, 6, 2] -> [0.6523495406565405]
[1, 5, 1] -> [0.16484857350923277]
[1, 8, 4] -> [0.6811331028161182]
输入层权重
[-0.12968652473230272, -194.395432901351, 225.4358671501392, 0.033587281668321506]
[-0.08301265420049868, 2926.496750619007, 243.29805160306333, -0.0697435701362426]
[0.18772930490579728, -2537.818009416696, -695.9628342947559, 0.107747281883675]
[0.024969874027004107, -194.1747141726259, 225.60065128834037, 0.13982908910260272]
输出层权重
[9.029503439876122e-18]
[0.21136609960958613]
[-8.377022981403526]
[-7.693874000391885]

BP神经网络以及python实现相关推荐

  1. bp神经网络预测python代码_机器学习之多层神经网络(附Python代码和数据)

    1 引言 多层神经网络,Multiple-layers Perceptron (MLP),又被称为多层感知机,是机器学习中深度学习的典型算法.关于多层神经网络的算法原理,我们在Stata和R实现的文章 ...

  2. 三层BP神经网络的python实现

    这是一个非常漂亮的三层反向传播神经网络的python实现,下一步我准备试着将其修改为多层BP神经网络. 下面是运行演示函数的截图,你会发现预测的结果很惊人! 提示:运行演示函数的时候,可以尝试改变隐藏 ...

  3. 神经网络学习(3)————BP神经网络以及python实现

    一.BP神经网络结构模型 BP算法的基本思想是,学习过程由信号的正向传播和误差的反向传播俩个过程组成,输入从输入层输入,经隐层处理以后,传向输出层.如果输出层的实际输出和期望输出不符合,就进入误差的反 ...

  4. BP神经网络(python代码)

    神经网络是深度学习的基础.个人理解神经网络就是可以拟合任何一种广义线性模型的结构,本文主要记录python代码的学习笔记. BP神经网络原理(待补充,可以详见<数据挖掘概念与技术>P258 ...

  5. BP神经网络算法 Python实现

    BP神经网络算法 实验要求: 掌握BP神经网络算法的实现 掌握利用BP神经网络对样本数据分类,并观察训练时间及迭代次数对结果的影响 Python 代码 # -*- coding: utf-8 -*- ...

  6. 基于遗传算法GA算法优化BP神经网络(Python代码实现)

    一. 概述 BP-GA算法的设计︰基于遗传算法的BP神经网络算法(以下简称BP-GA)就是在BP神经网络的学习过程中,将权重和阀值描述为染色体,并选取适宜的适应函数,然后进行GA迭代,直到某种意义上的 ...

  7. bp神经网络预测模型python,r语言bp神经网络预测

    如何建立bp神经网络预测 模型 . 建立BP神经网络预测模型,可按下列步骤进行:1.提供原始数据2.训练数据预测数据提取及归一化3.BP网络训练4.BP网络预测5.结果分析现用一个实际的例子,来预测2 ...

  8. BP神经网络的Python实现

    1.需要先导入numpy模块 2.定义非线性转化函数,由于还需要用到给函数的导数形式,因此一起定义 #这里是两个激活函数,tanh和logistic:以及求导后的函数 3.设计BP神经网络的形式(几层 ...

  9. BP神经网络原理及Python实现

    BP神经网络及Python实现 BP神经网网络原理 BP网络模型 BP学习算法 Python算法实现 多层感知器基本参数设定 最近刚好在跟着课程一起学TensorFlow,顺道把整个神经网络的理论复习 ...

最新文章

  1. 最常见企业管理SAAS软件有哪些?要解决哪些问题?
  2. pythonpandas读取csv和另外一个csv进行比较_Python Pandas:比较一个列中类似值的两个csv(dataframe)的行,并返回相似的行(列)的内容...
  3. std::vector使用简介
  4. 交叉编译 FLTK1.3.0
  5. javamail 解码 base64 html格式邮件_python使用QQ邮箱实现自动发送邮件
  6. mysql语句注意点 2021-05-15
  7. 100w条数据插入Mysql 数据库,耗时仅10s
  8. 全局光照算法:IBL
  9. 主板 稳定测试软件,拷机必不可少 编辑推荐几款稳定性测试软件
  10. 简单突破数据库备份路径拿shell
  11. 试试54款开源服务器软件 (比较知名的软件大集合)
  12. Web服务器配置管理
  13. 事事有着落,件件有回音——MyAppsp平台督查督办管理系统
  14. windows7打印时,显示脱机,提示“服务器打印后台处理程序服务没有运行”。...
  15. 软著申请全流程图文解析与注意事项
  16. 程序员怎么才能让自己走得更高、更远?
  17. E销宝:dsp广告应该怎么投放?
  18. 转载:使用飞信VMDotNet使C#程序脱离.NET FRAMEWORK也能运行的一些心得
  19. linux reg 指令,LINUX的一些小命令
  20. Python--初识庐山真面目

热门文章

  1. Linux进程与任务管理
  2. 汽车报户计算机自动选号,互联网选号“放大招” 预选机动车号牌可“百里挑一”...
  3. Microsoft Word 教程「7」,如何在 Word 中显示标尺?
  4. 四、Amlogic A311D 音频回采信号LOOPBACK指南
  5. 嗖嗖~您有一份上云计划待查收
  6. 在这款任天堂游戏里,我发现了一部关卡设计的黄金教案
  7. 2022-2028年中国知识产权行业竞争策略研究及未来前景展望报告
  8. 余姚dns服务器位置,余姚广电dns服务器地址
  9. android 存储盘 dcim,什么是DCIM?手机照片的存储路径
  10. 强化练习200题(一)正题:160