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