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

2023-03-27 19:38:53 浏览数 (1)

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

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

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

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

① 输入层 :

3

个 神经元单元 ( 节点 ) , 分别是

1 , 2, 3

节点 ; 输入属性是经过规范化的属性值 , 取值

[0, 1]

;

② 隐藏层 :

2

个 神经元单元 ( 节点 ) , 分别是

4 , 5

节点 , 输入层 与 隐藏层 是全连接方式 ;

③ 输出层 :

1

个 单元 ,

6

节点 ;

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

① 输入属性 : 是规范化为

[0, 1]

区间的值 ;

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

③ 连接权值 : 每两个节点间的连接都有一个权值 , 使用

w_{ij}

表示 , 如

w_{14}

表示节点

1

和节点

4

之间连接的权值 ;

④ 偏置 : 输入层 和 隐藏层 的节点 , 每个节点都有一个偏置属性 , 如节点

1

偏置表示为

b_1

;

输入输出表示 :

① 输入表示 : 使用

I_1

表示输入 ,

I

是 Input 输入 单词首字母 ,

I_1

表示第

1

个节点的输入 ;

② 输出表示 : 使用

O_1

表示输出 ,

O

是 Output 输出单词首字母 ,

O_1

表示第

1

个节点的输出 ;

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

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

输入值 O_j = 输出值 I_j = 样本属性值 X_j
O_j = I_j = X_j
j

代表单元的索引值 ;

O_j

代表单元输入值 ;

I_j

代表单元的输出值 ;

X_j

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

规范化属性值 : 这个属性值

X_j

是经过规范化的 , 一般是

[0, 1]

区间内的值 ;

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

输入层计算 : 输入层的输出值

O_i

就是输入值

I_i

,

i = 1 , 2 , 3

;

① 节点

1

计算 :

I_1

表示节点

1

输入 ,

O_1

表示节点

1

输出 , 其中

I_1 = O_1 = 输入样本值 X

;

② 节点

2

计算 :

I_2

表示节点

2

输入 ,

O_2

表示节点

2

输出 , 其中

I_2 = O_2 = 输入样本值 X

;

③ 节点

3

计算 :

I_3

表示节点

3

输入 ,

O_1

表示节点

3

输出 , 其中

I_1 = O_3 = 输入样本值 X

;

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

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

单个单元输入计算公式方式 ( 重要 ) : 如果有多个上层单元连接本层的 单元

j

, 只有一个单元 , 可以使用下面的公式计算 , 如果上层有多个单元连接本单元 , 本公式不适用 , 需要多个输入值累加 ;

输入值 = 上一层单元输出值 times 连接权值 偏置

单元

j

的上层有多个单元连接的输入值计算方式 :

I_j = sum_{i = 1}^{n} ( w_{ij} O_i theta_i )
i = 1 , cdots , n
I_j

表示单元

j

的输入 ;

n

表示前一层有

n

个单元与 本层的 单元

j

连接 ;

n geq 0

;

i

表示前一层的单元索引 ;

w_{ij}

表示 前一层的单元

i

与本层的连接的 权值 ;

O_i

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

theta_i

表示上一层单元

i

的偏置 , 该值通常与连接权值组合使用 , 可以看做是连接的附属属性 , 这样好理解 ;

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

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

O_j = dfrac{1}{1 e^{-I_j}}

Sigmoid 是非线性激活函数 , 作用是将全体实数 映射到

(0,1)

区间上 , 这样就能保证输出的值是一个

(0 , 1)

之间的值 ;

O_j

代表单元

j

的输出值 ;

I_j

代表单元

j

的输入值 ;

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

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

2 . 计算单元

4

的输入值 :

① 计算过程 :

I_4 = (w_{14}O_1 b_1 ) (w_{24}O_2 b_2 ) (w_{34}O_3 b_3 )

② 连接权值 :

w_{14} , w_{24} , w_{34}

是三条有向弧连接的权值 ; 如

w_{14}

是单元

1

与 单元

4

连接的权值 ;

③ 偏置 :

b_1 , b_2, b_3

分别是 单元

1 , 2 , 3

的偏置 ;

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

(w_{14}O_1 b_1 )

对应单元

1

输出到单元

4

的输入值 ;

(w_{24}O_2 b_2 )

对应单元

2

输出到单元

4

的输入值 ;

(w_{34}O_3 b_3 )

对应单元

3

输出到单元

4

的输入值 ;

⑤ 汇总输入值 : 单元

4

的总的输入值就是上述三个值的累加 ;

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

计算单元

5

的输入值 :

① 计算过程 :

I_5 = (w_{15}O_1 b_1 ) (w_{25}O_2 b_2 ) (w_{35}O_3 b_3 )

② 连接权值 :

w_{15} , w_{25} , w_{35}

是三条有向弧连接的权值 ; 如

w_{15}

是单元

1

与 单元

5

连接的权值 ;

③ 偏置 :

b_1 , b_2, b_3

分别是 单元

1 , 2 , 3

的偏置 ;

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

(w_{15}O_1 b_1 )

对应单元

1

输出到单元

5

的输入值 ;

(w_{25}O_2 b_2 )

对应单元

2

输出到单元

5

的输入值 ;

(w_{35}O_3 b_3 )

对应单元

3

输出到单元

5

的输入值 ;

⑤ 汇总输入值 : 单元

5

的总的输入值就是上述三个值的累加 ;

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

计算单元

4

输出值 : 使用 Sigmoid 激活函数将输入值转为输出值 ;

O_4 = dfrac{1}{1 e^{-I_4}}

Sigmoid 是非线性激活函数 , 作用是将全体实数 映射到

(0,1)

区间上 , 这样就能保证输出的值是一个

(0 , 1)

之间的值 ;

O_4

代表单元

4

的输出值 ;

I_4

代表单元

4

的输入值 ;

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

计算单元

5

输出值 : 使用 Sigmoid 激活函数将输入值转为输出值 ;

O_5 = dfrac{1}{1 e^{-I_5}}

Sigmoid 是非线性激活函数 , 作用是将全体实数 映射到

(0,1)

区间上 , 这样就能保证输出的值是一个

(0 , 1)

之间的值 ;

O_5

代表单元

5

的输出值 ;

I_5

代表单元

5

的输入值 ;

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

计算单元

6

的输入值 :

① 计算过程 :

I_6 = (w_{46}O_4 b_4 ) (w_{56}O_5 b_5 )

② 连接权值 :

w_{46} , w_{56}

2

条有向弧连接的权值 ; 如

w_{46}

是单元

4

与 单元

6

连接的权值 ;

③ 偏置 :

b_4 , b_5

分别是 单元

4 , 5

的偏置 ;

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

(w_{45}O_4 b_4 )

对应单元

4

输出到单元

6

的输入值 ;

(w_{46}O_5 b_5 )

对应单元

5

输出到单元

6

的输入值 ;

⑤ 汇总输入值 : 单元

6

的总的输入值就是上述三个值的累加 ;

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

计算单元

6

输出值 : 使用 Sigmoid 激活函数将输入值转为输出值 ;

O_6 = dfrac{1}{1 e^{-I_6}}

Sigmoid 是非线性激活函数 , 作用是将全体实数 映射到

(0,1)

区间上 , 这样就能保证输出的值是一个

(0 , 1)

之间的值 ;

O_6

代表单元

6

的输出值 ;

I_6

代表单元

6

的输入值 ;

O_6

就是最终的分类结果 ;

0 人点赞