Keras 中的弹性权重合并算法实现

Posted

技术标签:

【中文标题】Keras 中的弹性权重合并算法实现【英文标题】:Elastic Weight Consolidation Algorithm Implementation in Keras 【发布时间】:2020-09-29 09:17:35 【问题描述】:

我正在研究基于 LSTM 的模型来预测日志异常。我的模型架构如下:

______________________Layer (type) Output Shape Param # ================================================================= 
lstm (LSTM) (None, 5, 1555) 9684540 ______________________ 
lstm_1 (LSTM) (None, 1555) 19350420 ______________________ 
dense (Dense) (None, 1024) 1593344 ______________________ 
dense_1 (Dense) (None, 1024) 1049600 _______________________ 
dense_2 (Dense) (None, 1555) 1593875
================================================================= 
Total params: 33,271,779

我想继续训练避免灾难性遗忘,我在 EWC 上看到了这个paper。是的,我将在增量训练中获得完全不同的日志文件,因此目前正在发生灾难性的遗忘。我在互联网上查看,只发现它的 pytorch 和 tensorflow 实现。我对它们不是很流利,我正在寻找一些相同的 tensorflow-2/keras 实现。我确实了解该论文,但不了解如何实施它。是否有可能在 keras 中做,如果是的话怎么做?欢迎任何其他简单的持续学习方法!

【问题讨论】:

你能不能参考Continual Learning with Elastic Weight Consolidation in TensorFlow 2 可以帮助你。谢谢! 看起来不错,虽然我的项目是 6 个多月前的,但谢谢,会检查 【参考方案1】:

我最近想在分布式优化设置中应用相同的算法 (EWC)。我找不到 tensorflow-2 实现。所以我从头开始实现它。你可以在这里找到它 - https://github.com/stijani/elastic-weight-consolidation-tf2.git。 包含一个演示笔记本,用于演示代码用法和 MNIST 数据集的示例结果。

【讨论】:

以上是关于Keras 中的弹性权重合并算法实现的主要内容,如果未能解决你的问题,请参考以下文章

权重随机算法的java实现

权重随机算法的java实现

负载均衡算法 - 基本实现

自动编码器的解码器权重与 Keras 中的权重绑定

Keras实现风格迁移

golang实现权重轮询调度算法