我有一维时间序列分类问题,我已将数据导入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本身有关,而不是代码中的任何其他内容。
非常感谢任何建议。如果需要,我很乐意发布更多代码。
答案 0 :(得分:1)
通常,如果在最小化损失函数时没有改进,则模型已经处于局部(全局)最小值。
这可能有几个原因,例如: 学习率,正规化,数据在某种程度上不适合模型...... 仅仅基于模型很难说。
您是否在LogReg中使用完全相同的代码进行培训?
您可以查看本教程以获取有关temporalConvolution的一些信息: http://supercomputingblog.com/machinelearning/an-intro-to-convolutional-networks-in-torch/