来自 | AI开发者
在传统的软件开发中,一个 bug 通常会导致程序崩溃。这对用户来说是很烦人的,因此解决这些问题对开发人员来说很重要——当程序失败时,开发人员可以检查错误以了解原因。
在机器学习模型中,开发人员有时会遇到错误,但经常会在没有明确原因的情况下导致程序崩溃。虽然这些问题可以手动调试,但机器学习模型通常由于输出预测不佳而失败。更糟糕的是,当模型失败时,通常没有信号显示模型失败的原因或时间。而使情况更为复杂的是,这可能是由于一些因素造成的,包括糟糕的训练数据、高损失误差或缺乏收敛速度。
在这篇博客文章中,我们将讨论如何调试这些无声故障,以便它们不会影响我们机器学习算法的性能。以下是我们将要介绍的内容的简要概述:
-
如何发现输入数据中的缺陷。
-
如何使模型从较少的数据中学到更多。
-
如何为训练准备数据,避免常见陷阱。
-
如何寻找最优模型超参数。
-
如何安排学习速率以减少过拟合。
-
如何用权重和偏差监测训练进度。
值得注意的是,作为一名数据科学/机器学习实践者,你需要认识到机器学习项目失败的原因有很多。大多数与工程师和数据科学家的技能无关(仅仅因为它不起作用并不意味着你有缺陷)。我们的收获是,如果我们能够尽早发现常见的陷阱或漏洞,我们可以节省时间和金钱。在金融、政府和医疗等高风险应用领域,这将是至关重要的。
1 如何发现输入数据中的缺陷
在想知道我们的数据是否能够胜任训练一个好模型的任务,可以考虑两个方面:
-
数据能预测我们想要预测的结果吗?
-
有足够的数据吗?
为了弄清楚我们的模型是否包含预测信息,我们可以扪心自问:给定这些数据,人类能做出预测吗?
如果一个人不能理解一幅图像或一段文字,那么我们的模型也不会预测出有意义的结果。如果没有足够的预测信息,给我们的模型增加更多的输入并不会使它变得更好;相反,模型会过拟合,变得不太准确。
一旦我们的数据有足够的预测信息,我们就需要弄清楚我们是否有足够的数据来训练一个模型来提取信号。有几个经验法则可以遵循:
-
对于分类,我们每类至少应有 30 个独立样本。
-
对于任何特征,特别是结构化数据问题,我们至少应该有 10 个样本。
-
数据集的大小与模型中参数的数量成正比。这些规则可能需要根据你的特定应用程序进行调整。如果你能利用迁移学习,那么你可以大大减少所需样本的数量。
2 如何使模型从较少的数据中学习更多
在许多情况下,我们只是没有足够的数据。在这种情况下,最好的选择之一是扩充数据。再进一步,我们可以用自动编码器和生成对抗网络等生成模型生成自己的数据。
同样,我们可以找到外部公共数据,这些数据可以在互联网上找到。即使数据最初不是为我们的目的而收集的,我们也可以潜在地重新标记它或将其用于迁移学习。我们可以在一个大数据集上为不同的任务训练一个模型,然后使用该模型作为任务的基础。同样,我们可以找到一个别人为不同任务训练过的模型,并将其重新用于我们的任务。
重要的是,要记住,在大多数情况下,数据的质量胜过数据的数量。拥有一个小的、高质量的数据集并训练一个简单的模型是在训练过程早期发现数据中问题的最佳实践。许多数据科学家犯的一个错误是,他们花时间和金钱获取一个大数据集,但后来发现他们的项目有错误的数据类型。
3 如何准备训练数据并避免常见的陷阱
-
标准化:确保所有数据的平均值为 0,标准偏差为 1。这是减少特征的最常见方式。如果你怀疑数据中包含异常值,那么它甚至更有用。
-
最小 — 最大重缩放:通过减去最小值,然后除以值的范围,将所有数据的值缩放到 0 和 1 之间。
-
平均值规范化:确保数据的值介于(-1)和 1 之间,平均值为 0。我们减去平均值,除以数据的范围。
<section style="margin-right: 8px;margin-left: 8px;white-space: normal;max-width: 100%;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;letter-spacing: 0.544px;text-align: center;widows: 1;background-color: rgb(255, 255, 255);line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;">—</span></strong>完<strong style="font-size: 16px;letter-spacing: 0.544px;max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;font-size: 14px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;font-size: 16px;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;letter-spacing: 0.5px;box-sizing: border-box !important;overflow-wrap: break-word !important;">—</span></strong></span></strong></span></strong></span></section><section style="white-space: normal;max-width: 100%;box-sizing: border-box;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;letter-spacing: 0.544px;text-align: center;widows: 1;background-color: rgb(255, 255, 255);color: rgb(255, 97, 149);overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;box-sizing: border-box;opacity: 0.8;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box;letter-spacing: 0.544px;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;box-sizing: border-box;opacity: 0.8;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><p style="margin-right: 8px;margin-bottom: 15px;margin-left: 8px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;color: rgb(127, 127, 127);font-family: sans-serif;font-size: 12px;line-height: 25.5938px;letter-spacing: 3px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(0, 0, 0);box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 16px;font-family: 微软雅黑;caret-color: red;box-sizing: border-box !important;overflow-wrap: break-word !important;">为您推荐</span></strong></span></p><section style="margin-right: 8px;margin-bottom: 5px;margin-left: 8px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;color: rgb(127, 127, 127);font-family: sans-serif;font-size: 12px;line-height: 1.75em;letter-spacing: 0px;box-sizing: border-box !important;overflow-wrap: break-word !important;">微软 VS Code 已原生支持 Jupyter 笔记本,再也不用打开网页调试运行了<br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /></section><section style="margin-right: 8px;margin-bottom: 5px;margin-left: 8px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;color: rgb(127, 127, 127);font-family: sans-serif;font-size: 12px;line-height: 1.75em;letter-spacing: 0px;box-sizing: border-box !important;overflow-wrap: break-word !important;">作为 IT 行业的过来人,你有什么话想对后辈说的?<br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /></section><section style="margin-right: 8px;margin-bottom: 5px;margin-left: 8px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;color: rgb(127, 127, 127);font-family: sans-serif;font-size: 12px;letter-spacing: 0.5px;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;">程序员真的是太太太太太太太太难了!<br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /></section><section style="margin-right: 8px;margin-bottom: 5px;margin-left: 8px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;color: rgb(127, 127, 127);font-family: sans-serif;font-size: 12px;letter-spacing: 0.5px;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;">深度学习必懂的13种概率分布<br style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;" /></section><section style="margin-right: 8px;margin-bottom: 5px;margin-left: 8px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;color: rgb(127, 127, 127);font-family: sans-serif;font-size: 12px;letter-spacing: 0.5px;line-height: 1.75em;box-sizing: border-box !important;overflow-wrap: break-word !important;">【微软】AI-神经网络基本原理简明教程</section></section></section></section></section></section></section></section></section><section style="white-space: normal;max-width: 100%;color: rgb(0, 0, 0);font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;font-size: 16px;letter-spacing: 0.544px;text-align: center;widows: 1;background-color: rgb(255, 255, 255);box-sizing: border-box !important;overflow-wrap: break-word !important;"></section>
本篇文章来源于: 深度学习这件小事
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
内容反馈