【最后203篇系列】010 关于矩阵的一点思考

news2025/3/6 20:56:30

说明

今天拿起一本矩阵的书又翻了翻,毕竟AI搞到最后还得是数学。

我是感觉自己高数始终有点学的迷迷糊糊的,就打算这一年慢慢把矩阵部分扫一遍,毕竟这快肯定是实打实有用的。其他高级部分就等我发财之后再说了,哈哈。

内容

今天看了点点矩阵乘法的基本概念,这个点我以前就一直在思考,因为并不仅仅是计算,而是为什么有这样的计算。我记得以前还看过一个国外的科普视频,大约讲了一个班级的学生出门玩坐公交啥的,然后用矩阵就可以方便的计算各种费用。

关键点是在于:矩阵这种格式究竟是为什么场景设计的?

先说个抽象点的。

我先画了个图,其实稍微有点不对(结果矩阵的第一个元素应该是第一行乘以第一列),不过大概想表达个意思:矩阵乘法应该想象成一个机关,或者说算子,或者说开关,都行。就是一个可以想象的,很具体的动作。

在这里插入图片描述
这里豆包稍微解读了一下,是这个意思。
在这里插入图片描述
我觉得可以这么想象,矩阵就像一个铡刀:

  • 1 底座(矩阵1): m x n
  • 2 直立的铡刀(矩阵2): n x p

咔嚓一下,铡刀90度旋转切下来,这个过程中,对齐的部分积压为一个元素值。以下面的矩阵为例,A是基座,B要想象横过来,然后A的第一行[1,2,3]是紧贴B的最底下的一行[2,4,6],这两个向量等长,意味着铡刀的长和基座是对齐的。B旋转下来时,[1,2,3]和[2,4,6]挤压(内积),变成了28。旋转完成时,剩下的结果,就是一片新的"板材"。这样可以有一个比较形象的类比,比较好记。
在这里插入图片描述

再说个具体点的应用,这个应该也是MLR概念的一部分。

逻辑回归的公式,大概这样
在这里插入图片描述
我以前更习惯用β那套符号,b也就是β0。

逻辑回归有一个比较经典的问题:变量选择。假设我们生成了1000个x,那么选哪些才最好呢?

如果按照解析思维,就算什么重要性,相关性啥的,嗯,反正我不太想回忆那个。其实一个更简单的思路,就是–试试呗。

暴力破解不太可能,也不经济,1000个特征的组合数还是比较吓人的。

在这里插入图片描述
我随便跑了一些
在这里插入图片描述
所以暴力法一定不太对,那么用遗传算法就可以 x1-x1000,每个变量的选择都可以认为是0,1 Mask的;但是遗传算法也会产生很大的计算量,那么怎么加速呢? 矩阵。

假设A矩阵是参数,B矩阵是变量选择。那么A矩阵应该是 n X 1000的矩阵,那么第一行就是w0,与某一组x挤压(内积)后就得到了一个y‘。

所以A矩阵的n行,代表了n种可能的参数。

我们把B矩阵横过来,此时的形状是p X 1000,那么p是什么呢? p可以是遗传算法生成的种群。

假设我们可以对A的参数可能性进行优化(梯度),那么每一次计算都可以将多种可能性一次性计算出来,然后评估。C矩阵则是评估矩阵。

一种可能的情况是,我们先定住A,然后让B进行遗传进化;然后我们再定住B,让A进行迭代。每次计算完毕后,我们通过评估C来看结果是怎样的。

在这里插入图片描述

如果是1000X1000的矩阵,大约是4MB显存,我们完全可以扩大10倍,例如A矩阵是 1万 x 1千,B矩阵是 1千X1万,这两者的显存大约80MB。然后假设计算的瞬间显存会翻倍,那么是160MB峰值,C矩阵是1万X1万,大约是400MB。总共不到1个G的显存,所有的消费级显卡都可以很容易计算。

