一个交替优化问题的求解

优化问题的背景

给出的优化目标是一个多变量的函数,形式如下:

min ⁡ W , b , Y ∈ I n d , Z ∥ X T W + 1 b T − Y ∥ F 2 + γ ∥ W ∥ F 2 + λ t r ( Z T 1 1 T Z ) + μ 2 ∥ Y − Z + 1 μ Λ ∥ F 2 \min_{W,b,Y\in Ind,Z}\left\|X^TW+\mathbf{1}b^T-Y\right\|_F^2+\gamma\|W\|_F^2 \\ +\lambda\mathrm{tr}\left(Z^T\mathbf{1}\mathbf{1}^TZ\right)+\frac{\mu}{2}\left\|Y-Z+\frac{1}{\mu}\Lambda\right\|_F^2 W,b,YInd,Zmin XTW+1bTY F2+γWF2+λtr(ZT11TZ)+2μ YZ+μ1Λ F2

这里的目标函数包括多项:

  1. 第一项 ∥ X T W + 1 b T − Y ∥ F 2 \|X^TW + \mathbf{1}b^T - Y\|_F^2 XTW+1bTYF2

    • 描述的是 Y Y Y X T W + 1 b T X^TW + \mathbf{1}b^T XTW+1bT 的差异(平方 Frobenius 范数)。
    • W W W b b b 是待优化的线性模型参数, Y Y Y 是一个表示分类结果的离散矩阵。
  2. 第二项 γ ∥ W ∥ F 2 \gamma\|W\|_F^2 γWF2

    • W W W 的正则化项,用于控制模型复杂度,防止过拟合。
  3. 第三项 λ t r ( Z T 1 1 T Z ) \lambda\mathrm{tr}\left(Z^T\mathbf{1}\mathbf{1}^TZ\right) λtr(ZT11TZ)

    • 控制 Z Z Z 的某种稀疏性(或行一致性),其中 1 \mathbf{1} 1 是全 1 的列向量, t r \mathrm{tr} tr 表示迹运算。
  4. 第四项 μ 2 ∥ Y − Z + 1 μ Λ ∥ F 2 \frac{\mu}{2}\left\|Y-Z+\frac{1}{\mu}\Lambda\right\|_F^2 2μ YZ+μ1Λ F2

    • 表示 Y Y Y Z Z Z 的一致性约束, Λ \Lambda Λ 是拉格朗日乘子, μ \mu μ 是一个惩罚参数。
    • 这种形式通常出现在交替方向乘子法(ADMM)中,用于逼近等式约束 Y ≈ Z Y \approx Z YZ

固定 W W W, b b b, Z Z Z 的优化问题

重写优化问题

在固定 W W W, b b b, Z Z Z 的情况下,优化问题只需针对 Y Y Y 来求解。将目标函数中与 Y Y Y 相关的部分提取出来:

min ⁡ Y ∈ I n d ∥ X T W + 1 b T − Y ∥ F 2 + μ 2 ∥ Y − Z + 1 μ Λ ∥ F 2 \min_{Y\in Ind} \|X^TW+\mathbf{1}b^T - Y\|_F^2 + \frac{\mu}{2}\|Y - Z + \frac{1}{\mu}\Lambda\|_F^2 YIndminXTW+1bTYF2+2μYZ+μ1ΛF2

展开平方项:

∥ X T W + 1 b T − Y ∥ F 2 = ∥ X T W + 1 b T ∥ F 2 − 2 ⟨ X T W + 1 b T , Y ⟩ + ∥ Y ∥ F 2 \|X^TW+\mathbf{1}b^T - Y\|_F^2 = \|X^TW+\mathbf{1}b^T\|_F^2 - 2\langle X^TW+\mathbf{1}b^T, Y \rangle + \|Y\|_F^2 XTW+1bTYF2=XTW+1bTF22XTW+1bT,Y+YF2

