损失函数

一、对于回归问题,基本目标是建模条件概率分布p(t|x)

利用最大似然的方式:negative logarithm of the likelihood

????

这个函数可以作为优化目标,其中的第二项与参数无关,在优化的时候不用计算在内。实际中所用到的各种不同的目标函数不过是对于的形式做了具体的假设。

1.sum of squares error

这里假设输出矢量t的维度为K,则:

????????????????????

回归实际上就是希望得到K个输出关于输入的一个函数表达式,k=1,2…..K,而假设真值与预测值之间的误差是一个随机变量,k=1,2…K

????????????????????????????????

如果我们把这K个随机变量进一步假设为服从0均值,具有统一方差的高斯分布,

则:

????????????????????????

注意:而不是是因为我们认为的分布独立于x!,同时,也一般把K个随机变量认为服从同一分布,也就是也独立于k。

注意理解公式(4),误差服从高斯分布,则说明给定输入x,实际可能出现的tk值总在预测值上下浮动,也就是条件概率满足下面公式????????????

更形象的示例且看下图,图中的点就是我们的训练数据,而中间那条线就是我们的预测函数!对于某一个x,预测函数总能得到一个值,但是实际在训练数据中总有很多与同一个x对应的点,他们都在预测函数上下浮动,浮动的距离服从高斯分布!

对于训练过程来说
????

?

????????????????????????

????由这个形式还有一种类似的root-mean-square(RMS) error:

????????????????????

这种方式求出来的错误并不随数据规模而增长。

2、平方误差函数对于神经网络结果的解释

????如果我们把平方误差函数作为神经网络的目标函数去优化参数,则得到结果将是:

????????????????????????

省略号之后的项与参数无关,由此可以得知,如果我们使用梯度下降法之类的优化方法,或者直接利用偏导为0,最终必然接近如下结果:

????换句话说,我们把目标函数形式化简之后,发现,最终优化得到的参数必然使得生成函数中y为x处t值的平均!

3、Modeling conditional distribution

????平方误差函数中做的关于高斯分布的假设太强,于是寻求一种更普适的方式建模,这里也就是利用高斯混合模型来建模误差分布!

?

?

?

?

二、对于分类问题,方式是建模后验概率

1、Sum of squares for classification

????套用前面回归问题的方式,如果采用最小平方和的方式,神经网络的网络输出

????????

?

假设总共有C类,则总共有C个输出单元,每次输入一个x,与x所属的类对应的输出单元为1,其它输出单元为0

????

对于公式(8) 的理解,首先要明确,依据训练样本中x的类标签来取值,只能为0或1,是指单位冲击函数,在0处取1,在其他地方都是取0。

可分情况如下:

????当时,只要x不属于第k类就行


时,只在x属于第k类是成立

将式(9)代入公式(8),得到:

????????????????????

?

此时网络输出的含义就变成了对后验概率的建模!

反思一下:平方误差函数的导出基于两点:最大似然概率,误差服从高斯分布!,这对于分类问题却并不是最合适的!因为分类问题的目标输出都是0,1,完全不会是高斯分布!前面的回归问题,在我们假设成立的前提下,得到的模型能保证是训练数据集似然概率最大。但是这样来看分类问题,由于假设基本不可能,所以导出的模型没法从理论上保证使得训练数据集的似然概率最大。

?

2、互信息量的解释方法

????现在重新思考之前的方式,我们先是最大似然为目标,然后假设了误差为高斯分布,导出平方误差函数,最后使得只要基于平方误差函数去优化,得到的模型就会导出最大似然概率最大。

????先确立一个目标:使得输出代表后验概率!

????使输出代表后验概率的方法来自于线性判别过程,最初的线性判别函数是这样的:


对于两类问题,现在我们考虑后验概率:

????????????

?

假设:????????????

则:

????????????

式(14)的右边就是我们熟悉的sigmoid函数。

现在的想法就是,能不能使得输出y具有的语义??也就是如何使得y = sigmoid(a),最自然的想法是,如果a能像式(11)那样由输入线性表示,问题也就解决了。庆幸的是,对于类条件概率分布为高斯函数的时候,这一结论是很好证明的,而且可以推广至更普遍的指数族分布函数。也就是说sigmoid函数可以在二分类问题中,将普通的线性判决函数的输出转换成具有后验概率语义的输出,结果不会变(sigmoid函数是单调递增函数)。

????在多类问题中与之对应的是softmax函数。

?

????一旦输出具有了后验概率的语义,则最大似然的表示变得极其简单,也就得出了所谓的

Negative-log-likelihood的损失函数形式!

反思:也就是说分类问题,要使得输出具有后验概率语义,进而套用Negative-log-likelihood损失函数,必须使用特定的activation function(两类是sigmoid,多类是softmax)。

?

?


?

时间: 2024-10-23 06:23:32

损失函数的相关文章

2.2 logistic回归损失函数(非常重要,深入理解)

