牛客网算法八股刷题系列(六)正则化与偏差、方差的联系

news/2024/4/28 2:58:45/文章来源:https://blog.csdn.net/qq_34758157/article/details/130013731

牛客网算法八股刷题系列——正则化与偏差、方差的联系

题目描述

假如使用一个较复杂的脊回归(Ridge Regreesion\text{Ridge Regreesion}Ridge Regreesion)模型来拟合样本数据时,通过调整正则化参数λ\lambdaλ,来调整模型复杂度。当λ\lambdaλ较大时,关于偏差(Bias)(\text{Bias})(Bias)方差(Variance\text{Variance}Variance),下列说法正确的是?()?(\quad)?()

A\mathcal A \quadAλ\lambdaλ增大时,偏差减小,方差减小

B\mathcal B \quadBλ\lambdaλ增大时,偏差减小,方差增大

C\mathcal C \quadCλ\lambdaλ增大时,偏差增大,方差减小

D\mathcal D \quadDλ\lambdaλ增大时,偏差增大,方差增大

正确答案:C\mathcal CC

题目解析

观察题目,该任务是一个回归任务,并且使用基于L2L_2L2正则化岭回归/脊回归来拟合样本数据。并对正则化项参数λ\lambdaλ与拟合偏差/方差之间的关联关系进行描述。

场景构建

已知训练集合Dtrain={(x(i),Y(i))}i=1N\mathcal D_{train} = \{(x^{(i)},\mathcal Y^{(i)})\}_{i=1}^NDtrain={(x(i),Y(i))}i=1N,使用的损失函数是均方误差;对应的正则化项L2L_2L2正则化:
J(W)=1N∑i=1N(Ypred(i)−Y(i))2+λ∣∣W∣∣2\mathcal J(\mathcal W) = \frac{1}{N}\sum_{i=1}^N (\mathcal Y_{pred}^{(i)} - \mathcal Y^{(i)})^2 + \lambda||\mathcal W||_2J(W)=N1i=1N(Ypred(i)Y(i))2+λ∣∣W2

λ⇔Bias\lambda \Leftrightarrow \text{Bias}λBias

下面从两种角度来描述λ\lambdaλ偏差之间的关系:拉格朗日乘数法角度、权重衰减角度。

拉格朗日乘数法角度

详细过程可参考:

  • 机器学习笔记之正则化——拉格朗日乘数法角度
  • 机器学习笔记之正则化——权重衰减角度[偏差方向]回顾部分。

在未加正则化项之前,我们只有一种途径来判别权重W\mathcal WW在训练过程中的情况——损失函数。损失函数达到较小时,或者说损失函数减小的速度非常缓慢的时候,我们认为模型已经达到拟合。

但训练开始之前,我们对于权重的初始化Winit\mathcal W_{init}Winit可以是权重空间中的任意一点。实际上,每一个初始化点都存在自己的拟合路径。这会导致:可能存在若干个损失函数结果相似,但都很小的权重结果。也就是说,使模型达到拟合对应的权重不唯一

