$l_1$ 正则化问题的近端映射--软阈值函数(soft-thresholding function)

文章目录

    • 1.问题
    • 2.求解
    • 3.直观理解
    • 4.例子
    • 5.总结

1.问题

给定一个闭凸函数 g ( u ) = ∥ u ∥ 1 g(\mathbf{u}) = \|\mathbf{u}\|_1 g(u)=u1(即 l 1 l_1 l1 范数),近端映射的定义为:

prox t ( ∥ ⋅ ∥ 1 ) ( x ) = arg ⁡ min ⁡ u { ∥ u ∥ 1 + 1 2 t ∥ u − x ∥ 2 } . \text{prox}_t(\|\cdot\|_1)(\mathbf{x}) = \arg\min_{\mathbf{u}} \left\{ \|\mathbf{u}\|_1 + \frac{1}{2t} \|\mathbf{u} - \mathbf{x}\|^2 \right\}. proxt(1)(x)=argumin{u1+2t1ux2}.

我们的目标是找到一个点 u \mathbf{u} u,使得上述表达式达到最小值。

为了简化分析,我们可以将优化问题分量化,即对每个分量 x i x_i xi 单独考虑。优化问题可以被分解为:

min ⁡ u i { ∣ u i ∣ + 1 2 t ( u i − x i ) 2 } . \min_{u_i} \left\{ |u_i| + \frac{1}{2t} (u_i - x_i)^2 \right\}. uimin{ui+2t1(uixi)2}.

2.求解

我们将对不同的情况进行讨论,根据 u i u_i ui 的符号,我们可以将绝对值函数 ∣ u i ∣ |u_i| ui 分解为不同的形式:

  1. u i > 0 u_i > 0 ui>0 时, ∣ u i ∣ = u i |u_i| = u_i ui=ui,优化问题变为:

    min ⁡ u i > 0 { u i + 1 2 t ( u i − x i ) 2 } . \min_{u_i > 0} \left\{ u_i + \frac{1}{2t} (u_i - x_i)^2 \right\}. ui>0min{ui+2t1(uixi)2}.

  2. u i < 0 u_i < 0 ui<0 时, ∣ u i ∣ = − u i |u_i| = -u_i ui=ui,优化问题变为:

    min ⁡ u i < 0 { − u i + 1 2 t ( u i − x i ) 2 } . \min_{u_i < 0} \left\{ -u_i + \frac{1}{2t} (u_i - x_i)^2 \right\}. ui<0min{ui+2t1(uixi)2}.

  3. u i = 0 u_i = 0 ui=0时,表达式的值为 1 2 t x i 2 \frac{1}{2t} x_i^2 2t1xi2

我们可以通过对这些情况下的函数求导来找到最优值。

u i > 0 u_i > 0 ui>0时:

d d u i ( u i + 1 2 t ( u i − x i ) 2 ) = 1 + 1 t ( u i − x i ) . \frac{d}{du_i} \left( u_i + \frac{1}{2t} (u_i - x_i)^2 \right) = 1 + \frac{1}{t} (u_i - x_i). duid(ui+2t1(uixi)2)=1+t1(uixi).

令导数等于 0,得到:

1 + 1 t ( u i − x i ) = 0 ⟹ u i = x i − t . 1 + \frac{1}{t} (u_i - x_i) = 0 \implies u_i = x_i - t. 1+t1(uixi)=0ui=xit.

u i < 0 u_i < 0 ui<0 时:

d d u i ( − u i + 1 2 t ( u i − x i ) 2 ) = − 1 + 1 t ( u i − x i ) . \frac{d}{du_i} \left( -u_i + \frac{1}{2t} (u_i - x_i)^2 \right) = -1 + \frac{1}{t} (u_i - x_i). duid(ui+2t1(uixi)2)=1+t1(uixi).

令导数等于 0,得到:

