Esta es una descripción general de la seguridad de los sistemas de aprendizaje automático. Dentro de unos pocos pergaminos, veremos ejemplos adversos, robo de modelos, envenenamiento por conjuntos de datos y protección por conjuntos de datos.
️ ️ Ejemplos de versiones anteriores
El tema de ejemplos adversarios (AE) es fascinante y área de investigación activa . Plantea cuestiones fundamentales relacionadas con los límites y la seguridad de nuestras actuales arquitecturas clasificadoras basadas en gradientes. Los AE son datos ingeniosamente diseñados diseñados para ser clasificados erróneamente por un modelo específico. Están “diseñados para hacer que el modelo cometa un error” ( OpenAI Attacking Machine Learning with Adversarial Illustrations). La imagen de la derecha es un ejemplo contradictorio.
La diferencia entre el perro de la izquierda y la de la derecha probablemente no sea perceptible. Esto puede ser debido a las limitaciones de nuestros ojos (o la profundidad de bits de su monitor). Y sin embargo, son cruciales para varios modelos. De hecho, la última imagen es considerada como un plano por una ResNet50 inicializada con peso de entrenamiento predeterminado en Keras, y una AE probablemente funcionará en otra arquitectura. La única diferencia son los valores de píxeles pequeños, amplificados en la segunda imagen.
Podemos notar que ResNet50 estaba bastante seguro de que el perro en la imagen de la izquierda es un golden_retriever (~ 80%) y la imagen creada es un plano con un plano más alto. confianza (~ 99%). Por lo tanto, se puede engañar a un modelo para que cometa un error con el puntaje de confianza que deseamos, en general solo necesitamos entrenarlo el tiempo suficiente. ¿Cuáles son los impactos de una clasificación errónea con un puntaje de confianza arbitrario?
Los sistemas de recomendación también se estudian para recomendación adversarial influyendo en un sistema de recomendación a través de usuarios falsos indistinguibles.
Seguridad
En la mayoría de los modelos conocidos , cualquier imagen se puede crear en otra clase con un puntaje de confianza arbitrario. Así que nuestro perro puede ser clasificado erróneamente como cualquier cosa que deseamos con cualquier precisión arbitraria. Se ha demostrado que también funciona en el mundo físico, por ejemplo, si los imprimimos . Un ejemplo famoso es engañar al sensor de un automóvil para ver un límite de velocidad en lugar de una señal de PARADA. La salida de un modelo puede manipularse para tomar, en cierta medida, una decisión deseada o generar un comportamiento no manejado por la aplicación que se basa en él.
A finales de 2017, algunos demostraron que modificar un píxel puede ser suficiente en algunos casos. Si desea saber más sobre esto, puede leer el artículo Ataque de un píxel por engañar a redes neuronales profundas disfrutar de una presentación de alto nivel en el canal Papel de un minuto o verificar esto Implementación de Keras .
Los ejemplos de publicidad son ataques simples y no requieren mucho cálculo. En imágenes relativamente pequeñas, una buena GPU puede crear un AE en menos de un minuto. Este es un problema de seguridad real y probablemente esa es la razón por la que podemos leer esa línea al final de algunos de los documentos relacionados :
La investigación también fue financiada en parte por el Laboratorio de Investigación del Ejército, bajo el Número de Acuerdo Cooperativo. W911NF-13–2–0045 (ARL Cyber Security CRA), y la Oficina de Investigación del Ejército con subvención W911NF-13–1–0421.
Diferentes niveles de amenazas y técnicas
Sabemos que los ejemplos de adversarios juegan con los límites de decisión de un clasificador. Podemos, por ejemplo, agregar píxeles aleatorios en una imagen y cambiar la clasificación o elegir sabiamente esos píxeles agregados y elegir la clasificación. Dependiendo del objetivo de la amenaza, denotamos:
- La reducción de la confianza aumenta la ambigüedad entre las clases al reducir la confianza del modelo para una imagen dada.
- La clasificación errónea cambia la clase de salida a otra clase que la original.
- La clasificación errónea dirigida obliga a que la salida de una entrada específica sea una clase objetivo específica.
Según el conocimiento del oponente, existen tres formas de crear ejemplos contradictorios. Cada uno con su propio conocimiento previo asumido del objetivo. Saber:
- el modelo en su conjunto incluye sus pesos ( gradiente-base ),
- solo la puntuación de cada clase ( basado en la puntuación ),
- solamente La predicción ( basada en transferencia ).
Una copia simplificada de un diagrama de Papernot. et al en Las limitaciones del aprendizaje profundo en entornos adversos (página 3):
Un ejemplo de ataque de base de gradiente consiste en calcular la función de gradiente con pérdida de una imagen. Siguiendo por un pequeño paso en la dirección opuesta del gradiente. Para mantener los valores RGB válidos, la imagen puede recortarse entre 0 y 255 y el valor del ruido entre 0 y un valor pequeño, M. Este valor M determina la diferencia máxima entre la imagen original y la adversaria, por lo que M debe ser más pequeño que la sensibilidad del color de un humano (a través de un monitor). M más pequeño que 5 debería estar bien. La técnica anterior se llama el método de clase iterativo menos probable. Otros tipos de técnicas de gradiente existen como un método rápido de signo de gradiente. Puede leer este documento (parte 2, página 3). Podemos notar que todos requieren un conocimiento completo del modelo y sus pesos.
Los ataques basados en la puntuación dependen solo de la puntuación del modelo predicho para estimar el gradiente y luego aplicar la técnica anterior. Los ataques basados en transferencias dependen exclusivamente de la etiqueta de salida. Este es un escenario más realista en comparación con el basado en la puntuación y el gradiente. Puede encontrar un ejemplo de un ataque basado en transferencia en la sección Robo de modelo
Defensa
Aquí no profundizaremos mucho. Lo invito a buscar las palabras clave que lo atraigan, merece una publicación en el blog. su propio. Podemos ver dos grandes categorías de defensas:
- Reactiva : donde el objetivo es un ejemplo de confrontación previo que nuestro modelo solicita para una inferencia.
- Proactivo : donde El objetivo es hacer que los modelos sean más resistentes a este tipo de ataque. Black Box Attacks por Nicolas Papernot et al.
Ejemplo de defensas reactivas:
- MagNet un modelo de ‘dos redes’ compuesto por un auto-codificador capaz de reformarse antes de ser Alimentado a un clasificador. Aquí se necesitan varios autocodificadores, por lo que es un recurso costoso.
Ejemplo de defensas proactivas:
- Aleatorias aleatorias redes neuronales convolucionales
- Mezcla de etiquetas (2016)
- Mixup ( 2017)
- Adversarial training, reentrenamiento de la red neuronal con un subconjunto de ejemplos adversariales
- Emparejamiento Logit: este es muy nuevo (2018) y “logra la defensa más avanzada para ataques de caja blanca y caja negra en ImageNet “
📡 Robo de modelo
Intentando reconstruir el modelo de otra persona o recuperar datos que se usaron para entrenar el modelo. El conjunto de datos y / o el modelo pueden ser confidenciales por su valor sensible o comercial.
La tensión entre la confidencialidad del modelo y el acceso público motiva nuestra investigación de los ataques de extracción de modelos. ( Fuente )
Resumiremos brevemente los Black Box Attacks de Nicolas Papernot et al. Si quieres profundizar en este tema, puedes disfrutarlo leyéndolo. La idea principal que se describe aquí es crear una red neuronal sustituta local entrenada con un conjunto de datos sustituto creado por el adversario. Luego, utilizando técnicas basadas en gradientes, se pueden generar ejemplos adversarios.
No hay necesidad de un conjunto de datos etiquetado, lo que puede ser costoso de producir. El conjunto de datos sustituto se etiqueta utilizando la salida del DNN remoto. Luego, el conjunto de datos local se aumenta localmente mediante una técnica llamada Aumento de conjunto de datos basado en jacobianos . Aquí hay un pseudo código que describe el aumento de datos jacobianos (código completo disponible en github ).
def jacobian_augmentation (conjunto de datos): "" [ - get_label: API call en el control remoto oracle - alpha: tamaño de paso - jacobian: devuelve la matriz jacobian del modelo sustituto "" " jacobian_dataset = [] para muestra en el conjunto de datos: label = get_label (muestra) jacobian_sample = muestra + signo alfa * (jacobian (substitute_model, label) jacobian_dataset.append (jacobian_sample) devuelve jacobian_dataset
Básicamente, cada ejemplo se complementa agregando una pequeña variación en la dirección de la posición gradiente.
Destacan que:
[…] esta técnica no está diseñada para maximizar la precisión del DNN sustituto, sino más bien para garantizar que se aproxime a los límites de decisión del oráculo con pocas consultas de etiquetas.
La elección de la arquitectura no es ‘ muy t Importante ya que podemos asumir algunos detalles de antemano. Existe una alta probabilidad de que se haya utilizado una CNN para una tarea de clasificación de imágenes. También es posible entrenar simultáneamente varias arquitecturas.
Una implementación de un ataque similar está disponible en Github .
💊 Dataset Poisoning
Los ataques de datos envenenados apuntan a manipular el comportamiento del modelo en el momento de la prueba .
Envenenamiento El 3% de un conjunto de entrenamiento logró reducir la precisión de la prueba en un 11% ( Defensas certificadas para ataques de envenenamiento de datos por Steinhardt en al. (2017)).
el objetivo es maximizar la función de pérdida si se invierte un subconjunto de la etiqueta del ejemplo de entrenamiento, esto se realiza básicamente mediante el ascenso por gradiente:
Un atacante primero elige una instancia de destino del conjunto de prueba; un ataque de envenenamiento exitoso hace que este ejemplo de destino se clasifique incorrectamente durante el tiempo de prueba. A continuación, el atacante toma muestras de una instancia base de la clase base y le hace cambios imperceptibles para crear una instancia de veneno; este veneno se inyecta en los datos de entrenamiento con la intención de engañar al modelo para que etiquete la instancia de destino con la etiqueta base en el momento de la prueba. Finalmente, el modelo se entrena en el conjunto de datos envenenados (conjuntos de datos limpios + instancias de envenenamiento). Si durante el tiempo de prueba, el modelo confunde la instancia de destino en la clase base, entonces el ataque de envenenamiento se considera exitoso ¡Ranas venenosas! Ataques de envenenamiento de marca limpia dirigidos a redes neuronales
Protection Protección de conjunto de datos
Cifrado completamente homomórfico
El cifrado totalmente homomórfico es un esquema de cifrado que preserva la operación de los datos mediante la función de cifrado y descifrado. Si el esquema se conserva durante la adición, el cifrado de una suma o la suma de los miembros cifrados dará el mismo resultado. Esto significa que puede cifrar sus datos localmente y enviarlos a un servidor, dejar que haga un trabajo utilizando solo a los operadores admitidos y devolverle el resultado cifrado. No es necesario que confíe en el servidor, ya que no entenderá lo que está manipulando.
Permita que ENC y DEC funcionen las funciones de cifrado y descifrado respectivamente:
ENC (X1 + X2) = ENC (X1) + ENC (X2) (homomorfismo) Ya que X1 + X2 = DEC (ENC (X1 + X2)) Tenemos X1 + X2 = DEC (ENC (X1) + ENC (X2))
Si necesita seguir a una persona en este campo, sería Craig Gentry . Encontró el primer esquema FHE en 2009.
Gran parte del trabajo reciente de Craig, incluidos FHE y mapas criptográficos multilineales, generalmente cae en el área de “criptografía basada en celosía”. A diferencia de los criptosistemas de uso común como RSA y la criptografía de curva elíptica, los criptosistemas basados en celosías no pueden ser factibles (hasta donde sabemos) mediante computadoras cuánticas. ( IBM )
La parte más importante aquí es que si un día existe este esquema de encriptación, podemos (casi) no preocuparnos por la privacidad de nuestros datos que enviamos desde una máquina remota. Si esta máquina es maliciosa, puede dar resultados erróneos pero no explotar sus datos … A menos que … Si estamos hablando de un modelo de aprendizaje automático cifrado FH que intenta predecir algo, nada le garantiza que el modelo esté vacío al principio. su oponente aún puede hacer inferencias sobre el modelo joven (observando las decisiones de los límites y demás). Debería revisar CryptoDL .
Robo de datos
También es posible recuperar los datos utilizados en el entrenamiento simplemente mirando la salida del modelo, Ataques de inferencia de membresía contra modelos de aprendizaje de máquina :
dado un registro de datos y acceso de caja negra a un modelo, determine si el registro estaba en el conjunto de datos de entrenamiento del modelo. Para realizar una inferencia de membresía contra un modelo objetivo, hacemos un uso adverso del aprendizaje automático y entrenamos nuestro propio modelo de inferencia para reconocer las diferencias en las predicciones del modelo objetivo en los insumos en los que entrenó en comparación con los insumos en los que no se entrenó.
Se puede encontrar una implementación aquí .