ML算法——线代预备知识随笔【机器学习】

news2024/11/19 7:33:42

文章目录

  • 数学预备知识
    • 3、线性代数
      • 3.1、矩阵奇异值分解(SVD)
      • 3.2、广义逆矩阵(Moore-Penrose )
      • 3.3、数据白化(Data Whitening)
      • 3.4、向量导数
    • 4、其它

数学预备知识

3、线性代数

3.1、矩阵奇异值分解(SVD)

矩阵分解的本质是将原本复杂的矩阵分解成对应的几个简单矩阵的乘积的形式。使得矩阵分析起来更加简单。很多矩阵都是不能够进行特征值分解的。这种情况下,如果我们想通过矩阵分解的形式将原本比较复杂的矩阵问题分解成比较简单的矩阵相乘的形式,会对其进行奇异值分解

将普通矩阵分解为奇异向量奇异值,对于一个m x n的矩阵A,其奇异值分解可以表示为:

A = U Σ V T A = UΣV^T A=UΣVT

其中,U是一个m x m的正交矩阵,Σ 是一个m x n的矩阵,其对角线上的元素称为奇异值,Σ 不一定是方阵V是一个n x n的正交矩阵。

Σ对角线上的元素被称为A的奇异值。

U的列向量:左奇异向量

V的列向量:右奇异向量

对角阵不是方阵,这说法头一次见,如何确定Σ的元素?

A A T 、 A T A AA^T、A^TA AATATA的特征值相同,假设特征值为 λ 1 、 λ 2 、 λ 3 λ_1、λ_2、λ_3 λ1λ2λ3,Σ中元素为 σ 1 、 σ 2 、 σ 3 σ_1、σ_2、σ_3 σ1σ2σ3

σ 1 = λ 1 σ_1 = \sqrt{\lambda_1} σ1=λ1

同理:

σ 2 = λ 2 σ_2 = \sqrt{\lambda_2} σ2=λ2 σ 3 = λ 3 σ_3 = \sqrt{\lambda_3} σ3=λ3

求得的σ只选取非零的。

如何确定Σ主对角线位置?

【这里我反复被网上的对角阵可以不是方阵?非方阵如何确定对角线位置?的各种矛盾回答搞晕了,奇异值分解的博客很少提到σ的排列问题,浪费了很多时间,最终在周志华的《机器学习》附录中找到了准确描述。视频在数学预备知识这部分讲得稀烂,没有复看的价值😒。】

Σ i i = σ i Σ_{ii} = σ_i Σii=σi,其他未知元素均为0,常将奇异值按降序排列,确保Σ的唯一性。

如何求解U?

求解 A A T AA^T AAT的特征值 λ \lambda λ,进而求得特征向量 μ,组成矩阵 U 。

如何求解V?

求解 A T A A^TA ATA的特征值 λ \lambda λ,进而求得特征向量 μ,组成矩阵 V 。

如果A是正定矩阵可以进行特征值分解,奇异值分解又是怎样的结果?

若矩阵A可以通过正交变换法实现相似对角化 x T A x = Λ 、 A = x Λ x T x^TAx=Λ 、A=xΛx^T xTAx=ΛA=xΛxT,那么:

u = x

Σ = Λ

V T = x T V^T = x^T VT=xT

此时,奇异值分解结果与正交变换法实现的相似对角化完全一致。

3.2、广义逆矩阵(Moore-Penrose )

逆矩阵的推广,对任一 m×n 阶矩阵 A,都存在惟一的 n×m 阶矩阵 X,它满足:

  1. AXX = X
  2. XAX = X
  3. (AX)* = AX
  4. (XA)* = XA

则称 X 为 A 的 Moore-Penrose 广义逆矩阵,简称 M-P 逆,记为 A⁺。

计算 A + A^+ A+的实际算法基于以下公式:

A + = V Σ + U T A^+ = VΣ^+U^T A+=VΣ+UT (奇异值分解)

Σ + Σ+ Σ+ 由 Σ 转置得到。

广义逆矩阵有什么用?

判断线性方程组有解,当遇到线性方程组 Ax=b 中求解x困难的情况,可以使用广义逆矩阵来判断。

Ax = b,解存在的条件为:

