1. 神经网络

这是一个常见的神经网络的图:
这是一个常见的三层神经网络的基本构成,Layer L1是输入层,Layer L2是隐含层,Layer L3是隐含层,当我们输入x1,x2,x3等数据时,通过隐含层的计算、转换,输出你的期望,当你的输入和输出是一样的时候,成为自编码模型(Auto-Encoder),而当你输入和输出是不一致的时候,也就是我们常说的人工神经网络。

2.  如何计算传播

首先我们先构建一个简单的网络层作为例子:
在这个网络层中有
  • 第一层输入层:里面包含神经元i1,i2,截距:b1,权重:w1,w2,w3,w4
  • 第二层是隐含层:里面包含h1,h2,截距:b2,权重:w5,w6,w7,w8
  • 第三层是输出层:里面包含o1,o2
我们使用sigmoid作为激活函数

PS:如果你觉得这篇文章看起来稍微还有些吃力,或者想要系统地学习人工智能,那么推荐你去看床长人工智能教程。非常棒的大神之作,教程不仅通俗易懂,而且很风趣幽默。点击这里可以查看教程。

假定我们输入数据i1: 0.02 i2: 0.04 截距b1:0.4 b2:0.7 期望的输出数据o1:0.5  o2:0.9
未知的是权重w1,w2,w3,w4,w5,w6,w7,w8
我们的目的是为了能的到o1:0.5 o2:0.9的期望的值,计算出w1,w2,w3....w8的权重值
先假如构造一个权重w1,w2,w3.....w8的值,通过计算获取到最佳的w1,w2,w3....w8的权重
权重的初使值:
  1. w1=0.25
  2. w2=0.25
  3. w3=0.15
  4. w4=0.20
  5. w5=0.30
  6. w6=0.35
  7. w7=0.40
  8. w8=0.35

2.1 前向传播

2.1.1 输入层到隐含层

NET(h1)=w1*i1+w2*i2+b1=0.25*0.02+0.25*0.04+0.4=0.005+0.01+0.4=0.415
神经元h1到输出h1的激活函数是sigmoid
OUT(h1)=1/(1+e^(-NET(h1)))=1/(1+0.660340281)=0.602286177
同理我们也可以获取OUT(h2)的值
NET(h2)=w3*i1+w4*i2+b1=0.15*0.02+0.20*0.04+0.4=0.003+0.008+0.4=0.411
OUT(h2)=1/(1+e^(-NET(h2)))=1/(1+0.662986932)=0.601327636

2.1.2 从隐含层到输出层

计算输出层的神经元o1, o2的值,计算方法和输出层到隐含层类似
NET(o1)=w5*h1+w6*h2+b2=0.3*0.602286177+0.35*0.601327636+0.7=0.180685853+0.210464672+0.7=1.091150525
OUT(o1)=1/(1+e^(-NET(o1)))=1/(1+0.335829891)=0.748598311
同理
NET(o2)=w7*h1+w8*h2+b2=0.4*0.602286177+0.35*0.601327636+0.7=0.240914471+0.210464672+0.7=1.151379143
OUT(o2)=1/(1+e^(-NET(o2)))=1/1.316200383=0.759762733

o1:0.748598311   o2:0.759762733 距离我们期望的o1:0.5  o2:0.9还是有很大的距离

2.2 计算总误差

公式:
也就是我们需要计算每个期望误差的和
E(total)= E(o0)+E(o1)=(1/2)*(0.748598311-0.5)^2+(1/2)*(0.759762733-0.9)^2=0.01545028+0.009833246=0.025283526

2.3 反向传播

每一个权重对误差的影响,我们可以通过下图更直观的看清楚误差的反向传播

2.3.1 隐含层到输出层的权值更新

隐含层到输出层的权值,在上面的例子里是W5,W6,W7,W8
我们以W6参数为例子,计算W6对整体误差的影响有多大,可以使用整体误差对W6参数求偏导:

很明显并没有W6对Etotal的计算公式,我们只有W6对Net(o1)的计算公式
但根据偏导数的链式法则,我们可以将我们存在的推导公式进行链式乘法
我们来计算每一个公式的偏导:
  • 计算
这是一个复合函数的导数

