
摘要
神经网络分类的监督训练通常使用全局损失函数进行。损失函数为输出层提供梯度,该梯度通过反向传播到隐藏层来指导权重的更新方向。另一种方法是使用逐层损失函数来训练网络。在本文中,我们首次证明了逐层训练可以在多种图像数据集上接近最先进的水平。我们使用单层子网络和两种不同的监督损失函数来生成隐藏层的局部误差信号,并展示了这些损失函数的组合有助于在局部学习背景下进行优化。利用局部误差可能是实现更符合生物学原理的深度学习的一个步骤,因为全局误差不需要再传输回隐藏层。一种完全不依赖反向传播的方法在追求更高生物学合理性的方法中表现优于之前报道的结果。代码可从以下地址获取:https://github.com/anokland/local-loss
代码仓库
ai-tech-research-lab/nitro-d
GitHub 中提及
anokland/local-loss
官方
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| image-classification-on-cifar-10 | VGG11B(2x) + LocalLearning + CO | Percentage correct: 96.4 |
| image-classification-on-cifar-100 | VGG11B(3x) + LocalLearning | Percentage correct: 79.9 |
| image-classification-on-fashion-mnist | VGG8B(2x) + LocalLearning + CO | Percentage error: 4.14 |
| image-classification-on-kuzushiji-mnist | VGG8B(2x) + LocalLearning + CO | Accuracy: 99.01 Error: 0.99 |
| image-classification-on-mnist | VGG8B + LocalLearning + CO | Percentage error: 0.26 |
| image-classification-on-stl-10 | VGG8B + LocalLearning + CO | Percentage correct: 80.75 |
| image-classification-on-svhn | VGG8B + LocalLearning + CO | Percentage error: 1.65 |