一个交替优化问题的求解

优化问题的背景

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

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.xdnf.cn/news/20505.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

Qt 元对象系统

Qt 元对象系统 Qt 元对象系统1. 元对象的概念2. 元对象系统的核心组件2.1 QObject2.2 Q_OBJECT 宏2.3 Meta-Object Compiler (MOC) 3. 信号与槽3.1 基本概念信号与槽的本质信号和槽的关键特征 3.2 绑定信号与槽参数解析断开连接 3.3 标准信号与槽查找标准信号与槽使用示例规则与…

Lua如何连接MySQL数据库?

大家好,我是袁庭新。使用Lua语言如何来连接数据库呢?新哥这篇文章给你安排上。 1 LuaSQL概述 LuaSQL是一个轻量级的Lua到数据库管理系统(DBMS)的接口库,由Kepler Project维护,且是开源的。它提供了一个简…

高级指南:全面解析线上服务器CPU占用过高问题及其解决方案

文章目录 拿到CPU占用高的进程ID通过进程ID拿到CPU占用高的线程ID将线程ID转换为十六进制jstack分析线程栈信息 CPU占用过高的时候要先找出到底是哪个进程下的线程占用内存过高了。 我在线上预先写了一个Java程序,Test.java用于本篇文章实验所用。模拟CPU占用过高时…

单片机智能家居火灾环境安全检测-分享

目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 电路图采用Altium Designer进行设计: 三、实物设计图 四、程序源代码设计 五、获取资料内容 前言 传统的火灾报警系统大多依赖于简单的烟雾探测器或温度传感器,…

打造网页版Ubuntu环境:群晖NAS部署docker-webtop与远程访问指南

文章目录 前言1. 下载Docker-Webtop镜像2. 运行Docker-Webtop镜像3. 本地访问网页版Linux系统4. 群晖NAS安装Cpolar工具5. 配置异地访问Linux系统6. 异地远程访问Linux系统7. 固定异地访问的公网地址 前言 本文旨在详细介绍如何在群晖NAS部署docker-webtop,并结合c…

Python轴承故障诊断 (19)基于Transformer-BiLSTM的创新诊断模型

往期精彩内容: Python-凯斯西储大学(CWRU)轴承数据解读与分类处理 Pytorch-LSTM轴承故障一维信号分类(一)-CSDN博客 Pytorch-CNN轴承故障一维信号分类(二)-CSDN博客 Pytorch-Transformer轴承故障一维信号分类(三)-CSDN博客 三十多个开源…

STM32设计学生宿舍监测控制系统-分享

目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 电路图采用Altium Designer进行设计: 三、实物设计图 四、程序源代码设计 五、获取资料内容 前言 本项目旨在利用STM32单片机为核心,结合传感器技术、无线通信技…

英伟达 Isaac Sim仿真平台体验

一、产品名称及版本 Isaac Sim 是由 NVIDIA 开发的一款基于物理模拟的机器人仿真平台,旨在为机器人开发者和研究人员提供一个高效、真实的仿真环境。Isaac Sim 基于 NVIDIA 的 Omniverse 平台,结合了强大的图形渲染、物理引擎和深度学习能力,…

利用寄存器方式,点亮led3最小板

作业:利用寄存器方式,点亮led3小灯 1.通过观察原理图, led3, 是PA8, 一段接3.3v, 一端接io口, 所以PA8端口输出低电平, 就可以让小灯点亮了 2.利用keil创建最小工程 点击跳转博客 3.按照库函数的配置方式 #include "stdint.h" #include "stm32f10x.h" …

Helius:从数据出发,衡量 Solana 的真实去中心化程度

撰文:Lostin,Helius 编译:Yangz,Techub News 摘要 截至 Epoch 685,Solana 有 4514 个节点,包括 1414 个验证者和 3100 个 RPC。没有哪个验证者控制的质押份额超过 3.2%。 中本聪系数(NC&#…

SpringBoot 增量部署发布(第2版)

一、背景介绍 书接上一篇《SpringBoot 增量部署发布_springboot增量部署-CSDN博客》,上一篇内容实现了将静态资源与jar分离,但是即使是打包成**-exec.jar,解压jar文件,可以看到里面包含了static,resource目录&#xf…

一篇保姆式centos/ubantu安装docker

前言: 本章节分别演示centos虚拟机,ubantu虚拟机进行安装docker。 上一篇介绍:docker一键部署springboot项目 一:centos 1.卸载旧版本 yum remove docker docker-client docker-client-latest docker-common docker-latest doc…

结构体的深入学习:内存对齐等

结构体的创建 //结构体类型的定义//学生 struct Stu {//学生的相关属性char name[20];int age; };结构体变量的创建 struct Stu {//学生的相关属性char name[20];int age; }s1, s2;//s1,s2全局变量int main() {struct Stu s3;//s3是局部变量return 0; }匿名结构体…

QString 转 char*问题与方法(const_cast的使用问题)

1、背景:今天有QString的变量,将QString的值传递给void func(char * ptr),于是就有了类似下面这一段离谱的代码 当时我还在想为什么var的值为空了,为什么呢。 2、原因:就是因为右边函数返回的是一个临时指针对象,给到了右边&…

【Redis】Redis实现的消息队列

一、用list实现【这是数据类型所以支持持久化】 消息基于redis存储不会因为受jvm内存上限的限制,支持消息的有序性,基于redis的持久化机制,只支持单一消费者订阅,无法避免消息丢失。 二、用PubSub【这不是数据类型,是…

PHP开发全新UI多语言多商户跨境商城源码、支持一键铺货、一键下单

商家可在平台产品库选品,一键铺货到自己商店,用户下单后,商家提交订单给平台,扣除商家供货价所需余额,提交后由平台发货,收货后订单金额结算给商家. 源码开源完整,一切能跑通的逻辑流程都可以二…

Matlab实现北方苍鹰优化算法优化随机森林算法模型 (NGO-RF)(附源码)

目录 1.内容介绍 2.部分代码 3.实验结果 4.内容获取 1内容介绍 北方苍鹰优化算法(Northern Goshawk Optimization, NGO)是一种新颖的群智能优化算法,灵感源自北方苍鹰捕食时的策略。该算法通过模拟苍鹰的搜寻、接近和捕捉猎物的行为模式&am…

【TQ2440】01 ADS1.2 安装

TQ2440是一款基于Samsung S3C2440处理器的ARM9开发板,广泛应用于嵌入式系统学习和开发 TQ2440 开发配套资料 https://pan.baidu.com/s/1cMMK9HQdq1Ou8-K9fnw-DA?pwd5y5r ADS1.2安装包链接:https://pan.baidu.com/s/1BBJb4jYKLOYXIMD86WCycA?pwdf7zr 1、…

不完全微分PID控制算法

不完全微分PID控制算法是一种改进的PID控制方法,主要针对PID控制中的微分环节对高频噪声敏感的问题。通过对微分项进行优化和改造,减少其对噪声的放大作用,同时保留对系统动态变化的响应能力。 不完全微分PID控制原理 不完全微分的核心思想是…

IntelliJ IDEA常用快捷键

文章目录 环境快捷键外观编辑移动光标提示查找Live Templates列操作调试运行 环境 Ubuntu 24.04.1IntelliJ IDEA 2024.1.6 快捷键 外观 Alt 1:打开/关闭“项目”窗口(即左边的导航窗口) Alt 4:打开/关闭“运行”窗口 Alt …