文章目录

  • I . 神经网络 后向传播算法 计算 隐藏层 与 输出层 的输入输出实例分析
  • II . 神经网络 后向传播算法 输入层公式
  • III. 神经网络 后向传播算法 输入层计算
  • IV . 神经网络 后向传播算法 隐藏层 / 输出层 输入公式
  • V . 神经网络 后向传播算法 隐藏层 / 输出层 输出公式
  • VI . 神经网络 后向传播算法 计算单元 4 输入值 ( 隐藏层 )
  • VII . 神经网络 后向传播算法 计算单元 5 输入值 ( 隐藏层 )
  • VIII . 神经网络 后向传播算法 计算单元 4 输出值 ( 隐藏层 )
  • IX . 神经网络 后向传播算法 计算单元 5 输出值 ( 隐藏层 )
  • X . 神经网络 后向传播算法 计算单元 6 输入值 ( 输出层 )
  • XI . 神经网络 后向传播算法 计算单元 6 输出值 ( 输出层 )

I . 神经网络 后向传播算法 计算 隐藏层 与 输出层 的输入输出实例分析


以下面的三层神经网络为例 , 网络拓扑结构如下 :

1 . 网络拓扑 : 该神经网络本质是有向图 , 由节点 和 有向弧组成 ;

① 输入层 : 有 333 个 神经元单元 ( 节点 ) , 分别是 1,2,31 , 2, 31,2,3 节点 ; 输入属性是经过规范化的属性值 , 取值 [0,1][0, 1][0,1] ;

② 隐藏层 : 有 222 个 神经元单元 ( 节点 ) , 分别是 4,54 , 54,5 节点 , 输入层 与 隐藏层 是全连接方式 ;

③ 输出层 : 有 111 个 单元 , 666 节点 ;

2 . 图中的其它已知条件 :

① 输入属性 : 是规范化为 [0,1][0, 1][0,1] 区间的值 ;

② 连接方式 : 该网络结构中的连接方式是全连接方式 , 即每个节点都连接全部的相邻层的节点 ; ( 与之对应的是局部连接 )

③ 连接权值 : 每两个节点间的连接都有一个权值 , 使用 wijw_{ij}wij​ 表示 , 如 w14w_{14}w14​ 表示节点 111 和节点 444 之间连接的权值 ;

④ 偏置 : 输入层 和 隐藏层 的节点 , 每个节点都有一个偏置属性 , 如节点 111 偏置表示为 b1b_1b1​ ;

输入输出表示 :

① 输入表示 : 使用 I1I_1I1​ 表示输入 , III 是 Input 输入 单词首字母 , I1I_1I1​ 表示第 111 个节点的输入 ;

② 输出表示 : 使用 O1O_1O1​ 表示输出 , OOO 是 Output 输出单词首字母 , O1O_1O1​ 表示第 111 个节点的输出 ;

II . 神经网络 后向传播算法 输入层公式


输入层公式 : 不做任何操作 , 只是将样本属性传入即可 , 输入层单元的值 , 就是样本的规范化后的属性值 ;

输入值Oj=输出值Ij=样本属性值Xj输入值 O_j = 输出值 I_j = 样本属性值 X_j 输入值Oj​=输出值Ij​=样本属性值Xj​

Oj=Ij=XjO_j = I_j = X_j Oj​=Ij​=Xj​

jjj 代表单元的索引值 ;

OjO_jOj​ 代表单元输入值 ;

IjI_jIj​ 代表单元的输出值 ;

XjX_jXj​ 代表规范化后的样本属性值 ;

规范化属性值 : 这个属性值 XjX_jXj​ 是经过规范化的 , 一般是 [0,1][0, 1][0,1] 区间内的值 ;

III. 神经网络 后向传播算法 输入层计算


输入层计算 : 输入层的输出值 OiO_iOi​ 就是输入值 IiI_iIi​ , i=1,2,3i = 1 , 2 , 3i=1,2,3 ;

① 节点 111 计算 : I1I_1I1​ 表示节点 111 输入 , O1O_1O1​ 表示节点 111 输出 , 其中 I1=O1=输入样本值XI_1 = O_1 = 输入样本值 XI1​=O1​=输入样本值X ;

② 节点 222 计算 : I2I_2I2​ 表示节点 222 输入 , O2O_2O2​ 表示节点 222 输出 , 其中 I2=O2=输入样本值XI_2 = O_2 = 输入样本值 XI2​=O2​=输入样本值X ;

③ 节点 333 计算 : I3I_3I3​ 表示节点 333 输入 , O1O_1O1​ 表示节点 333 输出 , 其中 I1=O3=输入样本值XI_1 = O_3 = 输入样本值 XI1​=O3​=输入样本值X ;

