Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Machine learning 神经网络的小词汇可以吗?_Machine Learning_Neural Network_Lstm_Recurrent Neural Network_One Hot Encoding - Fatal编程技术网

Machine learning 神经网络的小词汇可以吗?

Machine learning 神经网络的小词汇可以吗?,machine-learning,neural-network,lstm,recurrent-neural-network,one-hot-encoding,Machine Learning,Neural Network,Lstm,Recurrent Neural Network,One Hot Encoding,我正在设计一个神经网络来尝试生成音乐。神经网络将是一个2层LSTM(长-短期记忆)。 我希望能将音乐编码成一种非常热门的格式进行训练,即如果该音符正在播放,则为1;如果该音符未播放,则为0。 以下是这些数据的摘录: 0000000000000000000000000000000000000000000000000001000100100001000000000000000000000000 00000000000000000000000000000000000000000000000000010

我正在设计一个神经网络来尝试生成音乐。神经网络将是一个2层LSTM(长-短期记忆)。 我希望能将音乐编码成一种非常热门的格式进行训练,即如果该音符正在播放,则为1;如果该音符未播放,则为0。 以下是这些数据的摘录:

0000000000000000000000000000000000000000000000000001000100100001000000000000000000000000
0000000000000000000000000000000000000000000000000001000100100001000000000000000000000000
0000000000000000000000000000000000000000000000000001000100100001000000000000000000000000
0000000000000000000000000000000000000000000000000001000100100001000000000000000000000000
0000000000000000000000000000000000000000000000000001000100100001000000000000000000000000
0000000000000000000000000000000000000000000000000011010100100001010000000000000000000000
共有88列,代表88个音符,现在每列代表一个新的节拍。输出将处于字符级别

我只是想知道,既然词汇表中只有2个字符,那么0表示下一个字符的概率是否总是高于1表示下一个字符的概率? 我知道对于一个大的词汇量,需要一个大的训练集,但我只有一个小的词汇量。我有229个文件,对应大约50000行文本。这足以防止输出都是0吗

另外,最好是88个节点,每个音符1个节点,或者一次一个节点对应一个字符


提前感谢

只要你的数据集不过度偏向其中一个“单词”,一个小词汇量就可以了

至于“最好是88个节点,每个音符1个节点,还是一次一个节点对应一个字符?”,每个时间步表示为88个字符。每个字符都是该时间步的一个特征。您的LSTM应该输出下一个时间步,因此您应该有88个节点。每个节点都应该输出该节点出现在该时间步中的概率

最后,由于您正在构建一个字符RNN,我强烈建议使用来表示您的数据。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:|

这非常适合字符RNN,因为它将每首歌曲表示为一组字符,您可以运行从MIDI到ABC的转换,反之亦然。你所要做的就是训练你的模型来预测这个序列中的下一个字符,而不是处理88个输出节点。

因为我的只是0和1,这会非常偏向于0吗?只要你的数据同时有大量的1和0,就不会。