− 1 + 1 t ( u i − x i ) = 0 ⟹ u i = x i + t . -1 + \frac{1}{t} (u_i - x_i) = 0 \implies u_i = x_i + t. 1+t1(uixi)=0ui=xi+t.

根据上面的求导结果,我们需要结合以下条件来得到最优解:

  • x i > t x_i > t xi>t 时,最优解为 u i = x i − t u_i = x_i - t ui=xit
  • x i < − t x_i < -t xi<t时,最优解为 u i = x i + t u_i = x_i + t ui=xi+t
  • ∣ x i ∣ ≤ t |x_i| \leq t xit 时,最优解为 u i = 0 u_i = 0 ui=0

这三种情况可以统一写成软阈值函数的形式:

prox t ( ∥ ⋅ ∥ 1 ) ( x i ) = sign ( x i ) ⋅ max ⁡ ( ∣ x i ∣ − t , 0 ) . \text{prox}_t(\|\cdot\|_1)(x_i) = \text{sign}(x_i) \cdot \max(|x_i| - t, 0). proxt(1)(xi)=sign(xi)max(xit,0).

3.直观理解

软阈值函数的作用是对每个分量进行“收缩”:

  • 如果 x i x_i xi 的绝对值大于阈值 t t t,那么它被缩小 t t t 的量;
  • 如果 x i x_i xi 的绝对值小于或等于 t t t,那么它被直接置为 0。

4.例子

假设 x = ( 3 , − 1 , 0.5 ) \mathbf{x} = (3, -1, 0.5) x=(3,1,0.5) t = 1 t = 1 t=1,那么通过近端映射计算得到:

  • 对于 x 1 = 3 x_1 = 3 x1=3 prox 1 ( ∥ ⋅ ∥ 1 ) ( 3 ) = sign ( 3 ) ⋅ ( 3 − 1 ) = 2 \text{prox}_1(\|\cdot\|_1)(3) = \text{sign}(3) \cdot (3 - 1) = 2 prox1(1)(3)=sign(3)(31)=2
  • 对于 x 2 = − 1 x_2 = -1 x2=1 prox 1 ( ∥ ⋅ ∥ 1 ) ( − 1 ) = sign ( − 1 ) ⋅ ( 1 − 1 ) = 0 \text{prox}_1(\|\cdot\|_1)(-1) = \text{sign}(-1) \cdot (1 - 1) = 0 prox1(1)(1)=sign(1)(11)=0
  • 对于 x 3 = 0.5 x_3 = 0.5 x3=0.5 prox 1 ( ∥ ⋅ ∥ 1 ) ( 0.5 ) = sign ( 0.5 ) ⋅ max ⁡ ( 0.5 − 1 , 0 ) = 0 \text{prox}_1(\|\cdot\|_1)(0.5) = \text{sign}(0.5) \cdot \max(0.5 - 1, 0) = 0 prox1(1)(0.5)=sign(0.5)max(0.51,0)=0

因此,近端映射的结果是 prox 1 ( ∥ ⋅ ∥ 1 ) ( x ) = ( 2 , 0 , 0 ) \text{prox}_1(\|\cdot\|_1)(\mathbf{x}) = (2, 0, 0) prox1(1)(x)=(2,0,0)

在这个例子中,我们可以看到,对于给定的输入 x = ( 3 , − 1 , 0.5 ) \mathbf{x} = (3, -1, 0.5) x=(3,1,0.5),近端映射给出了唯一的输出 ( 2 , 0 , 0 ) (2, 0, 0) (2,0,0)。无论我们如何重复计算,给定相同的 x \mathbf{x} x 和参数 t t t,结果总是相同的。这就是所谓的单值映射,即每一个输入只对应一个唯一的输出。

5.总结

近端映射是从空间 E E E 到自身的单值映射,这意味着它对每个输入点 x \mathbf{x} x 总是返回唯一的、确定的输出点 u \mathbf{u} u。这种特性在优化问题中非常有用,因为它确保了算法在每一步都有明确的更新方向,不会产生多义性。

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

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

