精华内容
下载资源
问答
  • 目标函数

    千次阅读 2020-12-22 23:26:21
    目标函数分类任务的目标函数交叉熵损失函数合页损失函数坡道损失函数大间隔交叉熵损失函数中心损失函数总结 深度网络中的目标函数可谓是整个网络模型的“指挥棒”,目标函数也被称为“损失函数”或“代价函数”。...


    深度网络中的目标函数可谓是整个网络模型的“指挥棒”,目标函数也被称为“损失函数”或“代价函数”。通过样本的预测结果与真实标记产生的误差反向传播指导网络参数学习与表示学习。本文将介绍一些目标分类任务中的一些目标函数(因为我的研究方向更偏向于分类,所以有关回归的目标函数我就不在这里进行介绍)。另外,为了防止模型过拟合或达到其他训练目标——比如希望得到稀疏解,正则项通常作为对参数的约束也会加入到目标函数中一起指导模型训练。
    同样,这篇文章由于涉及太多数学公式,为了方便,所以我直接进行截图给大家了。

    分类任务的目标函数

    在这里插入图片描述

    交叉熵损失函数

    在这里插入图片描述

    合页损失函数

    在这里插入图片描述

    坡道损失函数

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    大间隔交叉熵损失函数

    在这里插入图片描述
    在这里插入图片描述

    中心损失函数

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    总结

    1.交叉熵损失函数是最为常用的分类目标函数,且效果一般优于合页损失函数;
    2.大间隔损失函数和中心损失函数从增大类间距离、减小类内距离的角度不仅要求分类准确,而且还有助提高特征的分辨能力;坡道损失函数是分类问题目标函数中的一类非凸损失函数,由于其良好的抗噪特性,推荐将其用于样本噪声或离群点较多的分类任务。
    :文章选自《解析深度学习—卷积神经网络原理与视觉实践》魏秀参著

    展开全文
  • xgboost自定义目标函数及评价函数 xgboost是支持自定义目标函数和评价函数的,官方给的demo如下: # user define objective function, given prediction, return gradient and second order gradient # this is ...

    xgboost自定义目标函数及评价函数

    xgboost是支持自定义目标函数和评价函数的,官方给的demo如下:

    # user define objective function, given prediction, return gradient and second order gradient
    # this is log likelihood loss
    def logregobj(preds, dtrain):
        labels = dtrain.get_label()
        preds = 1.0 / (1.0 + np.exp(-preds))
        grad = preds - labels
        hess = preds * (1.0 - preds)
        return grad, hess
    
    # user defined evaluation function, return a pair metric_name, result
    # NOTE: when you do customized loss function, the default prediction value is margin
    # this may make builtin evaluation metric not function properly
    # for example, we are doing logistic loss, the prediction is score before logistic transformation
    # the builtin evaluation error assumes input is after logistic transformation
    # Take this in mind when you use the customization, and maybe you need write customized evaluation function
    def evalerror(preds, dtrain):
        labels = dtrain.get_label()
        # return a pair metric_name, result. The metric name must not contain a colon (:) or a space
        # since preds are margin(before logistic transformation, cutoff at 0)
        return 'my-error', float(sum(labels != (preds > 0.0))) / len(labels)
        
    # training with customized objective, we can also do step by step training
    # simply look at xgboost.py's implementation of train
    bst = xgb.train(param, dtrain, num_round, watchlist, obj=logregobj, feval=evalerror)
    

    自定义可导目标函数逼近MAE

    如官方文档注释,这里的用户自定义目标函数需要一阶导数和二阶导数,而mae不可导,所以不能直接使用mae作为自定义目标函数。所以我们需要使用目标函数逼近mae函数。以下是stack overflow上提供的一些逼近MAE的函数。

    image

    从上图我们可以看到,xgb自带的MSE函数对于MAE的逼近并不理想,所以我们可以用其他几个函数来逼近MAE,注意,这里在使用其他几个自定义函数时,我们是无法使用gpu加速xgboost。以下为几个自定义目标函数的python实现代码。参考来源stack overflow

    def huber_approx_obj(preds, dtrain):
        d = preds - dtrain.get_label() 
        h = 1  #h is delta in the graphic
        scale = 1 + (d / h) ** 2
        scale_sqrt = np.sqrt(scale)
        grad = d / scale_sqrt
        hess = 1 / scale / scale_sqrt
        return grad, hess
        
    def fair_obj(preds, dtrain):
        """y = c * abs(x) - c**2 * np.log(abs(x)/c + 1)"""
        x = preds - dtrain.get_label()
        c = 1
        den = abs(x) + c
        grad = c*x / den
        hess = c*c / den ** 2
        return grad, hess
        
    def log_cosh_obj(preds, dtrain):
        x = preds - dtrain.get_label()
        grad = np.tanh(x)
        hess = 1 / np.cosh(x)**2
        return grad, hess
    

    以下自定义近似MAE导数参考kaggle讨论

    from numba import jit
    
    @jit
    def grad(preds, dtrain):
        labels = dtrain.get_label()
        n = preds.shape[0]
        grad = np.empty(n)
        hess = 500 * np.ones(n)
        for i in range(n):
            diff = preds[i] - labels[i]
            if diff > 0:
                grad[i] = 200
            elif diff < 0:
                grad[i] = -200
            else:
                grad[i] = 0
    return grad, hess
    
    展开全文
  • 理解神经网络中的目标函数

    万次阅读 2018-06-04 22:32:50
    为什么回归和分类任务中的目标函数是均方误差(MSE)(译者注:式 KaTeX parse error: Undefined control sequence: \eqref at position 1: \̲e̲q̲r̲e̲f̲{2})和对数交叉熵损失(译者注:式 KaTeX parse error...

    译者注:

    这篇博客主要面向拥有一定机器学习经验的人,会帮助你直观理解在训练神经网络时所用到的各种不同的目标函数。

    Introduction

    我写这篇博客的原因主要有 3 个:

    • 其他博客中经常会解释优化算法,例如 SGD(stochastic gradient descent)及其变种,但是少有介绍神经网络中的目标函数是如何构建的。为什么回归和分类任务中的目标函数是均方误差(MSE)(译者注:式 KaTeX parse error: Undefined control sequence: \eqref at position 1: \̲e̲q̲r̲e̲f̲{2})和对数交叉熵损失(译者注:式 KaTeX parse error: Undefined control sequence: \eqref at position 1: \̲e̲q̲r̲e̲f̲{1})?为什么添加正则项说得通?一般来说,通过深入理解目标函数,我们可以了解为什么神经网络在一些情况下表现较好,而在一些情况下表现较差。
      KaTeX parse error: Undefined control sequence: \label at position 45: …og q(x) \tag{1}\̲l̲a̲b̲e̲l̲{1}
      KaTeX parse error: Undefined control sequence: \label at position 69: …y_i})^2 \tag{2}\̲l̲a̲b̲e̲l̲{2}
    • 神经网络提供的是一种比较差的概率估计,并且一直遭受对抗样本adversarial example)的困扰(译者注:简单来说,就是机器学习模型可以很容易被一些特别设计的输入误导,例如在一个图像分类模型中,一个熊猫的图片稍微加一些噪声就可以导致被模型以高置信度识别成长臂猿,如下图所示,图自 Attacking Machine Learning with Adversarial Examples)。简单来说,神经网络即使错了她也非常自信。如果在现实生活中应用(例如自动驾驶汽车),那么这就是一个问题了。一个自动驾驶汽车在以 90 迈速度行驶的时候做的决定必须是确定的。我们如果要部署深度学习模型,那么必须要了解他们的优点和弱点。

    在这里插入图片描述

    • 我经常想如何从概率角度去解释神经网络和如何扩展到更广泛的机器学习模型框架。人们倾向于把神经网络的输出视为概率,那么在神经网络的概率解释和他们的目标函数之间有没有什么联系?

    这篇博文的主要灵感来源于我在剑桥大学计算和生物学习实验室(Computational and Biological Learning Lab与我的朋友 Brian Trippe 就贝叶斯神经网络所做的工作。我强烈建议你们去阅读 Brian 关于神经网络中的变分推理的论文

    Supervised machine learning

    在监督机器学习问题中,我们通常有一个由许多 ( x , y ) (x, y) (x,y) 数据对组成的数据集 D D D,然后试图去为下面的分布建模:

    p ( y ∣ x , θ ) p(y|x,\theta) p(yx,θ)

    例如在图像分类中, x x x 表示一幅图像, y y y 表示对应的图像标签, p ( y ∣ x , θ ) p(y|x,\theta) p(yx,θ) 就表示图像 x x x 的标签是 y y y 的概率,该模型由参数 θ \theta θ 定义。

    这样的模型称为判别模型(discriminative models)。在判别或者条件模型中,条件概率分布函数 p ( y ∣ x , θ ) p(y|x,\theta) p(yx,θ) 中的参数 θ \theta θ 由训练数据推断得到。

    基于观察数据(输入数据或者特征值),模型输出一个概率分布,然后据此分布来预测 y y y (类别或者真实值)。不同的模型需要估计的参数不同。线性模型(例如逻辑斯蒂回归,由一个大小和特征个数相同的权重集来定义)和非线性模型(例如神经网络,由每层的权重来定义)都可以用来近似这个条件概率分布。

    对于典型的分类问题来说,使用可学习的参数集 θ \theta θ 来定义从 x x x 到一个在不同标签上的范畴分布(categorical distribution 的映射。一个判别式分类模型会输出 N N N 个概率值, N N N 就是类别数目。每一个 x x x 属于一个单独的类别,但是模型最终输出的是在多个类别上的概率分布反映了其不确定性。一般来说,选择具有最大概率的类别作为最终结果。
    在这里插入图片描述
    需要注意的是判别式回归模型输出的是一个单独的预测值,而不是一个在所有实数上的分布。这和判别式分类模型有所不同,在分类模型中输出的是在所有类别上的分布。这是否意味着回归模型不是判别式模型?(Does this mean discriminative models fall apart for regression?)模型的输出不是应该告诉我们哪个值比其他值具有更高的概率吗?

    判别式回归模型的输出虽然比较有误导性(misleading),但是确实和一个众所周知的分布有关,高斯分布。事实证明,判别式回归模型的输出是一个高斯分布(一个高斯分布完全由平均值和标准差定义)的平均值。在这个前提下,你可以确定每个实数在给定输入 x x x 下的概率。

    实际上只有这个高斯分布的平均值被建模了,而对应的标准差要不就是没有被建模,要不就是在所有的 x x x 上都被设定成一个相同的常数。因此再判别式回归模型中,参数 θ \theta θ 定义的是一个从 x x x y y y 的高斯分布均值的映射。在决策时总是选择均值作为输出。同时输出均值和标准差的模型能传达出更多的信息,此时我们可以知道哪个 x x x 是不确定的(判断标准差的大小)。

    在这里插入图片描述

    一个模型在没有训练数据的地方需要是不确定的,而在有训练数据的地方需要是确定的。上图就是显示了这样一个模型,图自Yarin Gal 的博文。

    其他概率模型(如高斯过程)在回归问题的不确定性建模方面做得更好,而在同时建模均值和标准差时,判别式回归模型往往过于自信。

    一个高斯过程可以明确地对标准差进行建模来量化不确定性。高斯过程唯一的不足之处是在大数据集上表现欠佳。在下图中可以看到在有很多数据的区域,高斯过程模型的置信区间(由标准差决定)很小,而在数据比较少的时候,置信区间变得非常大。
    在这里插入图片描述

    高斯模型在有数据点的地方是确定的,而在其他地方则是不确定的,图自 sklearn

    判别模型在训练数据集上进行训练,以便学习数据中表示类别或实际值的属性。如果模型能够在测试集中为正确的样本类别分配高概率,或者接近于真实值的平均值,则模型表现良好。

    Link with neural networks

    当训练神经网络用于分类或者回归任务时,上述分布(范畴分布和高斯分布)的参数会使用神经网络来建模。

    当我们试图使用极大似然估计(MLE)来确定神经网络的参数 θ \theta θ 时,这就变得清楚了。MLE 用于找到能够使得训练数据似然(或者对数似然)最大的参数 θ \theta θ。更具体来说,就是使得下式最大化:

    KaTeX parse error: Undefined control sequence: \label at position 236: …ligned} \tag{3}\̲l̲a̲b̲e̲l̲{3}

    其中 p ( Y ∣ X , θ ) p(Y|X,\theta) p(YX,θ) 表示训练集中真实标签的分布。当 p ( Y ∣ X , θ ) p(Y|X,\theta) p(YX,θ) 接近于 1 时,就表示模型可以确定训练集中的真实标签或者均值。考虑到训练数据 ( X , Y ) (X,Y) (X,Y) 是由 N N N 个观察数据对组成的,训练数据的似然可以被重写为对数似然的和。

    在进行分类和回归时, p ( y ∣ x , θ ) p(y|x, \theta) p(yx,θ),即单个数据对 ( x , y ) (x,y) (x,y) 的后验概率,可以被重写为范畴分布和高斯分布。在优化神经网络时,目标是不断地更新参数(译者注:这里应该指的是神经网络的参数)以至于给定一个输入集 X X X,可以正确输出概率分布 Y Y Y 的参数(回归值或者类别)。这通常通过梯度下降算法及其变种来实现。所以为了获得一个 MLE 估计,目标就是根据真实输出来优化模型输出:

    • 最大化一个范畴分布的对数也就相当于最小化近似分布和真实分布之间的交叉熵。
    • 最大化一个高斯分布的对数也就相当于最小化近似均值和真实均值之间的均方误差。

    所以上式也就可以分别写成交叉熵损失和均方误差,也就是神经网络用于分类和回归时的目标函数。

    相比于更传统的概率模型来说,神经网络通过从输入到概率或者均值学习到的非线性函数比较难以解释。虽然这是一个神经网络的重要缺点,但是神经网络可以对复杂函数进行建模,这也是一个巨大的优势。根据本节的推导,在神经网络中,很明显用于确定参数的极大似然估计的目标函数可以从概率角度进行解释。

    一个关于神经网络的有趣解释是她们与广义线性模型(线性回归、逻辑斯蒂回归……)的关系。神经网络不是将特征进行线性组合(像 GLM 中那样),而是高度的非线性组合。

    Maximum-a-posteriori

    但是,神经网络如果可以被解释为概率模型,那么为什么她们产生的是一个比较差的概率估计,而且遭受着对抗样本的困扰?为什么她们需要如此多的数据?

    我喜欢将不同的模型(逻辑斯蒂回归、神经网络……)想象为在不同的搜索空间中寻找好的函数逼近器(function approximators)。虽然具有非常大的搜索空间意味着在建模后验概率时有很大的灵活性,但它也是有代价的。例如神经网络被证明是通用函数逼近器,,这意味着只要有足够的参数她们可以逼近任何函数(awesome!)。然而为了保证函数能够在整个数据空间内得到校准(calibrated),这就需要非常大的数据集了(expensive!)。

    首先要指出的是标准的神经网络是用 MLE 来进行优化的。这样会导致过度拟合训练数据和需要很多数据才能得到一个比较好的结果。机器学习的目的不是找到一个可以很好解释训练数据的模型。你会宁愿去找一个这样的模型:可以很好处理新数据(译者注:泛化能力强),而且对和训练数据明显不同的的数据保持谨慎(unsure for data that is significantly different from the train data.)。

    使用最大后验概率(maximum-a-posteriori,MAP)方法是一个有效的选择,当模型有过拟合问题时可以试图使用这种方法。那么 MAP 在神经网络中对应于什么?其对目标函数有何影响?

    和 MLE 类似,在神经网络中 MAP 同样可以被重写为一个目标函数。实际上在使用 MAP 的时候,假设 θ \theta θ 服从一个先验分布,在给定数据的情况下,你是在最大化参数集 θ \theta θ 的概率:

    KaTeX parse error: Undefined control sequence: \label at position 176: …ligned} \tag{4}\̲l̲a̲b̲e̲l̲{4}

    在使用 MLE 的使用,只有式上式中的第一项被考虑到了(模型对训练数据解释地有多好)(译者注:参见式 KaTeX parse error: Undefined control sequence: \eqref at position 1: \̲e̲q̲r̲e̲f̲{3})。而在 MAP 中,模型满足先前的假设( θ \theta θ 符合先验分布的程度)以减少过拟合也很重要。

    θ \theta θ 服从一个期望为 0 的高斯分布相当于在目标函数后加上一个 L2 正则项(保证许多权重都比较小)(译者注:式 KaTeX parse error: Undefined control sequence: \eqref at position 1: \̲e̲q̲r̲e̲f̲{5}),而让 θ \theta θ 服从一个拉普拉斯分布(Laplace distribution)则相当于在目标函数后加上一个 L1 正则项(保证许多权重都为 0)(译者注:式 KaTeX parse error: Undefined control sequence: \eqref at position 1: \̲e̲q̲r̲e̲f̲{6})。

    KaTeX parse error: Undefined control sequence: \label at position 35: …N |w_i| \tag{5}\̲l̲a̲b̲e̲l̲{5}
    KaTeX parse error: Undefined control sequence: \label at position 37: …(w_i)^2 \tag{6}\̲l̲a̲b̲e̲l̲{6}

    译者注:为了便于阅读,我将拉普拉斯分布的部分相关信息放在这里,参考自 Laplace distribution - Wikipedia

    • 概率密度函数图像:在这里插入图片描述
    • 概率密度函数(PDF): 1 2 b exp ⁡ ( − ∣ x − μ ∣ b ) \dfrac{1}{2b} \exp \left( - \dfrac{|x-\mu|}{b} \right) 2b1exp(bxμ)
    • 期望、中位数、众数: μ \mu μ
    • 方差: 2 b 2 2b^2 2b2

    A full Bayesian approach

    在 MLE 和 MAP 中都是使用一个模型(只有一组参数)。特别是在图像这种复杂数据中,数据空间中的某些特定区域可能覆盖不到。模型在这些区域的输出取决于模型的随机初始化和训练过程,导致这些区域的概率估计很差。

    尽管 MAP 能够保证模型不会在这些区域过拟合,但是这仍然会导致模型过度自信。在一个全贝叶斯方法中,这可以通过在多个模型上进行平均来解决,获得更好的不确定性估计。该方法的目的不是学习一个单独的参数集,而是学习到一个参数分布。如果所有的模型在未覆盖区域提供的是不同的估计,那么这就表明这些区域存在很大的不确定性。通过平均这些模型,最终的结果是一个在这些区域不确定的模型。这就是我们想要的!

    在下篇博文中我将讨论贝叶斯神经网络(Bayesian Neural Networks)以及她们是如何解决传统神经网络中存在的上述问题的。贝叶斯神经网络(BNN’s)仍然是一个进行中的研究工作,还没有很好地方法来训练她们。

    我强烈推荐 Yarin Gal 的博文 Uncertainty in Deep Learning

    展开全文
  • 目标函数优化

    千次阅读 2020-03-23 18:09:24
    目标函数优化 1.定义 所谓优化就是在某种确定规定下,使得个体的性能最优。多目标优化,多于一个的数值目标在给定区域上的最优化问题称为多目标优化。 2.解及解的形式 求解多目标优化问题的过程就是寻找Pareto最优...

    多目标函数优化
    在这里插入图片描述
    1.定义
    所谓优化就是在某种确定规定下,使得个体的性能最优。多目标优化,多于一个的数值目标在给定区域上的最优化问题称为多目标优化。
    2.解及解的形式
    求解多目标优化问题的过程就是寻找Pareto最优解(非劣解、有效解)的过程。即在多目标优化中对某些子目标的优化不能影响到其它子目标的优化而容许的整个多目标的最优解。所谓多目标优化问题的最优解就是指Pareto最优解,且不再包含其他最优解。
    3. 求解方法
    3.1 产生式方法
    如果没有先验知识,只能采用产生式方法来检验所有的非支配可选解。需要作者从整个Pareto解中做选择来进行必要的价值判断。
    3.2基于偏好的方法
    基于偏好的方法试图得到妥协解或偏好解。基于偏好的方法能够用正式和有结构的方式来清晰表达其偏好。
    (1)权重和方法:权重可以理解为目标之间相对重要性或价值,或者对目标的偏好。
    (2)效用函数法:效用函数是偏好结果的一种数学表示方法,它将目标空间的点影射为实数,数越大表明对该点偏好程度越高
    (3)妥协函数法:寻找与理想点最接近的解
    3.3约束法
    4.适应度分配方法
    4.1 权重和方法:
    权重可以理解为目标之间相对重要性或价值,或者对目标的偏好。
    (优点:通过算中和求得的全局最优解对应Pareto前端的一个解;局部最优解对应局部Pareto最优解;通过改变权值可以搜索到所有凸Pareto解)
    (缺点:不能处理非凸的Pareto;很难找到均匀分布的Pareto解)
    4.2矢量评价法(VEGA)
    循环过程中根据多个目标选出若干下一代中的优秀个体(即子种群),然后将整个种群打乱并执行交叉变异,目的在于不同种群之间进行信息交流,它保护了单个目标上的最优个体的生存,同时为那些多于一个目标上好于平均值的个体提供合理被选择概率。
    优点:简单,适合寻找Pareto front 的端点),
    (缺点:很难处理非凸问题)
    4.3 Pareto等级法:
    根据占优划分等级,对个体适应度的分配策略。
    (优点:可以快速找到Pareto前端,有效保护种群多样性)
    (缺点:非支配排序的时间复杂度很大;不支持精英策略;需要自己指定共享参数)
    4.4贪婪保护法(SPEA)
    在外部群体中对占优解进行排序;个体适应度与外部群体比它性能优的个体数目相关,使用Pareto支配关系保持种群多样性,使用聚类方法减少非支配集。
    (优点:可处理任意的目标函数,可产生解的分布,确定了一种无需参数的共享方法)
    (缺点:因为确定了一个外部解集,故计算量大)
    5.解的评价指标
    5.1多目标优化算法的评级指标通常有以下几项:逼近性GD(Generational Distance)、均匀性SP(Spacing)、宽广性EX、最优解数目ER(Error Ratio)、收敛性度量值γγ和多样性度量值ΔΔ。
    (1) 逼近性GD用来描述算法所获得的非劣最优解与Pareto前端的距离
    - 希望算法找到的Pareto 前端与实际的Pareto 前端的距离应尽可能的接近;
    (2)均匀性SP用来描述非劣解在Pareto前端上的分布范围。
    - 希望找到的Pareto 最优解具有较好的分布(如均匀分布、正态分布);
    (3)宽广性EX用来描述非劣最优解的分布范围。
    - 希望所找到的Pareto 前端的分布范围尽可能的宽广,即尽可能的覆盖每个子目标函数的可能取值范围
    (4)收敛性度量值γγ用来衡量一组已知的Pareto最优解集的收敛范围。
    (5)多样性度量值ΔΔ用来衡量Pareto前端的分布。
    5.2 性能的比较
    (1)- 直接比较法:
    它比较了两个非支配集AA 和BB 直接使用标量测度R(A,B)R(A,B),其中描述了A 比B 好多少。如:AA, BB。计算R(A,B)R(A,B)。
    优点:与独立比较相比,计算量低,不需要知道任何帕累托集;
    缺点:如果两套不同的基数和/或集合的分布是不均匀的,那么C 的度量提供了不可靠的结果。
    (2) - 间接比较法:
    它选择一个参考集,比较两个非支配集与这个参考集,然后比较结果。如:AA, BB。中间变量为Pareto,分别和他进行对比。
    优点:易于理解、计算量低;
    缺点:需要知道Pareto 前端,:度量只适用于有限数量的帕累托最优解。
    (3)- 独立比较法:
    它是衡量某些独立的属性的每个设置,并比较了这两种测量结果。如:S(A)S(A),和S(B)S(B),再比较它们。
    优点:没有必要知道帕累托或其他参考点使用、它是独立的、意义直观;
    缺点:需要非常大的计算量,这使得它完全适合于目标或大非大量支配集。

    展开全文
  • 目标函数常见解法

    千次阅读 2018-12-12 20:27:06
    如何求解目标函数 简介 相信大家在写程序的时候,尤其是一些机器学习算法的时候,都会遇到将自己的目标函数使用矩阵形式表达的情况。大多数时候,我们写目标函数都是以的形式递归的计算,但是写程序的时候一般输入...
  • 目标函数、损失函数、代价函数

    千次阅读 2018-04-21 19:31:48
    目标函数、损失函数、代价函数http://www.cnblogs.com/Belter/p/6653773.html注:代价函数(有的地方也叫损失函数,Loss Function)在机器学习中的每一种算法中都很重要,因为训练模型的过程就是优化代价函数的过程...
  • 损失函数,代价函数,目标函数2. 损失函数2. 代价函数2.1 为什么需要代价函数2.2 代价函数的形式3. 代价函数的定义 神经网络和深度学习系列笔记: 传送门 【前言】 这下函数是算法好坏的评价标准之一。 所讨论的...
  • 损失函数/成本函数/目标函数的区别

    千次阅读 2018-11-18 17:33:37
      导读 在我刚开始学机器学习的时候也是闹不懂这三者的区别,当然,嘿嘿,初学者的...损失函数一般指的是针对单个样本 i 做的损失,公式可以表示为:     当然,只是举个例子,如果较真的话,还可以有交...
  • 什么是目标函数?定义是:指所关心的目标与相关的因素的函数关系。举个例子,假如我们想要预测公司楼下手抓饼店明天能卖多少张手抓饼,已知过去10天每天卖多少,以及每天的天气情况,是否有节假日,和手抓饼店老板和...
  • 深度学习: 目标函数

    千次阅读 2018-02-01 22:18:53
    目标函数 是 深度学习之心,是 模型训练 的 发动机 。 目标函数 (object function) = 损失函数 (loss function) = 代价函数 (cost function) 作用: 计算 预测结果 与 真实标记 之间的 误差,并通过 误差反向...
  • 代价函数,损失函数,目标函数区别

    万次阅读 多人点赞 2018-07-15 12:15:43
    一:损失函数,代价函数,目标函数定义首先给出结论:损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差。代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是...
  • XGBoost原理及目标函数推导详解

    千次阅读 2019-06-12 17:02:34
    XGBoost(eXtreme Gradient Boosting)全名叫极端梯度提升,XGBoost是集成学习方法的王牌,在Kaggle及工业界都有广泛的应用并取得了较好的成绩,本文较详细的介绍了XGBoost的算法原理及目标函数公式推导。...
  • 目标函数,损失函数和代价函数 基本概念: 损失函数:计算的是一个样本的误差 代价函数:是整个训练集上所有样本误差的平均 目标函数:代价函数 + 正则化项 通常机器学习每一个算法中都会有一个目标函数,算法...
  • 多目标优化中目标函数的编写

    千次阅读 2018-11-07 22:35:29
    多目标优化中目标函数的编写管网污染情况下水质监测传感器布设实验介绍目标介绍Python代码后续 管网污染情况下水质监测传感器布设 实验介绍 使用EPANET2进行污染物注入实验,设置水力模拟时间为12小时,步长为1小时,...
  • 逻辑回归的目标函数

    千次阅读 2019-09-30 13:29:07
    ​有了目标函数之后,我们的任务就比较明确了,就是需要寻找让目标函数最大化的参数w和b。 所以,接下来的问题就变成了一个经典的优化问题。 逻辑回归目标函数做一个变换: 到目前这一步已经不能再简化了,一般...
  • 利用进化多目标优化算法NSGA-II求解多目标函数优化问题,选择三个多目标优化问题(包括函数表达式、决策变量取值范围)进行求解。本文选取两目标优化ZDT问题集中的三个问题,ZDT问题集均基于以下f1和f2的优化,其...
  • 目标函数(损失函数,代价函数)

    千次阅读 2019-01-06 11:47:17
    深度网络中的目标函数通过样本的预测结果与真实标记产生的误差反向传播指导网络参数学习与表示学习。 为防止模型过拟合或达到其他训练目标(如希望得到稀疏解),正则项通常作为对参数的约束也会加入目标函数中一起...
  • 【机器学习】代价函数,损失函数,目标函数区别

    万次阅读 多人点赞 2018-03-03 10:45:26
    一:损失函数,代价函数,目标函数定义首先给出结论:损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差。代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是...
  • 目标函数的经典优化算法介绍

    千次阅读 2017-11-28 06:43:29
    本文使用通俗的语言和形象的图示,介绍了随机梯度下降算法和它的三种经典变体,并提供了完整的实现代码。 GitHub 链接:https://github.com/ManuelGonzalezRivero/3dbabove ... 代价函数的多种优
  • xgboost自定义目标函数和评估函数

    千次阅读 2018-05-31 17:07:39
    前言:在有些比赛中,需要根据自己的需求来自定义目标函数和评估函数,就自己而言,目标函数需要自定义的场景不太多。为了充分发挥xgboost的框架作用,很多时候自定义评估函数的需求相对强烈。在之前的博文中提到...
  • 目标函数与损失函数的差别

    千次阅读 2017-02-17 21:09:55
    今天微博上看到有朋友转发了Quora上的一个提问:目标函数和损失函数是一样的吗? 评论区里几乎所有人都表示:这两不就是同一个东西吗?但是总感觉有哪里不对。数学讲究用最精简的语言去描述对象,为什么同一个东西会...
  • 目标函数与损失函数的区别

    千次阅读 2018-10-07 20:27:31
    损失函数度量的是预测值与真实值之间的差异。损失函数通常写作,代表预测值,代表真实值。例如square loss定义为,square loss定义为。...任何一个优化问题包括两个部分:(1)目标函数,最终是要最大化或者最...
  • x∗∈χx^{*}\in \chix∗∈χ,使 f(x∗)=min{f(x):x∈χ}f(x^{*} )=min\{f(x):x\in \chi \}f(x∗)=min{f(x):x∈χ},其中x是n维向量,χ\chiχ是x的可行域,f是χ\chiχ上的实值函数。 凸优化问题是指χ\chiχ是...
  • fmincon 目标函数与非线性约束(nonlcon)带参数一、目标函数1.首先建立简单的目标函数(不带梯度)2.建立标准目标函数(带梯度)二、非线性约束三、目标函数与非线性约束带参数1.参数仅在目标函数中:2.目标函数与...
  • Kmeans目标函数原理分析

    千次阅读 2019-07-07 11:25:54
  • 今天看到一篇很精简的文章来说明目标函数、损失函数以及正则项是什么。以下是文章正文。 转自:https://xiaozhuanlan.com/topic/7504682391 什么是目标函数? 定义是:指所关心的目标与相关的因素的函数关系。...
  • 参考知乎:https://www.zhihu.com/question/52398145基本概念:损失函数...目标函数是一个与他们相关但更广的概念,对于目标函数来说在有约束条件下的最小化就是损失函数(loss function)。举个例子解释一下:(图片...
  • GAN目标函数的理解

    千次阅读 2019-01-15 12:30:34
    ...对于这个公式的理解,辨别函数D希望能使真实数据D(x)概率更大,D(G(z))更小,所以对于D来说,希望这个目标函数值更大,生成函数G希望G(z)更接近x,使得D(G(Z))更大,这时目标函数值更小。 ...
  • 目标函数是一个函数,这个得明确。它的作用就是度量模型的好坏或者用于某些优化问题求解。 理解最好的方式就是举例子。 机器学习中分类任务是指将提供的输入得到对应的离散值输出,输出就是所属类别。 拿分类任务...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,208,467
精华内容 483,386
关键字:

目标函数