机器学习笔记——浅析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.mfbz.cn/a/560083.html

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

相关文章

交换基础配置--单臂路由

1、创建vlan 创建vlan10 创建vlan10和vlan20 创建vlan1到vlan9 vlan1可以不用创建,因为交换机的所有接口默认为vlan1 本实验只需要vlan10和vlan20,以上只是介绍创建vlan的方法。 查看创建的vlan: sw2同理。接着将需要划分vlan的接口划入…

【java】29:IO流

文件: 1 什么是文件: 文件,对我们并不陌生,文件是保存数据的地方,比如大家经常使用的word文档,txt文件,excel文件.….都是文件。它既可以保存一张图片,也可以保持视频,声音.. .2 文…

开源Windows12网页版HTML源码

源码介绍 开源Windows12网页版HTML源码,无需安装就能用的Win12网页版来了Windows12概念版(PoweredbyPowerPoint)后深受启发,于是通过使用HTML、CSS、js等技术做了这样一个模拟板的Windows12系统,并已发布至github进行…

jvm-接口调用排查

问题描述 线上碰到个问题,某个接口调用时间特别长,线上调用接口直接报gateway time out 分析处理 1、先关闭该功能 (该功能是非核心功能) 2、本地起服务连环境排查,发现本地正常。并且线上其他接口正常,…

回归预测 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测

回归预测 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测 目录 回归预测 | Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现SA-BP模拟退火算法优化BP神经网络多变量回归预测&#xff0…

Ansible初识以及安装

1. Ansible应用简述: Ansible基于python语言实现,由Paramiko和PyYAML两个关键模块构建。具有独特的设计理念: 1)安装部署简单 2)管理主机便捷,支持多主机并行管理 3)避免在被管理主机上安装客户…

【GitBlit】Windows搭建Git服务器详细教程

前言 如果公司或个人想在 Windows 环境下搭建私有的 Git 服务器,那么这个开源的 GitBlit 是一个不错的选择。 Gitblit 是一个开源纯 Java 的用于管理、查看和服务 Git 存储库。它是一个小型的托管集中式存储库工具。支持 SSH、HTTP 和 GIT 协议,开箱即…

通过PyCharm平台开发Django应用程序

学会使用命令行工具开发Django应用程序是基础,不过更多的时候还是要借助平台开发工具。目前,最好的Django应用程序开发工具就是jetBrains公司推出的PyCharm平台了。 借助PyCharm开发平台,可以极大提高开发Django应用程序的效率,同…

静态成员与友元,内部类初识

一.静态成员 1.静态成员变量 (1)定义: 类的定义中以静态声明的变量 (2)写法: static 变量声明 (3)注意: 静态成员变量不在对象中,在静态区&#xff0c…

从OWASP API Security TOP 10谈API安全

1.前言 应用程序编程接口(API)是当今应用驱动世界创新的一个基本元素。从银行、零售、运输到物联网、 自动驾驶汽车、智慧城市,API 是现代移动、SaaS 和 web 应用程序的重要组成部分,可以在面向客 户、面向合作伙伴和内部的应用程…

Xinstall:实现注册后自动绑定,提升用户体验

在移动互联网时代,App的注册与绑定流程对于用户体验至关重要。繁琐的注册步骤和手动绑定操作往往会让用户望而却步,导致用户流失。为了解决这一问题,Xinstall品牌推出了注册后自动绑定功能,极大提升了用户体验。 Xinstall的自动…

手写Java设计模式之抽象工厂模式,附源码解读

接上篇,抽象工厂模式将汽车的一些属性可以抽象出来,可以理解为给不同汽车品牌生成时加上不同的特性,如颜色等,具体代码如下: 引入颜色接口: public interface Colour {void fill(); }将颜色与汽车生成品牌…

线性代数基础2矩阵

矩阵是什么 矩阵就是二维数组,下面是一个 m 乘 n 的矩阵,它有 m 行,n 列,每行每列上面都有元素,每个元素都有行标i 和列标 j, a ij 。简称m n矩阵,记作: 注意a11的索引是 A[0,0]。…

Redis入门到通关之数据结构解析-RedisObject

文章目录 ☃️概述☃️源码 ☃️概述 RedisObject 是 Redis 中表示数据对象的结构体,它是 Redis 数据库中的基本数据类型的抽象。在 Redis 中,所有的数据都被存储为 RedisObject 类型的对象。 RedisObject 结构体定义如下(简化版本&#xf…

网络流问题详解

1. 网络最大流 1.1 容量网络和网络最大流 1.1.1 容量网络 设 G(V, E)是一个有向网络,在 V 中指定了一个顶点,称为源点(记为 Vs),以及另一个顶点,称为汇点(记为 Vt);对…

【ds】替换空格

用‘%20’替换空格 var replaceBlank (charArr)> {if (!charArr || charArr.length 0) return var len charArr.lengthlet spaceLen 0for (let i 0; i < len; i) {if (charArr[i] ) {spaceLen}}var extraLen spaceLen * 2 // -> 20% 每一个空格需要增加2个ch…

大型网站系统架构演化实例_4.数据库读写分离

1.数据库读写分离 网站在使用缓存后&#xff0c;使对大部分数据读操作访问都可以不通过数据库就能完成&#xff0c;但是仍有一部分操作&#xff08;缓存访问不命中、缓存过期&#xff09;和全部的写操作都需要访问数据库&#xff0c;在网站的用户达到一定规模后&#x…

Python-VBA函数之旅-getattr函数

目录 一、getattr函数的常见应用场景&#xff1a; 二、getattr函数使用注意事项&#xff1a; 1、getattr函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a;https://blog.csdn.net/ygb_1024?spm1010.21…

大模型应用开发基础

AGI 时代&#xff0c;AI 无处不在&#xff0c;形成新的社会分层&#xff1a; AI 使用者&#xff0c;使用别人开发的 AI 产品AI 产品开发者&#xff0c;设计和开发 AI 产品基础模型相关&#xff0c;训练基础大模型&#xff0c;或为大模型提供基础设施 越向下层&#xff0c;重要…

ISP图像处理pipeline简介2

上一篇文章介绍了ISP pipeline中的3A和镜头传感器校正。现在继续介绍pipeline中的其它流程。 上一篇文章主要讲了镜头&#xff0c;sensor相关的处理流程&#xff0c;pipeline接下来的一步是颜色插值。 sensor直接输出的图片是raw格式&#xff0c;需要经过isp处理之后才是平时常…