机器学习笔记——浅析L2,1范数正则化的线性回归

前言

嘻嘻,刚开始搓逾期了快两周的线性回归实验报告,为了让报告稍微不那么平淡不得不啃论文。

本文从最基本的线性回归开始,对比不同正则化方法的特点和作用,推广到多任务问题并引出L2,1范数正则化,卑微小采购尝试去理解论文是如何思考和优化问题(

参考资料:

[1] 一文讲清楚线性回归(Linear Regression)、逻辑回归(Logistic Regression) - 掘金 (juejin.cn)

[2]一篇文章完全搞懂正则化(Regularization)-CSDN博客

[3] Efficient and Robust Feature Selection via Joint ℓ2,1-Norms Minimization (neurips.cc)

[4] L21范数用于多任务特征选择的一些思考 - 知乎 (zhihu.com)

一、线性回归回顾

1. 无正则化项

在最简单的线性回归问题[1]中,每个样本 x ( i ) ∈ R n x^{(i)} \in R^n x(i)Rn所对应的的标签 y y y是一个值,因此用于预测的参数是一个向量 θ ∈ R n \theta \in R^n θRn,即

y ^ ( i ) = θ T x ( i ) = ( x ( i ) ) T θ \hat{y}^{(i)} = \theta^T x^{(i)} = (x^{(i)})^T \theta y^(i)=θTx(i)=(x(i))Tθ

记所有的样本组成一个矩阵 X = ( x ( 1 ) , . . . , x ( m ) ) T , X ∈ R m × n X = (x^{(1)}, ..., x^{(m)})^T, X \in R^{m \times n} X=(x(1),...,x(m))T,XRm×n,所有的预测值组成一个向量 y ^ ∈ R m \hat{y} \in R^m y^Rm,则有

y ^ = X θ \hat{y} = X \theta y^=

在此类问题中,常用梯度下降法或正规方程法求解使预测值最接近于标签的参数向量 θ \theta θ[1],以及添加正则化项防止过拟合

2. 带正则化项

在[2]中,提到了常见的正则化项包括L1正则化和L2正则化如下

L1正则化的线性回归问题:

a r g m i n θ 1 2 m ∑ i = 1 m ( θ T x ( i ) − y ( i ) ) 2 + λ ∥ θ ∥ 1 argmin_\theta \frac{1}{2m}\sum_{i=1}^m (\theta^T x^{(i)} - y^{(i)})^2 + \lambda \| \theta \|_1 argminθ2m1i=1m(θTx(i)y(i))2+λθ1

a r g m i n θ 1 2 m ( X θ − y ) T ( X θ − y ) + λ ∥ θ ∥ 1 argmin_\theta \frac{1}{2m} (X\theta - y)^T(X\theta - y) + \lambda \| \theta \|_1 argminθ2m1(y)T(y)+λθ1

其中,

向量的L1范数指: ∥ θ ∥ 1 = ∑ i = 1 n ∣ θ i ∣ \| \theta \|_1 = \sum\limits_{i=1}^n |\theta_i| θ1=i=1nθi

L2正则化的线性回归问题:

a r g m i n θ 1 2 m ∑ i = 1 m ( θ T x ( i ) − y ( i ) ) 2 + 1 2 λ ∥ θ ∥ 2 2 argmin_\theta \frac{1}{2m}\sum_{i=1}^m (\theta^T x^{(i)} - y^{(i)})^2 + \frac{1}{2} \lambda \| \theta \|_2^2 argminθ2m1i=1m(θTx(i)y(i))2+21λθ22

a r g m i n θ 1 2 m ( X θ − y ) T ( X θ − y ) + 1 2 λ ∥ θ ∥ 2 2 argmin_\theta \frac{1}{2m} (X\theta - y)^T(X\theta - y) + \frac{1}{2} \lambda \| \theta \|_2^2 argminθ2m1(y)T(y)+21λθ22

其中,

向量的L2范数指: ∥ θ ∥ 2 = ( ∑ i = 1 n ∣ θ i ∣ 2 ) 1 2 \| \theta \|_2 = (\sum\limits_{i=1}^n |\theta_i|^2)^{\frac{1}{2}} θ2=(i=1nθi2)21

两者的区别是,当我们进行梯度下降,对损失函数求导时,

L2正则化项的偏导为 λ ∑ i = 1 n ∣ θ i ∣ \lambda \sum\limits_{i=1}^n | \theta_i | λi=1nθi,对绝对值较大的 θ i \theta_i θi,会给予较重的惩罚。由此造成的结果就是, θ i \theta_i θi绝对值会尽可能小

L1正则化项的偏导为 λ \lambda λ,也就是说,无论 θ i \theta_i θi的大小,L1正则化项都给予相同的惩罚。由此造成的结果就是,许多 θ i \theta_i θi尽可能变为0,从此达到稀疏化和特征选择的作用

二、多任务问题

1. 定义损失函数

当遇到多任务问题[2]时,即每个样本x对应的y不只是一个值,而是一个d维向量,即 y ( i ) ∈ R d , Y ∈ R m × d y^{(i)} \in R^d, Y \in R^{m \times d} y(i)Rd,YRm×d时,用于预测的参数需要是一个矩阵 Θ ∈ R n × d \Theta \in R^{n \times d} ΘRn×d,使得

y ^ ( i ) = Θ T x ( i ) \hat{y}^{(i)} = \Theta^T x^{(i)} y^(i)=ΘTx(i)

Y ^ = X Θ \hat{Y} = X \Theta Y^=XΘ

由于前面预测值和真实值都是确定的一个值,使用平方误差作为损失函数。而如今预测值和真实值都是向量,于是使用2范数作为基本的损失函数:

J ( Θ ) = ∑ i = 1 m ∥ Θ T x ( i ) − y ( i ) ∥ 2 2 J(\Theta) = \sum\limits_{i=1}^m \| \Theta^T x^{(i)} - y^{(i)} \|_2^2 J(Θ)=i=1mΘTx(i)y(i)22

论文[3]中将损失函数定义为另一种更为鲁棒的形式:

J ( Θ ) = ∑ i = 1 m ∥ Θ T x ( i ) − y ( i ) ∥ 2 J(\Theta) = \sum\limits_{i=1}^m \| \Theta^T x^{(i)} - y^{(i)} \|_2 J(Θ)=i=1mΘTx(i)y(i)2

2. 引入正则化项

如果把 X X X看作 n n n个列向量排成一行,那么每个列向量就是一个特征。

Θ \Theta Θ看作 n n n个行向量排成一列,那么每一行就是对每个特征作用的参数

故,如果想在这里达到稀疏化,也就是剔除掉多余特征的作用,就需要将 Θ \Theta Θ的某几行尽可能全部置零

由此引出带L2,1范数正则化项的损失函数:

J ( Θ ) = ∑ i = 1 m ∥ Θ T x ( i ) − y ( i ) ∥ 2 + λ ∑ i = 1 n ∑ j = 1 d Θ i , j 2 J(\Theta) = \sum\limits_{i=1}^m \| \Theta^T x^{(i)} - y^{(i)} \|_2 + \lambda \sum\limits_{i=1}^n \sqrt{ \sum\limits_{j=1}^d \Theta_{i, j} ^2} J(Θ)=i=1mΘTx(i)y(i)2+λi=1nj=1dΘi,j2

根据L2,1范数的定义:

∥ W ∥ 2 , 1 = ∑ i = 1 n ∑ j = 1 d W i , j 2 \| W \|_{2,1} = \sum\limits_{i=1}^n \sqrt{ \sum\limits_{j=1}^d W_{i, j} ^2} W2,1=i=1nj=1dWi,j2

则有

J ( Θ ) = ∥ X Θ − Y ∥ 2 , 1 + λ ∥ Θ ∥ 2 , 1 J(\Theta) = \| X\Theta - Y \|_{2,1} + \lambda \| \Theta \|_{2,1} J(Θ)=XΘY2,1+λ∥Θ2,1

可见,L2,1范数就是对行求2范数后得到的结果作为一个向量再求1范数。外层的1范数制约部分行的2范数需要为0,也就是一整行都为0,从而起到特征筛选的作用[4]

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

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

相关文章

顺序表复习(C语言版)

数据结构是什么? 数据结构就是为了把数据管理起来,方便我们的增删查改 数据结构是计算机存储、组织数据的方式 数组就是一种最基础的数据结构 顺序表是什么? 顺序表就是数组 Int arr[100] {1,2,3,4,5,x,……} 修改某个数据&#xff1a…

Mac下删除旧版本.net sdk

参照微软官网给的方法,Releases dotnet/cli-lab (github.com) 好像不能直接的解决问题,我做一下补充,希望对需要删除旧版本sdk的小伙伴们有所帮助 1:下载工具包 Releases dotnet/cli-lab (github.com) 2:打开终端,cd切换到该文件的制定目录 3:然后按照提示一步步执行…

java核心类

一,String字符串 1.1,String字符串是引用类型,且不可变 String str1 "Hello";String str2 str1.concat(" World"); // 使用concat方法连接字符串,返回一个新的字符串对象System.out.println(str1); // 输出:Hello,原始…

C语言:复习

文章目录 思维导图数组和指针库函数的模拟实现判断大小端 最近知识学的差不多了,因此开始复习,本篇开始的是对于C语言的复习 思维导图 下面就依据下图,进行内容的整理 数组和指针 这个模块算是C语言中比较大的一个模块了,具体概…

流媒体协议--RTMP

文章目录 RTMP播放基本流程TCP握手过程RTMP握手过程connect连接createStream 创建流play 播放命令deleteStream删除流RTMP数据组成 RTMP(Real Time Messaging Protocol)是一个应用层协议,主要用于在Flash player和服务器之间传输视频、音频、控制命令等内容。 该协议…

【笔试强训_Day06】

文章目录 1.字符串相乘 1.字符串相乘 题目链接 解题思路: 高精度乘法,注意要学会下面这种列式相乘的形式🍎 注意细节❗: ① 🍎 首先把列式相乘的数据都存放到数组中去, 然后再对数组中的数据进行取余进…

C++:运算符重载和“const”成员

hello,各位小伙伴,本篇文章跟大家一起学习《C:运算符重载》,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 文章目录 赋值运算符重载1. 运算符重载2.赋值运算符重载第一个点第二个点&…

迅雷下载不了的资源怎么下载?

我想下载Boost库,但是下载不下来 用迅雷下载是一直卡在0k 后来尝试在centos上用wget进行下载,竟然可以 wget https://boostorg.jfrog.io/artifactory/main/release/1.85.0/source/boost_1_85_0.tar.gz

揭开ChatGPT面纱(一):准备工作(搭建开发环境运行OpenAI Demo)

文章目录 序言:探索人工智能的新篇章一、搭建开发环境二、编写并运行demo1.代码2.解析3.执行结果 本博客的gitlab仓库:地址,本博客对应01文件夹。 序言:探索人工智能的新篇章 随着人工智能技术的飞速发展,ChatGPT作为…

2024燃动智火-业务视角的中国企业AI+学习发展报告

来源:新华三 学习型组织的数字化转型是众多企业关注的焦点,数字战略需要人才升级,数字 化学习加速人才培养。AI 技术在学习中的运用,为企业学习型组织的数字化转型插 上了飞翔的翅膀。这份报告解码了AI 时代企业的学习发展&#…

混合现实(MR)开发框架

混合现实(MR)开发框架为开发者提供了构建MR应用程序所需的基本工具和功能。它们通常包括3D引擎、场景图、输入系统、音频系统、网络功能以及支持同时处理现实世界和虚拟世界信息的功能。北京木奇移动技术有限公司,专业的软件外包开发公司&…

springboot+ssm基于Java的小型企业银行账目管理系统代码Lw

本毕业设计课题要求学生基于软件工程方法,根据课题的需求,给出小型企业银行账目管理系统概要设计、详细设计、数据库的设计以及系统实现和测试,并撰写规范的毕业设计说明书。该系统的主要模块有:系统管理、帐目管理、查询统计、用…

如何使用 ArcGIS Pro 制作边界晕渲效果

在某些出版的地图中,边界有类似于“发光”的晕渲效果,这里为大家介绍一下如何使用ArcGIS Pro 制作这种晕渲效果,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的行政区划数据,除了行政区划数据&#xff0c…

【Flutter】多语言方案二:GetX 版

介绍 多语言方案:GetX版,需要手动自定义字符串引用常量,优点不需要自己管理状态。 目录 介绍运行效果一、安装 GetX二、使用1.语言配置 在lib/core下创建一个language文件夹,文件夹下创建一个local.dart文件2.language文件夹下创…

程序员自由创业周记#32:新产品构思

程序员自由创业周记#32:新产品构思 新作品 我时常把自己看做一位木匠,有点手艺,能做一些作品养活自己。而 加一、Island Widgets、Nap 就是我的作品。 接下来在持续维护迭代的同时,要开启下一个作品的创造了。 其实早在2022的1…

进程间通信(1)管道

我最近开了几个专栏,诚信互三! > |||《算法专栏》::刷题教程来自网站《代码随想录》。||| > |||《C专栏》::记录我学习C的经历,看完你一定会有收获。||| > |||《Linux专栏》&#xff1…

【C语言】内存函数-memcpy-memmove-memset...用法及实现,沉淀自己!

&#x1f525;博客主页&#x1f525;&#xff1a;【 坊钰_CSDN博客 】 欢迎各位点赞&#x1f44d;评论✍收藏⭐ 目录 1. memcpy函数使用和模拟实现 2. memmove使用和模拟实现 3. memset函数的使用 4. memcmp函数的使用 1. memcpy函数使用和模拟实现 <string.h>-------…

Buildroot系统构建学习笔记(以百问网imx6ullPro开发板为例)

一、Builroot是什么&#xff1f; Buildroot是一组Makefile和补丁&#xff0c;可简化并自动化地为嵌入式系统构建完整的、可启动的Linux环境(包括bootloader、Linux内核、包含各种APP的文件系统)。Buildroot运行于Linux平台&#xff0c;可以使用交叉编译工具为多个目标板构建嵌…

沉思录 (梁实秋)

链接&#xff1a;https://pan.quark.cn/s/8e27564b02f5

Python 检测当前系统的内存及硬盘资源,发送邮件告警通知(告警内容包含告警语句及网卡和系统版本时间)

颜色块 rootbogon:~ 2024-04-18 16:16:40# cat DefaultColor.py ######################################################################### # File Name: DefaultColor.py # Author: eight # Mail: 18847097110163.com # Created Time: Thu 11 Apr 2024 10:…