Hacker News new | past | comments | ask | show | jobs | submit login

You rely on mapreduce, so you don't have the ability to calculate any function. You can only calculate catamorphisms of your data, ( http://en.wikipedia.org/wiki/Catamorphism ). You can't solve a SAT problem effectively using mapreduce over the tree of the expression for example. I can't think of a case where you'd want to calculate a function that isn't a catamorphism, but saying that you aren't restricted to them is wrong.



Is "median" expressible as a catamorphism? What about a neural network propagation?


First, let me explain what I mean by catamorphism. I mean a function that operates on the data within a node of a tree and the values returned by performing the catamorphism on its child nodes.

To find the median, you need the data sorted. You can express something like mergesort as a catamorphism. You take the lists of the child nodes and the singleton list of the value at the node and merge them together. However you have to do a linear amount of work at each node and store a linear amount of data, so it's not really within the spirit of mapreduce because it doesn't scale well, although it is possible.

Catamorphisms are operations on trees, so the first problem with neural networks is that you'd have to embed your neural network in a tree. In the worst possible case, a fully connected network, to find the next value of each neuron, you'll have to find the current value of every other neuron. The problem is that you don't have access to "cousin nodes'" data, so it isn't possible.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: