火炬中卷积神经网络的静态/恒定损耗

时间:2016-08-09 10:46:57

标签: machine-learning lua torch

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

问题是卷积网络的丢失在第一次迭代后不会下降。在迭代1之后,它在完全处保持相同的值。对于其他网络而言,情况并非如此 - Logistic回归。随着时间的推移,该网络的丢失确实会下降。

以下是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本身有关,而不是代码中的任何其他内容。

非常感谢任何建议。如果需要,我很乐意发布更多代码。

1 个答案:

答案 0 :(得分:1)

通常,如果在最小化损失函数时没有改进,则模型已经处于局部(全局)最小值。

这可能有几个原因,例如: 学习率正规化,数据在某种程度上不适合模型...... 仅仅基于模型很难说。

您是否在LogReg中使用完全相同的代码进行培训?

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