精华内容
下载资源
问答
  • 信息论与编码理论实验
  • 分析了影响行车时间的各种因素,结合图论中最短路径算法,建立了基于RBF神经网络的路径代价函数模型.基于该函数模型,可以计算出交通图中任意给定两地间的时间最优路径.将该模型应用于实际路况进行有效性验证,得到了...
  • 代价函数

    2017-07-30 21:30:36
    方差代价函数代价函数经常用方差代价函数(即采用均方误差MSE),比如对于一个神经元(单输入单输出,sigmoid函数),定义其代价函数为: 其中y是我们期望的输出,a为神经元的实际输出【 a=σ(z), where z=wx+b ...

    代价函数

    1. 方差代价函数

    代价函数经常用方差代价函数(即采用均方误差MSE),比如对于一个神经元(单输入单输出,sigmoid函数),定义其代价函数为:
    公式
    其中y是我们期望的输出,a为神经元的实际输出【 a=σ(z), where z=wx+b 】。

    2. 交叉熵代价函数

    公式对应一个神经元,多输入单输出
    公式
    其中y为期望的输出,a为神经元实际输出【a=σ(z), where z=∑Wj*Xj+b】
    与方差代价函数一样,交叉熵代价函数同样有两个性质:

    • 非负性。(所以我们的目标就是最小化代价函数)
    • 当真实输出a与期望输出y接近的时候,代价函数接近于0.(比如y=0,a~0;y=1,a~1时,代价函数都接近0)。

    3. 总结

    • 当我们用sigmoid函数作为神经元的激活函数时,最好使用交叉熵代价函数来替代方差代价函数,以避免训练过程太慢。
    • 不过,你也许会问,为什么是交叉熵函数?导数中不带σ′(z)项的函数有无数种,怎么就想到用交叉熵函数?这自然是有来头的,更深入的讨论就不写了,少年请自行了解。
    • 另外,交叉熵函数的形式是−[ylna+(1−y)ln(1−a)]。而不是−[alny+(1−a)ln(1−y)],为什么?因为当期望输出的y=0时,lny没有意义;当期望y=1时,ln(1-y)没有意义。而因为a是sigmoid函数的实际输出,永远不会等于0或1,只会无限接近于0或者1,因此不存在这个问题。

    4. log似然代价函数

    Softmax回归中将x分类为类别j的概率为:
    这里写图片描述

    这里写图片描述
    或者
    这里写图片描述
    其中,y_k表示第k个神经元的输出值,a_k表示第k个神经元对应的真实值,取值为0或1。
    简单理解一下这个代价函数的含义。在ANN中输入一个样本,那么只有一个神经元对应了该样本的正确类别;若这个神经元输出的概率值越高,则按照以上的代价函数公式,其产生的代价就越小;反之,则产生的代价就越高。

    可以看到,Softmax代价函数与logistic代价函数在形式上非常类似,只是在Softmax损失函数中对类标记的 个可能值进行了累加。

    参考:
    http://blog.csdn.net/u012162613/article/details/44239919
    http://www.cnblogs.com/Belter/p/6653773.html?utm_source=itdadao&utm_medium=referral
    http://deeplearning.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92
    http://blog.csdn.net/u014313009/article/details/51045303

    展开全文
  • 一、损失函数、代价函数、目标函数定义 首先给出结论: 损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差。 代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也...

    一、损失函数、代价函数、目标函数定义

    首先给出结论:

    损失函数(Loss Function )是定义在单个样本上的,算的是一个样本的误差。

    代价函数(Cost Function )是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。

    目标函数(Object Function)定义为:最终需要优化的函数。等于经验风险+结构风险(也就是Cost Function + 正则化项)。

    二、目标函数和代价函数的区别

            关于目标函数和代价函数的区别还有一种通俗的区别:目标函数是最大化或者最小化,而代价函数是最小化。

           举个例子解释一下:(图片来自Andrew Ng Machine Learning公开课视频)上面三个图的函数依次为 , , 。我们是想用这三个函数分别来拟合Price,Price的真实值记为

            我们给定 ,这三个函数都会输出一个 ,这个输出的 与真实值 可能是相同的,也可能是不同的,为了表示我们拟合的好坏,我们就用一个函数来度量拟合的程度,比如: ,这个函数就称为损失函数(loss function),或者叫代价函数(cost function)(有的地方将损失函数和代价函数没有细分也就是两者等同的)。

           损失函数越小,就代表模型拟合的越好。那是不是我们的目标就只是让loss function越小越好呢?还不是。这个时候还有一个概念叫风险函数(risk function)。风险函数是损失函数的期望,这是由于我们输入输出的 遵循一个联合分布,但是这个联合分布是未知的,所以无法计算。但是我们是有历史数据的,就是我们的训练集, 关于训练集的平均损失称作经验风险(empirical risk),即 ,所以我们的目标就是最小化 ,称为经验风险最小化

           到这里完了吗?还没有。如果到这一步就完了的话,那我们看上面的图,那肯定是最右面的 的经验风险函数最小了,因为它对历史的数据拟合的最好嘛。但是我们从图上来看肯定不是最好的,因为它过度学习历史数据,导致它在真正预测时效果会很不好,这种情况称为过拟合(over-fitting)。

           为什么会造成这种结果?大白话说就是它的函数太复杂了,都有四次方了,这就引出了下面的概念,我们不仅要让经验风险尽量小,还要让结构风险尽量小。。这个时候就定义了一个函数 ,这个函数专门用来度量模型的复杂度,在机器学习中也叫正则化(regularization)。常用的有 , 范数。到这一步我们就可以说我们最终的优化函数是: ,即最优化经验风险和结构风险,而这个函数就被称为目标函数。结合上面的例子来分析:最左面的 结构风险最小(模型结构最简单),但是经验风险最大(对历史数据拟合的最差);最右面的 经验风险最小(对历史数据拟合的最好),但是结构风险最大(模型结构最复杂);而 达到了二者的良好平衡,最适合用来预测未知数据集。

    三、详解代价函数

            什么是代价函数?

            假设有训练样本(x, y),模型为h,参数为θ。h(θ) = θTx(θT表示θ的转置)。

         (1)概况来讲,任何能够衡量模型预测出来的值h(θ)与真实值y之间的差异的函数都可以叫做代价函数C(θ),如果有多个样本,则可以将所有代价函数的取值求均值,记做J(θ)。因此很容易就可以得出以下关于代价函数的性质:对于每种算法来说,代价函数不是唯一的;代价函数是参数θ的函数;总的代价函数J(θ)可以用来评价模型的好坏,代价函数越小说明模型和参数越符合训练样本(x, y);J(θ)是一个标量;

         (2)当我们确定了模型h,后面做的所有事情就是训练模型的参数θ。那么什么时候模型的训练才能结束呢?这时候也涉及到代价函数,由于代价函数是用来衡量模型好坏的,我们的目标当然是得到最好的模型(也就是最符合训练样本(x, y)的模型)。因此训练参数的过程就是不断改变θ,从而得到更小的J(θ)的过程。理想情况下,当我们取到代价函数J的最小值时,就得到了最优的参数θ,记为:  例如,J(θ) = 0,表示我们的模型完美的拟合了观察的数据,没有任何误差。

         (3)在优化参数θ的过程中,最常用的方法是梯度下降,这里的梯度就是代价函数J(θ)对θ1, θ2, ..., θn的偏导数。由于需要求偏导,我们可以得到另一个关于代价函数的性质:选择代价函数时,最好挑选对参数θ可微的函数(全微分存在,偏导数一定存在)
          代价函数的常见形式经过上面的描述,

           一个好的代价函数需要满足两个最基本的要求:能够评价模型的准确性,对参数θ可微

          (1)在线性回归中,最常用的是均方误差(Mean squared error),

    即  m:训练样本的个数;

    hθ(x):用参数θ和x预测出来的y值;

    y:原训练样本中的y值,也就是标准答案上角标

    (i):第i个样本

         (2)在逻辑回归中,最常用的是代价函数是交叉熵(Cross Entropy),交叉熵是一个常见的代价函数,在神经网络中也会用到。回到线性回归模型中,训练集和代价函数如下图

           如果我们还用J(θ)函数做为逻辑回归模型的代价函数,用H(x) = g(θ^T * x),曲线如下图所示发现J(θ)的曲线图是"非凸函数",存在多个局部最小值,不利于我们求解全局最小值

    因此,上述的代价函数对于逻辑回归是不可行的,我们需要其他形式的代价函数来保证逻辑回归的代价函数是凸函数。这里我们先对线性回归模型中的代价函数J(θ)进行简单的改写

    用Cost(h(x), y) = 1/2(h(x) - y)^2 代替

    在这里我们选择对数似然损失函数做为逻辑回归模型的代价函数,Cost函数可以表示如下

    分析下这个代价函数(1). 当y=1的时候,Cost(h(x), y) = -log(h(x))。h(x)的值域0~1,-log(h(x))的曲线图,如下

    从图中可以看出h(x)的值趋近于1的时候,代价函数的值越小趋近于0,也就是说预测的值h(x)和训练集结果y=1越接近,预测错误的代价越来越接近于0,分类结果为1的概率为1当h(x)的值趋近于0的时候,代价函数的值无穷大,也就说预测的值h(x)和训练集结果y=1越相反,预测错误的代价越来越趋于无穷大,分类结果为1的概率为0

    (2). 当y=0的时候, Cost(h(x), y) = -log(1-h(x))。h(x)的值域0~1,-log(1-h(x))的曲线图,如下

    从图中可以看出h(x)的值趋近于1的时候,代价函数的值趋于无穷大,也就是说预测的值h(x)和训练集结果y=0越相反,预测错误的代价越来越趋于无穷大,分类结果为0的概率为1-h(x)等于0当h(x)的值趋近于0的时候,代价函数的值越小趋近于0,也就说预测的值h(x)和训练集结果y=0越接近,预测错误的代价越来越接近于0,分类结果为0的概率为1-h(x)等于1为了统一表示,可以把Cost(h(x), y)表达成统一的式子,根据前面J(θ)的定义,J(θ)等于特别说明:

    1. 当y=1的时候,第二项(1-y)log(1-h(x))等于0

     2. 当y=0的时候,ylog(h(x))等于0从上面2点可以看出,J(θ)表达式符合前面定义根据线性回归求代价函数的方法,可以用梯度下降算法求解参数θ

    从上图可以看出,θj更新和线性回归中梯度下降算法的θj更新一致,差别的是假设函数h(x)不同 符号说明同上       

    (3)学习过神经网络后,发现逻辑回归其实是神经网络的一种特例(没有隐藏层的神经网络)。因此神经网络中的代价函数与逻辑回归中的代价函数非常相似,详情见:http://blog.csdn.net/chenguolinblog/article/details/52305257

    参考链接:

    【机器学习】代价函数,损失函数,目标函数区别


     

    展开全文
  • 假设函数 损失函数 代价函数 目标函数 与线性回归 摘要:机器学习是计算机领域中的重要技术,它使人类能够“教”机器如何学习,让人类和机器的联系更为紧密。机器通过处理合适的训练集来学习,这些训练集包含优化...

    假设函数 损失函数 代价函数 目标函数 与线性回归

    摘要:机器学习是计算机领域中的重要技术,它使人类能够“教”机器如何学习,让人类和机器的联系更为紧密。机器通过处理合适的训练集来学习,这些训练集包含优化一个算法所需的各种特征。这个算法使机器能够执行特定的任务,例如对电子邮件进行分类,对之后情况进行预测。本文将介绍机器学习中最经典的预测算法——线性回归算法,并借由机器学习中的三种函数损失函数,代价函数,目标函数,结合具体的实例详细介绍函数在线性回归算法中的作用和意义。最后给出了线性回归模型的形式化定义。
    关键词:机器学习;损失函数;代价函数;目标函数;线性回归
    1 前言
    人工智能成为当前计算机领域最炙手可热的方向,在这一点上机器学习功不可没。机器学习用计算机程序模拟人的学习能力,从实际例子中学习得到知识和经验,是一门综合学科涉及到统计学,应用数学,经济学和计算机科学它们之间的联系可以表示成下图1-1。机器学习是人工智能的一个分支,也是人工智能的一种实现方法。它已经走完了近40年的道路,各种优秀的算法被人类研究出来,这些算法的诞生时间可以大致表示如图1-2所示。线性回归就是其中最为经典的算法。它从样本数据中学习得到知识和规律,然后用于实际的决策和推断。


    图1-1:学科之间的关

    图1-2:算法发展时间
    2 简单线性回归
    在统计学中,线性回归是利用称为线性回归方程的最小二乘函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系数的模型参数的线性组合。本文将结合具体的实例来讲解线性回归算法在机器学习中的应用。
    2.1三种函数的定义和表示
    线性回归是机器学习中基础的一种预测算法,要想准确的对数据做出预测,要先了解机器学习中常说的三种函数,分别为损失函数,代价函数,目标函数。言简意赅的对机器学习中三种函数进行定义可以这样认为:
    损失函数( Loss Function ):是定义在单个样本上的,算的是一个样本的值和预测值的误差。
    代价函数( Cost Function ):是定义在整个训练集上的,是所有样本误差的平均,也就是损失函数的平均。
    目标函数( Object Function )定义为:代价函数+ 正则化项(解决过拟合问题),即是最终的优化函数。
    接下来通过一个简单的例子表2-1来了解这三种函数的具体含义和它们在线性回归算法中的作用。

    在这里插入图片描述

    机器学习的过程就是将训练集中里的房屋面积喂给学习算法,学习算法就开始工作了,然后输出一个函数,通常被称为h(hypothesis假设函数),有了这个h函数,输入测试数据中想要出售的房屋价格,该函数会给出相应售卖价格,因此h是一个从x到y的函数映射。这个过程可以表示成图2-1。
    在这里插入图片描述在这里插入图片描述

    那么要如何得到这个假设函数h呢?接下来为了能够更好的看到房屋面积和价格的关系,可以描绘出数据集在坐标系中的点。如图2-2。
    由图2-2的点可以模拟画出这个假设函数,如图2-3,但是这种模拟的结果不是唯一的,不同的模拟情况导致之后的测试集的测试结果也会不同。图四中最左边的图很明显不能很好的拟合训练的数据,这种情况在机器学习中被称为欠拟合。最右边的虽然能够很好的拟合所有的训练集,但是模拟的函数较为复杂,这种对训练集的过渡拟合被称为过拟合,为什么会造成这种结果?大白话说就是它的函数太复杂了,都有四次方了。而中间的模拟则是一种较为合适的假设函数模拟。

    在这里插入图片描述
    在上面的图中用来预测y关于x的线性函数可以表示为:hΘ(x) = Θ0 + Θ1*x那么为什么是线性形式呢?其实还会有很多复杂的函数,由于线性方程是最简单的,所以先从线性方程入手,这种模型被命名为线性回归模型。另外这实际上是关于单个变量的线性回归,根据x来预测所有价格的函数,对于这种模型,还有一个名字是单变量线性回归。当然,最终我们将会建立更复杂的模型,以及更复杂的学习算法,但是现在可以先从简单的入手。
    通过上面的模拟可以大致猜到假设函数的模型,但是机器怎么知道哪种模拟是比较合适的呢?这一过程又如何让计算机理解呢?为了得到假设函数h必须引入机器学习中的三种函数,下面给出三种函数的具体表示[9]。
    C<m, hθ(x) ,y,λ>
    m:训练样本的个数;
    hθ(x):用参数θ和x预测出来的y值;
    y:原训练样本中的y值,也就是真实的数据;
    i(上角标):第i个样本;
    λ :权重系数。
    根据前面对函数的定义,在房屋与房价这个案例中由图知假设函数的模型可以定义为:
    h(θ)=θ_0+θ_1 x+θ_2 x^2+θ_3 x^3 +⋯+θ_n x^n
    则损失函数为:
    C(θ)=h(θ)(x^((i) ) )-y^((i) ) (在房屋与房价的例子中即表示的是房价与真实房价的差值)
    则代价函数为:
    在这里插入图片描述(表示的是数据集中所有数据的样本误差的平均)
    目标函数则是在代价函数的基础上加上正则化项,即表示为:
    在这里插入图片描述
    关于代价函数前面的系数为什么选1/2将在后续博客中给予解释。事实上它也可以是其他数,但是这里是为了数学计算上的方便
    2.2代价函数的作用
    引入这三种函数就可以求解出假设模型中的参数θ,如果知道了参数,这个假设函数h也就得以求解。接下来可以通过具体的例子和计算来看看求解θ到底是怎么一个过程。
    在这里插入图片描述
    图2-4给出了一组简单数据集在坐标系上的表示。这些点分别是(1,1)(2,2)(3,3)。 参数选取的不同会影响到假设函数,在计算机中可以不断的猜测这个参数θ,参数的初始值通常会设为0参数迭代的范围可以称为步长,但是在机器学习领域中有一个更专业的称呼叫学习率[11]。关于学习率的问题将在附录中给予解释。现在关注的是什么时候才是θ的最优解呢?可以通过一组简单的计算来看看如何找到最好的参数。
    假设函数模型为y=θ_0+θ_1 x,在图2-5中画出三个不同θ取值的假设函数h,如下图所示。
    伴随不同的参数取值可以利用公式轻松计算出相对应的J(θ)。
    当θ=0.5时 ├ J(0.5)=1/2m((0.5-1)2+(1-2)2+(1.5-3)^2 ) ≈0.58

    当θ=0时 ├ J(0)=1/2m(12+22+3^2 )≈2.3

    当θ=1时 J(1)=1/2m ∑_(i=1)^m▒〖(h_θ (x^((i) ))-y^((i) ) )^2=0〗
    同样利用坐标系画出θ与J(θ)的关系,如图2-6所示。

    在这里插入图片描述
    由图可以非常容易的看出θ=1时可以取得最小的J(θ)。J(θ)越小意味着假设函数的预测值
    和真实值就约接近。而当J(θ)=0时意味着预测值和真实值是完全一样的。在这个例子中,可以在图7中看出当θ=1时,假设函数h确实可以完美拟合这个简单数据集,而此时的J(θ)=0。
    求解模型就是要找到最合适的参数,而要想找到这个参数就意味着代价函数要最小。
    反过来代价函数最小时对应的参数也就是最优解。求解模型的过程其实也就是通过尝试不
    同的θ来找到最小J(θ)的过程。这也正是代价函数的巨大作用。

    2.3目标函数的作用
    机器在过度学习历史数据会出现过拟合的现象如图2-3的最右图,在这种情况下模对
    新数据的拟合能力就会降低。这个时候就出现了我们的目标函数,即在损失函数后加入正则项。现在又有了新的问题,正则项的作用是怎么体现的呢?为什么加入正则项就可以防止模型的过拟合呢?
    从公式中可以看出λ越大,θ_j 衰减的越快。即当λ越大参数θ越接近于0。所以我们称λ为权衡正则项与J(θ)比重的参数,这个参数通常较小,是由人为赋值的。这个比重系数可以对θ_j起到很好的约束作用。也就是说可以利用这个正则项来对模型的参数做出调整,因为最终想要的模型是既能很好拟合训练集又比较简单的模型。这样在代价函数的基础上加入正则项求出的就是目标函数了。

    展开全文
  • 深度学习基础之代价函数

    千次阅读 多人点赞 2019-07-16 13:03:03
    在机器学习和深度学习中,代价函数非常重要。所以十分有必要弄个清楚代价函数相关的概念和性质。本文介绍了什么是代价函数,然后列举了常用的三种代价函数,并对其中的二次代价函数和交叉熵代价函数进行了比较。


    在机器学习和深度学习中,经常听到代价函数这个词,到底什么是代价函数?

    一、代价函数概述

    机器学习的模型分为能量模型和概率模型,知道概率分布的可以直接用概率模型进行建模,比如贝叶斯分类器,不知道的就用能量模型,比如支持向量机。因为一个系统稳定的过程就是能量逐渐减小的过程。

    简单理解,代价函数也就是通常建立的能量方程的一种,在机器学习中用来衡量预测值和真实值之间的误差,越小越好。一般来说一个函数有解析解和数值解,解析解就是我们数学上可以用公式算出来的解,数值解是一种近似解,在解析解不存在或者工程实现比较复杂的时候,用例如梯度下降这些方法,迭代得到一个效果还可以接受的解。所以要求代价函数对参数可微。

    代价函数、损失函数、目标函数并不一样,这一点后边再介绍,这篇文章就先只介绍代价函数。

    损失函数:计算的是一个样本的误差

    代价函数:是整个训练集上所有样本误差的平均

    目标函数:代价函数 + 正则化项

    在实际中,损失函数和代价函数是同一个东西,目标函数是一个与他们相关但更广的概念。

    代价函数(Cost Function):在机器学习中,代价函数作用于整个训练集,是整个样本集的平均误差,对所有损失函数值的平均。

    代价函数的作用:

    • 1.为了得到训练逻辑回归模型的参数,需要一个代价函数,通过训练代价函数来得到参数。
    • 2.用于找到最优解的目标函数。

    二、代价函数的原理

    在回归问题中,通过代价函数来求解最优解,常用的是平方误差代价函数。有如下假设函数:
    h ( x ) = A + B x h(x)=A+Bx h(x)=A+Bx
    假设函数中有A和B两个参数,当参数发生变化时,假设函数状态也会随着变化。 如下图所示
    在这里插入图片描述
    想要拟合图中的离散点,我们需要尽可能找到最优的 A A A B B B来使这条直线更能代表所有数据。如何找到最优解呢,这就需要使用代价函数来求解,以平方误差代价函数为例,假设函数为 h ( x ) = θ 0 x h(x)=\theta_0x h(x)=θ0x

    平方误差代价函数的主要思想就是将实际数据给出的值与拟合出的线的对应值做差,求出拟合出的直线与实际的差距。在实际应用中,为了避免因个别极端数据产生的影响,采用类似方差再取二分之一的方式来减小个别数据的影响。因此,引出代价函数:

    J ( θ 0 , θ 1 ) = 1 2 m ∑ i = 1 m ( h ( x ( i ) ) − y ( i ) ) 2 J(\theta _0,\theta _1)=\frac{1}{2m}\sum_{i=1}^{m}(h(x^{(i)})-y^{(i)})^2 J(θ0,θ1)=2m1i=1m(h(x(i))y(i))2

    最优解即为代价函数的最小值 m i n J ( θ 0 , θ 1 ) minJ(\theta _0,\theta _1) minJ(θ0,θ1)。如果是 1 个参数,代价函数一般通过二维曲线便可直观看出。如果是 2 个参数,代价函数通过三维图像可看出效果,参数越多,越复杂。

    当参数为 2 个时,代价函数是三维图像。

    在这里插入图片描述
    代价函数的要求:

    • 1.非负性,所以目标就是最小化代价函数。
    • 2.当真实输出 a a a与期望输出 y y y接近的时候,代价函数接近于0。(比如 y = 0 y=0 y=0 a ~ 0 a~0 a0 y = 1 y=1 y=1,a~1时,代价函数都接近0)。

    代价函数非负的原因:

    • 目标函数存在一个下界,在优化过程当中,如果优化算法能够使目标函数不断减小,根据单调有界准则,这个优化算法就能证明是收敛有效的。
    • 只要设计的目标函数有下界,基本上都可以,代价函数非负更为方便。

    三、常见的代价函数

    1. 二次代价函数(quadratic cost)

    J = 1 2 n ∑ i = 1 ∣ ∣ y ( x ) − a L ( x ) ∣ ∣ 2 J=\frac{1}{2n}\sum_{i=1}\left | \right |y(x)-a^{L}(x)\left | \right |^2 J=2n1i=1y(x)aL(x)2

    其中, J J J 表示代价函数, x x x表示样本, y y y表示实际值, a a a表示输出值, n n n表示样本的总数。 使用一个样本为例简单说明,此时二次代价函数为:

    J = ( y − a ) 2 2 J=\frac{(y-a)^2}{2} J=2(ya)2

    假如使用梯度下降法来调整权值参数的大小,权值 w w w和偏置 b b b的梯度推 导如下:

    ∂ J ∂ w = ( a − y ) δ ′ ( z ) x \frac{\partial J}{\partial w}=(a-y){\delta }&#x27;(z)x wJ=(ay)δ(z)x
    ∂ J ∂ b = ( a − y ) δ ′ ( z ) \frac{\partial J}{\partial b}=(a-y){\delta }&#x27;(z) bJ=(ay)δ(z)

    其中, z z z表示神经元的输入, δ \delta δ 表示激活函数。权值 w w w和偏置 b b b的梯度跟激活函数的梯度成正比,激活函数的梯度越大,权值 w w w和偏置 b b b的大小调整得越快,训练收敛得就越快。

    2. 交叉熵代价函数(cross-entropy)

    交叉熵代价函数:

    J = − 1 n ∑ i = 1 [ y l n a + ( 1 − y ) l n ( 1 − a ) ] J=-\frac{1}{n}\sum_{i=1}[ ylna+(1-y)ln(1-a)] J=n1i=1[ylna+(1y)ln(1a)]

    其中, J J J 表示代价函数, x x x表示样本, y y y 表示实际值, a a a表示输出值, n n n表示样本的总数。 权值 w w w和偏置 b b b的梯度推导如下:
    ∂ J ∂ w j = 1 n ∑ x x j ( δ ( x ) − y ) \frac{\partial J}{\partial w_j}=\frac{1}{n}\sum_{x}x_j(\delta(x)-y) wjJ=n1xxj(δ(x)y)
    ∂ J ∂ b = 1 n ∑ x ( δ ( x ) − y ) \frac{\partial J}{\partial b}=\frac{1}{n}\sum_{x}(\delta(x)-y) bJ=n1x(δ(x)y)

    当误差越大时,梯度就越大,权值 w w w和偏置 b b b调整就越快,训练的速度也就越快。 二次代价函数适合输出神经元是线性的情况,交叉熵代价函数适合输出神经元是 S S S 型函 数的情况。

    3. 对数似然代价函数(log-likelihood cost)

    对数释然函数常用来作为 softmax 回归的代价函数。深度学习中普遍的做法是将 softmax 作为最后一层,此时常用的代价函数是对数释然代价函数。

    Softmax回归中将x分类为类别j的概率为:
    在这里插入图片描述
    或者:
    在这里插入图片描述
    对数似然代价函数与 softmax 的组合和交叉熵与 sigmoid 函数的组合非常相似。对数释然 代价函数在二分类时可以化简为交叉熵代价函数的形式:
    在这里插入图片描述
    其中, y k y_k yk表示第 k k k个神经元的输出值, a k a_k ak表示第 k k k个神经元对应的真实值,取值为 0 0 0 1 1 1

    简单理解一下这个代价函数的含义:在网络中输入一个样本,那么只有一个神经元对应了该样本的正确类别;若这个神经元输出的概率值越高,则按照以上的代价函数公式,其产生的代价就越小;反之,则产生的代价就越高。

    四、二次代价函数与交叉熵代价函数比较

    1.当我们用sigmoid函数作为神经元的激活函数时,最好使用交叉熵代价函数来替代方差代价函数。

    • 因为使用二次代价函数时,偏导数受激活函数的导数影响,sigmoid 函数导数在输出接近 0 和 1 时非常小,会导致一 些实例在刚开始训练时学习得非常慢。而使用交叉熵代价函数时,,权重学习的速度受到 ( δ ( z ) − y ) (\delta(z)-y) (δ(z)y)的影响,更大的误差,就有更快的学习速度,避免了二次代价函数方程中因 δ ′ ( z ) {\delta }&#x27;(z) δ(z)
      导致的学习缓慢的情况。

    2.交叉熵函数的形式是 − [ y l n a + ( 1 − y ) l n ( 1 − a ) ] −[ylna+(1−y)ln(1−a)] [ylna+(1y)ln(1a)]。而不是 − [ a l n y + ( 1 − a ) l n ( 1 − y ) ] −[alny+(1−a)ln(1−y)] [alny+(1a)ln(1y)]
    是因为当期望输出的 y = 0 y=0 y=0时, l n y lny lny没有意义;当期望 y = 1 y=1 y=1时, l n ( 1 − y ) ln(1-y) ln(1y)没有意义。而因为a是sigmoid函数的实际输出,永远不会等于0或1,只会无限接近于0或者1,因此不存在这个问题。

    展开全文
  • 损失函数(代价函数)2.1 L1范数损失函数2.2 L2范数损失函数2.3 二次代价函数2.4 交叉熵代价函数2.5 对数释然代价函数(log-likelihood cost)3.演示代码 1.激活函数 激活函数的想法来自对人脑中神经元工作机理的分析...
  • 目标函数:既可代指损失函数,又可代指代价函数/成本函数。有的地方将损失函数和代价函数没有细分也就是两者等同的。 损失函数(Loss function): 损失函数越小,就代表模型拟合的越好。 例如有平方误差损失函数、...
  • 代价函数,损失函数,目标函数区别

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

    千次阅读 2018-01-15 21:01:50
    3.1 代价函数(cost function)  代价函数有助于将最可能的线性函数与我们的数据相拟合。在线性回归中,我们有一个这样的数据集,m表示训练集样本数,而我们的假设函数,也就是我们用来进行预测的函数,是图中所示...
  • 二次代价函数的局限性 首先来说一下二次代价函数的局限性,看下面这张图: 假设现在使用的激活函数是sigmoid,并且代价函数是二次代价函数,我们收敛得目标是1,那么A点的梯度比较大,B点由于离目标比较近梯度小,...
  • 损失函数与代价函数区别

    千次阅读 2019-10-24 16:35:56
    损失函数或者代价函数的目的是:衡量模型的预测能力的好坏。 损失函数(Loss function):是定义在单个训练样本上的,也就是就算一个样本的误差,比如我们想要分类,就是预测的类别和实际类别的区别,是一个样本的哦...
  • 激活函数 Logistic Softmax Relu 损失函数
  • 【机器学习】代价函数,损失函数,目标函数区别

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

    千次阅读 2019-03-18 23:28:38
    事实证明我们可以用不同的代价函数比如交叉熵(cross-entropy)代价函数来替代平方代价函数。为了理解交叉熵,我们暂时先不用管这个示例神经元模型。我们假设要训练一个拥有多个输入变量的神经元:输入x1,x2,…,...
  • 目标函数、损失函数、代价函数

    千次阅读 2018-04-21 19:31:48
    目标函数、损失函数、代价函数...代价函数对每个参数的偏导数就是梯度下降中提到的梯度,防止过拟合时添加的正则化项也是加在代价函数后面的。在学习相关算法的过程中,对代价函数的理解...
  • 机器学习:神经网络代价函数总结

    千次阅读 2018-04-21 19:35:20
    神经网络代价函数 1. 代价函数基本定义 代价函数是衡量模型预测输出值与目标真实值之间差距的一类函数,在一些场景中也称为目标函数。 在神经网络中,代价函数(如二次误差函数)衡量输出值与真实值之间的误差...
  • 机器学习--代价函数

    千次阅读 2020-04-01 22:46:02
    一、代价函数概述 机器学习的模型分为能量模型和概率模型,知道概率分布的可以直接用概率模型进行建模,比如贝叶斯分类器,不知道的就用能量模型,比如支持向量机。因为一个系统稳定的过程就是能量逐渐减小的过程。 ...
  • 几种常见的损失函数 1. 损失函数、代价函数与目标函数   损失函数(Loss Function):是...  目标函数(Object Function):是指最终需要优化的函数,一般来说是经验风险+结构风险,也就是(代价函数+正则化...
  • 在机器学习和深度学习中,我们通常会需要掌握三个步骤就可以完成了,拿起数据(特征),搭上模型(目标函数,损失函数,代价函数),不断优化(优化函数-梯度下降,adam,动量-找到最优的W),就可以完成了 ...
  • 二次代价函数和交叉熵代价函数

    千次阅读 2018-02-28 00:44:10
    交叉熵代价函数(Cross-entropy cost function)是用来衡量人工神经网络(ANN)的预测值与实际值的一种方式。与二次代价函数相比,它能更有效地促进ANN的训练。在介绍交叉熵代价函数之前,本文先简要介绍二次代价...
  • 梯度下降 代价函数

    2019-03-14 09:43:20
    代价函数与梯度下降
  • 代价函数(cost function):是整个训练集上所有样本误差的平均 目标函数:代价函数 + 正则化项 2. 实际应用 损失函数和代价函数是同一个东西,目标函数是一个与他们相关但更广的概念,举例说明: 上面三个图的曲线...
  • 代价函数的意义

    千次阅读 2019-03-21 18:59:07
    我们来复习上一节的知识: 假设函数:hθ(x)=θ0+θ1xh_\theta(x)=\theta_0+\theta_1xhθ​(x)=θ0​+θ...代价函数:J(θ0,θ1)=12m∑i=1i=m(h(xi)−yi)2J(\theta_0,\theta_1)=\frac{1}{2m}\sum_{i=1}^{i=m}(h(x^i)...
  • 什么是代价函数

    2020-10-07 15:51:20
    简单来说,代价指的就是预测值(估计值)与实际值之间的差,代价函数J就是让这个差趋于0,当代价函数J等于0的时候,这时候的预测值就和实际值是完全相等的,也就是说明此时我们已经对实际情况进行了完美的估计了。...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 237,077
精华内容 94,830
关键字:

代价函数