EMD loss

地球移动距离(EMD),又称推土机距离,是一种衡量特征空间中多维矩阵间距离的度量。它常用于解决运输规划问题,如土堆与土坑的分配或货物运输。EMD loss,即Wasserstein距离,通过最小化运输成本来确定最优运输方案。此外,EMD loss在图像相似性、文档相似性和多类别问题中也有应用,例如在年龄和图像美学分布上表现优于交叉熵损失,并在GAN网络中有重要角色。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Earth Mover's Distance (EMD),翻译过来是地球移动距离,又称为推土机距离,是对特征空间中两个多维矩阵中某一维距离的一种度量。

The Earth Mover's Distance (EMD) is a method to evaluate dissimilarity between two multi-dimensional distributions in some feature space where a distance measure between single features, which we call the ground distance is given. The EMD ``lifts'' this distance from individual features to full distributions.
  • 先对该损失针对的生活场景进行描述。
  1. 假设有若干数量的土堆,每个土堆的大小不一且分布的位置不一样。同时存在若干数量的土坑,每个土坑的大小不一且位置不一样。对于每个土堆-土坑对的运输成本是给定的(以距离表示)。任务是把土堆搬动并填到土坑里,如何规划运输方案,使运输成本最低(描述详见这里);
  2. 假设有一批货物需要从多个工厂运输到多个仓库,工厂和仓库的分布位置无规律,且它们的储存量不同。如何尽可能高效把所有 (当仓库总容量大于货物总重量) 或部分货物 (当仓库总容量小于货物总重量) 从工厂运送到仓库(描述详见这里);
图片来自 这里
  • EMD loss(also known as Wasserstein distance)

上述两种场景是运输中的规划问题。抽象出来就是出发地和目的地间的距离是固定的,只是两者之间的运输量是变化的,且该运输量存在两个约束条件,目的是运输成本最低。

图片来自 这里
  1. 第一行表示P和Q两个(特征)向量间移动元素的工作量,即运输成本;
  2. 第二行表示i和j之间的运输量;
  3. 第三行和第四行表示运输量小于P和Q中当前位置的存量或需求量,即i和j之间的运输量不能大于仓库可存储的量,也不能大于工厂生产的量;
  4. 总的运输量小于总的存量或需求量;

emd loss定义为总运输量归一化后的运输成本,公式如下

图片来自 这里
  • 针对图像和文本的应用场景
  1. 图像间的相似性度量
  2. 文档、词汇和语义的相似性度量
  3. 具有顺序的多类别之间的距离,如年龄分布和图像美学分布。通常多分类问题采用交叉熵来计算预测值和真实值之间的差异,数据集中各类别之间也是相互独立的。文章表明EMD^{2}\: loss 在年龄和图像美学分布上的效果优于交叉熵损失,且给出了计算code
  4. GAN 网络: Wasserstein GAN

 

参考文献:

  1. The Earth Mover's Distance

  2. 马氏距离和推土机距离公式或者定义?怎样用它们判定两个特征点是否匹配?

  3. 推土机距离 (Earth Mover Distance)

  4. 图像检索:一维直方图+EMD距离

  5. Earth mover’s distance 用于文档相似性度量

  6. Squared Earth Mover's Distance Loss For Training Deep Neural Networks on Ordered-Classes  论文及代码

  7. 令人拍案叫绝的Wasserstein GAN

### EMD 和 LSTM 的概念对比 经验模态分解(Empirical Mode Decomposition, EMD)是一种信号处理方法,用于将复杂的时间序列数据分解成一组固有模态函数(Intrinsic Mode Functions, IMFs),从而提取出时间序列中的不同频率成分[^1]。相比之下,长短期记忆网络(Long Short-Term Memory, LSTM)属于一种特殊的循环神经网络(Recurrent Neural Network, RNN),专门设计用来捕捉长时间依赖关系,在机器学习领域广泛应用于时间序列预测、自然语言处理等领域。 --- ### 技术差异分析 #### 数据预处理能力 EMD 主要关注于非平稳和非线性时间序列的特征提取过程。通过将其分解为多个 IMF 成分,可以更清晰地观察到原始信号的不同频带特性。而 LSTM 则不需要显式的特征工程步骤;它能够自动从输入数据中学习复杂的模式并进行建模[^2]。 #### 计算效率与模型训练 由于其基于迭代筛选机制的工作原理,EMD 的计算成本可能较高,尤其是在面对高维或多变量时间序列时。然而,LSTM 虽然理论上具有较高的表达力,但在实践中可能会遇到过拟合或者梯度消失等问题,这些问题可以通过正则化技术和优化算法来缓解。 --- ### 使用场景比较 #### EMD 的典型应用场景 - **振动监测**:在机械设备的状态监控中,利用 EMD 对采集到的加速度信号做进一步剖析可以帮助识别潜在故障源。 - **生物医学数据分析**:例如心电图(ECG)、脑电波(EEG)等生理信号往往包含丰富的多尺度信息,借助 EMD 方法可有效分离这些混合在一起的信息层。 #### LSTM 的适用范围 - **金融预测**:股票价格走势通常表现出较强的随机性和波动性,这使得传统的统计学工具难以胜任,而采用 LSTM 构建的价格变动趋势预报器却能取得不错的效果。 - **语音合成/翻译任务**:作为 NLP 领域的重要组成部分之一,LSTM 已经被成功运用于端到端的语言转换框架之中,实现了高质量的声音模仿以及跨语种交流支持功能。 --- ### 实现方式举例说明 以下是分别针对这两种技术的一个简单实现案例: #### 基于 Python 的 EMD 示例代码 ```python from PyEMD import EMD import numpy as np def apply_emd(signal): emd = EMD() imfs = emd.emd(signal) return imfs # Example usage time_series_data = np.random.rand(100,) imf_components = apply_emd(time_series_data) print(f"Number of extracted IMFs: {len(imf_components)}") ``` #### 基础版 LSTM 时间序列预测模型构建 ```python import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense def build_lstm_model(input_shape): model = Sequential([ LSTM(units=50, activation='relu', input_shape=input_shape), Dense(units=1) ]) model.compile(optimizer='adam', loss='mse') return model # Example usage input_dim = (10, 1) # Assuming sequences of length 10 with single feature per time step model = build_lstm_model(input_dim) model.summary() ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值