Recurrent Neural Networks for Counteraction Recommendation in Air Defense

Final course project focusing on RNN and LSTM networks.
Click on “View live version >>” to read full report.
For the final project of the course DD2424 Deep Learning in Data Science, I continued a previously unfinished hackathon project. I explored the possibility of using Recurrent Neural Networks (RNN) for counteraction recommendation in air defense scenarios. The project evolved beyond its initial scope, requiring me to build a custom object-oriented framework supporting both RNNs and LSTMs. Additionally, I implemented experimental support to run computations on an AMD GPU using AMD’s ROCm and CuPy.
Background
As warfare changes drastically due to modern technology, such as drones and Low Earth Orbit (LEO) satellites, the humans in command must also improve their decision-making capabilities.As warfare changes drastically due to modern technology, such as drones and Low Earth Orbit (LEO) satellites, human commanders must improve their decision-making capabilities. One approach is utilizing calculated counteractions that serve as suggestions in high-stress situations while keeping the human in control. This project explored that concept, though it was carried out without a domain expert, making it a theoretical exploration of decision-making under perfect sensory conditions.
Approach
A simulation based on instructions from a SAAB hackathon was developed with one attacking and one defending side. Data was collected by running the simulation multiple times, recording every 25th state while the defending side relied on plausible random logic. After applying zero padding and global normalization, this sequential data was flattened and used to train various RNN and LSTM models to minimize the Mean Squared Error (MSE) of future threat values. The models were evaluated through simulated scenarios, revealing that optimal decision-making performance was achieved when the defending side aimed to maximize the defender’s threat score divided by the attacker’s threat score.

Results
Multiple random searches were conducted to compare architectures, sequence lengths, and prediction horizons (look-ahead steps). The final model selected was a 5-layer Simple RNN without L2-regularization, utilizing a sequence length of 16 time steps and a look-ahead horizon of 216 steps. Notably, this model successfully outperformed the purely random decision baseline (0.15 win ratio), achieving a peak win ratio of 0.53. The experiments also revealed an important insight: a lower test loss (MSE) did not directly translate to a higher win ratio.
Finally, by using a modified Docker container to utilize my AMD GPU through ROCm and replacing NumPy with CuPy, I achieved an 87% reduction in model training time (from 579s to 76s).
Below you can see one of the many plots displaying the result of different look-ahead values for a basic RNN model.

Reflection
As the project progressed, I noticed the scope was larger than anticipated, which impacted the quality of the final results. For instance, more time should have been allocated to coding and fine-tuning the simulation, and exploring the metrics used when evaluating models and decisions. Furthermore, longer simulations would have been preferred, and exploring transformers would have been a natural next step, but the project was constrained to RNNs and LSTMs to fit the scope of the course.
