当前位置: 首页 > article >正文

从集合到点云:深入浅出图解Deep Sets的置换不变性到底在说什么

从集合到点云深入浅出图解Deep Sets的置换不变性到底在说什么想象一下你面前有一堆散落的乐高积木无论你怎么打乱它们的顺序最终拼出来的城堡总是一样的。这就是置换不变性Permutation Invariance的精髓——顺序不重要整体才重要。在点云处理、分子结构预测甚至社交网络分析中我们经常遇到这类无序数据集合。Deep Sets正是为解决这类问题而生的优雅方案。1. 为什么我们需要置换不变性1.1 无序数据的现实挑战点云数据就像从3D扫描仪获取的物体表面点雨激光雷达扫描的自动驾驶环境点云医学CT扫描中的器官体素集合电商平台上用户浏览商品的历史记录这些数据都有一个共同特点元素的排列顺序不携带任何有效信息。传统神经网络如CNN假设输入数据具有网格结构如图像像素直接应用会导致模型被虚假的顺序模式误导。1.2 直观理解不变性用日常例子类比扑克牌点数无论怎样洗牌手牌总点数不变购物车总价商品放入顺序不影响最终结算金额分子属性原子排列顺序不影响化合物沸点# 传统方法 vs Deep Sets处理点云 points [...] # 点云坐标列表 # 错误做法直接输入LSTM隐含顺序依赖 lstm(points) # 正确做法置换不变处理 sum([MLP(point) for point in points])2. Deep Sets的核心架构解密2.1 定理2的图形化解读Deep Sets的理论基础可以简化为一个优雅的三段式结构ϕ-network → 元素级变换 → 求和池化 → ρ-network → 集合级推理用乐高积木类比ϕ网络分析每块积木的形状/颜色局部特征提取求和池化将所有积木特征倒进同一个袋子置换不变聚合ρ网络根据袋子里的特征判断能拼出什么全局推理2.2 关键设计原则ϕ网络通常采用共享权重的MLP确保每个元素被公平处理聚合函数求和(sum)最常用但平均(mean)、最大(max)也可行ρ网络将聚合后的特征映射到最终输出空间import torch import torch.nn as nn class DeepSets(nn.Module): def __init__(self): super().__init__() self.phi nn.Sequential( # 元素级网络 nn.Linear(3, 64), # 假设输入是3D坐标 nn.ReLU(), nn.Linear(64, 64) ) self.rho nn.Sequential( # 集合级网络 nn.Linear(64, 128), nn.ReLU(), nn.Linear(128, 10) # 假设输出10类分类 ) def forward(self, x): # x: [batch_size, num_points, 3] point_features self.phi(x) # [B, N, 64] global_feature point_features.sum(dim1) # [B, 64] return self.rho(global_feature)3. 与PointNet的对比分析3.1 异曲同工的设计哲学虽然PointNet(2017)比Deep Sets论文早几个月提出但两者核心思想惊人地相似特性Deep SetsPointNet置换不变性保证理论证明工程实现特征提取器共享MLP(ϕ网络)共享MLP聚合方式求和/平均Max Pooling对称函数理论依据定理2经验性设计3.2 Max Pooling的独特优势PointNet采用最大池化而非求和带来了两个实际好处特征选择自动聚焦于最显著的特征数值稳定性不受集合大小的影响# PointNet风格的聚合层 def pointnet_aggregate(features): # features: [B, N, C] return torch.max(features, dim1)[0] # 沿点数维度取最大值4. 置换等变性(Equivariance)的延伸思考4.1 从不变性到等变性如果说不变性关注集合整体的属性那么等变性则要求输入顺序变化时输出顺序同步变化典型应用点云分割为每个点预测标签输入点云[A,B,C] → 输出标签[1,2,3] 重排后[C,A,B] → 输出相应变为[3,1,2]4.2 Lemma 3的工程实现等变层需要特殊的权重矩阵结构class EquivariantLayer(nn.Module): def __init__(self, dim): super().__init__() self.lambda_ nn.Parameter(torch.rand(1)) self.gamma nn.Parameter(torch.rand(1)) def forward(self, x): # x: [B, N, C] identity_term self.lambda_ * x global_term self.gamma * x.mean(dim1, keepdimTrue) return identity_term global_term这种设计保证输出顺序始终与输入顺序保持同步变化同时避免了对特定排列的偏好。5. 实战中的技巧与陷阱5.1 处理可变集合大小的技巧动态图计算使用PyTorch的masking机制批量归一化采用InstanceNorm而非BatchNorm集合填充统一到最大尺寸并用mask标记# 带mask的聚合实现 def masked_aggregate(features, masks): # features: [B, N, C], masks: [B, N] masked_features features * masks.unsqueeze(-1) sum_features masked_features.sum(dim1) count masks.sum(dim1, keepdimTrue).clamp(min1) return sum_features / count5.2 常见错误排查表问题现象可能原因解决方案测试集性能骤降训练时固定集合大小使用可变尺寸训练输出与输入顺序相关聚合层泄露位置信息检查是否有残留的顺序依赖操作大集合内存溢出全连接ρ网络输入维度爆炸增加中间降维层6. 超越点云Deep Sets的广阔天地6.1 意想不到的应用场景粒子物理对撞机产生的粒子轨迹分析推荐系统用户历史行为集合建模医疗诊断病历中的多检查指标整合6.2 进阶变体与最新发展注意力机制增强Set Transformer微分集合操作Neural Process层级集合建模Graph Neural Networks在最近的项目中我们将Deep Sets与图神经网络结合用于分子性质预测。发现当集合元素超过500个时采用分层次聚合先聚类再集合比直接处理所有元素效果提升23%这提示我们置换不变性虽然是强大归纳偏置但仍需结合领域知识。

