损失函数

统计学习三要素

给你一囗甜甜゛ 提交于 2019-12-06 18:33:25
  统计学习方法都是由模型、策略和算法构成的,即统计学习方法由三要素构成,可以简单地表示为:    方法=模型+策略+算法   非监督学习、强化学习也同样拥有这三要素。构建一种统计学习方法就是确定具体的统计学习三要素。   1.模型   统计学习首要考虑的问题是学习什么样的模型。在监督学习过程中,模型就是所要学习的条件概率分布或决策函数。模型的假设空间(hypothesis space)包含所有可能的条件概率分布或决策函数。例如,假设决策函数是输入变量的线性函数,那么模型的假设空间就是所有这些线性函数构成的函数集合。假设空间中的模型一般有无穷多个。 假设空间用F表示,假设空间可以定义为决策函数的集合F={f|Y=f(x)},其中,X和Y是定义在输入空间x和输出空间y上的变量。这时y通常是由一个参数向量决定的函数族。参数向量取值于n维欧氏空间Rn,称为参数空间(parameter space)。假设空间也可以定义为条件概率的集合,其中,X和Y是定义在输入空间x和输出空间y上的随机变量。 这时通常是由一个参数向量决定的条件概率分布族, 参数向量取值于n维欧氏空间Rn,也称为参数空间。 一般由决策函数表示的模型为非概率模型,由条件概率表示的模型为概率模型。   2.策略   有了模型的假设空间,统计学习接着需要考虑的是按照什么样的准则学习或选择最优的模型

统计学习方法与Python实现(一)——感知机

与世无争的帅哥 提交于 2019-12-06 15:20:53
统计学习方法与Python实现(一)——感知机   iwehdio的博客园: https://www.cnblogs.com/iwehdio/ 1、定义   假设输入的实例的特征空间为x属于R n 的n维特征向量,输出空间为y = { +1, -1}的两点,输出的y的值表示实例的类别,则由输出空间到输出空间的函数:   被称为感知机。   模型参数w表示内积的权值向量,b表示偏置。sign(x)为符号函数,≥0取+1,<0取-1。   感知机模型的分类由线性方程 wx + b = 0 确定的分离超平面来完成,根据将特征向量代入后 wx + b 的正负来分离正、负两类。 2、学习策略   很明显,感知机是一种线性分类器。因此,我们为了较好的分类效果,要求数据集线性可分,也就是存在一个超平面将数据集中的两类数据完全正确的划分。   定义好模型后,进行学习首先要定义损失函数。   1、可选损失函数为误分类点的总数。但这时损失函数对参数不可导,不易优化。   2、可选误分类点到超平面的总距离。刻画了整个数据集上误分的程度,而且对参数可导。   误分类点到超平面的总距离为:   则损失函数为(M为误分类点的数量):   则优化问题转化为优化w和b的值,最小化损失函数L。选用随机梯度下降法,计算损失函数L对参数w和b的梯度。梯度的计算公式如下,也就是L分别对w和b求导。   可以看到

损失函数--KL散度与交叉熵

廉价感情. 提交于 2019-12-06 11:15:22
损失函数 在逻辑回归建立过程中,我们需要一个关于模型参数的可导函数,并且它能够以某种方式衡量模型的效果。这种函数称为损失函数(loss function)。 损失函数越 小 ,则模型的预测效果越 优 。所以我们可以把训练模型问题转化为 最小化损失函数 的问题。 损失函数有多种,此次介绍分类问题最常用的 交叉熵(cross entropy)损失 ,并从 信息论 和 贝叶斯 两种视角阐释交叉熵损失的内涵。 ## 公式请查看 : https://blog.csdn.net/Ambrosedream/article/details/103379183 K-L散度与交叉熵 随机变量 X 有 k 种不同的取值: ,, ​ 。 记 X 的取值 ​ 的概率为p(X= ​ ) ,简写为P( ​ ) . 克劳德 · 香农定义了信息的信息量: ​ 注:其中对数可以以任意合理数为底,如 2、e。使用不同的底数所得到的信息量之间相差一个常系数。 若以2为底,信息量的单位是bit ,I(X= ​ )是X = ​ 这条信息的自信息量(self-information) . 自信息量 I 随着概率 P ( ​ )的图像变化如下: 自信息量背后的含义:信息中事件发生的概率越小,则信息量越大。 举例:假如有人告诉你即将开奖的彩票中奖号码是777777777,这条信息的价值很高,类似事情发生概率极小

SSD源码解读——损失函数的构建

