我正在查看 LeNet-5 的原始实现,我注意到不同来源的差异。Wikipedia 建议在每一层中使用的非线性是相同的 sigmoid,一些博客文章使用 Tanh 和 sigmoid 的组合,而 Andrew NG 说它使用了一些粗略的非线性,今天没有人在没有命名的情况下使用。我查看了原始论文,但它有 50 页长,而且图表没有明确提及使用的激活函数。我搜索了一下,sigmoid 函数在那里并在激活的上下文中提到,而 tanh 函数被视为一个压缩函数。我不确定这与它在提到 sigmoid 时使用的其他术语是否相同或不同。有谁知道这是怎么回事?
LeNet 5 中使用的非线性
数据挖掘
深度学习
神经网络
卷积神经网络
2022-03-08 02:30:09
1个回答
在原始论文中有一些澄清声明:
将 S2 中一个单元的四个输入相加,然后乘以可训练系数,并添加到可训练偏差。结果通过 sigmoidal 函数传递。(第 7 页,第 1 栏)
在这里,sigmoidal 函数是通用的。
与经典神经网络一样,最多 F6 的层中的单元进行计算。这个加权和 .. 然后通过一个 sigmoid 压缩函数 .. 压缩函数是一个缩放的双曲正切。(第 8 页,第 1 栏 - 但另请参阅附录 A 了解详细信息)
在这里,“sigmoid squashing function”用于表示缩放的“tanh”(请记住,tanh 是重新缩放的逻辑 sigmoid 函数)。
因此,我认为维基百科使用相同的“sigmoidal function”的建议是正确的。为了精确起见,应该使用 tanh。