相关文章

【机器学习】并行计算(parallel computation)Part2

Asynchronous Parallel Gradient Descent Using Parameter Server 用Parameter Server实现异步并行梯度下降 Parameter Server这种编程模型可以实现异步并行梯度下降&#xff0c;架构采用的是Client-Server&#xff0c;通信方式是Message-passing&#xff0c;同步方式是异步的…

阿里 C++面试,算法题没做出来,,,

我本人是非科班学 C 后端和嵌入式的。在我面试的过程中&#xff0c;竟然得到了阿里​ C 研发工程师的面试机会。因为&#xff0c;阿里主要是用 Java 比较多&#xff0c;C 的岗位比较少​&#xff0c;所以感觉这个机会还是挺难得的。 阿里 C 研发工程师面试考了我一道类似于快速…

2023年4月自考《数据库系统原理》04735试题

目录 一:选择题 二:填空题 三:设计题 四:简答题 五:综合题 一:选择题 1.在数据库系统中&#xff0c;专门用户建立和管理数据的软件是 (书中)P28页 A.DBS B.DB C.DBA D.DBMS 2.通常所说的数据库系统容不包括 (书中)P29页 A.应用程序 B.数据库管理员 C.用户 D.网络环境 …

MD5消息摘要算法学习

MD5&#xff08;Message Digest Algorithm 5&#xff09;是一种广泛使用的哈希函数&#xff0c;它用于生成128位的哈希值&#xff08;也称为消息摘要&#xff09;。MD5主要用于确保信息的完整性&#xff0c;即可以通过对数据生成的哈希值来验证数据是否被篡改。尽管MD5在过去被…

C嘎嘎入门篇:类和对象(3)

前言&#xff1a; 小编在写完了类和对象的1,2以后&#xff0c;下面紧接着开始类和对象3的学习&#xff0c;这一部分的知识是很重要的&#xff0c;各位读者朋友一定要好好的理解这篇文章&#xff0c;现在&#xff0c;代码时刻到。 目录 1.再探构造函数 前瞻 1.1.再探构造函数的特…

Python 基础的类型和操作符

Python特点 易于学习&#xff1a;Python有相对较少的关键字&#xff0c;结构简单&#xff0c;和一个明确定义的语法&#xff0c;学习起来更加简单。易于阅读&#xff1a;Python代码定义的更清晰。易于维护&#xff1a;Python的成功在于它的源代码是相当容易维护的。一个广泛的…

24.4 基于consul服务发现模式

本节重点介绍 : consul 安装consul go代码注册服务&#xff0c;注销服务&#xff0c;获取服务node_exporter改造为consul服务发现在数量比较大时&#xff0c;在注册服务的时候&#xff0c;关闭check&#xff0c;可以降低consul的压力 consul 安装 准备工作 # 下载consul wge…

软考24.10.15每日一练打卡 - 错题笔记

题目来源&#xff1a;https://ruankaodaren.com/ ##1. M公司将其开发的某软件产品注册商标为S&#xff0c;为确保公司在市场竞争中占据地位&#xff0c;M公司对员工进行了保密约束&#xff0c;此情形下&#xff0c;该公司不享有&#xff08; 商标权&#xff09;。 本题题干中提…

打造卓越APP体验:13款界面设计软件推荐

你知道如何选择正确的UI设计软件吗&#xff1f;你知道设计美观的用户界面&#xff0c;及带来良好用户体验的APP&#xff0c;需要什么界面设计软件吗&#xff1f;基于APP界面的功能不同&#xff0c;选择的APP界面设计软件也会有所不同。然而&#xff0c;并不是要把所有APP界面设…

低代码策略量化平台更新|大模型agents生态的一些思考

原创内容第680篇&#xff0c;专注量化投资、个人成长与财富自由。 用户判断星球会员后&#xff0c;会获得10个积分&#xff1a; 当其他用户发布策略&#xff0c;设置为下载需要积分时&#xff1a; 下载策略会扣除相应的积分&#xff0c;扣除的积分属于策略所有者。 策略运行结…

