首页 > 解决方案 > 训练修改后的全连接神经网络

问题描述

以一个简单的 3 层 MLP 神经网络为例。每个隐藏层都实现y=xw+by形状层的输出激活矩阵,形状[batch_size, output_size]x输入激活矩阵,形状[batch_size, input_size]w可训练权重矩阵和形状[input_size, output_size]b可训练偏差向量[output_size]

现在修改层定义,以便每个层实现y = x(w mod m) + bwherem是一个可训练矩阵,其形状与 相似w且相同w。由于 tensorflow 为反向传播实现了模函数的梯度,因此由于添加的模而传播梯度应该不是问题。在网络中进行这种相当微不足道的修改会破坏 MLP,并且网络完全停止学习。换句话说,MNIST(10 位分类)的准确率下降到约 10%,相当于随机猜测。

有人会猜测为什么网络无法与添加的mod运营商一起学习吗?我能够实现y=xw + (b mod m)哪个工作得很好。该问题似乎仅在mod与该xw术语一起使用时出现。

标签: pythontensorflowneural-network

解决方案


推荐阅读