深度学习

您所在的位置:网站首页 文本分析建立模型 深度学习

深度学习

2023-04-01 00:11| 来源: 网络整理| 查看: 265

在第 0 个时间步,你要计算激活项𝑎,它是以𝑥作为输入的函数,而𝑥会被设为全为 0 的集合,也就是 0 向量。在之前的𝑎按照惯例也设为 0 向量,于是𝑎要做的就是它会通过 softmax 进行一些预测来计算出第一个词可能会是什么,其结果就是𝑦^,这一步其实就是通过一个 softmax 层来预测字典中的任意单词会是第一个词的概率,比如说第一个词是𝑎的概率有多少,第一个词是 Aaron 的概率有多少,第一个词是 cats 的概率又有多少,就这样一直到 Zulu 是第一个词的概率是多少,还有第一个词是 UNK(未知词)的概率有多少,还有第一个词是句子结尾标志的概率有多少,表示不必阅读。 在我们的例子中,最终会得到单词Cats。所以 softmax 层输出 10,000 种结果,因为你的字典中有 10,000 个词,或者会有 10,002个结果,因为你可能加上了未知词,还有句子结尾这两个额外的标志。 然后 RNN 进入下个时间步,在下一时间步中,仍然使用激活项𝑎,在这步要做的是计算出第二个词会是什么。现在我们依然传给它正确的第一个词,我们会告诉它第一个词就是 Cats,也就是𝑦^,告诉它第一个词就是 Cats,这就是为什么𝑦 = 𝑥,在第二个时间步中,输出结果同样经过 softmax 层进行预测,RNN 的职责就是预测这些词的概率。 然后再进行 RNN 的下个时间步,现在要计算𝑎。为了预测第三个词,也就是 15,我们现在给它之前两个词,告诉它 Cats average 是句子的前两个词,所以这是下一个输入,𝑥 = 𝑦,输入 average 以后,现在要计算出序列中下一个词是什么,或者说计算出字典中每一个词的概率(上图编号 4 所示),通过之前得到的 Cats 和 average,在这种情况下,正确结果会是 15,以此类推。 所以 RNN 中的每一步都会考虑前面得到的单词,比如给它前 3 个单词,让它给出下个词的分布,这就是 RNN 如何学习从左往右地每次预测一个词。 接下来为了训练这个网络,我们要定义代价函数。于是,在某个时间步词是𝑦,而神经网络的 softmax 层预测结果值是𝑦,那么这就是softmax 损失函数,𝐿 (𝑦^ , 𝑦 >) = − ∑ 𝑦𝑖log 𝑦^𝑖 𝑖 。而总体损失函数𝐿 = ∑𝑡 𝐿 (𝑦^ , 𝑦),也就是把所有单个预测的损失函数都相加起来。 如果你用很大的训练集来训练这个 RNN,你就可以通过开头一系列单词像是 Cars average 15 或者 Cars average 15 hours of 来预测之后单词的概率。现在有一个新句子,它是𝑦,𝑦,𝑦,为了简单起见,它只包含 3 个词,现在要计算出整个句子中各个单词的概率,方法就是第一个 softmax 层会告诉你𝑦的概率,这也是第一个输出,然后第二个 softmax 层会告诉你在考虑𝑦的情况下𝑦的概率,然后第三个 softmax 层告诉你在考虑𝑦和𝑦的情况下𝑦的概率,把这三个概率相乘,最后得到这个含 3 个词的整个句子的概率。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3