Is a Restricted Boltzmann Machine appropriate for predicting a vector? I have a very large set of animal migration data, consisting of many series of vectors - each series is basically a path of a single animal. The dataset I'm using consists of 244 of these series.

I want to train a generative algorithm so that when it is given a collection of these series and a map of environmental variables, such as a map of ocean surface temperature, it can develop a model of how an animal reacts to these variables; when I feed it new variables, it would generate a new set of vectors.
My question is which machine learning algorithm would be optimal for this kind of prediction - I was looking into multinomial logistic regression, but that is for categorical data. I want the algorithm to develop a model that thinks "at a point with an ocean surface temperature of 20˚C, an animal will travel along a vector with a magnitude of 35km and an angle of 34˚".
Can a Restricted Boltzmann Machine be used to develop this kind of model? I would train the RBM with a set of vectors, each with environmental variables coupled to the head and tail of the vector - would the RBM be able to create a new set of vectors if I then fed in different environmental variables?
 A: Woaw, this is a really interesting problem. Based on what you write below it does not seem like you want a generative algorithm, but instead a discriminative algorithm (see this post). A generative algorithm would think "given a magnitude of 35km and an angle of 34˚, the temperature was likely 20˚C".

I want the algorithm to develop a model that thinks "at a point with an ocean surface temperature of 20˚C, an animal will travel along a vector with a magnitude of 35km and an angle of 34˚".

If you think it would make sense to just model the relationship between temperature and direction (perhaps with magnitude) then you could use all sorts of regression methods. However, this doesn't take into account the current location, the path that the animal has moved for the last days etc.
In general, I think you should really consider how you pose the problem. Instead of having two different representations (a list of paths and a map of surface temperature), I would try to have a single representation. Similarly, be clear about the wanted output from the model. Training deep neural networks for regression is difficult - especially if you want to output two continuous variables (angle + magnitude). Instead you could make the map into a grid and then model the choice of going in any of the 8 directions on the grid.
This could be modeled it using a recurrent neural network (RNN) or a variant of this called a long short-term memory (LSTM) network. These networks are fed lists of variable size to predict an outcome (see 'many-to-one classification' here). As input you would have a list of observations, where each observation contains e.g. the following info: (time, map_location, ocean temperature). To generate a path given a temperature map and a starting position you would in an iterative manner input the current path and temperature to the RNN, output the next move and then do it again. Something very similar is already done to generate text using RNN and LSTM.
