Embedding的理解

部署运行你感兴趣的模型镜像

Embedding的理解

​ 我Embedding作用总是忘…因此在此记录辅助理解。

​ 原文地址:怎么形象理解embedding这个概念?


什么是Embedding?

​ Embedding(嵌入)是拓扑学里面的词,在深度学习领域经常和Manifold(流形)搭配使用。

​ 可以用几个例子来说明,比如三维空间的球体是一个二维流形嵌入在三维空间(2D manifold embedded in 3D space)。之所以说他是一个二维流形,是因为球上的任意一个点只需要用一个二维的经纬度来表达就可以了。

​ 又比如一个二维空间的旋转矩阵是2x2的矩阵,其实只需要一个角度就能表达了,这就是一个一维流形嵌入在2x2的矩阵空间。


什么是深度学习里的Embedding?

​ 这个概念在深度学习领域最原初的切入点是所谓的Manifold Hypothesis(流形假设)。流形假设是指“自然的原始数据是低维的流形嵌入于(embedded in)原始数据所在的高维空间”。那么,深度学习的任务就是把高维原始数据(图像,句子)映射到低维流形,使得高维的原始数据被映射到低维流形之后变得可分,而这个映射就叫嵌入(Embedding)。比如Word Embedding,就是把单词组成的句子映射到一个表征向量。但后来不知咋回事,开始把低维流形的表征向量叫做Embedding,其实是一种误用。。。

​ 如果按照现在深度学习界通用的理解(其实是偏离了原意的),Embedding就是从原始数据提取出来的Feature,也就是那个通过神经网络映射之后的低维向量。

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

### Band Embedding 的概念 Band Embedding 是一种用于表示频带特征的技术,通常被用来捕捉信号或数据中的频率分布特性。这种技术的核心在于将连续的频域信息映射到离散的空间中以便于后续处理[^6]。具体来说,Band Embedding 可以看作是一种特殊的嵌入方法,旨在保留原始数据在不同频带上的重要属性。 --- ### Band Embedding 的用途 Band Embedding 广泛应用于涉及频谱分析的任务中,尤其是在音频处理、图像处理和时间序列预测等领域。以下是几个典型的应用场景: 1. **音频分类与合成** 在音频领域,Band Embedding 被广泛用于提取声音的不同频段特征,从而帮助区分不同的音源或乐器类型。例如,在音乐生成任务中,可以通过 Band Embedding 来控制特定频段的能量分布,进而影响最终的声音质量[^7]。 2. **语音识别与增强** 对于语音信号而言,Band Embedding 提供了一种有效的方法来分离背景噪声和其他干扰因素的影响。这种方法能够显著提高语音识别系统的鲁棒性和准确性[^8]。 3. **医学影像分析** 在医疗诊断方面,Band Embedding 常常与其他机器学习算法结合使用,通过对脑电图 (EEG) 或磁共振成像 (MRI) 数据进行分解,揭示隐藏在复杂波形背后的生理模式[^9]。 4. **无线通信优化** 随着第五代移动网络的发展,Band Embedding 成为了研究信道状态估计的重要工具之一。它可以协助工程师设计更加高效的调制解调方案,减少误码率的同时提升传输效率[^10]。 --- ### Band Embedding 的实现方式 Band Embedding 的实现主要依赖以下几个关键技术环节: #### 1. 数据预处理 首先需要对输入数据执行必要的变换操作,比如傅里叶变换或者短时傅里叶变换(STFT),目的是将其从时域转换至频域。这样可以获得关于各个时刻下各频率分量强度的信息[^11]。 ```python import numpy as np from scipy.fftpack import fft, ifft def preprocess_signal(signal): """ Perform FFT on the input signal """ freq_spectrum = fft(signal) return abs(freq_spectrum) signal_data = np.random.rand(1024) # Example random data frequency_domain_representation = preprocess_signal(signal_data) ``` #### 2. 定义频带范围 接着定义若干个互不重叠的子区间作为目标频带,并统计落入这些区间的能量比例。这一步骤决定了最终输出维度大小以及每维所代表的具体含义[^12]。 ```python def define_bands(frequencies, num_bands=8): max_freq = frequencies.max() min_freq = frequencies.min() band_edges = np.linspace(min_freq, max_freq, num=num_bands + 1) bands = [(band_edges[i], band_edges[i+1]) for i in range(len(band_edges)-1)] return bands bands = define_bands(frequency_domain_representation, num_bands=8) print("Defined Bands:", bands) ``` #### 3. 构建嵌入向量 最后基于上述划分结果构建相应的嵌入向量形式。常见的做法是对每个频带内的幅值求平均值得到单一数值;也可以采用更复杂的加权机制考虑距离中心位置远近等因素带来的贡献差异[^13]。 ```python def create_embedding(frequencies, amplitudes, bands): embeddings = [] for low, high in bands: mask = (frequencies >= low) & (frequencies < high) avg_amplitude = amplitudes[mask].mean() if any(mask) else 0. embeddings.append(avg_amplitude) return np.array(embeddings) embedding_vector = create_embedding( frequencies=np.arange(len(frequency_domain_representation)), amplitudes=frequency_domain_representation, bands=bands ) print("Embedding Vector Shape:", embedding_vector.shape) ``` --- ### 总结 综上所述,Band Embedding 技术不仅具有理论价值而且具备很强的实际应用潜力。无论是改善用户体验还是推动科学研究进步都发挥着不可替代的作用。未来随着硬件设备性能不断提升及相关软件框架日益完善,相信该领域还将迎来更多突破性进展。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值