第二篇 三层神经网络的实例和数学原理

预先知识

  1. 理解线性映射
  2. 矩阵运算(会计算当然好,也不难,但重要性不大)

由于markdown或mathjax很难制作流程图,插入图片的话,我的博客嵌入图片比较麻烦,就先不画三层的神经网络,不过也不难,可以自行在草稿纸上画神经网络

实例三层神经网络

1. 输入层到隐藏层

对于输入矩阵I:

$$I = \begin{bmatrix}
0.9\\
0.1\\
0.8\\
\end{bmatrix}$$

输入到中间层的组合调节信号:

$$X = W * I$$

第一层到第二层的权重矩阵

$$W_{input_hidden} = \begin{bmatrix}
0.9 & 0.3 & 0.4\\
0.2 & 0.8 & 0.2\\
0.1 & 0.5 & 0.6\\
\end{bmatrix}$$

所以第一层到第二层运算

$$X_{hidden} =
\begin{bmatrix}
0.9 & 0.3 & 0.4\\
0.2 & 0.8 & 0.2\\
0.1 & 0.5 & 0.6\\
\end{bmatrix}
*
\begin{bmatrix}
0.9\\
0.1\\
0.8\\
\end{bmatrix}
=
\begin{bmatrix}
1.16\\
0.42\\
0.62\\
\end{bmatrix}
$$

激活函数S:
$$O_{hidden} = sigmoid(X_{hidden})$$

第二层隐藏层输出矩阵

$$O_{hidden} = \begin{bmatrix}
0.761\\
0.603\\
0.650\\
\end{bmatrix} $$

2. 隐藏层到输出层

中间层到输出层的组合调节信号:

$$X_{output} = W_{hiddenOutput}* O_{hidden}$$

第二层到第三层的权重矩阵

$$W_{outputHidden} = \begin{bmatrix}
0.3 & 0.7 & 0.5\\
0.6 & 0.5 & 0.2\\
0.8 & 0.1 & 0.9\\
\end{bmatrix}$$

所以第二层到第三层运算

$$X_{output} =
\begin{bmatrix}
0.3 & 0.7 & 0.5\\
0.6 & 0.5 & 0.2\\
0.8 & 0.1 & 0.9\\
\end{bmatrix}
*
\begin{bmatrix}
0.761\\
0.603\\
0.650\\
\end{bmatrix}
=
\begin{bmatrix}
0.975\\
0.888\\
1.254\\
\end{bmatrix}
$$

输出矩阵为:

$$O_{output} = sigmoid\begin{pmatrix}
0.975\\
0.888\\
1.254\\
\end{pmatrix}$$

$$O_{output} = \begin{pmatrix}
0.726\\
0.708\\
0.778\\
\end{pmatrix}$$

这样子我们就得到了神经网络的最终输出信号

下一步我们所需要的就是不断训练来改进神经网络


 上一篇
神经网络的数据表示——张量 神经网络的数据表示——张量
引言用数学量来表示物理量,可是标量加上向量,都不足以表达所有的物理量,几何代数中定义的张量是基于向量和矩阵的推广,所以就需要扩大数学量的概念,张量就出现了。 这里我将配合python的numpy库,帮助理解张量 预先环境1. numpy 2
2019-07-23
下一篇 
第一篇 神经网络的工作原理 第一篇 神经网络的工作原理
1.1 灵感来源 一方面,有些任务,对传统的计算机而言很简单,对人类却很难。例如对数百万个数字进行运算。另一方面,有些任务对传统的计算机而言很难,对人类却很容易,比如从人群中识别认识的面孔 对于执行与计算器相匹配的任务来说,计算销售额,绘
2019-07-20
  目录