当前位置:   article > 正文

BP神经网络_4.神经网络权重的更新基于bp算法,它由信号的正向传播和

4.神经网络权重的更新基于bp算法,它由信号的正向传播和

BP神经网络(Back Propagation Neural Network)

反向传播神经网络
在这里插入图片描述算法原理:
BP算法由信号的正向传播和误差的反向传播两个过程组成。
1、正向传播时,输入样本从输入层进入网络,经隐层逐层传递至输出层,如果输出层的实际输出与期望输出(导师信号)不同,则转至误差反向传播;如果输出层的实际输出与期望输出(导师信号)相同,结束学习算法。
2、反向传播时,将输出误差(期望输出与实际输出之差)按原通路反传计算,通过隐层反向,直至输入层,在反传过程中将误差分摊给各层的各个单元,获得各层各单元的误差信号,并将其作为修正各单元权值的根据。这一计算过程使用梯度下降法完成,在不停地调整各层神经元的权值和阈值后,使误差信号减小到最低限度。

函数的导数描述了函数局部的变化率。

权值和阈值不断调整的过程,就是网络的学习与训练过程,经过信号正向传播与误差反向传播,权值和阈值的调整反复进行,一直进行到预先设定的学习训练次数,或输出误差减小到允许的程度。
所以反向传播就是调整参数W和b的过程,使它的损失函数能够达到最小,但反向传播不是独立的,一定是伴随着正向传播的。
在这里插入图片描述
接下来讲解BP的整个过程原理,参考https://zhuanlan.zhihu.com/p/45190898
前向传播:未加偏置值b,f(x)为激活函数

BP算法:w更新公式,C是损失函数,η是学习率

这里采用均方误差来讲述bp推导。t为预测值,y为真实值。t=f(al)=f(XLWL)
左边的数是一个非常重要的值,它是第 L层的误差向量。BP之所以叫做误差反向传播,就是来自于这个误差向量沿着从右往左的顺序的传播。
在这里插入图片描述

在这里插入图片描述
一个小例子
在这里插入图片描述
sigmoid函数:
在这里插入图片描述
在这里插入图片描述
这个是用的比较多的激活函数:
在这里插入图片描述
这个函数可以不用考虑小于零的情况,而大于零时,倒数等于1,向前传播时信号不会衰减。
他也不会只是一条直线,他是由直线组成的曲折边界。(凹凸)

BP实战

首先用BP解决异或问题

import numpy as np
import matplotlib.pyplot as plt

#输入数据
X=np.array([[1,0,0],
            [1,0,1],
            [1,1,0],
            [1,1,1]])
#标签
Y = np.array([[0,1,1,0]])#激活函数取值为0-1
#权值初始化,3行1列(因为有三个输入,一个输出),本来取值为0-1之间,减去0.5再乘2,取值范围-1到1
V = (np.random.random([3,4])-0.5)*2
W = (np.random.random([4,1])-0.5)*2

#学习率设置
lr = 0.11

def sigmoid(x):
    return 1/(1+np.exp(-x))

def dsigmoid(x):
    return x*(1-x)

def update():
    global X,Y,V,W,lr
    L1 = sigmoid(np.dot(X,V))#隐藏层输出(4,4)
    L2 = sigmoid(np.dot(L1,W))#输出层输出(4,1)

    L2_delta = (Y.T - L2)*dsigmoid(L2)#(4,4)
    L1_delta = L2_delta.dot(W.T)*dsigmoid(L1)#(4,4)

    W_C = lr*L1.T.dot(L2_delta)
    V_C = lr*X.T.dot(L1_delta)

    W = W + W_C
    V = V + V_C

for i in range(20000):
    update()
    if i%500==0:
        L1 = sigmoid(np.dot(X,V))
        L2 = sigmoid((np.dot(L1,W)))
        print('Error:',np.mean(np.abs(Y.T-L2)))
L1 = sigmoid(np.dot(X, V))
L2 = sigmoid((np.dot(L1, W)))
print(L2)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

BP推导公式(部分)
在这里插入图片描述
输出:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/1019896
推荐阅读
相关标签
  

闽ICP备14008679号