当且仅当 A + b A^+b A+b为其中一个解,即 A A + b = b AA^+b = b AA+b=b

广义逆矩阵在机器学习中有什么用?

  1. 最小二乘问题:在机器学习中,最小二乘问题是一种常见的问题,例如在线性回归中,目标是最小化预测值与实际值之间的误差。在这种情况下,可以使用广义逆矩阵来求解最小二乘问题,从而提高模型的拟合效果。
  2. 矩阵逆的估计:当遇到矩阵逆难以直接计算的情况时,可以使用广义逆矩阵来估计矩阵的逆。例如,在PageRank算法中,可以通过使用广义逆矩阵来计算网站的PageRank值。
  3. 特征值和特征向量的求解:在机器学习中,特征值和特征向量通常用于对数据进行降维或进行模型训练。当遇到求解矩阵的特征值和特征向量困难的情况时,可以使用广义逆矩阵来求解。
  4. 隐式建模:在一些机器学习问题中,需要对数据进行建模。但是,有时数据无法直接建模或无法通过常规方法求解。在这种情况下,可以使用广义逆矩阵来拟合数据,从而实现隐式建模。

3.3、数据白化(Data Whitening)

观测数据x组成实对称矩阵 x x T xx^T xxT,其特征向量组成U, x x T = U T Σ U xx^T = U^TΣU xxT=UTΣU

令:

x ~ = U T Σ − 0.5 U ⋅ x \widetilde{x} = U^TΣ^{-0.5}U · x x =UTΣ0.5Ux

则:

x ~ x ~ T = ( U T Σ − 0.5 U ⋅ x ) ( U T Σ − 0.5 U ⋅ x ) T \widetilde{x}\widetilde{x}^{T} = (U^TΣ^{-0.5}U · x)(U^TΣ^{-0.5}U · x)^T x x T=(UTΣ0.5Ux)(UTΣ0.5Ux)T

= ( U T Σ − 0.5 U ⋅ x ) ( x T U T Σ − 0.5 U ) = (U^TΣ^{-0.5}U · x)(x^T U^TΣ^{-0.5}U ) =(UTΣ0.5Ux)(xTUTΣ0.5U)

= U T Σ − 0.5 U ⋅ ( x x T ) U T Σ − 0.5 U =U^TΣ^{-0.5}U · (xx^T) U^TΣ^{-0.5}U =UTΣ0.5U(xxT)UTΣ0.5U

= U T Σ − 0.5 U ⋅ ( U T Σ U ) U T Σ − 0.5 U =U^TΣ^{-0.5}U · (U^TΣU) U^TΣ^{-0.5}U =UTΣ0.5U(UTΣU)UTΣ0.5U

= I =I =I

在机器学习中数据白化的意义?

数据白化是一种有用的数据预处理技术,数据白化的主要作用是使数据符合正态分布,从而更易于使用传统的机器学习算法进行处理。在数据白化之后,数据的均值和方差都为零,并且各维度之间的相关性为零。这有助于消除数据中的冗余信息。数据白化还可以提高算法的收敛速度和训练效果。因为数据白化可以降低数据之间的相关性,所以可以减少算法的过拟合风险,并且使算法更容易找到最优解。

3.4、向量导数

向量矩阵求导,本质是多元函数求导,矩阵比多元函数,在表达上更简洁方便。

在这里插入图片描述

向量偏导公式

∂ A x ∂ x = A T \frac{∂Ax}{∂x} = A^T xAx=AT

∂ A x ∂ x T = A \frac{∂Ax}{∂x^T} = A xTAx=A

∂ ( x T A ) ∂ x = A \frac{∂(x^TA)}{∂x} = A x(xTA)=A

x为列向量,A为矩阵。

线性回归中直接用。

求导结果的布局?

标量、向量、矩阵 对 标量、向量、矩阵 求导,共9种情况。

分子布局,分母布局两种布局。

标量对向量的求导

分母布局。

y = x T A x y = x^TAx y=xTAx

y = x T A x y = x^TAx y=xTAx 结果为1 * 1,标量

∂ y ∂ x = ∂ ( x T A x ) ∂ x = ( A + A T ) ⋅ x \frac{∂y}{∂x} = \frac{∂(x^TAx)}{∂x} = (A + A^T)·x xy=x(xTAx)=(A+AT)x

