如何解决 l1 求导困难,工作遇到困难和困惑点如何解决

目标函数中同时使用多个L1和L2正则化项的情况,应该怎么求解? - 知乎223被浏览5566分享邀请回答machinelearning.wustl.edu/mlpapers/paper_files/icml2007_AndrewG07.pdf)。然后我查到说python这个包pyLBFGS可以算。但是我找了半天也没看到这个包怎么用OWL-QN,如果有知道的可以告诉下我。。。4、SGD-L1我现在准备用theano里的SGD改成这个算法,因为我的数据量太大,所以还是用SGD比较快,然后这个算法解决了在L1范数中不能求导的问题。详细原理见这篇paper(),其实原理不是很复杂,就是在对约束项那里的求导做了一个改动。。。我们准备用这个算法的原因是,直接在theano里面实现好方便,然后就可以GPU加速了。。。92 条评论分享收藏感谢收起你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
我有三个问题想咨询一下:
1. 麻烦问下老师在“回归“章节中对于l1正则中绝对值的那个近似,我画图对比发现他们确实超级近似,但是有啥理论方面的解释吗,就是说在我不知道这个公式的时候,我从那种出发点去想到这个公式呢?
2.找一个近似公式取代|x|的方法,效果咋样啊,不知道它与qwlqn那种方式的效果孰好孰坏啊?
3.liblinear里面那种l1正则的处理思路是咋样的啊,一直没看懂那个代码,还有什么好的l1正则求导的处理方法吗?
l1正则的问题困扰已久了,麻烦各位能否解答,感激涕零啊。
我不清楚你所说的“回归”是哪一个章节,建议你下次提问的时候把对应的PPT贴出来。
我先根据我的理解回答你的部分问题吧:
1,关于找一个函数的近似,常用的方法有很多。比如最常用的泰勒公式,其他的比如样条方法等等。但是针对某一个具体问题,往往有很多前人提出的经验性的近似。
2,找一个公式替代|x|的方法有很多,评价孰优孰劣的时候,通常可以定义某种距离,比如说用两个函数差的绝对值再积分作为两个函数的距离。距离|x|越近的,即可作为最优的近似。
3,没有见过那个代码,所以不能评论
要回复问题请先或
关注: 2 人如何解决 l1 求导困难,工作遇到困难如何解决_l1 求导_l1范数求导_解决 l1 求导_肺癌吞咽困难如何解决_翻页困难如何解决_如何解决困难_遇到困难如何解决作文_遇到困难如何解决 - 一点通(一)简介
1.现在,当提及机器学习时,一般指的是统计机器学习,也叫统计学习;统计学习关于数据的基本假设是同类数据具有一定的统计规律性;数据可以分为:结构化数据(表),半结构化数据(文本,日志),非结构化数据(图像,视频);
PS:经常需要将半结构化数据或者非结构化数据转化为结构化数据,作为输入数据;
2.一般情况下,机器学习可以分为监督学习跟非监督学习,监督学习包括分类跟回归两种,非监督学习包括聚类,降维跟密度估计三种;
3.监督学习的三要素:模型的假设空间,模型选择的准则以及模型学习的算法,简称模型,策略,算法
(1)模型:假设空间包含所有可能的模型,由参数向量决定;(参数空间)
& & & & & &1)决策模型:
& & & & & & & & & & &
& & & & & &2)概率模型:
& & & & & & & & & & & &
PS:基于学习过程模型分类:
& & & & & 1)判别模型:由数据直接学习决策函数或者条件概率分布作为预测的模型;
& & & & & 2)生成模型:由数据学习联合概率分布,然后求出条件概率分布作为预测的模型;
(2)策略:学习最优模型的准则,常见的有最小化结构风险函数,最大化似然函数,最大后验概率函数:
& & & & & 1)最小化结构风险函数:
& & & & & & &
& & & & & & & &其中第一项表示损失函数(常用平方误差):
& & & & & & &
& & & & & & & &第二项是正则化项,一般是模型复杂程度的单调递增函数,比如可以是模型参数向量的范数(L1,L2)——限制参数的非零个数;
& & & & & 2)最大化似然函数(极大似然估计):
& & & & & & & & 或者:
& & & & & &&
& & & & & &3)最大后验概率函数(贝叶斯估计):
& & & & & & & 根据贝叶斯定理,后验函数正比于似然函数乘以先验概率,所以后验概率函数一般表达如下:
1)最小化结构风险函数常用于决策模型的学习,最大化似然函数,最大后验概率函数常用于概率模型的学习;
2)极大似然估计认为参数是确定的,只是未知;贝叶斯估计认为参数也是随机变量;
3)极大似然估计只利用样本信息,贝叶斯估计既利用来样本信息,也利用了参数的先验知识;
4)贝叶斯估计中的先验概率其实就相当于最小化结构风险函数中的正则项,若先验为拉普拉斯分布,则为L1,若先验为高斯分布,则为L2;
(3)算法:学习最优模型的具体计算方法,也就是最优化方法;
4.在一个应用机器学习方法的解决方案中,完整的处理流程应该包含以下几个关键环节:定义问题,数据分析,数据清洗,准备样本,划分训练集跟验证集,定义评价指标,特征工程,模型选择,模型融合;(数据+特征+模型)
(二)数据
1.常见抽样方法
(1)简单随机抽样:无放回抽样,有放回抽样
(2)分层抽样
2.类别样本不平衡的解决方法(假设负样本远远大于正样本数量)
(1)欠采样:对负样本进行欠采样;一般不单纯地进行欠采样,而是结合集成学习来进行欠采样;将负样本划分为若干个集合供不同分类器使用,这样对每个分类器来看都进行了欠采样,但在全局来看却不会丢失重要信息;
(2)重采样:对正样本进行重采样;一般不单纯地进行重采样,而是对正样本进行插值等来产生新的正样本;
(3)阈值移动:不是简单地将概率阈&#作为正负样本的区分界限,若负样本过多,那么正样本的阈值将往低于0.5方向调整;
3.处理数据缺失的常用方法:
(1)用平均值、中值、分位数、众数、随机值等替代;
(2)通过建模,使用其他变量来预测缺失值;
(3)将变量映射到高维空间:比如性别变量有男,女以及缺失3种情况,则映射为3个变量:是否男,是否女,是否缺失;
4.构造线下验证集的常用方法:
(1)hold-out-validation:将线下数据随机划分为一大一小两部分,大的为训练集,小的为验证集,重复若干次;(典型做法是三七分)
(2)cross-validation:将线下数据划分为k份,每次只用k-1份来训练,剩下的1份作为验证集,重复k次;(典型做法是k取10,k偏小则欠拟合,k偏大则过拟合)
(3)bootstrapping:从原始数据集D中有放回地采样,得到同样大小的D1,D1作为训练集,D-D1作为验证集;
1)训练集与验证集的划分要尽可能保持数据分布的一致性,避免因数据划分过程引入额外的偏差而对最终结果产生影响,例如在分类任务中至少要保持样本的类别比例相似;如果从采样的角度来看待数据集的划分过程,则保留类别比例的采样方式通常称为“分层采样”;
2)验证集较小时,评估结果的方差较大,过拟合;训练集较小时,评估结果的偏差较大,欠拟合;
3)leave-one-out是k-fold cross-validation的特殊例子,只留一个样本做验证集;评估结果往往比较准确,但是不适用于大样本数据;(训练的计算开销太大)
4)bootstrapping可以产生多个不同的训练集,适用于ensemble learning;同时,由于重复采样,所以会改变初始训练集的分布,因此一般适用于小样本,在数据量足够的情况下,常采用hold-out-validation或者cross-validation;
5.常见的离线评价指标:
(1)准确率(Accuracy)与平均准确率(Average Per-class Accuracy)
其中平均准确率是对各个类的准确率取平均值
(2)混淆矩阵:对二分类结果进行详细表述的一个矩阵
(3)F1值
F1值是精确率与召回率的调和平均值;精确率是指分类器分类正确的正样本的个数占该分类器所有分类为正样本个数的比例;召回率是指分类器分类正确的正样本个数占所有的正样本个数的比例;
(4)ROC曲线:横坐标为FP rate(负样本中被判成正的概率),纵坐标为TP rate(正样本中被判成正的概率)
& & & & & & &1)(0,0)表示样本都被判断成负;
& & & & & & &2)(1,1)表示样本都被判断成正;
& & & & & & &3)(0,1)表示全部判断正确;
& & & & & & &4)(1,0)表示全部判断错误;
& & & & & & &5)通过设定不同的阈值(判定为负样本的评分阈值),可以得到不同的FP-TP点,从而画出ROC曲线;
& & & & & & &6)ROC曲线一般如下(随着阈值的变大,FPR跟TPR都会变大;偏向左上方):
& & & & & & & & &
& & & & & & & 7)ROC曲线不随正负样本的比例变化而变化,因为其本质上记录的就分别是正负各自样本中的特性,与正负比例无关;
(5)AUC:ROC曲线下面积;一般介于0.5到1之间,AUC越大(越往左上角偏),分类效果越好;
PS:ROC跟AUC常用来评估不均衡样本下模型预测能力;
6.常见的在线评价指标——A/B test
(1)将用户随机分为2组,各自使用新旧模型;
(2)观察2组用户的行为;
(3)计算各自的统计指标,这里指的是商业指标,比如转化率,点击率等;
(4)最后输出哪个模型更好;
(三)特征
1.冗余特征
(1)冗余特征指的是其所包含的信息能从其他特征中推演出来;
(2)去除冗余特征会减轻学习过程的负担,增加冗余特征会降低学习任务的难度;
2.特征选择:从给定的特征集合中选择出相关特征子集的过程称作“特征选择”;其中包括子集搜索问题与子集评价问题:
(1)子集搜索:前向搜索(逐渐往子集增加特征),后向搜索(逐渐往全集剔除特征)
(2)子集评价:信息增益,基尼指数
(1)子集搜索中的前后向搜索都是贪心策略,所以不一定是最优,这是不进行穷举搜索所无法避免的;
(2)将特征子集搜索机制与子集评价机制相结合,可以得到特征选择方法,例如前向搜索与信息熵结合,得到的是决策树的特征选择方法;
3.特征选择常见方法:过滤式(filter),包裹式(wrapper),嵌入式(embedding)
(1)过滤式:先做特征选择,再训练学习器,特征选择过程与后续的学习器的训练没有关系;
(2)包裹式:为给定的学习器选择最有利于其性能,“量身定做”的特征子集;从最终学习性能来看,包裹式比过滤式更好,另一方面由于在特征选择过程中需要多次训练学习器,因此包裹式计算开销更大;
(3)嵌入式:将特征选择与学习器训练融为一体,两者在同一个优化过程中完成,即在学习器训练过程中自动地进行了特征选择;(L1正则项)
(四)模型
1.模型选择的常用方法:
(1)正则化
(2)交叉验证
PS:当假设空间含有不同的复杂度(例如,不同的参数个数)的模型时,就要面临模型选择的问题;
2.过拟合与欠拟合
(1)过拟合是模型的学习能力太强,把样本的噪声都学习进去;
(2)欠拟合是模型的学习能力太弱,连样本的一般特性都没有学习进去;
3.泛化能力与泛化误差上界
(1)泛化能力是指由该方法学习到的模型对未知数据的预测能力,是学习方法本质上最重要的性质;
(2)泛化误差上界:训练误差越小,泛化误差上界也越小;样本容量越大,泛化误差上界也越小;模型越复杂,泛化误差上界越大;
(1)常见的正则项有L1与L2;
(2)正则化项的提出是为了约束模型的复杂度,防止模型对训练数据的过度拟合,尤其是噪声跟异常点;
(3)正则化其实是决策模型的概念,其对应于概率模型中的贝叶斯估计;贝叶斯估计比起极大似然估计,多了参数的先验知识;即假设模型参数是符合一个先验的概率分布的;
(4)L1正则项是假设参数服从拉普拉斯分布;L2正则项是假设参数服从高斯分布;L1概率分布图更加尖锐,因此更好约束稀疏;不过L1求导比较困难;
5.常用的防止过拟合的方法:
(1)数据集扩增
(2)正则化:约束参数大小
6.bias与variance
(1)bias:偏差,表示模型的预测能力,偏差越小,模型的预测能力越强;
(2)variance:方差,表示模型的泛化能力,方差越小,模型的泛化能力越强;
(3)error = bias + variance
7.模型参数与超参数
(1)机器学习模型建立过程其实是一个参数学习与调优的过程,参数包括模型参数与超参数;
(2)模型参数使指通过模型训练中的学习算法而进行调整的,而模型超参数不是通过学习算法而来的,但是同样也需要进行调优,比如特征的维数等;
(3)常见的调参方法有:网格搜索,随机搜索,启发式搜索;
(4)调参是通过线下验证集进行的;
8.VC维(Vapnik-Chervonenkis Dimension):VC维是统计学习理论中的一个核心概念,它是目前为止对函数集学习性能的最好描述指标
(1)shatter(打散)概念:给定训练样本集合x1,x2,...,xn;,其中每个样本有两个可选的label(+1, -1),因此总共有2的n次方种不同的label组合;如果对于其中每一种组合,分类模型(函数集)
F 都能够对其进行正确的划分,那么我们称 F 能够将训练样本集合打散(shatter);
上图共有3个样本,可以看到,对于样本的任意一种label组合,图中的直线都可以将正样本和负样本分开;这时我们称这条直线可以将这三个样本打散(shatter);
上图中显示了四个样本,如果只用一条直线,那么无论这条直线怎么划都不能将正负样本分开;
(2)VC维的概念:指函数集H能够打散的最大样本数称为H的VC维;
(3)对于一个模型来说,其VC维越大,则其模型复杂度越高,需要更多的训练数据,因此为了防止过拟合,加入正则项,其实也就是降低模型的VC维;
PS:线性SVM的VC维为d+1;高斯核函数的VC维为无穷大;
9.集成学习(ensemble learning)的常用方法:
(1)bagging:训练不同的模型,对预测结果取均值或者投票等(减小variance);
(2)boosting:迭代算法,在上一次分类结果上进行迭代调整(减小bias);
(3)stacking/cascade:训练不同的模型,用每个模型的预测作为输入,训练新的模型;
10.多分类的常见方法(假设N个类)
(1)one vs rest:构建N个分类器,每个分类器依次将每个类做为正样本,剩余的类作为负样本
(2)one vs one:构建N*(N-1)/2个分类器,每个分类器选择两个类的样本进行训练
本文已收录于以下专栏:
相关文章推荐
损失函数(loss function)是用来估量你模型的预测值f(x)与真实值Y的不一致程度,它是一个非负实值函数,通常使用L(Y, f(x))来表示,损失函数越小,模型的鲁棒性就越好。损失函数是经验...
IOC和DI的区别
–IOC侧重于控制—把代码控制的一些解耦操作交给IOC容器—DI侧重于实现—为对象关联所需要的各种方法IOC相关的概念———IOC容器是为了实现解耦操作,让对象都依赖IOC容器,...
一 异常处理
1 异常:程序在设计时或运行时产生的错误
2 异常处理:处理异常的过程,异常被处理后,异常就不存在了,程序就可以继续运行了。如果异常不被处理,程序就会被强行终止
3 异常的体...
1.oracle的安装和卸载
百度上有很多资料
2.基本概念(以下都只是简单提纲,并不是具体内容)
Oracle服务器(Oracle Database)的基本概念:
...
他的最新文章
讲师:刘文志
讲师:陈伟
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)解决 l1 求导,求导公式_如何解决 l1 求导困难_l1范数求导_l1 求导_求导公式大全_指数函数求导_复合函数求导_隐函数求导_矩阵求导 - 一点通}

我要回帖

更多关于 l1正则化 求导 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信