线性代数|机器学习-P12Ax=b条件下x最小值问题

文章目录

  • 1. Ax=b下的最值问题-图形转换
  • 2. Gram-Schmidt 标准形
  • 3. 迭代法-Krylov子空间法

1. Ax=b下的最值问题-图形转换

假设我们有一个直线方程如下:
3 x 1 + 4 x 2 = 1 \begin{equation} 3x_1+4x_2=1 \end{equation} 3x1+4x2=1
在二维平面上,各个范数如下:
min ⁡ ∣ ∣ x ∣ ∣ 1 = ∣ x 1 ∣ + ∣ x 2 ∣ , min ⁡ ∣ ∣ x ∣ ∣ 2 = x 1 2 + x 2 2 , min ⁡ ∣ ∣ x ∣ ∣ ∞ = max ⁡ ∣ x i ∣ \begin{equation} \min||x||_1=|x_1|+|x_2|,\min||x||_2=x_1^2+x_2^2,\min||x||_{\infty}=\max|x_i| \end{equation} min∣∣x1=x1+x2,min∣∣x2=x12+x22,min∣∣x=maxxi

  • L1范数是一个膨胀的钻石形状,L2范数是一个膨胀的圆形, L ∞ L_{\infty} L是一个膨胀的正方形
    在这里插入图片描述
  • 那么在Ax=b约束条件下的最小值问题可以转换为范数图像与约束条件 A x = b Ax=b Ax=b组成图像的第一个相交的点。
  • L1与直线相交A点,L2与直线相交B点,L3与直线相交C点,这样就可以通过几何图形的方式求得在约束条件下的最小值问题了,用函数图像代替约束条件方程Ax=b,用范数表示不同情况下的最值问题。真神奇!!!
    在这里插入图片描述

2. Gram-Schmidt 标准形

通过Gram-Schmidt 可以将矩阵A分解如下 A = Q R A=QR A=QR
我们有一个矩阵A的列向量组,发现矩阵A的列向量之间不是相互正交的,如果列向量之间不是相互正交独立,那么就无法用最简单的形式去表达其他的向量,所以我们就用Gram-Schmidt,将原来的 a 1 , a 2 a_1,a_2 a1,a2转换成 q 1 , q 2 , q 1 ⊥ q 2 , ∣ q 1 ∣ = ∣ q 2 ∣ = 1 q_1,q_2,q_1\perp q_2,|q_1|=|q_2|=1 q1,q2,q1q2,q1=q2=1 ,Gram-Schmidt用的方法很简单,

  • 先选择一个向量 a 1 a_1 a1,直接以这个向量作为第一个方向,正交化得到 q 1 q_1 q1
    q 1 = a 1 ∣ a 1 ∣ , ∣ q 1 ∣ = 1 \begin{equation} q_1=\frac{a_1}{|a_1|},|q_1|=1 \end{equation} q1=a1a1,q1=1
  • 现在 a 2 a_2 a2 q 1 q_1 q1不正交,我们就要将 a 2 a_2 a2投影到 q 1 q_1 q1上得到投影向量 p 2 p_2 p2,再用 a 2 − p 2 = A 2 a_2-p_2=A_2 a2p2=A2
    q 1 T a 2 = ∣ q 1 ∣ ∣ a 2 ∣ cos ⁡ θ = ∣ a 2 ∣ cos ⁡ θ , a 2 在 q 1 上的投影长度出来了 \begin{equation} q_1^Ta_2=|q_1||a_2|\cos{\theta}=|a_2|\cos{\theta},a_2在q_1上的投影长度出来了 \end{equation} q1Ta2=q1∣∣a2cosθ=a2cosθ,a2q1上的投影长度出来了
  • 投影长度乘以单位向量得到 p 2 p_2 p2,向量相减得到 A 2 A_2 A2
    p 2 = q 1 T a 2 q 1 , A 2 = a 2 − p 2 → A 2 = a 2 − q 1 T a 2 q 1 → q 2 = A 2 ∣ A 2 ∣ \begin{equation} p_2=q_1^Ta_2q_1,A_2=a_2-p_2\rightarrow A_2=a_2-q_1^Ta_2q_1\rightarrow q_2=\frac{A_2}{|A_2|} \end{equation} p2=q1Ta2q1,A2=a2p2A2=a2q1Ta2q1q2=A2A2
  • 同理 q 3 q_3 q3就是将向量 a 3 a_3 a3减去 a 3 a_3 a3 q 1 , q 2 q_1,q_2 q1,q2上的投影向量 p 2 , p 3 p_2,p_3 p2,p3即可得到 A 3 A_3 A3
    p 3 = q 1 T a 3 q 1 , p 2 = q 2 T a 3 q 2 → A 3 = a 3 − q 1 T a 3 q 1 − p 2 = q 2 T a 3 q 2 \begin{equation} p_3=q_1^Ta_3q_1,p_2=q_2^Ta_3q_2\rightarrow A_3=a_3-q_1^Ta_3q_1-p_2=q_2^Ta_3q_2 \end{equation} p3=q1Ta3q1,p2=q2Ta3q2A3=a3q1Ta3q1p2=q2Ta3q2
    所以Gram-Schmidt 的本质是从A中的列向量中不断抽取向量 a 1 , a 2 , ⋯ , a n a_1,a_2,\cdots,a_n a1,a2,,an通过不断迭代的形式,得到一组标准正交向量组 q 1 , q 2 , ⋯ , q n q_1,q_2,\cdots,q_n q1,q2,,qn,
  • 但我们发现一个问题,我们怎么选择向量 a 1 , a 2 , ⋯ , a n a_1,a_2,\cdots,a_n a1,a2,,an呢?如果 a 1 , a 2 , ⋯ , a n a_1,a_2,\cdots,a_n a1,a2,,an太相关了怎么办,这样正交化的效果不是很好,如下所示:我们希望选择好的向量 a 12 , a 22 a_{12},a_{22} a12,a22而不是相关性太大的 a 11 , a 21 a_{11},a_{21} a11,a21
    在这里插入图片描述
  • 那怎么做了,我们只需要在每次选择新的向量的时候,选择投影p较小的向量作为正交向量,比如我们先找到 a 1 → q 1 a_1\rightarrow q_1 a1q1再找 q 2 q_2 q2 过程中我们需要筛选,将 a 2 , a 3 , ⋯ , a n a_2,a_3,\cdots,a_n a2,a3,,an都投影到 q 1 q_1 q1上,看看哪个投影长度最小,我们就选择这个作为 A 2 → q 2 A_2\rightarrow q_2 A2q2
  • p 21 , p 31 , ⋯ , p n 1 p_{21},p_{31},\cdots,p_{n1} p21,p31,,pn1中选择最小的一个作为 A 2 → q 2 A_2\rightarrow q_2 A2q2
    p 21 = q 1 T a 2 q 1 , p 31 = q 1 T a 3 q 1 , ⋯ p n 1 = q 1 T a n q 1 \begin{equation} p_{21}=q_1^Ta_2q_1,p_{31}=q_1^Ta_3q_1,\cdots p_{n1}=q_1^Ta_nq_1 \end{equation} p21=q1Ta2q1,p31=q1Ta3q1,pn1=q1Tanq1
  • 同理依次选择 q 3 , q 4 , ⋯ , q n q_3,q_4,\cdots,q_n q3,q4,,qn,这就是改进后的Gram-Schmidt