ぐ巨炮叔叔 提交于 2019-12-06 07:07:58
之前,对SSD的论文进行了解读,可以回顾之前的博客: https://www.cnblogs.com/dengshunge/p/11665929.html 。 为了加深对SSD的理解,因此对SSD的源码进行了复现,主要参考的github项目是 ssd.pytorch 。 搭建SSD的项目,可以分成以下三个部分: 数据读取 ; 网络搭建 ; 损失函数的构建。 接下来,本篇博客重点分析 损失函数的构建 。 检测任务的损失函数,与分类任务的损失函数具有很大不同。在检测的损失函数中,不仅需要计类别置信度的差异,坐标的差异,还需要使用到各种tricks,例如hard negative mining等。 在train.py中,首先需要对损失函数MultiBoxLoss()进行初始化,需要传入的参数为num_classes类别数,正例的IOU阈值和hard negative mining的正负样本比例。在论文中,VOC的类别总数是21(20个类别加上1个背景);当预测框与GT框的IOU大于0.5时,认为该预测框是正例;hard negative mining的正样本和负样本的比例是1:3。 # 损失函数 criterion = MultiBoxLoss(num_classes=voc['num_classes'], overlap_thresh=0.5, neg_pos=3) 在models

[ch03-01] 均方差损失函数

扶醉桌前 提交于 2019-12-06 02:23:15
系列博客,原文在笔者所维护的github上: https://aka.ms/beginnerAI , 点击star加星不要吝啬,星越多笔者越努力。 3.1 均方差函数 MSE - Mean Square Error。 该函数就是最直观的一个损失函数了,计算预测值和真实值之间的欧式距离。预测值和真实值越接近,两者的均方差就越小。 均方差函数常用于线性回归(linear regression),即函数拟合(function fitting)。公式如下: \[ loss = {1 \over 2}(z-y)^2 \tag{单样本} \] \[ J=\frac{1}{2m} \sum_{i=1}^m (z_i-y_i)^2 \tag{多样本} \] 3.1.1 工作原理 要想得到预测值a与真实值y的差距,最朴素的想法就是用 \(Error=a_i-y_i\) 。 对于单个样本来说,这样做没问题,但是多个样本累计时, \(a_i-y_i\) 有可能有正有负,误差求和时就会导致相互抵消,从而失去价值。所以有了绝对值差的想法,即 \(Error=|a_i-y_i|\) 。这看上去很简单,并且也很理想,那为什么还要引入均方差损失函数呢?两种损失函数的比较如表3-1所示。 表3-1 绝对值损失函数与均方差损失函数的比较 样本标签值 样本预测值 绝对值损失函数 均方差损失函数 \([1,1,1]\)

线性回归

雨燕双飞 提交于 2019-12-06 02:12:54
简单理解 就是用一条直线较为精确地描述数据之间的关系, 这样当出现新的数据的时候, 就能够预测出一个简单的值。 一些概念: 回归平均值(regression to the mean) 因变量(dependent variable): y=a 1 x 1 +a 2 x 2 +a 3 x 3 ......+a n x n 中的y, 即需要预测的值 自变量(independent variables): y=a 1 x 1 +a 2 x 2 +a 3 x 3 ......+a n x n 中的x 1 , x 2 ... x n , 即预测变量 广义线性回归(GLM, Generalized Linear Model), 如逻辑回归, 泊松分布等...... 最小二乘法 法国数学家,阿德里安-馬里·勒讓德(1752-1833)提出让总的误差的平方最小的 就是真值,这是基于,如果误差是随机的,应该围绕真值上下波动。 梯度下降算法 先确定向下一步的步伐大小, 即Learning Rate 任意给定一个初始值 确定一个向下的方向, 并向下走预先规定的步伐, 并更新当下降的高度小于某个定义的值, 则停止下降。 需要注意的是导数=0取得的解不一定是最优解, 很可能是某个局部最优解。 损失函数 (Cost Function) 损失函数分为经验风险损失函数和结构风险损失函数

[ch03-00] 损失函数

人走茶凉 提交于 2019-12-05 23:04:05
系列博客,原文在笔者所维护的github上: https://aka.ms/beginnerAI , 点击star加星不要吝啬,星越多笔者越努力。 第3章 损失函数 3.0 损失函数概论 3.0.1 概念 在各种材料中经常看到的中英文词汇有:误差,偏差,Error,Cost,Loss,损失,代价......意思都差不多,在本书中,使用“损失函数”和“Loss Function”这两个词汇,具体的损失函数符号用J来表示,误差值用loss表示。 “损失”就是所有样本的“误差”的总和,亦即(m为样本数): \[损失 = \sum^m_{i=1}误差_i\] \[J = \sum_{i=1}^m loss\] 在黑盒子的例子中,我们如果说“某个样本的损失”是不对的,只能说“某个样本的误差”,因为样本是一个一个计算的。如果我们把神经网络的参数调整到完全满足独立样本的输出误差为0,通常会令其它样本的误差变得更大,这样作为误差之和的损失函数值,就会变得更大。所以,我们通常会在根据某个样本的误差调整权重后,计算一下整体样本的损失函数值,来判定网络是不是已经训练到了可接受的状态。 损失函数的作用 损失函数的作用,就是计算神经网络每次迭代的前向计算结果与真实值的差距,从而指导下一步的训练向正确的方向进行。 如何使用损失函数呢?具体步骤: 用随机值初始化前向计算公式的参数; 代入样本,计算输出的预测值;

