martes, 29 de septiembre de 2020

Usos y control del espectro electromagnético (EEM) en nuestro país

¿Estamos usando el espectro electromagnético de manera eficiente en nuestro país? ¿Cómo se gestiona, asignan frecuencias y controlan?


Este post está orientado al personal afectado al área de telecomunicaciones y afines, tanto civiles como militares. Siempre se habla del uso y el empleo del espectro electromagnético, pero pocas veces tratamos sobre regulación y usos del mismo. Soy el Capitán Juan Andrés Morozovsky, perteneciente al arma de comunicaciones del Ejército Argentino. 

Para empezar, comenzaremos por definir quién es la autoridad que controla y regula el uso del EEM (Espectro electromagnético) en Argentina, y es el ENACOM (Ente nacional de comunicaciones), siendo la entidad gubernamental que asigna, dispone y controla las frecuencias en uso por civiles, militares y estaciones comerciales.

Definición del EEM según la ENACOM 

El Espectro Radioeléctrico es un recurso natural, de carácter LIMITADO, que constituye un bien de dominio público, sobre el cual el Estado ejerce su soberanía. Es asimismo un medio intangible que puede utilizarse para la prestación de diversos servicios de comunicaciones. 

Actualmente, la demanda para servicios inalámbricos como los sistemas de comunicaciones móviles, las redes de televisión digital terrestre o los diversos sistemas de acceso inalámbrico de banda ancha es elevada. Sin embargo, hay que tomar en cuenta que no todas las porciones – o bandas – del mismo son aptas para cualquier servicio o sistema sino que, por el contrario, determinadas zonas del espectro están especialmente indicadas para proporcionar servicios concretos. 

Tabla general de asignación de frecuencias

Gestiones y autorizaciones en la ENACOM:

Las designaciones, autorizaciones, y similares las efectúa un sistema digital llamado HERTZ (creado en el 2015). El sistema habilita la solicitud de autorizaciones a través de la página web de ENACOM, en conjunto con la plataforma TAD (trámites a distancia), lo que ofrece mayor transparencia al proceso y permite acceder de manera permanente e instantánea al estado de tramitación.

Pantalla de inicio dentro de la plataforma TAD (tramites a distancia)
del sistema Hertz de la ENACOM

Hertz centraliza información sobre las autorizaciones para el uso del espectro, asistiendo a los procesos y consultas relativas a: el estado de ocupación del espectro en un área o zona determinada, por banda/s de frecuencias y/o servicio/s; información necesaria para el control técnico de emisiones, para el proceso de planificación de frecuencias, para la facturación y cobro de cánones y tasas por uso del espectro, entre otras funcionalidades.

Sin embargo, nos preguntamos, ¿Cuál sería un buen método a utilizar por la ENACOM para conocer y controlar que se cumpla todo aquello que esta ordenado? Hace no mucho tiempo se desarrolló el concepto de “Radio cognitiva” que se basa en el sensado y explotación a modo estadístico del EEM. 

Para satisfacer la creciente demanda en comunicaciones inalámbricas, la ocupación del medio es cada vez más y más densa. Es por ello que la búsqueda de formas de acceder al medio, plantea soluciones cada vez más sofisticadas. 

En el año 2000, se propuso la Radio Cognitiva como una solución en donde cada dispositivo explora el medio radioeléctrico buscando posibles "ventanas" para operar. La utilización del espectro no es continua en cuanto a frecuencia, tiempo, espacio y potencia. Este concepto busca explotar los recursos ociosos mediante el monitoreo del espectro. 

Los sistemas de radio cognitiva son conformados por equipos de radiocomunicaciones capaces de medir el espectro y determinar, en qué momentos y bandas el mismo se encuentra disponible y en cuales está siendo utilizado. Estos sistemas pueden tomar decisiones basados en parámetros preestablecidos o programas pre-cargados que buscan optimizar el funcionamiento para aprovechar de la mejor manera posible el todo lo disponible, al tiempo que pueden aprender de los resultados obtenidos. 

