在大多数的神经网络教科书中,神经网络一般都会使用 y = WX+B 或者 y = XW+B 的形式。但是在 tensorflow 或者 theano 中,神经网络的实现都是采用了 y = XW+B 的形式。这是为什么呢?我花了很多的时间去查找资料,最后发现一点,可能是 y = XW+B 计算导数比 y = WX+B 容易。
从理论上讲,XW+B 和 WX+B 在神经网络中是等价的(其实就是一个矩阵的转置)。然而,当我们计算两者的导数的时候却差别很大。我们通过具体的数学推导来感受一下吧。
比如:y = XW
![10012344_gUJT.png](https://static.oschina.net/uploads/img/201709/10012344_gUJT.png)
比如:y = WX
![10012353_985C.png](https://static.oschina.net/uploads/img/201709/10012353_985C.png)