基于GPU的人工神经网络性能探究
1. 权重更新
权重的变化可以通过增量矩阵和节点值矩阵(添加了偏置项)的转置来计算。利用学习率 $\mu$ 和已定义的矩阵,给定层 $r$ 的所有权重(包括偏置权重)的变化可由以下公式给出:
$\Delta W_r = -\mu D_{r+1} \circ Y_r^T$
2. 数据表示
在编写代码之前,需要确定如何存储必要的数据。这里涉及权重矩阵、节点值矩阵和增量值矩阵。可以将同类矩阵按行顺序存储在数组中:
$Y = [Y_1, Y_2, \ldots, Y_L]$
$D = [D_1, D_2, \ldots, D_L]$
$W = [W_0, W_1, W_2, \ldots, W_L]$
需要注意的是,$W$ 的第一个元素索引为 0,而 $D$ 和 $Y$ 的第一个元素索引为 1。这是因为第 0 层是输入层,$W_0$ 表示从输入层到第一个隐藏层(如果没有隐藏层则到输出层)的权重。矩阵 $D$ 不计算输入层的增量值,因为输入本身没有误差。矩阵 $Y$ 可以有 $Y_0$,但它已经包含在作为输入的数组中,将其包含进来只是将数据从输入数组复制到 $Y_0$,会浪费时间。
使用多维数组来表示数据可以直观地访问信息。设 $y_{r,j}(i)$ 是训练对 $i$ 中第 $r$ 层节点 $j$ 的值,$\delta_{r,j}(i)$ 是同一节点和训练对的增量值。存储在数组中后,可分别通过 $Y [r - 1][j][i]$ 和 $D [r - 1][j][i]$ 访问这些信息。需要从行索引中减去 1,因为数组使用基于 0 的索引,而这些数组的第一个元素索引为 1。设
基于GPU的人工神经网络性能探究
超级会员免费看
订阅专栏 解锁全文
2243

被折叠的 条评论
为什么被折叠?



