人工神经网络(ANN)训练与手写数字识别项目实践
1. ANN 训练模块介绍
在 ANN 的训练过程中,我们将使用 trainNet 模块,该模块会被添加到 ANN 类文件中。它的功能与 testNet 模块类似,都是基于输入数据集计算输出数据集,但 trainNet 模块使用的是预定的训练集,而非随机生成的数据集。
1.1 初始测试误差
初始测试误差能让我们了解网络在训练前的表现。以下是初始测试误差的示例:
| 输入 | 输出 | 误差 | 百分比误差 |
| ---- | ---- | ---- | ---- |
| 0.8 | 0.628566 | -0.171434 | 21.4 |
| 0.5 | 0.782561 | 0.282561 | 56.5 |
| 0.6 | 0.672449 | 0.072449 | 12.1 |
1.2 误差计算与权重更新
1.2.1 误差计算
计算得到的误差是训练集值与实际输出之间的差异。第 k 个输出节点的误差方程为:$e_k = t_k - o_k$,输出误差的矩阵表示为: self.eOutput = self.train - self.oOutput 。隐藏层误差数组的矩阵表示及 Python 代码如下:
self.hError = np.dot(self.wtgho.T, self.eOutput)
超级会员免费看
订阅专栏 解锁全文
34

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