若 A 为对称阵,则有:

∂ ( x T A x ) ∂ x = 2 A x \frac{∂(x^TAx)}{∂x} =2Ax x(xTAx)=2Ax

4、其它

奇异矩阵

若A可逆,则称A为非奇异方阵,也就说若A不是满秩,则为奇异矩阵。

I n I_n In

单位矩阵。

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

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

相关文章

最小化暗数据风险的 5 个步骤

超过一半的公司数据存储库包含哪些内容,但大多数人甚至不知道自己拥有什么?这是暗数据,是公司在不知不觉中收集的信息,它们不是日常业务交互的组成部分,因此通常位于后台。 虽然这些数据对于大多数公司来说似乎是不必…

C语言——数据的输入输出

数据的输入输出 前言:一、格式输入输出函数1.格式输出函数printf()2.格式输入函数scanf() 二、字符输入输出函数1.字符输出函数putchar()2.字符输入函数getchar() 三、字…

JUC并发工具类--阻塞队列BlockingQueue

JUC并发工具类--阻塞队列BlockingQueue 队列队列(Queue接口)提供的方法 阻塞队列阻塞队列(BlockingQueue接口)提供的方法应用场景JUC包下的阻塞队列如何选择适合的阻塞队列选择策略线程池对于阻塞队列的选择 队列 是限定在一端进…

Servlet技术实现服务端,Android平台作为客户端,实现一个个人店铺

背景: 使用Servlet技术实现服务端,使用Android平台作为客户端,实现一个个人店铺,店铺商品不限。功能要求如下: 1. 提供登录、注册功能;(10分) 2. 首页面包括“商品列表”子页面、“…

ATA-8000系列射频功率放大器——在生物医学中的应用

ATA-8000系列射频功率放大器——在生物医学研究中的应用 ATA-8000系列是一款射频功率放大器。其P1dB输出功率500W,饱和输出功率最大1000W。增益数控可调,一键保存设置,提供了方便简洁的操作选择,可与主流的信号发生器配套使用&…

VulnHub靶机渗透:SKYTOWER: 1

SKYTOWER: 1 靶机环境介绍nmap扫描端口扫描服务扫描漏洞扫描总结 80端口目录爆破 3128端口获取立足点获取立足点2提权总结 靶机环境介绍 https://www.vulnhub.com/entry/skytower-1,96/ 靶机IP:192.168.56.101 kali IP:192.168.56.102 nmap扫描 端口扫…

h5手写签名示例

前言 业务中需要用户进行签字&#xff0c;如何让用户在手机端进行签字&#xff1f; 示例如下 代码已分享至Gitee: https://gitee.com/lengcz/qianming 原示例&#xff1a; https://www.jq22.com/jquery-info13488 H5实现手写签字 创建一个html页面 <!DOCTYPE html> …

<Oracle>《Linux 下安装Oracle数据库 - Oracle 19C By CentOS 8 》(第一部分)

《Linux 下安装Oracle数据库 - Oracle 19C By CentOS 8 》&#xff08;第一部分&#xff09; 1 说明1.1 前言1.2 资源下载 2 安装步骤2.1 上传安装包2.2 下载数据库预安装包2.3 安装数据库预安装包 1 说明 1.1 前言 本文是Linux系统命令行模式安装Oracle数据库的学习实验记录…

【American English】实验室常用口语对话

不懂不丢人&#xff0c;不懂装懂才丢人。最近有点犯这毛病&#xff0c;多写一些东西消除一下。 无论什么知识都是多了才能成体系&#xff0c;更多自己在美国的小总结可见专栏&#xff1a;English。 文章目录 初次见面日常问候找寻某个东西找寻某个人 初次见面 Nice to meet you…

Linux之tar安装

目录 Linux之tar安装 定义 工作过程 语法格式 参数及用法 使用源代码安装软件的优点 注意&#xff1a;源代码编译环境 操作流程 解包 —— tar 配置 —— ./configure 编译 —— make 安装 —— make install 案例 --- 安装Apache服务 1.获取安装包地址并下载 2…

衣服面料相关基础

