循环神经网络
Posted 科研民工的日常
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了循环神经网络相关的知识,希望对你有一定的参考价值。
1 语言模型
一般我们会计算文本序列的概率。例如一个4个词的文本序列概率。
为了计算语言模型,我们需要计算词的概率,以及一个词在给定前几个词的情况下的条件概率,即语言模型参数。设训练数据集为一个大型文本语料库,如维基百科的所有条目。词的概率可以通过该词在训练数据集中的相对词频来计算。例如, 可以计算w1在训练数据集中的词频与总词数之比。 也可以直接计算:w1和w2两词相邻的概率与w1概率的比值。
为了简化计算,提出了n元语法,也就是通过马尔科夫假设:一个词的出现只与前面n个词相关,也就是n阶马尔科夫链。如果n=1,那么
N元语法是基于n-1阶马尔可夫链的概率语言模型,其中nn权衡了计算复杂度和模型准确性。
2.1不含隐藏状态的神经网络
假设有一个含单隐藏层的多层感知机。给定样本数为n、输入个数为d的小批量数据样本 ,设隐藏层激活函数为 ,那么隐藏层的输出 :
q为输出层个数。
2.2 含隐藏状态的神经网络
我们现在考虑数据存在时间相关性的情况。假设 是序列中时间步t的小批量输入, 是该时间步的隐藏变量。与多层感知机不同的是,这里我们保存上一时间步的隐藏变量 ,并引入一个新的权重参数 ,该参数描述当前时间步如何使用上一时间步的隐藏变量。时间步t的隐藏变量计算由当前时间步的输入和上一时间步的隐藏变量共同决定:
在时间步t,输出层的输出与多层感知机的计算类似:
2.3应用:基于字符循环神经网络的语言模型
以上是关于循环神经网络的主要内容,如果未能解决你的问题,请参考以下文章