∥ Y − Z + 1 μ Λ ∥ F 2 = ∥ Y ∥ F 2 − 2 ⟨ Y , Z − 1 μ Λ ⟩ + ∥ Z − 1 μ Λ ∥ F 2 \|Y - Z + \frac{1}{\mu}\Lambda\|_F^2 = \|Y\|_F^2 - 2\langle Y, Z - \frac{1}{\mu}\Lambda \rangle + \|Z - \frac{1}{\mu}\Lambda\|_F^2 YZ+μ1ΛF2=YF22Y,Zμ1Λ+Zμ1ΛF2

将它们代入优化目标并合并常数项,最终可以化简为:

min ⁡ Y ∈ I n d ∥ Y − V ∥ F 2 + const. \min_{Y\in Ind} \|Y - V\|_F^2 + \text{const.} YIndminYVF2+const.

其中,常数部分与 Y Y Y 无关, V V V 是定义为:

V = 2 2 + μ ( X T W + 1 b T ) + 1 2 + μ ( μ Z − Λ ) V = \frac{2}{2+\mu}\left(X^TW+\mathbf{1}b^T\right) + \frac{1}{2+\mu}(\mu Z - \Lambda) V=2+μ2(XTW+1bT)+2+μ1(μZΛ)


进一步的离散约束

矩阵 Y ∈ I n d Y \in Ind YInd 表示一个类别分配矩阵:

  1. 每个元素 y i k ∈ { 0 , 1 } y_{ik} \in \{0,1\} yik{0,1} 表示是否将样本 i i i 分配给类别 k k k
  2. 每一行的和为 1,即 ∑ k = 1 c y i k = 1 \sum_{k=1}^c y_{ik} = 1 k=1cyik=1,表示每个样本必须且只能属于一个类别。

在这种情况下,优化目标可以写成:

min ⁡ Y ∑ i = 1 n ∑ k = 1 c ( y i k − v i k ) 2 , s . t . y i k ∈ { 0 , 1 } , ∑ k = 1 c y i k = 1 \min_{Y} \sum_{i=1}^n \sum_{k=1}^c (y_{ik} - v_{ik})^2, \quad s.t. \quad y_{ik} \in \{0,1\}, \sum_{k=1}^c y_{ik} = 1 Ymini=1nk=1c(yikvik)2,s.t.yik{0,1},k=1cyik=1


如何求解?

由于每行的 y i : y_{i:} yi: 中只有一个值为 1,其他为 0,问题可以通过遍历(traversal strategy)逐行解决:

每一行的优化

对固定的第 i i i 行,目标是:

min ⁡ y i : ∑ k = 1 c ( y i k − v i k ) 2 , s . t . y i k ∈ { 0 , 1 } , ∑ k = 1 c y i k = 1 \min_{y_{i:}} \sum_{k=1}^c (y_{ik} - v_{ik})^2, \quad s.t. \quad y_{ik} \in \{0,1\}, \sum_{k=1}^c y_{ik} = 1 yi:mink=1c(yikvik)2,s.t.yik{0,1},k=1cyik=1

通过观察,这实际上是选择一个使 v i k v_{ik} vik 最大的 k k k。因此,最优解为:

