我对NN及其培训有一些一般性问题,希望您能回答这些问题: 让我们建议,我有一个未经训练的NN,其中有n个隐藏的层和m个神经元。我想训练网络,例如识别语音等等。当我的声音输入不总是具有相同的长度时(例如,一个是1秒,另一个是5),我怎样才能实现这一点?我的NN应该有多少层和什么类型(Recurrent,LSTM,CNNs等)?是否有任何其他训练算法,而不是正常的反向传播(我想在每个层中只有一个神经元的NN,然后让新的一个神经元,直到问题得到解决)?最后建议/有帮助的是在第2层到第4层的神经元之间建立连接?
感谢您的帮助!
答案 0 :(得分:1)
这是一个非常有效的问题,供你记录。
您绝对应该使用循环网络进行语音识别。这意味着你逐个输出1/100秒。因此,对于一秒钟,您将激活网络100次,持续一秒钟的数据。
使用LSTM将确保记住大时间滞后的模式,因此网络基本上会记住以前输入中的(有用的)部分。
您应该使用多少层取决于您想要识别的内容。但由于语音识别不是最简单的分类任务之一,因此它必须是一个大型深度网络(与LSTM结合卷积)。
您提出的建议,将网络逐个节点演化,基本上称为神经进化。像Neataptic这样的图书馆支持网络向某种解决方案的发展。
是的,这肯定会有所帮助。但这纯粹可以通过反复试验找到。
PS:我强烈建议您开始更简单的任务,以了解神经网络。