当前位置:   article > 正文

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

输入层隐藏层输出层计算参数



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


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

在这里插入图片描述

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


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

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

③ 输出层 : 1 1 1 个 单元 , 6 6 6 节点 ;


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


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

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

③ 连接权值 : 每两个节点间的连接都有一个权值 , 使用 w i j w_{ij} wij 表示 , 如 w 14 w_{14} w14 表示节点 1 1 1 和节点 4 4 4 之间连接的权值 ;

④ 偏置 : 输入层 和 隐藏层 的节点 , 每个节点都有一个偏置属性 , 如节点 1 1 1 偏置表示为 b 1 b_1 b1 ;


输入输出表示 :


① 输入表示 : 使用 I 1 I_1 I1 表示输入 , I I I 是 Input 输入 单词首字母 , I 1 I_1 I1 表示第 1 1 1 个节点的输入 ;

② 输出表示 : 使用 O 1 O_1 O1 表示输出 , O O O 是 Output 输出单词首字母 , O 1 O_1 O1 表示第 1 1 1 个节点的输出 ;



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


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

输 入 值 O j = 输 出 值 I j = 样 本 属 性 值 X j 输入值 O_j = 输出值 I_j = 样本属性值 X_j Oj=Ij=Xj

O j = I j = X j O_j = I_j = X_j Oj=Ij=Xj

j j j 代表单元的索引值 ;

O j O_j Oj 代表单元输入值 ;

I j I_j Ij 代表单元的输出值 ;

X j X_j Xj 代表规范化后的样本属性值 ;

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



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


输入层计算 : 输入层的输出值 O i O_i Oi 就是输入值 I i I_i Ii , i = 1 , 2 , 3 i = 1 , 2 , 3 i=1,2,3 ;


① 节点 1 1 1 计算 : I 1 I_1 I1 表示节点 1 1 1 输入 , O 1 O_1 O1 表示节点 1 1 1 输出 , 其中 I 1 = O 1 = 输 入 样 本 值 X I_1 = O_1 = 输入样本值 X I1=O1=X ;

② 节点 2 2 2 计算 : I 2 I_2 I2 表示节点 2 2 2 输入 , O 2 O_2 O2 表示节点 2 2 2 输出 , 其中 I 2 = O 2 = 输 入 样 本 值 X I_2 = O_2 = 输入样本值 X I2=O2=X ;

③ 节点 3 3 3 计算 : I 3 I_3 I3 表示节点 3 3 3 输入 , O 1 O_1 O1 表示节点 3 3 3 输出 , 其中 I 1 = O 3 = 输 入 样 本 值 X I_1 = O_3 = 输入样本值 X I1=O3=X ;



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


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


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


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

I j I_j Ij 表示单元 j j j 的输入 ;

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

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

w i j w_{ij} wij 表示 前一层的单元 i i i 与本层的连接的 权值 ;

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

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



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


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

O j = 1 1 + e − I j O_j = \dfrac{1}{1 + e^{-I_j}} Oj=1+eIj1

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

O j O_j Oj 代表单元 j j j 的输出值 ;

I j I_j Ij 代表单元 j j j 的输入值 ;



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


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


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


① 计算过程 :

I 4 = ( w 14 O 1 + b 1 ) + ( w 24 O 2 + b 2 ) + ( w 34 O 3 + b 3 ) I_4 = (w_{14}O_1 + b_1 ) + (w_{24}O_2 + b_2 ) + (w_{34}O_3 + b_3 ) I4=(w14O1+b1)+(w24O2+b2)+(w34O3+b3)


② 连接权值 : w 14 , w 24 , w 34 w_{14} , w_{24} , w_{34} w14,w24,w34 是三条有向弧连接的权值 ; 如 w 14 w_{14} w14 是单元 1 1 1 与 单元 4 4 4 连接的权值 ;


③ 偏置 : b 1 , b 2 , b 3 b_1 , b_2, b_3 b1,b2,b3 分别是 单元 1 , 2 , 3 1 , 2 , 3 1,2,3 的偏置 ;


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


