矩阵乘法涉及两个矩阵:左矩阵
A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}, \quad B = \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix}
A=[1324],B=[5768]
使用 NumPy 库的 np.dot()
函数,我们可以得到矩阵
X = \begin{bmatrix} 1 \\ 2 \end{bmatrix}, \quad W = \begin{bmatrix} 1 & 3 & 5 \\ 2 & 4 & 6 \end{bmatrix}
X=[12],W=[123456]
这里,
Y = X^T W = \begin{bmatrix} 1 & 2 \end{bmatrix} \begin{bmatrix} 1 & 3 & 5 \\ 2 & 4 & 6 \end{bmatrix} = \begin{bmatrix} 5 & 11 & 17 \end{bmatrix}
Y=XTW=[12][123456]=[51117]
这里,
这一章的知识点其实相当于知识总结,因为基础的内容基本已经在前面的章节中探讨过。但是我这两天思考了一下,觉得有必要把神经元的知识点全部抓出来讨论一下,做一个相当于系统性的概述,这样我们在之后的讨论中,就不会涉及到太多数学性的话题,而更多的可以放在拓扑结构或其他内容上了,比如具体的应用上。
文章目录关于前面内容的回顾构建复杂的函数模型矩阵与并行计算计算图与神经元网络的关系
关于前面内容的回顾
首先,在前面的章节里,我论述过一个完整的神经元的计算单元,其运算过程如下:
Created with Raphaël.
在《深度学习入门:基于Python的理论与实现》书中,看到讲解矩阵的章节,加深了我对矩阵的理解。
脱离应用理解数学是很难的。将矩阵放在深度学习的环境里可以较好的理解矩阵的含义。
这里假设你已经学过矩阵。
1.三层神经网络
对于神经网络,我更倾向于理解为:因素(输入层)、影响因子(权重),结果(输出层),这更贴近实际中的因果关系。
先假设有如下矩阵:
根据矩阵的计算规则,画出模型图,如下:
输入层是 x1 与 x2,可理解为因素,对于每个因素,都有3个权重,组合起来会导致3个结果..
对于学过线性代数的人来说,矩阵运算绝对算得上是一场噩梦。特别是做矩阵乘法时,两个大方块,每个方块里面有好多数字,你需要把一个方块中一行里的所有数字跟另一个方块里面的所有数字做乘法,然后再求和,头昏脑涨的算了半天才得到新矩阵的一个数值,忙活了半天,耗费了大量精力后,你发现居然算错了,只能再来一遍,那时候我想你恨不得一把火把代数课本付之一炬。
上一节,我们手动计算了一个只有两层,每层只有两个节点的神...
Z[1]=W[1]∗X+b[1]
各矩阵维度:
Z[1]:(n[1],1):(3,1)X:(n[0],1):(2,1)W[1]:(n[1],n[0]):(3,2)b[1]:(n[1],1):(3,1)
Z^{[1]}: (n^{[1]},1):(3,1)\\
X:(n^{[0]},1):(2,1)\\
W^{[1]}:(n^{[1]},n^{[0]}):(3,2)\\
b^{[1
控制台报错Access to XMLHttpRequest at ‘http://‘ from origin ‘http://‘ has been blocked by CORS policy