IV . 神经网络 后向传播算法 隐藏层 / 输出层 输入公式


隐藏层 / 输出层 输入公式 :

单个单元输入计算公式方式 ( 重要 ) : 如果有多个上层单元连接本层的 单元 jjj , 只有一个单元 , 可以使用下面的公式计算 , 如果上层有多个单元连接本单元 , 本公式不适用 , 需要多个输入值累加 ;
输入值=上一层单元输出值×连接权值+偏置输入值 = 上一层单元输出值 \times 连接权值 + 偏置输入值=上一层单元输出值×连接权值+偏置

单元 jjj 的上层有多个单元连接的输入值计算方式 :
Ij=∑i=1n(wijOi+θi)I_j = \sum_{i = 1}^{n} ( w_{ij} O_i + \theta_i )Ij​=i=1∑n​(wij​Oi​+θi​)
i=1,⋯,ni = 1 , \cdots , ni=1,⋯,n

IjI_jIj​ 表示单元 jjj 的输入 ;

nnn 表示前一层有 nnn 个单元与 本层的 单元 jjj 连接 ; n≥0n \geq 0n≥0 ;

iii 表示前一层的单元索引 ;

wijw_{ij}wij​ 表示 前一层的单元 iii 与本层的连接的 权值 ;

OiO_iOi​ 表示上一层的输出 ; 这里注意 上一层的输出连接权重 和 偏置 计算后 , 组成下一层的输入 ;
( 上一层的输出值 是 根据上上层的输出 与 上上层 与 连接 偏置计算 得来的 )

θi\theta_iθi​ 表示上一层单元 iii 的偏置 , 该值通常与连接权值组合使用 , 可以看做是连接的附属属性 , 这样好理解 ;

V . 神经网络 后向传播算法 隐藏层 / 输出层 输出公式


隐藏层 与 输出层 输出值计算过程 : 使用 激活函数 , 将输入值转为输出值 , 一般使用 Sigmoid 激活函数 ;

Oj=11+e−IjO_j = \dfrac{1}{1 + e^{-I_j}}Oj​=1+e−Ij​1​

Sigmoid 是非线性激活函数 , 作用是将全体实数 映射到 (0,1)(0,1)(0,1) 区间上 , 这样就能保证输出的值是一个 (0,1)(0 , 1)(0,1) 之间的值 ;

OjO_jOj​ 代表单元 jjj 的输出值 ;

IjI_jIj​ 代表单元 jjj 的输入值 ;

VI . 神经网络 后向传播算法 计算单元 4 输入值 ( 隐藏层 )


1 . 计算隐藏层 输入值 : 需要根据 前一层的输入 , 结合 权值 , 偏置 进行线性累加计算 ;

2 . 计算单元 444 的输入值 :

① 计算过程 :

I4=(w14O1+b1)+(w24O2+b2)+(w34O3+b3)I_4 = (w_{14}O_1 + b_1 ) + (w_{24}O_2 + b_2 ) + (w_{34}O_3 + b_3 )I4​=(w14​O1​+b1​)+(w24​O2​+b2​)+(w34​O3​+b3​)

② 连接权值 : w14,w24,w34w_{14} , w_{24} , w_{34}w14​,w24​,w34​ 是三条有向弧连接的权值 ; 如 w14w_{14}w14​ 是单元 111 与 单元 444 连接的权值 ;

③ 偏置 : b1,b2,b3b_1 , b_2, b_3b1​,b2​,b3​ 分别是 单元 1,2,31 , 2 , 31,2,3 的偏置 ;

④ 上层单个单元输出对应的输入值 :

(w14O1+b1)(w_{14}O_1 + b_1 )(w14​O1​+b1​) 对应单元 111 输出到单元 444 的输入值 ;

(w24O2+b2)(w_{24}O_2 + b_2 )(w24​O2​+b2​) 对应单元 222 输出到单元 444 的输入值 ;

(w34O3+b3)(w_{34}O_3 + b_3 )(w34​O3​+b3​) 对应单元 333 输出到单元 444 的输入值 ;

⑤ 汇总输入值 : 单元 444 的总的输入值就是上述三个值的累加 ;

VII . 神经网络 后向传播算法 计算单元 5 输入值 ( 隐藏层 )


计算单元 555 的输入值 :

① 计算过程 :

I5=(w15O1+b1)+(w25O2+b2)+(w35O3+b3)I_5 = (w_{15}O_1 + b_1 ) + (w_{25}O_2 + b_2 ) + (w_{35}O_3 + b_3 )I5​=(w15​O1​+b1​)+(w25​O2​+b2​)+(w35​O3​+b3​)

