Usaron una serie de ataques diferentes para manipular las señales con el fin de engañar a los modelos de aprendizaje automático para que los interpretaran mal. Por ejemplo, imprimían pegatinas para engañar al sistema de visión. En el artículo titulado : "Robust Physical-World Attacks on Machine Learning Models" https://arxiv.org/abs/1707.08945 demostraron cuatro maneras diferentes de interrumpir la forma en que las máquinas leen y clasifican estos signos utilizando sólo una impresora en color y una cámara.
#67:
El paper está bien a nivel experimental pero no a nivel real. Me explico: no han atacado ningún sistema real de autoconducción, sino que han diseñado el suyo propio y han atacado a su propio sistema. Pero el paper tiene varios defectos de novatillo:
- El primero es que diseñan su sistema con input de 32x32. Para hacerse una idea, cuando en este mundillo dices que usas una AlexNet, que el input es 224x224, ya no te toman muy en serio, porque sigue siendo un juego de niños. Ni siquiera viene descrita correctamente la topología, así que no se puede saber si hacen escala de grises con una 32x32x1 o usan color con una 32x32x3. Este tamaño lo han decidido porque es el input clásico de CIFAR10 y MNIST, que son las que se usan cuando estás aprendiendo. Para los que no las conozcan, MNIST son cifras del 0 al 9 dibujadas a mano, y CIFAR10 son 60.000 imágenes de 10 tipos de objetos: coche, barco, avión, ciervo, perro, gato, caballo, camión, pájaro, rana y barco. En estos tamaños tan pequeños es muy fácil "jugar" porque incluso en un navegador puedes entrenar, no hace falta GPU ni poder computacional ni nada. Es un juguete.
- El segundo es la poca topología que describen, 3 convolucionales y una fully connected... Cleverhans. Eso es conv de 8 filtros activación ReLu, conv de 6 filtros ReLu, conv de 5 filtros ReLu y la FC. Incluso cuando estoy explicando a chavales cómo funcionan el deep learning, y estamos con el primer problema de clasificar CIFAR10, la topología que uso suele ser conv 16 ReLu, pool 2, conv 20 ReLu, pool 2, conv 20 ReLu, pool 2 y softmax. La topología de los que han hecho este paper es de juguete, y encima para clasificar hacia 17 clases y no hacia 10.
- El tercero la cantidad de muestras: tienen 500 para 4 de las clases, pero luego tienen una clase (turn right) con solamente 92 muestras. Lo normal es tener un mínimo de 1000 de cada una de las clases.
- Aquí viene el punto más gracioso. Te dicen que usan AdaDelta pero que ponen el learning rate a 0.1... cuando curiosamente AdaDelta no usa learning rate, sino un vector extra xt aparte del gradiente.
- No indica cómo calculan las muestras para usar de validación.
- 100 epoch una accuracy de 91%. Es de llevarse las manos a la cabeza
- Durate las pruebas tienen en cuenta la perturbación angular que no han tenido en cuenta al entrenar el modelo. Y no corrigen esa perturbación con OpenCV ni con nada. Ole sus huevos morenos.
En definitiva... se nota que son novatos no, lo siguiente. Y el experimento no tiene validez con un sistema real. Para clasificación en carretera yo estoy usando una YOLO con input de 448x448x3, y me consta que está en la media o por debajo de los sistemas reales. Les recomendaría empezar con eso.
#8:
#6 Convertir las señales en virtuales en el mapa de coche. Cuando el coche autónomo pase por un determinado punto por GPS sabrá que hay un STOP incluso si la señal física se la ha llevado un vendaval. #7 No le doy ni 20 años -> https://twitter.com/jm22381/status/868943039926087684
#75:
#72 Para nada. En una red neuronal lo que se tarda es en entrenar el modelo, es lo que requiere poder de computación. Una vez el modelo está entrenado, la ejecución del modelo es muy rápida. Por ponerte un ejemplo, yo en el móvil llevo dos apps propias hechas con tensorflow, una de ellas para reconocer 50 objetos cotidianos en tiempo real desde la cam del móvil, la otra para reconocer personas por un proyecto que estoy haciendo de drones autónomos para encontrar supervivientes en caso de catástrofe (se libreran drones en un área marcada, los drones tienen un arduino para controlar una Raspberry Pi ejecutando el modelo, y cuando encuentran personas mandan las coordenadas a las fuerzas del orden). Y estamos hablando de algo que se ejecuta en el móvil.
#79:
#58 En mi opinión no sirven para nada. La conducción autónoma no puede depender de leer señales de tráfico, es un sistema anticuado y desfasado, está diseñado para orientar a los humanos y quitando alguna ( en los cruces para dar prioridad, y alguna que otra historia ), son señales irrelevantes que no sirven para nada ni son críticas para la conducción. Si alguien se sube en un coche autónomo que confía en leer señales de tráfico como algo absoluto es que es muy tonto.
Respecto al tema de engañar, también puedes engañar a humanos poniendo señales falsas...
#3:
#0 Ese STOP lo entendía como una señal de 45 MPH, ¡pero con un grafiti más complicado lo tomaba por una señal de 100 MPH!
La verdad, es que algunas de las modificaciones a las señales son de risa para los ojos de un humano.
El caso es que esto servirá para mejorar el algoritmo de reconocimiento de las señales y además hará que implementen otros medidas como que el coche sepa que en un entorno urbano no puede circular a 100 por mucho que haya leído en una señal.
Edit #1 Es que en el cielo las señales son mucho más claras y no hay vándalos convirtiendo los STOP en eSTOPa
#48:
#26 Lo mejor de todo es que incluso para un conductor humano la interpretación de esa señal es obvia: "Bienvenido a Silent Hill".
#12:
#8 Igual en 20 años sigue existiendo meneame. Nos vemos entonces.
PD: Llevan conductor hasta los trenes y ahora en 20 años vamos a tener todos absolutamente todos coches autonomos, haced el favor de bajar de la nube.
#28:
#17 No tienes en cuenta que el tiempo de expansión de cada nueva tecnología es menor que el de la anterior y cada vez más exponencial. ¿Cuánto tardó en alcanzar 1.000 usuarios el telégrafo, la radio, la televisión, el teléfono móvil, el smartphone? Cada uno mucho menos tiempo que el anterior.
Si hay obras detectará el obstáculo en la carretera y al volver a la zona con conexión mandará la información de modo que el resto de coches sabrá que en esa zona sin conexión hay una obra, automáticamente buscarán una ruta alternativa y le comunicará a los pasajeros el motivo del desvío.
#11:
#8 Excepto si pierde la cobertura, claro.
Como se nota el universo entero gira alrededor de las ciudades y no hay más mundo más allá de la M-50.
#5:
Sólo será un problema temporal: la conducción autónoma hará que desaparezcan señales y semáforos porque todos los coches estarán conectados en red.
#4:
#3 Al menos no confundia las señales con una avestruz.
#6 Convertir las señales en virtuales en el mapa de coche. Cuando el coche autónomo pase por un determinado punto por GPS sabrá que hay un STOP incluso si la señal física se la ha llevado un vendaval. #7 No le doy ni 20 años ->
El paper está bien a nivel experimental pero no a nivel real. Me explico: no han atacado ningún sistema real de autoconducción, sino que han diseñado el suyo propio y han atacado a su propio sistema. Pero el paper tiene varios defectos de novatillo:
- El primero es que diseñan su sistema con input de 32x32. Para hacerse una idea, cuando en este mundillo dices que usas una AlexNet, que el input es 224x224, ya no te toman muy en serio, porque sigue siendo un juego de niños. Ni siquiera viene descrita correctamente la topología, así que no se puede saber si hacen escala de grises con una 32x32x1 o usan color con una 32x32x3. Este tamaño lo han decidido porque es el input clásico de CIFAR10 y MNIST, que son las que se usan cuando estás aprendiendo. Para los que no las conozcan, MNIST son cifras del 0 al 9 dibujadas a mano, y CIFAR10 son 60.000 imágenes de 10 tipos de objetos: coche, barco, avión, ciervo, perro, gato, caballo, camión, pájaro, rana y barco. En estos tamaños tan pequeños es muy fácil "jugar" porque incluso en un navegador puedes entrenar, no hace falta GPU ni poder computacional ni nada. Es un juguete.
- El segundo es la poca topología que describen, 3 convolucionales y una fully connected... Cleverhans. Eso es conv de 8 filtros activación ReLu, conv de 6 filtros ReLu, conv de 5 filtros ReLu y la FC. Incluso cuando estoy explicando a chavales cómo funcionan el deep learning, y estamos con el primer problema de clasificar CIFAR10, la topología que uso suele ser conv 16 ReLu, pool 2, conv 20 ReLu, pool 2, conv 20 ReLu, pool 2 y softmax. La topología de los que han hecho este paper es de juguete, y encima para clasificar hacia 17 clases y no hacia 10.
- El tercero la cantidad de muestras: tienen 500 para 4 de las clases, pero luego tienen una clase (turn right) con solamente 92 muestras. Lo normal es tener un mínimo de 1000 de cada una de las clases.
- Aquí viene el punto más gracioso. Te dicen que usan AdaDelta pero que ponen el learning rate a 0.1... cuando curiosamente AdaDelta no usa learning rate, sino un vector extra xt aparte del gradiente.
- No indica cómo calculan las muestras para usar de validación.
- 100 epoch una accuracy de 91%. Es de llevarse las manos a la cabeza
- Durate las pruebas tienen en cuenta la perturbación angular que no han tenido en cuenta al entrenar el modelo. Y no corrigen esa perturbación con OpenCV ni con nada. Ole sus huevos morenos.
En definitiva... se nota que son novatos no, lo siguiente. Y el experimento no tiene validez con un sistema real. Para clasificación en carretera yo estoy usando una YOLO con input de 448x448x3, y me consta que está en la media o por debajo de los sistemas reales. Les recomendaría empezar con eso.
#0 Ese STOP lo entendía como una señal de 45 MPH, ¡pero con un grafiti más complicado lo tomaba por una señal de 100 MPH!
La verdad, es que algunas de las modificaciones a las señales son de risa para los ojos de un humano.
El caso es que esto servirá para mejorar el algoritmo de reconocimiento de las señales y además hará que implementen otros medidas como que el coche sepa que en un entorno urbano no puede circular a 100 por mucho que haya leído en una señal.
Edit #1 Es que en el cielo las señales son mucho más claras y no hay vándalos convirtiendo los STOP en eSTOPa
#72 Para nada. En una red neuronal lo que se tarda es en entrenar el modelo, es lo que requiere poder de computación. Una vez el modelo está entrenado, la ejecución del modelo es muy rápida. Por ponerte un ejemplo, yo en el móvil llevo dos apps propias hechas con tensorflow, una de ellas para reconocer 50 objetos cotidianos en tiempo real desde la cam del móvil, la otra para reconocer personas por un proyecto que estoy haciendo de drones autónomos para encontrar supervivientes en caso de catástrofe (se libreran drones en un área marcada, los drones tienen un arduino para controlar una Raspberry Pi ejecutando el modelo, y cuando encuentran personas mandan las coordenadas a las fuerzas del orden). Y estamos hablando de algo que se ejecuta en el móvil.
#17 No tienes en cuenta que el tiempo de expansión de cada nueva tecnología es menor que el de la anterior y cada vez más exponencial. ¿Cuánto tardó en alcanzar 1.000 usuarios el telégrafo, la radio, la televisión, el teléfono móvil, el smartphone? Cada uno mucho menos tiempo que el anterior.
Si hay obras detectará el obstáculo en la carretera y al volver a la zona con conexión mandará la información de modo que el resto de coches sabrá que en esa zona sin conexión hay una obra, automáticamente buscarán una ruta alternativa y le comunicará a los pasajeros el motivo del desvío.
#58 En mi opinión no sirven para nada. La conducción autónoma no puede depender de leer señales de tráfico, es un sistema anticuado y desfasado, está diseñado para orientar a los humanos y quitando alguna ( en los cruces para dar prioridad, y alguna que otra historia ), son señales irrelevantes que no sirven para nada ni son críticas para la conducción. Si alguien se sube en un coche autónomo que confía en leer señales de tráfico como algo absoluto es que es muy tonto.
Respecto al tema de engañar, también puedes engañar a humanos poniendo señales falsas...
#8 No me sirve. Si un vendaval se lleva tu señal ya no tienes señal y tienes que hacer caso a lo que te corresponda según el orden de preferencia de señales (semáforos, señales verticales, marcas viales). No puedes ir en plan "yo sé que aquí antes había una señal de prioridad así que tengo prioridad, aunque no haya señal".
#23 Lo increíble es que el ordenador no sea capaz de reconocerla, más increible aún que la confunda con una señal de velocidad, los STOPS son las únicas señales octogonales del mundo, precisamente por su importancia para reconocerlas aunque estén deterioradas, vandalizadas, tapadas por la nieve o lo que sea, hay que ser inútil como diseñador/programador para no tener en cuenta esa característica de la señal de stop e introducirla en el programa.
#92 El mundo real esta lleno de variable incontrolables incluyendo señales cambiantes de todo tipo (como un obrero en mono de colores diciéndole a un sistema automático que se tiene que meter en dirección prohibida porque hay una acería en la calle).
Este tema es mucho nas complicado de lo que la gente piensa, en mi opinión no veremos vehículos autónomos (de verdad, vehicilo de serie, nivel 5, sin supervisión humana y en tráfico abierto y toda condición), ni a corto ni a medio plazo. (A largo plazo quien sabe).
cC #8
#34#26 No se necesitará tanto tiempo para cambiar los coches porque no serán comprados por clientes finales sino flotas que pondrán compañías como Uber. En el momento que sea más barato llamar desde una app a un coche que te recoja y te lleve para un viaje puntual que pagar el mantenimiento y el seguro de uno propio el cambio será exponencial. Lo pagarás en el viaje pero la presión de estas empresas sobre las aseguradoras hará que sean unos céntimos de tu factura. El cambio empezará en las ciudades y luego a los pueblos donde hay más caminos complicados. Estas megaempresas no invierten miles de millones si no saben que hay un enorme negocio en quitar a los conductores de en medio. #22 Por eso en EEUU ya están cambiando leyes a nivel estatal y ahora a nivel nacional.
Una señal deteriorada probablemente sea vista mejor por un coche con visión nocturna e infrarrojos que por un conductor cansado que es más probable que cause un accidente.
#28 Y aun con todo. En 20 años no verás lo que vaticinas, se siguen vendiendo coches de combustión, se siguen vendiendo coches sin ESP, ASR y no se si sigue siendo legal venderlos sin ABS pero no me extrañaría.
En 20 años verás coches autónomos, pero no serán los únicos que veas. Ni serán mayoría. Y no me apuesto una caña contigo porque será casi imposible que tú me la pagues a mí o yo te la pague a tí, pero vaya, que en una charla de bar me la apostaría tranquilamente.
EDITO para añadir: Sobre las obras, lo que te han dicho sobre las señales que vuelan, el coche frenará si ve el obstaculo, entonces...para qué señales aunque sean en el mapa...si ya va a detectar todos los obstáculos aunque vaya a 90 por donde está limitado a 40 por obras?
Y si es una señal temporal de trafico alternado al haberse reducido un carril? Como solucionas que no se meta en el tramo al no saber que había un semáforo en rojo porque no lo tenía cacheado?
No, los experimentos con gaseosa, y para llegar a lo que dices tienen que pulirse tantos detalles que todavía ni todos los genios juntos que trabajan en ello han sido capaces tan siquiera de imaginarlos.
#5 Sí, claro, y Bill Gates iba a acabar con el SPAM iba a ser un problema del pasado en el año 2006. Para empezar aún no tenemos coches 100% autónomos. Y cuando digo 100% digo autónomos al 100.0000%, no al 99.9998%. Así que imagínate lo que vamos a tener que esperar, no para tener coches autónomos, sino para que TODOS los coches sean autónomos de serie, desde el Mercedes Clase S hasta el Opel Corsa más básico.
Y el problema no es tanto que se puedan hackear las señales, el problema es que las señales también se deterioran. No me sirve un sistema de conducción autónoma que no sea capaz de entender una señal en este estado:
#29 No comparto nada tu opinión, son sistemas que tienen que enfrentarse a condiciones "salvajes" o no controladas.
Muchos de los sistemas que se utilizan para reconocer esas imágenes tienen un grado conocido de fiabilidad, algunos cercanos al 99% pero solo se basan en hacer pruebas con "ruido" que no sean mal intencionadas en la señal o que sea debido a factores climáticos o de la propia señal del vídeo. No olvides que esto es un sistema en el que confías tu seguridad. Algo curioso es lo que comenta #4 en esos experimetos lo importante quizás no es tanto que se consiguiera confundir a una red neuronal para que pensara que un perro era otra cosa, sino que además te decía que era esa otra cosa con un grado de confianza del 9X%. Si un sistema detecta que no está seguro de que una señal deteriorada o borrosa es un tipo de señal, el sistema puede tratar con esa incertidumbre.
Lo más peligroso es que puedes fabricar señales de tráfico que parezcan normales ante conductores pero que para un vehículo, o incluso para un modelo específico de vehículo, esté manipulada.
PS: Esto me recuerda a cuando se empezó a hablar de internet, la mayoría de protocolos de red se hicieron sin pensar para nada en la seguridad, ni en que haya gente mal intencionada, etc, etc, y eso supone muchos errores de diseño de base que hemos ido arrastrando.
#16 No haces más que darme la razón ¿cuanto tiempo ha pasado desde la primera linea de metro sin conductor? Y todavía queda para rato para que no haya conductores en ningún tren.
Por cierto, ¿¿¿¿LA CACHE???? Y si hay obras asumimos el ostiazo como normal...
#96 O cosas más comunes como encontrarte en un cruce donde, en principio, tienes que ceder el paso por que te vienen por la derecha pero te encuentras con que ellos tienen un ceda el paso y la única indicación de que tienes prioridad es que ellos tienen un ceda el paso, el cual solo ves su reverso
#55 Aprovechando tu comentario creo que algunas rencillas entre conductores son bastante tontas, puedo entender que si se generaliza que todos vayan hasta el final de una incorporación y se incorporen ahí, pero en general no pasa, y lo que tienes es que quizás pierdes medio minuto de tiempo, como mucho.
Al menos para mi no es un problema dejar un margen amplio de espacio y que se incorpore algún "listillo" como dicen otros.
#141 Mmmmmmm, por poner una similitud, en 1998 se demostraron las colisiones de SHA-0. Como SHA-0 y SHA-1 tienen las mismas operaciones internas, se puede demostrar matemáticamente que en el marco teórico SHA-1 es colisionable, pero eso no sucedió hasta febrero de este año... eso son 19 años más tarde. Y como SHA-256 usa las mismas operaciones, pues matemáticamente también es posible colisionarlo. El problema es la cantidad de operaciones.
Dicho esto, veamos un ejemplo real. Una ReLu es una activación sencilla muy fácilmente computable, la función es si x < 0 devuelve 0 y si x >=0 devuelve x. Es decir:
f(x) = x < 0 ? 0 : x
Supongamos que simplificamos aun más las imágenes y tenemos imágenes de 2x2 píxeles y además monocromo, cada pixel puede valer 0 (negro) o 1 (blanco). Y definimos esta función:
g(x) = 0.75*f(x[0]) + 0.25*f(x[1]) - 0.25*f(x[2]) - 0.75*f(x[3])
= 0.5 caballo
En este ejercicio no hace falta ser un águila para darse cuenta de que si yo hago un sticker de color negro del tamaño de un pixel y tapo el primer pixel de cada imagen, consigo resultados totalmente diferentes.
Ahora el problema viene dado por:
1. Las imágenes no suelen ser 2x2. En una 32x32 monocroma tendríamos 2^1024 diferentes posibles imágenes.
2. Encima las imágenes no van a ser monocromas, sino que tendremos de valores de 0 a 255 en tres canales (rojo, verde y azul), así que nuestra matrix 32x32 se vuelve 32x32x3, y en lugar de 0 o 1 ahora tenemos más posibles valores.
3. Por complicar un pelín la cosa, las redes usadas no serán tan sencillas como la que he propuesto, sino que tendrán varias capas, cada una de ellas calculando pesos, filtros, etc.
Es decir, la complejidad es mayor. Esta gente ha conseguido hacer una red suficientemente sencilla como para ser manejable, conocer las activaciones de cada capa, y así saber cómo afectan diferentes zonas del input al output calculado. Porque tienen un entorno suficientemente finito: input pequeño y pocas operaciones.
En un entorno más grande, no solamente aumenta la complejidad del input sino de las operaciones intermedias, así que cada vez se hace más complicado seguir la pista a qué modificar en el input para conseguir un output diferente.
Y viene el último problema: tú entrenas un modelo y consigues unos pesos para tu modelo. Pero otra persona diferente usa inputs diferentes o una topología diferente, con lo cual consigue pesos totalmente diferentes. Así que la trampa del input que funciona para tu modelo, no funciona para otros. Incluso es peor, como en los entrenos se suele usar al principio ruido gausiano, que implica azar inicial, así que incluso tus trampas del input puede que no funcionen para lo que entrenas mañana. O incluso si no fuera así, una de las capas de regularización que se suelen usar para reducir el overfitting es la dropout, y la dropout aplica cambios aleatorios (dropea unidades al azar en base a una probabilidad de dropeo).
Es decir, que guay, han demostrado que teóricamente se puede. En el plano real, la cosa cambia.
#144 Si algo tan simple como "desfigurar" un poco una señal es mal interpretado por la IA, imaginate que la IA del un avión se encuentre niebla, nubes o un buitre en algún proceso crítico del vuelo y tome una decisión peligrosa o errónea.
#124 Pues como regalo... Te voy a mostrar cómo funcionan Tu propio navegador puede entrenar una red neuronal. El link: http://cs.stanford.edu/people/karpathy/convnetjs/demo/cifar10.html
Te explico lo que estarás viendo. CIFAR10 es una colección de 60.000 imágenes de 10 tipos de objeto. Si te esperas hasta que haya un conteo de al menos 400 en "examples seen" podrás ver una gráfica con una línea roja que debería ir bajando. Eso es el classification loss, una forma de medir el error. Debajo verás montones de imágenes raras organizadas. La primera capa (input) te muestra la imagen que entra y al lado el gradiente, que vendría a ser lo que realmente se le activa a la red para identificarlo.
Luego verás montones de imágenes que representan en cada capa lo que identifica cada capa, lo que está aprendiendo cada "neurona" o filtro a ver.
La última capa, que pone softmax, verás que son 10 cuadraditos. Cada cuadradito representa a cada uno de los 10 tipos de objeto, y el color del cuadradito representa a la probabilidad que cree la red neuronal de que lo que está viendo sea de esa clase.
Ya abajo de todo verás lo que está tratando de acertar la red: En cada imagen verás tres barritas, que son las clases que la red cree para el objeto con más probabilidad. Si alguna de las barritas está en verde, es que ese era el tipo de objeto correcto. Si la barrita verde es la primera de todas, es que para esa foto ha acertado. Cuanto más tiempo lo dejas, mejor va aprendiendo.
#128
- El código que aparece es la topología de la IA. Se puede jugar con la topología y cambiarla.
- Cada capa tiene un número diferente de filtros o neuronas. Las capas convolucionales no tienen neuronas, tienen filtros que lo que hacen es realizar un cálculo sobre el input que tengan. Pero además verás que cada una pone "relu". Eso es la activación. La activación no es más que una función sencilla, históricamente era la sigmoide, hoy en día se usa más relu y tanh. Relu, que es la de este caso, es la función "si x < 0 devuelve 0, si x >= 0 devuelve x". Entre capas verás normalmente capas Pooling, que lo que hacen es reducir el tamaño de las siguientes capas, y además prevenir el overfitting. Normalmente el Pooling se hace con la función Max... un ejemplo, supón una matriz de 4x4 y pooling a una 2x2:
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
5 7
13 15
- Las activations son lo pesos. Si los guardas será tu modelo que hará que de un input x calcules un output y. Los gradientes son pesos pero en el otro sentido, son ajustes durante el entreno que van de y hacia x, lo que se llama backward propagation. Cada tipo de capa de una red neuronal tiene dos funciones, una forward y otra backward. La backward se usa en el entrenamiento, y es la que calcula esos gradientes para ir ajustando los resultados.
- Cada capa es ejecutada en serie. La salida de cada capa es la entrada de la siguiente.
- Esta pregunta es más complicada, pero depende fundamentalmente de lo que pongas de última capa. La que estás viendo es una softmax, que es un clasificador, esto es, hay un número finito y entero de clases y a cada clase la red le calcula una probabilidad y se escoge la mejor. Pero también hay redes cuyo resultado es una regresión, es decir, un resultado real numérico no escogido de un rango de posibilidades. La regresión se usaría por ejemplo en un machine learning para calcular cosas del tipo "cuánta facturación estimamos que tendremos el mes que viene". Para calcular ese loss se usan tres funciones en total: el cost loss, el L1 decay loss y el L2 decay loss. El cost loss en este caso viene dado por la capa, la softmax, que devuelve el -log(score(y)). El L1 decay loss viene dado por un producto de un factor por el peso de cada score de la capa, y el L2 es basada en el cuadrado dividido entre 2.
- La forma de aprender es con la backward propagation y el algoritmo del trainer. Hay varios tipos de trainers: AdaDelta, AdaGrad, Nesterov, SGD, Adams, WindowGrad,... Digamos por simplificar que hay algo llamado learning rate que te dice la cantidad de variación que puedes propagar a los peso. Cuanto mayor es el learning rate, las variaciones son más grandes, pero afina menos. Cuanto menor, mayor afinamiento, pero variaciones más pequeñas. El equilibrio está en buscar el learning rate que hace que no tarde una eternidad en aprender, pero que aprenda fino.
#1 Los vehículos autónomos no sólo tienen en cuenta las señales de tráfico, también la cartografía y el GPS. Contrastan la información recibida por las cámaras con la información cartográfica, al menos en modelos de Mercedes Benz
Y si la tapan con una bolsa de basura una persona sin coche autónomo se puede saltar un stop y matarse. Coste de una bolsa de basura: 0.02€ y no te hace falta ni impresora ni cámara.
#46 Asumiendo que servicios como Uber vayan a sustituir a los coches privados. Asumiendo que los coches autónomos vayan a sustituir a los conductores en el 100% de los casos. Asumiendo...
Una cosa es que algo sea técnicamente viable y otra cosa es que llegue a ser una realidad. Hoy en día podríamos usar terminales tontos conectados a servidores donde se ejecutasen las aplicaciones (de hecho muchos vaticinaron que ese sería el futuro) y aquí seguimos.
#22. Y no se te olvide la preferencia sobre todas ellas de las indicaciones de un agente de tráfico. Que ya es algo tan inusual hoy día, que muchos conductores ni saben ya interpretar. Van en modo "¡aydiós!" defensivo.
Me juego algo a que la maquinita tendría sus dificultades para identificar, primero el uniforme (por países, cuerpos y localidades), y luego aparte gestos y señales luminosas.
Si circula por el sudeste asiático, cortocircuito seguro.
#19 Lo curioso es que falle tan fácilmente. En el ejemplo de #4 puedo entender perfectamente que cambios imperceptibles para el ojo humano, pero si para la matemática algorítmica de un modelo de aprendizaje ya entrenado, haga que se confunda en la elección de una imagen entre miles o decenas de miles de posibilidades. Sin embargo, en las señales estamos hablando de cientos de posibilidades, con formas geométricas muy concretas.
La única explicación que puedo encontrar es que la comparación que se hace con el algoritmo para comprobar la verosimilitud con un conjunto de imágenes se realice con bloques de píxeles muy gordos o con otros métodos (transformadas y tal) que no son muy exactos pero que son necesarios porque el tiempo de respuesta debe de ser muy rápido para un correcto funcionamiento.
#3 Al final, o como tu dices perfeccionan mucho los algoritmos, cosa que con una pegatina que sustituya completamente la señal se podría "hackear", o lo mas posible es que tengan que inventar señales adicionales, por ejemplo, emitidas por radio frecuencia o algún sistema similar, que solo sean entendidas por el coche. Porque las señales actuales están diseñadas para el ser humano, y las conocemos, y si las conocemos las vamos a modificar, simplemente porque el ser humano es un hijo puta que te cagas
#11 No hay mundo más allá de mi visionario favorito que me ha prometido que el mundo va a ser como el de las pelis de ciencia ficción antes de que me jubile...
#35 Cierto, además la señal de ceda el paso es la única con un triángulo invertido para que la pueda ver el que tiene preferencia de paso aunque lo haga desde el lado no visible.
#99. Unas cuantas: carreteras comarcales, recintos portuarios, parques de carbones, minas y canteras, viales en factorías y polígonos antiguos... Allá donde Demarcación de Carreteras no suela tener jurisdicción/ganas de currar.
#38 Ah bien, ahora vamos a otorgar el mismo valor al aparato privado que lleva un particular en su vehículo que a un radar homologado de la policía. Y todo esto en menos de 20 años...
Así que para que la fantasía que queréis funcione hay que ahondar en el fascismo y en la conversión a un estado policial más represivo si cabe.
#64 Aquí seguimos... usando Menéame, Facebook, Google...
Mucha gente usa sus PCs como terminales tontos desde hace tiempo sin darse cuenta de ello.
El cambio a coches autónomos con Uber, si se da, será igualmente exponencial y sin que la gente se dé realmente cuenta de ello. O no hay cambio, o para cuando quieras darte cuenta hará años que habrá pasado.
#110 La explicación la he puesto yo antes, pero demasiado técnica. El resumen:
- El paper es una mierda
- No lo han probado contra ningún sistema real.
- Se les ve novatos, la red que han hecho da penica.
- Han entrenado como el culo.
- El input es 32x32. Sacando del paper las imágenes que usaron, adjunto una imagen de cuál es la maravillosa resolución y lo que se ve, que sería el input de la red neuronal. A partir de la tercera ni siquiera un humano es capaz de identificar el stop.
#79 es que dudo que sea viable hacer una IA de un coche autonomo que no se sepa "de memoria" a que velocidad tiene que ir y donde tiene prioridad... es tan facil como añadir esa informacion a los mapas que ya tiene
#26 no solo eso, si no que necesitas esperar a que TODOS los coches anteriores sean retirados de las calles lo cual añade otros 20 o 30 incluso mas años.
#7 Fácil, los sensores harán una foto al coche macarra y lo enviarán junto con la telemetría a la Guardia Civil. Ya verás que pronto se le quitan las ganas de volverlo a hacer.
Si ahora grabas a alguien haciendo una pirula y lo investigan posiblemente le multen. Esto solo haría que fuera una máquina la que lo hiciera, y si el conductor del otro vehículo te ha puesto en peligro me parece más que razonable que lo haga.
#51 En general estoy de acuerdo pero cuando ves algunos de los hacks reales que se han hecho para vehículos autónomos te das cuenta que igual es que no han pensado en muchas cosas. Ahora lo menciono de memoria, uno de ellos tenía que ver con utilizar el mismo bus de conexión para elementos de usuario que para componentes críticos del sistema. Algo que según los autores de dicho hack era de novatos.
#67 No sabía que OpenCV sirviera para eso
Lo he visto en óptica y juegos, pero recientemente, para la implementación de la GameBoyCámera desde la señal de una webcAM hacia la RAM de la GB en un emulador.
#67 Si te he entendido bien, en resumen dices que el sistema que usan para la prueba es un juguete y que con un sistema real (como el que usan para los coches autónomos) eso no tendría validez. ¿O si es posible aunque sería mucho más complicado? Y ya que se ve que sabes del tema, igual nos puedes contar un poco más como van estos sistemas
#86 Pero vamos a ver... prácticos en qué sentido? macho, es solamente un sistema de identificación de imágenes, no es alta tecnología eh? Hay miles de softwares infinitamente mejores reconociendo señales que las que se han testado ahí, que el artículo es una mierdilla sensacionalista ... que un coche autónomo las señales las cogerá con pinzas y punto, no va a creer ciegamente en una señal ...
Que no macho, que alguien alterando señales no es ningún peligro, que hay que ser muy tonto para fiarse de una señal de tráfico en un sistema autónomo, nadie con dos dedos de frente va a hacer eso. En todo caso el riesgo es el mismo que ahora con los humanos.
#1 hasta un GPS de hace 8 años sabía las direcciones prohibidas y los límites de velocidad, como si fuera realmente un problema que ahora visualmente fallen reconociendo señales... Sin contar que el coche autónomo está todavía en pañales, digan lo que digan. Y que aunque maduren les va a costar funcionar mientras haya en circulación coches no autónomos (que los habrá, es poco realista pensar que en 20-30 años no habrá coches de esta década en las calles).
#125 Muchas gracias. He entendido todo lo que me has explicado. Y parece apasionante.
¿El código que aparece es el de la IA?
¿Por qué cada capa tiene un número diferente de cuadrados (neuronas)? ¿Qué determina lo que ve cada neurona exactamente? ¿Cómo se transforman los "activations" en "activations gradients"
¿Cómo se superponen cada una de las capas para formar el gradiente final?
¿Cómo se calcula la probabilidad de que el gradiente sea x imagen? ¿Por el residuo de una regresión? Si es así ¿qué tipo de regresión es?
Y finalmente ¿cómo aprende de sus errores la el programa?
Sensacionalista: no hackean ningún coche real, sólo con modelos suyos entrenados por ellos mismos. Se intuye ya con el nombre del paper: "Robust Physical-World Attacks on Machine Learning Models" [1]
Se supone que llegará un momento que modificar una señal de esa forma hará que te caiga un buen puro. Ahora mismo es como si te pillan fundiendo las luces de un semáforo o desactivando un radar.
#60 Las señales tienen que estar sincronizadas. Por ejemplo, si la bombilla de un semáforo se estropea no me vale que el coche diga "a mi me llega la señal de que tengo vía libre así que cruzo" o si una señal se caído que diga "ah, no tengo ceda el paso, vía libre".
Comentarios
De haberlo sabido antes...
#6 Convertir las señales en virtuales en el mapa de coche. Cuando el coche autónomo pase por un determinado punto por GPS sabrá que hay un STOP incluso si la señal física se la ha llevado un vendaval.
#7 No le doy ni 20 años ->
#2 En el aire no hay señales
El paper está bien a nivel experimental pero no a nivel real. Me explico: no han atacado ningún sistema real de autoconducción, sino que han diseñado el suyo propio y han atacado a su propio sistema. Pero el paper tiene varios defectos de novatillo:
- El primero es que diseñan su sistema con input de 32x32. Para hacerse una idea, cuando en este mundillo dices que usas una AlexNet, que el input es 224x224, ya no te toman muy en serio, porque sigue siendo un juego de niños. Ni siquiera viene descrita correctamente la topología, así que no se puede saber si hacen escala de grises con una 32x32x1 o usan color con una 32x32x3. Este tamaño lo han decidido porque es el input clásico de CIFAR10 y MNIST, que son las que se usan cuando estás aprendiendo. Para los que no las conozcan, MNIST son cifras del 0 al 9 dibujadas a mano, y CIFAR10 son 60.000 imágenes de 10 tipos de objetos: coche, barco, avión, ciervo, perro, gato, caballo, camión, pájaro, rana y barco. En estos tamaños tan pequeños es muy fácil "jugar" porque incluso en un navegador puedes entrenar, no hace falta GPU ni poder computacional ni nada. Es un juguete.
- El segundo es la poca topología que describen, 3 convolucionales y una fully connected... Cleverhans. Eso es conv de 8 filtros activación ReLu, conv de 6 filtros ReLu, conv de 5 filtros ReLu y la FC. Incluso cuando estoy explicando a chavales cómo funcionan el deep learning, y estamos con el primer problema de clasificar CIFAR10, la topología que uso suele ser conv 16 ReLu, pool 2, conv 20 ReLu, pool 2, conv 20 ReLu, pool 2 y softmax. La topología de los que han hecho este paper es de juguete, y encima para clasificar hacia 17 clases y no hacia 10.
- El tercero la cantidad de muestras: tienen 500 para 4 de las clases, pero luego tienen una clase (turn right) con solamente 92 muestras. Lo normal es tener un mínimo de 1000 de cada una de las clases.
- Aquí viene el punto más gracioso. Te dicen que usan AdaDelta pero que ponen el learning rate a 0.1... cuando curiosamente AdaDelta no usa learning rate, sino un vector extra xt aparte del gradiente.
- No indica cómo calculan las muestras para usar de validación.
- 100 epoch una accuracy de 91%. Es de llevarse las manos a la cabeza
- Durate las pruebas tienen en cuenta la perturbación angular que no han tenido en cuenta al entrenar el modelo. Y no corrigen esa perturbación con OpenCV ni con nada. Ole sus huevos morenos.
En definitiva... se nota que son novatos no, lo siguiente. Y el experimento no tiene validez con un sistema real. Para clasificación en carretera yo estoy usando una YOLO con input de 448x448x3, y me consta que está en la media o por debajo de los sistemas reales. Les recomendaría empezar con eso.
#0 Ese STOP lo entendía como una señal de 45 MPH, ¡pero con un grafiti más complicado lo tomaba por una señal de 100 MPH!
La verdad, es que algunas de las modificaciones a las señales son de risa para los ojos de un humano.
El caso es que esto servirá para mejorar el algoritmo de reconocimiento de las señales y además hará que implementen otros medidas como que el coche sepa que en un entorno urbano no puede circular a 100 por mucho que haya leído en una señal.
Edit #1 Es que en el cielo las señales son mucho más claras y no hay vándalos convirtiendo los STOP en eSTOPa
#8 Igual en 20 años sigue existiendo meneame. Nos vemos entonces.
PD: Llevan conductor hasta los trenes y ahora en 20 años vamos a tener todos absolutamente todos coches autonomos, haced el favor de bajar de la nube.
#8 Excepto si pierde la cobertura, claro.
Como se nota el universo entero gira alrededor de las ciudades y no hay más mundo más allá de la M-50.
Sólo será un problema temporal: la conducción autónoma hará que desaparezcan señales y semáforos porque todos los coches estarán conectados en red.
#26 Lo mejor de todo es que incluso para un conductor humano la interpretación de esa señal es obvia: "Bienvenido a Silent Hill".
#72 Para nada. En una red neuronal lo que se tarda es en entrenar el modelo, es lo que requiere poder de computación. Una vez el modelo está entrenado, la ejecución del modelo es muy rápida. Por ponerte un ejemplo, yo en el móvil llevo dos apps propias hechas con tensorflow, una de ellas para reconocer 50 objetos cotidianos en tiempo real desde la cam del móvil, la otra para reconocer personas por un proyecto que estoy haciendo de drones autónomos para encontrar supervivientes en caso de catástrofe (se libreran drones en un área marcada, los drones tienen un arduino para controlar una Raspberry Pi ejecutando el modelo, y cuando encuentran personas mandan las coordenadas a las fuerzas del orden). Y estamos hablando de algo que se ejecuta en el móvil.
#1 y eso en tierra, luego querrán que la gente vuele en aviones autónomos
#78: Si, pero deberían lanzar una APP para avestrucear fotos.
#3 Al menos no confundia las señales con una avestruz.
#17 No tienes en cuenta que el tiempo de expansión de cada nueva tecnología es menor que el de la anterior y cada vez más exponencial. ¿Cuánto tardó en alcanzar 1.000 usuarios el telégrafo, la radio, la televisión, el teléfono móvil, el smartphone? Cada uno mucho menos tiempo que el anterior.
Si hay obras detectará el obstáculo en la carretera y al volver a la zona con conexión mandará la información de modo que el resto de coches sabrá que en esa zona sin conexión hay una obra, automáticamente buscarán una ruta alternativa y le comunicará a los pasajeros el motivo del desvío.
#58 En mi opinión no sirven para nada. La conducción autónoma no puede depender de leer señales de tráfico, es un sistema anticuado y desfasado, está diseñado para orientar a los humanos y quitando alguna ( en los cruces para dar prioridad, y alguna que otra historia ), son señales irrelevantes que no sirven para nada ni son críticas para la conducción. Si alguien se sube en un coche autónomo que confía en leer señales de tráfico como algo absoluto es que es muy tonto.
Respecto al tema de engañar, también puedes engañar a humanos poniendo señales falsas...
#2 acaso no van ya el 90% en automático? y en los aterrizajes si se complica la visibilidad.
Con unas simples pegatinas...
#8 No me sirve. Si un vendaval se lleva tu señal ya no tienes señal y tienes que hacer caso a lo que te corresponda según el orden de preferencia de señales (semáforos, señales verticales, marcas viales). No puedes ir en plan "yo sé que aquí antes había una señal de prioridad así que tengo prioridad, aunque no haya señal".
#23 Lo increíble es que el ordenador no sea capaz de reconocerla, más increible aún que la confunda con una señal de velocidad, los STOPS son las únicas señales octogonales del mundo, precisamente por su importancia para reconocerlas aunque estén deterioradas, vandalizadas, tapadas por la nieve o lo que sea, hay que ser inútil como diseñador/programador para no tener en cuenta esa característica de la señal de stop e introducirla en el programa.
#92 El mundo real esta lleno de variable incontrolables incluyendo señales cambiantes de todo tipo (como un obrero en mono de colores diciéndole a un sistema automático que se tiene que meter en dirección prohibida porque hay una acería en la calle).
Este tema es mucho nas complicado de lo que la gente piensa, en mi opinión no veremos vehículos autónomos (de verdad, vehicilo de serie, nivel 5, sin supervisión humana y en tráfico abierto y toda condición), ni a corto ni a medio plazo. (A largo plazo quien sabe).
cC #8
#23 Si, pero acaba liandola igual...
#8 Ay, me recuerdas a 1995 y a las esperanzas de coches voladores en los primeros años de los 2000...
#25 ¿100% seguros? No. ¿Más seguros que el promedio de los conductores? Esa es otra pregunta.
#34 #26 No se necesitará tanto tiempo para cambiar los coches porque no serán comprados por clientes finales sino flotas que pondrán compañías como Uber. En el momento que sea más barato llamar desde una app a un coche que te recoja y te lleve para un viaje puntual que pagar el mantenimiento y el seguro de uno propio el cambio será exponencial. Lo pagarás en el viaje pero la presión de estas empresas sobre las aseguradoras hará que sean unos céntimos de tu factura. El cambio empezará en las ciudades y luego a los pueblos donde hay más caminos complicados. Estas megaempresas no invierten miles de millones si no saben que hay un enorme negocio en quitar a los conductores de en medio.
#22 Por eso en EEUU ya están cambiando leyes a nivel estatal y ahora a nivel nacional.
Una señal deteriorada probablemente sea vista mejor por un coche con visión nocturna e infrarrojos que por un conductor cansado que es más probable que cause un accidente.
#28 Y aun con todo. En 20 años no verás lo que vaticinas, se siguen vendiendo coches de combustión, se siguen vendiendo coches sin ESP, ASR y no se si sigue siendo legal venderlos sin ABS pero no me extrañaría.
En 20 años verás coches autónomos, pero no serán los únicos que veas. Ni serán mayoría. Y no me apuesto una caña contigo porque será casi imposible que tú me la pagues a mí o yo te la pague a tí, pero vaya, que en una charla de bar me la apostaría tranquilamente.
EDITO para añadir: Sobre las obras, lo que te han dicho sobre las señales que vuelan, el coche frenará si ve el obstaculo, entonces...para qué señales aunque sean en el mapa...si ya va a detectar todos los obstáculos aunque vaya a 90 por donde está limitado a 40 por obras?
Y si es una señal temporal de trafico alternado al haberse reducido un carril? Como solucionas que no se meta en el tramo al no saber que había un semáforo en rojo porque no lo tenía cacheado?
No, los experimentos con gaseosa, y para llegar a lo que dices tienen que pulirse tantos detalles que todavía ni todos los genios juntos que trabajan en ello han sido capaces tan siquiera de imaginarlos.
#5 Sí, claro, y Bill Gates iba a acabar con el SPAM iba a ser un problema del pasado en el año 2006. Para empezar aún no tenemos coches 100% autónomos. Y cuando digo 100% digo autónomos al 100.0000%, no al 99.9998%. Así que imagínate lo que vamos a tener que esperar, no para tener coches autónomos, sino para que TODOS los coches sean autónomos de serie, desde el Mercedes Clase S hasta el Opel Corsa más básico.
Y el problema no es tanto que se puedan hackear las señales, el problema es que las señales también se deterioran. No me sirve un sistema de conducción autónoma que no sea capaz de entender una señal en este estado:
#29 No comparto nada tu opinión, son sistemas que tienen que enfrentarse a condiciones "salvajes" o no controladas.
Muchos de los sistemas que se utilizan para reconocer esas imágenes tienen un grado conocido de fiabilidad, algunos cercanos al 99% pero solo se basan en hacer pruebas con "ruido" que no sean mal intencionadas en la señal o que sea debido a factores climáticos o de la propia señal del vídeo. No olvides que esto es un sistema en el que confías tu seguridad. Algo curioso es lo que comenta #4 en esos experimetos lo importante quizás no es tanto que se consiguiera confundir a una red neuronal para que pensara que un perro era otra cosa, sino que además te decía que era esa otra cosa con un grado de confianza del 9X%. Si un sistema detecta que no está seguro de que una señal deteriorada o borrosa es un tipo de señal, el sistema puede tratar con esa incertidumbre.
Lo más peligroso es que puedes fabricar señales de tráfico que parezcan normales ante conductores pero que para un vehículo, o incluso para un modelo específico de vehículo, esté manipulada.
PS: Esto me recuerda a cuando se empezó a hablar de internet, la mayoría de protocolos de red se hicieron sin pensar para nada en la seguridad, ni en que haya gente mal intencionada, etc, etc, y eso supone muchos errores de diseño de base que hemos ido arrastrando.
#20 No creo que a día de hoy sea legal modificar esas señales de ninguna forma...
#2 Llegas tarde, los Airbus llevan años volando el 95% del trayecto en automático (aterrizaje incluído cuando el Aeropuerto es compatible).
#11 Los mapas pueden ir en cache para el 1% de territorio de carretera sin conexión.
#12 Ya hay líneas de metro sin conductor
Lo próximo los trenes http://computerhoy.com/noticias/life/francia-experimentara-trenes-conductor-partir-2019-63780
https://treneando.com/2017/01/14/bombardier-entrega-al-metro-de-shangai-el-primer-tren-sin-conductor-de-china/
#16 No haces más que darme la razón ¿cuanto tiempo ha pasado desde la primera linea de metro sin conductor? Y todavía queda para rato para que no haya conductores en ningún tren.
Por cierto, ¿¿¿¿LA CACHE???? Y si hay obras asumimos el ostiazo como normal...
#9 espero que confundan PAPI con la A-2
#13 El ruido es diferente para cada caso.
#105 Pues algunos ya se han gastado miles de millones en esa caché para los coches autónomos https://arstechnica.co.uk/cars/2015/08/audi-bmw-and-daimler-will-buy-nokia-here/
#96 O cosas más comunes como encontrarte en un cruce donde, en principio, tienes que ceder el paso por que te vienen por la derecha pero te encuentras con que ellos tienen un ceda el paso y la única indicación de que tienes prioridad es que ellos tienen un ceda el paso, el cual solo ves su reverso
#55 Aprovechando tu comentario creo que algunas rencillas entre conductores son bastante tontas, puedo entender que si se generaliza que todos vayan hasta el final de una incorporación y se incorporen ahí, pero en general no pasa, y lo que tienes es que quizás pierdes medio minuto de tiempo, como mucho.
Al menos para mi no es un problema dejar un margen amplio de espacio y que se incorpore algún "listillo" como dicen otros.
#132 pero no es a eso a lo que me refiero, sino a la eliminación del piloto.
#112 no llego tarde, el piloto sigue programando esas actuaciones automáticas del vuelo. En vuelo autónomo no hay piloto sino IA.
#141 Mmmmmmm, por poner una similitud, en 1998 se demostraron las colisiones de SHA-0. Como SHA-0 y SHA-1 tienen las mismas operaciones internas, se puede demostrar matemáticamente que en el marco teórico SHA-1 es colisionable, pero eso no sucedió hasta febrero de este año... eso son 19 años más tarde. Y como SHA-256 usa las mismas operaciones, pues matemáticamente también es posible colisionarlo. El problema es la cantidad de operaciones.
Dicho esto, veamos un ejemplo real. Una ReLu es una activación sencilla muy fácilmente computable, la función es si x < 0 devuelve 0 y si x >=0 devuelve x. Es decir:
f(x) = x < 0 ? 0 : x
Supongamos que simplificamos aun más las imágenes y tenemos imágenes de 2x2 píxeles y además monocromo, cada pixel puede valer 0 (negro) o 1 (blanco). Y definimos esta función:
g(x) = 0.75*f(x[0]) + 0.25*f(x[1]) - 0.25*f(x[2]) - 0.75*f(x[3])
= 0.5 caballo
Si ahora generamos todas las imágnenes posibles que podemos conseguir con una imagen 2x2 monocroma, vemos que son 2^4 = 16:
g([0, 0, 0, 0]) = 0 gato
g([0, 0, 0, 1]) = - 0.75 perro
g([0, 0, 1, 0]) = - 0.25 gato
g([0, 0, 1, 1]) = -1 perro
g([0, 1, 0, 0]) = 0.25 gato
g([0, 1, 0, 1]) = -0.5 perro
g([0, 1, 1, 0]) = 0 gato
g([0, 1, 1, 1]) = -0.75 perro
g([1, 0, 0, 0]) = 0.75 caballo
g([1, 0, 0, 1]) = 0 gato
g([1, 0, 1, 0]) = 0.5 caballo
g([1, 0, 1, 1]) = -0.25 gato
g([1, 1, 0, 0]) = 1 caballo
g([1, 1, 0, 1]) = 0.25 gato
g([1, 1, 1, 0]) = 0.75 caballo
g([1, 1, 1, 1]) = 0 gato
En este ejercicio no hace falta ser un águila para darse cuenta de que si yo hago un sticker de color negro del tamaño de un pixel y tapo el primer pixel de cada imagen, consigo resultados totalmente diferentes.
Ahora el problema viene dado por:
1. Las imágenes no suelen ser 2x2. En una 32x32 monocroma tendríamos 2^1024 diferentes posibles imágenes.
2. Encima las imágenes no van a ser monocromas, sino que tendremos de valores de 0 a 255 en tres canales (rojo, verde y azul), así que nuestra matrix 32x32 se vuelve 32x32x3, y en lugar de 0 o 1 ahora tenemos más posibles valores.
3. Por complicar un pelín la cosa, las redes usadas no serán tan sencillas como la que he propuesto, sino que tendrán varias capas, cada una de ellas calculando pesos, filtros, etc.
Es decir, la complejidad es mayor. Esta gente ha conseguido hacer una red suficientemente sencilla como para ser manejable, conocer las activaciones de cada capa, y así saber cómo afectan diferentes zonas del input al output calculado. Porque tienen un entorno suficientemente finito: input pequeño y pocas operaciones.
En un entorno más grande, no solamente aumenta la complejidad del input sino de las operaciones intermedias, así que cada vez se hace más complicado seguir la pista a qué modificar en el input para conseguir un output diferente.
Y viene el último problema: tú entrenas un modelo y consigues unos pesos para tu modelo. Pero otra persona diferente usa inputs diferentes o una topología diferente, con lo cual consigue pesos totalmente diferentes. Así que la trampa del input que funciona para tu modelo, no funciona para otros. Incluso es peor, como en los entrenos se suele usar al principio ruido gausiano, que implica azar inicial, así que incluso tus trampas del input puede que no funcionen para lo que entrenas mañana. O incluso si no fuera así, una de las capas de regularización que se suelen usar para reducir el overfitting es la dropout, y la dropout aplica cambios aleatorios (dropea unidades al azar en base a una probabilidad de dropeo).
Es decir, que guay, han demostrado que teóricamente se puede. En el plano real, la cosa cambia.
#144 Si algo tan simple como "desfigurar" un poco una señal es mal interpretado por la IA, imaginate que la IA del un avión se encuentre niebla, nubes o un buitre en algún proceso crítico del vuelo y tome una decisión peligrosa o errónea.
#149 no, por ejemplo porque se crea que el atasco de la A-2 junto a Barajas son las luces PAPI y aterrice en la mediana
#7 entiendo que el coche autónomo, tenga preferencia o no, frenará sí o sí aunque el otro venga haciendo la macarrada de la semana.
Eso ya lo han pensado los fabricantes:
http://www.telegraph.co.uk/technology/2016/11/17/humans-will-bully-robot-cars-mercedes-chief-warns/
Y la propuesta del CEO de Mercedes USA trajo cola...
“They’ll look for the autonomous car and that’s where they’ll cut in,” Mr Exlar said.
A solution could be to make autonomous vehicles a little more assertive and aggressive - a little more human, perhaps.
#30 Interesantísimo
#102 Esa señal significa prohibido ceder el paso en un stop.
#124 Pues como regalo... Te voy a mostrar cómo funcionan Tu propio navegador puede entrenar una red neuronal. El link:
http://cs.stanford.edu/people/karpathy/convnetjs/demo/cifar10.html
Te explico lo que estarás viendo. CIFAR10 es una colección de 60.000 imágenes de 10 tipos de objeto. Si te esperas hasta que haya un conteo de al menos 400 en "examples seen" podrás ver una gráfica con una línea roja que debería ir bajando. Eso es el classification loss, una forma de medir el error. Debajo verás montones de imágenes raras organizadas. La primera capa (input) te muestra la imagen que entra y al lado el gradiente, que vendría a ser lo que realmente se le activa a la red para identificarlo.
Luego verás montones de imágenes que representan en cada capa lo que identifica cada capa, lo que está aprendiendo cada "neurona" o filtro a ver.
La última capa, que pone softmax, verás que son 10 cuadraditos. Cada cuadradito representa a cada uno de los 10 tipos de objeto, y el color del cuadradito representa a la probabilidad que cree la red neuronal de que lo que está viendo sea de esa clase.
Ya abajo de todo verás lo que está tratando de acertar la red: En cada imagen verás tres barritas, que son las clases que la red cree para el objeto con más probabilidad. Si alguna de las barritas está en verde, es que ese era el tipo de objeto correcto. Si la barrita verde es la primera de todas, es que para esa foto ha acertado. Cuanto más tiempo lo dejas, mejor va aprendiendo.
#128
- El código que aparece es la topología de la IA. Se puede jugar con la topología y cambiarla.
- Cada capa tiene un número diferente de filtros o neuronas. Las capas convolucionales no tienen neuronas, tienen filtros que lo que hacen es realizar un cálculo sobre el input que tengan. Pero además verás que cada una pone "relu". Eso es la activación. La activación no es más que una función sencilla, históricamente era la sigmoide, hoy en día se usa más relu y tanh. Relu, que es la de este caso, es la función "si x < 0 devuelve 0, si x >= 0 devuelve x". Entre capas verás normalmente capas Pooling, que lo que hacen es reducir el tamaño de las siguientes capas, y además prevenir el overfitting. Normalmente el Pooling se hace con la función Max... un ejemplo, supón una matriz de 4x4 y pooling a una 2x2:
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
5 7
13 15
- Las activations son lo pesos. Si los guardas será tu modelo que hará que de un input x calcules un output y. Los gradientes son pesos pero en el otro sentido, son ajustes durante el entreno que van de y hacia x, lo que se llama backward propagation. Cada tipo de capa de una red neuronal tiene dos funciones, una forward y otra backward. La backward se usa en el entrenamiento, y es la que calcula esos gradientes para ir ajustando los resultados.
- Cada capa es ejecutada en serie. La salida de cada capa es la entrada de la siguiente.
- Esta pregunta es más complicada, pero depende fundamentalmente de lo que pongas de última capa. La que estás viendo es una softmax, que es un clasificador, esto es, hay un número finito y entero de clases y a cada clase la red le calcula una probabilidad y se escoge la mejor. Pero también hay redes cuyo resultado es una regresión, es decir, un resultado real numérico no escogido de un rango de posibilidades. La regresión se usaría por ejemplo en un machine learning para calcular cosas del tipo "cuánta facturación estimamos que tendremos el mes que viene". Para calcular ese loss se usan tres funciones en total: el cost loss, el L1 decay loss y el L2 decay loss. El cost loss en este caso viene dado por la capa, la softmax, que devuelve el -log(score(y)). El L1 decay loss viene dado por un producto de un factor por el peso de cada score de la capa, y el L2 es basada en el cuadrado dividido entre 2.
- La forma de aprender es con la backward propagation y el algoritmo del trainer. Hay varios tipos de trainers: AdaDelta, AdaGrad, Nesterov, SGD, Adams, WindowGrad,... Digamos por simplificar que hay algo llamado learning rate que te dice la cantidad de variación que puedes propagar a los peso. Cuanto mayor es el learning rate, las variaciones son más grandes, pero afina menos. Cuanto menor, mayor afinamiento, pero variaciones más pequeñas. El equilibrio está en buscar el learning rate que hace que no tarde una eternidad en aprender, pero que aprenda fino.
Si quieres jugar más, con neuronas... http://playground.tensorflow.org/#activation=tanh&batchSize=10&dataset=circle®Dataset=reg-plane&learningRate=0.03®ularizationRate=0&noise=0&networkShape=4,2&seed=0.47350&showTestData=false&discretize=false&percTrainData=50&x=true&y=true&xTimesY=false&xSquared=false&ySquared=false&cosX=false&sinX=false&cosY=false&sinY=false&collectStats=false&problem=classification&initZero=false&hideText=false
Hombre, y si la pegatina es suficientemente grande también engañas al conductor humano
#1 Los vehículos autónomos no sólo tienen en cuenta las señales de tráfico, también la cartografía y el GPS. Contrastan la información recibida por las cámaras con la información cartográfica, al menos en modelos de Mercedes Benz
Y si la tapan con una bolsa de basura una persona sin coche autónomo se puede saltar un stop y matarse. Coste de una bolsa de basura: 0.02€ y no te hace falta ni impresora ni cámara.
#30 Lo gracioso es que puede que tengas a coches autónomos haciéndose putadas entre ellos.
#46 Asumiendo que servicios como Uber vayan a sustituir a los coches privados. Asumiendo que los coches autónomos vayan a sustituir a los conductores en el 100% de los casos. Asumiendo...
Una cosa es que algo sea técnicamente viable y otra cosa es que llegue a ser una realidad. Hoy en día podríamos usar terminales tontos conectados a servidores donde se ejecutasen las aplicaciones (de hecho muchos vaticinaron que ese sería el futuro) y aquí seguimos.
#22. Y no se te olvide la preferencia sobre todas ellas de las indicaciones de un agente de tráfico. Que ya es algo tan inusual hoy día, que muchos conductores ni saben ya interpretar. Van en modo "¡aydiós!" defensivo.
Me juego algo a que la maquinita tendría sus dificultades para identificar, primero el uniforme (por países, cuerpos y localidades), y luego aparte gestos y señales luminosas.
Si circula por el sudeste asiático, cortocircuito seguro.
#96 o la tipica señal de trafico tapada por vegetacion
#16 La caché dice
Ere un fiera primoh.
#116 Yo lo veo más como un contraataque al reconocimiento por ordenador, para usar en captchas del tipo "marca las fotos de perros".
#19 Lo curioso es que falle tan fácilmente. En el ejemplo de #4 puedo entender perfectamente que cambios imperceptibles para el ojo humano, pero si para la matemática algorítmica de un modelo de aprendizaje ya entrenado, haga que se confunda en la elección de una imagen entre miles o decenas de miles de posibilidades. Sin embargo, en las señales estamos hablando de cientos de posibilidades, con formas geométricas muy concretas.
La única explicación que puedo encontrar es que la comparación que se hace con el algoritmo para comprobar la verosimilitud con un conjunto de imágenes se realice con bloques de píxeles muy gordos o con otros métodos (transformadas y tal) que no son muy exactos pero que son necesarios porque el tiempo de respuesta debe de ser muy rápido para un correcto funcionamiento.
#3 Al final, o como tu dices perfeccionan mucho los algoritmos, cosa que con una pegatina que sustituya completamente la señal se podría "hackear", o lo mas posible es que tengan que inventar señales adicionales, por ejemplo, emitidas por radio frecuencia o algún sistema similar, que solo sean entendidas por el coche. Porque las señales actuales están diseñadas para el ser humano, y las conocemos, y si las conocemos las vamos a modificar, simplemente porque el ser humano es un hijo puta que te cagas
#2 lo de los pilotos automáticos en aviones lleva existiendo desde hace mucho tiempo.
#11 No hay mundo más allá de mi visionario favorito que me ha prometido que el mundo va a ser como el de las pelis de ciencia ficción antes de que me jubile...
#35 Cierto, además la señal de ceda el paso es la única con un triángulo invertido para que la pueda ver el que tiene preferencia de paso aunque lo haga desde el lado no visible.
#99. Unas cuantas: carreteras comarcales, recintos portuarios, parques de carbones, minas y canteras, viales en factorías y polígonos antiguos... Allá donde Demarcación de Carreteras no suela tener jurisdicción/ganas de currar.
#106 con paciencia....
Y andurriales... espera https://www.google.es/maps/@42.8213983,-2.7441739,3a,75y,44.02h,85.39t/data=!3m6!1e1!3m4!1s9p4sCBd6AA_oLoZ0t99Iww!2e0!7i13312!8i6656?hl=es no se si es por que es el camino de santiago.
#38 Ah bien, ahora vamos a otorgar el mismo valor al aparato privado que lleva un particular en su vehículo que a un radar homologado de la policía. Y todo esto en menos de 20 años...
Así que para que la fantasía que queréis funcione hay que ahondar en el fascismo y en la conversión a un estado policial más represivo si cabe.
#64 Aquí seguimos... usando Menéame, Facebook, Google...
Mucha gente usa sus PCs como terminales tontos desde hace tiempo sin darse cuenta de ello.
El cambio a coches autónomos con Uber, si se da, será igualmente exponencial y sin que la gente se dé realmente cuenta de ello. O no hay cambio, o para cuando quieras darte cuenta hará años que habrá pasado.
#110 La explicación la he puesto yo antes, pero demasiado técnica. El resumen:
- El paper es una mierda
- No lo han probado contra ningún sistema real.
- Se les ve novatos, la red que han hecho da penica.
- Han entrenado como el culo.
- El input es 32x32. Sacando del paper las imágenes que usaron, adjunto una imagen de cuál es la maravillosa resolución y lo que se ve, que sería el input de la red neuronal. A partir de la tercera ni siquiera un humano es capaz de identificar el stop.
#79 es que dudo que sea viable hacer una IA de un coche autonomo que no se sepa "de memoria" a que velocidad tiene que ir y donde tiene prioridad... es tan facil como añadir esa informacion a los mapas que ya tiene
#4: No conocía eso. ¿Entonces si meto ese ruido a cualquier foto puedo "avestrucearla"? ¿Pica luego?
#26 no solo eso, si no que necesitas esperar a que TODOS los coches anteriores sean retirados de las calles lo cual añade otros 20 o 30 incluso mas años.
#7 Fácil, los sensores harán una foto al coche macarra y lo enviarán junto con la telemetría a la Guardia Civil. Ya verás que pronto se le quitan las ganas de volverlo a hacer.
#41 El mismo que tienen ahora.
Si ahora grabas a alguien haciendo una pirula y lo investigan posiblemente le multen. Esto solo haría que fuera una máquina la que lo hiciera, y si el conductor del otro vehículo te ha puesto en peligro me parece más que razonable que lo haga.
#50 Si es legal, el ir tú conduciendo tampoco te evita el problema.
Para abrir la ventanilla y gritarle un insulto no hace falta llevar un coche automático.
#54 Pues nada, llevas un coche autónomo y tienes paciencia. O lo configuras para que no deje hueco a nadie y así llegas un minuto antes a tu trabajo.
#51 En general estoy de acuerdo pero cuando ves algunos de los hacks reales que se han hecho para vehículos autónomos te das cuenta que igual es que no han pensado en muchas cosas. Ahora lo menciono de memoria, uno de ellos tenía que ver con utilizar el mismo bus de conexión para elementos de usuario que para componentes críticos del sistema. Algo que según los autores de dicho hack era de novatos.
#30 Ya veo la publicidad: "Tesla 666, tan macarra como tú"...
#67 Positivo aunque no entendí ni papa porque parece que sabes.
#67 No sabía que OpenCV sirviera para eso
Lo he visto en óptica y juegos, pero recientemente, para la implementación de la GameBoyCámera desde la señal de una webcAM hacia la RAM de la GB en un emulador.
#45 Esta es la típica no-noticia (como dice #67). Mañana veremos noticias como:
Hackean automóvil tradicional mediante chinchetas en la calzada
#2 lo raro es que alguien ponga pegatinas en las señales a 10000 metros de altura
#148 porque no lee bien una señal a 10.000 km de altura? los aviones en automatico no usan la "vision" para nada
#63 Cierto, no lo había pensado...
#26 Esta está mal, pero he visto cosas peores, alguna era incluso un trozo de oxido triangular.
#67 Si te he entendido bien, en resumen dices que el sistema que usan para la prueba es un juguete y que con un sistema real (como el que usan para los coches autónomos) eso no tendría validez. ¿O si es posible aunque sería mucho más complicado? Y ya que se ve que sabes del tema, igual nos puedes contar un poco más como van estos sistemas
#143 Muchas gracias, ahora si lo entiendo.
#5 Y que hacemos mientras tanto?
Pero los coches autónomos son seguros... si si claro.
#23 Aun asi mueren decenas de miles de humanos cada dia al volante. Infalibles oye
#27 Como te han contestado, un conductor borracho como una cuba, un mero humano, hubiera visto esa señal de STOP.
¿Eres conductor? Esa es una pregunta importante para seguir debatiendo.
#67 ¿Una red neuronal no es algo muy bestia para utilizar en tiempo real y en un coche real?
#86 Pero vamos a ver... prácticos en qué sentido? macho, es solamente un sistema de identificación de imágenes, no es alta tecnología eh? Hay miles de softwares infinitamente mejores reconociendo señales que las que se han testado ahí, que el artículo es una mierdilla sensacionalista ... que un coche autónomo las señales las cogerá con pinzas y punto, no va a creer ciegamente en una señal ...
Que no macho, que alguien alterando señales no es ningún peligro, que hay que ser muy tonto para fiarse de una señal de tráfico en un sistema autónomo, nadie con dos dedos de frente va a hacer eso. En todo caso el riesgo es el mismo que ahora con los humanos.
Es pura propaganda y publicidad.
#84 Pues seguramente su cerebro no interpretara que es una señal de 50MPH o de 100MPH
Repito: ¿Tienes carnet de conducir?
#1 hasta un GPS de hace 8 años sabía las direcciones prohibidas y los límites de velocidad, como si fuera realmente un problema que ahora visualmente fallen reconociendo señales... Sin contar que el coche autónomo está todavía en pañales, digan lo que digan. Y que aunque maduren les va a costar funcionar mientras haya en circulación coches no autónomos (que los habrá, es poco realista pensar que en 20-30 años no habrá coches de esta década en las calles).
#26 El navegador de coche de ahora no lee las señales de velocidad, las tienen todas almacenadas.
Supongo que en los coches autónomos será lo normal.
#62 Las persecuciones de coches, en cambio, serán un coñazo.
#119 Piensa en una señal de reducción de velocidad por un cruce y que por alguna razón, accidente previo, vandalismo, etc.. esa señal no esté.
El navegador GPS te da el aviso, pero tú no ves nada. En este caso el coche autónomos igual bajaría la velocidad.
#125 Muchas gracias. He entendido todo lo que me has explicado. Y parece apasionante.
¿El código que aparece es el de la IA?
¿Por qué cada capa tiene un número diferente de cuadrados (neuronas)? ¿Qué determina lo que ve cada neurona exactamente? ¿Cómo se transforman los "activations" en "activations gradients"
¿Cómo se superponen cada una de las capas para formar el gradiente final?
¿Cómo se calcula la probabilidad de que el gradiente sea x imagen? ¿Por el residuo de una regresión? Si es así ¿qué tipo de regresión es?
Y finalmente ¿cómo aprende de sus errores la el programa?
Sensacionalista: no hackean ningún coche real, sólo con modelos suyos entrenados por ellos mismos. Se intuye ya con el nombre del paper: "Robust Physical-World Attacks on Machine Learning Models" [1]
[1] https://arxiv.org/abs/1707.08945
Se supone que llegará un momento que modificar una señal de esa forma hará que te caiga un buen puro. Ahora mismo es como si te pillan fundiendo las luces de un semáforo o desactivando un radar.
Nuevos tiempos, nuevas leyes.
#19 Lo divertido es que el humano más tonto, borracho como una cuba, podría identificar ese stop de un vistazo.
#60 Las señales tienen que estar sincronizadas. Por ejemplo, si la bombilla de un semáforo se estropea no me vale que el coche diga "a mi me llega la señal de que tengo vía libre así que cruzo" o si una señal se caído que diga "ah, no tengo ceda el paso, vía libre".
Amenazas cibernéticas impulsan retorno de la radio a la navegación con barco.
https://es.noticias.yahoo.com/amenazas-cibern%C3%A9ticas-impulsan-retorno-radio-navegaci%C3%B3n-barco-130917822.html