En otras palabras, radio cognitiva habla de un censo estadístico del EEM, realizado de manera continua, sobre una banda muy grande de frecuencias para conocer de la manera más detallada posible, como se está utilizando el EEM, y como podemos mejorar ese empleo.


¿Pero por qué queremos sensar el espectro electromagnético? 

La respuesta si bien es sencilla, abarca una serie de cuestiones técnicas que no ahondaremos en este entrada, y solo nos abocaremos en el empleo de Radio Cognitiva. Al momento de transmitir, nos encontramos con el problema que el espectro es fuertemente utilizado, y por lo tanto tenemos que encontrar la manera de hacerlo sin interferir a otro emisor, o que otro emisor nos interfiera, y para ello, debemos hacer un sensado del espectro a modo estadístico para poder ocupar todos los recursos posibles del espectro. 

Si pensamos en el espacio físico que ocupa una antena (su superficie), en todo el mismo estará recibiendo señales provenientes del espectro, como a su vez, estará emitiendo en una determinada frecuencia, y en una determinada potencia todo el tiempo que se encuentre activa, por lo tanto debemos conocer todo lo que se encuentra a nuestro alrededor para minimizar al máximo las interferencias. 

Objetivo de Radio cognitiva 

Principalmente se busca obtener aquellas "ventanas" que tenemos en el espectro EM, ya sea en frecuencia, potencia y tiempo, es decir, buscar aquellos instantes, u oportunidades para poder efectuar transmisiones o recepciones de manera óptima. 

Grafico de visualización de los tres parámetros en estudio
(frecuencia, potencia, y tiempo)

En este gráfico podemos ver las tres entradas del gráfico estadístico en una determinada zona, como es el tiempo de transmisión, en que potencia, y en qué frecuencia se realizan las emisiones, buscando con ello, encontrar los huecos de señal a utilizar. 

Equipamiento utilizado para las mediciones

Para este tipo de mediciones utilizamos el SDR (software defined radio), debido a que nos brinda una gran facilidad de adaptarlo a las mediciones que quiero realizar solo cambiando la codificación del mismo. En conjunto con eso, debemos utilizar también antenas de banda ancha, ya que si bien el SDR nos da la posibilidad de adaptarnos a los cambios en las mediciones, debemos contar con una antena que acompañe a esos cambios. Al referirnos a antenas de banda ancha, queremos decir una antena que nos permita cubrir un ancho de banda lo más parecido al equipo de recepción que tenemos, para evitar con ello, el transporte o la instalación de más equipamiento. 

Actividades previas a la medición:

Al momento de hacer las mediciones, se establece un umbral, el cual nos va a determinar si lo que medimos es ruido, o es señal. Esto nos arroja un resultado binario en el cual, medimos 1 cuando lo recibido supera el umbral, y un 0 cuando no lo supere, con lo que asumimos que estamos recibiendo ruido. Puede ocurrir que en esa frecuencia, o instante de tiempo, haya otro corresponsal emitiendo, pero que, al medir una señal tan baja, lo podemos considerar ruido. 

¿Cómo visualizamos las mediciones obtenidas?

Para visualizar, lo que se utiliza es un patrón de recurrencia, el cual nos da un gráfico en el cual, se compara instante a instante, la señal recibida con una señal de patrón.


Grafico de patrón de recurrencia
Izquierda -> Señal de entrada vs señal patrón
Derecha -> Puntos de coincidencia


Los diagramas de recurrencia fueron introducidos para visualizar la repetición en la evolución del espacio de estados. La repetición o recurrencia de un estado es su aparición en dos instantes diferentes Ti, Tj, y es representada por un punto en el diagrama. Por supuesto, una recurrencia exacta solo es posible en sistemas periódicos continuos, en cualquier otro caso solo es posible detectar recurrencias aproximadas a un error.  

Podemos observar cómo se compara una señal con otra, logrando con ello poder visualizar los momentos que coinciden. En las líneas diagonales, lo que podemos observar es que por un cierto tiempo, la coincidencia es plena con la señal de patrón, y el mismo se está replicando. Este diagrama se utiliza para comparar señales de patrón con las señales recibidas, buscando con ello conocer los tipos de modulación, y los momentos que se producen. 

