深度学习——CLDNN(多模型神经网络)dropout
Deep Learning - CLDNN (multi-model neural network) dropout
我目前正在构建用于原始信号分类的 CLDNN(卷积、LSTM、深度神经网络)模型。
由于可训练参数的数量很容易超过数百万,我认为 dropout 有助于防止过度拟合。
我的问题也适用于多个模型堆叠的其他网络。
如果我的网络结构为
输入 -> 卷积 -> LSTM -> DNN -> 输出
我是否必须在每一层之后或仅在输出之前放置一个 dropout?
输入 -> 卷积 -> dropout -> LSTM -> dropout -> DNN -> dropout -> 输出
或
输入 -> 卷积 -> LSTM -> DNN -> dropout -> 输出
到目前为止,我只看到 dropout 应用于 convNets,但我不明白为什么它应该仅限于 convNets。
其他网络,如 LSTM 和 DNN,是否也使用 dropout 来防止过拟合?
是的,您可以在每个图层之后使用 Dropout。
不过,将 dropout 应用于最后一层(在 classes 上产生概率分布的层)没有意义。
不要忘记 LSTM 是一个循环模型,所以你必须使用 DropoutWrapper class 在每个时间步应用 dropout。
我目前正在构建用于原始信号分类的 CLDNN(卷积、LSTM、深度神经网络)模型。
由于可训练参数的数量很容易超过数百万,我认为 dropout 有助于防止过度拟合。
我的问题也适用于多个模型堆叠的其他网络。
如果我的网络结构为
输入 -> 卷积 -> LSTM -> DNN -> 输出
我是否必须在每一层之后或仅在输出之前放置一个 dropout?
输入 -> 卷积 -> dropout -> LSTM -> dropout -> DNN -> dropout -> 输出
或
输入 -> 卷积 -> LSTM -> DNN -> dropout -> 输出
到目前为止,我只看到 dropout 应用于 convNets,但我不明白为什么它应该仅限于 convNets。 其他网络,如 LSTM 和 DNN,是否也使用 dropout 来防止过拟合?
是的,您可以在每个图层之后使用 Dropout。
不过,将 dropout 应用于最后一层(在 classes 上产生概率分布的层)没有意义。
不要忘记 LSTM 是一个循环模型,所以你必须使用 DropoutWrapper class 在每个时间步应用 dropout。