用矩阵乘法的底层原理来理解“特征融合”

2024-08-31 03:28

本文主要是介绍用矩阵乘法的底层原理来理解“特征融合”,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

大家好啊,我是董董灿。

在很多 AI 模型中,都会出现内积运算。无论是卷积/全连接还是 Transformer 架构中的矩阵乘法(或线性映射),其核心运算逻辑都是内积运算。

因此,很多时候,我们也把内积运算称作是一种“特征提取和融合运算”。

那么如何来理解这种“特征提取和融合”呢?

本文就用一个非常通俗的矩阵乘法的例子,让你来理解这个过程。

矩阵运算的本质

先看一个调酒的例子,我在很多场合都会用这个例子来讲解“特征提取”的作用。

假如你是一个鸡尾酒调酒师,家里储存了很多鸡尾酒的原料,有金酒、利口酒、柠檬汁和可乐等等。

今天家里来了 3 位客人,他们分别喜欢喝“自由古巴”、“长岛冰茶”以及“龙舌兰日出”这 3 款鸡尾酒,并向你下了单,希望你给他们调配出来各自喜欢的鸡尾酒。

巧的是,这 3 款鸡尾酒的原料都是金酒、利口酒、柠檬汁和可乐。

你作为一个调酒师,很快就把客人的爱好的鸡尾酒给调出来了。

你是怎么做的呢?你知道配方:

  • 自由古巴: 20%金酒 + 45% 利口酒 + 10%柠檬汁 + 25%可乐

  • 长岛冰茶: 60%金酒+ 30%利口酒 + 5% 柠檬汁 + 5% 可乐

  • 龙舌兰日出:30%金酒 + 10%利口酒 + 30%柠檬汁 + 30%可乐

你在调配鸡尾酒的过程中,是按照这个配方来调配的。

这里的原料,比如利口酒和可乐,就是输入资源,配比(比如可乐的 25% )就是赋予该资源的权重

将相同的原料按照不同的配比混合起来,就得到了不同口味的鸡尾酒。

这种做法,可以抽象一下,写成一个公式:

  • 自由古巴 = 0.2 x 金酒 + 0.45 x 利口酒 + 0.1 x 柠檬汁 + 0.25 x 可乐

  • 长岛冰茶 = 0.6 x 金酒 + 0.3 x 利口酒 + 0.05 x 柠檬汁 + 0.05 x 可乐

  • 龙舌兰日出 = 0.3 x 金酒 + 0.1 x 利口酒 + 0.3 x 柠檬汁 + 0.3 x 可乐

我们知道矩阵乘法的规则是,左矩阵的第一行乘以右矩阵的第一列,得到第一个值,第一行乘以第二列得到第二个值,...,以此类推。

上面这种连乘的操作,就可以用矩阵乘法来表示。

图片

左矩阵是一行四列,代表原料。

右矩阵是四行三列,每一列代表对应原料的配比。

按照矩阵乘法的规则,他们的结果应该是一个一行三列的矩阵,分别代表调配出来的三种鸡尾酒。

看到这是不是有点熟悉了。

矩阵乘法,通过相乘再累加的操作,实际上是对资源(鸡尾酒的原料)的整合和再创(创造出了新的口味,如自由古巴)。

也就是说,如果矩阵乘法的一个矩阵是权值矩阵,就可以把矩阵乘法理解为:对输入资源的一种提取和融合操作。

而在AI神经网络中,输入资源可以认为是特征,因此,在 AI 算法中,类似的矩阵乘法运算,都是对特征进行的提取和融合。

是不是好理解一些了呢?

与之对应的,卷积运算和全连接运算,即核心逻辑都是以权值和输入进行乘法,然后累加的操作,与上述类似。

因此,卷积可以提取输入资源的特征(大部分是图像),全连接也可以提取输入资源的特征。


🍊 专栏:计算机视觉入门与调优

🍊 专栏:Transformer 通关秘籍

🍓 计算机视觉入门1对1全程

🍓 从零手写大模型1对1全程

最后,送一句话给大家:生活不止眼前,还有诗和远方,共勉~

这篇关于用矩阵乘法的底层原理来理解“特征融合”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!


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

相关文章

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

C/C++中OpenCV 矩阵运算的实现

《C/C++中OpenCV矩阵运算的实现》本文主要介绍了C/C++中OpenCV矩阵运算的实现,包括基本算术运算(标量与矩阵)、矩阵乘法、转置、逆矩阵、行列式、迹、范数等操作,感兴趣的可以了解一下... 目录矩阵的创建与初始化创建矩阵访问矩阵元素基本的算术运算 ➕➖✖️➗矩阵与标量运算矩阵与矩阵运算 (逐元

apache的commons-pool2原理与使用实践记录

《apache的commons-pool2原理与使用实践记录》ApacheCommonsPool2是一个高效的对象池化框架,通过复用昂贵资源(如数据库连接、线程、网络连接)优化系统性能,这篇文章主... 目录一、核心原理与组件二、使用步骤详解(以数据库连接池为例)三、高级配置与优化四、典型应用场景五、注意事

电脑系统Hosts文件原理和应用分享

《电脑系统Hosts文件原理和应用分享》Hosts是一个没有扩展名的系统文件,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应... Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应

Dubbo之SPI机制的实现原理和优势分析

《Dubbo之SPI机制的实现原理和优势分析》:本文主要介绍Dubbo之SPI机制的实现原理和优势,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Dubbo中SPI机制的实现原理和优势JDK 中的 SPI 机制解析Dubbo 中的 SPI 机制解析总结Dubbo中

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component

spring IOC的理解之原理和实现过程

《springIOC的理解之原理和实现过程》:本文主要介绍springIOC的理解之原理和实现过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、IoC 核心概念二、核心原理1. 容器架构2. 核心组件3. 工作流程三、关键实现机制1. Bean生命周期2.

Redis实现分布式锁全解析之从原理到实践过程

《Redis实现分布式锁全解析之从原理到实践过程》:本文主要介绍Redis实现分布式锁全解析之从原理到实践过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、背景介绍二、解决方案(一)使用 SETNX 命令(二)设置锁的过期时间(三)解决锁的误删问题(四)Re