Hoy en día, si bien el método no está muy difundido, las nuevas redes 5G son las que más lo utilizan, ya que buscan el máximo aprovechamiento del espectro electromagnético. 

¿Ahora, qué pasaría si nos centramos en lo que respecta al uso militar de Radio cognitiva?


Para empezar, deberíamos establecer los dos momentos de interés, es decir, si lo que deseamos es utilizarlo para el momento de un conflicto o para el momento de operaciones internas dentro del territorio ya que eso nos implicaría grandes diferencias a la hora de comunicarnos. 
  • Operaciones en un conflicto bélico: podemos asumir que no conocemos con anterioridad el lugar exacto en el que se van a realizar, y por lo tanto, es probable que no se disponga de datos estadísticos del uso del espectro en esa zona determinada, el concepto podría ir aplicando “sobre la marcha” durante el desarrollo del conflicto, aunque ello puede complicar en gran medida las propias operaciones por posibles interferencias con bandas ya asignadas.
  • Operaciones internas: Un ejemplo es el “Escudo Norte”[1], en el cual tenemos como ventaja contar con el apoyo del ENACOM que nos asignará las frecuencias correspondientes para el trabajo en el propio territorio. Sin embargo, como ejército, podemos realizar nosotros mismos el análisis del espectro para obtener con ello, la información necesaria para contar con canales secundarios en caso de ser sumamente necesario, y que sobre todo, con su uso, no afectemos a otros usuarios en la misma gama de frecuencias.

Conclusiones 

No podemos escapar a que con el avance de la tecnología en comunicaciones, y sin olvidar que el espectro es limitado, las necesidades de control y asignación de bandas son cada vez mayores, como a su vez, la necesidad de monitorearlo para verificar su correcta utilización. 

La radio cognitiva emerge como una novedosa tecnología de las comunicaciones inalámbricas con el potencial de cambiar la forma ineficiente en que el espectro radioeléctrico es utilizado actualmente. 

Las técnicas de acceso dinámico al espectro constituyen un elemento clave en la implementación de la tecnología radio cognitiva y serán las que utilicen capacidades de auto-configuración para adaptarse dinámicamente a la demanda. Las nuevas aplicaciones de software en los protocolos de radiocomunicación prometen convertir las redes móviles en algo mucho más útil.
  

Referencias

[1] El operativo Escudo Norte fue un plan del gobierno argentino para combatir el narcotráfico, la trata de personas y el contrabando en el norte de Argentina.​ Con el propósito de controlar los espacios aéreos, terrestres y fluviales de las provincias del norte argentino, las fuerzas de seguridad y armadas desplegaban sus aviones, helicópteros y radares. Fue creado en el año 2011.

martes, 22 de septiembre de 2020

Visual Search (PyAr)

Motivación y orientación

Esta entrada está orientada a un público general y busca dar una visión global sobre posibles aplicaciones de machine learning. Traté de que sea entendible para cualquiera (es decir, sin importar que haya tenido contacto previo con la temática) pero al mismo tiempo que no sea una lectura engorrosa para los que ya sepan del tema (que seguramente sepan más de lo que sé yo).

Las palabras que están subrayadas
asítooltip
tienen una pequeña descripción asociada que se muestra al posicionar el mouse encima, y son de utilidad sobre todo para los que no están empapados en la jerga de los programadores/
data scientistscientíficos de datos
/
IT guyspersonal de IT (tecnología de información)
.

Python es un lenguaje de programación que ha sabido mantener durante la última década una relevancia altísima, colocándolo en el segundo puesto del ranking de lenguajes con mayor cantidad de
pull requestscontribuciones de código
en
GitHubplataforma de desarrollo comunitario de software
(quedando en ese lugar sólo por detrás del omnipresente JavaScript), lo cual demuestra la versatilidad y utilidad del mismo en cualquier desarrollo Web, sea de
front-endtodo lo de una página Web con lo que el usuario interactúa
o de
back-endcapa de acceso a datos
.

