gpt4 book ai didi

machine-learning - RNN/LSTM 的非常规使用

转载 作者:行者123 更新时间:2023-11-30 09:06:22 24 4
gpt4 key购买 nike

如果我很好理解,RNN 允许考虑序列中的最后一个值来预测下一个值。假设我想预测函数 cos(x) 的下一个值,并且我有一个数据集,其中 x 的结果在范围 (0, 1000) 内。首先,我用 cos(0) 来预测 cos(1),然后用 cos(1) 来预测 cos(2) 等等。在每一步中,都会调整权重,并且模型会记住最后的值做出下一个预测。

就我而言我想训练一个模型来预测视频的质量。为此,我有一个带有注释视频的数据集。对于每个视频的每个帧,我计算一组 36 个在空间上不相关的特征。所以输入的形状是(nb_videos,nb_frames,36)。对于每个视频,我都有一个代表全局视频质量的分数,标签的形状为 (nb_videos, 1)。

我不知道我可以使用哪种神经网络。我认为 n_frames x 36 对于简单的多层感知器来说太大了。特征沿时间轴可能有意义,但沿特征轴则不然,因此除非我使用 1D 卷积训练 36 个模型,否则 CNN 毫无用处。最后,特征出现在一个序列中,但 RNN 的问题是它需要序列中每个元素的分数,并且该模型仅用于预测该序列中的下一个值。

我的想法是拥有 1 个针对任何视频进行训练的 RNN 模型。我按照良好的顺序向 RNN 提供 n_frames 次 36 个特征,只有在这些 n_frames 迭代之后,模型才会给出预测。然后使用该预测来调整权重。然后我们用数据集中随机挑选的视频来计算纪元数。

有意义吗?

是否存在类似的东西?

最佳答案

我认为您并没有非常规地使用 RNN/LSTM,而且您的想法是有道理的。如果我理解正确的话,你的想法涉及使用多对一 RNN:

Many to one RNN来源:http://karpathy.github.io/2015/05/21/rnn-effectiveness/

其中每个时间步的输入对应于具有 36 个特征的一帧,最后一个时间步的输出传达有关整个视频的信息。在 Keras 中,这可能类似于:

from keras.models import Sequential
from keras.layers import LSTM, Dense

nb_frames = 10

model = Sequential()
model.add(LSTM(20, input_shape=(nb_frames, 36)))
model.add(Dense(1, activation='relu'))
model.compile('rmsprop', 'mse')
model.summary()

多对一 RNN 非常常见,您不会非常规地使用它们。

关于machine-learning - RNN/LSTM 的非常规使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51166051/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com