我希望有人可以向我解释为什么在“Attention is all you need”论文的转换器模型中,在多头注意力层和残差连接之后都没有应用激活。在我看来,连续有多个线性层,我一直认为你应该在线性层之间进行激活。
例如,当我查看不同风格的 resnet 时,它们总是在线性层之后应用某种非线性。例如,残差块可能看起来像......
Input -> Conv -> BN -> Relu -> Conv -> (+ Input) -> BN -> Relu
或者在预激活的情况下......
输入 -> BN -> Relu -> Conv -> BN -> Relu -> Conv -> (+ 输入)
在我见过的所有 resnet 风格中,它们绝不允许在没有 relu 的情况下连接两个线性层。
然而在变压器...
Input -> Multihead-Attn -> Add/Norm -> Feed Forward(Dense Layer -> Relu -> Dense Layer) -> Add/Norm
在多头注意力层中,它执行注意力机制,然后应用一个全连接层来投影回其输入的维度。然而,它和前馈网络之间没有非线性关系(除了可能在部分注意力中使用的 softmax。)像这样的模型对我来说更有意义......
Input -> Multihead-Attn -> Add/Norm -> Relu -> Feed Forward(Dense Layer -> Relu -> Dense Layer) -> Add/Norm -> Relu
或类似预激活的 resnet...
Input -> Relu -> Multihead-Attn -> Add/Norm -> Input2 -> Relu -> Feed Forward(Dense Layer -> Relu -> Dense Layer) -> Add/Norm(Input2)
谁能解释一下为什么变压器是这样的?
当我在另一个论坛上查看wavenet 的架构时,我曾问过类似的问题,但我从未真正得到明确的答案。在那种情况下,为什么没有对剩余连接应用激活对我来说再次没有意义。(https://www.reddit.com/r/MachineLearning/comments/njbjfb/d_is_there_a_point_to_have_layers_with_just_a/)