BPNN原理及推导

  • BPNN
    • 神经网络
    • 正向传播
    • BP算法
      • Wn权重更新推导
  • 最后

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

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

哼~

BPNN

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

神经网络

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

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

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


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

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

  • 输入层 到 隐藏层1
    输入的是一个二维向量xn=i1=o1,在与中间的权重矩阵进行线性组合后,得到了隐藏层1的输入i2
    而在隐藏层1中对输入的i2用激活函数进行激活得到输出O2
    那么可以知道i2=W1*O1 设f为激活函数则O2=f(i2)
  • 那么同理从隐藏层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来说,更新权重的方法也是利用梯度下降进行更新


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

Wn权重更新推导

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

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

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

W3的权重该如何更新


W3 = W3 - η△W3

同理△W2

那么△W1


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

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

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

最后

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

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

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

可以评论戳我一下

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

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

  1. 【深度学习笔记】神经网络模型及经典算法知识点问答巩固(算法工程师面试笔试)

    文章目录 前言 一.前馈神经网络模型 1.请说说你对前馈神经网络中"前馈"二字的理解. 2.记忆和知识是存储在_____上的.我们通常是通过逐渐改变_____来学习新知识. 3.在 ...

  2. 深度学习:知识回收(Lecture1and2)

    知识回收~ 回到深度学习(基础知识回收) Lecture 1 数据集处理 Lecture 2 K近邻与朴素贝叶斯 --分类和回归 KNN算法 NB朴素贝叶斯算法 复习路线 回到深度学习(基础知识回收) ...

  3. 深度学习:知识回收(Lecture3+4 PLA+Decision Tree)

    Lecture 3 PLA and Lecture 4 Decision Tree 序 Lecture 3 PLA Lecture 4 Decision Tree 特征划分 ID3 信息增益 C4.5 ...

  4. 复旦大学邱锡鹏教授:一张图带你梳理深度学习知识脉络

    Datawhale 作者:邱锡鹏,复旦大学教授 寄语:本文梳理了深度学习知识体系,分为机器学习.神经网络和概率图模型,同时对机器学习算法类型.深度学习原理框架等进行了梳理,帮助大家更好地学习和入手深度 ...

  5. 【深度学习系列】卷积神经网络CNN原理详解(一)——基本原理(1)

    上篇文章我们给出了用paddlepaddle来做手写数字识别的示例,并对网络结构进行到了调整,提高了识别的精度.有的同学表示不是很理解原理,为什么传统的机器学习算法,简单的神经网络(如多层感知机)都可 ...

  6. 深度学习教程(6) | 神经网络优化算法(吴恩达·完整版)

    作者:韩信子@ShowMeAI 教程地址:https://www.showmeai.tech/tutorials/35 本文地址:https://www.showmeai.tech/article-d ...

  7. 深度学习的数学-神经单元误差和反向传播

    文章目录 前言 正文 神经单元误差 梯度下降算法在实际应用中的难点 神经单元误差的定义和含义 神经单元误差关于权重和偏置的偏导数(重点) 关于权重的偏导数推导 偏置的偏导数推导 公式一般化 误差反向传 ...

  8. 你不得不了解的深度学习知识(二)

    你不得不了解的深度学习知识 书接上回,你不得不了解的深度学习知识(一),了解了卷积神经网络,以及循环神经网络.这节把剩下的两种常见网络给讲述完毕! 3 生成对抗网络 – Generative Adve ...

  9. 【深度学习】CNN神经网络应用(用于亚洲大黄蜂分类)

    [深度学习]CNN神经网络应用(用于亚洲大黄蜂分类) 文章目录 1 概述 2 假设条件 3 网络结构 4 数据集和参数 5 Asian hornet classification experiment ...

  10. 深度学习(神经网络) —— BP神经网络原理推导及python实现

    深度学习(神经网络) -- BP神经网络原理推导及python实现 摘要 (一)BP神经网络简介 1.神经网络权值调整的一般形式为: 2.BP神经网络中关于学习信号的求取方法: (二)BP神经网络原理 ...

最新文章

  1. out与ref的区别
  2. Zend Studio 10代码格式化设置
  3. mockito 外部接口_【IDEA开发SpringBoot2.0】使用Mockito进行常规接口测试#05
  4. python多久能学会爬虫-python一般学多久
  5. Spring的依赖注入和管理Bean
  6. Burst trie(爆炸式字典树)解读
  7. 机器学习实战-KNN算法-20
  8. 使用sftp不用输入密码
  9. 计算机在材料科学中的应用上机二,计算机在材料科学中的应用-上机实验二.doc...
  10. 调整窗口大小时进行页面刷新(设定定时器)
  11. 微型计算机控制技术第三版第六章课后答案,(完整版)微型计算机控制技术第6章习题答案...
  12. Region Proposal Network
  13. Python Gym ImportError cannot import name ‘rendering‘ from ‘gym.envs.classic_control‘
  14. uniapp定位和选择城市
  15. 【Android】app应用内版本更新升级(DownloadManager下载,适配Android6.0以上所有版本)
  16. c语言设计计算器的意义,C语言结课设计之计算器功能
  17. 巨人纪学峰:未来网游发展趋势是社区化
  18. 关于Arista DCS 7048交换机不支持ECN功能的说明
  19. vscode中 用svn插件下拉代码
  20. Bat批处理方式发邮件

热门文章

  1. MySQL基础面试题总结
  2. 全球十大外汇交易平台2020最新排名
  3. 数据结构算法书籍推荐
  4. 如何用echarts创建市区地图
  5. 23种设计模式JAVA案例
  6. #Qt#QListView的两种用法,亲测有效
  7. AcWing 兔子与兔子
  8. linux/ubuntu16.04系统上snowboy swig源码安装及使用全记录和遇到的错误
  9. java聊天服务器架构_基于Spring 4.0 的 Web Socket 聊天室/游戏服务端简单架构
  10. f1c100s 源码_全志 F1C100S/200S Ucos Kile MDK emwin 408M-ARM9内置DDR 源码