从基线模型开始:别担心,模型一开始很难看掌握逻辑回归模型。从基础开始在大多数领域,当人们试图以科学的方式了解世界时,他们会选择广泛地研究整体内容,而不是立即深入研究重要的细节。例如,在物理领域,我们经常从简单的模型(牛顿物理学)开始进行研究。然后,随着我们逐渐意识到一些最初的假设是不正确的,我们慢慢开始使用更复杂的模型。这样就可以用最简单的方式高效地解决问题。一切都应该简单,但又不能太简单。——阿尔伯特·爱因斯坦同样的思路,从最简单的模型开始,也可以应用到AI工程中。而且在大多数情况下,这种方法非常有价值。事实上,在观察了Insight上数百个项目从想法到实际产品的演变后,我们发现使用简单的模型作为基础版本通常会使最终产品变得更好。但是在解决复杂问题时,简单的解决方案(例如下面讨论的基线模型)有很多缺点:简单的解决方案有时会忽略输入中的重要内容。例如,简单的模型往往会忽略句子中单词的顺序,或者变量之间的关系。在生产更精细的产品时,这些模型往往有些力不从心。因此,大多数简单模型需要使用启发式算法或人为制定的规则才能出现。研究它们可能没有那么有趣,它们可能无法为您提供您渴望的前沿研究知识。这些简单的解决方案产生的错误输出往往看起来很愚蠢,所以标题中使用了“不忍直视”二字。但是,正如本文所示,简单模型在项目开始时可能非常有价值,因为它们可以帮助我们更好地理解实际问题,从而告知我们开发最终成功产品的最佳途径。用GeorgeE.P.Box的话来说:“所有模型都是错误的,但至少其中一些模型是有用的。”换句话说,如果你只是想玩得开心,从复杂的模型开始是可以的;但如果你想真正解决一个问题,开发一个真正的产品,那就从一个过于简单到“不忍直视”的模型入手。2.什么是基线模型?“当从散点图预测数据相关性比绘制星座图更难时,我不相信线性回归的结果”:左:方差为0.06的线性回归模型右:Rexthor“走不同的分布类型需要不同的基线模型.以下是一些值得考虑的基线模型:线性回归:第一种从一系列特征值(例如价格和年龄)中预测连续值的可靠方法逻辑回归:对结构化数据或自然语言进行分类时,逻辑回归模型可以快速GradientBoostingDecisionTrees:不可错过的Kaggle经典!在与时间或一般结构化数据相关的预测处理中,根本不可能忽略gradientboosting决策树。虽然这个模型比其他模型更难理解和使用baselinemodels,itwillworkquitewell.简单的大脑回归框架:VGG适当调整或U-net再训练使用一些变量是大多数图像分类、检测或分类问题的良好开端。在您面前有许多基准模型可供选择!选择哪种基线模型由数据类型和任务目标决定。例如,当你需要从各种特征值中预测房价时(即从一系列特征值中预测某个值),线性回归模型比较合适,但如果你是构建语音识别算法,这个模型不合适。在选择最合适的基线模型之前,你需要三思这个问题:你希望用这个模型实现什么?第三,为什么从基线模型开始?从部署模型到获得结果的过程并不容易。在实施之前必须确保部署模型充分了解该模型。在项目开始时,最优先考虑的是预测未知风险。即使基线模型不是最终版本,它也能让你快速迭代,从而减少不必要的时间成本。以下是支持这一论点的一些理由:基线模型将花费您不到十分之一的时间,但可以产生超过90%的结果。提高9倍的输出效率!举一个很常见的例子:一个团队希望找到一个模型来预测用户点击广告的概率等问题。他们从逻辑回归模型开始,并在很短的时间内(经过很少的调整)达到了90%的准确率。那么问题来了:团队是应该专注于将准确率提高到95%,还是用同样的方法解决其他问题达到90%的准确率?由于其随机性,大多数最先进的模型无法将错误率降低到零。虽然准确性取决于实际用例,但大多数系统的准确性本质上是其各个部分准确性的产物。即***让连续10步达到90%准确率,这样整体准确率可以达到34%,而不是让1步99%准确,其他9步都是10%,整体准确率只有0.00000000099%%。从基线模型开始,您可以首先找出瓶颈所在!1.基线模型使复杂模型陷入困境通常,您可以期望使用各种模型可以实现三个级别的性能:缺乏经济实惠的性能级别是您对任一模型的期望。例如,该值可以是分类任务中出现频率最高的类的概率值。人类绩效指标是指人类可以执行任务的水平。计算机在某些任务(例如AlphaGo)上比人类好,但在其他任务(例如作诗)上更差。人类完成任务的表现水平可以作为标准,帮助对算法的表现形成合理的预期,但在不同的领域,人和计算机的表现可能有很大差异,因此需要进行一些文献检索进行标定.可部署的性能水平,即从商业生产和可用性的角度,模型所需的最低精度值。通常,此值需要仔细的设计决策才能得出系统。例如,GoogleSmartReply通常会返回三个建议的决策,这可以显着提高有用结果的概率。我上面没有提到的一个标准,叫做“合理的自动生成性能”,指的是相对简单的模型可以得到的结果。通过这个重要的基准值,我们可以评估一个复杂的模型是否表现良好,让我们不再在准确性和复杂性之间纠结。很多时候,我们发现基线模型的性能与复杂模型不相上下,有时基线模型的性能甚至可以超过复杂模型,尤其是当基线模型失败的原因是在选择复杂模型之前没有充分考虑。此外,复杂模型的部署难度更大,这意味着在真正部署模型之前,程序员首先需要预估复杂模型与简单模型相比能提高多少。2.基线模型更容易部署。根据定义,基线模型非常简单,一般由相对较少的可训练参数组成,无需过多处理即可快速与数据匹配。当你真正开始编程时,这个好处就会体现出来:快速训练:你可以快速得到性能反馈。更易于研究:这意味着遇到的大多数错误可以更容易地查明为模型中的缺陷或数据中的错误。快速推断:部署基线模型不需要太多架构更改,也不会导致潜在风险。创建并部署基线模型后,您就处于后续步骤的最终决策点。4.建立基线模型后?也许是时候扔掉研究文献了?如上所述,基线模型将使您能够快速获得性能基准测试结果。如果您发现它提供的性能价值不够,那么找到简单模型难以解决的问题将使您的下一步行动更加容易。例如,在NLPprimer中,通过观察基线模型中的错误,我们发现该模型未能区分有意义的词和功能词。因此,它可以指导我们通过模型捕捉相似的细微差别。1.基线模型帮助您理解数据。如果你选择的基线模型表现良好,那么你已经解决了自己构建复杂模型的大部分困难;具体错误很有建设性。许多阻碍机器学习进步的问题往往是由于未能理解和准备数据造成的,而不是选择了更复杂的模型。看看基线模型的不同表现能告诉你什么:哪个类更难分类:对于大多数分类问题,查看混合矩阵对于定位导致模型出错的类非常有用。在任何时候,如果基于一系列分类的模型表现不佳,就该深入研究数据并找出原因了。你的模型选择什么作为信号:大多数基线模型能够提取特征重要性,确定输入的哪个方面更具预测性。分析特征重要性是了解模型如何做出决策的最佳方式,可能会遗漏点。你的模型缺少什么信号:如果你的模型缺少数据的一个非常重要的方面,那么最好的下一步是手动添加这个特征,或者选择另一个可以更好地利用数据的模型。2.基线模型可以帮助你理解任务。除了能够更好地理解数据,基线模型还可以帮助你理解哪些部分的内容比较难,哪些部分比较容易。通过这种方式,您还可以确定应该改进模型的哪些方面以更好地解决困难的部分。例如,BowenYang在试图预测某支球队在《守望先锋》中的获胜几率时使用了逻辑回归模型。他很快发现,比赛进行到一半后,他的预测准确率有了明显的提升。这一发现帮助他成功地选择了下一个建模方法,这是一种从先验信息中学到的技巧,极大地提高了比赛第一分钟前的预测准确率。大多数机器学习问题都遵循“天下没有免费的午餐”定理:没有万能的解决方案。真正的挑战是从各种架构中进行选择,决定合适的策略,并选择最适合提取和利用目标数据结构的模型。再举个例子,当Chuck-HouYee试图对心脏的MRI进行分类时,他从最基本的U-net架构开始。通过U-net架构,他注意到模型的很多分类错误都是由于缺乏上下文造成的。为了解决这个问题,Chuck-HouYee选择了一种扩展卷积模型(dilatedconvolutions),极大地改善了建模结果。3.什么时候不选择基线模型***对于某些任务,建立一个有效的基线模型真的很难。如果您试图将录音中不同人的语音内容分开(鸡尾酒效应),也许您必须从??一个复杂的模型开始才能获得满意的结果。在这种情况下,与其简化模型,不如简化数据更合适。也就是说,将这个复杂模型过度拟合到现有数据集的一小部分。如果你的模型有足够的表现力,这应该很容易;但如果不是,那么也许您需要尝试其他模型。鸡尾酒效应:https://en.wikipedia.org/wiki/Cocktail_party_effect5.结论如果有更强大的解决方案,人们往往会忽略简单的解决方案。但在机器学习的大多数领域,从基础开始往往更有价值。虽然学习实现复杂模型确实很难,但机器学习工程师面临的最大挑战其实是如何为特定任务选择建模策略。首先使用一个简单的模型会有很大帮助;如果性能不理想,那么使用更复杂的模型可以避免基线模型中已经发现的问题,从而获得更好的建模效果。相关报道:https://blog.insightdatascience.com/always-start-with-a-stupid-model-no-exceptions-3a22314b9aaa(id:BigDataDigest)》】点此阅读作者更多好文