一种朴素想法:利用范数为代表的正则化去约束权重空间,没有落在正则化范围的权重点都被视作无效。就以题中的L2L_2L2正则化为例,它在权重空间内的形状是一个(不同维度存在不同形状。球、超球体等等),假设该正则化范围的半径C\mathcal CC,对应的优化问题描述表示如下:
由于∣∣W∣∣2||\mathcal W||_2∣∣W2表示权重空间中某点W\mathcal WW到权重空间原点距离;∣∣W∣∣2−C≤0||\mathcal W||_2 - \mathcal C \leq 0∣∣W2C0意味着W\mathcal WW不会超出L2L_2L2正则化的约束空间。
{min⁡J(W)s.t.∣∣W∣∣2−C≤0\begin{cases} \min \mathcal J(\mathcal W) \\ s.t. \quad ||\mathcal W||_2 - \mathcal C \leq 0 \end{cases}{minJ(W)s.t.∣∣W2C0
使用拉格朗日乘数法,可以将上式转化为如下形式:
L(W,λ)=J(W)+λ(∣∣W∣∣2−C)⇒{min⁡Wmax⁡λL(W,λ)s.t.λ≥0\begin{aligned} \mathcal L(\mathcal W,\lambda) & = \mathcal J(\mathcal W) + \lambda (||\mathcal W||_2 - \mathcal C) \\ & \Rightarrow \begin{cases} \mathop{\min}\limits_{\mathcal W} \mathop{\max}\limits_{\lambda} \mathcal L(\mathcal W,\lambda) \\ s.t. \quad \lambda \geq 0 \end{cases} \end{aligned}L(W,λ)=J(W)+λ(∣∣W2C){WminλmaxL(W,λ)s.t.λ0
目标函数展开,观察展开后的结果:
L(W,λ)=J(W)+λ∣∣W∣∣2−λ⋅C\mathcal L(\mathcal W,\lambda) = \mathcal J(\mathcal W) + \lambda ||\mathcal W||_2 - \lambda \cdot \mathcal CL(W,λ)=J(W)+λ∣∣W2λC
由于λ,C\lambda,\mathcal Cλ,C均是常数,这意味着λ⋅C\lambda \cdot \mathcal CλC并不对W\mathcal WW的更新产生影响,因而在迭代求解W\mathcal WW的过程中可省略。也就是我们常见到的正则化的表示形式:
L(W,λ)=J(W)+λ∣∣W∣∣2\mathcal L(\mathcal W,\lambda) = \mathcal J(\mathcal W) + \lambda ||\mathcal W||_2L(W,λ)=J(W)+λ∣∣W2
但并不是说λ⋅C\lambda \cdot \mathcal CλC没有用处!!! 该部分的作用是每次迭代过程中调节梯度向量的大小,使其与每次迭代的梯度下降部分大小相等、方向相反。

由于这个作用,使得每次迭代过程产生梯度向量的条件下,λ\lambdaλC\mathcal CC的乘积被约束在了固定的范围——与本次迭代梯度向量大小相关的一个范围:
由于C\mathcal CC是一个长度,因而C≥0\mathcal C \geq 0C0;并且λ\lambdaλ是约束条件中给定的λ≥0\lambda \geq 0λ0,因此它们两个都是非负数。

λ\lambdaλ增大时,这意味着C\mathcal CC不大/减小(乘积被约束),C\mathcal CC小意味着正则化范围小,导致该范围与J(W)\mathcal J(\mathcal W)J(W)最优解的距离较远,预测的结果自然不准确(偏差较大):

  • 其中绿色圆表示正则化范围;红色线表示J(W)\mathcal J(\mathcal W)J(W)函数的等高线,圈越小,对应的圈内的W\mathcal WW越准确。
  • 在正则化位置不动的条件下(权重空间原点)绿色圈越小,圈内的最优解离J(W)\mathcal J(\mathcal W)J(W)越远,准确性自然越来越差,偏差自然也越来越大。
    C减小时偏差增大

权重衰减角度(包含λ⇔Variance\lambda \Leftrightarrow \text{Variance}λVariance解释)

详细过程可参考:
机器笔记之正则化——权重衰减角度[直观现象]

我们比较执行/未执行正则化后W\mathcal WW更新的变化:
{W⇐W−η⋅∇WJ(W)W⇐(1−η⋅α)W−η⋅∇WJ(W)\begin{cases} \mathcal W \Leftarrow \mathcal W - \eta \cdot \nabla_{\mathcal W} \mathcal J(\mathcal W) \\ \mathcal W \Leftarrow (1 - \eta \cdot \alpha) \mathcal W - \eta \cdot \nabla_{\mathcal W}\mathcal J(\mathcal W) \end{cases}{WWηWJ(W)W(1ηα)WηWJ(W)
λ\lambdaλα\alphaα之间关联关系的推导过程表示如下:
这里以取包含正则化项损失函数J^(W)\hat {\mathcal J}(\mathcal W)J^(W)最小值为例,其中J(W)\mathcal J(\mathcal W)J(W)表示未加正则化项的损失函数。
{W^=arg⁡min⁡WJ^(W)J^(W)=J(W)+λ(∣∣W∣∣2−C)\begin{cases} \hat {\mathcal W} = \mathop{\arg\min}\limits_{\mathcal W} \hat {\mathcal J}(\mathcal W) \\ \hat {\mathcal J}(\mathcal W) = \mathcal J(\mathcal W) + \lambda (||\mathcal W||_2 - \mathcal C) \end{cases}W^=WargminJ^(W)J^(W)=J(W)+λ(∣∣W2C)

  • 由于是观察W\mathcal WW的最值问题,下面与W\mathcal WW无关的项忽略掉
    J^(W)=J(W)+λ⋅WTW−λ⋅C⏟W无关=J(W)+λWTW⋅WTW\begin{aligned} \hat {\mathcal J}(\mathcal W) & = \mathcal J(\mathcal W) + \lambda \cdot \sqrt{\mathcal W^T\mathcal W} - \underbrace{\lambda \cdot \mathcal C}_{\mathcal W无关} \\ & = \mathcal J(\mathcal W) + \frac{\lambda}{\sqrt{\mathcal W^T\mathcal W}} \cdot \mathcal W^T\mathcal W \end{aligned}J^(W)=J(W)+λWTWW无关λC=J(W)+WTWλWTW
  • 这里令α=2λWTW\begin{aligned}\alpha = \frac{2\lambda}{\sqrt{\mathcal W^T\mathcal W}}\end{aligned}α=WTW2λ,上式可表示为如下形式:
    系数12\frac{1}{2}21为求导方便使用,无实际意义。
    J^(W)=J(W)+α2WTW\hat {\mathcal J}(\mathcal W) = \mathcal J(\mathcal W) + \frac{\alpha}{2} \mathcal W^T\mathcal WJ^(W)=J(W)+2αWTW

由于2WTW>0\begin{aligned}\frac{2}{\sqrt{\mathcal W^T\mathcal W}} > 0\end{aligned}WTW2>0恒成立,这意味着λ\lambdaλα\alphaα之间是正相关的关系。即:λ\lambdaλ越大,α\alphaα越大。再次回顾上面的权重衰减过程,α\alphaα越大,意味着每次迭代过程中,(1−η⋅α)W⇒W(1 - \eta \cdot \alpha)\mathcal W \Rightarrow \mathcal W(1ηα)WW减小得越快

如果将模型对样本的拟合结果视作一个复杂函数f(x)f(x)f(x),可以将该函数使用泰勒公式进行表示:
f(x)=f(a0)+11!f′(a0)(x−a0)+12!f′′(a0)(x−a0)2+⋯+1n!f(n)(a0)(x−a0)nf(x) = f(a_0) + \frac{1}{1!} f'(a_0)(x - a_0) + \frac{1}{2!} f''(a_0)(x - a_0)^2 + \cdots + \frac{1}{n!} f^{(n)}(a_0)(x - a_0)^nf(x)=f(a0)+1!1f(a0)(xa0)+2!1f′′(a0)(xa0)2++n!1f(n)(a0)(xa0)n
从泰勒展开式可以看出:高次项的系数越大,这个函数越复杂。对应各次项含变量的系数表示如下:
f(a0),f′(a0),f′′(a0),⋯,f(n)(a0)f(a_0),f'(a_0),f''(a_0),\cdots,f^{(n)}(a_0)f(a0),f(a0),f′′(a0),,f(n)(a0)
由于a0a_0a0是一个常数,在a0a_0a0给定的条件下,无论这些系数是什么结构,它们必然都是关于权重W\mathcal WW的函数。当W\mathcal WW减小时,各次项的系数就会减小,从而使函数f(x)f(x)f(x)更简单。

简单的函数会发生欠拟合(Underfitting\text{Underfitting}Underfitting)。直观的理解是:在预测/验证的过程中,即便是样本特征相差较大的样本点,在欠拟合模型的预测结果中可能相差较小。 这意味着:

  • 关于样本特征的预测结果不准确 ⇒\Rightarrow 偏差较大;
  • 相差较大的样本点预测结果差距小 ⇒\Rightarrow 方差较小;

这里图示一个例子:
在这里插入图片描述

其中红色点表示样本点;蓝色线表示拟合优秀的模型结果橙色线表示欠拟合的模型结果。取两个样本点为例。

两个红色点对应的两个模型结果分别用对应橙色点、蓝色点表示。观察:

  • 红色点的纵坐标与对应蓝色、橙色点的纵坐标相比,蓝色点与红色点更接近,偏差更小;而黄色点的偏差更大
  • 比较两个黄色点坐标之间的差距,与对应的蓝色点比较,两个黄色点之间的差距更小,但是对应真实样本中的两个红色点之间的坐标差距明显更大于黄色点。这意味着:红色样本之间的特征差距,相比于蓝色线,橙色线划分得更不明显。这意味着方差更小

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_283470.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于html+css的内容旋转

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

一起学 WebGL:绘制一个点

大家好,我是前端西瓜哥。 本文讲解如何用 WebGL 绘制一个点。 WebGL WebGL 是浏览器支持的一种绘制图形的 API,是一个标准。我们可以通过 Canvas 元素 在网页的特定区域绘制 2D 和 3D 图形。 相比 Canvas 2D,WebGL 利用了 GPU 的计算能力…

真给科技企业丢脸,在美国亚马逊做普通工人,你会吃不饱肚子

亚马逊公司(Amazon),成立于1995年,是全球最大的一家科技创新型电子商务公司,是全球电子商务的最老资格。自从2015年底,亚马逊在俄亥俄州哥伦布市运营大型仓库,如今的亚马逊已经成为俄亥俄州最大…

基于C#语言专业开发的一套:医院手麻系统源码

手术室麻醉信息管理系统源码,手麻系统源码,C#手术麻醉系统源码 相关技术:C#语言前端框架:Winform后端框架:WCF数据库:sqlserver开发工具:VS2019 文末获取联系! 系统概述: 手术麻醉…

全国青少年信息素养大赛2023年python·必做题模拟一卷

全国青少年电子信息智能创新大赛 python必做题模拟一卷 一、单选题 1. 以下哪种输入结果不可能得到以下反馈: 重要的事情说三遍:安全第一!安全第一!安全第一!( ) A、print("重要事情说…

Redis 如何配置读写分离架构(主从复制)?

文章目录Redis 如何配置读写分离架构(主从复制)?什么是 Redis 主从复制?如何配置主从复制架构?配置环境安装 Redis 步骤通过命令行配置从节点通过配置文件配置从节点redis 主从复制优点redis 主从复制缺点Redis 如何配…

Git仓库集成到VScode

前提是一种安装了Git,这里就不再介绍安装过程,进入Git官网进行下载安装即可。 这里用Gitee作为远程仓库演示,首先在gitee上新建仓库 新建完毕,生成了HTTPS地址,复制该远程仓库地址。 来到vscode,在没有仓库…

五.microchip 代理贝能的sam d51(LQFP100PIN)与LAN9253 电机控制开发板使用总结(3)

五.microchip 代理贝能的sam d51(LQFP100PIN)与LAN9253 电机控制开发板使用总结(3) 3.4 板子相关外设配置 3.4.1 板子MCU硬件 的LAN9253连接接口 pin numpin idcus_namefuncmodedirlatchpush uppush downdir str1PA00GPIO_PA0_D0GPIOINYNORMAL2PA01GP…

leetcode:只出现一次的数字 Ⅲ(详解)

前言:内容包括:题目,代码实现,大致思路,代码解读 题目: 给你一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。你可以按 任…

DOS批处理文件---内嵌参数变量扩充功能

1 内嵌参数变量 1.1 介绍 内嵌参数变量指:%i,其中i为大于等于0的整数。如%0, %1, %2,... 1.2 作用 可以客制化功能。 1.3 案例 批处理文件:main_Param.bat echo off && setlocal ENABLEDELA…

Solidworks学习一

目录页面介绍:视图操作:实例圆柱:直线的绘制:草图的保存和不保存:绘制工具:切线弧:转换实体引用:交叉曲线:等距实体:移动复制:约束:约…

MyBatisPlus-DQL编程控制

MyBatisPlus-DQL编程控制3,DQL编程控制3.1 条件查询3.1.1 条件查询的类3.1.2 环境构建3.1.3 构建条件查询3.1.4 多条件构建3.1.5 null判定3.2 查询投影3.2.1 查询指定字段3.2.2 聚合查询3.2.3 分组查询3.3 查询条件3.3.1 等值查询3.3.2 范围查询3.3.3 模糊查询3.3.4…

一起学 WebGL:动态绘制点

大家好,我是前端西瓜哥。上一篇文章讲解了如何绘制一个点。但这个点的信息是写死在渲染器源码中的,也就是硬编码。 这是系列文章,如果你是初学者,你需要看上一篇文章才好理解这节课的内容。 《一起学 WebGL:绘制一个点…

python五角星编程代码绘制

大家好,我是你们的好朋友,今天继续分享 Python的编程知识。 在 Python中,有一个非常强大的数据可视化工具: database. dl (),其中有一个功能就是可以绘制五角星。 什么是五角星? 在数…

jenkins配置插件发版了解

jenkins配置&插件&发版了解 jenkins https://mirrors.jenkins.io/war-stable/2.222.1/ 包下载地址 jenkins镜像源修改 sed -i s/https:\/\/www.google.com/https:\/\/www.baidu.com/g default.json sed -i s/https:\/\/updates.jenkins.io\/download/https:\/\/mi…

怎么使用思维导图?

回答这个问题前,我们先来了解下三个问题: 1.思维导图是什么? 思维导图,又名心智导图,是表达发散性思维的有效图形思维工具 ,它简单却又很有效同时又很高效,是一种实用性的思维工具&#xff08…

Ubuntu22.04中安装PyCharm

目录 1. 在ubuntu中下载linux版本的PyCharm。 2. 将下载好的pycharmxxxx.tar.gz文件解压。 3. 在解压后的pycharm文件夹下的bin文件夹下(此处为:pycharm-edu-2021.1.2/bin),在空白处右键,然后选择”在终端打开“。然…

蓝桥杯第26天(Python)考前挣扎

题型: 1.思维题/杂题:数学公式,分析题意,找规律 2.BFS/DFS:广搜(递归实现),深搜(deque实现) 3.简单数论:模,素数(只需要…

使用 LifseaOS 体验 ACK 千节点分钟级扩容

作者:阿里云 ACK 和操作系统团队 三年前的云栖大会上,LifseaOS 正式发布,这是一款专为云原生场景而垂直优化的操作系统发行版,即业界统称的 ContainerOS。初始发布时,它提供了如下几个突出的特性:轻量&…

guitar pro8.1免费的吉他学习辅助软件

从名字上看就知道这是一款针对吉他谱开发的软件,相信大多数吉他爱好者都用过或者听过这款软件。可以通过鼠标和键盘的操作对吉他谱的内容进行输入,支持四线谱,五线谱、六线谱等曲谱的制作。软件涵盖了几乎所有的吉他演奏技巧符号,…