Fig 1: User Equipment Distribution Fig 2: UE with regard to BS
Design and develop a scalable and lightweight signal strength prediction model with the help of a Digital Twin (DT)(DRIVE) and VAE to improve prediction accuracy for the existing mobile networks.
This project aims to explore the use of a 2-stage Neural Network (NN) which consists of a Variational Auto-Encoder(VAE) and another NN for Reference Signal Received Power (RSRP) prediction to improve QoS (Quality of Service).
- Explore the use of an existing DT (self-dRiving Intelligent Vehicles (DRIVE)) and modify it to generate synthetic data which combines both real-world data and spatial data from Open Stree Map (OSM).
- Develop a first stage model with a VAE architecture, train it with the generated synthetic data as input and make use of model optimisation techniques such as data augmentation and normalisation to improve the converge time and generalisation of the model
- Extract the computed environmental features from the encoder part of VAE after training the VAE.
- Integrate the extracted environmental features and real-world data into a second stage model for training.
- Use only real-world data to train a multilayer perceptron (MLP) in parallel, with the same hidden layers as the second part of the 2-stage NN for comparison.
- Evaluate the performance of the trained 2-stage NN against the trained MLP in terms of Mean Absolute Error (MAE) in RSRP prediction.
-
Install the Python development environment on your system
pip3 install torch torchvision
Install DRIVE_Simulator
The installation process for DRIVE can be found in userManualDRIVE.pdf
Install traci4matlab
See instructions here
Add-Ons Requirements for DRIVE_Simulator
- Parallel Computing Toolbox Perform parallel computations on multicore computers, GPUs, and computer clusters
- Mapping Toolbox Analyze and visualize geographic information
- Statistics and Machine Learning Toolbox Analyze and model data using statistics and machine learning
- MATLAB Support for MinGW-w64 C/C++ Compiler Install the MinGW-w64 C/C++ compiler for Windows (If the OS running is Windows)
Output a list of available conda env
conda env list
Active the conda environment
conda activate py38_torch
Alternatively install all the necessssary packages from src/requirements.txt
(which is generated by pip freeze >> requirements.txt
pip install -r /src/requirements.txt
Any installation debugging can be found in Debug/README.md
If the setup all goes well you should see output from Command Window,Command Prompt & figure(which contains the simulation of ambulance, passenger&pedestrian over 200 timesteps). In addition to the main output, you should also see preprocessed .mat files output in a new folder (/DRIVE_Simulator/mobilityFiles/preprocessedFiles/sumo).
After running the modified DRIVE source file, DRIVE generates synthetic data {numerical(real world dataset(𝑥‚𝑦)) + spacial(Open Street Map data)} as input/data for the next stage
Use the sythetic data from the previous step as input to train the VAE
python3 src/VAE/VAE_train.py
Then extract the environmental features 𝒵(mean(μ_e) and log variance(log(σ_e)))
python3 src/VAE/VAE_exactor.py
Use the extracted environmental features(𝒵) along with numerical data (𝑥‚𝑦) as input to train & test a MLP for RSRP prediction. For Comparison, use only the numerical data (𝑥‚𝑦) as input to train & test MLP as baseline.
python3 src/FCN/FCN.py
Then plot the graph to see results:
python3 src/FCN/Plot_DP_results.py
Final output using Mean Average Error (MAE): 2-stage NN(VAE+MLP) vs MLP
Fig3: MAE boxplot for the 2-stage NN and MLP comparison