ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

深度学习:知识回收(神经网络模型:BPNN原理)

2021-01-12 23:30:38  阅读:549  来源: 互联网

标签:输出 Wn 回收 神经网络 BP BPNN 隐藏


Lecture 3 PLA and Lecture 4 Decision Tree

今天看tensorflow的时候,看到一个BPNN的例子,就顺便把BPNN的原理给看了一遍

OpenCV的书也到了,想尽快结束复习开始新的模块学习

哼~

BPNN

即是BP神经网络,是一种入门经典的神经网络模型,分为forward和backward的传播

神经网络

首先我们了解一下神经网络

分为输入层、隐藏层及输出层

下图的神经网络就包括一个输入层、两个隐藏层以及一个输出层

神经网络
下面举个例子并从左到右解释一下这个神经网络到底在做什么操作

假设输入层开始叫第一层,隐藏层1为第二层,隐藏层二为第三层,输出层为第四层

神经网络1

  • 输入层 到 隐藏层1
    输入的是一个二维向量xn=i1=o1,在与中间的权重矩阵进行线性组合后,得到了隐藏层1的输入i2
    而在隐藏层1中对输入的i2用激活函数进行激活得到输出O2
    那么可以知道i2=W1*O1 设f为激活函数则O2=f(i2)
    输入+隐藏1
  • 那么同理从隐藏层1到2的权重即为W2,隐藏层2的输入为i3=W2*o2,输出为O3=f(i3)
  • 最后隐藏层2到输出层得到的输出y=W3*O3

那么对于神经网络的分析就到这

正向传播

对于正向传播来说,输入样本xn,从而一步一步通过神经网络得到输出结果y

那么y =f(w3f(w2f(w1*o1))) 即是通过该神经网络得到的结果

但是为了BP算法,我们需要再做一步对y的处理,O4 = loss_function(y)

令输出层也有一个损失函数进行计算,从y得到o4

  • 一般我们的loss_function 取 O4 = 1/2(L-y)^2
    其中L为训练集的label

BP算法

BP算法作为BPNN的核心算法,是对权重的一种更新算法

通过BP算法对之前的权重w1 2 3 进行更新优化

那么对于Wn来说,更新权重的方法也是利用梯度下降进行更新

BP更新权重
其中已知η(学习率)、O4(loss_function(y))那么重点来了,如何计算O4对于Wn的偏导

Wn权重更新推导

先对每个位置代表什么进行明确
明确图

所以我们重点就是在计算O4对Wn的偏导

n = 3,也就是离输出层最近的时候

W3的权重该如何更新

W3
W3 = W3 - η△W3

同理△W2

W2

那么△W1

W1
至此权重Wn的更新就讲完了

剩下的就是将样本带入不断的进行正向和BP传播即可完成对权值w的更新从而进行预测

BPNN神经网络的原理也算是讲完了

最后

还有一点小问题,我在W1的公式推导中对矩阵的位置进行了调换,但是不知道其真正原理

只是为了将矩阵凑成2*2

如果有小伙伴了解该情况的话

可以评论戳我一下

希望能像你请教一番,谢谢大家的支持~

哼

标签:输出,Wn,回收,神经网络,BP,BPNN,隐藏
来源: https://blog.csdn.net/lifh8/article/details/112489907

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有