机器学习和神经网络的墨菲定律
本着“任何可能出错的事情都会出错”的精神,这些定律抓住了现实世界中使用机器学习和神经网络的怪癖和挑战。它们源自我们的模型投入生产时所面临的实际问题。
法律
- 关键应用定律:应用越关键,神经网络就越有可能无法泛化。
- 过度复杂性法则:神经网络的复杂性总是会超过可用数据。
- 过早部署定律:需要数周时间训练的神经网络模型将在部署后几分钟内发现错误。
- 可解释性逆定律:最准确的模型将是最不可解释的。
- 超参数不一致定律:在上一个项目中效果最好的超参数对于当前项目来说将是最差的。
- 分层混乱法则:添加的层越多,理解的就越少。
- 验证监督法则:验证集的准确率达到 99% 通常意味着您忘记包含一类关键数据。
- 盲目架构法则:如果你不了解架构,添加更多层也无济于事。
- 模型过时定律:当您部署最先进的模型时,就会出现一篇新论文,使其过时。
- 置信度错位定律:神经网络对其预测的置信度与其在最关键时刻的准确性成反比。
- GPU 的最后喘息定律:GPU 将在为期一周的训练结束前几分钟崩溃。
- 随机调整法则:神经网络调整得越多,它就越接近随机数生成器。
- 训练持续时间的欺骗法则:花费数天训练的模型将被花费几分钟训练的简单模型所超越。
- 文档滞后定律:最新神经网络框架的文档总是落后一个版本。
- 模型复杂性定律讽刺:最复杂的模型将实现与相同数据的线性回归相似的性能。
- 超参数事后诸葛亮:最好的超参数总是在你停止搜索后找到的。
- 复制焦虑法则:当你无法复制你的结果的时候,就是你的老板要求你复制结果的时候。
- 意外输入定律:每个神经网络都有一组特殊的输入,这些输入会使其表现出意外,并且您只会在生产中发现它们。
- 简单错误定律:无论模型多么先进,它的错误对于人类来说总是显得简单得愚蠢。
- 深度定律:网络越深,在部署之前梯度消失问题就越难以捉摸。
- 递归定律:您的 RNN 会记住所有内容,除了至关重要的一个序列模式。
- 门控记忆法则:当你决定 LSTM 已经解决了你的序列问题时,你的数据就会进化来证明你错了。
- 双向性定律:当 BiLSTM 开始有意义时,您的序列将在其他地方引起注意。
- 卷积定律:最关键的特征始终位于 CNN 的感受野之外。
- 本地接收定律:在煞费苦心地优化 CNN 的内核大小之后,输入分辨率的变化将使其变得无关紧要。
- 注意力法则:您的模型将按顺序关注除最相关部分之外的所有内容。
- 自注意力法则:当 Transformer 发生故障时,它会出现在你最意想不到的输入上。
- 迁移学习法则:您的任务越具体,预训练模型的可迁移性就越差。
- 强化法则:你的代理人将掌握每一种策略,除了在现实世界中最大化奖励的策略。
- 环境动力学定律:一旦你的 RL 模型看起来很完美,环境就会突然变得不稳定。
- 大模型定律:模型越大,最简单的错误就越令人尴尬。
- 过度参数化法则:最过度拟合的模型在测试期间可以完美地概括,但在现实世界中却会惨败。
- 梯度流定律:最需要梯度的层就是梯度消失的地方。
- 模态适应定律:当您针对非图像数据微调 CNN 时,您会发现一个数据集,其中简单的 ANN 性能优于它。
- 动态架构定律:网络越动态,就越难解释其突然发生的故障。
- 对抗鲁棒性定律:你没有准备好的对抗攻击将是你遇到的第一个攻击。
- 多模态法则:每当组合数据类型时,网络都会在一种数据类型中表现出色,而在另一种数据类型中则表现不佳。
- 稀疏法则:您最修剪的网络将错过一个关键的连接。
- 神经可塑性定律:在你重新利用神经网络的第二天,它就会渴望完成原来的任务。
- 监督错觉定律:在监督学习中,你的模型越精确地拟合训练数据,它就越相信它理解世界——直到它满足现实世界的数据。
?贡献
如果您在经验中遇到了其他“法律”或者有任何建议或改进,请随时提交 PR。让我们一起扩大这个列表,并为我们日常的机器学习斗争带来一点幽默。
?执照
该存储库已根据 MIT 许可证获得许可。
致谢
- 受到墨菲定律和世界各地机器学习从业者的集体智慧(和痛苦)的启发。
- 特别感谢 ML 社区分享的经验和见解。
- 灵感来自安吉洛州立大学博客上的墨菲定律集。