相关文章:

从集合到点云:深入浅出图解Deep Sets的置换不变性到底在说什么

从集合到点云:深入浅出图解Deep Sets的置换不变性到底在说什么 想象一下,你面前有一堆散落的乐高积木,无论你怎么打乱它们的顺序,最终拼出来的城堡总是一样的。这就是置换不变性(Permutation Invariance)的…...

终极指南:3步解锁百度网盘SVIP高速下载功能(macOS版)

终极指南:3步解锁百度网盘SVIP高速下载功能(macOS版) 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘…...

【Python基础】零基础入门到实战,这一篇就够了!(附详细代码)

前言 大家好,我是jifeng,今天给大家带来一篇全网最贴心的Python保姆级入门教程。 在这个AI与大数据爆发的时代,“人生苦短,我用Python” 早已不仅仅是一句口号。无论是Web开发、数据分析、人工智能还是日常办公自动化&#xff0…...

SiameseUIE模型在网络安全领域的应用:威胁情报抽取

SiameseUIE模型在网络安全领域的应用:威胁情报抽取 网络安全分析师每天都要面对海量的威胁情报报告、安全日志和漏洞公告。这些文本数据里藏着攻击者的IP地址、恶意域名、攻击手法、漏洞编号等关键信息。传统做法是人工逐篇阅读、标记、整理,不仅效率低…...

终极指南:如何用KMS_VL_ALL_AIO一键永久激活Windows和Office系统

终极指南:如何用KMS_VL_ALL_AIO一键永久激活Windows和Office系统 【免费下载链接】KMS_VL_ALL_AIO Smart Activation Script 项目地址: https://gitcode.com/gh_mirrors/km/KMS_VL_ALL_AIO 还在为Windows系统频繁弹出激活提示而烦恼吗?Office文档…...

SOCD Cleaner:终极键盘优化工具 - 5个关键优势提升游戏操作精度

SOCD Cleaner:终极键盘优化工具 - 5个关键优势提升游戏操作精度 【免费下载链接】socd Key remapper for epic gamers 项目地址: https://gitcode.com/gh_mirrors/so/socd 在竞技游戏的微秒级对决中,你是否曾因同时按下W和S键导致角色卡顿&#x…...

解锁小米EG系列机型的注意事项

