anhinga_anhinga: (Anhinga)
anhinga_anhinga ([personal profile] anhinga_anhinga) wrote2016-12-27 01:29 am

Dataflow matrix machines as generalized recurrent neural networks

A year ago I posted about dataflow programming and linear models of computation:

http://anhinga-anhinga.livejournal.com/82757.html

It turns out that those dataflow matrix machines are a fairly powerful generalization of recurrent neural networks.

The main feature of dataflow matrix machines (DMMs) are vector neurons. While recurrent neural networks process streams of numbers, dataflow matrix machines process streams of representations of arbitrary vectors (linear streams).

Another important feature of DMMs is that neurons of arbitrary input and output arity are allowed, and a rich set of built-in transformations of linear streams is provided.

Recurrent neural networks are Turing-complete, but they are an esoteric programming language, and not a convenient general-purpose programming platform. DMMs provide a formalism friendly to handling sparse vectors, conditionals, and more, and there are indications that DMMs will grow to become a powerful general-purpose programming platform, in addition to being a convenient machine learning platform.

In this context, it is possible to represent large classes of programs by matrices of real numbers, which allows us to modify programs in continuous fashion and to synthesize programs by synthesizing matrices of real numbers.

Further details and preprints

Self-referential mechanism: Consider a linear stream of matrices describing the connectivity pattern and weights of a DMM. Select a dedicated neuron Self emitting such a stream on its output, and use the latest value of that stream as the current network matrix (matrix describing the connectivity pattern and weights of our DMM). A typical Self neuron would work as an accumulator taking additive updates from other neurons in the network. This mechanism enables reflection facilities and powerful dynamic self-modification facilities. In particular, the networks in question have facilities for dynamic expansion.

The recent DMM-related preprints by our group:

https://arxiv.org/abs/1603.09002

https://arxiv.org/abs/1605.05296

https://arxiv.org/abs/1606.09470

https://arxiv.org/abs/1610.00831

Modern recurrent neural networks with good machine learning properties such as LSTM and Gated Recurrent Unit networks are naturally understood in the DMM framework as networks having linear and bilinear neurons in addition to neurons with more traditional sigmoid activation functions.

Our new open source effort

The new open-source implementation of core DMM primitives in Clojure:

https://github.com/jsa-aerial/DMM

This open-source implementation features a new vector space of recurrent maps (space of "mixed rank tensors"), which allows us to represent a large variety of linear streams as streams of recurrent maps. The vector space of recurrent maps also makes it possible to express variadic neurons as neurons having just one argument.

Therefore a type of neuron is simply a function transforming recurrent maps, which is a great simplification compared to the formalism presented in the preprints above. See the design notes within this open-source implementation for further details.

[identity profile] anhinga-anhinga.livejournal.com 2016-12-27 03:33 pm (UTC)(link)
I wonder if this strange "top-25" marking is real :-) (It is supposed to count the number of visits, but I doubt it can distinguish genuine visits from bots, and there was quite a bit of bot activity.)

In any case, I'll be happy to post further details/comments on DMMs and/or recurrent neural nets, if anyone wants them.

And, on the other note, I'll be happy to post Clojure notes, if anyone wants to see those. If anyone is potentially interested in learning Clojure (a JVM-based modern Lisp) or in improving their Clojure skills, those notes might come handy...
Edited 2016-12-27 22:08 (UTC)

[identity profile] bvn-mai.livejournal.com 2016-12-28 07:03 am (UTC)(link)
Я думаю, что многие заходят молча :) - это не боты. Ну а что касается деталей - мне это интересно.

[identity profile] bvn-mai.livejournal.com 2016-12-28 07:19 am (UTC)(link)
Кстати, 5-ти кратное повторение моего комментария - это явное свидетельство, что это не боты а кривые руки, новых владельцев ЖЖ.

[identity profile] anhinga-anhinga.livejournal.com 2016-12-28 04:06 pm (UTC)(link)
Да, глючит ужасно. Буду потихоньку писать серию комментариев к этому посту :-)

[identity profile] datjko.livejournal.com 2016-12-28 07:47 am (UTC)(link)
Hi Misha! I'm not quite a bot yet.
Please do post more details on DMMs and comments on RNNs. Thank you.

[identity profile] anhinga-anhinga.livejournal.com 2016-12-28 04:08 pm (UTC)(link)
Привет!

Cool, I'll be writing more comments in this post with the details.