一、一些有关神经网络的符号约定
这个在上篇blog中提了一部分,这里补充剩下的一部分
我们对于加权函数一般记为z=w^T x+b,而激活函数一般使用a=g(z)表示
对于最终的输出我们不妨记为y hat,尽管这个真的没有什么特别的意义
二、神经网络的向量化
在之前的学习中我们知道,无论是从书写计算等使用者的角度出发,还是从计算机尤其是python语言所自带的numpy包计算特性的角度出发,使用向量化计算整个神经网络是很有必要的。
我们模仿之前学习中所使用的那种向量化的方法即可完成我们所预定的目标。
对于这个具体的例子,我们可以把每一层看做一列,所以每一层的同种系数(w b)一次写下来自然就是一个列向量。
然后对于每组测试数据,我们可以吧系数横着写过来。于是就形成了一个系数矩阵。
同理激活函数也可以跟系数一样写成一个列向量的形式。
这里的处理难度不是很大,但背后的意义却很大。
首先如上文所言,向量化能加快整个神经网络在编程实现时的运算速度,而运算速度很大程度上决定了一个神经网络的性能。
其次,这种向量化的思路其实在某种程度上蕴藏了一种等价的思想,即每种系数内部之间两两是等价的,这个其实用白话来说就是我们在随后的计算中,只要完成了某个变量的关系式,其余的同列的关系式直接for循环即可,这对于简化思维难度也很有帮助。