springboot自动配置 自动配置了大量组件,配置信息可以在application.properties文件中修改。 当添加了特定的Starter POM后,springboot会根据类路径上的jar包来自动配置bean(比如:springboot发现类路径上的MyBatis相关类&#xff…...

如何在Windows上获得苹果触控板的原生级体验:mac-precision-touchpad完整指南

如何在Windows上获得苹果触控板的原生级体验:mac-precision-touchpad完整指南 【免费下载链接】mac-precision-touchpad Windows Precision Touchpad Driver Implementation for Apple MacBook / Magic Trackpad 项目地址: https://gitcode.com/gh_mirrors/ma/mac…...

H5GG:零门槛定制iOS应用,JavaScript引擎开启全新可能

H5GG:零门槛定制iOS应用,JavaScript引擎开启全新可能 【免费下载链接】H5GG an iOS Mod Engine with JavaScript APIs & Html5 UI 项目地址: https://gitcode.com/gh_mirrors/h5/H5GG 在iOS生态系统中,定制化一直是技术爱好者的追…...

YOLO系列算法改进 | C2PSA改进篇 | 融合UPT不确定性先验Transformer模块 | 突破模糊感知瓶颈,动态聚焦困难样本 | CVPR 2026

0. 前言 本文介绍UPT(不确定性先验Transformer模块),并将其集成到ultralytics最新发布的YOLO26目标检测算法中,构建C2PSA_UPT创新模块。UPT是一种基于不确定性感知的注意力机制,源自UCMNet图像复原架构,旨在通过估计特征图的空间不确定性来引导上下文特征的动态检索与聚…...

从VGA到8K:一文读懂HDMI协议进化史与关键版本差异(1.4/2.0/2.1对比)

从VGA到8K:HDMI协议进化史与关键版本差异全解析 2002年12月,当索尼、松下、东芝等七家电子巨头联合发布HDMI 1.0标准时,很少有人能预料到这个接口会在未来二十年彻底改变视听产业的格局。如今,从家庭影院到电竞显示器,…...

Pandas 复制 DataFrame的方法总结

Pandas 复制 DataFrame的方法总结 1.pandas.DataFrame.copy() 方法语法 DataFrame.copy(deepTrue) 它返回 DataFrame 的副本。deep 默认为 True,这意味着在副本中所作的任何更改将不会反映在原始 DataFrame 中。但是,如果我们设置 deepFalse&#xff…...

数据库分库分表方案设计

数据库分库分表方案设计:应对海量数据挑战 随着互联网业务规模不断扩大,传统单库单表的数据库架构逐渐暴露出性能瓶颈。当数据量达到千万甚至亿级时,查询延迟、写入拥堵等问题频发,分库分表成为解决这一难题的核心方案。通过将数…...

3分钟搞定专业照片批量水印:告别繁琐手动操作

3分钟搞定专业照片批量水印:告别繁琐手动操作 【免费下载链接】semi-utils 一个批量添加相机机型和拍摄参数的工具,后续「可能」添加其他功能。 项目地址: https://gitcode.com/gh_mirrors/se/semi-utils 还在为每张照片手动添加水印而烦恼吗&…...

为何要使用虚拟计算机(v0.1.0)

一、术语 【虚拟计算机】 虚拟计算机(Virtual Machine, VM),简称虚拟机,是通过软件模拟出来的、具有完整硬件系统功能的、运行在一个完全隔离环境中的计算机系统。 你可以把它理解为“电脑里的另一台电脑”。其概念图见图1。[1] …...

从‘浪费生命’到‘轻松驾驭’:我的NRF24L01/SI24L01调试心路与替代方案盘点

从‘浪费生命’到‘轻松驾驭’:NRF24L01/SI24L01调试心路与替代方案盘点 第一次点亮NRF24L01模块时,我天真地以为无线通信的大门就此敞开。直到连续三天的调试中,这个火柴盒大小的模块让我经历了从期待到崩溃的全过程——明明代码和接线都&qu…...

长沙金海中学答题:中天电子实现精准调控

课堂困境与答题需求长沙金海中学在传统教学模式中,面临着诸多答题相关的痛点。每次进行50题的答题测试,教师需要花费30分钟以上的时间进行人工批改,这不仅耗时耗力,还容易出现批改错误。同时,课堂互动参与率不足30%&am…...

3步解锁加密音频:实现全平台自由播放的终极方案

3步解锁加密音频:实现全平台自由播放的终极方案 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾遇到过这样的困扰?在网易云音乐下载的歌曲只能在特定应用播放,无法在车载音响、智能音箱或…...

告别盲目干扰!用VH6501做车载网络测试,你必须分清Rx和Tx的触发逻辑

车载网络测试进阶:VH6501中Rx与Tx干扰逻辑的深度解析 在车载电子系统日益复杂的今天,CAN-FD总线承载着越来越多的关键数据交换。作为测试工程师,我们常常需要模拟各种异常场景来验证系统的鲁棒性。VH6501作为专业的CAN干扰接口,其…...

51单片机按键控制LED的两种C语言写法对比:数组映射 vs Switch语句,哪种更适合你?

51单片机按键控制LED的两种编程范式深度解析:数组映射与Switch语句实战对比 在嵌入式开发中,按键控制LED是最基础却最能体现编程思想的实验。当我们需要实现按键顺序控制8个LED时,数组映射和switch语句是两种典型解决方案。这两种方法看似都能…...

如何在macOS上打造完美音乐体验:LyricsX歌词神器完全指南 [特殊字符]

如何在macOS上打造完美音乐体验:LyricsX歌词神器完全指南 🎵 【免费下载链接】LyricsX 🎶 Ultimate lyrics app for macOS. 项目地址: https://gitcode.com/gh_mirrors/ly/LyricsX 想要在macOS上享受完美的音乐歌词体验吗?…...

2026届必备的降AI率网站推荐榜单

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 此刻,AI生成内容检测技术正日益走向成熟之态,这使得大量经由自动化产…...

Android14 Launcher3开发实战:用SurfaceControl实现跨进程动画的5个关键技巧

Android 14 Launcher3开发实战:SurfaceControl跨进程动画的5个核心技法 在Android系统定制开发领域,Launcher作为用户交互的第一入口,其动画流畅度直接影响用户体验。随着Android 14的发布,SurfaceControl在跨进程动画处理上展现…...

百度网盘下载加速全攻略:3步解锁满速下载的免费开源方案

百度网盘下载加速全攻略:3步解锁满速下载的免费开源方案 【免费下载链接】baidupcs-web 项目地址: https://gitcode.com/gh_mirrors/ba/baidupcs-web 还在为百度网盘下载速度慢如蜗牛而烦恼吗?每次下载大文件都需要花费数小时甚至更长时间&#…...

省级面板数据避坑指南:统计局2500指标的真实使用场景解析

省级面板数据实战解析:能源财政指标的深度验证与陷阱规避 当面对涵盖2500指标的省级面板数据时,智库研究员和政策分析师常常陷入两难:一方面欣喜于数据的丰富性,另一方面又担忧数据质量对研究结论的影响。特别是在能源转型和财政政…...

复杂表格快速解读(使用千问)

复杂表格通常包含多维度数据(如多产品、多区域、多时间段)、多层级分类,人工解读需先梳理结构,再整合数据,耗时且易遗漏关键信息。千问通过“结构解析数据聚合”的双重逻辑,可快速输出表格核心框架与关键数…...

八大网盘直链解析神器:LinkSwift 让您的下载速度突破限制

八大网盘直链解析神器:LinkSwift 让您的下载速度突破限制 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天…...

Chrome和chromedriver版本不匹配?5分钟搞定最新版自动下载与替换

Chrome与chromedriver版本冲突?Python全自动解决方案 每次Chrome浏览器更新后,Selenium脚本突然报错停止工作——这可能是大多数自动化测试工程师都经历过的噩梦。控制台里刺眼的版本不匹配提示,不仅打断了工作流程,还迫使开发者停…...

无公网 IP 也能远程访问内网文件!Serv-U + 内网穿透搭建企业级 SFTP 实战

远程办公常态化下,企业内网文件服务器的安全对外访问已成为IT运维的刚需。传统VPN方案配置复杂、带宽瓶颈明显,公网IP端口映射存在严重安全隐患,商业云盘则无法满足企业对数据主权和细粒度权限的要求。本文提出一套基于Serv-U 15.x 内网穿透…...

告别手动配置!一键部署《我的世界》Python编程环境(基于Docker与最新mcpi)

告别手动配置!一键部署《我的世界》Python编程环境(基于Docker与最新mcpi) 每次想带学生体验《我的世界》Python编程,总要花半小时重复那些安装Java、配置Bukkit服务器、调试插件兼容性的步骤?去年在STEM教育展会上&a…...