精华内容
下载资源
问答
  • 交叉熵损失函数求导

    千次阅读 2018-11-28 20:43:27
    本文是《Neural networks and deep learning》概览 中第...代价函数经常用方差代价函数(即采用均方误差MSE),比如对于一个神经元(单输入单输出,sigmoid函数),定义其代价函数为: 其中y是我们期望的输出,a为...

    本文是《Neural networks and deep learning》概览 中第三章的一部分,讲machine learning算法中用得很多的交叉熵代价函数。

    1.从方差代价函数说起

    代价函数经常用方差代价函数(即采用均方误差MSE),比如对于一个神经元(单输入单输出,sigmoid函数),定义其代价函数为:

    其中y是我们期望的输出,a为神经元的实际输出【 a=σ(z), where z=wx+b 】。

    在训练神经网络过程中,我们通过梯度下降算法来更新w和b,因此需要计算代价函数对w和b的导数:

    然后更新w、b:

    w <—— w - η* ∂C/∂w = w - η * a *σ′(z)

    b <—— b - η* ∂C/∂b = b - η * a * σ′(z)

    因为sigmoid函数的性质,导致σ′(z)在z取大部分值时会很小(如下图标出来的两端,几近于平坦),这样会使得w和b更新非常慢(因为η * a * σ′(z)这一项接近于0)。

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

    为了克服这个缺点,引入了交叉熵代价函数(下面的公式对应一个神经元,多输入单输出):

    其中y为期望的输出,a为神经元实际输出【a=σ(z), where z=∑Wj*Xj+b】

    与方差代价函数一样,交叉熵代价函数同样有两个性质

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

    另外,它可以克服方差代价函数更新权重过慢的问题。我们同样看看它的导数:

    可以看到,导数中没有σ′(z)这一项,权重的更新是受σ(z)−y这一项影响,即受误差的影响。所以当误差大的时候,权重更新就快,当误差小的时候,权重的更新就慢。这是一个很好的性质。

    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-likelihood cost

    对数似然函数也常用来作为softmax回归的代价函数,在上面的讨论中,我们最后一层(也就是输出)是通过sigmoid函数,因此采用了交叉熵代价函数。而深度学习中更普遍的做法是将softmax作为最后一层,此时常用的是代价函数是log-likelihood cost。

    In fact, it’s useful to think of a softmax output layer with log-likelihood cost as being quite similar to a sigmoid output layer with cross-entropy cost。

    其实这两者是一致的,logistic回归用的就是sigmoid函数,softmax回归是logistic回归的多类别推广。log-likelihood代价函数在二类别时就可以化简为交叉熵代价函数的形式。具体可以参考UFLDL教程


    转载请注明出处:http://blog.csdn.net/u012162613/article/details/44239919

    展开全文
  • Q:为什么深度学习损失函数往往要求是凸函数?(此处凸函数是指下凸,国内和国外凸函数的标准不一样,是相反的,吴恩达的机器学习教程凸函数是指下凸) A:使用梯度下降法优化策略,如果损失函数是非凸的,最后...

    Q:为什么逻辑回归损失函数往往要求是凸函数?(此处凸函数是指下凸,国内和国外凸函数的标准不一样,是相反的,吴恩达的机器学习课程凸函数是指下凸)

    A:如果损失函数是非凸的,使用梯度下降法优化时,最后得到的可能只是局部最优解,而非全局最优解。

    --------------------------------------------------------------------------------------------------------------------------------

    平方差损失非凸证明

    做优化时,最容易想到的loss function便是平方差损失:(y-\hat{y})^{2},看起来是可行的,但是在实际中,并不能这样做,因为这个函数是非凸的。证明函数的非凸性只要证明这个函数的二阶导不恒>0

     先验条件:线性拟合函数 z = wx + b ,二分类问题z值需要归一化到[0,1],即使用sigmoid激活函数 \large \delta (z) =\frac{1}{1+e^{-z}}        (\delta (z)\hat{y}

    平方差损失函数:  \large L=(y-\delta (z))^{2}

    以对权重求偏导举例

     

    ,所以后三项乘积恒>=0。 只需要判断

    y的范围为[0,1],假设y=0, 上式满足>0的条件为\large \delta (z)<2/3    ,所以当\large \delta (z)>2/3时,二阶导为负值,不满足凸函数的性质。

     

    常用logistic损失函数\large L=-(ylog\hat{y}+(1-y)log(1-\hat{y}))   

    手推了一下,w的二阶偏导为  (此处log我是以2为底计算导数,吴恩达的视频中log相当于ln,以e为底,不要在意这些细节hhh),显而易见,二阶导恒大于0。 (补充知识点: 

    通俗易懂地举例验证一下此损失函数的可行性,假设y=1, 损失函数只剩第一项 \large -log\hat{y},使这一项尽可能小,那么\large {\hat{y}}尽可能大,而\large \hat{y}是经sigmoid激活的函数,范围为0-1,\large \hat{y}只能无限接近1。即真实值为1时,预测值也要无限接近1,loss function才会尽可能地小。

     

    贴一张以e为底的交叉熵损失函数手写求导图

     

    题外话:csdn自带的公式编辑器太难用了,用office编辑再复制过来公式看起来很假,所以各位大佬们都是怎么编辑公式的==

     

     

    展开全文
  • 均方误差代价函数

    2021-07-22 09:55:41
    m是训练的样本数量 i表示第i个样本 均方误差函数就是把预测值和真实值差的平方求和再除以2倍的样本数量 其中取2m而不取m是为了方便计算梯度. 用一道题帮助我们理解代价函数: 这道题给了三个样本点,并且给出假设函数...

    均方误差代价函数 MSE Cost Function

    代价函数可以用来衡量假设函数(hypothesis function)的准确性

    在线性回归中,如果假设函数为h(x)=θ0+θ1*x,
    均方误差代价函数公式如下图:
    在这里插入图片描述
    θ0 和 θ1是假设函数的参数
    h(x)就是预测值
    m是训练的样本数量
    i表示第i个样本

    均方误差函数就是把预测值和真实值差的平方求和再除以2倍的样本数量

    其中取2m而不取m是为了方便计算梯度.

    用一道题帮助我们理解代价函数:
    在这里插入图片描述
    这道题给了三个样本点,并且给出假设函数h(x)=θ1x,代价函数是均方误差代价函数,求J(0)
    由题可知,θ0=0,要求J(0),就是让θ1=0,当θ1=0的时候,其实h(x)=0
    那么根据公式可以计算,选D
    在这里插入图片描述
    当代价函数J(θ0,θ1)最小的时候,假设函数的预测值和真实值最接近
    如下图,给定三个样本点(1,1),(2,2),(3,3),对于h(x)=0+θ1
    x,当θ1=1时,J(θ0,θ1)=0,即预测值和真实值完全相同,当θ1不为1时,预测的偏差随着θ1距离1的远近程度增加
    在这里插入图片描述

    展开全文
  • 本来主要介绍机器学习中常见的损失函数MSE的定义以及它的求导特性。数理统计中均方误差是指参数估计值与参数值之差平方的期望值,记为MSE。MSE是衡量“平均误差”的一种较方便的方法,MSE可以评价数据的变化程度,...

    9c1e36cdc0e35dc2526eadc85a62408f.png

    本来主要介绍机器学习中常见的损失函数MSE的定义以及它的求导特性。


    数理统计中均方误差是指参数估计值与参数值之差平方的期望值,记为MSE。MSE是衡量“平均误差”的一种较方便的方法,MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。

    SSE(和方差)

    在统计学中,该参数计算的是拟合数据和原始对应点的误差的平方和,计算公式为:

    其中

    是真实数据,
    是拟合的数据,
    ,从这里可以看出SSE接近于0,说明模型选择和拟合更好,数据预测也越成功。

    MSE(均方方差)

    该统计参数是预测数据和原始数据对应点误差的平方和的均值,也就是

    ,和SSE没有太大的区别,计算公式为:

    其中,n为样本的个数。

    RMSE

    该统计参数,也叫回归系统的拟合标准差,是MSE的平方根,计算公式为:

    Mean-Squared Loss的概率解释

    假设我们的模型是二维平面的线性回归模型:

    ,对于这个模型,我们定义损失函数为MSE,将得到如下的表达式:

    下面我们试着通过概率的角度,推导出上述的MSE损失函数表达式。

    在线性回归模型中,我们最终希望对于输入

    进行线性组合得到值Y,考虑到输入带有噪声的情况的表达式如下:

    为了使模型更合理,我们假设

    服从均值为0,方差为1的高斯分布,即
    。所以有:

    所以,Y服从均值为

    ,方差为1的高斯分布,则样本点的
    概率为:

    有了单个样本的概率,我们就可以计算样本集的似然概率,我们假设每个样本是独立的:

    对似然函数取对数,得到对数似然函数:

    这个对数似然函数的形式和我们的MSE损失函数的定义是一样的。所以,使用MSE损失函数意味着,我们假设我们的模型是对噪声的输入做估计,该噪声服从高斯分布。

    损失函数效果

    缺点

    使用MSE的一个缺点就是其偏导值在输出概率值接近0或者接近1的时候非常小,这可能会造成模型刚开始训练时,偏导值几乎消失。

    假设我们的MSE损失函数为:

    ,偏导为:
    ,其中
    。可以看出来,在
    值接近0或者1的时候,
    的值都会接近于0,其函数图像如下:

    2bc47a87adca7082150348838d5ec170.png

    这导致模型在一开始学习的时候速率非常慢,而使用交叉熵作为损失函数则不会导致这样的情况发生。

    参考

    [1]. Picking Loss Functions - A comparison between MSE, Cross Entropy, and Hinge Loss

    展开全文
  • 这个损失函数有很多,但是一般使用均方误差和交叉熵误差等。 1.均方误差(mean squared error) 先来看一下表达式: 用于将的求导结果变成,是神经网络的输出,是训练数据的标签值,k表示数据的维度。 用...
  • 误差函数理解定义功能与BP算法,激活函数的关系误差函数的特点常见误差函数均方误差函数公式应用场景pytorch实现代码交叉熵公式应用场景pytorch实现代码 定义 误差函数是关于模型输出和样本标签值之差的函数,通过对...
  • 均方误差: t是真实标签,y是网络预测值。 将其求导: 发现它的变化与激活函数的导数有关系
  • 函数形式 Sigmoid(x)=11+e−xSigmoid(x)=\frac{1}{1+e^{-x}}Sigmoid(x)=1+e−x1​ 函数图像 导数形式 Sigmoid′(x)=e−x(1+e−x)2=Sigmoid(x)(1−Sigmoid(x))Sigmoid'(x)=\frac{e^{-x}}{(1+e^{-x})^2}=Sigmoid(x)(1...
  • 均方误差函数: 交叉熵代价函数: 参考: 交叉熵代价函数(损失函数)及其求导推导
  • 损失函数公式本身来说 1. 从损失函数公式的物理含义来说 MSE衡量的是预测值和目标值的欧式距离。 而交叉熵是一个信息论的概念,交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中就...
  • 神经网络的学习中的“学习”是指从训练数据中自动获取最优权重参数的过程。 为了使神经网络能进行学习,将导入...这个损失函数可以使用任意函数,但一般用均方误差和交叉熵误差等。 损失函数是表示神经网络性能的“恶
  • 最小均方误差函数 第一讲里,我们提到了最小均方误差函数,给出一组有 mm 个样本的训练集,我们希望找到合适的参数 θ\boldsymbol{\theta}, 使得预测值 hθ(x)h_\theta(x) 与目标值尽可能接近。为了估计参数 θ\...
  • 求导法则: 三角函数运算 指数和对数函数相关运算 隐函数求导 参数方程求导 幂指函数求导 复杂表达式函数求导
  • 损失函数损失定义为: yi为第i个训练样本的真实值 h(xi)为第i个训练样本特征值组合预测函数 又称最小二乘法 如何去减少这个损失,使我们预测的更加准确些?既然存在了这个损失,我们一直说机器学习有自动...
  • 转者注:上面虽然使用的是Sigmoid函数,其实分类问题使用的是softmax函数,softmax可以看做sigmoid在对分类问题上的推广。 转者注:上面的y1′(1−y1′)y&#x27;_1(1-y&#x27;_1)y1′​(1−y1′​)是a对z...
  • Mean Squared Error均方误差 # 代码表示为 torch.norm(y-pred,2).pow(2) 1)torch.autograd.grad的使用 # 现在使用torch.autograd.grad实现求导的过程 # torch.autograd.grad的使用方法 # 现在假设需要解决的任务...
  • MSE均方误差(L2 loss) 1.代码展示MAE和MSE图片特性 import tensorflow as tf import matplotlib.pyplot as plt sess = tf.Session() x_val = tf.linspace(-1.,-1.,500) target = tf.constant(0....
  • 线性回归损失函数推导(均方误差角度,概率分布角度) 正规方程法 梯度下降法求解线性回归 从均方误差的角度推导线性回归的损失函数 线性回归是一种最基本的机器学习算法。基本形式为: y^=θ0x0+θ1x1+θ2x2+θ3x3+...
  • RMSE(Root Mean Square Error)均方根误差 衡量观测值与真实值之间的偏差。 常用来作为机器学习模型预测...通过平方的形式便于求导,所以常被用作线性回归的损失函数。 MAE(Mean Absolute Error)平均绝对...
  • 损失函数

    2019-09-22 15:55:31
    本文主要总结一下常见的损失函数,包括:MSE均方误差损失函数、SVM合页损失函数、Cross Entropy交叉熵损失函数、目标检测中常用的Smooth L1损失函数。其中还会涉及到梯度消失、梯度爆炸等问题:ESM均方误差+Sigmoid...
  • 文章目录1 激活函数1.1 线性函数1.2 Sigmoid函数1.3 双曲正切函数1.4 ReLU函数1.5 Softmax函数1.6 激活函数的选择2 损失函数2.1 损失函数定义2.2 回归损失函数(1) 均方误差损失函数2.3 分类损失函数2.4...
  • TF.Losses 损失函数一、损失函数二、TF2中的损失函数1、MeanSquaredError 均方误差损失函数2、MeanAbsolutePercentageError 平均百分比误差损失函数3、MeanAbsoluteError 平均绝对值误差损失函数4、Huber huber损失...
  • 激活函数 在PyTorch的老版本里这些激活函数在torch.nn.functional下,现在大多已经改到了torch下。 Sigmoid 数据将被映射到0到1之间。 f(x)=σ(x)=11+e−xf(x)=\sigma (x)=\frac{1}{1+e^{-x}}f(x)=σ(x)=1+e−x1​ ...
  • 常用损失函数小结

    万次阅读 多人点赞 2018-05-27 11:01:58
    一、摘要本文主要总结一下常见的损失函数,包括:MSE均方误差损失函数、SVM合页损失函数、Cross Entropy交叉熵损失函数、目标检测中常用的Smooth L1损失函数。其中还会涉及到梯度消失、梯度爆炸等问题:ESM均方误差+...
  • 一、摘要本文主要总结一下常见的损失函数,包括:MSE均方误差损失函数、SVM合页损失函数、Cross Entropy交叉熵损失函数、目标检测中常用的Smooth L1损失函数。其中还会涉及到梯度消失、梯度爆炸等问题:ESM均方误差+...
  • tensorflow2.0——损失函数

    千次阅读 2020-08-06 19:01:48
    目录均方误差损失函数 mean_squared_error手写代码平均绝对误差 mean_...均方误差函数,又称mse,最基本的损失函数表示法,通常情况下mse函数会整体乘上二分之一,方便简化求导出的函数。 loss = ‘mean_squared_erro
  • 常见损失函数小结

    2019-07-08 15:20:16
    本文主要总结一下常见的损失函数,包括:MSE均方误差损失函数、SVM合页损失函数、Cross Entropy交叉熵损失函数、目标检测中常用的Smooth L1损失函数。 其中还会涉及到梯度消失、梯度爆炸等问题:MSE均方误差+...
  • 【深度学习基础】损失函数

    千次阅读 2019-10-13 10:57:08
    MSE均方误差损失函数、 Cross Entropy交叉熵损失函数 目标检测中常用的Smooth L1损失函数 focal loss 损失函数: 共分为两类,分类问题的损失,和回归问题的损失。 均方差损失函数 均方差损失函数常用在最小二乘法...
  • 均方误差(Mean Square Error, MSE)损失函数: 对求偏导(对求导类似): 交叉熵损失函数: 对求偏导(对求导类似): ps:以上公式中,激活函数取sigmod激活函数 参数更新过程: 对比公式(2)和(4)...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,938
精华内容 1,575
关键字:

均方误差损失函数求导