1、CNN:就是把每个字转换成向量,再拼接成图像的样式,再用卷积核处理,再池化和拼接,再softmax得到分类结果,卷积核的作用能够整合一些上下文信息。
2、RNN:前向网络中加入了前一个字的信息,隐含层嘛;能够整合更多的上下文信息,效果更好,但是会出现梯度消失和爆炸。产生的原因是什么呢?在bp过程中(这里就不推导了),当前层参数的导数是后面所有层导数跌成的结果,主要包含激活函数的导数和权值矩阵两个方面;梯度爆炸是因为初始化权重矩阵太大,导致每一层的权重矩阵和激活函数导数的乘积都大于1,;所以初始化权重矩阵不易太大;梯度消失是因为激活函数的导数明显小于1,导致跌成之后远小于1,如sigmoid函数的导数永远小于0.25,tan函数的导数值分布也比较小,不能使用激活函数relu,因为这个还是会导致梯度爆炸。hinton的论文中说了替换成relu会导致很大的输出值,举个例子:
a(i) = Wf(i-1) +Ux(i) +b(i) 激活函数的输入,x(i)是每个阶段的输入,
f(i) = f[a(i)] 激活函数的输出
rnn中每一层的W相同,所以在求当前层的变化时,叠乘由于激活函数导数都是1,那么就是W的n次方,如果把W初始化单位矩阵还ok,如果不是的话,就很容易梯度爆炸。而cnn不同的是各个W是不同的,这样的话就会避免梯度