Neural network 为什么tanh在简单神经网络中的性能优于relu
以下是我的方案Neural network 为什么tanh在简单神经网络中的性能优于relu,neural-network,Neural Network,以下是我的方案 我使用过EMNIST英文大写字母数据库。 我的神经网络如下所示 输入层有784个神经元,它们是图像28x28灰度图像的像素值除以255,因此值将在[0,1]范围内 隐藏层有49个神经元与先前的784完全连接 输出层有9个表示图像类别的神经元 损耗函数定义为输出层softmax的交叉熵。 将所有权重初始化为[-1,+1]中的随机实数 现在,我为每堂课做了500个固定样本的培训 简单地说,将500x9图像传递给训练函数,该函数使用backpropagation,并通过learning
我使用过EMNIST英文大写字母数据库。
我的神经网络如下所示
将所有权重初始化为[-1,+1]中的随机实数
500x9
图像传递给训练函数,该函数使用backpropagation
,并通过learning\u rate*derivative\u loss\u wrt\u correlated\u weight
改变权重进行100次迭代
我发现当我在神经元上使用tanh激活时,网络的学习速度比relu快,学习速度0.0001
我的结论是,因为tanh比relu在固定测试数据集上的准确性更高。此外,tanh在100个时期后的损失值略低
雷卢的表现不是更好吗
雷卢的表现不是更好吗
一般来说,没有。RELU在很多问题上都会表现得更好,但不是所有的问题
此外,如果您使用经过优化的体系结构和参数集,以便在一个激活函数中运行良好,那么在切换到另一个激活函数后,您可能会得到更糟糕的结果
通常,您需要调整架构和参数(如学习率),以获得可比的结果。这可能意味着更改示例中隐藏节点的数量和/或学习速率
最后一点注意:在我所看到的MNIST示例架构中,具有RELU激活的隐藏层后面通常是退出层,而具有sigmoid或tanh激活的隐藏层则不是。尝试在隐藏层后添加dropout,看看这是否会改善RELU的效果。请参阅Keras MNIST示例。我的输出目标变量Y由介于-1和1之间的浮动值组成。因此,我愿意在keras深度学习模型的最后一层使用“tanh”激活功能。在这种情况下,首选哪种“损失函数”?