Quien escribe admite ser desarrollador (muy) novato de Python. Sin embargo, incluso al sólo rozar la espuma sobre la superficie fluida que es Python, es más que evidente la fuerte presencia de
librariescolección de rutinas preprogramadas
y
frameworksestructuras abstractas sobre las que se da fundamento a los desarrollos de software
de este lenguaje a lo largo y ancho de todos los temas que abarca
DataScienceciencia de datos
. Mi apreciación es que este es justamente el motivo principal por el que los integrantes de la comunidad de Python tienen tanto amor por este lenguaje.

Al igual que el resto de las entradas que estarán subiéndose a este blog durante las siguientes semanas, esta entrada se está haciendo en el contexto de una crisis pandémica global prolongada desde principios de año. Una de las consecuencias que tiene estar en este marco temporal radica en la suspensión de cualquier tipo de actividad que implique el contacto estrecho entre personas - o bien, la migración a plataformas digitales donde se pueda hacer un intercambio de conocimiento sin que existan riesgos de bioseguridad.

Por este motivo, hace poco el comité organizador de PyCon Latam directamente decidió suspender la convención de este año, y anunció que la siguiente se hará recién el 29 de agosto de 2021. Pero por suerte los
developersdesarrolladores
de Python no nos quedamos con las manos vacías: el día 19 de agosto de 2020 PyAr (Python Argentina) organizó un Meetup (virtual, obviamente); y también organizará la PyConAr entre el 16 y 27 de noviembre de este año. (Muchas gracias a Sofía por aclararme la confusión que se me había generado entre estos nombres!)

Lo que sigue son mis impresiones de la primera de un ciclo de tres exposiciones que tomaron lugar en ese Meetup, sobre un proyecto llamado 
Visual Searchbúsqueda visual
 presentado por Sofía Denner. Sofía es programadora en MercadoLibre, desarrolla en Python y se dedica a la parte técnica de
machine learningaprendizaje de máquinas
. Esta charla se encuentra grabada y subida al canal de YouTube de PyAr, y puede verse en el siguiente link.

Contexto y premisa del proyecto

Visual Search es un proyecto que busca resolver el problema de encontrar algo que uno quiere comprar, pero sin saber ponerlo en palabras: muchas veces no es posible saber exactamente con qué palabras un vendedor describe cierto producto, y resultaría mucho más fácil poder tomar una fotografía de ese producto, y basar la búsqueda en esa foto.

En sí, Visual Search surgió dentro de algo llamado Nugget!, el cual es un espacio de aprendizaje orientado a personal de IT donde se les permite volcar conocimientos adquiridos en otros cursos y así poder crear algo más bien práctico. Es un lugar de encuentro con otros data scientists, que tienen mucha más experiencia en temas de machine learning y quieren ayudarlos.

El proyecto fue llevado a cabo por únicamente 3 personas: Sofía Denner, Francisco Yackel y Faustino Gagneten.

Esto implica que el proyecto no es productivo y que no está en los objetivos de MercadoLibre pasar este proyecto a la etapa de producción en el futuro cercano; y además que tuvo limitaciones de tiempo, debido a que no es la actividad principal que ninguno de ellos realiza en MercadoLibre.

Intuición del proyecto

Casi siempre que se busque resolver una problemática implementando machine learning, lo que se busca implementar tras bambalinas es una red neuronal (o varias). Una red neuronal es, en breve, una fórmula matemática muy grande que se representa gráficamente como un conjunto de varios nodos y flechitas, a la cual ingresan varias
inputsentradas
y de la cual salen varias
outputssalidas
. Cada nodo o neurona toma valores numéricos de una o más entradas, las procesa y se las pasa a una o varias más neuronas. De esta forma, se pueden agrupar las neuronas en varias capas, de la cual lo único que podemos ver desde "afuera" es la capa de outputs.

Ejemplo de una red neuronal bicapa. Fuente

Con el objetivo de convertir la información de la imagen en números que puedan ser las inputs de la red neuronal, comúnmente se obtienen 3 valores (RGB) para cada píxel de la imagen. A medida que la información de estas entradas va atravesando las sucesivas capas de la red, cada neurona calcula números que intentan interpretar información sobre los colores, texturas, formas, contornos, etc. de la imagen. A la salida de la red neuronal normalmente se obtiene una clasificación, por ejemplo, la probabilidad de que en la imagen haya un pájaro, una puesta de sol, un perro, un gato, etc.

En el proyecto se utilizaron redes neuronales que ya estaban entrenadas con muchos millones de imágenes que ya estaban subidas a Internet, las cuales son bastante precisas en su tarea de detectar qué hay en una imagen.

El otro modelo que se utiliza es el algoritmo KNN (
K-nearest-neighboursK vecinos más cercanos
). En éste, se representa un
datasetconjunto de datos
n-dimensional de distintos conjuntos de elementos; y al incorporarse un nuevo elemento, se evalúa la distancia de los K vecinos más cercanos con el objetivo de asumir a qué conjunto pertenece ese nuevo elemento.

Visualización del algoritmo KNN. Fuente

Este algoritmo se utiliza en el proyecto no para clasificar, sino para poder encontrar imágenes "cercanas" en relación a las matrices RGB que presenten en relación a otras que existan en el dataset.

Implementación

Las redes neuronales que se probaron en el proyecto fueron VGG16 y mobilenet.

El vector que representa cada imagen en VGG16 es de 4096 dimensiones, y en mobilenet, de 1024 dimensiones. Este dato no es menor, ya que mientras más dimensiones tenga cada vector, el costo computacional del algoritmo se vuelve mucho mayor.

En este sentido, mobilenet es mucho más eficiente que VGG16, por lo cual se optó por la primera.

Para la implementación del algoritmo KNN se hicieron pruebas con las librerías nmslib y pysparnn, y finalmente se optó por la primera.

Limitaciones

El proyecto es altamente ambicioso debido a que el dataset se compone de muchos millones de imágenes. Para ejemplificar, Sofía menciona que sólo en el
websitesitio Web
de Argentina hay 60 millones de publicaciones, cada una con entre 1 y 10 fotos. Por este motivo, y a pesar de que la capacidad de cómputo de MercadoLibre es bastante grande, se volvió muy necesario optimizar todo para que sea factible.

Sólo se utilizó un
subsetsubconjunto
de imágenes y no todo el sitio (en particular, la categoría de
fashionmoda
). Además, soló se trabajó con la primera foto de cada publicación, que usualmente es la más descriptiva.

También se aplicó un PCA para reducir el tamaño dimensional del dataset. Luego de aplicarlo, se logró mantener un 85% de la varianza (representativa de la distancia entre cada imagen dentro del dataset), pero se redujo de 1024 dimensiones a sólo 436. 

Visualización de la acción de una PCA. Fuente


El dataset utilizado finalmente fue de ~300 mil imágenes de la categoría fashion.



Comentarios finales

Elegí como mi primera entrada al blog escribir sobre este proyecto y charla por varios motivos. 

Personalmente siempre me pareció fascinante la idea del machine learning (y obviamente no soy el primero ni el último), que es un concepto que parece haber pasado de un plano de ciencia ficción a la realidad con una increíble velocidad (dos amigos míos me matarían si no aprovechara esta oportunidad para mencionar las obras del genial Isaac Asimov).

Esta charla fue excelente en lograr hacer entender las ideas principales de machine learning a oyentes como yo, que no tenemos realizados estudios formales sobre ciencias de la computación (es decir, los que formamos parte del resto de los mortales) pero sin sacrificar datos técnicos que me parecieron vitales para conectar estas ideas. 

Quizás esto sea justamente por la naturaleza de los integrantes del proyecto - en el primer minuto de charla Sofía se presentó a si misma como desarrolladora de Python; no es data scientist, y por eso tiene una habilidad nata en comunicar estos conceptos de forma clara y concisa. Espero haber podido aportar yo también un granito de arena en esta tarea. Si leyeron hasta acá, ¡muchas gracias!

(Queremos agradecer nuevamente a Sofía tanto por la charla, por dejarnos compartir esta nota y por darnos una atenta devolución, sos lo más! 😊)

Autor: Franco Abosso