Say I have an array of data, where each element describes a shape made of points, in vector form (each vector has several hundred dimensions). Each element also has a rating that gets higher, the closer that element's shape is to some template - for example, a sphere (where each point has a specific position).

I need a neural net to be able to analyse this array, figure out the optimal shape(s), and then optimize the elements until they all have the highest possible rating (until each matches a template shape).

My initial approach was to first train a neural net to predict a rating for an element of the array (that part worked really well), and then backpropagate a gradient of 1, to get what changes need to be made in the array to get a higher rating - similarly to how actor gradients are obtained in actor-critic reinforcement learning. Here I should clarify what this means: we propagate the data forward through the net, the net makes its prediction, but instead of its gradient (the difference between its prediction and an actual rating) it gets a gradient of 1. And that is then propagated back and applied to the vector of the array, like we would update biases in a neural net.

This has not worked so far. The neural net does not provide adequate gradients to optimize the vectors in the array, although its predictions of their ratings are correct. I think this happens because whatever mechanism the net uses for prediction simply does not unravel back to any specific shape. How do I change this for it to work? Or, what method should I use instead?



You must log in to answer this question.