Torch 中卷积神经网络的静态/常数损失

我有一个一维时间序列分类问题,并将数据导入 Torch。我编写了两个不同的网络来学习数据。每行标记为 1 或 0。

问题是卷积网络的损失在第一次迭代后不会下降。在迭代一后,它仍然保持在 完全 相同的值。对于另一个网络 - 逻辑回归 - 并非如此。该网络的损失随时间而下降。

下面是 ConvNet:

model = nn.Sequential()

for i = 1, iteration do
    model:add(nn.TemporalConvolution(1,1,3,1))
    model:add(nn.BatchNormalization(1))
    model:add(nn.ReLU())
    model:add(nn.TemporalMaxPooling(3,2))
    if i == iteration then
            model:add(nn.Sigmoid())
    end
end

由于 LogReg 的损失会下降,我认为问题与 ConvNet 本身有关,而不是代码中的其他内容。

如有需要,我很乐意发布更多代码。

点赞
用户5036761
用户5036761

通常情况下,如果在最小化损失函数时没有改进,那么模型已经达到了局部(全局)最小值。

这可能有几个原因,例如学习率、正则化、数据在某种程度上不适合模型等等。仅仅依据模型很难说清楚。

您在 LogReg 的训练中使用了完全相同的代码吗?

您可以查看这个教程获取关于 temporalConvolution 的一些信息: http://supercomputingblog.com/machinelearning/an-intro-to-convolutional-networks-in-torch/

2016-08-12 09:20:44