设{\displaystyle f}和{\displaystyle g}为两个关于{\displaystyle x}可导函数,则复合函数{\displaystyle (f\circ g)(x)}的导数{\displaystyle (f\circ g)'(x)}为:

{\displaystyle (f\circ g)'(x)=f'(g(x))g'(x).}
这里g(x)=target(o1)-out(o1)  g'(x)=-1
=-(0.5-0.748598311)=0.248598311
  • 计算
已知

我们来推导一下
还是复合函数的推导

最后推导的结果:
=0.748598311*(1-0.748598311)=0.251401689*0.748598311=0.18819888
  • 计算

也就是net(o1)'=out(h2)=0.601327636
最后我们的公式
=*out(h2)
=0.248598311*0.18819888*0.601327636=0.028133669

2.3.1.1 跟新W6的权重

W6=W6-x*
其中 x 就是我们常说的学习速率,设置x学习速率为0.1 那么新的w6的权重就是
0.35-0.1*0.028133669=0.347186633
相同的道理,我们也可以计算新的W5,W6,W7,W8的权重
可是如何计算和跟新W1,W2,W3,W4的权重呢?

2.3.2 隐含层的权值跟新

大概的算法还是和前面类似,如下图所展示:
计算公式:

2.3.2.1 计算

对Out(h1)来说Etotal并不依赖于Out(h1)计算,需要将Total分拆成两个Eo1和Eo2来计算
公式如下:
接着推导公式:
  • 计算
  • 同理也可以计算

2.3.2.2 计算

2.3.2.3 计算

最后三者相乘:

2.3.2.4 整体公式

根据前面的公式,我们可以推导出最后的公式

2.3.2.4 跟新W1的权重

和计算W6的权重一样:
设置学习速率,计算的到w1的权重值

3. 计算获取最佳的权重

我们将获取的新的权重不停的迭代,迭代一定的次数后直到接近期望值o1:0.5 o2:0.9后,所的到权重w1...w8,就是所需要的权重。

深度学习:神经络的向播和反传播算法导相关推荐

  1. 神经网络与深度学习笔记(三)python 实现反向传播算法

    1.BP方程式 2.计算步骤 3.代码 def backprop(self, x, y): """Return a tuple "(nabla_b, nabla ...

  2. 深度学习、机器学习方向计算机毕业设计题目大全(算法应用实践类)

    (吐血整理) 手动整理了1500多个深度学习及机器学习相关算法在实际应用中的项目,完全可以作为本科生当前较新的毕业设计题目选择方向.讲道理有些题目,比如"用户评分的隐式成分信息的研究&quo ...

  3. 深度学习时间序列预测:卷积神经网络(CNN)算法构建单变量时间序列预测模型预测空气质量(PM2.5)+代码实战

    深度学习时间序列预测:卷积神经网络(CNN)算法构建单变量时间序列预测模型预测空气质量(PM2.5)+代码实战 神经网络(neual networks)是人工智能研究领域的一部分,当前最流行的神经网络 ...

  4. 深度学习之循环神经网络(3)梯度传播

    深度学习之循环神经网络(3)梯度传播  通过循环神经网络的更新表达式可以看出输出对张量Wxh\boldsymbol W_{xh}Wxh​.Whh\boldsymbol W_{hh}Whh​和偏置b\b ...

  5. 深度学习之卷积神经网络(6)梯度传播

    深度学习之卷积神经网络(6)梯度传播  在完成手写数字图片识别实战后,我们对卷积神经网络的使用有了初步的了解.现在我们来解决一个关键问题,卷积层通过移动感受野的方式实现离散卷积操作,那么它的梯度传播是 ...

  6. 基于深度学习和光流的地铁乘客上下车自动检测算法

    1.文章信息 本次介绍的文章题目是基于深度学习和光流的地铁乘客上下车自动检测算法<An Automatic Detection Algorithm of Metro Passenger Boar ...

  7. 深度学习与计算机视觉教程(4) | 神经网络与反向传播(CV通关指南·完结)

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

  8. 深度学习的数学-卷积神经网络的误差反向传播

    文章目录 前言 正文 卷积神经网络中的关系式 卷积层 池化层 输出层 平方误差(损失函数) 梯度下降法 卷积层和输出层的神经单元误差(重点) 输出层的神经单元误差计算 输出层的神经单元与其权重偏置的关 ...

  9. 深度学习之目标检测(一)—— 目标检测算法介绍

    目标检测问题 目标检测是在图片中对可变数量的目标进行查找和分类 查找就是定位到它在图片中的位置,通常表示为一个矩形框 对于这样的问题,主要存在三个主要难点 ①目标种类与数量问题 ②目标尺度问题 ③外在 ...

最新文章

  1. 干货 | 一文总结机器学习类面试问题与思路
  2. PostgreSQL学习手册(七) 事物隔离
  3. Devexpress 10.2.3 Demo 批量生成脚本
  4. 从Win8预览版的发布来选择最合适的虚拟机软件
  5. GoldenGate技术架构(二)
  6. SCOI2010 股票交易
  7. C语言实现简单的电子通讯录2
  8. 敏捷开发系列学习总结(13)——Spotify敏捷模式详解三部曲第一篇:研发团队
  9. python变量类型字符串的内建函数使用
  10. python 执行存储过程语句_从Python执行存储过程
  11. ARP解决方法/工具+真假ARP防范区别方法+ARP终极解决方案
  12. linux与mac和windows的 文件共享
  13. 常用jar包之commons-collection使用
  14. LinkedIn开源数据发现和管理工具 WhereHows
  15. 【读书笔记】统计学:从数据到结论 第七章
  16. 元器件保护必备知识——静电防护
  17. vtune下载 windows_VtuneApi32e.dll
  18. aptana php,aptana 3 + xdebug php
  19. android实现矩形,android圆角矩形的实现
  20. 外部表报错:ORA-29913: 执行 ODCIEXTTABLEOPEN 调出时出错 ORA-29400: 数据插件错误KUP-04043: table column not found in ext

热门文章

  1. mysql decimal
  2. 单通道和多通道图像相关概念
  3. 洛谷P1021 邮票面值设计
  4. 天梯赛L1级别80道题解
  5. 2015php网址导航源码,114啦网址导航源码评测 114啦网址导航下载
  6. 中国公路路网_拔剑-浆糊的传说_新浪博客
  7. openlayers热力图
  8. Ubuntu基本操作命令
  9. 【计算机网络】计算机网络的主要功能
  10. wordpress安装插件提示“wordpress发生意外错误,可能WordPress.org或服务器配置文件存在问题”...