【发布时间】:2018-07-04 04:59:46
【问题描述】:
如果我很好理解 RNN 允许考虑序列中的最后一个值来预测下一个值。假设我想预测函数 cos(x) 的下一个值,并且我有一个数据集,其中 x 的结果在 range(0, 1000) 内。首先,我向模型提供 cos(0) 以预测 cos(1),然后为模型提供 cos(1) 以预测 cos(2) 等。在每一步调整权重,模型保留最后一个值的记忆做出下一个预测。
就我而言我想训练一个模型来预测视频的质量。为此,我有一个带有视频注释的数据集。对于每个视频,对于每一帧,我计算了一组 36 个在空间上不相关的特征。所以输入的形状是 (nb_videos, nb_frames, 36)。对于每个视频,我都有一个代表全球视频质量的分数,标签的形状是 (nb_videos, 1)。
我不知道我可以使用哪种神经网络。我认为 n_frames x 36 对于一个简单的多层感知器来说太大了。特征可能在时间轴上有意义,但在特征轴上没有意义,所以除非我用一维卷积训练 36 个模型,否则 CNN 是没用的。最后,特征出现在一个序列中,但 RNN 的问题是它需要为序列的每个元素打分,并且该模型仅适用于预测该序列中的下一个值。
我的想法是拥有 1 个针对任何视频进行训练的 RNN 模型。我以良好的顺序将 36 个特征提供给 RNN n_frames 次,并且只有在这些 n_frames 迭代之后,模型才会给出预测。然后这个预测被用来调整权重。然后我们在数据集中随机选择视频的 epoch 数。
有意义吗?
是否存在类似的东西?
【问题讨论】:
标签: machine-learning keras recurrent-neural-network