1。神经网络基本神经网络可以看作是一个可以拟合任何函数的黑盒子。只要训练数据足够,给定一个具体的x,就可以得到想要的y,结构图如下:神经网络模型训练好后,在输入层给定一个x,一个具体的y经过网络后可以在输出层得到。那么,既然有这么强大的模型,为什么还需要RNN(递归神经网络)网络)?2、为什么需要RNN(递归神经网络)?它们只能分别接受和处理一个输入,前一个输入与下一个输入无关。但是,有些任务需要能够更好地处理序列信息,即前面的输入与后面的输入相关。例如,当我们理解一个句子的意思时,孤立地理解句子的每个词是不够的,我们需要处理这些词连接起来的整个序列;不是分析每个帧,而是分析连接的整个帧序列。拿一个nlp最简单的词性标注任务来说,三个词Ieatapple被标注为I/nneat/vapple/nn。那么这个任务的输入是:Ieatapples(已经切分的句子)。这个任务的输出是:I/nneats/vapples/nn(词性标记句子)。对于这个任务,我们当然可以直接使用普通的神经网络来完成。网络的训练数据格式是me->multipleindividualwordssuchasme/nn->part-of-speechtaggedwords。但显然,在一个句子中,前一个词其实对当前词的词性预测有很大的影响。比如在预测apples的时候,由于前面的eat是动词,显然apples是名词的概率会很大。概率取决于动词,因为动词后面接名词的情况很常见,但动词后面接动词的情况很少见。于是为了解决其中一些类似的问题,更好的处理序列信息,RNN诞生了。3.RNN结构先看一个简单的递归神经网络,例如,由输入层、隐藏层和输出层组成:不知道初学者能不能看懂这张图,反正我看的时候是一头雾水刚开始学习,每个节点是代表一个值输入,还是一层向量节点集合,隐藏层怎么和自己连接等等这些疑惑~这个图是一个比较抽象的图。我们现在是这样理解的,如果去掉W上面那个带箭头的圆圈,就变成了最普通的全连接神经网络。x是一个向量,代表输入层的值(代表神经元节点的圆圈这里没有画);s是一个向量,代表隐藏层的值(隐藏层在这里画了一个节点,你也可以想象这个A层其实是多个节点,节点个数和向量s的维度相同);U是输入层到隐藏层的权值矩阵,o也是一个向量,代表输出层的值;V是隐藏层到输出层矩阵的权重。那么,现在让我们看看W是什么。循环神经网络隐含层的值s不仅取决于当前输入x,还取决于前一个隐含层的值s。权重矩阵W为本次输入的隐藏层上一个值的权重。我们给出这个抽象图对应的具体图:从上图我们可以很清楚的看到前一时刻的隐藏层是如何影响当前时刻的隐藏层的。如果把上图展开,循环神经网络也可以画成这样:现在看起来更清楚了,网络在t时刻接收到输入后,隐藏层的值为,输出值为。关键是的值不仅取决于,还取决于。我们可以用下面的公式来表达循环神经网络的计算方式:公式如下:4.总结一下,这里对RNN最基本的知识点做一个简单的解释,可以帮助大家直观的感受RNN,理解RNN为什么需要RNN,后面会总结它的逆向推导知识点。***给出RNN的概述:
