损失函数

GBDT

匿名 (未验证) 提交于 2019-12-02 23:57:01
1、GBDT模型介绍; 2、GBDT回归算法 3、GBDT分类算法 4、GBDT的损失函数 5、正则化 6、GBDT的梯度提升与梯度下降法的梯度下降的关系; 7、GBDT的优缺点 1、GBDT模型介绍; GBDT(Gradient Boosting Decision Tree) 又名:MART(Multiple Additive Regression Tree) 适用于分类和回归问题; 加法模型(基分类器的线性组合) 根据当前损失函数的负梯度信息来训练新加入的弱分类器,再将训练好的弱分类器以累加的形式结合到现有模型; 以决策树为基学习器的提升方法;一般会选择为CART(无论用于分类还是回归),也可以选择其他弱分类器的,选择的前提是低方差和高偏差,每次走一小步逐渐逼近结果的效果; 在训练过程中希望损失函数能够不断的减小,且尽可能快的减小。所以用的不是单纯的残差,而是损失函数的负梯度方向,这样保证每轮损失函数都在稳定下降,而且递减速度最快,类似于梯度下降法,来求损失函数的极小值; Shrinkage(缩减)的思想认为,每次走一小步逐渐逼近结果的效果,要比每次迈一大步很快逼近结果的方式更容易避免过拟合。即它不完全信任每一个棵残差树,它认为每棵树只学到了真理的一小部分,累加的时候只累加一小部分,通过多学几棵树弥补不足。 2、GBDT回归算法描述 步骤: 1、初始化

机器学习排序算法:RankNet to LambdaRank to LambdaMART

匿名 (未验证) 提交于 2019-12-02 23:56:01
使用机器学习排序算法LambdaMART有一段时间了,但一直没有真正弄清楚算法中的所有细节。 学习过程中细读了两篇不错的博文,推荐给大家: 梯度提升树(GBDT)原理小结 徐博From RankNet to LambdaRank to LambdaMART: An Overview 但经过一番搜寻之后发现,目前网上并没有一篇透彻讲解该算法的文章,所以希望这篇文章能够达到此目的。 本文主要参考微软研究院2010年发表的文章 From RankNet to LambdaRank to LambdaMART: An Overview 1 1,并结合自己的理解,试图将RankNet、LambdaRank和LambdaMART这三种算法的所有算法细节讲解透彻。 1. 概述 RankNet、LambdaRank和LambdaMART是三个关系非常紧密的机器学习排序算法。简而言之,RankNet是最基础,基于神经网络的排序算法;而LambdaRank在RankNet的基础上修改了梯度的计算方式,也即加入了lambda梯度;LambdaMART结合了lambda梯度和MART(另称为GBDT,梯度提升树)。这三种算法在工业界中应用广泛,在BAT等国内大厂和微软谷歌等世界互联网巨头内部都有大量应用,还曾经赢得“Yahoo!Learning To Rank Challenge(Track 1)"的冠军

模式识别与机器学习(三)

匿名 (未验证) 提交于 2019-12-02 23:56:01
最大最小距离 和 层次聚类 算法的一个共同特点是某个模式一旦划分到某一类之后,在后续的算法过程中就不再改变了,而 简单聚类算法中类心一旦选定后,在后继算法过程中也不再改变了。因此,这些方法效果一般不会太理想。 为解决该问题,可以采用 动态聚类法: 使用动态聚类法的要点: 确定模式和聚类的距离测度。当采用欧式距离时,是计算此模式和该类中心的欧式距离;为能反映出类的模式分布结构,可采用马氏距离。 确定评估聚类质量的准则函数。 确定模式划分以及聚类合并或分裂的规则。 基本步骤: 建立初始聚类中心,进行初始聚类 计算模式和类的距离,调整模式的类别 计算各聚类的参数,删除、合并或分裂一些聚类 从初始聚类开始,运用迭代算法动态地改变模式的类别和聚类的中心使准则函数取得极值或设定的参数达到设计要求时停止 C-均值法 条件及约定 设待分类的模式特征矢量集为:{ \(\vec x_1, \vec x_2,...,\vec x_N\) },类的数目C是事先取定的。 算法思想 该方法取定C个类别和选取C个初始聚类中心,按最小距离原则将各模式分配到C类中的某一类,之后不断地计算类心和调整各模式的类别,最终使各模式到其判属类别中心的距离平方和最小。 算法原理步骤 (1) 任选C个模式特征矢量作为初始聚类中心: \(\vec z_1^{(0)}, \vec z_2^{(0)},...,\vec z_C^{(0

机器学习之目标函数,损失函数和代价函数

匿名 (未验证) 提交于 2019-12-02 23:43:01
Ŀ¼ 1. 基本概念: 2. 实际应用 1. 基本概念: 损失函数(loss function) :计算的是一个样本的误差 代价函数(cost function) :是整个训练集上所有样本误差的平均 目标函数 :代价函数 + 正则化项 2. 实际应用 损失函数和代价函数是同一个东西,目标函数是一个与他们相关但更广的概念,举例说明: 上面三个图的曲线函数依次为f1(x),f2(x),f3(x),我们想用这三个函数分别来拟合真实值Y。 我们给定x,这三个函数都会输出一个f(X),这个输出的f(X)与真实值Y可能是相同的,也可能是不同的,为了表示我们拟合的好坏,我们就用一个函数来度量拟合的程度。这个函数就称为 损失函数 ,或者叫 代价函数 。 损失函数越小,就代表模型拟合的越好。那是不是我们的目标就只是让loss function越小越好呢?还不是。这个时候还有一个概念叫 风险函数(risk function) 。风险函数是损失函数的期望,这是由于我们输入输出的(X,Y)遵循一个联合分布,但是这个联合分布是未知的,所以无法计算。但是我们是有历史数据的,就是我们的训练集,f(X)关于训练集的平均损失称作 经验风险(empirical risk) ,所以我们的 目标就是最小化经验风险 。 如果到这一步就完了的话,那我们看上面的图,那肯定是最右面的f3(x)的经验风险函数最小了

[转] L1 && L2范数

匿名 (未验证) 提交于 2019-12-02 23:39:01
作者:Andy Yang 链接:https://www.zhihu.com/question/26485586/answer/616029832 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 理解L1,L2 范数 L1,L2 范数即 L1-norm 和 L2-norm ,自然,有L1、L2便也有L0、L3等等。因为在机器学习领域,L1 和 L2 范数应用比较多,比如作为正则项在回归中的使用 Lasso Regression (L1) 和 Ridge Regression (L2)。 因此,此两者的辨析也总被提及,或是考到。不过在说明两者定义和区别前,先来谈谈什么是范数(Norm)吧。 什么是范数? 在线性代数以及一些数学领域中,norm 的定义是 a function that assigns a strictly positive length or size to each vector in a vector space, except for the zero vector. ――Wikipedia 简单点说,一个向量的 norm 就是将该向量 投影到 [0, ) 范围内的值 ,其中 0 值只有零向量的 norm 取到。看到这样的一个范围,相信大家就能想到其与现实中距离的类比,于是在机器学习中 norm 也就总被拿来 表示距离关系

tensorflow2.0 损失函数

北城余情 提交于 2019-12-02 15:08:22
# 1. tf.losses.mean_squared_error:均方根误差(MSE) —— 回归问题中最常用的损失函数 # 优点是便于梯度下降,误差大时下降快,误差小时下降慢,有利于函数收敛。 # 缺点是受明显偏离正常范围的离群样本的影响较大 mse=tf.losses.mean_squared_error(y_true,y_pred) mse=tf.reduce_mean(tf.square(y_true-y_pred)) 2. tf.losses.absolute_difference:平均绝对误差(MAE) —— 想格外增强对离群样本的健壮性时使用 # 优点是其克服了 MSE 的缺点,受偏离正常范围的离群样本影响较小。 # 缺点是收敛速度比 MSE 慢,因为当误差大或小时其都保持同等速度下降,而且在某一点处还不可导,计算机求导比较困难。 maes=tf.compat.v1.losses.absolute_difference(y_true,y_pred) maes_loss=tf.reduce_sum(maes) # 3. tf.losses.huber_loss:Huber loss —— 集合 MSE 和 MAE 的优点,但是需要手动调超参数 # 核心思想是,检测真实值(y_true)和预测值(y_pred)之差的绝对值在超参数 δ 内时, # 使用 MSE 来计算

深度学习入门

谁说我不能喝 提交于 2019-12-02 14:50:43
Deep Learning with Pytorch_002 chapter03_深入研究神经网络的构建块 在上一章中,我们使用Py Torch的低级操作来构建模块,如网络体系结构、损失函数和优化器。在本章中,我们将探讨解决现实世界问题所需的神经网络的一些重要组成部分,以及PyTorch如何通过提供大量的高级函数来抽象出大量的复杂性。 本章将讨论以下主题: 深入研究神经网络的各种构建块 探索PyTorch中的高级功能来构建深度学习体系结构 将深度学习应用在一个真实图像分类问题 任何深入的学习训练都需要获取数据,构建一个总体上是将一堆层聚集在一起的体系结构。 理解PyTorch为构建层、损失函数和优化器提供的更高层次的抽象。 层次——神经网络的基本块 最重要的层之一——线性层 对输入的数据应用线性变换: y = x A T + b y y = xA^T + by y = x A T + b y torch.randn(*size, out=None, dtype=None, layout=torch.strided, device=None, requires_grad=False) → Tensor 返回一个由均值为0、方差为1的正态分布(标准正态分布)中的随机数组成的张量。 o u t i ∼ N ( 0 , 1 ) out i ∼N(0,1) o u t i ∼ N ( 0 ,

SVM算法(六)SVM算法的正则化损失函数视角

帅比萌擦擦* 提交于 2019-12-02 10:39:57
一、用“损失函数+正则项”理解SVM最优化目标 如 近似线性可分问题 所述,SVM算法的目标是求得如下目标函数的最小值: min ⁡ 1 2 w 2 + C ∑ i = 1 n ξ i s . t . y i ( w x i + b ) ≥ 1 − ξ i ξ i ≥ 0 \begin{aligned}&\min\frac{1}{2}w^2+C\sum\limits_{i=1}^n \xi_i \\&s.t.\space \space y_i(wx_i+b)\ge1-\xi_i\\ &\qquad \xi_i \ge0\end{aligned} ​ min 2 1 ​ w 2 + C i = 1 ∑ n ​ ξ i ​ s . t . y i ​ ( w x i ​ + b ) ≥ 1 − ξ i ​ ξ i ​ ≥ 0 ​ 根据拉格朗日广义函数对偶问题的分析, α i \alpha_i α i ​ 共有如下三种取值情况: 1) α i = C \alpha_i=C α i ​ = C ,由对偶互补条件有 ξ i = 1 − y i ( w x i + b ) \xi_i=1-y_i(wx_i+b) ξ i ​ = 1 − y i ​ ( w x i ​ + b ) 2) α i = 0 \alpha_i=0 α i ​ = 0 ,由对偶互补条件有 ξ i = 0 \xi_i=0

感知机原理

ε祈祈猫儿з 提交于 2019-12-02 06:47:27
感知机可以说是最古老的分类方法之一,早在1957年就已经提出。从今天来看它的分类模型在大多数时候泛化能力不强,但是它的原理却值得好好研究。因为研究透了感知机模型,学习支持向量机的话会降低不少难度。同时如果研究透了感知机模型,再学习神经网络,深度学习,也是一个很好的起点。 1.感知机模型 感知机的思想很简单,比如我们在一个平台上有很多的男孩女孩,感知机的模型就是尝试找到一条直线,能够把所有的男孩和女孩隔离开。放到三维空间或者更高维的空间,感知机的模型就是尝试找到一个超平面,能够把所有的二元类别隔离开,如下图这样。 当然你可能会想,如果我们找不到这么一条直线的话怎么办?找不到的话那就意味着类别线性不可分,也就意味着感知机模型不适合你的数据的分类。使用感知机一个最大的前提,就是数据是线性可分的。这严重限制了感知机的使用场景。它的分类竞争对手在面对不可分的情况时,比如支持向量机可以让数据在高维可分,神经网络可以通过激活函数和增加隐藏层来让数据可分。支持向量机的分类方法如下图所示 用数学的语言来说,如果我们有m个样本,每个样本对应于n维特征和一个二元类别输出,如下: ( x 1 ( 0 ) , x 2 ( 0 ) . . . x n ( 0 ) , y 0 ) , ( x 1 ( 1 ) , x 2 ( 1 ) . . . x n ( 1 ) , y 1 ) . . . ( x 1 ( m

广义回归算法通释

放肆的年华 提交于 2019-12-02 06:32:37
广义回归算法的分类 广义的回归算法有很多种,从用途划分有预测(即狭义回归)、分类两大类。 响应变量是连续性变量,即预测算法;响应变量是类别型变量,即分类算法。 判定边界可以用方程函数表达 特征可以是单个(单变量、二维空间),也可以是多个(多变量、高维空间)。 线性关系是直线(二维空间)、平面(高维空间),非线性关系是曲线(二维空间)、曲面(高维空间)。 避免模型欠拟合或者过拟合:欠拟合,准确性低;过拟合,通用性差,样本变动会导致准确性极度不稳定。 下图是几种不同风格的2D图像,计算机目前也仅能展示到3D,可以暂且将4D甚至更高维都看成类似2D、3D的图像原理:总是有一种判定边界,不管是直线、圆、曲线,还是曲面,都能将样本拟合或者分割。这些判定边界也总是能用方程式表达出来:线性方程、多项式方程、指数方程、logistic方程,反正总有方程函数可以表达。 最优判定边界即最小化损失函数 不管预测还是分类,都属于监督学习。 监督学习的优化方法=损失函数+对损失函数的优化。 所以,回归算法要明确损失函数的定义、最小化损失函数。 损失函数:度量预测值和实际值的距离偏差,注意距离的计算公式并不是固定的。 不管模型是什么方程函数,其损失函数一般都是凹或凹凸曲面,最凹点就是最小值。 用梯度下降法求损失函数最小值 https://blog.csdn.net/qq_41800366/article