我是机器学习的新手学习者,并且对调整感到困惑。 调整机器学习的目的是什么?要为算法选择最佳参数? 调整如何运作?
答案 0 :(得分:21)
如果没有进入适合Stackoverflow的技术演示,这里有一些一般的想法。从本质上讲,人们可以争辩说,机器学习的最终目标是使机器系统能够从数据中自动构建模型,而无需繁琐耗时的人工参与。如您所知,其中一个难点是学习算法(例如决策树,随机森林,聚类技术等)要求您在使用模型之前设置参数(或至少设置对这些参数的约束)。如何设置这些参数可能取决于许多因素。也就是说,您的目标通常是将这些参数设置为最佳值,以便您以最佳方式完成学习任务。因此,调整算法或机器学习技术,可以简单地认为是一个过程,在这个过程中,他们优化影响模型的参数,以使算法能够表现最佳(当然,你已经定义了什么"最好"实际是)。
为了使其更具体,这里有几个例子。如果您使用机器学习算法进行像KNN这样的聚类,您将注意到作为程序员,您必须指定所使用的模型(或质心)中的K的数量。你怎么做到这一点?你调整模型。有很多方法可以做到这一点。其中一个可以为模型尝试许多不同的K值,并希望了解组内和组内错误与模型中K的数量之间的关系。
作为另一个例子,让我们考虑支持向量机(SVM)分类。 SVM分类需要初始学习阶段,其中使用训练数据 调整分类参数。这实际上是指一个初始的参数调整阶段,作为程序员,您可能会尝试调整"这些模型是为了达到高质量的效果。
现在,你可能会认为这个过程很难,而且你是对的。实际上,由于难以确定最佳模型参数是什么,一些研究人员在使用更简单的替代方案进行充分试验之前使用复杂的学习算法。
答案 1 :(得分:0)
在机器学习的抽象意义上,调整正在使用/“学习”可变数据,这些数据基于已被识别为影响系统性能的一些参数,由一些适当的 1评估指标。改进的性能表明哪些参数设置更有利(调整)或更不利(未调整)。
将此转换为常识,调整实质上是为算法选择最佳参数,以便在给定工作环境(如硬件,特定工作负载等)的情况下优化其性能。调整机器学习是实现此目的的自动化过程。 / p>
例如,对于Apache Web服务器的所有部署,没有“完美的优化集”。系统管理员从“在工作中”的数据中学习,以便根据其特定环境优化自己的Apache Web服务器配置。现在想象一个执行同样事情的自动化过程,即一个可以自己学习数据的系统,这是机器学习的定义。以这种基于数据的方式调整自己的参数的系统将是机器学习中调整的一个实例。
1 这里提到的系统性能可以是很多东西,并且比计算机本身更通用。可以通过最小化自动驾驶汽车并行停车所需的调整次数或自动完成中的错误预测次数来衡量性能;或者它可能会根据广告维度或“Candy Crush”中的应用内购买次数,最大限度地延长平均访问者在网站上花费的时间。
巧妙地定义“绩效”意味着什么,既有意义又可衡量,这是成功的机器学习系统的关键。
答案 2 :(得分:0)
有点古怪,但是只想弄清楚参数是模型内部的东西(您无需设置)。您指的是超参数。
不同的机器学习算法具有一组超参数,可以对其进行调整以提高性能(或更糟)。查找最佳超参数的最常见且最简单的方法是通过所谓的网格搜索(跨一组值搜索)。
一些超参数的例子包括随机森林算法的树数或正则化的值。
重要说明:必须根据单独的一组训练数据调整超参数。大量需要机器学习的新人们将修改训练数据集上的超参数,直到他们在测试数据集上看到最佳性能为止。这样做实际上是在超参数的拟合。