DEEPPOLAR:通过深度学习发明非线性大核极坐标码(1)
原文:《DEEPPOLAR: Inventing Nonlinear Large-Kernel Polar Codes via Deep Learning》
摘要
信道编码设计的进步是由人类的创造力推动的,而且恰如其分地说,这种进步是零星的。极性码是在Arikan极化核的基础上开发的,代表了编码理论的最新突破,并已成为中短块长度体制的最先进纠错码。
为了使良好信道码的发明自动化,特别是在这种情况下,我们探索了一种新的Polar码的非线性推广,我们称之为DEEPPOLAR码。DEEPPOLAR码通过利用更大的内核大小并通过神经网络对这些内核和匹配的解码器进行参数化,扩展了传统的Polar编码框架。我们的结果表明,与现有的神经代码和传统的Polar代码相比,这些数据驱动代码有效地利用了更大内核大小的优势,从而提高了可靠性。源代码可通过此链接获得。
1.引言
可靠的数字通信是信息时代的主要工作。为了确保在嘈杂信道上的可靠通信,通常会在传输的数据中引入冗余,以便接收器能够忠实地重建消息。这一关键过程被称为纠错编码(信道编码),是有线(以太网、电缆)和无线(蜂窝、WiFi、卫星)通信系统的核心。在过去的七十年里,一项重要的研究重点是设计可靠的代码(由一对编码器-解码器组成),在具有高效解码器的同时实现良好的可靠性。
规范设置是加性高斯白噪声(AWGN)信道上的点对点可靠通信之一,在此设置中代码的性能取决于其金本位。品质因数可以精确测量:误码率(BER)测量输入比特中被错误解码的比例;块错误率(BLER)测量至少一个原始数据比特被错误解码的次数。
编码理论领域经历了零星但重大的突破,这在很大程度上是由人类的创造力推动的。极化码由Arikan于2009年发明(Arikan,2009),是编码理论中最深刻的发展之一,极大地振兴了该领域。极性码是代数和图形编码结构的组合,是第一类具有确定性结构的码,被证明可以实现香农容量。重要的是,这是通过低复杂度的编码和解码实现的。Polar码的影响在其提出后的短短十年内就被整合到5G标准中,这是一个非常快的时间表,因为新的编码方法通常需要几十年才能被纳入蜂窝标准(3GPP,2018;Bioglio等人,2020)。
Polar码的基本构建块是一个二进制矩阵,称为极化核。表示线性码的生成矩阵是由G与自身的几个Kronecker积得到的。极性码的这种构造产生了一种称为“信道极化”的显著现象。这一过程将二进制无记忆信道的n个视图转换为n个合成“比特信道”,每个信道都具有不同的可靠性。随着块长度n渐近增大,这些比特信道变得极化,要么完全无噪声,要么完全有噪声。极性编码是通过在无噪声比特信道中发送信息比特来进行的,而有噪声的输入比特被“冻结”到已知值。容量是通过顺序连续抵消(SC)解码器来实现的。
极性码和SC解码对于大的渐近块长度(large asymptotic blocklengths)是最优的;然而,缺乏实用的有限长性能。认识到这一局限性,最近的研究集中在增强极坐标编码器和提高解码性能上。具体而言:
- ①循环冗余校验(CRC)与极性码的级联提高了距离特性。将其与连续取消列表(SCL)解码相结合,显著提高了解码性能(Tal&Vardy,2015;Niu&Chen,1 a,2012)。因此,Polar码已成为中短块长体制中的最先进技术,并被纳入5G标准。尽管如此,SCL解码引入了相当大的解码复杂性和延迟,标志着性能和计算效率之间的权衡。
与此同时,人们也在努力改进极坐标编码器。
- ②一种方法涉及修改Polar编码结构。一个值得注意的改进是极化调整卷积(PAC)码(Arıkan,2019),它在极性编码之前使用卷积预编码。值得注意的是,PAC码在短块长度范围内接近二进制码的有限长度信息理论界限。然而,PAC码的实际应用受到其高解码复杂性的限制,需要极大的列表大小才能有效解码。
- ③另一种想法是增加偏振核的大小。事实上,(Korada等人,2010)证明了极化适用于所有核,只要它们在任何列置换下都不是酉的,也不是上三角的。
- ④此外,人们可以发现大的极化核(ℓ≥8)可以实现更快的极化(以“标度指数”为特征)。尽管有这些理论上的优势,但由于其解码复杂性的增加,具有大内核的Polar码在实践中并不是首选。然而,最近有基于专门设计的极化核来解决这些挑战的工作(Trifonov,2023)。
在这项工作中,我们的目标是解决这样一个问题:我们如何自动搜索好的代码?事实上,通过使用神经网络对编码器和解码器进行参数化和学习,这是可能的。然而,使用这种方法构建有效的非线性代码具有很高的挑战性:文献中有大量文献记载,使用现成的神经架构进行天真的参数化通常会导致性能甚至比重复代码还差,如App中进一步阐述的那样。F.3。相反,一种更有前景的方法是设计能够实现结构化冗余的神经架构。具体来说,我们的工作通过探索极化驱动结构的非线性推广,深入研究了代数编码理论和机器学习之间的创新交叉点。这可以通过神经网络对每个内核进行参数化来实现,将极化驱动代码结构的信息论特性与深度学习的适应性和学习能力相结合。
代数编码结构和深度学习之间的这种相互作用是一个相对未知的领域。我们的算法建立在(Makkuva等人,2021)奠定的基础之上,他将KO码作为RM码的非线性推广。尽管这项工作标志着一个重大的飞跃,但它受到对Reed-Muller(RM)编码解码方案的依赖的限制,这限制了它在更广泛的速率范围内的适用性。重要的是,KO码的架构被证明不适用于Polar码,只能扩展到(64,7)码。相比之下,我们的工作提出了DEEPPOLAR码,这是Polar码(包括RM码作为特例)编码和解码结构的非线性推广。这使我们能够无缝扩展到各种速率和块长度。

