Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/clementfarabet/lua---nnx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaetanMarceauCaron <gaetan.marceau-caron@inria.fr>2016-04-13 16:39:08 +0300
committerGaetanMarceauCaron <gaetan.marceau-caron@inria.fr>2016-04-13 16:39:08 +0300
commit1415827005e085fc475e88733538f42ed4270e71 (patch)
tree1ed7785ecf92cf1fa2cbbaed15753ee8a9e4d4ad
parent54a41874947775391d233c8f02719d0da8798f6c (diff)
Adding the description of the QDRiemaNNLinear module
-rw-r--r--README.md17
1 files changed, 16 insertions, 1 deletions
diff --git a/README.md b/README.md
index d28d8b4..5a7fa4e 100644
--- a/README.md
+++ b/README.md
@@ -14,8 +14,9 @@ This section includes documentation for the following objects:
* [PushTable (and PullTable)](#nnx.PushTable) : extracts a table element and inserts it later in the network;
* [MultiSoftMax](#nnx.MultiSoftMax) : performs a softmax over the last dimension of a 2D or 3D input;
* [SpatialReSampling](#nnx.SpatialReSampling) : performs bilinear resampling of a 3D or 4D input image;
+ * [QDRiemaNNLinear] (#nnx.QDRiemaNNLinear) : quasi-diagonal reduction for Riemannian gradient descent
* [Recurrent](#nnx.Recurrent) : a generalized recurrent neural network container;
-
+
<a name='nnx.SoftMaxTree'/>
### SoftMaxTree ###
A hierarchy of parameterized log-softmaxes. Used for computing the likelihood of a leaf class.
@@ -224,6 +225,20 @@ The re-sampled output:
![Lenna re-sampled](doc/image/Lenna-150x150-bilinear.png)
+<a name='nnx.QDRiemaNNLinear'/>
+### QDRiemaNNLinear ###
+The Quasi-Diagonal Riemannian Neural Network Linear (QDRiemaNNLinear) module is an implementation
+of the quasi-diagonal reduction of metrics, used for Riemannian gradient descent.
+The algorithm is defined in http://arxiv.org/abs/1303.0818 and an efficient implementation is described in http://arxiv.org/abs/1602.08007.
+To use this module, simply replace nn.Linear(ninput,noutput) with nnx.QDRiemaNNLinear(ninput,noutput).
+As always, the step-size must be chosen accordingly.
+Two other arguments are also possible:
+gamma (default=0.01): determine the update rate of the metric for a minibatch setting, i.e., (1-gamma) * oldMetric + gamma newMetric. Should be set to 1/#minibatch
+qdFlag (default=true): Whether to use the quasi-diagonal reduction (true) or only the diagonal (false). The former should be better.
+
+To implement a natural gradient descent, one should also use a module for generating the pseudo-labels.
+
+
## Requirements
* Torch7 (www.torch.ch)