学号:20021110085 姓名:郑佳
转载:https://blog.csdn.net/qilei2010/article/details/106117322
【嵌牛导读】要想深入理解卷积神经网络,其实一些常见的矩阵相关知识必须掌握。
【嵌牛鼻子】【神经网络】神经网络中的矩阵的理解
【嵌牛正文】
在《深度学习入门:基于Python的理论与实现》书中,看到讲解矩阵的章节,加深了我对矩阵的理解。
脱离应用理解数学是很难的。将矩阵放在深度学习的环境里可以较好的理解矩阵的含义。
这里假设你已经学过矩阵。
对于神经网络,我更倾向于理解为:因素(输入层)、影响因子(权重),结果(输出层),这更贴近实际中的因果关系。
先假设有如下矩阵:
根据矩阵的计算规则,画出模型图,如下:
输入层是 x1 与 x2,可理解为因素,对于每个因素,都有3个权重,组合起来会导致 3个结果。
权重矩阵的第一行(1,2,3),从图中可以看出是 从 x1 伸出的三条黑线,是 作用于 x1 的所有权重,分别会影响R1、R2、R3。
权重矩阵的第一列(1,4),从图中可以看出是指向 结果R1 的两条输入线,是仅影响 R1 的全部权重。
总结一下,权重矩阵也可以这么理解:
权重矩阵的每行对应一个因素。每行的数字是作用于某个因素的所有权重。
权重矩阵的每列对应一个结果。每列的数字是影响某个结果的全部权重。
知道这个,就很容易理解权重矩阵与输入层和输出层元素个数的关系了。
若输入层有2个元素,输出需要有3个元素,那么权重矩阵就必须是 2行3列。2行对应2个输入因素,3列对应3个结果。
前面讲的矩阵运算,左矩阵是一维矩阵,如果是二维、三维,如何理解呢?
输入层怎么会出现二维呢?会的,如果我们进行批量处理,即处理完(x1,x2)这对因素,我们还要处理(y1,y2)等因素,就可以组合成二维或多维矩阵形式。每一行就代表一个要处理的二元因素。每行因素之间没有任何联系,也互不影响,只是纯粹的计算方便,而摞在一起。
从上面一段话可以看出来,其实每行的数据,是没有任何关联的。上式可理解为下面二式的简略写法。
所以,我们可以像前面的结论一样,这么理解多维的输入层矩阵运算:
输入矩阵的每行对应一次运算,各行互不关联、互不影响。
每次只考虑一行,最后将结果摞在一起。
最后,个人理解,矩阵纯粹就是人为定义的数据的排列方式而已,矩阵的乘法就是人为定义的计算规则。矩阵就只是个数学大师们发明的趁手的工具,没有任何的自然意义,有点像计算机领域的语法糖。
以上仅为个人理解,欢迎指正。