How anomalous movement detections are reflected in the app
The anomalous vessel movement detection model is applied to the track of every vessel that is not fishing, not at port, or is at least 3 km from shore. Portions of the track where the vessel movement is determined by the model to be anomalous are coloured orange on the map. Each continuous anomalous movement event with stop and start times are listed in the vessel track history.
How anomalous movements are identified
The GeoTrackNet model
The method we use to determine anomalous vessel movements is based on a model called GeoTrackNet.
GeoTrackNet is a maritime anomaly detector that uses probabilistic representation for AIS tracks and a contrario anomaly detection. It learns what is normal based on historical track movements and then flags any movement that is abnormal in relation to this.
GeoTrackNet uses a variational recurrent neural network (VRNN), a machine learning algorithm, which is a particularly effective approach for probabilistic time series modelling. Instead of predicting a single value, as a typical neural network might, the output of the VRNN is a probability distribution. The model uses this to determine the probability of a vessel’s movements and position. Anomalous points are those with a probability less than a prescribed threshold.
The final element is a geospatial a contrario detection. This allows for the probability thresholds to be regionalised so that there is not a single global threshold to define an anomalous movement. This provides sensitivity which gives the model added context for the varying activities seen in different geographic locations like transiting, port visits, or fishing.
There is no ground truthed dataset for anomalous movement. This means that in order to assess the effectiveness of GeoTrackNet, it has been benchmarked against five other anomaly detection models. It performs well during this benchmarking and offers the benefits of anomaly detection for both geographic, course and speed related anomalies. The model is also able to accept additional spatio-temporal information which means in future it could take into account oceanographic information.
GeoTrackNet has been developed by researchers at IMT Atlantique and Collecte Localisation Satellites (CLS), who have offered this as an open source library to benefit those working in maritime domain awareness and vessel monitoring. Read the latest GeoTrackNet publication→
Model training and development using Starboard data
The first step in the anomaly process is the training and refinement of the model. To train GeoTrackNet for Starboard we used a dataset consisting of ~1.7 million global vessel tracks over 2 years. Each vessel track is derived from AIS positions, speed, and course. Track lengths vary between 4 and 24 hours and are resampled to 10 minute intervals. We also remove points within already explained vessel activities such as port visits and fishing.
Running the model to find anomalous movements
We run the model every 3 hours using AIS data. This step involves creating tracks for each vessel, passing these through the model, and recording the probabilities output at each timestep. These probabilities are then compared against a predetermined threshold and points that are below the threshold are marked as abnormal. If there is a number of abnormal points within a given time range (up to 4 hours), that section of the track is labelled as anomalous. This exact number is set by the number of false alarms threshold.
Setting thresholds to minimise false alarms
There are 2 main thresholds that we set that influence what activity gets labelled as anomalous. These are:
Localised probability threshold. This determines what individual points get labelled as abnormal. The current version of the model uses a value of 5% to determine this threshold. The threshold is calculated for each resolution 3 H3 cell by taking a sample of the model probabilities generated using tracks in the training set within neighbouring H3 cells. The probability value at which 5% of the sampled points are below (i.e. the 5th percentile) is set as the threshold for that H3 cell.
Number of false alarms threshold. This threshold determines how many abnormal points need to be in the sequence of points in order for the sequence to be labelled as anomalous. It can be interpreted as the expected number of times the sequence of abnormal points would occur by chance. The current version of the model uses a number of false alarms threshold of 0.000001. For example, if the sequence length is 24 (4 hours if the points are 10 minutes apart), 12 abnormal points would be needed to flag the sequence as anomalous, as the expected number of times this would occur by chance is less than 0.000001.
These values were arrived at via experimentation. We have aimed to minimise the number of false detections and ensure we capture as many true anomalous movements as possible. Because this is a trade-off, it is still likely that there will be anomalies flagged that do not seem to be anomalous, or movements that appear to be anomalous but not flagged. We are continuing work to further refine the approach we use and the thresholds involved in labelling anomalous movements.
Frequently asked questions
Why was this movement not labelled as anomalous?
Movements that look anomalous but have not been flagged usually indicates that the movement has not met the number of false alarms threshold mentioned above.
Why did this movement get flagged as anomalous?
Movements that do get flagged usually fall into one of two categories. The first and easiest to understand is a sudden or unusual speed and/or course change. These are usually easy to spot in the app by moving the timeline scrubber and looking at changes in speed or course.
The second type of anomalous movements that get flagged is related to the path the vessel is taking. Often if a vessel is travelling along a path that crosses or is some distance from heavily frequented shipping lanes then it may get labelled as anomalous. These anomalies can be understood by viewing the vessel track with the surrounding tracks visible over a longish time range (a week or so).
Can I report a movement I think should or should not be flagged?
Yes. We are really interested in feedback about what we have missed, or movements that should not have been flagged. While we do our best to minimise the number of these, it is unlikely that we will reduce these to zero due to the probabilistic nature of the model. However, we welcome any examples or feedback you may have which will help us to improve the model.
To report a missed or false anomalous movement select the vessel of interest and a time range that encompasses the movement, copy the Starboard URL and paste it into the help chat with a short description. We’ll take a look at it.
Can it detect particular movement patterns?
No. This model is only able to detect movements that deviate from normal, not specific types of movements.