上一节当中,为了能够训练logistic回归模型的参数w和b,需要定义一个成本函数 使用logistic回归训练的成本函数 为了让模型通过学习来调整参数,要给出一个含有m和训练样本的训练集 很自然的,希望通过训练集找到参数w和b,来得到自己得输出 对训练集当中的值进行预测,将他写成y^(I)我们希望他会接近于训练集当中的y^(i)的数值 现在来看一下损失函数或者叫做误差函数 他们可以用来衡量算法的运行情况 可以定义损失函数为y^和y的差,或者他们差的平方的一半,结果表明你可能这样做,但是实际当中

YOLO v2 损失函数源码分析

损失函数的定义是在region_layer.c文件中,关于region层使用的参数在cfg文件的最后一个section中定义. 首先来看一看region_layer 都定义了那些属性值: layer make_region_layer(int batch, int w, int h, int n, int classes, int coords) { layer l = {0}; l.type = REGION; l.n = n; // anchors 的个数, 文章中选择为5 l.batch

逻辑回归损失函数3D图

在学习逻辑回归的过程中,通过3D图像可以直接观察损失函数的收敛速度,对自行确定学习速率提供参考 损失函数公式: Octave程序如下: tx = linspace(100,-30,1000); %θ和X看做一个共同参数ty = round(unifrnd(0,1,1,1000));% y的值仅仅为0或1,随机生成1000个m=length(tx);[xx, yy] = meshgrid (tx, ty);tz = -1 *( yy* log( sigmoid(xx) ) + (1 - yy )

Gradient Boost Decision Tree(GBDT)中损失函数为什么是对数形式

由于最近要经常用到XGBOOST的包,不免对相关的GBDT的原理又重新学习了一遍, 发现其中在考虑损失函数的时候,是以对数log进行度量的,囿于误差平方和函数的印象 那么为什么是对数呢?可能是下面的原因: [通俗的解释] 对数损失是用于最大似然估计的.一组参数在一堆数据下的似然值,等于每一条数据的概率之积.而损失函数一般是每条数据的损失之和,为了把积变为和,就取了对数.再加个负号是为了让最大似然值和最小损失对应起来. [专业的解释] 链接:http://www.zhihu.com/questio

(转)机器学习中的损失函数

损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好.损失函数是经验风险函数的核心部分,也是结构风险函数重要组成部分.模型的结构风险函数包括了经验风险项和正则项,通常可以表示成如下式子: 其中,前面的均值函数表示的是经验风险函数,L代表的是损失函数,后面的ΦΦ是正则化项(regularizer)或者叫惩罚项(penalty term),它可以是L1,也可以是L2,或

数据预处理中归一化(Normalization)与损失函数中正则化(Regularization)解惑

背景:数据挖掘/机器学习中的术语较多,而且我的知识有限.之前一直疑惑正则这个概念.所以写了篇博文梳理下 摘要: 1.正则化(Regularization) 1.1 正则化的目的 1.2 正则化的L1范数(lasso),L2范数(ridge),ElasticNet 2.归一化 (Normalization)   2.1归一化的目的 2.1归一化计算方法 2.2.spark ml中的归一化 2.3 python中skelearn中的归一化 知识总结: 1.正则化(Regularization) 1.

分类问题损失函数的信息论解释

分类问题损失函数的信息论解释 分类问题的优化过程是一个损失函数最小化的过程,对应的损失函数一般称为logloss,对于一个多分类问题,其在N个样本上的logloss损失函数具有以下形式: 其中,yi(n)代表第n个样本是否属于第i个类别,取值为0或1,f(x(n))i代表分类模型对于第n个样本属于第i个类别的预测概率.将上面的式子稍作简化就可以得到我们常见的二分类问题下的损失函数,在这里不做展开,我们下面的讨论也都对于更为一般的多分类问题展开,而这些讨论对于二分类问题显然也同样适用. 上面的损失

Caffe中的损失函数解析

Caffe中的损失函数解析 导言 在有监督的机器学习中,需要有标签数据,与此同时,也需要有对应的损失函数(Loss Function). 在Caffe中,目前已经实现了一些损失函数,包括最常见的L2损失函数,对比损失函数,信息增益损失函数等等.在这里做一个笔记,归纳总结Caffe中用到的不同的损失函数,以及分析它们各自适合的使用场景. 欧式距离损失函数(Euclidean Loss) 输入: 预测的值: y ^ ∈[?∞,+∞] , 其中,它们的形状为:N×C×H×W 标签的值: y∈[?∞,+

目标函数、损失函数、代价函数

http://www.cnblogs.com/Belter/p/6653773.html 注:代价函数(有的地方也叫损失函数,Loss Function)在机器学习中的每一种算法中都很重要,因为训练模型的过程就是优化代价函数的过程,代价函数对每个参数的偏导数就是梯度下降中提到的梯度,防止过拟合时添加的正则化项也是加在代价函数后面的.在学习相关算法的过程中,对代价函数的理解也在不断的加深,在此做一个小结. 1. 什么是代价函数? 假设有训练样本(x, y),模型为h,参数为θ.h(θ) = θTx