压缩感知和深度学习的区别

2024-05-07 17:58

本文主要是介绍压缩感知和深度学习的区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本质上是两个问题。如果一定要找联系,两者都涉及数据的稀疏表达。


压缩感知解决“逆问题”:Ax=b。对于欠定的线性系统,如果已知解具有稀疏性(sparsity),稀疏性可以作为约束或者正则项,提供额外的先验信息。线性逆问题和稀疏性在这类问题中的应用有相对完整的理论体系,楼上 yang liu推荐的 Michael Elad的书是很好的入门教材。

另一类关系密切的问题是低秩矩阵恢复(low-rank matrix recovery),使用low-rank作为先验知识,解关于矩阵的线性逆问题,发展出一套理论。

压缩感知的思想被应用在了更多的领域,比如非线性逆问题。相关的理论正在快速的发展,但是应用已经领先一步。我个人感兴趣的是双线性逆问题(bilinear inverse problem),比如盲反卷积(blind deconvolution)、矩阵分解(matrix factorization)。

在应用压缩感知的过程中,我们发现大部分信号本身并不是稀疏的(即在自然基下的表达不是稀疏的)。但是经过适当的线性变换后是稀疏的(即在我们选择的另一组基(basis)或者框架(frame,我不知道如何翻译)下是稀疏的)。比如谐波提取(harmonic retrieval)中,时域信号不稀疏,但在傅里叶域信号是稀疏的。再比如大部分自然图像不是稀疏的,但经过DCT(离散余先变换)或者wavelet transform(小波变换),可以得到稀疏的表达。一个一度非常热门的研究课题是字典学习(Dictionary Learning)和变换学习(Transform Learning),通过大量的信号实例,自适应地学习稀疏性表达。


深度学习是机器学习的一种手段,参见楼上Stephen Wang的解释。深度学习中通常都涉及非线性环节。这里数据表达的目的通常不再是数据恢复(recovery),而是分类(classification)等机器学习的任务。


下面是我理解的区别:
在信号处理中的稀疏表达学习(sparse representation learning)侧重对信号建模,即目标是获取原信号的一个忠实的表达(faithful representation)。我们通常需要变换和逆变换,来实现信号的重建(reconstruction)。即使在不需要重建的问题中,我们也需要这种表达能够很好地区分有意义的信号和无意义的噪声(discriminate signal against noise)。所以这类变换通常有很多良好的性质(可逆、很好的条件数(condition numer)等)。
深度学习或者更广泛的机器学习中,数据表达的目标因问题而异,但是通常我们都不需要这种表达过程的可逆性。比如在分类问题中,我们的目标是把数据变换到有“意义”的空间,实现不同类别信号的分离。这种变换可以是线性或非线性的,可以是可逆或不可逆的,可以变换到稀疏的表达或其他有意义的便于分类的表达。

这篇关于压缩感知和深度学习的区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/967989

相关文章

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

深度剖析SpringBoot日志性能提升的原因与解决

《深度剖析SpringBoot日志性能提升的原因与解决》日志记录本该是辅助工具,却为何成了性能瓶颈,SpringBoot如何用代码彻底破解日志导致的高延迟问题,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言第一章:日志性能陷阱的底层原理1.1 日志级别的“双刃剑”效应1.2 同步日志的“吞吐量杀手”

Go之errors.New和fmt.Errorf 的区别小结

《Go之errors.New和fmt.Errorf的区别小结》本文主要介绍了Go之errors.New和fmt.Errorf的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考... 目录error的基本用法1. 获取错误信息2. 在条件判断中使用基本区别1.函数签名2.使用场景详细对

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?