DNN,CNN和RNN优缺点/区别
demi 在 周四, 03/12/2020 - 14:47 提交
感知机包含有输入层、输出层和一个隐藏层。输入的特征向量通过隐藏层变换到达输出层,由输出层得到分类结果。
感知机包含有输入层、输出层和一个隐藏层。输入的特征向量通过隐藏层变换到达输出层,由输出层得到分类结果。
CNN(卷积神经网络)我们会发现,他们的输出都是只考虑前一个输入的影响而不考虑其它时刻输入的影响,比如简单的猫,狗,手写数字等单个物体的识别具有较好的效果。但是,对于一些与时间先后有关的,比如视频的下一时刻的预测,文档前后文内容的预测等,这些算法的表现就不尽如人意了。因此,RNN就应运而生了......
RNN前向计算:对于如下结构,x是输入,s为隐层,o为输出,U,W,V为不同层的权值,同一类型的权连接权值相同
RNN又名循环神经网络,是一类处理序列数据的神经网络,这个序列数据不只包括时间序列,还有文字序列等,即序列数据中后面的数据与前面的数据有关系。
由于0-1范围内的导数累乘,会发现累乘会导致激活函数导数的累乘,如果取tanh或sigmoid函数作为激活函数的话,那么必然是一堆小数在做乘法,结果就是越乘越小。随着时间序列的不断深入,小数的累乘就会导致梯度越来越小直到接近于0,这就是“梯度消失“现象。
由于RNN也有梯度消失的问题,因此很难处理长序列的数据,大牛们对RNN做了改进,得到了RNN的特例LSTM(Long Short-Term Memory),它可以避免常规RNN的梯度消失,因此在工业界得到了广泛的应用。
神经网络技术起源于上世纪五、六十年代,当时叫感知机(perceptron),拥有输入层、输出层和一个隐含层。输入的特征向量通过隐含层变换达到输出层,在输出层得到分类结果。早期感知机的推动者是Rosenblatt。
本文我们就讨论另一类输出和模型间有反馈的神经网络:循环神经网络(Recurrent Neural Networks ,以下简称RNN),它广泛的用于自然语言处理中的语音识别,手写书别以及机器翻译等领域。
CNN和RNN几乎占据着深度学习的半壁江山,所以本文将着重讲解CNN+RNN的对比,以及各种组合方式。
时间序列数据是在不同时间点上统计同一指标,并按照时间先后排列成的一个集合。时间序列的主要作用是了解一个指标的长期趋势和预测未来。循环神经网络(Recurrent Neural Network或RNN )就是一类用于处理序列数据的神经网络。RNN的状态,不仅受输入影响,还受前一时刻状态的影响。