( w 14 O 1 + b 1 ) (w_{14}O_1 + b_1 ) (w14O1+b1) 对应单元 1 1 1 输出到单元 4 4 4 的输入值 ;

( w 24 O 2 + b 2 ) (w_{24}O_2 + b_2 ) (w24O2+b2) 对应单元 2 2 2 输出到单元 4 4 4 的输入值 ;

( w 34 O 3 + b 3 ) (w_{34}O_3 + b_3 ) (w34O3+b3) 对应单元 3 3 3 输出到单元 4 4 4 的输入值 ;


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



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


计算单元 5 5 5 的输入值 :


① 计算过程 :

I 5 = ( w 15 O 1 + b 1 ) + ( w 25 O 2 + b 2 ) + ( w 35 O 3 + b 3 ) I_5 = (w_{15}O_1 + b_1 ) + (w_{25}O_2 + b_2 ) + (w_{35}O_3 + b_3 ) I5=(w15O1+b1)+(w25O2+b2)+(w35O3+b3)


② 连接权值 : w 15 , w 25 , w 35 w_{15} , w_{25} , w_{35} w15,w25,w35 是三条有向弧连接的权值 ; 如 w 15 w_{15} w15 是单元 1 1 1 与 单元 5 5 5 连接的权值 ;


③ 偏置 : b 1 , b 2 , b 3 b_1 , b_2, b_3 b1,b2,b3 分别是 单元 1 , 2 , 3 1 , 2 , 3 1,2,3 的偏置 ;


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


( w 15 O 1 + b 1 ) (w_{15}O_1 + b_1 ) (w15O1+b1) 对应单元 1 1 1 输出到单元 5 5 5 的输入值 ;

( w 25 O 2 + b 2 ) (w_{25}O_2 + b_2 ) (w25O2+b2) 对应单元 2 2 2 输出到单元 5 5 5 的输入值 ;

( w 35 O 3 + b 3 ) (w_{35}O_3 + b_3 ) (w35O3+b3) 对应单元 3 3 3 输出到单元 5 5 5 的输入值 ;


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



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


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

O 4 = 1 1 + e − I 4 O_4 = \dfrac{1}{1 + e^{-I_4}} O4=1+eI41

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

O 4 O_4 O4 代表单元 4 4 4 的输出值 ;

I 4 I_4 I4 代表单元 4 4 4 的输入值 ;



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


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

O 5 = 1 1 + e − I 5 O_5 = \dfrac{1}{1 + e^{-I_5}} O5=1+eI51

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

O 5 O_5 O5 代表单元 5 5 5 的输出值 ;

I 5 I_5 I5 代表单元 5 5 5 的输入值 ;



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


计算单元 6 6 6 的输入值 :


① 计算过程 :

I 6 = ( w 46 O 4 + b 4 ) + ( w 56 O 5 + b 5 ) I_6 = (w_{46}O_4 + b_4 ) + (w_{56}O_5 + b_5 ) I6=(w46O4+b4)+(w56O5+b5)


② 连接权值 : w 46 , w 56 w_{46} , w_{56} w46,w56 2 2 2 条有向弧连接的权值 ; 如 w 46 w_{46} w46 是单元 4 4 4 与 单元 6 6 6 连接的权值 ;


③ 偏置 : b 4 , b 5 b_4 , b_5 b4,b5 分别是 单元 4 , 5 4 , 5 4,5 的偏置 ;


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


( w 45 O 4 + b 4 ) (w_{45}O_4 + b_4 ) (w45O4+b4) 对应单元 4 4 4 输出到单元 6 6 6 的输入值 ;

( w 46 O 5 + b 5 ) (w_{46}O_5 + b_5 ) (w46O5+b5) 对应单元 5 5 5 输出到单元 6 6 6 的输入值 ;


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



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


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

O 6 = 1 1 + e − I 6 O_6 = \dfrac{1}{1 + e^{-I_6}} O6=1+eI61

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

O 6 O_6 O6 代表单元 6 6 6 的输出值 ;

I 6 I_6 I6 代表单元 6 6 6 的输入值 ;


O 6 O_6 O6 就是最终的分类结果 ;

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

闽ICP备14008679号