3. 迭代法-Krylov子空间法

  • 背景: 当矩阵A太大并且稀疏情况下,我们需要用迭代的方法求解 A x = b Ax=b Ax=b方程
    直接引用大神的笔记,具体后续整理

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

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

相关文章

DDMA信号处理以及数据处理的流程---原始数据生成

Hello,大家好,我是Xiaojie,好久不见,欢迎大家能够和Xiaojie一起学习毫米波雷达知识,Xiaojie准备连载一个系列的文章—DDMA信号处理以及数据处理的流程,本系列文章将从目标生成、信号仿真、测距、测速、cfar…

LLVM 后端执行流程

异构计算程序工作流程 图4-1中的LLVM后端的主要功能是代码生成,其中包括若干指令生成分析转换pass,将LLVM IR 转换为特定目标架构的机器代码 LLVM 流水线结构 输入指令经过图4-2中的各个阶段,从最初的LLVM IR,逐步演化为Selectio…

管理数据必备;侦听器watch用法详解,vue2与vue3中watch的变化与差异

目录 一、侦听器(watch)是什么? 二、Vue2中的watch(Options API) 2.1、函数式写法 2.2、对象式写法 ①对象式基础写法 ②回调函数handler ③deep属性 ④immediate属性 三、Vue3中的watch 3.1、向下兼容&#xff…

两句话让LLM逻辑推理瞬间崩溃!!

一道简单的逻辑问题,竟让几乎所有的LLM全军覆没? 对于人类来说,这个名为「爱丽丝梦游仙境」(AIW)的测试并不算很难—— 「爱丽丝有N个兄弟,她还有M个姐妹。爱丽丝的兄弟有多少个姐妹?」 稍加思考…

LeetCode1143最长公共子序列

题目描述 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符&#xff08…

redis windos修复版本

遇到的问题: Django的channel插件连接安装在windows上的redis报错: unknown command BZPOPMIN, channels-redis版本和redis不兼容导致.解决方案: 更新Redis版本. 微软官方维护的 Redishttps://github.com/microsoftarchive/redis/releases 2016年后就不更新了, 版本停留在了3.x…

学生信息管理(C语言)

学生信息管理 (1)问题描述 学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能: 系统以菜单方式工作学生信息录入功能(学生信息用文件保存)---输入学生信息浏览功能---输出查询、排序功能---算法1、…

前后端实现文件上传进度条-实时进度

