【发布时间】:2017-08-02 13:10:42
【问题描述】:
我正在学习神经网络,在此过程中,我实现了一些完全连接的网络。我通常在输入矩阵中添加一个column bias units(1s),在权重矩阵中添加一个extra row of weights,因为这是我在参加在线课程后学会实现神经网络的方式,但在 github 上的许多实现中,我发现它也可以是无需在矩阵中插入偏置单元即可实现,但可以单独添加:XW + b,其中 b 是偏置单元。
我不明白它是如何工作的。这似乎是一个更好,更有效的实现,但我不明白。例如,考虑以下示例:
1 2 3 4 0.5 0.5
X = 1 4 5 6 W= 2 3 X*W = [4x2 matrix]
1 8 9 5 5 8
2 3
The first column in X is bias unit and so is the first row in W
但是如果没有直接插入偏差列而是单独添加它,它会变成:
2 3 4 2 3
X= 4 5 6 W= 5 8 b = 0.5 0.5 X*W = [3x2 matrix]
8 9 5 2 3
从第二个表达式可以明显看出X*W+b不等于第一个表达式。而且b,1x2 matrix不能添加到X*W,即3x2 matrix。
那么,我如何使用第二种方法实现偏差?
【问题讨论】:
标签: matrix machine-learning neural-network linear-algebra matrix-multiplication