Dataflow matrix machines as generalized recurrent neural networks

Dec 27, 2016 01:29

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.( Read more... )

advanced software, artificial intelligence, machine learning, strange technology, computer science, dataflow matrix machines, neural nets, software continualization

Leave a comment

anhinga_anhinga December 28 2016, 22:21:59 UTC
The following post "The Unreasonable Effectiveness of Recurrent Neural Networks" by Andrej Karpathy illustrates the remarkable power of LSTM as a machine learning platform ( ... )

Reply

datjko December 29 2016, 10:40:10 UTC
Misha, thank you, looks very interesting but I'm rather a newbie here. Could you answer a first bunch of my silly questions here or give me a link to some introduction? I started learning ml more or less seriously only recently and some looking into the papers you gave makes it clear for me: it's yet another interesting story I started to listen from the middle of the book ( ... )

Reply

anhinga_anhinga December 30 2016, 04:22:44 UTC
Привет! Let me start with answering your questions, then pointing to some links ( ... )

Reply

datjko December 30 2016, 05:56:58 UTC
Привет!
Wow! So generic and still workable!
I'll try to read through and return with new questions. How nice to be able to get answers from first hands.
May be you could also write some post resolving some typical noob questions and difficulties in understanding? Say, assuming not bad undergraduate background in CS/ML/FP of the reader? I believe many people would greatly appreciate it.
Thank you, Misha!

Reply

anhinga_anhinga December 30 2016, 17:49:05 UTC
Привет!

Yes, I think it is a very interesting class of models and a very interesting computational platform. All standard methods of machine learning should be applicable to it.

My real hope is, of course, that it would allow to create better methods of machine learning in the coming year. So I invite people to try to make progress in that direction, both on their own and in collaboration with me :-)

***

Speaking of questions and difficulties, this conversation is a good start. Other people might read it and find it useful. So it would be great, if you have more questions!

Reply

datjko December 30 2016, 20:57:41 UTC
Миша, спасибо, я с удовольствием постараюсь вчитаться в работы вашей группы, может попробую что-то перенести на tensorflow в следующем месяце. Но я - только любитель, и мои вопросы могут наоборот уводить от важной сути, а не помогать хорошим людям ее разглядеть. Вот если бы ты (если не ошибаюсь, когда я был школьником и приходил заниматься какими-то фигнюшками в ЦЭМИ, мы были на ты, да?) сам придумал и отобрал важные вопросы и на них ответил в каком-нибудь тексте на гитхабе, где его найдут рядом с работающим кодом, пользы людям было бы точно больше. А ненужных вопросов я еще назадаю :-)
Ханука самеах и удачного 2017!

Reply

anhinga_anhinga December 31 2016, 02:51:23 UTC
я тоже стал слегка смотреть на tensorflow на предмет того, насколько легко/трудно перенести туда что-то из DMMs.

насколько много ты уже возился с tensorflow? (один из моих вопросов, какая там ситуация со sparse tensors; я знаю, что они там есть, но насколько легко их использовать, например в существующих имплементациях шагов по градиенту?)

да, мы, конечно, были на ты :-)

***

ну, вот, я пока что добавил сюда комментарий со списком Clojure links, которые мне пригодились в этом году, для тех, кому может захотеться освоить Clojure, или читать код, на нём написанный... Но иметь версии также на более общедоступных языках, конечно, было бы правильно, как и иметь tutorials/FAQs получше...

Ханука самеах и с Новым Годом!

Reply

datjko January 1 2017, 10:31:06 UTC
Миша, я, увы, еще полный чайник и в tensorflow только немножко поиграть успел (а во все остальное кафе/торч/теано даже и не играл). Я даже не ожидал, что в tensorflow уже есть sparse tensors, я думал как бы без них обойтись, а ты мне открыл глаза. Ну, теперь надо тоько постепенно сцедить в одну воронку все что я выучил за этот месяц - раньше руки не доходили.

За ссылки на кложур тоже спасибо! (краснея) я его тоже не знаю, но собирался узнать, когда свалится на голову. Похоже, что уже.

- и иметь tutorials/FAQs
- Да! я постараюсь вчитаться и придумать что спросить и как поиграть, чтобы стало понятнее.
Буду держать в курсе :-)

Reply

datjko January 2 2017, 10:39:58 UTC
я пытаюсь понять азы.
1. что такое "generalized animation"? это что-то из более ранних работ? это знать?

2. "Recurrent maps are maps which map arbitrary legal hash-map keys into numbers or other recurrent maps." - ок. Как вы из него делаете векторное пространство? Можешь в двух словах пересказать что написано в src/dmm/core.clj или куда посмотреть?

3. в http://www.cs.brandeis.edu/~bukatin/DataFlowGraphsAsMatrices.pdf не упоминается нейрон Селф. Это потому что вы его потом ввели, вместе с двухтактным двигателем, или двухтактный двигатель - это частная implementation detail?

Это я не читая пытаюсь понять как это все читать.

Reply

datjko January 2 2017, 11:17:28 UTC
ой про 3 - я понял, что двухтактный двигатель - это про входы и выходы, а не то что я извлек из каши в голове, что это на ап - процессим данные, а на даун - апдейтим веса нейроном Селф.

Reply

anhinga_anhinga January 2 2017, 18:54:07 UTC
Привет ( ... )

Reply

datjko January 2 2017, 20:50:39 UTC
1. thank you, it's indeed interesting ( ... )

Reply

anhinga_anhinga January 3 2017, 00:16:06 UTC
1. It would certainly be nice to create intelligent masterpieces :-) Not a bad subject for meditation and, with some luck, experiments ( ... )

Reply

datjko January 3 2017, 07:14:30 UTC
I keep reading in small portions time to time.

1.
"
let's agree that ihe first level of hash-map keys would name the respective input and output streams and map to their latest values.
...
Therefore the root keys should be types of neurons.
"

Neuron types or instances of neurons? - ok, i see, instances are the next level.

2.
"
A map from names of the built-in transformers to (the map from names of the individual neurons to (the map from names of their output streams to the respective non-zero matrix coefficients)).
In the first quote you said about naming both input and output streams and here only about output ( ... )

Reply

anhinga_anhinga January 3 2017, 15:11:34 UTC
Привет ( ... )

Reply

anhinga_anhinga January 3 2017, 15:35:33 UTC
> The "computation matrix" *is* that prefix tree of chains of keys that we were talking about (aka recurrent map), and a rule for computing the next step is to traverse it up to each individual neuron and apply the neuron's function to the subtree of arguments, producing a new subtree of output values

Yes, this is an "up movement" of the two-stroke engine. In the current version of

https://github.com/jsa-aerial/DMM/blob/master/src/dmm/core.clj

see the comments starting from line 303 at the end of this file, and the two functions at the bottom implement the traversal (when you decide you want to read the code, the important function to understand is reduce, this whole DMM codebase is constructed around it: https://clojuredocs.org/clojure.core/reduce )

Reply


Leave a comment

Up