scieee AI-readable full text Open interactive document viewer

Beamforming adaptativo basado en Deep Reinforcement Learning para comunicaciones IBFD (In-Band Full-Duplex)

Chuga Perugachi, José Daniel

Abstract

El continuo crecimiento´de contenidos a través de los actuales sistemas de radiodifusión, hacen necesaria una evolución hacia nuevas tecnologías que puedan cubrir las futuras necesidades. En el panorama de la televisión digital, el comité ATSC 3.0, propone una nueva arquitectura, IDL/ITCN, que permita realizar la convergencia hacia lo que denominan como la próxima generación de televisión digital. Sin embargo, estas nuevas tecnologías incorporan nuevos retos, como la gestión de una gran cantidad de señales interferentes. Dentro de este contexto, este proyecto tiene como objetivo establecer unas bases iniciales hacia lo que derivaría en una investigación mayor, la cual pueda facilitar la gestión de las señales de interferencia dentro de estos nuevos escenarios. Para ello, se propone una solución que combina las actuales técnicas para la gestión de interferencias, con algoritmos de machine learning. De esta forma se pretende obtener una solución más eficiente que la conseguida con los actuales sistemas.

Full text

MÁSTER UNIVERSITARIO EN INGENIERÍA DE LAS TELECOMUNICACIONES. TRABAJO FIN DE MÁSTER BEAMFORMING ADAPTATIVO BASADO EN DEEP REINFORCEMENT LEARNING PARA COMUNICACIONES IBFD (IN-BAND FULL-DUPLEX). Estudiante: Chuga, Perugachi, Daniel. Directores: Angueira, Buceta, Pablo; Montalban, Sanchez, Jon. Departamento: Departamento de Ingeniería de Comunicaciones Curso académico: 2021-2022. Bilbao, 11 de Septiembre de 2022. Resumen Español: El continuo crecimiento´de contenidos a través de los actuales sistemas de radiodifusión, hacen necesaria una evolución hacia nuevas tecnologías que puedan cubrir las futuras necesidades. En el panorama de la televisión digital, el comité ATSC 3.0, propone una nueva arquitectura, IDL/ITCN, que permita realizar la convergencia hacia lo que denominan como la próxima generación de televisión digital. Sin embargo, estas nuevas tecnologías incorporan nuevos retos, como la gestión de una gran cantidad de señales interferentes. Dentro de este contexto, este proyecto tiene como objetivo establecer unas bases iniciales hacia lo que derivaría en una investigación mayor, la cual pueda facilitar la gestión de las señales de interferencia dentro de estos nuevos escenarios. Para ello, se propone una solución que combina las actuales técnicas para la gestión de interferencias, con algoritmos de machine learning. De esta forma se pretende obtener una solución más eficiente que la conseguida con los actuales sistemas. Palabras clave: Agente, entorno, Deep Q-Network, IDL, ITCN, Beamforming, IBFD. Inglés: The continuous growth in content delivery through the current broadcasting systems makes necessary the evolution towards new technologies that can address future needs. In terms of digital television, the ATSC 3.0 committee proposes a new architecture, IDL/ITCN, to enable convergence towards the next generation of digital television. However, these new technologies incorporate new challenges, such as managing a large number of interfering signals. In this context, this project aims to establish the initial basis for further research to facilitate the management of interference signals within these new scenarios. For this purpose, we proposed a solution that combines current interference management techniques with machine learning algorithms. In this way, it is intended to obtain a more optimal solution than the one achieved with the traditional systems. Keywords: Agent, enviroment, Deep Q-Network, IDL, ITCN, Beamforming, IBFD. 1 Euskera: Egungo irrati-difusio sistemen bidez pairatu den eduki-hornikuntzaren gorakadak teknologia berrietaranzko bilakaera bat eskatzen du, egoera berri honek sortu dituen beharrei erantzun ahal izateko. Telebista digitalaren alorrean, ATSC 3.0 batzordeak arkitektura berri bat proposatzen du hurrengo belaunaldiarekiko konbergentzia gauzatu ahal izateko, IDL/ITCN bezala ezagutzen dena. Hala ere, teknologia berri horiek erronka berriak eskatzen dituzte, hala nola interferentzia-seinale askoren kudeaketa. Testuinguru horren barruan, proiektu honen helburua hasierako oinarriak ezartzea da, gerora, ikerketa handiago bat ekarriko lukeena egoera berri horien barruan interferentzia-seinaleen kudeaketa errazteko. Horretarako, interferentziak kudeatzeko metodo tradizionalak eta machine learning algoritmoak konbinatu nahi dira, egungo sistemekin lortutakoa baino irtenbide hobea lortzea ahalbidetuko dutenak. Gako-Hitzak: Agente, ingurunea, Deep Q-Network, IDL, ITCN, Beamforming, IBFD. 2 Índice general 1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2. Objetivos............................................................. 3 2.1. Objetivo global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.2. Objetivos específicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3. Beneficios ............................................................ 4 3.1. Beneficios técnicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.2. Beneficios económicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.3. Beneficios sociales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4. Metodología . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.1. Estado del arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.1.1. Beamforming basado en aprendizaje automático para canales MISO entre dos usuarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.1.2. Fast Beamforming basado en aprendizaje no supervisado para un enlace descendente MIMO. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.1.3. Fast Beamforming con Reinforcement learning en comunicaciones MIMO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.1.4. Beamforming robusto usando Multi-Agent Deep Reinforcement Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.2. Estudio del problema de auto-interferencia en los escenarios IDL/ITCN 9 4.3. Definición del entorno de simulación: Matlab y Quadriga.. . . . . . . . . . . . 10 4.4. Estudio y diseño del algoritmo Deep Q-Network . . . . . . . . . . . . . . . . . . . . 11 4.5. Implementación del modelo Beamforming basado en el algoritmo DQN 12 4.6. Simulaciones del modelo DQN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 5. Análisis del problema de Auto-interferencia en IDL/ITCN . . . . . . . . . . . . . . . . 13 5.1. Descripción general del problema de auto-interferencia . . . . . . . . . . . . . . 13 5.2. Beamforming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 6. Deep Reinforcement Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 6.1. Reinforcement Learning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 6.1.1. Componentes principales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.1.2. Estrategia para la selección de acciones: Exploración vs Explotación.................................................. 20 6.2. Tipos de algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 6.2.1. Q-Learning. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 6.2.2. Deep Q-Network . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 7. Diseño de la propuesta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 1 7.1. Creación del escenario en Quadriga y obtención de los datos de entrenamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 7.2. Diseño del modelo Beamforming en el receptor. . . . . . . . . . . . . . . . . . . . . . 29 7.3. Diseño del algoritmo Deep Q-Network. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 7.3.1. Escenario: entorno, agente, estados y acciones. . . . . . . . . . . . . . . . 32 7.3.2. Definición de la función recompensa. . . . . . . . . . . . . . . . . . . . . . . . . 34 7.3.3. Definición de los hiperparámetros del entrenamiento . . . . . . . . . . 36 7.3.4. Entrenamiento del modelo Beamforming basado en Deep QNetwork. ................................................. 38 8. Resultados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 8.1. Resultados previos: Definición de los hiperparámetros.. . . . . . . . . . . . . . . 42 8.1.1. Capas y neuronas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 8.1.2. Learning rate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 8.1.3. Número de epochs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 8.2. Resultados finales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 8.2.1. Primer planteamiento: generación automática del diagrama de radiación.................................................. 48 8.2.2. Segundo planteamiento: selección automática del diagrama de radiación definido dentro de un codebook. . . . . . . . . . . . . . . . . . . . 50 9. Plan de gestión.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 9.1. Descripción de los paquetes de trabajo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 9.1.1. Fase completa del proyecto. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 9.1.2. Fase 1 del proyecto.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 9.1.3. Fase 2 del proyecto.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 9.1.4. Fase 3 del proyecto.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 9.2. Diagrama de Gantt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 10. Conclusiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 Bibliografía.............................................................. 62 i ii Siglas 3GPP 3D Generation Partnership Project. 28 AI Artificial Intelligence. 2 AoA Angle Of Attack. 29 ATSC Advance Television Systems Committee. 1 CNN Convolutional Neural Network. 8 CSI Channel State Information. 8 DQN Deep Q-Network. 6 IBFD In Band Full-Duplex. 1 IDE Integrated Development Environment. 11 IDL In-Band distribution Link. 1 ITCN Inter-Towers Communications Network. 1 LDM Layered Division Multiplexing. 1 LTE Lont Term Evolution. 16 MADDPG Multi-Agent Deep Deterministic Policy Gradient. 8 MIMO Multiple-Input Multiple-Output. 7 MISO Multiple-Input Single-Output. 1, 6 MRT Maximum Ratio Transmissio. 6 MSE Mean Squared Error. 34 RL Reinforcement Learning. 24 ULA Uniform Linear Array. 29 WLAN Wireless Local Area Network. 16 WMMSE Weighted Minimum Mean Square Error. 7 ZF Zeroforcing. 6 iii Índice de figuras 1. Escenario de la comunicacion Downlink. Imagen tomada del articulo: [8] . 7 2. Esquemas del proyecto realizado [9] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 3. Esquemas del proyecto realizado [8] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4. Ejemplos de diferentes escenarios en Quadriga . . . . . . . . . . . . . . . . . . . . . . . . 10 5. Intercambio de información entre agente y entorno. Imagen tomada de la página [15]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6. ATSC 3.0 SFN con distribución inalámbrica en banda. Imagen tomada del artículo: [3] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 7. Esquemas de una conexión unidireccional ITCN/IDL. Imagen tomada del artículo [10] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 8. Diagrama de bloques de un nodo de red ITCN en banda. Imagen tomada del artículo [5] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 9. Ejemplo de Beamforming. Imagen tomada del enlace [16] . . . . . . . . . . . . . . . 16 10. Beamforming en el receptor para captar la señal del Transmisor 2. . . . . . . 17 11. Beamforming en un nodo ITCN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 12. Subconjuntos de algoritmos de machine learning. . . . . . . . . . . . . . . . . . . . . . . 18 13. Esquema de los componentes de un algoritmo Reinforcement Learning. . . 19 14. Estrategia epsilon-greedy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 15. Clasificación de los algoritmos RL modernos según OpenAI. Imagen tomada de la publicación: [17] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 16. Ejemplo de una tabla Q en un escenario simple. Imagen tomada de la publicación: [18] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 17. Diferencia entre Q-learning y DQN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 18. Escenario simulado con Quadriga. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 19. Respuestas de canales simulados en diferentes escenarios de Quadriga. . . . 28 20. Posibles escenarios de entrenamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 21. Onda plana que incide sobre la antena tipo ULA. Imagen tomada de [11] 30 22. Posibles diagramas de radiación a seleccionar por parte del receptor.. . . . . 30 23. Red Neuronal utilizada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 24. Esquema del entrenamiento del modelo Beamforming. . . . . . . . . . . . . . . . . . . 41 25. Entrenamiento con una red neuronal de 2 capas y 50 neuronas. . . . . . . . . . 42 26. Entrenamiento con una red neuronal de 2 capas y 100 neuronas. . . . . . . . . 43 27. Entrenamiento con una red neuronal de 2 capas y 300 neuronas. . . . . . . . . 43 28. Entrenamiento con una red neuronal de 2 capas y 400 neuronas. . . . . . . . . 44 29. Entrenamiento con una red neuronal de 3 capas y 300 neuronas. . . . . . . . . 44 30. Entrenamiento con una LR = 0.8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 iv implique una reducción de tiempo, se puede traducir directamente como un ahorro económico tanto en recursos humanos, como en tiempo empleado para elaborar otras tareas. 3.3 Beneficios sociales. Una mayor eficiencia en el uso de los recursos disponibles, tiene un impacto directo en el flujo de datos que se puede transmitir. Cuanta más capacidad se dispone para la transmisión de datos, mayor es el número de servicios que se pueden ofrecer, permitiendo así, poder mejorar la experiencia de usuario. Esto permitiría aumentar la calidad de los videos transmitidos, adaptándolos a las futuras necesidades requeridas en lo que será la nueva generación de televisión digital. 5 4 Metodología A lo largo de este apartado, se hará un resumen del procedimiento llevado a cabo para lograr conseguir los objetivos marcados en el apartado 2. Para ello, se hará uso del siguiente esquema, donde en cada uno de los apartados, se explicara resumidamente los pasos que se han llevado a cabo. 1. Elaboración del estado del arte. 2. Estudio del problema de auto-interferencia en los escenarios IDL/ITCN. 3. Definición del entorno de simulación: Matlab y Quadriga. 4. Estudio y diseño del algoritmo Deep Q-Network. 5. Implementación del modelo Beamforming basado en el algoritmo DQN. 6. Simulaciones del modelo DQN. 4.1 Estado del arte En primer lugar, se realizó una búsqueda en cuanto a modelos de Beamforming basados en algoritmos de machine learning. En esta búsqueda, se encontraron varios proyectos, donde la gran mayoría son elaborados dentro de escenarios 5G. Es muy común el uso de técnicas de Beamforming dentro de este tipo de escenarios, debido a la topología y arquitectura mallada por las que están compuestos, haciendo necesaria la gestión de un gran número de interferencias. Los proyectos que se han tenido en cuenta a la hora de realizar este proyecto, son los siguientes: 4.1.1 Beamforming basado en aprendizaje automático para canales MISO entre dos usuarios Este primer ejemplo, citado en el artículo [6], propone un diseño de Beamforming basado en redes neuronales profundas, dentro de un escenario compuesto por dos usuarios con canales de interferencia MISO. En este caso, los usuarios aprenden a seleccionar entre dos de los esquemas más populares para realizar Beamforming: Maximum Ratio Transmission (MRT) y zeroforcing (ZF). En cada momento, el modelo entrenado, le recomienda al usuario que esquema utilizar en función de los valores de la potencia de transmisión y los vectores de canal. Para lograr este objetivo, se entrena al modelo haciendo uso de un Dataset con diferentes datos etiquetados en 6 función de la potencia de entrada y los vectores de canal. De esta forma, en función de estos parámetros de entrada, el modelo aprende a realizar una clasificación correcta. 4.1.2 Fast Beamforming basado en aprendizaje no supervisado para un enlace descendente MIMO. En este segundo ejemplo [7], se propone un método de diseño Beamforming basado en un aprendizaje no supervisado que da una solución más óptima al clásico algoritmo WMMSE. Los algoritmos clásicos, como WMMSE, son soluciones óptimas pero de una alta complejidad computacional. Con el fin de reducir esta complejidad, se propone un modelo basado en redes neuronales profundas, que ofrece un servicio real-time solo con operaciones simples de la red neuronal. A diferencia que en el caso anterior, el entrenamiento se basa en un método de extremo a extremo sin muestras etiquetadas, evitando así, el complejo proceso de obtención de un dataset previo. Además, se hace uso de un algoritmo "pruning"para reducir la complejidad computacional y el volumen de la DNN, haciéndolo más adecuado para dispositivos de baja capacidad computacional. Figura 1 Escenario de la comunicacion Downlink. Imagen tomada del articulo: [8] 4.1.3 Fast Beamforming con Reinforcement learning en comunicaciones MIMO Este trabajo, citado en el artículo [9], se centra en la realización de un modelo Beamforming para comunicaciones mmWave (en onda milimétrica) basadas en comunicaciones MIMO. Su objetivo principal consiste en proporcionar un servicio continuo en 7 los dispositivos de alta movilidad, donde existe una gran presencia de interferencias y atenuación en la señal. En este caso, la creación del modelo se hace a través del algoritmo Deep Reinforcement Learning. Al igual que en el caso anterior, este es un algoritmo que no requiere de datos previamente etiquetados. Durante el entrenamiento, el modelo se aprende únicamente con las observaciones y recompensas obtenidas en cada instante de tiempo. Las recompensas, son valores que determina como de buena es una observación en función del objetivo final. (a) Disponibilidad de la red con el modelo Beamforming (b) Diagrama de bloques del sistema Figura 2 Esquemas del proyecto realizado [9] 4.1.4 Beamforming robusto usando Multi-Agent Deep Reinforcement Learning Finalmente, en el trabajo [8] se implementa un modelo Beamforming dentro de un escenario multicelular MISO en presencia de una información de estado (CSI) imperfecta. En este caso, el aprendizaje está basado en el algoritmo MADDPG (MultiAgent Deep Deterministic Policy Gradient), donde cada estación base actúa como un agente independiente, y cada uno dispone de una red neuronal DDPG con una estructura CNN (Convolutional Neural Network). El objetivo consiste en aprender a elegir la dirección correcta del beam, y a asignar la potencia de múltiples usuarios a través de un protocolo de intercambio de información limitado, con el único fin de proporcionar robustez frente a errores del CSI. 8 Figura 3 Esquemas del proyecto realizado [8] Una vez analizado estos ejemplos, se puede intuir que, la gran mayoría de modelos de beamforming basados en algoritmos de machine learning, no superan los resultados de los clásicos algoritmos de iteración como WMMSE, simplemente los igualan. Sin embargo, presentan una mayor eficiencia en cuanto a cálculo computacional, haciendo que sean de gran utilidad para servicios en tiempo real como los nuevos estándares de televisión. 4.2 Estudio del problema de auto-interferencia en los escenarios IDL/ITCN Tras realizar un estudio sobre las diversas alternativas de algoritmos de inteligencia artificial existentes para la creación de modelos Beamforming, se dio paso al estudio del problema al que se pretende dar solución. En este caso, como ya se ha mencionado en otros apartados, se trata del problema de auto-interferencia en los escenarios IDL/ITCN, debido al uso de comunicaciones IBFD. En primer lugar, fue necesario entender el escenario IDL/ITCN en el que se va a trabajar, con el fin de tener en cuenta todos los elementos necesarios, para su posterior simulación en un entorno de desarrollo. Para ello se tuvo en cuenta los artículos [3] y [4], entre otros, donde se describen las nuevas propuesta tecnológicas (los enlaces IDL y la arquitectura ITCN), que pretenden solventar las futuras necesidades en cuanto a calidad y capacidad, dentro de la nueva generación de televisión digital. Así mismo, otros artículos, como [5] o [10], fueron de gran ayuda para entender los beneficios de aplicar algoritmos de machine learning dentro de los escenarios IDL/ITCN. Finalmente, en esta misma sección, también se estudió el funcionamiento teórico de la técnica de Beamforming, que se pretende utilizar para cancelar la auto-interferencia 9 en los escenarios IDL/ITCN. La página [11], fue útil para la compresión teórica de esta técnica, y así poder ejecutarla dentro de un entorno de desarrollo. 4.3 Definición del entorno de simulación: Matlab y Quadriga. Una vez entendido los elementos que componen los escenarios IDL/ITCN, se dio paso a su simulación dentro de un entorno de desarrollo. Este entorno debe tener la capacidad de simular un escenario donde se dé el problema de auto-interferencia. Entre los múltiples proyectos encontrados a la hora de realizar el estado del arte, se encontró el repositorio [12]. Este repositorio contiene un proyecto que desarrolla un modelo beamforming, basado en un algoritmo de Reinforcement Learning, para escenarios 5G. En este caso, el escenario simulado es más complejo que el que se pretende llevar a cabo, ya que en él, se tienen en cuenta la gestión de múltiples interferencias provenientes de diferentes usuarios en movimiento. Aun así, es una buena referencia como punto de partida. Según la definición de este proyecto, el escenario de simulación se puede ejecutar tanto en Matlab, como en Octave. Ambas plataformas hacen uso de los recursos proporcionados por el simulador de canales, Quadriga. Este generador es muy conocido por los resultados realistas que proporciona a la hora de simular modelos de canal. (a) Ejemplo de multi-frecuencia Quadriga. (b) Ejemplo de movilidad Quadriga. Figura 4 Ejemplos de diferentes escenarios en Quadriga Con el fin de poder diseñar y simular el escenario deseado, ha sido necesario aprender a manejar los recursos proporcionados por Quadriga. En su página oficial [13], viene recogida toda la información sobre las funciones y escenarios que se pueden simular, además de varios ejemplos ya realizados, que permiten estudiar su funcionamiento. Tras realizar estos ejemplos, fue posible elaborar un escenario que suministre los datos necesarios para alimentar el entrenamiento del algoritmo de Deep Q-Network. Este entrenamiento se lleva a cabo en otro editor conocido como Spyder, el cual trabaja 10 sobre el lenguaje Python. Este IDE es comúnmente utilizado para el desarrollo de modelos basados en algoritmos de machine learning. 4.4 Estudio y diseño del algoritmo Deep Q-Network Antes de empezar a programar dentro de Spyder, fue necesario estudiar y entender el funcionamiento de los algoritmos de Reinforcement Learning. En particular, los de la familia Q-Learning, a la cual pertenece el algoritmo Deep Q-Network [14] que se va a utilizar en este proyecto. La familia de algoritmos Q-Learning, centra su aprendizaje en el intercambio de información entre un agente y un entorno. En estos escenarios, el entorno es el encargado de proporcionarle la información necesaria al agente, para que este aprenda a moverse dentro de él. Ambos actores han sido creados dentro de Spyder, haciendo uso de la librería TensorFlow, la cual viene explicada en su página web [15] a través de diversa documentación. Además de la documentación oficial, ofrece información detallada sobre los diferentes tipos de algoritmos de machine learning con los que se puede trabajar, los de Reinforcement Learning entre ellos, y varios tutoriales para su implementación. La realización de estos tutoriales y pruebas varias, han sido útiles para conocer los diversos parámetros e hiperparámetros, necesarios de gestionar para entrenar este tipo de algoritmos. Los parámetros e hiperparámetros, son los conjuntos de valores que se deben ajusta a la hora de crear el modelo para un problema dado. En este caso, es de interés conocer los hiperparámetros que se deben manejar, ya que a diferencia de los parámetros de un modelo, estos son los valores de las configuraciones utilizadas durante el proceso de entrenamiento. Estos valores no se obtienen de los datos, y a priori no se puede conocer su valor óptimo con exactitud. Por lo que generalmente se tiende a usar reglas genéricas, valores para los cuales ya se ha comprobado su eficacia, o simplemente se busca la mejor opción mediante prueba y error. Figura 5 Intercambio de información entre agente y entorno. Imagen tomada de la página [15]. 11 4.5 Implementación del modelo Beamforming basado en el algoritmo DQN Tras haber estudiado el escenario de auto-interferencia IDL/ITCN que se debe simular, y los diversos algoritmos de Reinforcement Learning con los que se puede construir un modelo Beamforming, se dio paso a la combinación de ambos conceptos para la construcción de la solución propuesta. Por una parte, haciendo uso de Octave y Quadriga, se elaboró un escenario compuesto por 2 transmisores, uno para la señal deseada y otro para la señal de interferencia, además de un receptor para captar ambas señales. Con el escenario montado, se realizaron varias simulaciones en las que los transmisores iban cambiando su posición. Este movimiento de los transmisores, permitió obtener una mayor variedad en los canales simulados, y de esta forma, una mayor cantidad de datos para el entrenamiento del algoritmo. Esta información es almacenada para su posterior uso en la creación del entorno de entrenamiento del algoritmo dentro de Spyder. Durante el entrenamiento, el entorno hace uso de los datos almacenados para proporcionar al receptor, que este caso actúa como agente, la información sobre el estado del canal. Con esta información, el agente debe ir aprendiendo a lo largo del entrenamiento a seleccionar, entre un abanico de posibles diagramas de radiación, un diagrama que le permita realizar una mayor cancelación de la señal de interferencia. 4.6 Simulaciones del modelo DQN Finalmente, con todos los módulos montados y comunicándose entre sí, se realizan varias pruebas con el fin de ajustar los valores de los hiperparámetros. Esta es una tarea que conlleva mucho tiempo, debido a los múltiples hiperparámetros que se deben ajustar, y al tiempo de duración de cada entrenamiento. En cada prueba, se entrena y evalúa al modelo con los mismos datos. Una vez que se consigue una alta puntación de predicción para los datos de entrenamiento, el modelo es evaluado con otros datos diferentes. De esta forma, se comprueba si su conocimiento es extrapolable a otros escenarios similares para los cuales no ha sido entrenado. Tras explicar de forma resumida lo realizado a lo largo del proyecto, se da paso a explicar de una manera más detallada ciertos puntos de interés, que son importantes a la hora de entender los pasos realizados. 12 5 Análisis del problema de Auto-interferencia en IDL/ITCN Tal y como se ha mencionado en el apartado de 4, con el fin de comprender el problema de auto-interferencia al que se pretende dar solución, fue necesario estudiar los escenarios IDL/ITCN. En este apartado, se explicará con más detalle los conceptos que se describen en los artículos [3] y [4], donde se explican las propuestas de los enlaces IDL, y la red de comunicación ITCN. Además, se explicará en que consiste la técnica de Beamforming, y como se pretende aplicar esta técnica dentro de los escenarios IDL/ITCN. 5.1 Descripción general del problema de auto-interferencia Los autores del artículo [3], explican como el enlace de distribución IDL pretende transmitir las señales de backhaul (datos de distribución) y de control en la misma banda de frecuencias que el servicio de televisión. De esta forma, las torres de transmisión que proporcionan cobertura de TV, se comunicarían de forma inalámbrica utilizando el mismo espectro que el contenido de difusión transmitido. Las señales de backhaul y de control se enviarían de una torre a la siguiente, donde cada torre actuaria como un nodo In-Band Full-Duplex (IBFD), haciendo que transmitan y reciban simultáneamente señales dentro del mismo canal de radiofrecuencia. Figura 6 ATSC 3.0 SFN con distribución inalámbrica en banda. Imagen tomada del artículo: [3] Posteriormente, los mismos autores en el artículo [4], propusieron la red de comunicación entre torres ITCN como una versión mejorada de los enlaces IDL. La propuesta 13 realizada consiste en un esquema de comunicación bidireccional, donde la comunicación entre torres no se realiza en cascada, sino que las torres podrán responder a la información recibida utilizando una red mallada, donde todos los nodos están conectados entre sí. Uno de los principales inconvenientes de este modelo es la elevada señal de interferencia, la cual es común en los sistemas IBFD. Lo que implica la necesidad de mecanismos de cancelación de la señal de alta eficiencia, sin embargo, los mecanismos actuales pueden no ser lo suficientemente útiles, debido a que se requiere una cancelación superior a los 60 dB para que se pueda desarrollar correctamente esta idea. Además, la etapa de cancelación de alto rendimiento requerida conlleva otros problemas como la limitación del rango dinámico. La siguiente figura muestra una vista esquemática de una comunicación dentro de una red ITCN/IDL, donde se ve reflejado el problema de auto-interferencia. Figura 7 Esquemas de una conexión unidireccional ITCN/IDL. Imagen tomada del artículo [10] En la figura 7, se puede ver como la señal que recibe la segunda torre viene reflejada por la siguiente ecuación: y(t)=xfws(t)∗hfws(t)+xlbs(t)∗hlbs(t)+n0(t)(5.1) donde el segundo factor de la ecuación: xlbs(t)∗hlbs(t)hace referencia a la señal de auto-interferencia que se pretende reducir. 14 Figura 14 Estrategia epsilon-greedy Hay muchas formas con las cuales se puede hacer decrecer la variable épsilon durante el entrenamiento. Una opción típica consiste en, multiplicar épsilon por una variable de valor inferior a la unidad, y que este vaya decreciendo exponencialmente en función del número de episodios recorridos (epsilon ∗valorN, donde Nes el número de episodios.). Otra opción más simple, consiste en restar a épsilon un valor inversamente proporcional al número de episodios ( 1 N, siendo N el número de episodios). En el momento de definir esta estrategia, será necesario seleccionar el valor de los hiperparámetros: −Valor inicial de épsilon. −Valor final de épsilon. −Valor con el que decrece épsilon. 6.2 Tipos de algoritmos Una vez definidos la terminología y los conceptos básicos de los algoritmos RL, en este apartado, se da paso a explicar el funcionamiento de algunos de los algoritmos más utilizados dentro del subcampo RL. Según la documentación de Open AI [17], una de las mayores compañías de investigación sobre IA, la clasificación de los algoritmos RL modernos se pueden representar a través del siguiente esquema: 21 Figura 15 Clasificación de los algoritmos RL modernos según OpenAI. Imagen tomada de la publicación: [17] Sin embargo, en esta sección, solo se explicarán los pertenecientes a la familia QLearning, que es de donde proviene el algoritmo Deep Q-Network, utilizado en este proyecto. 6.2.1 Q-Learning. Los algoritmos Q-learning, son aquellos que basan su aprendizaje en la ecuación de Bellman: Q(s, a)=r+γ∗maxa′Q(s′, a′)(6.1) Esta ecuación calcula un valor llamado: valor-Q, para un estado sy una acción a. El valor-Q, representa la ‘calidad’ de ejecutar dicha acción en dicho estado, y se calcula como la suma de la recompensa inmediata r, más una componente que representa la recompensa futura del siguiente estado. Este segundo factor. maxa′Q(s′, a′), es el valor Q que se obtiene tras ejecutar la mejor acción posible en el siguiente estado s′, y es multiplicado por un factor de descuento (γ) comprendido entre 0 y 1. El valor de γ, es un hiperpárametro que representa el peso que se le otorga a las recompensas a corto y largo plazo. En ejemplos simples de resolver, los valores Q obtenidos se pueden representar en una tabla Q: 22 Figura 16 Ejemplo de una tabla Q en un escenario simple. Imagen tomada de la publicación: [18] El ejemplo sencillo de la figura 16, dispone de una tabla Q, que consta de 4 acciones y 5 estados. Dentro de ella, se almacenan los valores Q que indican la idoneidad de ejecutar cada una de las acciones en cada estado. Inicialmente, tienen un valor igual a 0, y a medida que el entrenamiento avanza, estos valores se van ajustando hasta conseguir un mapa de estado-acciones que represente la política del agente. El hecho de poder representar la ecuación de Bellman 6.2.1 como una tabla o matriz de valores, hace que este tipo de escenarios sean muy sencillos de resolver. Sin embargo, en la vida real, los problemas constan de millones de estados diferentes y cientos de acciones distintas, haciendo que las tablas Q tomen grandes dimensiones, donde su uso ya no es viable. Es aquí donde surge el algoritmo Deep Q-Network o DQN, publicado en el artículo [14]. 6.2.2 Deep Q-Network El algoritmo DQN es una combinación entre el clásico algoritmo Q-Learning y las redes neuronales profundas. Es conocido que las redes neuronales profundas, son una herramienta muy útil para aproximar funciones no lineales. En el caso de DQN, permiten aproximar la función Q sin la necesidad de usar tablas para su representación, solucionando así, el problema de escalabilidad que presenta el algoritmo Q-learning. En estos casos, el estado actual proporcionado por el entorno, actúa como el input de la red, la cual genera como salidas un valor Q por cada una de las acciones posibles. 23 Figura 17 Diferencia entre Q-learning y DQN. En cuanto al proceso de aprendizaje, las redes neuronales actualizan sus parámetros θi, minimizando el error estimado por una función de perdidas que determina el error de predicción. Esta función se calcula como la diferencia entre el valor esperado (el real) y el valor de predicción. En los algoritmos DQN, la función de perdidas se puede representar como el error cuadrático medio del valor Q objetivo y el valor Q de predicción. Li(θi)=E[(Qtarget −Qpredicted(s, a;θi))2](6.2) siendo el valor Q objetivo: Qtarget =r+γ∗maxa′Q(s′, a′;θ′ i)(6.3) Sin embargo, tal y como se menciona en el artículo [14], el uso de aproximadores de funciones no lineales, como las redes neuronales, sobre algoritmos de RL, hacen que estos sean inestables. Esta inestabilidad puede derivar en: −Una correlación presente en la secuencia de observaciones. Al trabajar con secuencia de datos, el modelo puede aprender a seguir estas secuencias, induciendo un aprendizaje erróneo. −Una correlación entre los valores Qpredicted y los valores Qtarget. 24 −Pequeñas actualizaciones de los valores Q, pueden cambiar significativamente la política, cambiando así, la distribución de los datos. Para solucionar esta inestabilidad, fueron introducidos los conceptos de: Target Network y Experience Replay. Target Network Según la ecuación de Bellman 6.2.1, los valores Q(s, a)son actualizados a través de las recompensas futuras Q(s′, a′), donde solo existe un step de diferencia entre los estados sys′, esto hace que ambos valores sean muy similares y difíciles de diferenciar por parte de la red. Además, como la ecuación de Bellman es usada para el cálculo de los valores Q objetivo dentro de la función de pérdidas 6.2.2, hace que el aprendizaje sea inestable. Con el fin de solventar este problema, se introduce una segunda red llamada Target Network. El objetivo de la Target Network consiste en calcular los valores Q(s′, a′) de la ecuación de Bellman, y así, poder mejorar la estabilidad del aprendizaje, reduciendo la correlación entre valores Q(s, a)y los Q(s′, a′). Esta nueva red es una copia de la red principal y no es entrenada, sus parámetros simplemente se actualizan sincronizándolos periódicamente con los de la red principal. Experience Replay Inspirada en un mecanismo biológico, la técnica de experience replay, aleatoriza los datos de tal manera que elimina la correlación entre las observaciones o estados consecutivos. Si la red aprendiese únicamente a través de observaciones consecutivas, puede aparecer sesgos en estas secuencias, que impidan aprender otros caminos hacia el objetivo más eficientes. Por esto, la técnica de experience replay, permite almacenar las experiencias del agente en cada instaste de tiempo, dentro de una memoria de tamaño finito N, llamada replay memory. Durante el entrenamiento, se tomarán de forma aleatoria las experiencias almacenadas dentro de la replay memory para alimentar la red neuronal. De esta forma, se consigue romper con la correlación entre observaciones consecutivas. Las experiencias del agente se almacenan en la replay memory como tuplas que se define de la siguiente forma: et=(st, at, rt, st+1)(6.4) Esta tupla contiene información del estado actual st, la acción tomada en ese estado at, la recompensa obtenida tras ejecutar esa acción en dicho estado rt, y el siguiente estado st+1. Algunos de los hiperparámetros importantes a definir en la creación de la replay memory son: 25 −Memory size: define el tamaño de la memoria, es decir, cuantas tuplas se pueden almacenar como máximo. Una vez se alcanza este valor, la memoria se va actualizando con nuevos datos, eliminando los anteriores. −Batch size: define el cuantas tuplas tomaran de la memoria para entrenar la target network. 26 7 Diseño de la propuesta A continuación, en los siguientes apartados, se da paso a la explicación de todo el procedimiento llevado a cabo durante la realización de este proyecto. Empezando desde el estudio y simulación del problema de auto-interferencia en los escenarios IDL/ITCN, hasta la creación y simulación del algoritmo Deep Q-Network dentro de Spyder. 7.1 Creación del escenario en Quadriga y obtención de los datos de entrenamiento. En primer lugar, fue necesario el estudio del problema de auto-interferencia dentro de los escenarios IDL/ITCN, que tal y como se ha explicado en el apartado 4.2, se debe al uso de comunicaciones IBFD, es decir, a que sus torres de comunicaciones, transmiten y reciben simultáneamente sobre la misma frecuencia. Esto hace que, la señal transmitida desde un nodo hacia su zona de servicio, se acople en su receptor actuando como una señal de interferencia. Una vez aclarado el escenario que se pretende simular, se da paso a su construcción. Aunque se ha mencionado que el escenario real consta de un único nodo que actúa como transmisor y receptor simultáneamente, en este caso, se ha representado el problema de auto-interferencia a través de un escenario compuesto por dos transmisores y un receptor. Este escenario, reflejado en la figura 18, ha sido simulado a través de Quadriga, y permite obtener los canales equivalentes al problema de auto-interferencia deseado. Figura 18 Escenario simulado con Quadriga. 27 En este caso, uno de los transmisores será utilizado para transmitir la señal deseada, y el segundo, para la señal de interferencia. Por otra parte, el receptor será el encargado de aplicar la técnica de Beamforming, que le permita maximizar la ganancia de la señal deseada, y a su vez, intentar anular, lo máximo posible, la señal de interferencia. Para la simulación, se han utilizado antenas omnidireccionales en cada uno de los transmisores, y se ha transmitido con una potencia de 0 dB. El hecho de usar estos parámetros tan generales, se debe a que el objetivo principal de esta simulación, es únicamente el de proveer diferentes muestras de los canales simulados, tanto de la señal deseada, como de la señal de interferencia. Estos canales dependerán del espacio o escenario, donde se simulen los transmisores. En este sentido, Quadriga ofrece una gran variedad de posibilidades, desde espacios simples como LOSonly, el cual contiene una visión directa, sin shadowing, ni perdidas de espacio libre, hasta escenarios más complejos como los modelos 3GPP, donde se pueden dar situaciones de multitrayecto. Algunas de las pruebas realizadas dieron los siguientes canales como resultado: (a) Respuesta del canal en LOSonly. (b) Respuesta del canal en FreeSpace. (c) Respuesta del canal en 3GPP LOS. (d) Respuesta del canal en 3GPP NLOS Figura 19 Respuestas de canales simulados en diferentes escenarios de Quadriga. Las simulaciones representadas en la figura 19, fueron útiles para comprender el funcionamiento de Quadriga, y comprobar que la maqueta diseñada, proporciona los resultados deseados. En cada una de las imágenes, viene representado en azul, el canal de la señal deseada H1, y en rojo, el canal de la señal de interferencia H2. 28 A partir de este momento, el objetivo se centró intentar anular lo máximo posible las muestras del canal de interferencia, y para que esto fuese posible, era necesario conseguir la mayor cantidad de ejemplos. Para obtener una gran variedad en los datos de entrenamiento, se realizaron varias simulaciones dentro de un escenario 3GPP con visión directa, donde los transmisores iban cambiando su posición. Las posiciones fueron seleccionadas de tal forma que permitiesen abarcar el mayor rango de casos posibles. A continuación, se muestran varios ejemplos de algunos escenarios simulados desde donde se han captado los datos. Figura 20 Posibles escenarios de entrenamiento. En total, se han seleccionado 14 combinaciones diferentes para simular las posiciones de los transmisores, y en cada combinación, se han capturado muestras de los canales, H1 y H2, en 5 instantes de tiempo diferentes. Cuantas más muestras se tomen, el algoritmo DQN aprenderá a reconocer mejor los canales en cada combinación. Otros parámetros que se han obtenido en cada simulación son los ángulos de incidencia, AoA, y retardos de los coeficientes que componen los canales H1 y H2. 7.2 Diseño del modelo Beamforming en el receptor. Una vez obtenidos los datos proporcionados por los transmisores, se dio paso al diseño del modelo Beamforming dentro del receptor. Para ello, fue necesario la definición de una antena, y comprender como generar un diagrama de radiación a partir de ella. En este caso, se decidió que el receptor haría uso de una configuración de antenas de tipo Uniform Linear Array (ULA). Esta configuración define un conjunto de dipolos separados entre sí, por una distancia d, la cual debe ser menor o igual a la mitad de la longitud de onda. 29 Figura 21 Onda plana que incide sobre la antena tipo ULA. Imagen tomada de [11] La figura 21, representa la configuración de una antena tipo ULA, en la cual incide una onda plana. Cada uno de los rayos, incide con un retraso proporcional a dcos(θ). Estos retrasos son los que determinan si las señales se van a sumar de forma constructiva o destructiva. Por otra parte, si se considera cada antena del array como isotrópica, el diagrama de radiación se puede representar con la siguiente fórmula: FA =ejϕ 4 ∑ n=1 e−j2π(n−1)dcos(θ) λ(7.1) Esta ecuación denominada como factor de array, representa el campo radiado por el array, donde el coeficiente de alimentación, ejϕ, contiene la fase ϕ, que marca la dirección del diagrama. Aplicando este concepto dentro de Spyder, fue posible programar un ’codebook’ que almacena diferentes diagramas de radiación, apuntando a distintas direcciones. Este codebook, será utilizado en la posterior fase de entrenamiento, para el aprendizaje del receptor. La siguiente figura muestra un ejemplo de 8 posibles diagramas de radiación que podría seleccionar el receptor. Figura 22 Posibles diagramas de radiación a seleccionar por parte del receptor. 30 ha seleccionado, en base a pruebas de error/acierto, un valor de 0.00025. Esto se verá más detalladamente en el siguiente apartado de resultados. −Target update: este valor define cada cuantos steps se actualizara la target network. En este caso, se ha optado por un valor igual a 20. Por otra parte, como ya se vio en el apartado 6.1, otros hiperparámetros a tener en cuenta, son los utilizados a la hora de seleccionar la estrategia con la que el agente tomara las acciones, y los utilizados para definir la Replay Memory. Estrategia épsilon-greedy. Tal y como se explicó en el apartado 6.1.2, esta estrategia define, en base al decrecimiento de una variable llamada épsilon, si el agente toma las acciones de una forma aleatoria, o haciendo uso del conocimiento ya adquirido hasta ese momento. Para ello, es necesario decidir como hacer decrecer esta variable épsilon, y seleccionar el valor de los hiperparámetros que tomaran parte en este proceso. En este caso, se ha optado por decrementar la variable épsilon teniendo en cuenta el número de epoch. Para ello se establecieron dos fases, donde la duración de cada una de ellas son los primeros hiperparámetros a definir. La primera de estas fases, tiene una duración igual al 10% del total de epochs, y la segunda, una duración igual al 90% del total de epochs. Con esto se pretende establecer una fase inicial, que dure al menos el 10% del entrenamiento total, donde el agente se encuentre explorando el entorno, seleccionando acciones aleatorias. Por otra parte, en la segunda fase, se decrementa la variable épsilon de una forma proporcional al número de epochs totales, permitiendo así, aumentar la probabilidad de que el agente use el conocimiento ya adquirido, para seleccionar la mejor acción posible. Algorithm 2 Estrategia epsilon-greedy. 1: procedure select action(epoch, start, end, epochs, epsilon) 2: explora ⇐0,1∗epochs ▷se define la duracion de las fases. 3: explota ⇐0,8∗epochs 4: if (epoch <explora)then ▷Fase de exploración. 5: epsilon ⇐start 6: else if (epoch <explota)then ▷Fase de explotación. 7: epsilon ⇐(start −(epoch−explora))/((explota−explora)∗(start−end)) 8: else 9: epsilon ⇐end 10: if (epsilon >randomV alue)then 11: action ⇐random(actions)▷Se toma una accion aleatoria. 12: else 13: action ⇐max(policynet(actions)) ▷Se usa la red neuronal. 14: return action 37 En el algoritmo 2, se definen las 2 fases que componen el proceso, y los hiperparámetros, start y end, que hacen referencia al valor inicial y final de la variable épsilon. Como es habitual en este tipo de estrategia, se toma un valor inicial igual a 1, y un valor final igual a 0.05. Es importante tener en cuenta que, este valor final, determina la probabilidad con la que el agente entrará en la fase de exploración en los últimos steps del entrenamiento. Por esto, es recomendable no establecer un valor muy pequeño, ya que a pesar de que en esta fase el agente debería ser capaz de cumplir su objetivo, aún es necesario que disponga de ciertos momentos donde pueda tomar acciones de forma aleatoria, que le permitan descubrir otros caminos más óptimos hacia su objetivo. Replay Memory En cuanto a la definición de la replay memory, simplemente se tomaron los valores más comunes para este tipo de entrenamiento. −Batch size = 64. Esto quiere decir, que cada vez que se quiera actualizar la red principal, se tomaran 64 tuplas aleatorias de la memoria. A este conjunto de tuplas se le conoce como ’batch’. −Memory size = 100000. La memoria almacenará un total de 100000 tuplas. En el momento que supere este valor, sé ira actualizando con nuevas tuplas, descartando las más antiguas. 7.3.4 Entrenamiento del modelo Beamforming basado en Deep Q-Network. Una vez definidos los actores que toman parte en el entrenamiento, la función recompensa y los diversos hiperparámetros, se da paso a la explicación del procedimiento llevado a cabo para entrenar el modelo Beamforming. Tal y como se ha definido en el apartado anterior, el entrenamiento tiene una duración de 10 epoch, y en cada epoch, se realizan 2000 steps. Antes de empezar con el entrenamiento, es necesario inicializar todos los componentes, como las redes neuronales, el estado inicial, S, o la replay memory. Una vez está todo inicializado, en cada uno de los steps se realizan los siguientes pasos: −Seleccionar una accion a, con el estado S, en base a la estrategia Epsilogreedy definida. −Seleccionar el nuevo diagrama de radiación, beam. −Calcular el siguiente estado, S’. 38 −Calcular el valor de MSE, para el siguiente estado, y obtener el valor de reward, r. −Almacenar la tupla (S, S’, a, r) dentro de la replay memory. −Actualizar el estado S. −Actualizar la red neuronal principal, policynet. −Comprobar sí es necesario actualizar la Target network, targetnet. −Comprobar si el episodio ha finalizado. Estos pasos se pueden ver reflejados en el siguiente algoritmo, y aunque no vienen detallados todos los pasos que realmente se realizan, es útil para entender el procedimiento que se lleva a cabo dentro del entrenamiento. Algorithm 3 Definición de la función recompensa 1: procedure Entrenamiento DQN(H1, H2, AoA1, AoA2, codebook) 2: state ⇐preprocess(H1, H2, AoA1, AoA2, position) 3: strategy ⇐epsilonGreedyStrategy(start, end, epochs) 4: policynet, targetnet, agent, memory ⇐initializeActors(strategy, actions) 5: for (epoch <10)do 6: for (steps <1000)do 7: action ⇐agent.selectAction(state, policynet, epoch) 8: beam ⇐changeBeam(action, codebook, position) 9: nextState ⇐updateState(AoA1, AoA2, H1, H2, beam) 10: MSE ⇐meanSquaredError(nextState, Hideal) 11: reward, done ⇐funcionRecompensa(MSE, step) 12: memory.push(state, nextState, action, reward, done) 13: state ⇐nextState 14: if memorySize >batchSize then 15: states, actions, rewards, nextStates, dones ⇐memory(batchSize) 16: Qprime ⇐targetnet(nextStates) 17: Qtarget ⇐rewards +learningRate ∗Qprime 18: Q⇐policynet(states) 19: loss ⇐meanSquaredError(Qtarget, Q) 20: loss ⇐meanSquaredError(Qtarget, Q) 21: updateNetwork(policynet) 22: updateTargetNetwork(policynet, targetnet) 23: if done =True then 24: H1, H2, AoA1, AoA2⇐updateData() 25: state ⇐preprocess(H1, H2, AoA1, AoA2, position) En las primeras líneas, 2-4 del algoritmo 3, se inicializan todas las variables que van a ser partícipes del entrenamiento, donde las más importantes son las redes neuronales, 39 el estado inicial con el que dará comienzo el entrenamiento, el agente y la estrategia que va a utilizar. El estado inicial se obtiene procesando los datos correspondientes a los canales: H1yH2, con el fin de obtener una matriz normalizada entre 0 y 1, que facilite el ajuste de los parámetros de las redes neuronales. Con los datos ya inicializados, se da comienzo al entrenamiento, donde en cada uno de los steps, se realizan los pasos enumerados anteriormente. En primer lugar, se selecciona una acción utilizando la estrategia epsilon-greedy definida en la sección 14. Esta estrategia devolverá una acción seleccionada de forma aleatoria, o usando la red neuronal principal policynet, dependiendo del valor de la epoch en la que se encuentre en ese momento. Una vez seleccionada la acción, se hace uso de ella para seleccionar el diagrama de radiación dentro del codebook previamente definido. Con este nuevo diagrama, definido como beam, se calculan los nuevos valores de los coeficientes de H1yH2haciendo uso de los ángulos de incidencia AoA. De esta forma se consigue el nuevo estado, S’, que refleja la respuesta del beam seleccionado ante los canales H1yH2, es decir, representa los nuevos canales recibidos por el receptor a través del beam seleccionado. Este nuevo estado, junto al canal ideal previamente definido, son utilizados para calcular el valor de MSE, que refleja la similitud entre ambos canales. El valor MSE obtenido, es proporcionado a la función recompensa, definida en 1, para calcular el valor de reward y determinar, a través de la variable done, si el episodio ha finalizado o no. Una vez que se obtienen los valores de las variables: estado, acción, siguiente estado, reward y done, son almacenadas en forma de tupla (S, S’, a, r), dentro de la replay memory. Con los valores ya almacenados, se actualiza la variable estado, S, con los valores del siguiente estado, S’, para que la siguiente iteración inicie con los valores actualizados. Los siguientes pasos del algoritmo se corresponden con la actualización de las redes neuronales, policynet ytargetnet. Para actualizar la red policynet, como se ve en la línea 14, es necesario comprobar si la memory replay contiene el número de tuplas mínimo requerido para actualizar la red. En el caso de ser así, se procede a seleccionar un conjunto de tuplas aleatorias, o batch, de la replay memory, cuyo tamaño viene definido por el hiperparámetros batchSize. Los valores de este conjunto de tuplas, son utilizados para calcular los valores Q a través de la ecuación de Bellman 6.2.1, y así, poder actualizar los parámetros de las redes neuronales calculando la función de perdidas. En este caso, la función de perdidas se calcula a través del error cuadrático medio entre el valor Q objetivo, Qtarget, y el valor Q de predicción. Por otra parte, la target network se actualiza en función del hiperparámetro target update, cuyo valor indica cada cuanto debe ser actualizada esta red. 40 Finalmente, con el valor done obtenido de la función recompensa, se comprueba si ha finalizado un episodio de entrenamiento. Los episodios pueden finalizar tras haber alcanzado el objetivo, o tras haber excedido el número de step máximos. En el caso de que un episodio finalice, se actualiza el escenario cambiando los valores de los canales recibidos. Estos nuevos valores se corresponde a otro escenario, donde los transmisores tienen nuevas posiciones. Con esto se pretende que el algoritmo sea entrenado en todos los escenarios previamente obtenidos a través de Quadriga, explicada en el apartado 7.1. Todo el procedimiento explicado hasta este momento se puede ver reflejado, de forma resumida, en la siguiente imagen: Figura 24 Esquema del entrenamiento del modelo Beamforming. 41 8 Resultados. Una vez explicado el procedimiento llevado a cabo para entrenar el algortimo DQN, se da paso a explicar los resultados obtenidos durante el proceso de entrenamiento. En primer lugar, se mostrarán los resultados de las pruebas realizadas para elegir los valores de algunos hiperparámetros, y posteriormente, se explicarán los resultados obtenidos en los escenarios explicados en el apartado 7.3.1. 8.1 Resultados previos: Definición de los hiperparámetros. El primer paso consistió en realizar varias pruebas que permitan ajustar los valores de los hiperparámetros explicados en el apartado 7.3.3. En este caso, solo se explicarán las pruebas realizadas sobre 3 hiperparámetros, con el único fin de entender como se ajustan este tipo de variables. Los hiperparámetros que se han ajustado son: capas y neuronas, learning rate y número de epoch. Las pruebas consisten en ir probando diferentes valores para cada uno de estos hiperparámetros. 8.1.1 Capas y neuronas. A la hora de seleccionar estos valores hay que tener en cuenta que un mayor número de neuronas y capas, puede proporcionar un mejor aprendizaje, pero también requiere de mayor tiempo de procesamiento. Esto se ha podido comprobar en las siguientes simulaciones, donde se realiza un total de 10 epochs, y se evalúa el porcentaje de aciertos conseguido, al cambiar el número de neuronas, en cada una de ellas. Este porcentaje denota cuantos episodios se han realizado correctamente respecto al total de episodios ejecutados en cada epoch. Simulación 1: 2 capas y 50 neuronas en cada capa. Figura 25 Entrenamiento con una red neuronal de 2 capas y 50 neuronas. 42 Resultados: −Tiempo de simulación: 29 s/epoch. −Score máximo: 79.2%. Simulación 2: 2 capas y 100 neuronas en cada capa. Figura 26 Entrenamiento con una red neuronal de 2 capas y 100 neuronas. Resultados: −Tiempo de simulación: 31 s/epoch. −Score máximo: 82.81%. Simulación 3: 2 capas y 300 neuronas en cada capa. Figura 27 Entrenamiento con una red neuronal de 2 capas y 300 neuronas. Resultados: −Tiempo de simulación: 35 s/epoch. −Score máximo: 87.7%. 43 Simulación 4: 2 capas y 400 neuronas en cada capa: Figura 28 Entrenamiento con una red neuronal de 2 capas y 400 neuronas. Resultados: −Tiempo de simulación: 37 s/epoch. −Score máximo: 72.64%. En las simulaciones vistas hasta este momento, se puede comprobar que la mejor opción se muestra en figura 27, donde la red neuronal está formada por 2 capas de 300 neuronas. A partir de este número de neuronas, tal y como se puede ver en la figura 28, el aprendizaje empieza a decaer. Para definir el número de capas, se ha tenido en cuenta el número de neuronas seleccionado (300), y se ha añadido una capa más, con este mismo número de neuronas, para comprobar que impacto tiene dentro del entrenamiento. En este caso, se observa el siguiente comportamiento: Simulación 5: 3 capas y 300 neuronas en cada capa. Figura 29 Entrenamiento con una red neuronal de 3 capas y 300 neuronas. Resultados: −Tiempo de simulación: 55 s/epoch. −Score máximo: 78.62% 44 Como se puede ver en la figura 29, el valor máximo obtenido en cuanto a porcentaje de acierto es de 78.62%, siendo inferior al obtenido en la simulación 27, donde se usaron 2 capas. Además de obtener un peor resultado, tal y como era de esperar, el tiempo de simulación es muy superior al obtenido con 2 capas. Por esta razón, se decide que los valores en cuanto a número de capas y de neuronas para la red neuronal son: −Número de capas: 2. −Número de neuronas: 300. 8.1.2 Learning rate. Este hiperparámetro, de una forma muy resumida, se podría considerar como la variable que determinara la velocidad de aprendizaje de nuestro algoritmo. Tal y como se mencionó en el apartado 7.3.3, un valor muy grande podría hacer que el algoritmo no llegase a converger, y un valor muy pequeño, podría hacer que la solución proporcionada no sea la más óptima. En este caso, se realizan 4 simulaciones para observar el comportamiento de este hiperparámetro, y así poder decidir que valor es el más adecuado para este proyecto. Simulación 1: Learning Rate = 0.8. Figura 30 Entrenamiento con una LR = 0.8. Resultados: −Score máximo: 55.76% 45 Simulación 2: Learning Rate = 0.25. Figura 31 Entrenamiento con una LR = 0.25. Resultados: −Score máximo: 50.49% Simulación 3: Learning Rate = 0.00025 Figura 32 Entrenamiento con una LR = 0.00025. Resultados: −Score máximo: 85.65% 46 En esta situación, se puede ver como el beam seleccionado atenúa el canal H2, referente a la señal de interferencia, y obtiene la mayor ganancia posible para el canal H1, referente a la señal deseada. Por otro lado, a la hora de testear cada escenario, se realizan un total de 25 steps, con el fin de comprobar si una vez alcanzado el objetivo, el receptor es capaz de mantener el resultado. En la siguiente figura 41 se puede comprobar como tras haber recorrido 25 steps, el diagrama sigue siendo el correspondiente a la posición 20. Figura 41 Escenario 2 simulado: Muestra: 3, Step: 25, Posición del beam: 20. Para una mejor visualización de estos resultados, se ha creado un video disponible en el link [19]. Evaluación con datos diferentes a los del entrenamiento: Para comprobar que el modelo entrenado puede extrapolar su conocimiento a escenarios para los cuales no ha sido entrenado, se generaron nuevos escenarios donde las posiciones de los transmisores se generaron de una forma aleatoria. Antes de ver los resultados, se hará una comparativa de las posiciones con las que se entrenó al algoritmo, y las posiciones con las que se evaluó. En la siguiente tabla, aparecen las posiciones que tienen los transmisores sobre un plano de rango [-100, 100]. Así mismo, los ángulos indicados, hacen referencia al ángulo que forma cada transmisor respecto al eje horizontal, y tomando como punto de origen el receptor. 53 Posiciones random para el Test Posiciones para el Entrenamiento Transmisor 1 ángulo 1 Transmisor 2 ángulo 2 Transmisor 1 ángulo 1 Transmisor 2 ángulo 2 [-25, 55] 295 [-12, -58] 282 [70, 70] 45 [-70, 70] 135 [20, -17] 320 [-41, 46] 132 [-70, 70] 135 [70, 70] 45 [34, 36] 46 [41, -1] 359 [-70, -70] 225 [70, -70] 315 [1, 57] 88 [-40, 45] 133 [70, -70] 315 [-70, -70] 225 [47, 4] 4 [12, -19] 303 [70, 0] 0 [70, 70] 45 [41, -17] 338 [58, -3] 358 [-70, 0] 180 [70, 70] 45 [-38, -33] 220 [-44, -26] 210 [43, 74.6] 60 [70, 70] 45 [33, 59] 60 [-31, 45] 125 [-43, 74.6] 120 [70, 70] 45 [6, -48] 278 [-27, -56] 244 [43, -74.6] 300 [70, 70] 45 [-8, -47] 260 [-43, 29] 147 [-43, -74.6] 240 [-70, 70] 135 [51, -34] 330 [53, -55] 314 [80, 47] 30 [-70, 70] 135 [-38, -22] 210 [38, -58] 304 [-80, 47] 150 [70, 70] 45 [36, -59] 302 [40, -19.] 335 [80, -47] 330 [70, 70] 45 [47, -19] 338 [-41, -36] 221 [-80, -47] 210 [-70, 70] 135 Cuadro 1 Posiciones y ángulos de los escenarios de entrenamiento y de evaluación. Estas mismas posiciones y ángulos se pueden ver reflejados de una forma gráfica en la siguiente figura: (a) Escenarios de entrenamiento. (b) Escenarios aleatorios para la evaluacion. 54 Para estos nuevos escenarios, donde las posiciones fueron generadas de una forma aleatoria, se consiguió un porcentaje de acierto superior al 71%. Figura 43 Reward por episodio de evaluación. Como se puede ver en la figura 43, los escenarios 1, 3, 7 y 11 son los únicos que no se pudo resolver, obteniendo un reward negativo en cada uno de ellos. Los escenarios para los cuales no se ha cumplido el objetivo son los siguientes: Figura 44 Escenarios de evaluación no cumplidos. Analizando estos escenarios se puede ver que, en cada uno de ellos, los transmisores se encuentran a una distancia muy cercana entre sí, y con los diagramas de radiación propuestos, es difícil conseguir una diferenciación correcta entre las señales transmitidas. Estos se solventaría aumentando el número de elementos que componen la antena tipo ULA, dando así una mayor directividad a los diagramas de radiación. Al igual que se hizo anteriormente, para este caso también se ha realizado un video que permita visualizar la actuación del modelo entrenado dentro de estos nuevos escenarios. Este video está disponible a través del link [20]. 55 9 Plan de gestión. En este apartado se describe el plan de gestión realizado para llevar a cabo la elaboración del proyecto. En él se describen las fases en las que se distribuye el proyecto, y dentro de cada una, se explican las tareas a realizar, agrupadas en paquetes de trabajo. 9.1 Descripción de los paquetes de trabajo. Las siguientes tablas describen los paquetes de trabajo que se realiza en cada una de las fases. En cada una, se hace una breve descripción del paquete de trabajo, y se enumeran las tareas a realizar junto con los plazos previstos. 9.1.1 Fase completa del proyecto. Este paquete de trabajo refleja las tareas y el plazo en el que deben ser realizadas, tanto por los coordinadores del proyecto, como por el alumno. PT1 Fecha de inicio. Fecha de finalización. Duración Gestión del proyecto: Monitorización y administración necesaria para asegurar el cumplimiento de los objetivos marcados. 02-05-2022 10-10-2022 107 PT1.1: Gestión, monitorización y supervisión de trabajo: Coordinación, supervisión y monitorización del proyecto, desde el inicio hasta la finalización del mismo. 02-05-2022 10-10-2022 107 Cuadro 2 Paquete de trabajo Nº: 1. 9.1.2 Fase 1 del proyecto. En esta fase inicial, se adquieren los conocimientos iniciales y se define la planificación a seguir. 56 PT2 Fecha de inicio. Fecha de finalización. Duración Preparación del proyecto: Adquisición del conocimiento necesario previo al desarrollo de la solución planteada. 02-05-2022 31-05-2022 22 PT2.1: Conocimiento previo: Lectura de artículos relacionados con los escenarios IDL/ITCN. Estudio de los algoritmos de Reinforcement Learning. 02-05-2022 13-05-2022 10 PT2.2: Definición del proyecto: Descripción del ámbito del proyecto y el flujo de trabajo a seguir. 16-05-2022 20-05-2022 5 PT2.3: Estado del arte: Búsqueda de información en forma de estudios, proyectos y publicaciones relacionados con el proyecto. 23-05-2022 31-05-2022 7 Cuadro 3 Paquete de trabajo Nº: 2. 9.1.3 Fase 2 del proyecto. En esta fase se centra todo el desarrollo del código, tanto para la obtención de los datos con los que se alimentara el algoritmo, como para su entrenamiento. PT3 Fecha de inicio. Fecha de finalización. Duración Definición del entorno de simulacion: Matlab y Quadriga. Creación de un escenario que simule él problema de auto-interferencia que se da en los escenarios IDL/ITCN. 01-06-2022 24-06-2022 18 PT3.1: Conocimiento previo: Lectura sobre la documentación de Quadriga, y elaboración de varios ejemplos para su aprendizaje. 01-06-2022 10-06-2022 8 PT3.2: Definición del escenario: Definición del escenario equivalente que simulará el problema de auto-interferencia. 13-05-2022 17-05-2022 5 PT3.3: Pruebas de validación: Realizar varias pruebas utilizando los diferentes espacios que proporciona Quadriga, como LOSonly, freeSpace y 3GPT. Creación de las primeras gráficas de los canales obtenidos con Quadriga. 20-06-2022 24-06-2022 5 Cuadro 4 Paquete de trabajo Nº: 3. 57 PT4 Fecha de inicio. Fecha de finalización. Duración Diseño del algoritmo Deep Q-Network. Definición, pruebas y primeros ajustes de los parámetros e hiperparámetros del algoritmo DQN. 27-06-2022 10-08-2022 33 PT4.1: Preparación de los datos: Análisis, preprocesamiento y partición de los datos obtenidos con Quadriga. Definir los datos con los que se va a alimentar la red. 27-06-2022 01-07-2022 5 PT4.2: Definición de los actores y función recompensa: Definición del agente, entorno, acciones y rewards de cada estado. 04-07-2022 08-07-2022 5 PT4.3: Elaboración del código dentro de Spyder. Crear el código referente a la replay memory, red neuronal, estrategia épsilon y demás componentes del algoritmo. 11-07-2022 22-07-2022 10 PT4.4:Pruebas de validación: Comprobar que el modelo funciona correctamente, y realizar los ajustes correspondientes en cada hiperparámetro. 25-07-2022 10-08-2022 13 Cuadro 5 Paquete de trabajo Nº: 4. 9.1.4 Fase 3 del proyecto. La fase final se centra en documentar lo realizado y los resultados obtenidos, así como, la defensa del proyecto frente a un tribunal. PT5 Fecha de inicio. Fecha de finalización. Duración Documentación y presentación del proyecto:Escritura de la memoria del proyecto y Presentación oral. 10-08-2022 10-10-2022 44 PT5.1: Documentación del proyecto: Elaboración del documento que define el contexto del proyecto, objetivos, beneficios, metodología, descripción de la solución y conclusiones. 10-08-2022 18-09-2022 34 PT5.2: Presentación del proyecto: Elaboración y ejecución de la presentación del proyecto frente al tribunal. 26-09-2022 10-10-2022 10 Cuadro 6 Paquete de trabajo Nº: 5. 58 9.2 Diagrama de Gantt. Figura 45 Diagrama de Gantt del proyecto. 59 10 Conclusiones. Los resultados obtenidos hasta este momento demuestran que, el objetivo marcado al inicio de este proyecto, ha sido conseguido. Como ya se ha visto, este modelo Beamforming, basado en un algoritmo Deep Q-Nerwork, es una buena opción para minimizar el problema de auto-interferencia existente en una comunicación IBFD, pudiendo así, ser utilizado dentro de las comunicaciones IBFD realizadas en los entornos ICTN/IDL. Para ello, hay que tener en cuenta que, los datos de entrenamiento deberían ser los adecuados para esa situación, ya que en este caso, los datos utilizados, pertenecen a un escenario equivalente al real. En cuanto al escenario propuesto en el apartado 7.3.1, como ya se ha visto, no fue posible llevar a cabo la auto-generación del diagrama de radiación, sin embargo, no significa que no sea posible. El problema de no haber llegado a una solución coherente, puede deberse a múltiples motivos, como el incorrecto ajuste de los hiperparámetros, o una mala definición de las acciones a realizar por parte del agente. En la definición de las acciones, se definieron 2 posibles acciones para cada elemento del array, más una acción común para todos los elementos. Esto hace que el número de acciones a elegir por parte del agente, dependa directamente del número de elementos que componen la antena tipo ULA, convirtiendo al número de antenas, en un hiperparámetro a tener en cuenta. En este proyecto, se decidió usar 4 antenas, lo que hizo un total de 9 posibles acciones, sin embargo, cabe la posibilidad de que usando más antenas, y reajustando los hiperparámetros, se pueda llegar a una mejor solución. Aun así, se debe tener en cuenta que, cuantas más antenas se definan, más acciones deberá aprender a seleccionar el agente, haciendo que la tarea a resolver sea más compleja. Por otra parte, las acciones definidas consistían en incrementar o decrementar el valor de las fases ϕ, correspondientes a cada elemento de la antena, sumando o restando un valor fijo a dicha fase. Este valor fijo se dio como otro hiperparámetro que debía ser ajustado, ya que en función de su valor, se podían generar diferentes diagramas de radiación. En este caso, quizás, la forma en la que se generaban o seleccionaban las fases ϕ, de cada elemento de array, podía ser el causante de un mal aprendizaje, ya que los diagramas generados con estas fases, probablemente no podían resolver los escenarios propuestos. En definitiva, este primer planteamiento queda definido como un futuro trabajo a resolver, teniendo en cuenta las conclusiones obtenidas en este proyecto. Así mismo, queda pendiente la comparación de este modelo basado en Deep Q-Network, con 60 otro modelo iterativo tradicional para el sistema Beamforming que permita afirmar que, este tipo de algoritmos son computacionalmente más eficientes que los métodos tradicionales. 61 Bibliografía [1] W. L. L. Zhang Y. Wu, S.-I. Park, J.-y. L. andH.-M. Kim y col., «ATSC 3.0 In-band Backhaul for SFN Using LDM with Full Backward Compatibility,» 2022. dirección: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp= &arnumber=8971918. [2] L. Z. et. all, «Layered-Division-Multiplexing: Theory and Practice,» 2016. dirección: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber= 7378924. [3] L. Z. et al., «Using Layered Division Multiplexing for Wireless In-Band Distribution Links in Next Generation Broadcast Systems,» 2021. dirección: https: //ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9093864. [4] W. L. et al., «Integrated Inter-Tower Wireless Communications Network for Terrestrial Broadcasting and Multicasting Systems,» 2021. dirección: https: //ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9444117. [5] E. I. Iñigo Bilbao y J. Montalban, «AI-based Inter-Tower Communication Networks: First approach,» 2022. dirección: https://ieeexplore.ieee.org/ stamp/stamp.jsp?tp=&arnumber=9828767. [6] J. H. L. Hyung Jun Kwon y W. Choi, «Machine Learning-Based Beamforming in Two-User MISO Interference Channels,» 2019. dirección: https:// ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8669027&tag=1. [7] Q. S. Haoran Sun Xiangyi Chen, M. Hong, X. Fu y N. D. Sidiropoulos, «Learning to Optimize: Training Deep Neural Networks for Interference Management,» 2018. dirección: https://ieeexplore.ieee.org/stamp/stamp.jsp? tp=&arnumber=8444648. [8] H. Jia, Z.-Q. He, H. Rui y W. Lin†, «Robust Distributed MISO Beamforming Using Multi-Agent Deep Reinforcement Learning,» 2022. dirección: https : //ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9817604&tag=1. [9] M. B. Mahdi Fozi Ahmad R. Sharafat, «Fast MIMO Beamforming via Deep Reinforcement Learning for High Mobility mmWave Connectivity,» 2022. dirección: https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber= 9612729. [10] J. M. Iñigo Bilbao Eneko Iradier y P. Angueira, «AI-based Inter-Tower Communication Networks: Challenges and Benefits,» 2022. dirección: https :// ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9547159. 62