李飞飞高徒Andrej Karpathy提醒你,小心搭建神经网络的六个坑

Darfie 2018-07-03

李飞飞高徒Andrej Karpathy提醒你,小心搭建神经网络的六个坑

大数据文摘编辑组出品

继Ian Goodfellow的推特小课堂之后,特斯拉的人工智能研究负责人、李飞飞斯坦福高徒Andrej Karpathy也在twitter上分享了他对神经网络的一些研究技巧。

昨晚,他连发几条twitter,细数了六种神经网络研究中的常见错误。引发了一波研究者们对于自己入过坑的吐槽。

李飞飞高徒Andrej Karpathy提醒你,小心搭建神经网络的六个坑

来看一下Andrej Karpathy让你当心的这六个坑吧:

最常见的神经网络错误:

  • 没有先试过所有数据一批处理
  • 忘了为网络切换训练/评估模式
  • 忘了在.backward()之前.zero_grad()(在pytorch中)
  • 将softmaxed输出传递给预期原始logits的损失
  • 使用BatchNorm时,您没有对线性/ 二维卷积层使用bias = False,或者反过来忘记将其包含在输出层中。 这个倒不会让你失败,但它们是虚假的参数
  • 以为view()和permute()是一样的事情(不正确地使用view)

之后,在评论区,也有读者针对“对数据初始化”展开了讨论。

对此,他也进一步详细解释:

是的,有几次我重新打开数据,得到的损失值却一致,而且如果这样做会产生一个漂亮的损失曲线,这表明对数据初始化并不是明智的做法。我有时喜欢调整最后一层偏差,使之接近基础分布。

我喜欢先从最简单的开始,例如,先对所有未处理的数据进行训练,看看基本输出分布的表现如何,然后逐增加输入和扩大网络,确保每次都比以前的表现更好。

相关推荐