谈谈我的理解:引用计数 vs 可达性分析

前言 在学习垃圾回收机制时&#xff0c;首先需要了解如何判定哪些对象需要被回收&#xff0c;以及如何实现垃圾回收。本文将分享作者对两种常见的垃圾回收判断机制——引用计数法和可达性分析法——的理解与思考&#xff0c;旨在帮助读者更深入地理解这两种机制。 一、引用计数…

结合seata和2PC,简单聊聊seata源码

当前代码分析基于seata1.6.1 整体描述 整体代码流程可以描述为 TM开启全局事务&#xff0c;会调用TC来获取XID。TC在接收到通知后&#xff0c;会生成XID&#xff0c;然后会将当前全局事务保存到global_table表中&#xff0c;并且返回XID。在获取到XID后&#xff0c;会执行业务…

conda创建的新环境不干净!一定要注意!

总是出现明明是不同的环境&#xff0c;但是总是出现包交叉混用的问题&#xff0c;导致跑很多模型总是出现改了这个环境的包&#xff0c;那个环境又用不了了。就像下面这样&#xff0c;明明激活的是pyskl&#xff0c;安装mediapipe包显示在thwircamera中索引到就显示Requirement…

postgresql 安装

一、下载 PostgreSQL: File Browser 下载地址 PostgreSQL: File Browser 上传到服务器,并解压 二、安装依赖 yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel 创建postgresql 和目录 useradd …

『Mysql集群』Mysql高可用集群之主从复制 (一)

Mysql主从复制模式 主从复制有一主一从、主主复制、一主多从、多主一从等多种模式. 我们可以根据它们的优缺点选择适合自身企业情况的主从复制模式进行搭建 . 一主一从 主主复制 (互为主从模式): 实现Mysql多活部署 一主多从: 提高整个集群的读能力 多主一从: 提高整个集群的…

一、定时器的时钟来源

计数器的时钟选择8个时钟源&#xff0c;可以分成4类: 一、来自RCC的内部时钟TIMx CLK 二、芯片内部其他定时器的触发输入ITR 使用某一个定时器作为另外一个定时器的分频 ITR1、ITR2、ITR3和ITR4 三、外部时钟源模式1&#xff1a; 外部捕获引脚上的边沿信号 TI1FP…

【jeston】torch相关环境安装

参考&#xff1a;玩转NVIDIA Jetson &#xff08;25&#xff09;— jetson 安装pytorch和torchvision 我的jeston信息&#xff1a; torch install 安装环境 conda create -n your_env python3.8 conda activate your_envpytorch_for_jeston 安装.whl文件 验证&#xff1…

循环神经网络(Recurrent Neural Network,RNN)

简介&#xff1a;个人学习分享&#xff0c;如有错误&#xff0c;欢迎批评指正。 一. 核心理念 循环神经网络&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;是一类专门用于处理序列数据的神经网络架构。其独特之处在于能够处理输入序列中元素的时序关系&…

STM32定时器

目录 STM32定时器概述 STM32基本定时器 基本定时器的功能 STM32基本定时器的寄存器 STM32通用定时器 STM32定时器HAL库函数 STM32定时器概述 从本质上讲定时器就是“数字电路”课程中学过的计数器&#xff08;Counter&#xff09;&#xff0c;它像“闹钟”一样忠实地为处…

41 C 语言共用体:共用体数据类型、共用体变量、访问共用体成员、与结构体的区别

目录 1 什么是共用体 2 共用体与结构体的区别 3 声明共用体类型 4 声明共用体变量 5 共用体内存分析 6 共用体成员的获取和赋值 7 综合案例 7.1 共同体特点演示 7.2 使用共用体存储学生和教师信息 1 什么是共用体 共用体&#xff08;Union&#xff09;是一种特殊的数据…