② 连接权值 : w15,w25,w35w_{15} , w_{25} , w_{35}w15​,w25​,w35​ 是三条有向弧连接的权值 ; 如 w15w_{15}w15​ 是单元 111 与 单元 555 连接的权值 ;

③ 偏置 : b1,b2,b3b_1 , b_2, b_3b1​,b2​,b3​ 分别是 单元 1,2,31 , 2 , 31,2,3 的偏置 ;

④ 上层单个单元输出对应的输入值 :

(w15O1+b1)(w_{15}O_1 + b_1 )(w15​O1​+b1​) 对应单元 111 输出到单元 555 的输入值 ;

(w25O2+b2)(w_{25}O_2 + b_2 )(w25​O2​+b2​) 对应单元 222 输出到单元 555 的输入值 ;

(w35O3+b3)(w_{35}O_3 + b_3 )(w35​O3​+b3​) 对应单元 333 输出到单元 555 的输入值 ;

⑤ 汇总输入值 : 单元 555 的总的输入值就是上述三个值的累加 ;

VIII . 神经网络 后向传播算法 计算单元 4 输出值 ( 隐藏层 )


计算单元 444 输出值 : 使用 Sigmoid 激活函数将输入值转为输出值 ;

O4=11+e−I4O_4 = \dfrac{1}{1 + e^{-I_4}}O4​=1+e−I4​1​

Sigmoid 是非线性激活函数 , 作用是将全体实数 映射到 (0,1)(0,1)(0,1) 区间上 , 这样就能保证输出的值是一个 (0,1)(0 , 1)(0,1) 之间的值 ;

O4O_4O4​ 代表单元 444 的输出值 ;

I4I_4I4​ 代表单元 444 的输入值 ;

IX . 神经网络 后向传播算法 计算单元 5 输出值 ( 隐藏层 )


计算单元 555 输出值 : 使用 Sigmoid 激活函数将输入值转为输出值 ;

O5=11+e−I5O_5 = \dfrac{1}{1 + e^{-I_5}}O5​=1+e−I5​1​

Sigmoid 是非线性激活函数 , 作用是将全体实数 映射到 (0,1)(0,1)(0,1) 区间上 , 这样就能保证输出的值是一个 (0,1)(0 , 1)(0,1) 之间的值 ;

O5O_5O5​ 代表单元 555 的输出值 ;

I5I_5I5​ 代表单元 555 的输入值 ;

X . 神经网络 后向传播算法 计算单元 6 输入值 ( 输出层 )


计算单元 666 的输入值 :

① 计算过程 :

I6=(w46O4+b4)+(w56O5+b5)I_6 = (w_{46}O_4 + b_4 ) + (w_{56}O_5 + b_5 )I6​=(w46​O4​+b4​)+(w56​O5​+b5​)

② 连接权值 : w46,w56w_{46} , w_{56}w46​,w56​ 是 222 条有向弧连接的权值 ; 如 w46w_{46}w46​ 是单元 444 与 单元 666 连接的权值 ;

③ 偏置 : b4,b5b_4 , b_5b4​,b5​ 分别是 单元 4,54 , 54,5 的偏置 ;

④ 上层单个单元输出对应的输入值 :

(w45O4+b4)(w_{45}O_4 + b_4 )(w45​O4​+b4​) 对应单元 444 输出到单元 666 的输入值 ;

(w46O5+b5)(w_{46}O_5 + b_5 )(w46​O5​+b5​) 对应单元 555 输出到单元 666 的输入值 ;

⑤ 汇总输入值 : 单元 666 的总的输入值就是上述三个值的累加 ;

XI . 神经网络 后向传播算法 计算单元 6 输出值 ( 输出层 )


计算单元 666 输出值 : 使用 Sigmoid 激活函数将输入值转为输出值 ;

O6=11+e−I6O_6 = \dfrac{1}{1 + e^{-I_6}}O6​=1+e−I6​1​

Sigmoid 是非线性激活函数 , 作用是将全体实数 映射到 (0,1)(0,1)(0,1) 区间上 , 这样就能保证输出的值是一个 (0,1)(0 , 1)(0,1) 之间的值 ;

O6O_6O6​ 代表单元 666 的输出值 ;

I6I_6I6​ 代表单元 666 的输入值 ;

O6O_6O6​ 就是最终的分类结果 ;

