AI 术语通俗词典:目标函数
目标函数是统计学、优化理论、机器学习和人工智能中非常常见的一个术语。它用来描述模型训练过程中真正要被优化的整体目标。换句话说目标函数是在回答模型训练时最终到底要把什么量降到最小或者把什么量提升到最大。如果说损失函数回答的是“某一次预测错得有多严重”那么目标函数回答的就是“把所有样本、所有约束、所有惩罚项综合起来之后模型训练真正追求的总目标是什么”。因此目标函数常用于模型训练、参数估计、最优化求解和正则化建模在人工智能与数据分析中具有重要基础意义。一、基本概念什么是目标函数目标函数Objective Function是指在一个优化问题中模型最终希望最小化或最大化的那个函数。在机器学习中模型训练通常不是随意调参数而是围绕一个明确目标来进行。这个目标有时是“让误差尽量小”有时是“让似然尽量大”有时还会同时考虑“拟合效果”和“模型复杂度”。把这些内容统一写成一个整体函数之后这个函数就叫作目标函数。若模型参数记为 θ那么目标函数常可写为其中• θ 表示模型参数• J(θ) 表示在参数 θ 下模型对应的整体目标值如果训练目标是“让它尽可能小”则常写为如果训练目标是“让它尽可能大”则常写为其中• θ̂ 表示最终求得的最优参数• arg min 表示“使目标函数取得最小值的参数”• arg max 表示“使目标函数取得最大值的参数”从通俗角度看目标函数可以理解为模型训练时一直盯着看的“总成绩单”。例如一个学生平时做题时可能会同时看很多东西• 某一道题做错了多少• 总共错了多少题• 是否因为解法太复杂被扣分• 最终总评是多少如果把这些都综合成一个最终评分标准那么这个最终评分标准就很像目标函数。也就是说目标函数并不一定只包含“误差”这一项它更像是一个训练总目标。它回答的不是“局部上错了多少”而是“整体上该朝哪个方向优化”。二、为什么需要目标函数目标函数之所以重要是因为模型训练必须有一个明确的优化方向。如果没有目标函数模型虽然可以不断调整参数但它并不知道• 当前调整是变好了还是变差了• 下一步应该继续往哪个方向改• 多个因素之间该如何权衡例如在实际建模中我们往往不只关心“训练误差小不小”还可能同时关心• 模型是否过于复杂• 参数是否过大• 拟合是否稳定• 泛化能力是否更好这时就不能只靠单个局部指标来训练而需要一个统一的“总目标”把这些要求整合起来。这个统一标准就是目标函数。从通俗角度看目标函数可以理解为模型训练时的总指挥。如果没有它模型就像一个只知道“瞎试参数”的系统有了它之后模型训练才真正变成了一个有方向、有标准的优化过程。因此目标函数的作用不是简单“记一个公式”而是• 明确训练到底在追求什么• 把训练问题转化为一个优化问题• 为参数更新提供统一依据三、目标函数的重要性与常见应用场景1、目标函数的重要性目标函数之所以重要是因为它决定了模型训练的根本方向。首先目标函数把“模型应该变好”转化成了可计算、可优化的问题。如果没有目标函数我们只能笼统地说希望模型更准确、更稳定但无法真正告诉算法怎样更新参数。有了目标函数之后这种模糊要求就变成了明确的优化任务。其次目标函数能够统一多个训练要求。在很多问题中我们不只关心拟合误差还关心参数规模、模型复杂度或概率解释。目标函数可以把这些要求整合到同一个式子里从而让训练过程更有整体性。再次目标函数直接影响模型最终学出的结果。不同目标函数对应不同的优化方向也会塑造出不同的模型行为。因此目标函数并不是一个附属细节而是模型设计中的核心部分。可以概括地说模型参数在变但真正决定“往哪儿变”的是目标函数。2、常见应用场景1在回归问题中目标函数常用于最小化预测误差例如在线性回归中常见目标就是让残差平方和或均方误差尽可能小。2在分类问题中目标函数常用于最大化分类正确性或最小化分类损失例如逻辑回归、神经网络分类器中常见目标函数会围绕交叉熵展开。3在带正则化的模型中目标函数常用于同时权衡拟合能力与模型复杂度这时目标函数通常不只是一个损失项而是“损失 惩罚项”的组合。4在概率模型中目标函数常表现为似然函数或对数似然函数例如最大似然估计就是通过最大化某个似然相关目标来求参数。5在优化算法中目标函数是梯度下降、牛顿法等方法的直接作用对象也就是说优化算法并不是抽象地“调参数”而是在不断地让目标函数朝更优方向变化。四、目标函数与损失函数的关系目标函数和损失函数经常一起出现但它们并不完全相同。1、损失函数更常描述单个样本的误差例如对某一个样本损失可写为其中• yᵢ 表示第 个样本的真实值• ŷᵢ 表示第 个样本的预测值• L(yᵢ, ŷᵢ) 表示该样本对应的损失它强调的是这个样本到底错了多少。2、目标函数更常描述整体训练目标模型训练时通常不是只看一个样本而是把所有样本的损失综合起来再加上可能存在的正则项或约束项。例如一个常见的目标函数可以写成如果再加入正则化还可以写成其中• n 表示样本数• λ 表示正则化强度• Ω(θ) 表示正则项也就是说损失函数更像“单题扣分”目标函数更像“全卷总评”。3、有时二者会被混用在很多入门材料和实际表达中人们有时会把“整体损失”也直接叫作损失函数。这种说法并不罕见但如果从更严格的角度区分• 损失函数偏向单样本误差• 目标函数偏向整体优化目标五、目标函数与代价函数的关系目标函数还常和另一个术语一起出现代价函数Cost Function。很多情况下• 目标函数• 代价函数• 整体损失函数这几个词会被交叉使用。在很多教材中代价函数通常强调“多个样本上的平均损失或总损失”因此它和目标函数往往非常接近。但“目标函数”这个说法更宽泛因为它不仅可以是损失也可以是似然、收益、正则化后的综合目标等。从通俗角度看• “损失函数”更强调错了多少• “代价函数”更强调整体代价有多大• “目标函数”更强调训练最终要优化的对象是什么因此目标函数是一个更总括性的概念。六、目标函数为什么有时是“最小化”有时是“最大化”初学者常会疑惑为什么有的目标函数写成 arg min有的写成 arg max原因并不复杂本质上只是“优化目标的表达方式不同”。1、最小化形式如果目标函数表示的是• 误差• 损失• 代价• 偏差那么通常希望它越小越好因此常写成2、最大化形式如果目标函数表示的是• 似然• 收益• 评分• 正确概率那么通常希望它越大越好因此常写成3、很多最大化问题也可以改写成最小化问题例如最大化对数似然常可以等价改写为最小化负对数似然因此在机器学习里“最小化”和“最大化”并不矛盾本质上只是看你把目标写成哪种形式。七、带正则化的目标函数目标函数最常见、也最值得强调的一种形式就是带正则化的目标函数。例如其中• (θ) 表示原始损失• Ω(θ) 表示正则项• λ 表示正则化强度这说明目标函数并不只是“误差本身”而是可能综合考虑• 拟合训练数据的能力• 参数是否过大• 模型是否过于复杂从通俗角度看这就像给模型制定了一套更完整的评分标准不只看它答对了多少还看它是不是答得太复杂、太夸张、太不稳定。因此在很多模型中目标函数实际上是一个“综合目标”而不只是单纯的误差函数。八、使用目标函数时需要注意的问题1、目标函数不只是数学形式它决定训练方向选了什么目标函数本质上就是告诉模型“你要朝什么方向学”。因此目标函数的选择会直接影响模型最终学出的规律。2、目标函数与任务类型必须匹配回归问题、分类问题、概率建模问题、排序问题适合的目标函数通常并不相同。如果目标函数和任务本质不匹配模型训练往往会很不自然。3、目标函数小不一定表示所有业务指标都最好目标函数强调的是训练时的优化方向但业务上关心的最终指标可能还包括准确率、召回率、AUC、R² 等。因此训练目标和最终评估目标有时需要结合来看。4、目标函数可能包含多个部分很多初学者容易把目标函数理解成“一个单独误差公式”但实际上它常常是• 数据项• 惩罚项• 约束项等内容的综合。5、目标函数是训练问题的核心抽象一旦把训练问题写成目标函数形式很多看似不同的方法就能统一看成“在优化不同的目标”。这也是为什么目标函数在机器学习中如此基础。九、Python 示例下面给出两个简单示例用来说明目标函数在模型训练中的基本含义。示例 1把多个样本的平方误差写成整体目标函数# 真实值y_true [3, 5, 7, 9] # 预测值y_pred [2.8, 5.2, 6.9, 9.1] # 计算整体目标函数这里用均方误差表示objective 0for i in range(len(y_true)): objective (y_true[i] - y_pred[i]) ** 2 objective objective / len(y_true) print(真实值, y_true)print(预测值, y_pred)print(目标函数值, objective)这个例子展示了目标函数最基本的形式把多个样本上的误差综合起来形成一个整体数值作为训练时需要尽量减小的对象。示例 2在目标函数中加入正则项# 假设模型参数theta [1.5, -0.8, 0.3] # 假设原始损失loss 2.0 # 计算 L2 正则项regularization 0for value in theta: regularization value ** 2 # 正则化强度lam 0.1 # 计算带正则化的目标函数objective loss lam * regularization print(原始损失, loss)print(参数, theta)print(正则项, regularization)print(目标函数值, objective)这个例子展示了更完整的目标函数思想训练时模型不只关心拟合误差还会同时考虑参数规模。这样一来目标函数就变成了一个综合性的优化目标。 小结目标函数是模型训练过程中真正要被优化的整体目标。它通常把多个样本上的损失、可能的正则项以及其他训练要求综合起来形成一个统一的优化标准。在机器学习中模型训练本质上就是在寻找使目标函数更优的参数。对初学者而言可以把它理解为损失函数说明“某一次错了多少”而目标函数说明“训练整体到底在追求什么”。“点赞有美意赞赏是鼓励”
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2583887.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!