y i k = { 1 , if  k = arg ⁡ max ⁡ k { v i k } k = 1 c 0 , otherwise. y_{ik} = \begin{cases} 1, & \text{if } k = \arg\max_k \{v_{ik}\}_{k=1}^c \\ 0, & \text{otherwise.} \end{cases} yik={1,0,if k=argmaxk{vik}k=1cotherwise.

换句话说,对于每个样本 i i i Y Y Y 的每一行都会被设置为一个独热编码(one-hot encoding),对应于 v i k v_{ik} vik 最大的类别索引。


迭代终止条件

通过交替优化(如 ADMM),我们不断更新 W , b , Y , Z W, b, Y, Z W,b,Y,Z Λ \Lambda Λ。对 Y Y Y 的更新迭代直到满足以下条件之一:

  1. Y − Z → 0 Y - Z \to 0 YZ0:表示 Y Y Y Z Z Z 的一致性达到要求。
  2. Λ \Lambda Λ 不再更新:拉格朗日乘子停止变化,说明约束收敛。

这是因为优化问题的目标函数和约束条件直接导致了这种选择。让我们详细分析其中的数学逻辑。


目标函数的形式

我们需要解决的问题是:

min ⁡ y i k ∑ i = 1 n ∑ k = 1 c ( y i k − v i k ) 2 \min_{y_{ik}} \sum_{i=1}^n \sum_{k=1}^c (y_{ik} - v_{ik})^2 yikmini=1nk=1c(yikvik)2

约束条件
  1. 每个元素 y i k ∈ { 0 , 1 } y_{ik} \in \{0, 1\} yik{0,1},表示 y i k y_{ik} yik 要么是 0,要么是 1。
  2. 每行 y i : = ( y i 1 , y i 2 , … , y i c ) y_{i:} = (y_{i1}, y_{i2}, \dots, y_{ic}) yi:=(yi1,yi2,,yic) 中,只有一个值是 1,即:
    ∑ k = 1 c y i k = 1 \sum_{k=1}^c y_{ik} = 1 k=1cyik=1

换句话说,矩阵 Y Y Y 的每一行是一个独热编码(one-hot encoding),表示样本 i i i 属于某个类别 k k k


分解为逐行优化

在给定约束下,优化目标可以逐行独立解决,因为每一行 y i : y_{i:} yi: 的变量互不影响。这意味着我们可以逐行求解:

min ⁡ y i : ∑ k = 1 c ( y i k − v i k ) 2 , subject to  y i k ∈ { 0 , 1 } , ∑ k = 1 c y i k = 1. \min_{y_{i:}} \sum_{k=1}^c (y_{ik} - v_{ik})^2, \quad \text{subject to } y_{ik} \in \{0, 1\}, \sum_{k=1}^c y_{ik} = 1. yi:mink=1c(yikvik)2,subject to yik{0,1},k=1cyik=1.

逐行优化的含义

对第 i i i 行来说,目标是:

min ⁡ y i : ∑ k = 1 c ( y i k − v i k ) 2 \min_{y_{i:}} \sum_{k=1}^c (y_{ik} - v_{ik})^2 yi:mink=1c(yikvik)2

由于 y i : y_{i:} yi: 的每个元素 y i k y_{ik} yik 只能取值 0 或 1,并且约束 ∑ k = 1 c y i k = 1 \sum_{k=1}^c y_{ik} = 1 k=1cyik=1 确保其中只有一个值为 1,这就意味着我们只需要选择一个类别 k k k,使得目标函数对这一行的贡献最小。


目标函数最小化的选择

观察目标函数中的每一行优化问题:

∑ k = 1 c ( y i k − v i k ) 2 \sum_{k=1}^c (y_{ik} - v_{ik})^2 k=1c(yikvik)2

  1. y i k = 1 y_{ik} = 1 yik=1 时, ( y i k − v i k ) 2 = ( 1 − v i k ) 2 (y_{ik} - v_{ik})^2 = (1 - v_{ik})^2 (yikvik)2=(1vik)2
  2. y i k = 0 y_{ik} = 0 yik=0 时, ( y i k − v i k ) 2 = v i k 2 (y_{ik} - v_{ik})^2 = v_{ik}^2 (yikvik)2=vik2

为了满足约束,每行只能有一个 y i k = 1 y_{ik} = 1 yik=1,其他 y i k = 0 y_{ik} = 0 yik=0。因此,优化目标可以等价于:

min ⁡ k ( 1 − v i k ) 2 + ∑ j ≠ k v i j 2 \min_k (1 - v_{ik})^2 + \sum_{j \neq k} v_{ij}^2 kmin(1vik)2+j=kvij2

因为 ∑ j ≠ k v i j 2 \sum_{j \neq k} v_{ij}^2 j=kvij2 对所有 k k k 都是相同的(只影响固定的其他列),所以只需要最小化 ( 1 − v i k ) 2 (1 - v_{ik})^2 (1vik)2,也就是最大化 v i k v_{ik} vik


总结

最终的逐行解可以表述为:

y i k = { 1 , if  k = arg ⁡ max ⁡ k { v i k } k = 1 c , 0 , otherwise. y_{ik} = \begin{cases} 1, & \text{if } k = \arg\max_k \{v_{ik}\}_{k=1}^c, \\ 0, & \text{otherwise.} \end{cases} yik={1,0,if k=argmaxk{vik}k=1c,otherwise.

这实际上是找到第 i i i 行中 v i k v_{ik} vik 最大的那个 k k k,将 y i k y_{ik} yik 设置为 1,其他设置为 0。


直观解释

  1. v i k v_{ik} vik 表示优化中一个候选类别 k k k 对样本 i i i 的分数。
  2. 为了让 y i : y_{i:} yi: 逼近 v i : v_{i:} vi:,自然选择分数最大的类别 k k k 为 1,其他为 0。

因此,这就是为什么选择 arg ⁡ max ⁡ k v i k \arg\max_k v_{ik} argmaxkvik 的原因!

总结

  1. 给出的优化问题包含连续和离散变量,目标是找到一个满足多项约束的最优解。
  2. 在固定部分变量后,针对离散变量 Y Y Y 的优化被转化为一个简单的行级别问题。
  3. 对每行的优化,通过找到 v i k v_{ik} vik 的最大值索引实现,得到一个独热编码解。
  4. 迭代更新 Y Y Y 直到收敛或满足终止条件。

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

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

相关文章

freertos任务调度学习

首先创建任务,创建好任务后,开启任务调度器,任务才能执行 1.开启任务调度器 2.启动第一个任务 3.任务切换

初始ArKTs 2

一.类 1.1 声明 类声明引入一个新类型,并定义其字段、方法和构造函数。 定义类后,可以使用关键字new创建实例 可以使用对象字面量创建实例 在以下示例中,定义了Person类,该类具有字段firstname和lastname、构造函数和方法full…

在云服务器搭建 Docker

操作场景 本文档介绍如何在腾讯云云服务器上搭建和使用 Docker。本文适用于熟悉 Linux 操作系统,刚开始使用腾讯云云服务器的开发者。如需了解更多关于 Docker 相关信息,请参见 Docker 官方。 说明: Windows Subsystem for Linux&#xff…

【IDER、PyCharm】免费AI编程工具完整教程:ChatGPT Free - Support Key call AI GPT-o1 Claude3.5

文章目录 CodeMoss 简介CodeMoss 的模型集成如何安装和配置 CodeMossIDER 插件安装步骤 CodeMoss 的实战使用AI 问答功能代码优化与解释优化这段代码解释这段代码 文件上传与对话联网查询与 GPT 助手联网查询GPT 助手 提升开发效率的最佳实践结语更多文献 CodeMoss 简介 CodeM…

编译报错:protoc did not exit cleanly. Review output for more information.

目录标题 解决“protoc did not exit cleanly”的报错问题检查.proto文件的语法 解决“protoc did not exit cleanly”的报错问题 今天做的项目需要用到grpc,然后需要编写proto然后编译后实现grpc的具体方法! 结果编译的时候报了protoc did not exit cl…

语义分割(semantic segmentation)

语义分割(semantic segmentation) 文章目录 语义分割(semantic segmentation)图像分割和实例分割代码实现 语义分割指将图片中的每个像素分类到对应的类别,语义区域的标注和预测是 像素级的,语义分割标注的像素级的边界框显然更加精细。应用&#xff1a…

【竞技宝】LOL-传奇杯:姿态飞机TP绕后一锤定音

北京时间2024年11月19日,英雄联盟第二届传奇杯正在如火如荼的进行之中。昨天迎来小组赛第四个比赛日,本日一共进行了七场小组赛的对决,那么在昨日上半场的四场比赛中,登场的各支队伍都取得了什么样的表现呢?接下来小宝为大家带来小组赛day4上半场的比赛战报。 OP(宁王队) 0-1 …

网络安全之信息收集-实战-1

请注意,本文仅供合法和授权的渗透测试使用,任何未经授权的活动都是违法的。 实战:补天公益src“吉林通用航空职业技术学院” 奇安信|用户登录https://www.butian.net/Loo/submit?cid64918 域名或ip:https://www.jlth…

【后端】版本控制

版本控制 1. 什么是版本控制? 版本控制(Revision control)是一种在开发的过程中用于管理我们对文件、目录或工程等内容的修改历史,方便查看更改历史记录,备份以便恢复以前的版本的软件工程技术。简单来说就是用于管理…

【YOLOv11改进[注意力]】引入DA、FCA、SA、SC、SE + 含全部代码和详细修改方式

本文将进行在YOLOv11中引入DA、FCA、SA、SC、SE魔改v11,文中含全部代码、详细修改方式。助您轻松理解改进的方法。 一 DA、FCA、SA、SC、SE ① DA 论文:Dual Attention Network for Scene Segm

【数据结构】链表解析与实战运用(1.8w字超详细解析)

目录 引言 链表概念及结构 链表的优缺点 链表的分类 1.单向或者双向 2.带头或者不带头 3.带循环或者非循环 单链表接口函数的实现 接口函数一览 创建空节点&打印链表 尾部插入 头部插入 尾部删除 头部删除 查找 在pos位置之后插入节点 在pos位置之前插入节…

(微信小程序)基于Spring Boot的校园失物招领平台的设计与实现(vue3+uniapp+mysql)

💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

【Linux课程学习】:Linux的调试器-gdb的使用(常见指令,cgdb)

🎁个人主页:我们的五年 🔍系列专栏:Linux课程学习 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 目录 安装cgdb: 基本环境 1检查gdb是否…

【WRF-Urban】URBPARM.TBL参数解释及内容

【WRF-Urban】URBPARM.TBL参数解释及内容 URBPARM.TBL参数解释URBPARM.TBL参考 参考WRF-Urban教程-Urban Canopy Model URBPARM.TBL参数解释 各个城市相应的城市参数差异很大(例如,有些城市的道路可能很宽但建筑物很矮,而其他城市的道路可…

DBeaver 连接 OceanBase Oracle 租户

DBeaver 是一款通用的数据库工具软件,支持任何具有JDBC驱动程序的数据库。DBeaver 需要 Java 运行环境的支持。截稿时 DBeaver 24.0.0 版本默认提供的 OceanBase 驱动是连接 MySQL 的,想连接 Oracle 租户需要新建一个驱动器使用。 下载数据库驱动包 1、…

使用 Prompt API 与您的对象聊天

tl;dr:GET、PUT、PROMPT。现在,可以使用新的 PromptObject API 仅使用自然语言对存储在 MinIO 上的对象进行总结、交谈和提问。在本文中,我们将探讨这个新 API 的一些用例以及代码示例。 赋予动机: 对象存储和 S3 API 的无处不在…

23种设计模式-访问者(Visitor)设计模式

文章目录 一.什么是访问者模式?二.访问者模式的结构三.访问者模式的应用场景四.访问者模式的优缺点五.访问者模式的C实现六.访问者模式的JAVA实现七.代码解释八.总结 类图: 访问者设计模式类图 一.什么是访问者模式? 访问者模式(…

【开源免费】基于Vue和SpringBoot的在线考试系统(附论文)

本文项目编号 T 624 ,文末自助获取源码 \color{red}{T624,文末自助获取源码} T624,文末自助获取源码 网络的广泛应用给生活带来了十分的便利。所以把在线考试管理与现在网络相结合,利用java技术建设在线考试系统,实现…

【H2O2|全栈】MySQL的云端部署

目录 前言 开篇语 准备工作 MySQL移除 为什么需要移除? 移除操作 Yum仓库 yum简介 rpm安装 yum库安装 MySQL安装 使用yum安装 开机自启动 检查运行状态 MySQL配置 初始密码 ​编辑登录 修改root密码 退出MySQL 字符集配置 重启数据库 结束语 …

DAY30|贪心算法Part04|LeetCode:452. 用最少数量的箭引爆气球、435. 无重叠区间、763.划分字母区间

目录 LeetCode:452. 用最少数量的箭引爆气球 基本思路 C代码 LeetCode:435. 无重叠区间 基本思路 C代码 LeetCode:763.划分字母区间 基本思路 C代码 LeetCode:452. 用最少数量的箭引爆气球 力扣代码链接 文字讲解:LeetCode:452. 用最少数量的箭引爆气球 视…