使用 ML 创建唯一描述符?

数据挖掘 机器学习 神经网络 喀拉斯
2022-02-20 15:48:52

我有一个似乎不属于常见机器学习类别的问题,我想知道这是否仍然可以通过 ML 解决。

问题:我从两个传感器记录了两个信号,并想确定它们是否相关(即记录相同的物理事件)。

问题:我无法访问两个传感器的完整信号时间序列,但一次只能访问一个 - 我只能交换一个大约 32 位的小描述符,以查看信号是否匹配。

我们目前的方法是计算一堆数字信号特征,例如均值、导数、过零、FFT 等,并查看哪些提供了最佳相关性——但这似乎是很多猜测,而且效果不佳任何状况之下。

所以现在我有了以下想法:

  1. 从一个神经网络开始,它从信号中提取一个固定窗口(可能是该窗口的 F​​FT)作为输入,并产生一个 32 位输出
  2. 从示例池中挑选两个随机相关的样本,并运行网络两次,每个样本(及其 FFT)运行一次
  3. 将两个输出值之间的差异作为误差度量并照常执行反向传播
  4. 从 2 开始重复,直到所有示例的差异低于阈值

以下是我的问题:

  1. 这种方法似乎可行吗?
  2. 作为机器学习的新手,我将如何实现这一点?
  3. 我看过 Keras - 这是一个合适的起点吗?

在此先感谢,并致以最诚挚的问候,弗洛里安

附录:我发现这个有点相关的帖子(Is it possible using tensorflow to create a neural network that maps a certain input to a certain output?),但我不认为这是同一个问题,因为我不' t 实际上关心输出的样子,只是它对于每对匹配的样本都尽可能唯一。

2个回答

如果我正确理解了您的问题,您需要一个函数,它接受一个信号(一个固定窗口)并输出一个 32 位表示,以保持它与任何其他信号之间的相关性。从数学上讲给定信号s1s2S和相关函数corr(s1,s2)你想要一些功能f:SB(在哪里B是 32 位二进制数的空间),您可以使用另一个相关函数,例如corrf(b1,b2)corr(s1,s2).

如果那是你想要的,你应该学习散列技术,尤其是学习散列本质上,在散列中,您要做的是用二进制数表示输入,二进制数之间的汉明距离保留一些目标相似性(距离)函数,例如相关性。特别是对于互相关(内积),您有一些基于随机投影的方法。

所以一旦你学会(设计)了你的散列函数f,我要做的是:

b1 = f(s1)
send b1
receive b1
b2 = f(s2)
return h(b2, b1) # this value is going to tell you if the signals are correlated

作为记录,上述评论中提到的论文(“DPSH: Feature learning based deep supervised hashing with pairwise labels”)可在 arXiv 上找到:https ://arxiv.org/abs/1511.03855 该论文将相同的想法应用于图片,但原理或多或少与我最初的建议完全相同。