关于有多快,这个大模型很打官腔:
在这里插入图片描述
然后我追问了一下:
在这里插入图片描述
嗯,然后我实测了了一下,简单的结论是处理一次是秒级,大部分时间是损耗在从内存搬到显存上的。

3060TI,第一次计算 0.5秒
在这里插入图片描述

再次计算14.8毫秒。所以还是很符合理论估计的。
在这里插入图片描述
再用4060ti试一下:机器配置稍微好一点,0.3秒

在这里插入图片描述
第二次 13.7毫秒。所以4060ti在计算力上没啥提升,显存16G还是方便很多的。
在这里插入图片描述
然后是4090,机器是租用的额,cpu配置稍微弱了点,6核12线程的。
在这里插入图片描述
再算一次就厉害了。
在这里插入图片描述

未来的架构,有可能是直接写显存的(现在豆包的架构已经这么改了),所以这类型的计算,非常具有可行性。

假设我们在进行遗传算法,每次迭代大约1-2秒,这个速度已经很快了,应该可以在很短的时间,比如10分钟左右,找到一组合适解。这种方法最大的好处就是通用,不必将道理。设计好评估的方法就可以了,除了roc,auc之类的,可能同时考虑aic或者bic,不管怎么样,给到一套合理的评估方法就行了。这个本身也是模型验收必然要做的。

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

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

相关文章

Python快捷手册

Python快捷手册 后续会陆续更新Python对应的依赖或者工具使用方法 文章目录 Python快捷手册[toc]1-依赖1-词云小工具2-图片添加文字3-BeautifulSoup网络爬虫4-Tkinter界面绘制5-PDF转Word 2-开发1-多线程和队列 3-运维1-Requirement依赖2-波尔实验室3-Anaconda3使用教程4-CentO…

DeepSeek崛起:如何在云端快速部署你的专属AI助手

在2025年春节的科技盛宴上,DeepSeek因其在AI领域的卓越表现成为焦点,其开源的推理模型DeepSeek-R1擅长处理多种复杂任务,支持多语言处理,并通过搜索引擎获取实时信息。DeepSeek因其先进的自然语言处理技术、广泛的知识库和高性价比…

Linux的用户与权限--第二天

认知root用户(超级管理员) root用户用于最大的系统操作权限 普通用户的权限,一般在HOME目录内部不受限制 su与exit命令 su命令: su [-] 用户名 -符号是可选的,表示切换用户后加载环境变量 参数为用户名&#xff0c…

Zookeeper 及 基于ZooKeeper实现的分布式锁

1 ZooKeeper 1.1 ZooKeeper 介绍 ZooKeeper是一个开源的分布式协调服务,它的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。 原语:操作系统或…

Ubuntu20.04双系统安装及软件安装(五):VSCode

Ubuntu20.04双系统安装及软件安装(五):VSCode 打开VScode官网,点击中间左侧的deb文件下载: 系统会弹出下载框,确定即可。 在文件夹的**“下载”目录**,可看到下载的安装包,在该目录下…

【计算机网络入门】初学计算机网络(十一)重要

目录 1. CIDR无分类编址 1.1 CIDR的子网划分 1.1.1 定长子网划分 1.1.2 变长子网划分 2. 路由聚合 2.1 最长前缀匹配原则 3. 网络地址转换NAT 3.1 端口号 3.2 IP地址不够用? 3.3 公网IP和内网IP 3.4 NAT作用 4. ARP协议 4.1 如何利用IP地址找到MAC地址…

经验分享:用一张表解决并发冲突!数据库事务锁的核心实现逻辑

背景 对于一些内部使用的管理系统来说,可能没有引入Redis,又想基于现有的基础设施处理并发问题,而数据库是每个应用都避不开的基础设施之一,因此分享个我曾经维护过的一个系统中,使用数据库表来实现事务锁的方式。 之…

C++-第二十章:智能指针

