从零开始实现多层人工神经网络对手写数字进行分类
1. 神经网络计算的泛化
我们可以将计算泛化到训练数据集中的所有 $n$ 个示例:
- $\mathbf{Z}^{(h)} = \mathbf{A}^{(in)}\mathbf{W}^{(h)}$
这里,$\mathbf{A}^{(in)}$ 是一个 $n \times m$ 的矩阵,矩阵乘法将得到一个 $n \times d$ 维的净输入矩阵 $\mathbf{Z}^{(h)}$。
- 最后,我们对净输入矩阵中的每个值应用激活函数 $\phi(\cdot)$,以得到下一层(这里是输出层)的 $n \times d$ 激活矩阵:
$\mathbf{A}^{(h)} = \phi(\mathbf{Z}^{(h)})$
同样,我们可以用向量化形式为多个示例写出输出层的激活:
- $\mathbf{Z}^{(out)} = \mathbf{A}^{(h)}\mathbf{W}^{(out)}$
这里,我们将 $d \times t$ 矩阵 $\mathbf{W}^{(out)}$($t$ 是输出单元的数量)与 $n \times d$ 维矩阵 $\mathbf{A}^{(h)}$ 相乘,以获得 $n \times t$ 维矩阵 $\mathbf{Z}^{(out)}$(此矩阵中的列表示每个样本的输出)。
- 最后,我们应用 sigmoid 激活函数以获得网络的连续值输出:
$\mathbf{A}^{(out)} = \phi(\mathbf{Z}^{(out)})$,$\mathbf{A}^{(out)} \in \mathbb{R}^{n \times t}$
超级会员免费看
订阅专栏 解锁全文
2093

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