【数据挖掘】神经网络 后向传播算法 向前传播输入 案例计算分析 ( 网络拓扑 | 输入层计算 | 隐藏层计算 | 输出层计算 )相关推荐

  1. 神经网络和反向传播算法——反向传播算法本质上是随机梯度下降,链式求导法则而来的...

    原文:https://www.zybuluo.com/hanbingtao/note/476663 写得非常好,适合入门! 神经元 神经元和感知器本质上是一样的,只不过我们说感知器的时候,它的激活函数 ...

  2. 零基础入门深度学习(3) - 神经网络和反向传播算法

    无论即将到来的是大数据时代还是人工智能时代,亦或是传统行业使用人工智能在云上处理大数据的时代,作为一个有理想有追求的程序员,不懂深度学习(Deep Learning)这个超热的技术,会不会感觉马上就o ...

  3. 深度学习(4) - 神经网络和反向传播算法

    神经元 神经元和感知器本质上是一样的,只不过我们说感知器的时候,它的激活函数是阶跃函数:而当我们说神经元时,激活函数往往选择为sigmoid函数或tanh函数.如下图所示: 计算一个神经元的输出的方法 ...

  4. 机器学习:神经网络的代价函数及反向传播算法

    在<机器学习:神经网络的模型构建>中,我记录了神经网络的一些基础知识,包括神经网络的逻辑单元.模型表示.前向传播等等.这篇笔记中,我会整理神经网络的代价函数以及反向传播算法- 那么如何在给 ...

  5. 吴恩达《机器学习》课程总结(8)_神经网络参数的反向传播算法

    Q1代价函数 (1)假设神经网络的训练样本有m个,每一个包含一组输入x和一组输出信号y,L表示神经网络的层数,Sl表示每一层的神经元个数,SL代表最后一层中处理单元的个数. 则代价函数为(同样不对θ0 ...

  6. 反向传播算法公式推导,神经网络的推导

    如何理解神经网络里面的反向传播算法 反向传播算法(Backpropagation)是目前用来训练人工神经网络(ArtificialNeuralNetwork,ANN)的最常用且最有效的算法. 其主要思 ...

  7. 深度学习(四):卷积神经网络(CNN)模型结构,前向传播算法和反向传播算法介绍。

    在前面我们讲述了DNN的模型与前向反向传播算法.而在DNN大类中,卷积神经网络(Convolutional Neural Networks,以下简称CNN)是最为成功的DNN特例之一.CNN广泛的应用 ...

  8. 人工神经网络反向传播,神经网络后向传播

    如何理解神经网络里面的反向传播算法 反向传播算法(Backpropagation)是目前用来训练人工神经网络(ArtificialNeuralNetwork,ANN)的最常用且最有效的算法. 其主要思 ...

  9. 神经网络反向传播算法推导

    反向传播是多数神经网络进行参数更新的基本方法,它的本质是巧妙利用了高数中的链式法则,下面对这一方法进行推导: (1)符号说明 :神经元的激活函数 :神经网络的权重向量 :神经网络的偏置向量 :某层的输 ...

最新文章

  1. 浅析比特币的找零机制
  2. 关于中值滤波算法,以及C语言实现(转)
  3. pdfbox 第一页加内容_你用代码做过哪些很酷/有趣的事?
  4. MySQL 数据格式化
  5. spring注解方式注入bean
  6. python字符串设置字体_python怎么更改字符串后几位
  7. 农产品加工进销存单_农产品进销存ERP—物资的内部腾挪转换也是交易的一种形式...
  8. libvirt- Virsh 所有命令详单
  9. 路由的二次风口,华为与迅游能抓住吗?
  10. 为什么象网络蚂蚁这样的多线程程序可以加快下载速度?
  11. SwitchyOmega规则列表地址
  12. 8个免费图片素材网,赶紧收藏起来
  13. 淘客外卖返利小程序搭建 - 美团联盟外卖返利小程序平台、饿了么返利小程序系统、外卖cps小程序
  14. 阿里、京东、拼多多都来了,互联网+疫苗是一门好生意吗?
  15. Leetcode-二分+递归/回溯-1723. 完成所有工作的最短时间
  16. 《数值分析》-- 埃尔米特插值与分段插值
  17. C#的循环控制语句(break,continue)语句
  18. python中key什么意思_Python中字典的key都可以是什么
  19. 好问题:为什么有些大公司技术弱爆了?
  20. Spring Boot 3.0 正式发布,这份升级指南必须收藏

热门文章

  1. 【python】关于python的链表结构实现
  2. P1642 规划 01分数规划+树形DP
  3. 分享.Net 设计模式大全
  4. 记一次因坏块引起的dataguard恢复
  5. NOIP2006提高组 能量项链
  6. 【转】Impala导出查询结果到文件
  7. C# OracleParameter 传参 实例
  8. 基于shell脚本比较数字大小
  9. iOS开发——高级技术地图功能的实现
  10. BZOJ2494 Triangles and Quadrangle