目录 第一节:std::auto_ptr 第二节:std::unique_ptr 第三节:std::shared_ptr 第四节:std::shared_ptr的缺陷 4-1.循环引用 4-2.删除器 下期预告: 智能指针的作用是防止指针出作用域时忘记释放内存而造成内存泄漏&…

chrome Vue.js devtools 提示不支持该扩展组件,移除

可能是版本不兼容,可以重新安装,推荐网址极简插件官网_Chrome插件下载_Chrome浏览器应用商店 直接搜索vue,下载旧版,vue2、vue3都支持,上面那个最新版本试了下,vue2的肯定是不能用

C# 中的Action和Func是什么?Unity 中的UnityAction是什么? 他们有什么区别?

所属范围:Action 和 Func 是 C# 语言标准库中的委托类型,可在任何 C# 项目里使用;UnityAction 是 Unity 引擎专门定义的委托类型,只能在 Unity 项目中使用。 返回值:Action 和 UnityAction 封装的方法没有返回值&…

Versal - XRT(CPP) 2024.1

目录 1.简介 2. XRT 2.1 XRT vs OpenCL 2.2 Takeways 2.3 XRT C APIs 2.4 Device and XCLBIN 2.5 Buffers 2.5.1 Buffer 创建 2.5.1.1 普通 Buffer 2.5.1.2 特殊 Buffer 2.5.1.3 用户指针 Buffer 2.5.2 Data Transfer 2.5.2.1 read/write API 2.5.2.2 map API 2…

windows下安装Open Web UI

windows下安装openwebui有三种方式,docker,pythonnode.js,整合包. 这里我选择的是第二种,非docker. 非Docker方式安装 1. 安装Python: 下载并安装Python 3.11,建议安装路径中不要包含中文字符,并勾选“Add python 3.11 to Path”选项。 安…

【自用】NLP算法面经(4)

一、deepseek 1、MLA (1)LLM推理过程 prefill阶段:模型对全部的prompt tokens一次性并行计算,最终生成第一个输出token。decode阶段:每次生成一个token,直到生成EOS(end-of-sequence&#xf…

LeetCode热题100JS(20/100)第四天|​41. 缺失的第一个正数​|​73. 矩阵置零​|​54. 螺旋矩阵​|​48. 旋转图像​

41. 缺失的第一个正数 题目链接:41. 缺失的第一个正数 难度:困难 刷题状态:1刷 新知识: 解题过程 思考 示例 1: 输入:nums [1,2,0] 输出:3 解释:范围 [1,2] 中的数字都在数组中…

【银河麒麟高级服务器操作系统实际案例分享】数据库资源重启现象分析及处理全过程

更多银河麒麟操作系统产品及技术讨论,欢迎加入银河麒麟操作系统官方论坛 https://forum.kylinos.cn 了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer…

开源架构与人工智能的融合:开启技术新纪元

最近五篇文章推荐: 开源架构的自动化测试策略优化版(New) 开源架构的容器化部署优化版(New) 开源架构的微服务架构实践优化版(New) 开源架构中的数据库选择优化版(New) 开…

【弹性计算】弹性裸金属服务器和神龙虚拟化(二):适用场景

《弹性裸金属服务器》系列,共包含以下文章: 弹性裸金属服务器和神龙虚拟化(一):功能特点弹性裸金属服务器和神龙虚拟化(二):适用场景弹性裸金属服务器和神龙虚拟化(三&a…

计算机毕业设计SpringBoot+Vue.js保险合同管理系统(源码+文档+PPT+讲解)

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…

58、深度学习-自学之路-自己搭建深度学习框架-19、RNN神经网络梯度消失和爆炸的原因(从公式推导方向来说明),通过RNN的前向传播和反向传播公式来理解。

一、RNN神经网络的前向传播图如下: 时间步 t1: x₁ → (W_x) → [RNN Cell] → h₁ → (W_y) → y₁ ↑ (W_h) h₀ (初始隐藏状态) 时间步 t2: x₂ → (W_x) → [RNN Cell] → h₂ → (W_y) → y₂ ↑ (W_h) h₁ 时间…