总结自 BiliBili视频&#xff1a;原来衣服的面料还能这么选&#xff0c;几个方法教你买到优质的短袖&#xff0c;再也不怕买衣服踩坑了 面子里子 既不能皱巴巴 又不能不透气 混纺 涤纶 粘纤 氨纶 涤纶 不变性 挺阔感 氨纶 弹性 粘纤 吸水透气40-50% 怕热 真丝与亚麻 …

Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库

Python使用ORM框架SQLAlchemy操作Oracle数据库 前言1. 安装Oracle Instant Client2. 安装依赖库3. 导入模块并创建引擎4. 操作oracle数据库4.1 新增数据4.2 查询数据4.3 更新数据4.4 删除数据 前言 要详细连接Oracle数据库并使用SQLAlchemy进行操作&#xff0c;按照以下步骤进…

云计算与OpenStack简介

文章目录 云计算与OpenStack简介什么是云服务模式部署模型 Openstac概述Openstack服务组件 云计算与OpenStack简介 什么是云 云是一种服务&#xff0c;就像我们去餐厅吃饭一样&#xff0c;只需要点菜&#xff0c;不需要知道厨师怎样烹饪食物。在云中&#xff0c;用户也只需要…

chatgpt赋能python:Python数据预处理:优化数据分析的重要步骤

Python数据预处理&#xff1a;优化数据分析的重要步骤 在数据分析过程中&#xff0c;数据预处理是非常重要的步骤。在这个阶段&#xff0c;我们可以清洗、转换和整理数据&#xff0c;以便更好地进行数据分析和建模。Python是一个强大的工具&#xff0c;可以帮助我们优化数据预…

Neural network-based clustering using pairwise constraints (ICLR-workshop 2016)

Neural network-based clustering using pairwise constraints (ICLR-workshop 2016) 源代码 摘要 这篇论文提出了一个基于神经网络的端到端的聚类框架。我们设计了一种新策略&#xff0c;除了学习适用于聚类的特征嵌入&#xff0c;还直接在源数据利用对比方法来推动数据形成…

计算机科学与技术报考指南【河南农业大学】

文章目录 前言环境介绍龙子湖校区文化路校区许昌校区 学院专业介绍计算机学习方面思维上态度上 最后 前言 这几年计算机分数虚高已经成为了不争的事实&#xff0c;加上计算机技术发展日新月异、大多数高校学习课程落后&#xff0c;转换思维另辟蹊径的报考农林类高校的计算机专…

WebSocket:基于 Spring Cloud 配置注解实现 WebSocket 集群方案

上一篇&#xff1a;WebSocket 的具体介绍与内部执行原理 文章目录 介绍用法抽象思路转发思路连接流程获取服务实例信息连接区分和管理 消息发送连接选择给指定用户发送消息给指定路径发送消息 结束源码地址声明 介绍 WebSocket大家应该是再熟悉不过了&#xff0c;如果是单体应…

Debezium系列之:发布Debezium 2.3.0.Final

Debezium系列之&#xff1a;发布Debezium 2.3.0.Final 一、重大变化1.PostgreSQL / MySQL 安全连接更改2.JDBC 存储编码更改 二、新功能和改进1.Debezium Server支持K8s2.新的通知子系统3.新的可扩展信号子系统4.JMX 信号和通知集成5.新的 JDBC 存储子系统6.PostgreSQL 流式传输…

优化伊通河漂流旅行方案的模型——JLU数学学院2020级数学模型期末大作业

文章目录 题目描述背景介绍模型假设问题一的模型决策树模型游客安全最大化与旅行次数最大化模型统筹考虑游客安全与旅行次数的模型模型对比 第二问的模型每天下水的脚踏游船与电动游船的比率的敏感性分析全是电动游船的情形全是脚踏游船的情形每天下水的脚踏游船与电动游船成比…

【深度学习笔记】神经网络概述

本专栏是网易云课堂人工智能课程《神经网络与深度学习》的学习笔记&#xff0c;视频由网易云课堂与 deeplearning.ai 联合出品&#xff0c;主讲人是吴恩达 Andrew Ng 教授。刚兴趣的网友可以观看网易云课堂的视频进行深入学习&#xff0c;视频的链接如下&#xff1a;https://mo…