在CBOW模型中,是否需要在Hidden层取Average?
In CBOW model, do we need to take Average at Hidden layer?
我搜索并阅读了一些关于CBOW的文章。但是这些文章之间似乎有区别。
据我了解:
- 输入是批向量。我们将把它提供给隐藏层。这样我们将在隐藏层得到另一个batch vector H。
- 在一个article (part 2.2.1)中,他们说我们不会在隐藏层使用任何激活函数,但我们会对batch vector H[=34=取平均值] 以获得单个向量(不再是批处理)。然后我们将这个平均向量提供给输出层并在其上应用 Softmax。
- 然而,在这个 Coursera's video 中,他们 不 对批处理向量 H 取平均值。他们只是将这个批处理向量 H 提供给输出层,然后将 Softmax 应用于批量输出向量。然后在上面计算成本函数。
- 并且,在Coursera's video中,他们说我们可以在隐藏层使用 RelU 作为激活函数。这是一种新方法吗?因为看了很多文章,都说Hidden层没有Activation function
能帮我解答一下吗?
在实际实现中——您可以查看其源代码——context-word 向量集在 之前被平均在一起 作为“输入”提供给 neural-network.
然后,对输入的任何 back-propagated 调整也将应用于所有对平均值有贡献的向量。
(例如,在与 Google 的原始 word2vec 论文一起发布的原始 word2vec.c
中,您可以看到将向量计算为 neu1
,然后通过除以context-window 计数 cw
,位于:
https://github.com/tmikolov/word2vec/blob/master/word2vec.c#L444-L448
)
我搜索并阅读了一些关于CBOW的文章。但是这些文章之间似乎有区别。
据我了解:
- 输入是批向量。我们将把它提供给隐藏层。这样我们将在隐藏层得到另一个batch vector H。
- 在一个article (part 2.2.1)中,他们说我们不会在隐藏层使用任何激活函数,但我们会对batch vector H[=34=取平均值] 以获得单个向量(不再是批处理)。然后我们将这个平均向量提供给输出层并在其上应用 Softmax。
- 然而,在这个 Coursera's video 中,他们 不 对批处理向量 H 取平均值。他们只是将这个批处理向量 H 提供给输出层,然后将 Softmax 应用于批量输出向量。然后在上面计算成本函数。
- 并且,在Coursera's video中,他们说我们可以在隐藏层使用 RelU 作为激活函数。这是一种新方法吗?因为看了很多文章,都说Hidden层没有Activation function
能帮我解答一下吗?
在实际实现中——您可以查看其源代码——context-word 向量集在 之前被平均在一起 作为“输入”提供给 neural-network.
然后,对输入的任何 back-propagated 调整也将应用于所有对平均值有贡献的向量。
(例如,在与 Google 的原始 word2vec 论文一起发布的原始 word2vec.c
中,您可以看到将向量计算为 neu1
,然后通过除以context-window 计数 cw
,位于:
https://github.com/tmikolov/word2vec/blob/master/word2vec.c#L444-L448 )