是神经网络词汇量小好吗?

问题描述 投票:1回答:1

我设计一个神经网络,试图产生的音乐。神经网络将是一个2层LSTM(长短期记忆)。我希望能在音乐编码成许多热格式进行训练,也就是说,它会是一个1,如果该说明被打和0,如果该说明是不是在玩。以下是对这个数据看起来像一个摘录:

0000000000000000000000000000000000000000000000000001000100100001000000000000000000000000
0000000000000000000000000000000000000000000000000001000100100001000000000000000000000000
0000000000000000000000000000000000000000000000000001000100100001000000000000000000000000
0000000000000000000000000000000000000000000000000001000100100001000000000000000000000000
0000000000000000000000000000000000000000000000000001000100100001000000000000000000000000
0000000000000000000000000000000000000000000000000011010100100001010000000000000000000000

有88列代表88个音符和每一个现在代表一个新的节拍。输出将是在一个字符的水平。

我只是想知道,因为有在词汇量只有2个字符,将一个0是下一个永远的概率会比1被旁边的概率更高?我知道大量的词汇,需要一个大的训练集,但我只有一个小词汇量。我有229个文件,相当于约50000文本行。这是否足以防止输出为全0?

此外,这将是更好的有88个节点,1对每个音符,或一个字符的时间只有一个节点?

提前致谢

machine-learning neural-network lstm recurrent-neural-network one-hot-encoding
1个回答
1
投票

只要词汇量小是细如数据集中不压倒性偏斜的“字”之一。

至于“会是更好的有88个节点,1对每个音符,或在同一时间?一个字只有一个节点”,每个时间步长被表示为88个字符。每个字符是时间步长的特点。你LSTM应该是输出下一时间步长,所以你应该有88个节点。每个节点应输出该节点存在于该时间步长的概率。

最后,因为你正在建设一个炭火RNN我会强烈建议使用abc notation来表示你的数据。在ABC符号一首歌是这样的:

X:1
T:Speed the Plough
M:4/4
C:Trad.
K:G
|:GABc dedB|dedB dedB|c2ec B2dB|c2A2 A2BA|
  GABc dedB|dedB dedB|c2ec B2dB|A2F2 G4:|
|:g2gf gdBd|g2f2 e2d2|c2ec B2dB|c2A2 A2df|
  g2gf g2Bd|g2f2 e2d2|c2ec B2dB|A2F2 G4:|

这是完美的炭火RNNs因为它代表了每首歌曲为一组字符,你可以运行从MIDI转换到ABC,反之亦然。所有你需要做的就是训练你的模型来预测此序列,而不是处理88个输出节点的下一个字符。

© www.soinside.com 2019 - 2024. All rights reserved.