DEEPPOLAR(n=256,k=37)具有适当的内核大小(例如ℓ = 16,32)在具有-2dB信噪比的AWGN信道上优于经典的Reed-Muller、Polar和最先进的神经KO码(Makkuva等人,2021)
DEEPOLAR的核心创新在于它利用了更大尺寸的核,这使得神经网络能够探索一个可扩展的函数空间。这由一个匹配的类SC神经解码器补充,该解码器在AWGN信道中提取的样本上进行联合训练。
更大的内核大小对于DEEPPOLAR在规范AWGN信道上实现实质性性能改进至关重要,如图1所示,n=256,k=37。通过广泛的实证研究,我们发现核大小ℓ = √ n在平衡偏差和方差方面最有效,使其能够在该块长度和速率下实现比基线Polar和RM码以及KO(8,2)码SOTA更低的误码率。此外,我们设计了一个培训课程( training curriculum:你知道什么是Curriculum Training模型吗-CSDN博客),该课程基于极坐标编码结构的固有嵌套层次结构,以加速培训。这种有原则的编码理论结构与有针对性的训练方法的结合旨在实现跨广阔信息空间的有效泛化。总之,我们做出了以下贡献:
- •我们提出了DEEPOLAR,这是一种通过基于大型非线性神经网络的内核对Polar码进行新的泛化的方法。
- •DEEPOLAR优于经典的Polar和ReedMuller码、最先进的二进制线性码以及KO码、最新的基于ML的码,同时可扩展到各种码率。
- •我们开发了一种基于课程的原则性培训编码方法(a principled curriculum-based training codes methodology)使DEEPPOLAR能够推广到具有挑战性的高信噪比状态(high SNR regime)。
相关文章:
DEEPPOLAR:通过深度学习发明非线性大核极坐标码(1)
原文:《DEEPPOLAR: Inventing Nonlinear Large-Kernel Polar Codes via Deep Learning》 摘要 信道编码设计的进步是由人类的创造力推动的,而且恰如其分地说,这种进步是零星的。极性码是在Arikan极化核的基础上开发的,代表了编码…...
Java多态详解
Java多态详解 什么是多态? 比如我们说:“驾驶一辆车”,有人开的是自行车,有人开的是摩托车,有人开的是汽车。虽然我们都说“开车”,但“怎么开”是由具体的车类型决定的:“开”是统一的动作&a…...
go程序编译成动态库,使用c进行调用
以下是使用 Go 语言打包成 .so 库并使用 C 语言调用的完整步骤: 1. Go 语言打包成 .so 库 (1)编写 Go 代码 创建一个 Go 文件(如 calculator.go),并定义需要导出的函数。导出的函数名必须以大写字母开头…...
iVX:图形化编程与组件化的强强联合
在数字化浪潮中,软件开发范式正经历着从文本到图形的革命性转变。iVX 作为国产可视化编程领域的领军者,以 “图形化逻辑 组件化架构” 的双重创新,重新定义了软件开发的效率边界。其技术突破不仅体现在开发方式的革新,更通过一系…...
华为配置篇-RSTP/MSTP实验
MSTP 一、简介二、常用命令总结三、实验 一、简介 RSTP(快速生成树协议) RSTP(Rapid Spanning Tree Protocol)是 STP 的改进版本,基于 IEEE 802.1w 标准,核心目标是解决传统 STP 收敛速度慢的问…...
端口号被占用怎么解决
windows环境下端口号被占用怎么解决 win r 快捷键打开cmd输入netstat -ano|findstr 端口号 通过这个命令找到pidtaskkill /pid pid端口号 /t /f 如下图所示 命令解读 netstat 是一个网络统计工具,它可以显示协议统计信息和当前的TCP/IP网络连接。 -a 参数告诉 nets…...
GO语言-导入自定义包
文章目录 1. 项目目录结构2. 创建自定义包3. 初始化模块4. 导入自定义包5. 相对路径导入 在Go语言中导入自定义包需要遵循一定的目录结构和导入规则。以下是详细指南(包含两种方式): 1. 项目目录结构 方法1:适用于Go 1.11 &#…...
ES常识5:主分词器、子字段分词器
文章目录 一、主分词器:最基础的文本处理单元主分词器的作用典型主分词器示例 二、其他类型的分词器:解决主分词器的局限性1. 子字段分词器(Multi-fields)2. 搜索分词器(Search Analyzer)3. 自定义分词器&a…...
NoSQL数据库技术与应用复习总结【看到最后】
第1章 初识NoSQL 1.1 大数据时代对数据存储的挑战 1.高并发读写需求 2.高效率存储与访问需求 3.高扩展性 1.2 认识NoSQL NoSQL--非关系型、分布式、不提供ACID的数据库设计模式 NoSQL特点 1.易扩展 2.高性能 3.灵活的数据模型 4.高可用 NoSQL拥有一个共同的特点&am…...
单片机-STM32部分:12、I2C
飞书文档https://x509p6c8to.feishu.cn/wiki/MsB7wLebki07eUkAZ1ec12W3nsh 一、简介 IIC协议,又称I2C协议,是由PHILP公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备,IIC属于半双工同步通信方式。 IIC是一种同步…...
【英语笔记(四)】诠释所有16种英语时态,介绍每种时态下的动词变形!!含有所有时态的的动词变形汇总表格
1 时态的单词构成 1.1 现在 1.1.1 一般现在时态 动词原形动词原形s(第三人称单数) 1.1.1.1 表达事实 I eat carrots. 我吃胡萝卜:我是吃胡萝卜这种食物的.(这个是事实陈述) The rabbit eats carrots. 兔子吃胡萝卜…...
【质量管理】什么是过程?
在文章【质量管理】谁是顾客?什么是质量链?-CSDN博客 中我们了解了什么是顾客,顾客不仅仅是企业以外的人,在企业的内部我们也有大大小小的顾客。并且我们了解了什么是质量链,企业内部的各种供给方和客户形成了质量链。…...
效率办公新工具:PDF Reader Pro V5.0功能解析与使用体验
在日常文档处理与数字办公的场景中,PDF 文件依然是主流格式之一。从合同审批、项目文档、财务报表,到技术方案和用户手册,PDF 的编辑、转换、标注、归档需求始终存在。 面对这些需求,越来越多用户希望有一款功能完整、跨平台、智…...
Java对象内存布局和对象头
1、面试题 1)说下JUC,AQS的大致流程 CAS自旋锁,是获取不到锁就一直自旋吗? 2)CAS和synchronized区别在哪里,为什么CAS好,具体优势在哪里? 3)sychro…...
Vue 跨域解决方案及其原理剖析
在现代 Web 开发中,跨域问题是前端开发者经常面临的挑战之一。当使用 Vue.js 构建应用时,跨域请求的处理尤为重要。本文将深入探讨 Vue 解决跨域的多种方法及其背后的原理,帮助开发者更好地理解和应对这一常见问题。 一、跨域问题概述 1. 同…...
TikTok 互动运营干货:AI 助力提升粘性
在 TikTok 运营的众多环节中,与用户的互动是建立紧密联系、提升账号粘性的关键所在。及时且真诚地回复评论和私信,能让用户切实感受到你的关注与尊重,从而极大地增强他们对你的好感与粘性。对于用户提出的问题,要以耐心、专业的态…...
Kids A-Z安卓版:儿童英语启蒙的优质选择
Kids A-Z安卓版 是一款由北美知名分级读物厂商 Learning A-Z 官方推出的英语分级学习应用,也被称为 Raz-Kids app。它专为 K-5 年级的学生设计,提供丰富的英语学习资源和互动学习体验,帮助孩子们在轻松愉快的环境中提升英语能力。通过动画、互…...
接口继承与扩展的使用技巧
在 TypeScript 中,接口继承和扩展是非常强大且灵活的功能,可以帮助我们更高效地管理类型和提高代码的可重用性。接口继承使得一个接口可以从另一个接口继承属性和方法,而接口扩展允许我们通过组合多个接口来构建更复杂的结构。这些特性使得 T…...
【React】Craco 简介
Craco 简介 Craco (Create React App Configuration Override) 是一个用于自定义 Create React App (CRA) 配置的工具,无需 eject(弹出)项目。 为什么需要 Craco Create React App 虽然提供了零配置的 React 开发体验,但其配置…...
HTML5中的Microdata与历史记录管理详解
Microdata 简介 Microdata 是 HTML5 引入的一种标记方式,用于在网页中嵌入机器可读的语义信息。通过使用 Microdata,开发者可以在 HTML 元素中添加特定的属性,以便搜索引擎和其他工具更好地理解网页内容。 Microdata 的核心属性包括 itemsc…...
UNet网络 图像分割模型学习
UNet 由Ronneberger等人于2015年提出,专门针对医学图像分割任务,解决了早期卷积网络在小样本数据下的效率问题和细节丢失难题。 一 核心创新 1.1对称编码器-解码器结构 实现上下文信息与高分辨率细节的双向融合 如图所示:编码器进行了4步&…...
Babel 深度解析:现代 JavaScript 开发的桥梁
1. 什么是 Babel? Babel 是一个 JavaScript 编译器(又称转译器),核心使命是解决 JavaScript 的环境兼容性问题。它允许开发者使用最新的语言特性(如 ES6、JSX、TypeScript),同时将代码转换为旧…...
MyBatis源码解读2(2.1、核心对象)
二、MyBatis的核心对象 2.1、核心对象 2.1、MappedStatement MyBatis其实是对JDBC的进一步封装,我们都知道JDBC有几个重要的对象: StatementPrepared StatementCallable StatementResultSet Statement、Prepared Statement、Callable Statement分别…...
03.three官方示例+编辑器+AI快速学习webgl_animation_multiple
本实例主要讲解内容 这个示例展示了Three.js中骨骼动画的高级应用技巧,重点演示了如何使用SkeletonUtils.clone()方法复制模型,并展示了两种不同的骨骼动画管理方式: 独立骨骼模式:每个模型拥有独立的骨骼结构,可播放…...
无锁秒杀系统设计:基于Java的高效实现
引言 在电商促销活动中,秒杀场景是非常常见的。为了确保高并发下的数据一致性、性能以及用户体验,本文将介绍几种不依赖 Redis 实现的无锁秒杀方案,并提供简化后的 Java 代码示例和架构图。 一、基于数据库乐观锁机制 ✅ 实现思路…...
MyBatis快速入门——实操
默认:电脑搭建好了Maven环境 本次入门实验使用的idea版本:ideaU2022.1 目录 一:前期准备工作 1. 创建一个springboot工程 2. Maven环境配置 3. 在mysql数据库中创建一个user表 4. 编写实体类User 二: 引入MyBatis的相关依赖…...
假如你的项目是springboot+vue怎么解决跨域问题
1. 前端代理(开发环境推荐) 适用场景:Vue 开发环境调试时,避免直接请求后端接口的跨域问题。 实现步骤: 在 Vue 项目的 vue.config.js 中配置代理: module.exports {devServer: {proxy: {/api: { // 代理…...
OpenResty反向代理
通过在 OpenResty 的配置文件中定义不同的 location 块,将匹配特定 URL 路径的请求转发到不同的后端 FastAPI 应用(即使它们运行在不同的端口或甚至是不同的服务器/容器上)。 核心思路: 多个 FastAPI 应用实例: 你的每…...
《Effective Python》第1章 Pythonic 思维详解——深入理解 Python 条件表达式(Conditional Expressions)
《Effective Python》第1章 Pythonic 思维详解——深入理解 Python 条件表达式(Conditional Expressions) 在 Python 中,条件表达式(conditional expressions)提供了一种简洁的方式来在一行中实现 if/else 的逻辑。它…...
【Typenum】 3 类型位运算(bit.rs)
一、源码 代码定义了一个类型级别的位(bit)系统,主要用于编译时的类型运算。 //! 类型级比特位实现 //! //! 这些是基础的比特位类型,作为本库中其他数值类型的构建基础 //! //! 已实现的**类型运算符**: //! //! - …...
python:trimesh 用于 STL 文件解析和 3D 操作
python:trimesh 是一个用于处理三维模型的库,支持多种格式的导入导出,比如STL、OBJ等,还包含网格操作、几何计算等功能。 Python Trimesh 库使用指南 安装依赖库 pip install trimesh Downloading trimesh-4.6.8-py3-none-any.w…...
stm32week15
stm32学习 十一.中断 2.NVIC Nested vectored interrupt controller,嵌套向量中断控制器,属于内核(M3/4/7) 中断向量表:定义一块固定的内存,以4字节对齐,存放各个中断服务函数程序的首地址,中断向量表定…...
数据库分库分表实战指南:从原理到落地
1. 为什么要分库分表? 1.1 单库瓶颈表现 存储瓶颈:单表数据超过5000万行,查询性能急剧下降性能瓶颈:单库QPS超过5000后响应延迟显著增加可用性风险:单点故障导致全系统不可用 1.2 突破性优势 --------------------…...
雷达工程师面试题目
雷达工程师面试题目 一、基础知识类 简述雷达的工作原理 请从电磁波的发射、传播、反射以及回波接收处理等环节,详细阐述雷达如何实现对目标的探测、定位与跟踪。 常见雷达体制及其特点 列举至少三种常见的雷达体制(如脉冲雷达、连续波雷达、相控阵雷达等),并分别说明…...
JVM-类加载子系统
最近在学习JVM,分模块整理一下JVM的笔记 目录 类加载子系统 一、加载 二、链接 1.验证 2.准备 3.解析 三、初始化 类加载子系统 类加载子系统负责将字节码文件加载到虚拟机中,我们正常编写完一个Java类并在前端编译器编译后会生成一个对应的字节码…...
从0开始学习大模型--Day06--大模型的相关网络架构
云服务器 在平时,我们总能听到诸如用服务器跑数据、模型,或者是搭建服务器之类的话,实际上,它相当于一台算力、内存、运行内存等各个方面都很强大的电脑,只需要我们用自己的电脑通过互联网链接他就能使用它࿰…...
控制LED灯设备
本章分别使用C库和系统调用的文件操作方式控制开发板的LED灯,展示如何在应用层通过系统提供的设备文件控制相关硬件。 本章的示例代码目录为:base_code/linux_app/led/sys_class_leds。 9.1. LED子系统 在Linux系统中,绝大多数硬件设备都有…...
Three.js + React 实战系列 - 联系方式提交表单区域 Contact 组件✨(表单绑定 + 表单验证)
对个人主页设计和实现感兴趣的朋友可以订阅我的专栏哦!!谢谢大家!!! 在现代网页中,一个精致的 Contact 区域不仅仅是表单的堆砌,更是用户与我们建立联系的第一印象。 在本节课中,我…...
Python-MCPAgent开发-DeepSeek版本
Python-MCPAgent开发-DeepSeek版本 尝试Windows使用Python完成【McpServer】【McpAgent】开发,当前使用OpenAI-Agents框架进行开发 1-核心知识点 先完成【LLM】配置再完成【McpServer】开发再完成【Agent】开发完成【LLM】【McpServer】【Agent】请求互通 2-思路整…...
Linux:43线程封装与互斥lesson31
mmap文件映射视屏:待看... 目录 线程栈 代码证明:一个线程的数据,其他线程也可以访问 线程封装 简单封装,2.thread Thread.hpp Main.cc Makefile 结果: 编辑 问题1: 问题2: lamba表达式 模版封…...
stm32测频率占空比最好的方案
频率检测, 方案方法很多种, 其中最快最节省资源的方法. 分享给大家. 其它的方案都试过, 问题多多. 适合单片机在工业应用中, 1MHZ以下的频率检测. 1MHZ估计也行. 但是偏差估计是变大了. 我试过很多种方案, 可以看我前面的文章. 最后发现目前这种方案最为优秀. 主要特点为不占用…...
Redis--常见数据类型List列表
目录 一、概念 二、命令 2.1 LPUSH 2.2 LPUSHX 2.3 RPUSH 2.4 RPUSHX 2.5 LRANGE 2.6 LPOP 2.7 RPOP 2.8 LINDEX 2.9 LINSERT 2.10 LLEN 2.11 阻塞版本命令 三、内部编码 一、概念 列表类型是用来存储多个有序的字符串,列表中的每个字符串称为元素&…...
Linux : 多线程【线程概念】
Linux : 多线程【线程概念】 (一)线程概念线程是什么用户层的线程linux中PID与LWP的关系 (二) 进程地址空间页表(三) 线程总结线程的优点线程的缺点线程异常线程用途 (一)线程概念 线程是什么 在一个程序里的一个执行…...
React+Springboot项目部署ESC服务器
记录一下我个人部署Linux服务器的心得 环境介绍 ESC服务器创建时默认安装LNMP,即Linux,Nginx,Mysql,Php 所以这里不讲怎么安装Nignx和Mysql 笔者使用的Linux版本为22.0.4LTS版 前端打包 运行React打包命令进行前端项目的打包…...
python-Pandas库详细教程
python-Pandas库详细教程1 定义使用方法: 一、导入Pandas库代码 二、DataFrame用法Pandas索引 groupby()数值计算 定义 python中特定用于数据分析、处理的模板库。 优点: 处理数据便捷、简单。 使用方法: 处理“.csv”数据:rea…...
力扣刷题Day 46:搜索二维矩阵 II(240)
1.题目描述 2.思路 方法1:分别找到搜索矩阵的右、下边界,然后从[0][0]位置开始遍历这部分矩阵搜索目标值。 方法2:学习Krahets佬的思路,从搜索矩阵的左下角开始遍历,matrix[i][j] > target时消去第i行,…...
C++:类和对象4
一,日期类实现 学习建议: 对于计算机学习来说,调试十分重要,所以在日常学习中一定要加大代码练习,刷代码题和课后自己敲出课上代码例题,注意不要去对比正确代码或者网上找正确代码直接使用,一…...
【软件工程】基于机器学习的多缺陷定位
基于机器学习的多缺陷定位(Multi-Dault Localization, MDL)是软件工程和自动化测试领域的重要研究方向,旨在通过机器学习技术高效识别代码中多个潜在缺陷的位置。以下从方法、挑战、应用场景及未来方向展开分析: 一、核心方法 监督…...
互联网大厂Java求职面试实战:Spring Boot到微服务的技术问答解析
💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通 😁 2. 毕业设计专栏,毕业季咱们不慌忙,几百款毕业设计等你选。 ❤️ 3. Python爬虫专栏…...
LLMs之MCP:2025年5月2日,Anthropic 宣布 Claude 重大更新:集成功能上线,研究能力大幅提升
LLMs之MCP:2025年5月2日,Anthropic 宣布 Claude 重大更新:集成功能上线,研究能力大幅提升 导读:2025年5月2日,Anthropic 宣布 Claude 推出 Integrations 集成功能和增强型高级研究功能。Integrations 基于 …...