参考1:CNN、RNN、DNN区别
一张图解释所有:
感知机(输入层、输出层、一个隐藏层)-->不能解决复杂的函数-->神经网络NN出现(多层感知机出现,使用sigmoid或tanh、反向传播BP算法)-->层数加深,出现局部最优和梯度消失等问题-->深度学习提出(利用预训练方式缓解局部最优问题)-->DNN出现(克服梯度消失,ReLU和Maxout代替sigmoid)
DNN->全连接DNN出现参数膨胀问题-->CNN出现(卷积神经网络,参数共享)
DNN-->无法对时间序列进行建模-->RNN出现(循环神经网络,普通的全连接网络或CNN,是前向神经网络,RNN可以直接将输出作为下一时间段的输入,深度是时间的长度)
RNN-->依然存在梯度消失的问题(发生在时间轴上),无法解决长时间依赖的问题-->LSTM出现(长短时记忆单元,通过cell门实现时间上的记忆功能,防止梯度消失)
后来又出现了双向RNN,双向LSTM,能能够同时利用历史和未来的信息。
结束。