Resumen
El Machine Learning o aprendizaje automático, consiste en un subconjunto de técnicas de la Inteligencia Artificial que permite a las máquinas aprender a través de la experiencia, definida por grandes conjuntos de datos. Dentro de este campo tan amplio y cuya expansión continúa en constante crecimiento, cabe destacar el Deep Learning o aprendizaje automático, un algoritmo estructurado en varias capas cuyo aprendizaje viene a asemejarse al procedimiento que siguen las redes neuronales del cerebro, hablándose así de las redes neuronales artificiales. Estos dos conceptos no sólo están en boca de todos, si no que también en mano de todos. Sin ir más lejos, los asistentes inteligentes que nos acompañan cada día en nuestros dispositivos móviles funcionan gracias al desarrollo de estas nuevas tecnologías.
Las redes neuronales artificiales están constituidas por varias capas: Input Layer o capa de entrada, Hidden Layer o capas ocultas y Ouput Layer o capa de salida. La complejidad de esta herramienta está en el modelo computacional de la neurona, operación que se desarrolla en las capas ocultas. El objetivo del aprendizaje de las redes es ajustar de la manera más óptima los parámetros internos que definen el modelo, de manera que se minimice el error cometido entre la salida estimada y la salida deseada o real. La función que define el error de la predicción se denomina Función de coste o de pérdida Loss Function. El método utilizado para minimizar esta función y así ajustar los parámetros del modelo es el que se conoce como Descenso del Gradiente, que permitirá calcular cuánto es necesario modificar los parámetros para apreciar un cambio en la función de coste, tomando los valores que la minimizan. Este procedimiento se realizará de manera reiterativa hasta conseguir una buena precisión de los resultados.
La rápida integración de la Inteligencia Artificial en la vida cotidiana y la masiva cantidad de datos que maneja han despertado, además de interés, inquietudes sobre la vulnerabilidad de estos modelos de aprendizaje ante posibles manipulaciones. Hasta los modelos más robustos entrenados con miles de datos, como es el caso de la ResNet-50, un algoritmo entrenado con 50.000 imágenes, han mostrado su fragilidad ante ciertos ataques. Es aquí donde entra en juego el papel del Ataque Adversario.
Un ataque adversario se define como una manipulación aplicada a cualquier tipo de dato de entrada que se suministra a la red neuronal. Se caracteriza por ser imperceptible al ojo humano al mismo tiempo que el modelo, previamente entrenado, lo percibe como un dato totalmente diferente al original, llevándole a cometer un error en su clasificación, como si de una ilusión óptica se tratara.
La programación de estos ataques resulta intuitiva. Dada, por ejemplo, una imagen de entrada, el procedimiento para configurar el ataque será modificar la imagen lo suficiente como para que sea inapreciable a simple vista a la vez que burla a la red. Para ello, se vuelve a hacer uso del Descenso del Gradiente, pero resulta interesante que su función en este caso será distinta a la mencionada con anterioridad. En el caso del entrenamiento de la red, el gradiente se calculaba respecto a los parámetros internos para ajustarlos y mejorar la precisión del modelo minimizando la función de coste. En el caso de los ataques, el gradiente se calculará con respecto a la propia entrada para obtener cuánto habría que modificar la imagen para apreciar un cambio en la función de coste (el error de la estimación). Además, en lugar de minimizarla interesará maximizarla para forzar a la red a predecir una clase diferente a la verdadera. La modificación de la imagen puede interpretarse como la adición de ruido inapreciable.
Un caso particular de los ataques son los ataques dirigidos. Como su propio nombre dice, su objetivo no es sólo conseguir que la red erre al clasificar a la entada, si no dirigir el ataque hacia una clase objetivo. En este caso, se maximizará la pérdida con respecto a la clase original (minimizando la probabilidad de ser la clase verdadera) y se minimizará la pérdida con respecto a la clase objetivo (maximizando su probabilidad). Estos ataques pueden conseguir que los engaños a la red sean más sorprendentes seleccionando una clase objetivo totalmente diferente a la original.
Para prevenir estos ataques se propone en este trabajo la aplicación del Principal Component Analysis (PCA) o Análisis de Componentes Principales. Consiste en un método estadístico que permite transformar espacios de dimensión p a otra más pequeña k (k<p) a la vez que conserva la mayor información posible. El objetivo de recurrir al uso de PCA es el siguiente: comprimir la imagen a la que le ha sido aplicado el ataque adversario, de manera que se modifique el ruido y que, tras enseñar la nueva imagen a la red neuronal, esta la califique correctamente.
Pero, ¿por qué ocurre esto? A partir de un conjunto de datos sintéticos se estudiará por qué ocurre este fenómeno, buscando respuestas para conocer cómo la dispersión y la dimensión de los datos afectan a la vulnerabilidad de las redes ante diferentes ataques adversarios.