DNN-全连接神经网络
全连接网络的特点是:层与层之间是全连接的,每层之间的节点是无连接的,因此全连接网络只能处理一个一个的输入。为什么要先介绍DNN呢?因为普通的神经网络模型都只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。因此对处理序列的网络提出需求,也是RNN网络存在的意义。
RNN-循环神经网络
RNN的基础结构仍然是神经网络,只不过他多了个小盒子(w),用来纪录数据输入时的网络的状态,在下一次输入数据时,网络必须要考虑小盒子中保存的信息,随着数据的一次次输入,存储信息也在不断更新。图中左下角的图可以看成DNN模型的简化,并加入了RNN和核心w。假设目前有一句话”I love you”,每个单词用300维的向量表示。DNN流程是先把代表“I”的计算机可以理解的300数据进行训练,然后接着训练下一个单词“love”直到结束。RNN流程先把代表“I”的计算机可以理解的300数据进行训练,接下训练将前一刻“I”隐藏层的输出state和当前时刻的输入“love”作为共同输入,喂给下一隐藏层进行训练直到结束。
大致流程如下:
前面说到将每个单词用300维的向量表示。现在问题来了,如何将输入数据转化为一个特征向量呢?现在就来介绍一种常用的办法——自然语言处理-词向量模型-Word2Vec。它是用向量来计算相似度,假如一个人,我们用身高、体重等去描述他,每一个指标相当于一个维度上的坐标,当两个人在多维空间越接近就可以判断这个人的相似度。通常,数据的维度越高,能提供的信息也就越多,从而计算结果的可靠性就更值得信赖。