精华内容
下载资源
问答
  • 二分图的基本模型思想

    千次阅读 2012-09-10 11:19:12
    最近全班学生大多数都寂寞了,想谈恋爱了于是大家都在物色目标。其中有不少男女生互相之间都有好感。但一个男生可能对多个女生有好感,一个女生也可能对多个男生有好感(都是花心大萝卜) ——————————...

      今天突然想到一个关于二分图的灰常xx的比喻,所以赶紧写下来。

      假设全班的男生集合为R1,女生集合为R2,男生分别记为m1,m2……女生分别记为w1,w2……。最近全班学生大多数都寂寞了,想谈恋爱了谄笑于是大家都在物色目标。其中有不少男女生互相之间都有好感。但一个男生可能对多个女生有好感,一个女生也可能对多个男生有好感(都是花心大萝卜尴尬)

    —————————————————————背景交代完——————————————————————

    1.现在知道互相有好感的男女生都有哪些,求最多能在班上撮合几对?

       这是一个典型的二分图最大匹配的问题。

    2.如果给互相有好感的男女生的好感评一个分,问:撮合之后的分数之和最多是多少?

       这貌似是一个二分图的最优匹配的问题。

    ————————————————下面说一下我理解中的匈牙利算法—————————————————

    想撮合最多对数的情侣,首先先把目前单身的尽量撮合成一对(预处理)

    然后从某一个人开始,挨个找他(她)喜欢的人,然后从他(她)喜欢的人出发,继续挨个找这个人喜欢的人。我们把这个循环简单的写为M1'—W1‘—M2’—…………。当找到某一个人,发现这个人还是单身,就把之前所有有男女朋友的全部拆散(尴尬的确很邪恶尴尬)然后再撮合他们和这次寻找的关系链的后一个人在一起。如此若干次后,发现没有拆散恋人再重组能使得单身的人数减少的情况,就是二分图的最大匹配了。


    最大匹配与二分图建图概述

    一:关于二分图最大匹配的两个定理:


    1:最大匹配数 + 最大独立集 = n + m(n,m为二部图两部分的个数)
    2:二分图的最小覆盖数 = 最大匹配数

    3:最小路径覆盖 = 最大独立集


    最大独立集是指求一个二分图中最大的一个点集,该点集内的点互不相连。


    最小顶点覆盖是指 在二分图中,用最少的点,让所有的边至少和一个点有关联。


    最小路径覆盖是指一个不含圈的有向图G中,G的一个路径覆盖是一个其结点不相交的路径集合P,图中的每一个结点仅包含于P中的某一条路径。路径可以从任意结点开始和结束,且长度也为任意值,包括0


    关于二分图最大匹配算法:http://blog.csdn.net/no_retreats/article/details/7854091


    常见的建图模型:(以下是参照其他资源小结的)

    模型一:行列匹配法

        

    1 0 1
    0 1 0
    1 0 0
          如上图所述是一个3*3的矩阵,其中1表示有敌人,0表示没有敌人。我们现在有多支箭,而且每支箭能够杀死一行或者一列的敌人,问题是我们要杀死所有的敌人至少需要多少支箭?

          初初看来和二分图是没有什么联系,不过我们可以试试换个角度去思考问题,我们想要杀死敌人是不是只要有箭经过他就行了是吧,也就是说所有的敌人被箭覆盖过就行了。嗯,没错,就是覆盖,最小顶点覆盖。既然我们要杀的是敌人,那么我们的点就应该是敌人的位置,只要有箭经过敌人的位置,那敌人就被我们杀死了有木有。所以我们要依据点来建图,将点的横坐标看成是二分图的X部分,纵坐标看成是二分图的Y部分。由上图可知敌人的位置在((1,1),(1,3),(2,2),(3,1)),因此我们就用坐标的横纵坐标来见二分图了,其中用边相连的边即为敌人所在的点了。

       ,一个二分图的最小顶点覆盖就是要找到最少的边把所有的顶点覆盖,正好符合这个题的要求,上面还给出了一个性质,即二分图的最小顶点覆盖是等于二分图的最大匹配。所以我们只需要对上面的那个二分图就最大匹配就行,这样把原本的问题转变的很简单了


    模型二:黑白染色法

    1 0 1
    1 1 1
    0 0 1
    如上图还是一个3*3的矩阵,现在的问题就是让你把图中的1变为0,而且一次最多只能修改相邻的两个,问至少需要多少次的修改才能把所有的1修改为0?似乎用贪心,DP都派不上用场,当然在这里提出是要用二分图最大匹配来求解了,这里的关键是如何建图?既然是每次只能拿相邻的两个,是两个,正好我们匹配的时候也是找两个进行匹配,这就是这个问题和最大二分图匹配问题相联系的地方。但是每个点能和他四周的四个点匹配,那么我们怎么把所有的点分成来那个部分呢? 一个解决办法就是要把第i个点放到第一部分,第i个点周围的四个点放到第二部分,再把这四个点周围的16点放到第1部分
    有了这样的思想,我们只需对原图做这样的改动:黑白染色使四周和中间的颜色不同。

                                                               

     
    图中黑白的意思是就是把点分类,图里的1,2,3,4,5,6表示的就是上面那个0,1图的1的个数
    然后建图,把相邻的点相连,比如说1和2 2和3 。。。。。。。

                                                               

     
     
     然后要把所有一改为零,也就是要对每个点都操作,每个点都要有,那不就是最小顶点覆盖吗?嗯,是的,还是最小顶点覆盖。
    展开全文
  • 内容择要:本文结合当前素质教育的形势和中学物理教学的特点,指出了实施创新能力教育与教育观念转变的关系,详细地论述了物理建模的...提出了在中学物理教学中应该充分利用物理建模思想培养学生的思维能力的新思想。
  • 根据高职教育多年来的经验,笔者认为高职阶段开设数学课的目标应当定位到数学建模思想培养,而不只是单纯的学会工式,用工式算题。  毕竟我们培养学生不是数学家,数学对于他们来说是一种解决问题的工具。如果...

    数学是学生从小学就开始学习的一门重要课程,在高职阶段仍然是理工科专业的一门重要基础课程。但是,当前,很多数学教学往往思想不够明确,不能准确的定位数学教学的目标。根据高职教育多年来的经验,笔者认为高职阶段开设数学课的目标应当定位到数学建模思想的培养,而不只是单纯的学会工式,用工式算题。

      毕竟我们培养的学生不是数学家,数学对于他们来说是一种解决问题的工具。如果学生通过高职阶段的数学学习能够在今后的工作中,以数学建模思想解决实际问题,那么才是数学真的在他的工作与生活中起到作用了,也是数学教学的成功所在。

      1 培养高职学生数学建模思想的作用分析

      数学是在实际应用的需求中产生的,要解决实际问题就必需建立数学模型 , 即数学建模。随着科学的不断发展,数学在各行各业当中都显得十分重要。但是,很多人在需要数学的时候发现,数学对于具体的工作任务来讲,决不仅仅是单纯的运算,它需要将现实中的问题用可以理解的数学模型,如图、表、数学符号等表示出来。通过数学建模可以将现实问题与数学原理相结合,对于解决实际问题具有十分重要的现实意义。

      对于高职院校来,其理工科的学生往往需要的是一线解决问题的具体办法与能力,因此,数学教学的重点更应当落在数学建模思想的培养,即帮助学生培养起建立解决问题的思路与方法。很多在一线技术方面做出成绩的高职毕业生,多是在数学建模上有一定的积淀,才使得他在工作中可以运用数学建模来处理实际问题。

      对于高职理工科学生在数学建模培养方面的作用主要表现在两方面 :

      1.1 培养学生的解决问题的能力

      数学课的学习往往让学生们觉得枯燥,那是因为教师在数学教学的过程中,只是单一的在研究公式与定理,而忽略了数学本身解决实践问题的本质。如果教师在数学教学中引入建模思想,每一节课的开篇都提出一个实际问题,让学生思想。

      在教学中紧紧围绕着解决这一实际问题为目标,让学生用数学建模的思想来面对问题,体会到建模的重要作用、数学的重要作用,最终形成一种解决问题的方法与态度,形成一种创新意识,对于学生今后的工作与学习都有着十分重要作用。

      1.2 培养学生的创造力与想象力

      数学建模的学习,通常还会利用计算机等辅助技术来解决问题,并且不断拓展学生的知识领域,使学生接触更多生产实践需求,更多知识与信息的引入,更好的激发了学生学习的兴趣,在解决问题的过程当中,学生的创造潜力得到了很好的培养,并且学生不断发挥着想象力,这对于学生的成长是有着不同凡想的价值。

      2 培养高职学生数学建模思想的途径研究

      2.1 丰富建模案例

      很多教师想在教学中体现建模思想,却常常表示难于找到合适的案例。其实数学本就源于生活。教师想要寻找建模的案例,就要多解决生活、观察生活,同时更重要的是了解数学的科学发展过程,首先自己形成建模思想,这样才能发现生活中的建模案例。教师在教学中如果积累了足够多的建模案例,做到每节课一个与教学内容对应的教学案例,或者每章一个教学案例,那么对于培养学生建模思想都是十分重要的。

      2.2 注重兴趣培养

      数学建模活动是一种使学生在探究性活动中受到数学教育的学习方式,是运用已有的数学知识解决问题的教与学的双边活动,是学生围绕某个数学问题自主探究、学习的过程。高职数学课程标准要求把数学探究、数学建模的思想以不同的形式渗透在各模块和专题内容之中,突出强调建立科学探究的学习方式,让学生通过探究活动来学习数学知识和方法,增进对数学的理解,体验探究的乐趣。提高学生学习数学的兴趣。

      2.3 充分重视学生的主体性

      教师在课堂上应该让学生充分进行自主体验,在数学建模的实践中运用这些数学知识,感受和体验数学的应用价值。

      2.4 通过数学建模大赛,扩大宣传,提高数学建模在师生中的重视程度

      全国大学生数学建模竞赛创办于1992 年,每年一届,目前已成为全国高校规模最大的基础性学科竞赛,也是世界上规模最大的数学建模竞赛。部分高职院校在近些年也加入了全国数学建模大赛的队伍当中,有的也在比赛中取得了一定的成绩。为了更好的扩大数学建模在师生中的影响作用。在筹备比赛的过程当中,还可以在学校进行比赛前的宣传、动员等活动,例如张贴海报等,让学生对于数学建模有概念上的接受,然后可以组织校园内的建模大赛,海选人才,通过这样的活动,促进全员对于数学建模的学习热情。以赛促学是一种很好的教学手段,通常学生在准备竞赛的过程当中,会拿出平时十倍百倍的精神来学习这一内容,可以很好的促进其提高。

      3 结论

      当前,随着数学建模在高职高专中的逐步重视,很多院校都在教学中不断引入,作为数学教师,更应当不断研究这方面的内容,以便更好的培养学生的数学建模思想。

      【参考文献】

      [1] 白景山 ; 谈数学建模对学生学习兴趣和能力的培养 [J]; 河北工程技术职业学院学报 ;2004 年 01 期
       [2] 赵延忠 ; 数学建模与工科数学体系建设 [J]; 青海大学学报 ( 自然科学版 );2002 年 05 期
       [3]李明振;庞坤;;关于高师院校“数学建模”教材建设的思考与探索[J]; 数学教育学报 ;2006 年 01 期
       [4] 杨蓓 ;; 数学建模对高职院校数学教育改革的促进作用 [J]; 中国科技信息 ;2007 年 12 期
       [5] 王 有 增 ; 王 启 田 ;; 从 数 学 建模切入推动高职数学教学改革[A];Proceedings of 2010 National Vo-cational Education of Communicationsand Information Technology Conference(2010 NVCIC)[C];2010 年
       [6] 李明振 ; 宋乃庆 ;; 认知弹性理论指导下的高师数学建模教学 [A];全国高师会数学教育研究会 2006年学术年会论文集 [C];2006 年

    展开全文
  • 无穷小微积分的模型思想

    千次阅读 2017-09-23 17:11:24
    无穷小微积分的模型思想进入现代历史时期,无穷小微积分是在超实数*R上展开的,传统实数体系R上的微积分将逐渐退居幕后。这是为什么呢?在传统实数R上的微积分学表现为一组陈述句(Statements)的集合。一般而言,...

    无穷小微积分的模型论思想

    进入现代历史时期,无穷小微积分是在超实数*R上展开的,传统实数体系R上的微积分将逐渐退居幕后。这是为什么呢?

    在传统实数R上的微积分学表现为一组陈述句(Statements)的集合。一般而言,将两个含有函数符号的表达式用等式或不等式连结起来就构成了一个陈述句。我们的目标是把R上的陈述句转移(Tranfer)到超实数*R上,使其保留原来的意义(真或假,以及没有含义),然后,在*R系统里面借助无穷小方法给予简易、直观的数学证明,从而等价于(转个”弯儿“)间接证明了R上的原始命题。

    这个“转弯”展开现代微积分体系的思路是很明白的,可以经过实际对比看出优劣。1973年,美国芝加哥地区进行无穷小微积分教学实验完全证明了这一点。我国是一个大国,每年有上千万的学生需要学习微积分,教学方法的优劣是很关重要的事情。

    J. Keisler在《ElementaryCalculus》教材中,引入以下“转移原则”:

    TRANSFERPRINCIPLE

    Every realstatement that holds for one or more particular real functions holds for thehyperreal natural extensions of these functions.

    这个“转移原则”说的就是本文上面说的意思。那么,我们要问:是不是有可能在超实数系里面首先利用无穷小方法证明了一条定理,而在传统实数系里面却没有证明这条定理?毫无疑问,这当然是可能的。为什么不能呢?这有什么值得怀疑的?

    无穷小方法与(ε,δ)极限论是怎样等价的?J. Keisler 在教学辅导书中说得明明白白,文员薛Lily将其转录之后,我们会在第一时间告诉大家。围绕无穷小方法的那一团疑云就会随风飘去。一个文员所做的事情,就是白纸黑字,铁板钉钉,你不服气不行。

    莱布尼兹(1646-1716)在29岁时发明了“无穷小”理想数,至今受到人们的喜爱。按照现代模型论的解释,无穷小就是比实数更加接近于零的超实数,需要用思维逻辑“显微镜”才能观察到它们的存在。在数字零与非零实数之间,还有空隙?当然有,而且在这个间隙中存在无限多的超实数。说白了,实数系的漏洞很多很多。1948年,28岁的Edwin Hewitt发现这些漏洞,让人们大吃一惊。有人喜欢说无穷小的坏话,但是,没有人说它在数学理论上是不正确的。我要是有个女儿,一定让她学习无穷小方法,聪明伶俐,做事非常细心。

    袁萌   923

    展开全文
  • 模型选择的一些基本思想和方法

    千次阅读 2020-02-14 19:41:05
    有监督学习是日常使用最多的建模范式,它有许多更具体的名字,比如预测模型、回归模型、分类模型或者分类器。这些名字或来源统计,或来源于机器学习。关于统计学习与机器学习的区别已经有不少讨论,不少人认为机器...

    0. 引言

    有监督学习是日常使用最多的建模范式,它有许多更具体的名字,比如预测模型、回归模型、分类模型或者分类器。这些名字或来源统计,或来源于机器学习。关于统计学习与机器学习的区别已经有不少讨论,不少人认为机器学习侧重于目标预测,而统计学习侧重于机制理解和建模。个人更加直观的理解是,统计学习侧重于从概率分布来描述数据生成机制,除了预测之外,还关心结果(参数假设、误差分布假设)的检验,而机器学习侧重于从函数拟合角度来描述数据生成机制,基本目的就是为了拟合和预测,缺乏严谨的参数、误差的检验机制,比如下式:

    1. 统计学习目标是获取的条件分布,通过对数据概率生成机制的理解与建模进而获取良好的预测效果,这个过程会涉及的分布假设,因此最后会衍生出对参数假设和误差分布的假设检验,以验证整个概率分布的假设的正确性,比如经典的线性模型、非参数回归等模型,预测能力并不是其主要目的;
    2. 而机器学习基本不会从概率分布的角度着手,虽然可能也会涉及的分布假设,但目的就是学习到一个能够较好描述数据生成机制的函数,对误差的假设基本忽略,也不会涉及参数和误差的检验,模型好坏基本由预测效果来判断,同时也会提供一些比较一般的误差上界,所以机器学习中不会出现参数估计渐进性、一致性等结果的讨论,而多半最终结果的评判。比如SVM、神经网络、KNN等模型。

    不过即使有上述区别,关于高维统计推断(Lasso类带正则项的线性模型)的理论也逐渐完善,但相对于传统的生物制药、生物实验、社会调查、经济分析等领域,当前图像、文本、推荐系统等应用领域中,人们更关心模型的预测能力,而不是解释能力甚至是模型的可靠性,主要原因即这些领域模型预测能力相比于模型的假设检验要重要得多,因此如何根据模型预测能力来选择最优模型变得越来越重要。本文下面就逐步介绍模型选择的思路和方法,主要参考ELS这本书

    1. 偏移、方差、复杂度和模型选择

    模型的预测能力通常也被称作模型的泛化能力,表示模型在新的、独立的测试数据上的预测能力。在很多关于模型泛化能力的介绍中,我们总会看到这样一幅图:模型在训练集上的训练误差与在测试集上的测试误差的变化趋势对比。

     

    var_bias_small图上横轴表示模型的复杂度大小(比如线性模型中特征维度大小),纵轴表示预测误差,衡量预测值与真实值间的平均损失大小,损失函数根据分类、回归问题做合适的选择,比如0-1损失、负似然函数、平方损失、对数损失、指数损失、交叉熵损失、Hinge损失等。平均损失大小在训练集上预测误差称作训练误差,在测试集上称作测试误差。图中每一条线都表示同一个训练集(浅蓝色)和测试集(浅红色)上的预测误差表现,从图上可以看到两个现象

    • 训练误差(浅蓝色)和测试误差(浅红色)都有波动,并不是一个稳定的值,并且随着模型复杂度的增加,训练误差(浅蓝色)波动越来越小,而测试误差(浅红色)波动则越来越大;
    •  随着模型复杂度增加,训练误差(浅蓝色)和平均训练误差(粗蓝线)越来越小,但测试误差(浅红色)和平均测试误差(粗红线)先降低后减小,在相对中间的位置有一个最小值。

    看到这上面的现象,我们的脑中可能会冒出下面几个问题:

    1. 为什么训练误差和测试误差会有波动?
    2. 训练误差和测试误差的变化趋势说明了什么问题?
    3. 造成这种变化趋势的原因是什么?
    4. 这种趋势对模型的选择和评价有什么指导意义?

    这四个问题由浅入深,最终目的就是想获取泛化能力最好和最稳定的预测模型。在回答这四个问题前,我们首先需要做一个假设:模型能够较好的预测,说明预测集与训练集有较好的相似性,更严格来说,很可能来源于同一分布,下文做分析时均假设来源于统一总体分布。如果测试集相对于训练集发生了巨大的变化,那么从训练到预测的思路将不可行。下面我们逐步来解答这四个问题。

    1.1 为什么训练误差和测试误差会有波动?

    现假设我们有个研究项目,想根据学生的平时表现和性格的个指标来预测最终该学生的期末综合成绩。为达到这个目的,我们在一个学校中我们随机抽了一批学生,选用某个模型训练,估计其模型参数,然后找一批新的学生预测来评价模型好坏,发现预测误差的相对误差非常小。但是通常人们会问,这个模型预测能力真的那么好么?我咋不相信根据学生平时表现和性格就可以得到这么好的预测效果呢?是不是你们特意挑选的一批学生呐?为了让他们相信这个模型还不赖,我们从这个学校重新抽了好几批学生,分别根据这些学生的指标去训练模型和估计模型参数。随后我们发现,换了几批学生样本,估计的模型参数确实有些差别,而且预测效果也是时好时坏,整体而言,平均的预测误差也还差强人意,能够控制预测误差的相对误差在20%以内,此时再把结果拿给其他人看,估计很多人对你的模型可能就不会有那么大疑问了。

    对应到上文的图,其实上图的波动产生的原因也和该例子操作是一样的,有多条线就意味着重复抽了多组训练集来分别训练,因此训练误差和测试误差的波动是由训练样本的变化带来的。在理想的实验条件下,为了能公正地衡量模型的预测能力,通常需要多换几组训练集和测试集来综合评价模型的预测能力,这样的结果才可能让人更信服模型的预测能力,而不是偶然结果。

    但是实际情况中,我们却可能仅有一个训练集和一个测试集。用数学化语言描述,新的测试集中,目标变量和预测变量均从两者的联合分布中抽取,独立于训练集,此时我们获取的测试误差(泛化误差)为某个训练集上测试集上损失的条件期望

    这里训练集是固定的,即仅有一个训练集。而从统计分析(重复试验)上来说,我们可能更关注测试误差的期望,即去掉训练集随机性所带来的影响:

    这个目标即上图预测误差波动想要表达的含义,想要通过多个训练集训练来获取平均的预测误差,抹平训练集变动带来的影响,这是评价模型预测能力最理想方法,可以防止某个训练集上训练所得模型表现过好而夸大模型的预测能力。但是实际情况中,我们手边通常可能只有一个训练集,实际的需求是在此训练集上模型做到最好,所以又是我们最关心的目标,即希望在当前训练集下获取最佳的预测能力,也就是说我们想获取上图的一条线的趋势中最小的测试误差的点,如下
    var_bias_sample

    换句话说,很多时候人们给你一个训练集就希望你能够给他一个相对最稳定的预测模型,这个目标相对获取平均预测误差来说更难,后续模型选择方法比如CV法、bootstrap法、Cp法等其实都是估计测试误差的期望,即第一幅图中的红色均线。

    1.2 训练误差和测试误差的变化趋势说明了什么问题?

    图上反映的两个现象一句话表示即:随着模型复杂度增加,训练误差波动降低,平均训练误差降低趋向于0,而测试误差波动上升,平均测试误差先降低后升高。这个现象说明训练误差不能代替测试误差来作为模型选择和评价的手段。随着模型复杂度变化,训练误差与测试误差并不是一个良好的正相关关系,而是呈现较为复杂的非线性关系。用数学式子表示即

    用更通俗的话说,复杂的模型可能在训练集上拟合的很好,但是面对新的测试集,预测误差不降反升,发生了所谓的“过拟合”现象。如果一个模型在不同的测试集上测试结果不仅波动性大,而且预测误差也比较大,就要警惕发生了过拟合现象,此时不妨将模型的复杂度降低些(关于模型的复杂度含义下文会做更细致的说明),即使用变量更少的简单模型,比如线性模型。

    过拟合的原因有很多,其中一个很可能的原因是,随着模型复杂度升高,对于训练数据刻画的很细,但是训练数据中可能某些特征仅出现过一次或者很少,信息不足,而测试集中该特征却出现了很多其他的值,虽然模型在训练集上刻画的足够细致,但是由于测试集的变动,模型反而往测试机上的迁移性能下降,训练误差变化并不正比于测试误差。

    1.3 造成预测误差变化趋势的原因是什么?

    那究竟是什么原因导致了随着模型复杂度增加,训练误差与测试误差不呈现良好的正比关系呢?为何同样都是预测误差,训练误差很小的模型反而预测能力很差呢?下面我们以线性模型为例来阐释原因,假设

    如果用线性函数去近似,其中表示特征个数,损失函数取平方损失,最小化,则在训练集下得到参数估计为,同时记是最佳线性近似的估计参数

    在某个新样本点处预测误差为

    如果此时取所有训练集中的,则其平均预测误差(该误差也被称作样本内(in-sample)误差,因为都是来自与训练样本内。不过都是新的观测,且真实的仍未知,因此该预测误差不是训练误差,后续会AIC等准则中会详细讲解):

    对于普通线性模型易知其“估计偏移(Estimation Bias)”为0(最小二乘估计也是线性估计类中的最佳估计),易知随着特征个数增加,方差(注:第一个等式根据线性回归很容易推导方差(Variance)为)逐步增大,而对于真实却近似越好,模型偏误(Model Bias)越小,但预测误差是这两者的综合,则整体变化趋势如下图

    bias_var

    这与上图测试集误差变化一致。另外,之所以特地提到还有“估计偏移”,因为对于线性模型类,还有其他诸如岭回归、Lasso等受限的回归类别,他们都属于线性模型类,相比纯线性模型,他们由于对回归系数做了不同程度的压缩,因此相比于最佳线性估计会有些差距,产生“估计偏移”,进而整体上导致“模型偏移”增加,但是他们限制了参数个数和压缩了回归系数,模型可能更加简单,因此直观上这类模型估计平均而言会稳定些(模型方差小),用图形来表示他们的关系即如下图

    scheme_bias_var

    箭头组合长短即表示了平均预测误差,可以看到在受限模型空间中由于较小的模型估计方差,可能使得整体的平均预测误差更小。

    1.4 对模型选择和评价有什么指导意义?

    从“偏移-方差”分解可以看到,在有限的模型空间中,对某个模型类控制好模型的复杂度非常重要,否则不容易获取较好(包含稳定与预测误差小两方面)的预测模型,这便是模型选择阶段的工作。可能不少人觉得此处获取较好模型是指模型评价,但是模型评价与模型选择是两个不同的概念,代表两个不同的阶段:

    • 模型选择:根据一组不同复杂度的模型表现,即从某个模型空间中挑选最好的模型;
    •  模型评价:选择一个(最好)模型后,在新的数据上来评价其预测误差等评价指标。

    从定义看,两者的目标不同,模型评价是模型选择的后一步。换句话说,模型选择是在某个模型类中选择最好的模型,而模型评价对这个最好的模型进行评价。模型评价可以比较多个模型类中的最佳模型,然后从中挑选出最佳模型,亦或者进行模型融合再进行评价。在模型选择阶段,常见的指标有AIC准则、BIC准则、CV值、结构风险上界等比较普适的准则,而在模型评价阶段,我们可以根据分类、回归、排序等不同问题关心的问题选择不同的评价指标,多与模型选择时的损失不同:(1)分类:ROC、AUC、TPR、FPR、F1 score;(2)排序:DCG、NDCG;(3)回归:RMSE、MAE、Deviance。根据具体业务,实际的评价指标有很多种,最好的方式当然是模型选择时即设计其损失函数即为评价指标,但是通常而言这些指标包含了某些非线性变化,优化起来难度颇大,因此实际模型选择仍是选用经典的那些损失函数,而模型评价则会与其略有不同。

    随着机器学习普及,大家都有了“训练-验证-评价”的思维,这其实就是完整重现模型选择、模型评价的过程。如下图我们将数据集分成三个不相交的集合来做模型选择和模型评价:

    model_proc

    • 训练集:获得模型及其训练误差,用来训练不同模型;
    • 验证集:与训练集相对独立,获取训练模型在该集上的预测误差,用来做模型选择;
    • 测试集:与训练集和验证集独立,获得真实的测试误差和其他模型评价指标,用来评价已选择出的模型。

    使用训练集、验证集目的就是做模型选择,测试集自然是做模型评价。这三个集合的划分,并没有严格的准则,根据样本大小不同而做不同的选择,但是一个原则是测试集需要保持未知和与训练集、验证集的独立性。在数据挖掘比赛的时候,主办方通常会给我们一个训练集,然后自己持有一个未知的测试集。实际上这个测试集并不是真正的“测试集”,更应该称作“验证集”。因为随着参赛选手不断提交结果,他们在这个数据集也做了很多探索和尝试,能够逐渐发现这个所谓的“测试集”上的规律,模型选择和模型评价都依赖该数据集进行调整,因此从模型评价的独立性角度来说,这并不能当做最终的测试集,往往会低估预测误差,最好的做法是重新更换几组未知的数据集来当做新的“测试集”做模型评价,这也是秉承统计随机的思想——仅仅在某个“测试集”好是不够的(最近ImageNet事件也确实存在这样的问题)。

    所以结合文章开始的方差-偏移图,对模型选择和模型评价的指导可以凝缩为一句话:根据已知的训练集和验证集在特定模型空间中进行模型选择,获取合适复杂度的模型,然后在多种模型空间做模型选择获取多种模型,最后的最优模型需要通过多个独立未知的测试集来做模型评价决定,否则很容易导致模型过拟合。(这实际上就是一个完整而规范的机器学习过程。)

    2. 模型选择的方法

    模型选择核心思想就是从某个模型类中选择最佳模型。注意,它与一般的“调参”意义不同,调参很多时候可能是针对优化算法中的某些参数进行调整,比如步长(学习速率)、mini-batch大小、迭代次数等,也会涉及到模型中调整参数(也称正则参数)的选择,但是模型选择不涉及算法中的参数,仅涉及模型目标函数中的调整参数。

    从上面叙述可得知模型选择阶段,最标准的方法自然在训练集上训练模型,然后在验证集上获取预测误差,该误差也被称作“样本外(extra-sample)误差”,可真实反映出模型的样本外的预测能力,最后选择最小预测误差所对应的模型作为最佳模型即可。但通常而言,独立的验证集我们也没有,手头仅有的信息就是训练集,那么要想估计测试误差或者其期望曲线,就只能在训练集上做文章,一般而言可能仅有两种思路:

    1. 从训练集划分点数据出来形成验证集来近似测试误差;
    2. 对训练误差进行某种转化来近似测试误差。

    第一种思路是非常自然的思路,只要对训练集进行合适的划分,我们就有可能近似出预测误差。但是对原始训练集划分为新的训练集和验证集,不同的划分比例可能使得新训练集与原训练集相差较大,进而使得差异很大,因此用这种划分的方式来估计条件期望形式的预测误差比较困难。那么此时我们可以不估计转为估计其期望,即平均预测误差,通过重复抽样的方式来多次估计预测误差,然后取其平均即可,这种方式我们可以称其为“重复抽样法”:通过训练集多次切分、抽样来模拟训练集、验证集,计算多个“样本外误差”,然后求其平均预测误差,这是一种密集计算型方法,比如交叉验证(Cross Validation)、自助法(bootstrap)等。

    第二种思路相比第一种思路更加考虑计算效率,因为重复抽样需要计算多次估计,因此做一次模型选择可能需要花费不少时间,如果单单从训练集的训练误差就可以近似出测试误差,那么模型选择效率便会大大提高。这种方式以统计学中的AIC、BIC等为代表,深刻剖析训练误差与之前提到的“样本内(in-sample)误差”、预测误差间的关系,给出了预测误差估计的解析式,因此第二种思路我们可以称之为“解析法”

    这两种思路在统计学习和机器学习中都有大量应用,相比较而言,统计学习更喜欢第二种解析法,这样容易计算,并且会较好的理论性质(似然角度);而机器学习则更喜欢第二种重复抽样法和从VC维衍生出来的结构风险最小化法,不需要计算基于分布的似然,普适性更好。

    一般而言模型选择准则有如下几种:

    • 重复抽样与预测稳定性角度:CV、GCV、Boostrap
    • 似然与模型复杂度角度:AIC、AICc、BIC、EBIC
    • VC维与风险上界控制角度:SRM

    首先我们从更加普适的重复抽样法入手来介绍这些模型选择的方法和思路。

     2.1 重复抽样思路

    CV法

    交叉验证法(CV法)是最自然的重复抽样法,过程如下图所示

    cv

    将一个训练集随机分成K份(图中所示为5份),然后选择第K份作为验证集(图中为第3份),然后剩余的K-1份作为训练集训练模型,这样便可以得到K个“预测误差”,求其平均值即为所谓的“CV值”,所以常说的CV值实际上是预测误差期望的一个估计值。数学语言叙述如下:记是一个划分函数,表示随机地将第个观测分配中某个指标;记表示去除第部分数据训练所得的模型,则预测误差的交叉验证估计(CV值)为

    如果该模型有调整参数来调整模型的复杂度,记该模型集为,则CV值为

    此时通过调整参数可以获得不同模型复杂度下的CV值,然后选择最小的CV时所对应的模型作为最后的预测模型即可,这便是利用CV值来做模型选择的思路。

    从CV估计定义可以看到,划分的份数粒度大小不同时,CV值对平均预测误差的估计也有好坏之分,这里将涉及“偏误”、“方差”以及“计算效率”的权衡,主要是“偏误”与“计算效率”的权衡。以两个极端例子为例:

    • 时即“留一法(Leave-One-Out, LOO)”,表示每次切分的验证集仅为一个观测,其余的都是训练集,此时新训练集与原始训练集非常接近,则所得的CV值是平均预测误差的近似无偏估计,但是由于这N个训练集相关性也很高,训练的模型则也很相似,而且每次仅评价了一个观测,使得每个验证集上的预测误差相差较大,CV估计的方差较大,另外,N折交叉验证要估计N个模型,计算消耗巨大导致模型选择很慢;
    • 如果取得较小,比如2,相当于一半数据用来训练一半用来验证,很显然此时新训练集与原始训练集差异较大,则CV值相对于真实平均预测误差会有较大偏误,导致会高估了平均预测误差,不过两个新训练集完全独立,训练出来的两个模型相关性很低,而且验证集数据比较充足,模型评价相对充分,在数据分布没有太大变化的大前提下,两个验证集上的预测误差会比较接近,使得CV估计的方差比较小,而此时计算消耗很少,模型选择效率高。

    实际中,训练集切分带来的估计偏误与计算量才是我们真正关心的量。权衡偏误与效率的得失,由于CV对于预测误差的估计与训练样本大小有关,如果本身样本量就不大,交叉验证切分将导致训练样本更少,这会引起更大的估计偏差,所以实际折数经验是:

    • 样本量大时,5折交叉验证对预测误差估计便足够,并且计算快速;
    • 样本量小时,10折甚至LOO都可以,在损失计算效率的情况下优先考虑预测误差估计的准确性。

    另外,由于5折或者10折CV估计有偏误,实际模型选择中还使用“one standard error”规则,即不选择CV值最小的模型,而是选择高于最小CV值一个标准差之内的最简模型,比如glmnet通常推荐lambda.1se,即这个准则。原因仍是5或10折CV很可能会低估平均测试误差,所以要保守选择平均预测误差略高于最小CV值得简单模型。

    对于交叉验证法的实际操作,我们多半可能还会涉及变量筛选等预处理。对于这类预处理步骤,如果后续使用CV来做模型选择便需要考虑使用顺序的问题,一个使用原则是:

    • 如果预处理涉及联合使用自变量与的关系,比如利用与的相关性等有监督方式来做变量选择,则需要在预处理前就需要对数据进行切分,数据预处理成了模型选择的一部分,而不能先变量筛选,然后在新数据进行交叉验证来做模型选择;
    • 如果预处理不涉及自变量与的关系,仅仅利用自身的信息,比如的方差或者熵来做变量选择,这种无监督方式的预处理无需对数据进行切分来交叉验证,可以直接先无监督预处理完再利用交叉验证方法来做模型选择。

    目前变量筛选的方法有很多,传统的有监督包含相关性筛选、熵增筛选等都是有监督方法,由于这种筛选已经利用了全体和间的关系信息,如果利用这种筛选后的数据来做交叉验证将会导致模型低估预测误差,高估了模型的泛化效果,因此实际使用时尤其需要注意这种筛选方法与交叉验证的联合使用,防止犯错。

    另外,在分类问题中,特别是对于类别不平衡问题,由于CV法可能会导致每折中的类分布不一致,使得训练不稳定,因此实际中分层CV(stratified CV)也会使用。其相比较CV的不同之处就是不使用经典CV的均匀随机抽样方法来切分样本,而是根据总体类别比例,对每折都使用依赖于类别比例的分层抽样,保证每折的类别分布与原始数据差不多。学习过分层抽样的同学可能知道,分层抽样可以降低估计量方差,因此实际使用分层CV相比经典CV选择模型可能更稳定些。

    GCV

    由于计算CV是一个密集计算的模型选择法,即使可以利用并行计算来提高模型选择的效率,但是如果能够找到无需重复计算的替代方法,那么实际应用中,人们可能更倾向于使用这种模型选择方法。对于线性模型,如果使用平方损失,广义交叉验证(GCV)是LOO法解析形式的近似估计,可以避免计算N个模型来快速做模型选择。对于线性模型,对于目标变量的估计可以写成如下投影形式


    其中是投影阵,仅与有关,与无关,则线性模型的LOO值为

    其中是的对角元素,则GCV近似为


    此时不需要重复计算,只需要计算线性模型的投影阵的迹(后面也称作**自由度**)即可,极大降低了交叉验证的计算量,并且使得平均预测误差偏误更小,关于线性模型的GCV详细推导可参考此处。不过GCV仅适用于线性模型,包含带正则项的普通线性模型、非参线性模型,比如LASSO、岭回归、样条回归、多项式回归等模型,其余比如树模型、神经网络模型都不适合。

    关于CV的衍生方法比较新的时ES-CV,由Yu Bin在2013年提出,不过实际上这种方法对于核心是估计稳定性的定义,CV法只是来改进估计稳定性的一种方式而已,感兴趣的同学可以参考Yu老师的论文

     Bootstrap法

    对于bootstrap,不管是统计还是机器学习的同学,可能对这个名词以及实施方式都比较熟悉。bootstrap法由Efron于1979年提出,随后在统计中得到了大量的应用,主要用于解决复杂统计量的置信区间等估计问题;而在机器学习中,由Breiman在94年提出bagging方法(全称为bootstrap aggregating)实际上就是bootstrap的直接应用,它是一种模型组合方法,主要用于分类问题中以获取比较稳定的结果。bootstrap的思路和操作都非常简单,如下图

    bootstrap

    假设有样本,则不断重复随机抽同样大小的B个样本集,这些样本被称作bootstrap样本,随后用着B个样本分别训练模型,得到B个目标估计量。然后可以用这些统计量求某些指标,比如统计量的均值、方差、偏移等。对于分类问题,用这些bootstrap样本训练多个分类器,比如决策树或神经网络,然后将这B个分类模型对新的样本做预测,把B个分类结果做一个投票获取最终的结果即可,这边是所谓的bagging。

    不过上述都是对于估计量或者模型而言,那么如何利用bootstrap来做模型选择呢?如果我们用着B个模型对每个观测都进行评价,然后求其平均误差

    看起来似乎可行,但仔细一思考就可以发现这并不是一个好的平均预测误差的估计,主要原因是bootstrap样本即被训练又被评价,与CV不同训练集被重复分割为独立的训练集与验证集相比,数据评价存在重合,所以肯定与训练误差可能比较接近,而与平均预测误差有较大偏差,那么用该估计来调模型复杂度参数显然更不是个好选择。那如何利用bootstrap法来更好的近似平均预测误差呢?我们可以借助于CV的分割思想。

    我们知道,bootstrap样本的获取其实就是重复有放回的N次抽样,那么对于观测属于该bootstrap样本,至少被抽中一次的概率即

    换句话说,每个bootstrap样本中,总有些观测没被抽到,那么根据CV法的思路,这部分观测就可以拿出来作为验证集来作为平均预测误差的估计。
    熟悉随机森林或者Bagging的同学对于OOB(out of bag)这个词肯定不陌生。OOB其实就是这种思路,不过只是对未抽中的样本再次做了投票然后再估计预测误差,对于此处我们则不做投票,直接取那些没出现过观测的bootstrap样本训练的模型分别估计的误差,然后求个平均即可

    其中即不包含观测的bootstrap样本集。你可能想万一有个观测所有bootstrap都出现了怎么办?直接去掉就好了嘛,不过你可以算算B个bootstrap样本都出现的概率有多小。实际而言,B大点便很容易保证观测很难在所有bootstrap样本集中出现了。

    下面在思考下,这种估计是对平均预测误差估计是个好估计吗?虽然不会像第一个估计量那样低估平均预测误差,但是这种估计量也很容易高估平均预测误差,主要原因是每个bootstrap样本中仅有差不多63.2%的不同观测用来建模,这样使得估计量表现得很像2折或3折交叉验证,分割太少导致可能偏差很大,特别是对于样本量不够多的训练集。如果改进,直观想法便是将训练误差与该估计量按照某种比例加权来纠正这种偏移,具体细节可以看ESL的阐述,实际中由于bootstrap计算量过大,所以用来做模型选择不多,所以此处不再详述。

    不过在大数据时代,分布式思维逐深入统计学家和计算机学家脑中,由于bootstrap具备良好的可并行性,以及良好的统计性质和估计稳定性,Jordan在2012便提出了基于bootstrap的[BLB(Bag of Little Bootstraps)](http://arxiv.org/pdf/1112.5016v2.pdf),能够给出较稳定的估计量以及估计量的区间估计,这是其他方法不具备的特点。比如能告诉你预测误差大小,同时可以告诉你预测误差的偏误以及方差,那这是不是一件更令人安心的事情呢?在现在这种环境下,与其不停做实验等待结果,不妨考虑下bootstrap这类有可靠性估计的方法的好处。BLB的算法思路很清晰,简单来说:subsampling + bootstrap + average;先无放回抽样,然后bootstrap抽样,获取参数bootstrap估计量,以及其置信区间、偏移、预测误差等估计量,最后将这些估计量平均起来即可。细节可以参考其论文,只要有多机可并行环境便可很容易实施该方法。

    bootstrap思想是一种非常重要思想,后来著名的random forest便充分利用了该思路。而且相比目前的数据并行、模型并行的分布式算法思路,我觉得可以从bootstrap抽样角度获取更加稳定的估计量,当然这些都是题外话,与本文话题不相符合,以后可以再谈谈抽样与并行算法之间的感想,实际上都会在“计算效率”与“精度”之间做些权衡。

    2.2 解析解思路

    根据上述重复抽样法可知,CV等方法直接来估计“样本外误差”,并求其期望,而解析解思路由于不像CV法通过原始训练集切分构建验证集,仅仅从训练集出发,构建训练误差与“样本内误差”间等式关系,因此需要深刻理解训练误差、“样本内误差”、模型复杂度这几个概念,才能较好的理解为何解析解思路的那几个准则是有效的。

    2.2.1 训练误差与样本内误差

    在本文第一节提到,实际应用中通常只有一个训练集,此时我们希望能在该训练样本上获得最好的预测模型,在新样本点能得到最小的泛化误差。这是训练集上预测误差的条件期望,随着样本集变动而变动。但从统计角度来说,抹掉训练集带来的变动,估计预测误差的期望更符合统计口味,这也是上述CV、bootstrap采取的方式。

    在第一部分关于和与模型复杂度走势的图形中,可以看到低估了,并且复杂度高的模型容易过拟合,导致很小,而很大,所以用来评测模型就显得过于乐观了。但是,能不能建立与间的关系呢?

    由于要引入新有难度,那么退一步看不变动而仅引入新的的预测误差


    这种误差称作“样本内误差”(in-sample误差),虽然也是一种预测误差,但是没有变动,因此对于模型泛化估计能力还是不够。不过样本内误差与样本外误差与模型复杂度的关系走势类似,对于模型选择而言,更关心误差的相对值而不是其绝对值,因此实际模型选择中,我们也常常关注“样本内误差”,它也是一种有效且更方便的思路,并且此时建立与间的关系相对更容易了。

    由于与都拥有相同的,两者唯一的区别便是是对求了期望,而则直接使用了某个值(训练样本),两者的差便是

    为更便于理解,以平方损失和线性模型为,且预测值是原始值的线性变换,则


    与预测误差类似,这其实是关于训练样本点的条件期望,这种条件期望不好估计和分析,因此消除训练样本中变异带来的影响,我们再次对所有求期望(注意这其中样本点与随机变量间概念的转化,此处将看做是样本点还是随机变量并不做严格区分,所以)

    于是我们便得到了如下非常重要的关系式


    因此从消除训练集变动的影响(期望)角度来看,我们找到了训练误差与“样本内误差”间的数量关系,这个关系式推广到0-1损失或者似然形式都成立。对于加性误差的线性模型,易知

    其中与便是线性模型的有效参数个数,也称作自由度,注意仅对于线性模型如此,控制着模型复杂度。可以看到,“样本内误差”与训练误差间的桥梁就是模型复杂度!当模型复杂度过高时,很可能“样本内误差”不降反升。

     2.2.2 Cp法与AIC

    借助上述训练误差与样本内误差的关系式,实际中我们便可以这样来对“样本内误差”做这样的估计


    训练误差与“样本内误差”都不是期望形式,看起来有些混合,不过由于实际情况无法求的期望,所以我想这也是没办法的“最佳”估计了吧,统计中常会遇到这种知难而相对随意的形式- -!

    对于平方损失下的线性模型(注意此时的损失限制),所谓的Cp准则即为


    其中用包含所有变量的回归模型的残差估计所得。乍一看过去,这完全就是给“样本内误差”估计换了个名称而已嘛:)

    AIC准则与之略有差异,训练误差选用似然函数的负数来代替,而没有噪音方差的估计,为如下形式

    仍是模型的参数个数,用来衡量模型复杂度。对于非线性模型和更复杂的模型,此处需要用其他形式来代替。

    对于误差为已知方差的高斯模型,化简似然函数便可知AIC就等价于Cp准则。对似然函数化简,可以得到对应的不同的各类损失,比如高斯模型与平方损失的对应,logistic模型与cross entropy损失的对应等,所以相比仅只适用于平方损失线性模型的Cp准则,AIC适用范围更广。实际使用中,AIC做模型选择更倾向于选择比真实模型更多参数的模型,容易低估“样本外误差”,有**过拟合的倾向**。

    另外AIC准则还与KL距离有紧密联系,可以从KL距离来推出AIC准则,感兴趣的同学可以参考这篇文档中关于AIC的介绍。而关于AIC的校正版AICc准则,实际中也有使用,关于其介绍可直接参考wiki。

    2.2.3 BIC与贝叶斯

    BIC准则形式项与AIC很像,同样还是似然负数作为损失,然后加上一个关于自由度与样本相关的项。


    对于方差已知的高斯模型,化简似然函数即可得

    忽略比例项,此时BIC与Cp和AIC基本一致,只是第二项的因子2换成了,相比AIC和Cp准则,BIC对于参数更多、复杂度更高的模型惩罚更重。虽然看起来相似,但是BIC原始想法并不是类似AIC这种思路,而是从贝叶斯角度出发得到的。

    从贝叶斯角度来看,模型选择无非就是依托于当前样本数据,从候选模型集合中选择后验概率最大的模型即可(所谓后验概率即从数据反推可能模型的概率,可以看做是所有变量中得的某个变量子集),当然每个模型都有相应自己的参数,且这些参数也有先验概率分布,根据贝叶斯公式可知给定数据时模型后验概率为

    对于模型选择而言,我们并不需要作上述复杂的积分,只需要比较模型后验概率的相对大小即可,这样的好处是忽略常数项是的计算简便了很多


    具备最大后验概率的模型将与其他所有模型的后验概率比值都大于1。进一步,如果我们事先对模型情况一无所知,模型先验服从均匀分布均相等,那么寻找最大后验概率的模型就演变成了寻找最大概率密度的模型即可,实际上取对数即求最大似然。由于被积分掉,求解很困难,所以实际中我们可以采用[Laplace近似](https://stat.duke.edu/~st118/sta250/laplace.pdf)即可,只要样本量足够大,该近似效果便很好,通过Laplace近似,似然变成了

    其中,为极大似然估计,为模型的自由参数个数。很显然,只需要将似然函数作相应替换,去掉常数项,求解模型的最大后验概率就等价于最小化BIC,因此在样本量很大使得lalapce近似效果很好时,BIC准则便渐进选择最佳模型。

    (注:一句话阐述Laplace技巧即,对于复杂概率函数的似然求解,我们可以将其在参数的极大似然估计处做二阶泰勒展开,根据似然函数在MLE估计处的一阶导为0的性质,原始的概率函数可凑成正态密度函数的形式,于是复杂概率函数就可以用均值和方差均可求的正态分布来近似。)

    有了BIC值,我们也可以直接给出每个模型的后验概率


    这对于模型选择将更加直观,只是计算所有模型的BIC值计算量太大了,实际中我们多半不会如此操作。

    虽然在样本量大且变量维数固定时,BIC准则有模型渐进一致性,但是面对实际有限的样本,BIC相比AIC的过拟合又会欠拟合,对模型复杂度控制太严格,导致选择相对过于简单的模型。另外,BIC在模型特征维度大时,估计模型更加会有偏差,因此关于BIC的改进版EBIC准则便应运而生。

    EBIC法主要的改进思路是对模型先验分布的均匀分布进行合理改进。当变量维数比较大时,含不同变量数的模型个数是不同的,比如现为1000维变量,则包含1个变量的模型有1000个,模型集合即为,而包含2个变量的模型有,模型集合记为,可以看到的大小将近是的500倍。按照BIC的均匀分布假设,所有模型被选择概率相同,这将导致被选择的概率与之模型集合大小成正比,换句话说,差不多含一半变量数的模型集合中的模型被选择概率最大,这显然与变量数可能比较小(稀疏)的假设精神相违背,特别在更加高维的情况中,BIC将会更加倾向在较大的模型空间选择,导致选择的变量数过多。

    为了改进这种所有BIC所有模型等同视之的思路,EBIC略作了改动,对于属于同一个模型集合的模型自然仍等同视之,概率为,但对于不同的模型集合整体的先验被选概率则与之大小成正比,而不是直接与其大小成正比,这种简单的幂次方式可以平滑不同大小的模型集合被选择的概率,使之差异不那么大,于是模型被选择的概率就正比于,带入原来的推导式子,便可得到如下的EBIC准则

    其中表示所属的模型集合,模型集合中变量个数相同。所以EBIC相比于BIC增加的惩罚更大,一般经验是“**如果维度增长速度相比样本量为, 若维度增长很慢,则即BIC准则下的模型选择具备一致性;而如果维度较快时,则模型选择具备一致性,只要不是随样本量指数级增长,接近1,则模型选择是一致的**”。实际建模中,考虑实际数据维度增加与样本增加的关系,选择合适的即可,关于EBIC的论文和讲义可以分别参考这里这里

    3. 总结

    其他模型选择方法还有“最小描述长度(MDL)”和“基于VC维的最小结构风险法(VC-SRM)”。这两种方法一个从最优编码的角度,一个从数据可分性角度分别来阐述模型选择,感兴趣同学可以学习这两种思想,不过由于方法各有缺陷,实际应用较少。

    总之,对于模型选择方法,实际中由于CV法、GCV法的通用性,不管在计算机还是统计领域中都大量应用。而其他的BIC等法则,由于计算快速且有良好的理论性质,统计领域的研究者可能更加喜欢这类方法。不过由于他们基于似然并不是通用框架,并且对于预测来说,根植于样本内误差做的模型选择,模型预测能力很可能不如预期,因此实际应用,我们也更加推荐CV法、GCV法来做模型选择,毕竟现在计算能力如此强大,并行处理也比较方便,而且方法也比较灵活,可以模型选择,也可以模型组合。通过学习这些方法,我们可以充分感受到不同学科的思考方式,通常而言,简单的方法会比较可靠,但是可能需要大量计算来验证、评价;而需要绕些脑子的方法,多半是为了能够进一步简化运算而推演的,这样可能会认识到更深刻的规律,但也可能会使用不少近似的方法来损失精度。对于现实计算而言,“效率-精度”总是一个绕不开的话题,以后有机会我们可以再谈谈这个问题。

    展开全文
  • 多教师多学生模型知识蒸馏

    千次阅读 2019-12-23 15:20:40
    这里的老师模型指的是最深层的分类器,学生模型指所有浅层的分类器。中间层的部分使用啦bottleneck使得特征图大小变得一致,和之前使用普通regressor的思想其实是一样的。 创新点在于模型内部蒸馏,虽然用的各种...
  • 数据库的数据模型

    2019-12-22 22:42:39
    数据模型按不同的应用层次分成三种类型:分别是概念数据模型、物理数据模型、逻辑数据模型。 概念数据模型 物理数据模型 逻辑数据模型 层次模型 设计思想: ​优点: 缺点: 网状模型 设计思想: 优点: ...
  • 业务模型;UML类图
  • 数据模型的概念2.两大类数据模型客观对象的抽象过程---两步抽象3.数据模型的组成要素(1)数据结构(2)数据操作(3)数据的完整性约束条件4.概念模型(1)用途与基本要求(2) 信息世界中的基本概念(3)两个实体型之间的联系①...
  • 最大熵模型

    千次阅读 2018-03-08 21:49:23
    1、最大熵思想与最大熵模型 我们平常说的最大熵模型,只是运用最大熵思想的多分类模型,最大熵的思想却是一种通用的思维方法。 2、最大熵思想 最大熵的思想是,当你要猜一个概率分布时,如果你对这个分布...
  • 模型压缩一-知识蒸馏

    千次阅读 2020-10-11 20:35:28
    知识蒸馏是模型压缩方法中的一个大类,是一种基于“教师-学生网络(teacher-student-network)思想”的训练方法, 其主要思想是拟合教师模型(teacher-model)的泛化性等(如输出概率、中间层特征、激活边界等),而...
  • 贝叶斯模型

    千次阅读 2019-06-06 11:06:54
    贝叶斯模型 文档可下载, 目录 贝叶斯模型 1.判别模型与生成模型 2. 基于最小风险贝叶斯决策理论 3. 高斯判别分析模型(Gaussian Discriminant Analysis) ​3.1 高斯判别分析(GDA)与LR的关系 4. 朴素...
  • ISING模型

    万次阅读 2015-09-23 15:21:27
    写在前面的话,本博客是我在学习《图像理解理论与方法》5.2.3章节不懂的情况下通过... 可以毫不夸张地说,Ising模型是统计物理中迄今为止唯一的一个同时具备:表述简单、内涵丰富、应用广泛这三种优点的模型。Ising模型
  • django-ORM模型

    千次阅读 2020-10-09 11:43:21
    模型是基于ORM设计思想 ORM (对象关系映射) 类与表的关系 对象与记录的关系 属性与字段的关系 模型类的定义 在 应用下的 models.py 文件中定义模型类 class Student(models.Model): pass 模型中常见的属性...
  • 最大熵模型简记

    千次阅读 2015-05-11 22:55:48
    最近两天简单看了下最大熵模型,特此做简单笔记,后续继续补充。最大熵模型是自然语言处理(NLP, nature language processing)被广泛运用,比如文本分类等。主要从分为三个方面,一:熵的数学定义;二:熵数学形式化...
  • ER模型、ER分析介绍

    万次阅读 2015-04-11 19:03:24
    关注公众号【程猿薇茑】 1简介 1.1ER模型的作用 以建筑房屋的例子,说明建筑师、建筑...模型来源于数据概念模型,说明ER模型是一种概念模型设计方法。 ER来源于英文单词“实体”和“联系”,说明它主要是利用...
  • 学生管理系统——MVC设计思想

    千次阅读 2017-10-14 14:19:47
    学生管理系统—MVC设计: (1)MVC设计模式:按功能对各种对象进行划分,使得程序结构更加直观和清晰。便于重用,也有利于后期 维护,使得数据层与层之间分离。 模型(model):用于封装与应用程序的业务逻辑相关...
  • GBDT模型用于评分卡模型 本文主要总结以下内容: GBDT模型基本理论介绍 GBDT模型如何调参数 GBDT模型对样本违约概率进行估计(GBDT模型用于评分卡python代码实现请看下一篇博客) GBDT模型挑选变量重要性 GBDT...
  • 课 题 课 型 新 授 知 识 要求学生会根据具体问题列出一元二次方程通过实际问题的提出让学生列 与技能 出方程 体会方程模型思想 培养学生把文字叙述的问题转换成数学语言的能力 过 程 会把一元二次方程化成一般形式...
  • 姜启源《数学模型》笔记

    万次阅读 多人点赞 2018-01-31 11:08:04
    其实数学模型也是模型的一种,是我们用来研究问题、做实验的工具之一,只不过它比较“理论”、“摸不着”而已。但通常,数学模型有严谨的特点,而且我们可以根据建模实际需要改变模型,成本也比较低;同时数学模型...
  • 1.4线性回归之模型诊断

    千次阅读 2016-02-07 16:19:51
    我们说过,线性模型的参数估计采用了最小二乘法的思想,但基于该思想是有前提假设的: 1)正态性假设:随机误差项服从均值为0,标准差为sigma的正态分布; 2)独立性:因变量y之间相互独立,即互不影响; 3)线性...
  • 模型总结

    千次阅读 2019-08-24 11:39:53
    模型总结 1.树模型基础介绍。 什么是树模型? 一种基于特征空间划分的具有树形分支结构的模型。 树模型的特点? 方差大、对量纲没有要求、由多条规则组成、能够处理数值型和类别型数据、有较高的解释性。...
  • 主动轮廓模型主要用于解决图像中目标物体的分割操作。理论上是可以解决二维乃至多维的情况,不过最初的模型是在二维图像上建立的。 ...1 最初的主动轮廓模型 - snake...基本思想是 1)在图像中初始化一个闭
  • 高斯混合模型和EM

    千次阅读 2017-03-19 21:33:01
    一、高斯混合模型 1、高斯混合模型概念 高斯混合模型就是用高斯概率密度函数(正态分布曲线)精确地量化事物,它是一个将事物分解为若干的基于高斯概率密度函数(正态分布曲线)形成的模型。一个模型转换为由多个...
  • 模型优化策略

    千次阅读 2018-09-02 11:57:45
    在研究任何自适应架构时,重要的是将使用网络之前状态的基线模型(「教师」)与具有新架构的「学生」网络进行比较。在蒸馏学习(distillation learning) 的特殊情况下引入教师学生方法,即使用教师网络的输出层来...
  • 复杂网络模型总结

    千次阅读 2020-10-27 16:09:31
    均匀网络(如WS小世界模型) 度数分布较均匀 非均匀网络(如BA无标度网络) 度数分布极度不均匀 关联性分类 无关联网络:任何一个节点的度与它的邻居节点的度是相互独立的 关联网络:节点的度与它的邻居节点的度...
  • 模型压缩总结(完)

    千次阅读 2019-02-26 13:58:34
    核心思想就是把较大的卷积核分解为两个级联的行卷积核和列卷积核, 例如 33卷积分成 13卷积和 31卷积 级联。 这里对于11的卷积核无效。 3. 剪枝 可分为在filter级别上剪枝或者在参数级别上剪枝: a. 对于单个filter...
  • (10)安全模型

    千次阅读 2017-12-30 20:01:09
    安全模型:RABC、BIBA、中国墙、DTE
  • 前言 在前两章,我们介绍了...而模型的裁剪方法则比较简单明了,直接在原有的模型上剔除掉不重要的filter,虽然这种压缩方式比较粗糙,但是神经网络的自适应能力很强,加上大的模型往往冗余比较多,将一些参数剔除...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,060
精华内容 15,224
关键字:

如何培养学生的模型思想