后端接口代码&#xff1a; PostMapping("/upload")public ResponseEntity<String> handleFileUpload(RequestParam("file") MultipartFile file) {try {// 获取文件名String fileName file.getOriginalFilename();// 创建上传目标路径Path targetPa…

CentOS7 MySQL5.7.35主从 不停机搭建 以及配置

如需安装MySQL&#xff0c;参照MySQL 5.7.35 安装教程 https://blog.csdn.net/CsethCRM/article/details/119418841一、主&从 环境信息准备 1.1.查看硬盘信息&#xff0c;确保磁盘够用&#xff08;主&从&#xff09; df -h1.2.查看内存信息 &#xff08;主&从&am…

C++ 贪心算法——跳跃游戏、划分字母区间

一&#xff1a;跳跃游戏 55. 跳跃游戏 题目描述&#xff1a;给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1…

解决阿里云的端口添加安全组仍然无法扫描到

发现用线上的网站扫不到这个端口&#xff0c;这个端口关了&#xff0c;但是没有更详细信息了 我用nmap扫了一下我的这个端口&#xff0c;发现主机是活跃的&#xff0c;但是有防火墙&#xff0c;我们列出云服务器上面的这个防火墙list&#xff0c;发现确实没有5566端口 参考&a…

Mac环境下,简单反编译APK

一、下载jadx包 https://github.com/skylot/jadx/releases/tag/v1.4.7 下载里面的这个&#xff1a;下载后&#xff0c;找个干净的目录解压&#xff0c;我是放在Downloads下面 二、安装及启动 下载和解压 jadx&#xff1a; 下载 jadx-1.4.7.zip 压缩包。将其解压到你希望的目…

内网安全--隧道技术代理技术

注:本文仅做技术交流,请勿非法破坏... 目录 项目: 1-Ngrok 用法 2-Frp 用法 3-Nps 用法 4-Spp 用法 工具: windows下: Proxifier(推荐~) Sockscap ccproxy Linux下: Proxychains 用法 http://t.csdnimg.cn/88Ew7 隧道技术&#xff1a;解决不出网协议上线的问…

**《Linux/Unix系统编程手册》读书笔记24章**

D 24章 进程的创建 425 24.1 fork()、exit()、wait()以及execve()的简介 425 . 系统调用fork()允许父进程创建子进程 . 库函数exit(status)终止进程&#xff0c;将进程占用的所有资源归还内核&#xff0c;交其进行再次分配。库函数exit()位于系统调用_exit()之上。在调用fo…

“RabbitMQ入门指南:从入门到起飞,这一篇就够!打造高效消息通信系统的第一步“。

1.前言 RabbitMQ是一个开源的消息代理软件&#xff0c;它实现了高级消息队列协议&#xff08;AMQP&#xff09;的标准&#xff0c;并用Erlang语言编写。作为消息代理&#xff0c;RabbitMQ接收、存储和转发消息&#xff0c;帮助应用程序之间实现异步通信。它提供了一个强大而灵活…

Qt开发技术:Q3D图表开发笔记(四):Q3DSurface三维曲面图颜色样式详解、Demo以及代码详解

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/139424086 各位读者&#xff0c;知识无穷而人力有穷&#xff0c;要么改需求&#xff0c;要么找专业人士&#xff0c;要么自己研究 红胖子网络科技博…

PawSQL优化 | 分页查询太慢?别忘了投影下推

​在进行数据库应用开发中&#xff0c;分页查询是一项非常常见而又至关重要的任务。但你是否曾因为需要获取总记录数的性能而感到头疼&#xff1f;现在&#xff0c;让PawSQL的投影下推优化来帮你轻松解决这一问题&#xff01;本文以TPCH的Q12为案例进行验证&#xff0c;经过Paw…

Redisson分布式锁原理解析

前言 首先Redis执行命令是单线程的&#xff0c;所以可以利用Redis实现分布式锁&#xff0c;而对于Redis单线程的问题&#xff0c;是其线程模型的问题&#xff0c;本篇重点是对目前流行的工具Redisson怎么去实现的分布式锁进行深入理解&#xff1b;开始之前&#xff0c;我们可以…

Vmess协议是什么意思? VLESS与VMess有什么区别?

VMess 是一个基于 TCP 的加密传输协议&#xff0c;所有数据使用 TCP 传输&#xff0c;是由 V2Ray 原创并使用于 V2Ray 的加密传输协议&#xff0c;它分为入站和出站两部分&#xff0c;其作用是帮助客户端跟服务器之间建立通信。在 V2Ray 上客户端与服务器的通信主要是通过 VMes…

ThinkPHP发邮件配置教程?群发功能安全吗?

ThinkPHP发邮件的注意事项&#xff1f;如何优化邮件发送的性能&#xff1f; 无论是用户注册、密码重置还是消息提醒&#xff0c;发送邮件都是一个常见的需求。AokSend将详细介绍如何在ThinkPHP框架中配置和发送邮件&#xff0c;帮助开发者轻松实现邮件功能。 ThinkPHP发邮件&…