Model Training
In the tabs to the left are the scripts for the training the deepSSF model.
The goal of training the model are to use backpropagation to find the parameters of the convolution filters in the habitat network that result in high probability of selection for the underlying covariate values and features, and the parameters of the convolution filters and fully-connected layer parameters that result in a movement kernel that captures the observed movement dynamics. Both of these processes depend on the time of the day and year, which will influence the predictions by their inclusion as covariates.
Here’s an animation of the model’s predictions for a single step as it trains.
If we have some set of covariates:
And what we are trying to predict, or the target, is the location of the next step, which might look something like this:
All of the parameters start as random values, but as the model learns it starts to pick out certain features of the landscape that buffalo moved towards or away from, and the movement and habitat selection probabilities start to balance as the model gives weight to both processes. As these processes are being trained we can see the loss function decreasing, indicating that the probability values at the observed next step are increasing.
As the model fine-tunes, the habitat selection process becomes more defined in the next-step probabilities.
Scripts
There is a script for training the deepSSF model using the derived covariates (NDVI, canopy cover, herbaceous vegetation and slope), and one for the Sentinel-2 satellite imagery + slope.
Both of these scripts are written in Python, and PyTorch is used for training the models.