【问题标题】:Correntropy between input and output输入和输出之间的相关性
【发布时间】:2017-09-28 03:56:05
【问题描述】:

作为大学工作的一部分,我必须实施一个训练程序,从根本上说,它基于给定层的输入和输出之间的相关熵的测量值逐层训练 MLP。

我在https://github.com/pdoren/DeepEnsemble/blob/master/deepensemble/utils/utils_functions.py#L238-L264https://github.com/pdoren/DeepEnsemble/blob/master/deepensemble/utils/cost_functions.py#L210-L237 中成功找到了一些与相关熵相关的代码。但是,只有样本大小相同时才能使用此代码。

所以,我的问题是:如何计算 Theano 中 MLP 层的输入和输出之间的相关熵?

【问题讨论】:

  • 我不明白你为什么要在输入和输出之间而不是在输出和基本事实之间做交叉熵
  • 我认为你正在做一个自动编码器而不是一个 MLP。这是我发现计算输入和输出之间的相关熵的唯一解释。
  • T.sum(T.mean(T.exp(x**2/sigma), axis=0)) / T.sqrt(2*np.pi*sigma),其中 x =输入输出。

标签: python machine-learning deep-learning theano


【解决方案1】:

(1) 相关熵与交叉熵不同。它在局部具有 MSE 或交叉实体的理想特性,但在全局上具有 L1/0 特性,可以根据距离成比例地正则化异常值。 (2) 后续提问者是正确的,您没有计算输入到输出的错误度量,而是计算输出到实际的错误度量(从基本事实的预测“有多远”)。

Keras 允许创建您自己的目标函数/距离指标。我还没有实现这些,但是当我在 keras 中寻找使用 correntropy 作为目标函数的代码时发现了这些:

https://github.com/EderSantana/seya/blob/master/seya/regularizers.py

https://github.com/EderSantana/seya/blob/master/seya/objectives.py

【讨论】:

  • 仅供参考:本网站上的问题和答案实际上应该有完全可以理解的代码示例,无需参考外部链接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-11
  • 2018-08-15
  • 2020-10-07
  • 2019-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多