PyTorch的十七个损失函数

痞子三分冷 提交于 2019-12-05 21:56:18
本文截取自《PyTorch 模型训练实用教程》,获取全文pdf请点击: tensor-yu/PyTorch_Tutorial ​github.com 版权声明:本文为博主原创文章,转载请附上博文链接! 我们所说的优化,即优化网络权值使得损失函数值变小。但是,损失函数值变小是否能代表模型的分类/回归精度变高呢?那么多种损失函数,应该如何选择呢?请来了解PyTorch中给出的十七种损失函数吧。 1.L1loss 2.MSELoss 3.CrossEntropyLoss 4.NLLLoss 5.PoissonNLLLoss 6.KLDivLoss 7.BCELoss 8.BCEWithLogitsLoss 9.MarginRankingLoss 10.HingeEmbeddingLoss 11.MultiLabelMarginLoss 12.SmoothL1Loss 13.SoftMarginLoss 14.MultiLabelSoftMarginLoss 15.CosineEmbeddingLoss 16.MultiMarginLoss 17.TripletMarginLoss 请运行配套代码,代码中有详细解释,有手动计算,这些都有助于理解损失函数原理。 本小节配套代码: /Code/3_optimizer/3_1_lossFunction 1.L1loss class torch

提升方法与梯度提升决策树

时光怂恿深爱的人放手 提交于 2019-12-05 11:43:10
提升方法与前向分步算法 提升方法 从弱学习算法出发,反复学习,得到一系列弱分类器,然后组合这些弱学习器,提升为强学习器 两个问题: 在每一轮如何改变训练数据的权值或概率分布 如何将弱学习器组合成一个强学习器 前向分步算法 AdaBoost另一种解释: 加法模型 损失函数为指数函数 学习算法为前向分步算法 二类分类学习方法 前向分步算法(Forward Stagewise Algorithm) 考虑加法模型(additive model) \[f(x)=\sum \limits_{m=1}^M \beta_m b(x;\gamma_m) \] 其中, \(b(x;\gamma_m)\) 为基函数, \(\beta_m\) 为基函数的系数, \(\gamma_m\) 为基函数参数 给定训练数据及损失函数 \(L(y, f(x))\) 条件下,学习加法模型成为经验风险极小化即损失函数极小化问题 \[\mathop{\min} \limits_{\beta,\gamma} \sum \limits_{i=1}^N L(y_i, \beta b(x_i; \gamma)) \] 前向分步算法如下: 输入:训练集,损失函数 \(L\) ,基函数集 \(\{b(x;\gamma)\}\) 输出:加法模型 \(f(x)\) 初始化 \(f_0(x)=0\) 对 \(m=1,2,\cdots,M\)

有监督学习的损失函数

烈酒焚心 提交于 2019-12-05 11:28:17
分类问题 以下均以二分类问题为例,即 \(Y=\{1, -1\}\) , \(y = \mathop{sign}(f(x_i; \theta))\) 0-1损失 \[L_{0-1}(f, y) = I(fy \leq 0)\] 非凸、非光滑,难以优化 Hinge损失函数 0-1损失的一个代理函数,是0-1损失相对紧的上界,称为合页损失函数 \[L_{hinge}(f, y) = \max\{0, 1-fy\}\] 在 \(fy=1\) 处不可导,因此不能用梯度下降优化,而是用次梯度下降 Logistic损失函数 0-1损失的代理函数,凸上界 \[L_{logistic}(f, y) = \log_2 (1 + \exp (-fy))\] 处处光滑,可用梯度下降。但对所有样本点都有惩罚,因此对异常值更敏感 交叉熵损失函数 0-1损失函数的代理函数,光滑凸上界 \[L_{cross \ entropy} (f, y) = -\log2(\frac{1+fy}{2})\quad f \in [-1, 1]\] 回归问题 对于回归问题,有 \(y = f(x_i;\theta)\) 平方损失函数 \[L_{square}(f, y) = (f - y)^2\] 光滑函数,能用梯度下降,但对异常点敏感 绝对损失函数 \[L_{absolute}(f, y) = |f - y|\]