NumPy 中的微分神经计算

可微分神经计算 https://www.nature.com/article/nature20101 的实现尽可能接近于本文的描述。任务:char-level 预测。报告还包括简单RNN(RNN-numpy.py)和LSTM(LSTM-numpy.py)。一些外部数据(ptb、wiki)需要单独下载。

译者前言

本文的项目的作者是一个老外 krocki,关于dnc、rnn、lstm 的实现源码都在他的github仓库 https://github.com/krocki/dnc

快速开始

这些版本已完成。

积分

RNN代码基于A.Karpath(min-char-rnn.py)的原始工作

gist: https://gist.github.com/karpathy/d4dee566867f8291f086

文章: http://karpathy.github.io/2015/05/21/rnn-effectiveness/

特性

  • RNN版本仍然依赖numpy
  • 添加批处理
  • 将RNN修改为LSTM
  • 包括梯度检测

DNC

实施

  • LSTM控制器
  • 2D存储器数组
  • 内容可寻址的读/写

问题

关键相似度的softmax会导致崩溃(除以0) – 如果遇到这种情况,需要重新启动

将要做

  • 动态内存分配/自由
  • 更快的实现(使用PyTorch?)
  • 保存模型
  • 例子

示例输出:

时间,迭代,BPC(预测误差 – >每个字符的位数,越低越好),处理速度

模型中的样本(alice29.txt):

检查反向传递的数值梯度(最右边的列应该具有值<1e-4);

中间列具有计算的分析和数值梯度范围(这些应该更多/更少)

文章出处

由NumPy中文文档翻译,原作者为 krocki,翻译至:https://github.com/krocki/dnc

关于dnc、rnn、lstm 的实现源码都在https://github.com/krocki/dnc