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

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

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

来看一下Ian Goodfellow让你当心的这六个坑吧:

最常见的神经网络错误:

  • 没有先试过所有数据一批处理

  • 忘了为网络切换训练/评估模式

  • 忘了在.backward()之前.zero_grad()(在pytorch中)

  • 将softmaxed输出传递给预期原始logits的损失

  • 使用BatchNorm时,您没有对线性/ 二维卷积层使用bias = False,或者反过来忘记将其包含在输出层中。 这个倒不会让你失败,但它们是虚假的参数

  • 以为view()和permute()是一样的事情(不正确地使用view)

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

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

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

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

入门Andrej Karpathy神经网络
4
相关数据
神经网络技术
Neural Network

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

参数技术
parameter

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

大数据文摘
大数据文摘

秉承“普及数据思维,传播数据文化,助⼒产业发展”的企业⽂化,我们专注于数据领域的资讯、案例、技术,形成了“媒体+教育+⼈才服务”的良性⽣态,致⼒于打造精准数据科学社区。

大数据文摘
大数据文摘

秉承“普及数据思维,传播数据文化,助⼒产业发展”的企业⽂化,我们专注于数据领域的资讯、案例、技术,形成了“媒体+教育+⼈才服务”的良性⽣态,致⼒于打造精准数据科学社区。

推荐文章
Google Brain与OpenAI合作论文:规模化的对抗机器学习Google Brain与OpenAI合作论文:规模化的对抗机器学习
李亚洲李亚洲
机器之心深度研学社每周干货:2017年第1周机器之心深度研学社每周干货:2017年第1周
Synced 深度研学社Synced 深度研学社
 2016深度学习重大进展:从无监督学习到生成对抗网络 2016深度学习重大进展:从无监督学习到生成对抗网络
机器之心机器之心
1
返回顶部