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

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

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

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

最佳答案

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

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

    关于tensorflow - Tensorflow或Keras中的离散权重和激活,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37341229/

    10-12 13:54