看了高考一分一段表才悟到,我们要担心的不是内卷,而是过拟合
点击右下角“关注”我噢~
作者:川妈
高考刚刚落下帷幕,中考又紧随其后。
同事是海淀爸爸,娃刚好今年中考,跟他聊天,平时超级淡定的他,谈起娃的中考,掩饰不住的紧张。
因为北京“新中考”要2025年才开始,他一直担心今年中考还是会“卷生卷死”。
我非常非常理解他——众所周知,海淀中考已经好几年都是“一分一操场”的节奏了。
还记得夸张的2022年中考吗?满分660分,全市655分以上的孩子有877人,“卷王”海淀,占了517人。
图源:网络
如果你在海淀考了650分,那直接就全区2600名开外了。
图源:网络
网上流传的“600分去技校”,并不是传说,而是现实……
图源:网络
这两天,2024年北京高考出分了,看到了相似的一分一段表。
真的好吓人,700分以上117人,每个高分段上都有几十个孩子。
对此,很多围观群众都会下意识用“卷”这个字来形容,认为这是竞争过度的结果。
然而,最近我知道了一个新的说法,比“卷”更适合形容这种现象——
我们的孩子在不知不觉间,陷入了过拟合状态。
什么是过拟合?
要知道什么是过拟合,首先我们需要先来了解下“拟合”这一概念。
“拟合”本身是个数学术语,简单来说,就是把平面上的一些点,用一条光滑曲线连接起来的过程。
因为这条曲线有无数种可能,拟合的方法就各有不同。
我们做定量研究的本质是寻找数据之间的规律。我们会事先假设变量之间的关系公式,然后利用样本数据去检验这个公式对真实情况的拟合程度。
检验结果好,说明我们对变量之间的关系判断正确,拟合度高;检验结果不理想,则说明我们没能发现变量之间真正的关系,拟合度低。
图源:我自己画的
机器学习的过拟合
拟合这个词,也经常出现在“机器学习”领域。
人工智能大火的今天,想必大家对机器学习并不陌生,简单来说,就是训练一个模型,给它输入数据,再通过运算输出结果。
这一整个训练的过程,就是拟合。模型在学习的过程,通过拟合掌握数据的规律,然后在面对新情况做出预测和选择。
而当一个模型在训练时,针对已知数据表现非常好,面对新数据时却表现差,就叫过拟合。
过拟合的突出特点是,由于训练,模型完美契合了训练数据,但因为对特定的细节学习得太过深入,无法抓住“普遍规则”,所以会在测试阶段输出一些驴唇不对马嘴的结果。
与之相对的,模型在训练时没有学习充分,且在新数据上表现糟糕,则是欠拟合。
图源:我自己画的
欠拟合状态比较容易调整,训练不足,继续训练就行;与之相比,过拟合往往更加复杂、更加难搞。
《深度学习:从基础到实践》一书中,用了个很鲜活的例子描述过拟合现象:
让机器学习图像识别时,训练数据里所有的贵宾犬尾巴都有一团毛球。
图源:《深度学习:从基础到实践》
于是机器学会了“尾巴上有毛球=贵宾犬”。
接着测试时,一条其他品种的狗与一个球形装饰物出现在一起,机器错误地将这条狗识别为贵宾犬。
图源:《深度学习:从基础到实践》
很明显,机器“过多地学习了”或者说“过多地适应了”输入的数据。换句话说,它从有限的图片中学得太多了!
做题&考试中的过拟合
机器学习和人类学习有没有共通之处?答案是肯定的。
搜索资料时,我发现很早之前就有人把高考模式和机器学习联系起来讨论了。
图源:网络
因为高考模式的存在,孩子会有针对性地训练特定类型的题目,很多孩子的高分,都是通过大量重复练习和高强度记忆获得的。
所以很多时候会出现这样的情况,一些经过充分训练的孩子只会答已经见过的题,没见过的题就不会。
机器学习时,有个词叫“泛化”,当模型过于复杂时,就会只能应对特定的数据,无法泛化。
同样的,如果孩子处于过拟合状态,也会无法泛化。
“刷题”模式下,孩子的创造力和灵活性是被忽略的,泛化的能力是欠缺的,遇到新题时,他们会下意识去匹配曾经的“训练数据”,得出错误答案。
图源:《深度学习:从基础到实践》
成长中的过拟合
不过,这样的思考虽然很有新意,却还是限定在做题刷题范畴。
如果把范围扩大,用机器学习去类比孩子的成长呢?
我们会发现,教育中的过拟合不仅体现在知识的学习上,还能扩展到思维、社交和生活等多个方面:
“做题家”只会做题却处理不好生活中的各种挑战;
“空心娃”对什么都提不起兴趣;
“卷王”内心匮乏、精神紧绷……
这背后,都有着过拟合的影子。
总的来说,孩子只能在某个限定的范围内取得成就,稍微改换环境就找不到存在感,应对更广泛的挑战时总是力不从心,这些都是过拟合的突出表现。
从这些表现之中,我们可以看到孩子陷入过拟合状态的本质——
不合理的“专化”,影响了孩子的泛化能力。
内卷的内核是过拟合
机器学习时出现过拟合现象的原因,相关研究者早就总结清楚了。比如模型复杂、训练强度大、训练数据不足、噪声数据多、缺乏正则化技术等。
虽然这些词看起来有些抽象,不过,我们可以借用其中的一些概念,类比教育中可能出现的问题,就容易理解了。
模型复杂+噪声干扰
导致空心+价值观狭隘
如果模型过于复杂,机器的学习能力过强,就会在接触到简单的训练数据时,学习那些无效信息(即噪声),导致无法达成训练目标。
所谓模型,对应的是孩子本身和现代教育的方式和内容。
教育的“噪声”则包括不必要的练习、无谓的竞争和外界的各种干扰。
理想的数据曲线和充满噪声的曲线
图源:《深度学习:从基础到实践》
现在的教育是不是越来越追求高难度?孩子们的学习内容和方式是不是越来越复杂?
相比我们小时候,现在的孩子很忙、很辛苦。
除了越来越难的课内学习,各种兴趣班、特长班也塞满了日程,学习十八般武艺,培养六边形战士。
为什么孩子要这么累?
我们可以用一句“内卷”概况回答,因为竞争日益激励和同质化,只能水涨船高。
再细想一下,里面其实隐藏了这样的假设:这样被教出来的孩子,会在未来的竞争中胜出。
但实际上,我们鸡娃的模板是根据过去成功经验总结出来的,且是综合取合集的结果。
用定量研究和机器学习的视角看,我们研究过去成功孩子背后的原因,因为“学习”得特别细致深入,造成了“过拟合”,发现、抓取了所有的影响因素,构建了一个包罗万象的成功孩子教育指南。
这里面很可能包含了一些不充分不必要的因素,比如学习成绩好、某些特长等等。再夸张点说,可能本身不存在基本规律,是因为过度拟合才发现了所谓的规律。其实没有所谓成功教育的范式或剧本,是我们过度拟合创造出来的。
当我们自以为是地将这个模板硬套在孩子身上,一系列的问题就会出现。
一是未来是变化和不确定的,基于过去的经验,不能保证孩子未来的成功。
二是,当我们照着模板养孩子,我们会选择性漠视孩子的天赋,忽视他本来、独特的样子,本该是因材施教,却变成了削足适履;本该是尽可能发展孩子的长处,让他们百花齐放、百鸟争鸣,却用流水线的方式制造出一模一样的标准品。
更令人遗憾的是,在日积月累的照表操课中,孩子在努力变成所谓成功样子的过程中,忘记了自我、失去了灵性;他们也把过去的成功范式奉为圭皋,一味遵循、不再想去创新创造。
这两年,接触了好多一心只想考公考编的年轻人,我理解他们的难,但更为他们早早就躺平、想过退休生活而担忧。
过度训练
批量生产“做题家”
过度训练之“过”,我觉得要从两个角度去看。
一是过量。
对于机器来说,训练超过一定轮数,验证误差就会上升(同学们可以再看一遍下图的红线部分);对于孩子来说,过量的训练不仅不会提高他们的思维能力,还会让他们变得更加机械化,且厌恶学习。
图源:《深度学习:从基础到实践》
二是过窄。
为什么练得越多效果越差?练习内容范围过窄绝对是主要原因之一。
无论把学习内容的难度拉到多高,只要它是相对单一的,孩子就无法通过训练找到事物之间的普遍联系。
此外,现在的孩子经常会在父母和社会的引导下,在还没有能力质疑的年纪,过早获得大量结论性的“道理”。
后果就是,他们会被某些结论的信息茧房“封闭训练”,从而更加缺乏独立思考的能力。
所以可以这样说,只对孩子说“读书百遍其义自见”是不负责任的,必须强调不仅要读书,也要行万里路(反过来,只见世面是不行的,知识也要踏踏实实地学)。
孩子需要在成长中找到知识与世界之间的正确联系,如果没能找到,即使他能够取得好成绩,也会是拧巴的“做题家”,在接下来的人生遇到更多难以解决的问题……
缺乏正则化技术
无法帮助孩子平衡学习节奏
机器学习时,训练者如果察觉到过拟合显现,会引入“正则化技术”,用合适的约束机制防止模型继续过拟合。
同样,孩子的学习也需要相应的“正则化技术”,执行者就是家长(也包括学校)。
对于一个孩子来说,他的日程是不是太满了?补习班和作业是不是太多了?他有时间发现、发展自己的爱好吗?他的学习节奏如何平衡?
图源:unsplash
这些,都需要我们细心观察,及时帮助孩子调整。
如果无法帮孩子平衡好学习和生活,他们就会持续处于过拟合状态。
如何避免孩子过拟合?
家长该怎样帮助孩子?
写到这部分时,我有一个感受:当一个新概念、新框架出现之后,很多曾经已知的道理都可以重新整理之后“装”进去,让自己的认知变得更有条理。
比如,我们都知道孩子的成绩不是一切,那成绩之外,什么才是更重要的?
我们都知道要带孩子去见世面,但是见世面之后,孩子身上到底有了哪些变化?
我们都知道孩子需要有兴趣爱好,可是挤出学习的时间去吹拉弹唱,对孩子真的有好处吗?
结合过拟合现象去思考,以上很多问题都有了答案。
整体:建立整体构型的观念
我的本职研究工作是通过对大样本的实证检验,发现企业成功(失败)的规律,进而提炼成可借鉴和可推广的理论观点。教育学研究的逻辑,应该类似。我很认同和推崇理论的意义和价值。所以,在教养孩子遇到困难时,第一想到的是找相关的研究发现。
但,也正是因为研究做的越多越久,越更知道其中的大坑。
任何研究,都实从它所关注的角度,探究某个(某些)因素与孩子成长的线性关系。例如,智商和学业成就,性取向和学校受欢迎程度等等。
结论和观点都没错,但问题是,我们养育的是孩子,不是一个个相关独立要素的组合,我们没法在保证其他要素不变的情况下,随意调控其中一个,优化孩子的成长。
换句话说,孩子之所以是独一无二的个体,就是外表、智商、性格、气质、情商、数感等等数不清的“要素”,以独一无二、错综复杂的方式融合的系统。他们也以独一无二的方式适应、甚至改变这个世界。
于是,在现在世界,虽然我们总能发现一些成功人士的共性,但同时又惊讶那些成功人士没有一个是雷同的,都是千姿百态的。
想通这一点,我们也许就不再纠结孩子是否符合社会“成功孩子”范式了。所谓的规则的范式,是相对独立的研究发现、经验总结的简单粗暴汇总。
它描述的是不切实际的理想样板,不是我们眼中、怀里那些鲜活真实的宝贝。我们可以学习,但不用生搬硬套,更不需要因为做不到,而自责或责怪孩子。
多元:提供多元化的学习体验
在孩子脑力足够的情况下,过拟合总是和孩子学习内容单一脱不开关系。比如某一特定题型、特定知识点、甚至特定的思考方式。
举个例子,很多孩子小学期间习惯用死记硬背的方式学数学,到了初高中就会被现实痛击。
所以作为家长,必须给孩子提供多样化的学习资源,引导他们接触不同的思考方式和更多的知识领域。
具体的做法,包括大量阅读,也包括参加兴趣班和投身社会实践活动,让孩子在实践中建立自己的知识体系,提升综合能力。
图源:unsplash
适度:避免高强度训练,不以成绩论英雄
过度训练是导致过拟合现象的重要原因之一,所以我们必须避免这种现象出现在孩子的学习生活中。
高强度、重复性……同学们有没有发现,这些都是“衡水模式”的代表性特点?
我想,无论是受益于此的“过来人”还是望而生畏的“围观者”,都不会否认这种训练模式会让孩子疲惫、厌学。
学习的目的绝对不是一纸满分试卷,成绩也不是论英雄的最终标准。
尤其是我们的孩子这一代,未来针对他们的评判标准必然会更加多维,与其让他们因为以后未必那么重要的成绩疲惫不堪,不如更多关注他的努力和进步,培养他们对学习的兴趣和热爱。
生无所息,学无止境,我们应该让孩子认识到,学习不只是语数英,而是一生的修行。
图源:unsplash
平衡:学业、兴趣、底层能力、心理健康都非常重要
我们知道,过拟合不仅体现在学业上,如果孩子的人生出现过拟合现象,会表现为在某一方面“专化”而死板,很容易导致他的心理压力过大。
这时,兴趣爱好的培养、底层能力的提升和心理健康的维护都非常重要。
有爱好就多去玩玩,有活动就去放松心情;团体运动有助于提升孩子的团队合作精神,社会活动能帮孩子提高适应社会的能力……总之,家长需要做的,就是平衡——
平衡孩子的学习生活,让他们在各个方面都有所进步,避免在单一方面机械化发展而陷入过拟合状态。
但回看历史,我们能够发现,专业、行业、知识、技能这些冰山以上外显的东西,都具有时效性,都有被淘汰的风险。
而真正支持孩子应对变化、拥抱变化的,是那些隐藏在冰山之下的底层能力,具有高度柔性和高度适应性的独立思考、创新能力等。
图源:unsplash
长远:帮孩子设定合理的阶段性目标,找到长期路线
教育没有一蹴而就的捷径,没有深奥的秘密,它是一个长期的过程,隐藏在天长地久的细节中。
每个孩子都该有属于他的阶段性目标,也该有符合他本人特点和兴趣的长期发展路线。
阶段性目标可以减轻孩子的压力,不至于被家长安排着进行盲目的高强度训练;长期规划则能保证孩子有明确的发展方向,不“跑偏”。
图源:《深度学习:从基础到实践》
写到这,相信很多同学都会发现,在孩子的教育问题上,很多道理都是相通的。
比如,之前在和大家聊“父母说教”这个话题时,我提到了如果家长总是对孩子说教,刺激越多、越强,持续时间越久,孩子心中的不耐烦和逆反就会越强。
这叫“超限效应”。
又比如经济学中,在其他条件不变的情况下,如果将某一种要素连续等量地增加,增加到一定程度后,产品的增量就会下降,即可变要素的边际产量会递减。
这就是“边际效用递减”。
刷题也是一样,如果知识或能力有欠缺,刚开始刷题时,可以起到一定的查缺补漏作用。但当孩子已经到达一定水平,刷题的效果就越来越弱了。
怎么样,横向比较,“超限效应”和“边际效用递减”是不是都与过拟合现象有些相似之处?
而这三者又可以用同一个成语概括——过犹不及。
所以我想,或许,那些教育孩子时应该遵循的真理我们早就知道了,只是面对生活中一个一个细碎的事件时,无法及时发现、细致调整罢了。
现在,我们再来思考这个问题:想要避免孩子过拟合,该怎么办?
把我几年前回答另一个问题的答案改一改,今天依然适用:
时刻谨记“过犹不及”,关注并积极回应孩子的需求,过好每一天、走好每一步吧!
部分图源自网络,侵删
参考资料:
1.安德鲁·格拉斯纳:《深度学习-从基础到实践》,人民邮电出版社,2022.
2.https://mahithas.medium.com/overfitting-identify-and-resolve-df3e3fdd2860
mom看世界:跟着二胎博士妈妈一起学育儿、看世界;这儿既有我所崇尚的自然生活分享,还有独家的科学课程、阅读课程;来吧,养娃路上永远缺个好朋友!对啦,目前我在“头条号、公众号”两个平台发布文章,名字均为【mom看世界】,欢迎关注。
用人话讲明白逻辑回归Logistic regression
- 从线性回归说起
- sigmond函数
- 推广至多元场景
- 似然函数
- 最大似然估计
- 损失函数
- 梯度下降法求解
- 结尾
【提示:头条号编辑器不支持Markdown,因此涉及公式的部分全部转为图片显示】
今天梳理一下逻辑回归,这个算法由于简单、实用、高效,在业界应用十分广泛。注意咯,这里的“逻辑”是音译“逻辑斯蒂(logistic)”的缩写,并不是说这个算法具有怎样的逻辑性。
前面说过,机器学习算法中的监督式学习可以分为2大类:
- 分类模型:目标变量是分类变量(离散值);
- 回归模型:目标变量是连续性数值变量。
逻辑回归通常用于解决分类问题,例如,业界经常用它来预测:客户是否会购买某个商品,借款人是否会违约等等。
实际上,“分类”是应用逻辑回归的目的和结果,但中间过程依旧是“回归”。
为什么这么说?
因为通过逻辑回归模型,我们得到的计算结果是0-1之间的连续数字,可以把它称为“可能性”(概率)。对于上述问题,就是:客户购买某个商品的可能性,借款人违约的可能性。
然后,给这个可能性加一个阈值,就成了分类。例如,算出贷款违约的可能性>0.5,将借款人预判为坏客户。
考虑最简单的情况,即只有一个自变量的情况。比方说广告投入金额x和销售量y的关系,散点图如下,这种情况适用一元线性回归。
线性回归的介绍文章戳这里:用人话讲明白线性回归LinearRegression
但在许多实际问题中,因变量y是分类型,只取0、1两个值,和x的关系不是上面那样。假设我们有这样一组数据:给不同的用户投放不同金额的广告,记录他们购买广告商品的行为,1代表购买,0代表未购买。
假如此时依旧考虑线性回归模型,得到如下拟合曲线:
这种形式,非常像单位阶跃函数:
图像如下:
我们发现,把阶跃函数向右平移一下,就可以比较好地拟合上面的散点图呀!但是阶跃函数有个问题,它不是连续函数。
理想的情况,是像线性回归的函数一样,X和Y之间的关系,是用一个单调可导的函数来描述的。
实际上,逻辑回归算法的拟合函数,叫做sigmond函数:
函数图像如下(百度图片搜到的图):
sigmoid函数是一个s形曲线,就像是阶跃函数的温和版,阶跃函数在0和1之间是突然的起跳,而sigmoid有个平滑的过渡。
从图形上看,sigmoid曲线就像是被掰弯捋平后的线性回归直线,将取值范围(−∞,+∞)映射到(0,1) 之间,更适宜表示预测的概率,即事件发生的“可能性” 。
在用人话讲明白梯度下降Gradient Descent一文中,我们讲了多元线性回归方程的一般形式为:
到目前为止,逻辑函数的构造算是完成了。找到了合适的函数,下面就是求函数中的未知参数向量β了。求解之前,我们需要先理解一个概念——似然性。
我们常常用概率(Probability) 来描述一个事件发生的可能性。
而似然性(Likelihood) 正好反过来,意思是一个事件实际已经发生了,反推在什么参数条件下,这个事件发生的概率最大。
用数学公式来表达上述意思,就是:
因此,最优β,就是使当前观察到的数据出现的可能性最大的β。
在二分类问题中,y只取0或1,可以组合起来表示y的概率:
因为一系列的xi和yi都是我们实际观测到的数据,式子中未知的只有β。因此,现在问题就变成了求β在取什么值的时候,L(β)能达到最大值。
L(β)是所有观测到的y发生概率的乘积,这种情况求最大值比较麻烦,一般我们会先取对数,将乘积转化成加法。
取对数后,转化成下式:
接下来想办法求上式的最大值就可以了,求解前,我们要提一下逻辑回归的损失函数。
在机器学习领域,总是避免不了谈论损失函数这一概念。损失函数是用于衡量预测值与实际值的偏离程度,即模型预测的错误程度。也就是说,这个值越小,认为模型效果越好,举个极端例子,如果预测完全精确,则损失函数值为0。
在线性回归一文中,我们用到的损失函数是残差平方和SSE:
很遗憾,这个不是凸函数,不易优化,容易陷入局部最小值,所以逻辑函数用的是别的形式的函数作为损失函数,叫对数损失函数(log loss function)。
这个对数损失,就是上一小节的似然函数取对数后,再取相反数哟:
这个对数损失函数好理解吗?我还是举个具体例子吧。
用文章开头那个例子,假设我们有一组样本,建立了一个逻辑回归模型P(y=1)=f(x),其中一个样本A是这样的:
公司花了x=1000元做广告定向投放,某个用户看到广告后购买了,此时实际的y=1,f(x=1000)算出来是0.6,这里有-0.4的偏差,是吗?在逻辑回归中不是用差值计算偏差哦,用的是对数损失,所以它的偏差定义为log0.6(其实也很好理解为什么取对数,因为我们算的是P(y=1),如果算出来的预测值正好等于1,那么log1=0,偏差为0)。
样本B:x=500,y=0,f(x=500)=0.3,偏差为log(1-0.3)=log0.7。
根据log函数的特性,自变量取值在[0,1]间,log出来是负值,而损失一般用正值表示,所以要取个相反数。因此计算A和B的总损失,就是:-log0.6-log0.7。
之前我们在用人话讲明白梯度下降中解释过梯度下降算法,下面我们就用梯度下降法求损失函数的最小值(也可以用梯度上升算法求似然函数的最大值,这两是等价的)。
要开始头疼的公式推导部分了,不要害怕哦,我们还是从最简单的地方开始,非常容易看懂。
加上求和号:
文章写到这里就结束了,其实逻辑回归还有很多值得深入学习和讨论的,但是“讲人话”系列的定位就是个入门,我自己目前的水平也有限,所以本篇不再往后写了。
最后,欢迎各位一起学习讨论~
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。