Tensorflow或Keras中的离散权重和激活

ndr*_*zza 5 machine-learning neural-network deep-learning keras tensorflow

您知道约束tensorflowkeras设置一组离散权重并使用离散/刚性激活函数(例如like signhard-tanh)的方法吗?

这些API似乎只有平滑的激活功能。

我还想到了通过自定义正则化函数离散权重,但是我不知道如何使框架考虑到这一点。

可能我将不得不扩展(例如)(各自框架的)密集层类,并定义一个自定义的正向传播函数(及其派生类)。你有什么例子吗?

Mar*_*jko 1

在我看来,将权重和激活从平滑更改为离散可能是 Keras 中的一个大问题。我认为这种方法至少有两个主要困难:

  1. 优化框架肯定是完全不同的: Keras / Theano 在 ANN 中表现出色的主要原因是它们能够自动区分张量函数。这是当今大多数优化算法的主要构建块。将域从连续域更改为离散域会改变优化规则,据我所知,Keras 和 Theano 还没有为此做好准备。
  2. 数学问题:您可能想知道简单地对每个权重和激活进行四舍五入是否可以很好地解决您的问题。但您必须记住,高维离散网格具有一些违反直觉的属性,这可能会产生误导。例如,28 x 28 x 3 维单位立方体的直径为 50,并且具有大量顶点 ( 2^dimension)。

这些就是解决您的问题可能非常困难的原因。