[Orador 7]: Buenas tardes.
¿Empezamos?
Bueno, las dos conferencias de hoy son conferencias tremendamente interesantes y
de curiosidad.
Enrique Plaza, que es ingeniero aeronáutico, Ismael Serrano, que es doctor
en visión y inteligencia artificial, nos van a contar un tema de drones, no sé muy
bien
porque todavía no he visto las transparencias, pero nos van a contar un
tema de, sobre todo, de aparatos autónomos en vuelo.
Me ha costado trabajo encontrarles, pero han sido tremendamente delicados y se
apuntaron a los 10 segundos de contactar con ellos a esta charla.
Y luego, como ese tipo de cosas están...
funcionando por ahí por todos los lados, pero por las calles también circulan
patinetes, bicicletas, todo ese tipo de cosas, se nos ocurrió coger y ver cómo eso
nos iba a influir en el tema de nuestros seguros,
nuestra seguridad en las vías públicas, etc. Y contacté con un amigo mío, que es
Antonio González, que es un abogado del Consorcio de Seguros, no sé si sabéis lo
que es el Consorcio de Seguros, pero es una compañía pública que aglutina
todos los temas de las compañías de seguros que nos va a hablar, es un
estudioso de las directivas europeas, nos va a contar cómo la Unión Europea está
planteando los temas de seguridad y responsabilidad civil de este tipo de
aparatos.
No va a hablar de temas de tecnología, va a hablar de cómo hay que manejar la
tecnología en nuestra vida cotidiana.
Así que, Enrique, Ismael, todo vuestro.
[Orador 5]: Gracias, Luis.
Bueno, en primer lugar, agradecer a Luis y a la Universidad Politécnica de Madrid la
oportunidad de participar en este máster de sistemas integrados.
Ismael y yo venimos en representación de la empresa Everith, vamos a daros una
pincelada muy rápida sobre la empresa de la que venimos y luego hablaremos sobre
drones, UAVs y sobre todo analizaremos en profundidad qué es el Deep Learning.
En Everis somos más de 21.000 profesionales, trabajamos en 17 países y
facturamos más de 1.100 millones.
Dentro de Everis nosotros pertenecemos al área de aeroespacial, defensa y seguridad
y tenemos la suerte de aprovechar el músculo financiero que nos ofrece un grupo
como Everis y la flexibilidad de una PyME que es lo que nos facilita pertenecer a
Everis ADS.
En cuanto a los UAV vamos a empezar definiendo, para que nos pongamos todos un
poco en contexto, que es un UAV, hablaremos sobre sus orígenes y cómo han
ido evolucionando a lo largo de la historia hasta llegar a lo que hoy
conocemos y veremos cómo la inteligencia artificial tiene sentido y puede aplicarse
en este tipo de plataformas.
UAV del inglés Unmanned Air Vehicle es un vehículo aéreo motorizado y no tripulado y
conviene recalcar la diferencia que hay entre un UAV y un UAS un UAV sería la
plataforma de vuelo y un UAS son todos los sistemas que engloban esta plataforma para
que pueda operar de forma segura esto significa que necesitamos una estación de
tierra un sistema de comunicaciones que podrá ser por radio o por satélite si nos
queremos alejar más y no tenemos línea visual
o un sistema de posicionamiento global como son los GPS
hay multitud de tipos diferentes de plataformas, este en concreto es el
Atlantic Uno es una plataforma diseñada y desarrollada por la empresa SCR,
perteneciente al grupo Everis este es un Tucán, un avión de 3 metros de
envergadura, eléctrico, hora y media de autonomía, también desarrollado por SCR y
este es un aparato muy interesante, es un Asterte, es un multirotor todos conocemos
este tipo de geometría, de formas pero tiene la particularidad de que está
anclado a tierra por un cable
Y diréis, ¿para qué quiere un UAV tener un cable?
Pues para poder volar un tiempo infinito.
Está conectado por este cable que le suministra la potencia eléctrica necesaria
desde un generador en tierra, así como la transmisión de datos y de imagen.
Y esto, bueno, hay muchas aplicaciones donde es muy interesante.
Control de masas, de eventos, luego veremos alguna aplicación.
¿Cómo surgieron los UAVs?
En su origen, estamos hablando de finales de 1800, principios de 1900, empieza la
aviación y es muy peligroso y sobre todo muy caro el fabricar un avión.
Lo que se les ocurre a los inventores, a los ingeniosos de aquella época es
fabricar modelos a medida, más pequeñitos, más baratos y que no pongan en juego su
vida para poder desarrollar estas ideas.
Y es curioso porque esta primera aplicación de los UAV se mantiene hoy en
día.
Esta es una foto de una maqueta real, que está en el Museo de Schingen en Alemania,
del Burán, del transbordador espacial ruso.
Esta maqueta se utilizó para estudiar el comportamiento de un transbordador
espacial al atravesar la atmósfera.
Me pareció bonito ver cómo el origen de los UAV sigue existiendo hoy en día, se
mantiene en la sociedad.
Fueron avanzando los años y se dieron cuenta de que meterle una carga bélica a
un avión sin piloto podía ser interesante y empezaron a fabricar los primeros
torpedos aéreos Estamos hablando de tan solo 4 años después del primer vuelo de
los hermanos Wright Sistemas muy primitivos con pilotos automáticos a los
que se les programaba el número de vueltas que tenía que dar el motor calculando la
distancia
que requerían para tener este número de vueltas entonces cuando alcanzaban esa
distancia midiendo las vueltas del motor, el motor se cortaba con unos pernos
soltaban las alas y caía balísticamente el avión entero al suelo para impactar contra
el enemigo
Continuamos avanzando, 1927, primer avión equipado, primer UAV equipado con un
sistema de radiocontrol tenían un radiocontrol con un alcance muy limitado
que les permitía operarlos en la fase inicial de despegue y orientarlos a la
zona donde querían impactar era una primera fase de control manual mediante
radiocontrol y luego un sistema balístico autónomo que lo llevaba contra el objetivo
Continuamos avanzando y nos ponemos en la Segunda Guerra Mundial el primer UAV
equipado con un motor a reacción, en este caso un pulso reactor importante la mejora
del piloto automático, aquí ya tenemos barómetro y anemómetro con el que sabemos
la altura y la velocidad del sistema, sabiendo la velocidad sabemos la distancia
recorrida y le cargamos el combustible para que
una vez alcanzada esa distancia el motor se pare y caiga sobre el objetivo eran
sistemas con muy poca precisión pero es que el objetivo era una ciudad como
Londres entonces no era demasiado difícil atinar en algún sitio caía
Continuamos entre los 50 y los 70, nos metemos en la guerra de Vietnam y hace
falta enseñar las tácticas de ataque a los pilotos de caza se empiezan a desarrollar
los primeros blancos aéreos sistemas no tripulados que se lanzaban desde un
Hércules y a los cuales los pilotos de caza disparaban para practicar las
técnicas de ataque
también fue muy importante unos sistemas de observación, unos vehículos autónomos
que se lanzaban también desde Hércules para tener imágenes captadas de las zonas
enemigas, se utilizó mucho en Vietnam del Norte, estos equipos se desplegaban,
tomaban fotografías y aterrizaban en una zona más o menos amplia y al recogerlos
podían analizar las fotografías que habían tomado.
Es curioso una vez más como esto de los blancos que se inició en los 50,
actualmente sigue siendo una misión muy utilizada, este es un sistema, un Scrap 2,
desarrollado por SCR también, participa el grupo EVIS, estamos hablando de aviones
que vuelan a más de 500 km por hora, sistemas muy avanzados, pero cuya misión
es la misma que se utilizaba en los años 50.
Nos metemos en la Guerra Fría, años 80, donde lo que prima es saber qué está
haciendo el enemigo, se hacen pilotos mucho más avanzados que los anteriores
donde ya se les puede cargar un plan de vuelo definido previamente y donde lo que
prima es tener información del enemigo, por eso se les montaban cámaras de
observación para saber lo que estaban haciendo más allá de la frontera.
Y nos metemos en los 90, la gran revolución de los sistemas de navegación
con GPS, miniaturización de la electrónica, comunicaciones satélites y se
desarrolla el GENAT, que es el profesor del Predator, una silueta muy conocida por
todos, donde tenemos ya sistemas de comunicaciones muy avanzados, pilotos
automáticos, podemos decir, similares a los que tenemos hoy en día, alcances de
más de 2.000 kilómetros, sistemas muy modernos.
Y llegamos a donde estamos hoy en día, al siglo XXI, donde lo que más refleja la
evolución de los sistemas es la masificación de las aplicaciones que
tenemos de los UAVs.
El detonante fue realmente el 11S, a partir de tener que luchar contra el
terrorismo islámico, la aplicación de los UAVs ha sido...
una revolución militar, fue la primera vez que se cargaban UAVs con sistemas de armas
no estamos hablando de que un UAV en sí sea un arma como un torpedo aéreo sino que
es una plataforma capaz de desplegar armamento en la zona donde a nosotros nos
interesa sin poner en peligro la vida de un piloto pero sobre todo, multitud de
aplicaciones civiles estamos hablando de agricultura de precisión sistemas
topográficos, mediciones, vigilancias
Estamos hablando de que podemos tener, esto es una operación en un simulacro con
las fuerzas y cuerpos de seguridad del estado del Aster T, el multirrotor cautivo
que hemos hablado antes.
Y se pone de manifiesto que en solamente lo que llevamos del siglo XXI se han
volado cientos de miles de horas respecto de las miles de horas que se habían volado
en todas las décadas anteriormente nombradas.
Estamos hablando solo de sistemas no tripulados.
Ya estamos en el siglo XXI, vamos a ver las aplicaciones que tienen inteligencia
artificial en los drones.
Me gustaría poneros este ejemplo antes de continuar.
Bueno, no hay sonido.
Es una película, seguro que a todos os suena.
Y aquí se ve como un enjambre de drones ataca a un objetivo.
En este caso, el presidente de los Estados Unidos, Hollywood.
Pero de todo esto me quedo con la parte final que hice muy pronto.
Porque esto parece Hollywood, ciencia ficción, esto no está pasando hoy en día.
Pero esto que os pongo a continuación es real.
Esto ya está pasando.
No, pinchar en el centro.
Esto es el despliegue de un enjambre de cientos de drones desde tres F-18 a los
que se les ordena misiones en conjunto.
La gran diferencia es que no comandamos lo que tiene que hacer cada uno de los
equipos.
Aquí veis que tienen unos pods blancos, ahora a la zoom,
desde esos pods se despliegan y se comanda lo que queremos que haga el enjambre, es
como una bandada de pájaros que se mueven todos en conjunto y necesitamos
inteligencia artificial para detectar obstáculos que pueden ser los propios
drones entre sí y cálculo en directo y on board de nuevas trayectorias anticolisión.
Esos pods blancos, desde lejos no sé si se verá, pero bueno, se van desplegando
drones, avanza un poquito más, esos son los drones desplegados y aquí vemos
todos los drones que han salido de estos aviones se están agrupando y ahora les
vamos a dar una misión ese es el punto de origen y ahora les van a pedir que hagan
un barrido de una zona se van a desplegar todos al unísono sin chocarse entre sí,
cada uno calculará su propia velocidad, altura y trayectoria
La verdad que la complejidad de la misión es bastante alta.
Pásale un poquito, hacen varias misiones para un lado o para otro y una muy
interesante es esta donde se le dice que giren en torno, que haga una órbita en
torno a un objetivo.
Realmente viendo esto te das cuenta que lo del trailer de la película que hemos
puesto antes no es muy pronto, sino que es que ya está pasando.
Pero bueno, también hay aplicaciones más bonitas.
Estos son unos...
Unos juegos aéreos de iluminación, podemos decir el futuro de los fuegos
artificiales.
Esto no es, ¿eh?
Esto sí.
Estamos hablando de casi 1.400 drones en un área de vuelo realmente pequeña donde
tienen que realizar maniobras complejas y formar figuras, pues lo vais a ver ahora,
en 2D y en 3D.
Se desplazan también en tres dimensiones.
No sé si con la luz se ve demasiado bien.
No sé si lo veis muy bien desde atrás, pero estamos viendo figuras que se mueven
en tres dimensiones con 1.400 aparatos volando a la vez.
La complejidad de este tipo de operaciones es realmente alta.
Vamos a continuar viendo más aplicaciones de la inteligencia artificial La que a
todos nos viene a la mente es la detección En este caso vemos un vídeo donde tenemos
el vuelo de un sistema recorriendo una línea eléctrica y por inteligencia
artificial es capaz de detectar los cables, lo que es cable y lo que no es
cable
y aquí quitamos el fondo de forma que solo vemos el cable esto nos permite analizar
de una forma mucho más sencilla todo el cableado, cualquier tipo de
infraestructura y ahora vamos a ver
Otra aplicación de detección, en este caso se utiliza inteligencia artificial para
detectar personas pero ya no solo personas sino conductas agresivas de forma que el
sistema es capaz de detectar qué miembros de ese grupo de personas suponen un
riesgo, son peligrosas o para identificarlas y atajar el problema cuanto
antes.
Esto es una situación simulada donde hay ciertos miembros agresivos nos explica un
poco la técnica que luego Ismael
Tratará más en detalle, pásale un poquito más.
Y aquí vemos cómo analiza cada uno de los individuos y detecta perfectamente qué
individuo está agrediendo a otro.
Si nos imaginamos cualquier multitud en la actualidad, en España mismamente, pues
tener esta información puede ser muy importante para los cuerpos de seguridad
del Estado.
Muy bien, pero hay más aplicaciones.
Tenemos un espacio aéreo limitado.
El volumen de aire en el cual se pueden desplazar las aeronaves realmente es
finito.
Y vais a ver en este vídeo el crecimiento que está teniendo el espacio aéreo.
A ver dónde empieza...
Aquí tenemos el año, el 2000, 2005, 2010, vemos como cada vez el espacio aéreo está
realmente más ocupado y esta es la simulación de cómo estaría en 2030 A todo
esto hay que añadir los sistemas no tripulados que hoy en día son una realidad
y se está viendo cómo gestionar su integración en el espacio aéreo con otras
aeronaves
entonces es fundamental el tener sistemas que nos permitan el cálculo de
trayectorias para evitar obstáculos y evitar otro tipo de plataformas que estén
volando a nuestro alrededor la única manera que tenemos de hacer esto de forma
masiva es utilizando la inteligencia artificial aquí nos está contando un poco
el presente y futuro del espacio aéreo europeo, cómo se van a gestionar todos
estos tráficos pero bueno, yo creo que lo pasamos, no tenemos audio
Y hasta aquí mi parte de UAVs.
Doy paso a Ismael, mi compañero, que os va a hablar sobre Deep Learning.
[Orador 9]: ¿Se escucha?
Pues vale, gracias Enrique y gracias a Luis por invitarnos.
Yo voy a centrarme un poco más en la parte un poco más técnica de qué es esto que se
escucha en todos sitios de la inteligencia artificial, deep learning, machine
learning.
Hay muchos conceptos que quizás sabéis porque sois más técnicos o quizás sabéis
menos.
Entonces un poco la presentación es ver un poco en detalle qué son estos conceptos y
entrar en algunas cositas básicas para entender.
Bueno, esto es un poco la presentación de esta segunda parte.
Sería un poco empezar qué es Deep Learning y luego ir explorando algunas de las
técnicas más interesantes de los últimos años en temas de procesamiento de
imágenes.
Desde qué es una red convolucional, qué es una red fully convolucional, que van
siendo variaciones que te permiten hacer algunas cosas más.
Las region base, las generativas bestial network.
Vamos a ir viendo.
¿Qué es esto de Deep Learning?
Antes de comenzar, imagino que casi todos lo sabréis, que dentro de un ordenador una
imagen es una matriz numérica en el que cada píxel es un valor numérico que va de
0 a 255 o el rango que sea.
Normalmente las imágenes de color se representan por tres canales.
Esto es una cosa que tenemos que tener en mente.
Vamos a situar la inteligencia artificial como cualquier técnica
que es capaz de imitar el comportamiento humano.
Dentro de la inteligencia artificial tenemos lo que sería Machine Learning, que
son aquellas técnicas que utilizan métodos estadísticos para realizar ese mismo
objetivo.
Y dentro tenemos Deep Learning, que utiliza estas técnicas estadísticas con
capas, redes que utilizan diferentes capas.
Dentro de Machine Learning, en los últimos años ha sido una revolución la aparición
del Deep Learning.
Hasta hace pocos años, cuando teníamos un problema en el que queríamos clasificar
objetos, por ejemplo coches, teníamos una persona, el experto, que tenía que decidir
qué características son relevantes para este problema.
Por ejemplo, queremos clasificar coches de árboles, pues quizá el color es una buena
característica, quizá estas cosas circulares, las ruedas, nos dan una pista.
Entonces el experto tiene que decidir qué descriptores, qué características son
útiles para luego una parte de inteligencia artificial, machine learning
siendo más concretos, aprende de esas características para tomar una decisión.
Vemos el flujo.
Deep learning rompe un poco este esquema.
Aquí se elimina esta primera parte y lo que se hace es poner muchas imágenes de
coches, muchas imágenes de camiones, de árboles y aquí está la clave.
Entonces la red tiene que aprender directamente cuáles son las mejores
características.
Es un poco el salto tecnológico.
Iremos viendo un poco más en detalle.
Dentro del Deep Learning el concepto más básico es la neurona.
La neurona intenta asemejar la neurona del cuerpo humano, del cerebro, que al fin y
al cabo es una conexión de diferentes partes en la que a partir de diferentes
estímulos eléctricos toma una decisión, tiene una salida, tiene en entradas y una
salida.
Pues los matemáticos, esto viene de los años 80, intentaron hacer este mismo símil
de forma matemática.
La forma de hacer esto de forma matemática es bastante sencilla, tenemos diferentes
entradas, podría ser un sensor, una imagen, cualquier cosa, en el que cada una
de ellas tiene una importancia, eso es el peso que tiene cada una de las entradas,
se combina mediante una suma y tenemos una salida.
Parece algo muy tonto, muy sencillo, pero que si lo combinamos de forma adecuada
podemos construir cosas mayores.
Si conectamos diferentes neuronas, una y después otra, tenemos lo que se llama una
red neuronal.
En este problema tendríamos diferentes entradas, diferentes capas con diferentes
neuronas para tener una salida.
Con la aparición de las GPUs, más o menos la revolución de las GPUs en el 2006-2008
con el tema de los gamers para los videojuegos y el bajo coste de estas,
permitió a la comunidad de investigadores utilizar GPUs para procesar estas redes
con muchas capas.
A esto se le llamó Deep Learning y se pudo hacer con este uso de las GPUs.
Se pasó de entrenar un modelo en meses a horas.
Anteriormente no se podía hacer, no porque no existiera, sino porque la tecnología
hardware no lo permitía.
Una de las redes neuronales más famosas son las convolucionales, que quizá la
habéis escuchado, de su sigla CNN, no las noticias.
Una red convolucional es un tipo de red neuronal que está especializada en el
procesamiento de imágenes.
Esto sería un ejemplo de una red convolucional en el que nosotros tenemos
una imagen de entrada, tenemos diferentes capas y al final tenemos una salida.
Voy a explicar un poco bastante rápido cómo funcionan porque es el core del Deep
Learning actual.
Y estas redes convolucionales están formadas por tres diferentes capas.
Capas de convolución, capas de agrupación y capas totalmente conectadas.
Voy a dar unas pinceladas rápidas.
¿Qué es una capa de convolución?
Pues es un filtro espacial.
Por ejemplo, si nosotros tenemos una imagen y le aplicamos un filtro
horizontal, lo que hacemos es resaltar los bordes horizontales.
Es una operación matemática de ir operando esta matriz a lo largo de toda la imagen
de entrada.
Si aplico un filtro horizontal y un filtro vertical, resalto los bordes.
Quedaos un poco en el concepto.
Aquí vemos un poco visualmente cómo se está aplicando la convolución y va dando
un resultado.
Esto es la visualización de diferentes capas que han sido entrenadas de forma
automática en un problema de imágenes.
Y vemos que, curiosamente, lo que aprenden las primeras capas son bordes.
es lo más básico que podemos aprender de los objetos para luego conseguir un
significado.
Vemos que tenemos bordes horizontales, bordes verticales, colores, que esto va a
ir cambiando dependiendo de nuestro problema.
Otra capa muy importante y muy sencilla es la capa de agrupación o pooling, que lo
que hace es ir pasando a lo largo de la imagen y aplicar una operación, un máximo,
una media, para quedarnos con características más relevantes.
Y por último se suele colocar una capa totalmente conectada, que es una capa de
varias neuronas conectadas unas con otras, para tomar la decisión final.
Entonces aquí en este problema tenemos diferentes capas de convolución y pooling,
convolución y pooling, y vamos extrayendo un significado más, vamos sacando el
significado de esta imagen.
Y al final con la capa totalmente conectada decidimos que lo más probable
que sea esto es que sea un coche, si la cosa ha ido bien.
Pero esto cómo aprende.
Vemos un poco el concepto y os voy a comentar muy por encima cómo funciona el
proceso de aprendizaje que es la clave de las redes neuronales.
Pongo un ejemplo muy sencillo.
Tenemos imágenes de entrada de números escritos a mano.
Son imágenes de 28 por 28.
Si lo ponemos en columna salen las 784 entradas.
Y nuestro objetivo es que a partir de esta imagen decir qué dígito corresponde.
En este problema hemos colocado dos capas intermedias de 16 neuronas y está todo
conectado con todo.
Aunque parezca sencillo, en este problema tenemos 13.001 variables por aprender.
Todas estas conexiones debemos asignarle un peso y luego más la suma de todas ellas
para conseguir una salida.
Este es el objetivo.
En este tipo de problemas se suele inicializar con pesos aleatorios.
Por lo tanto, cuando metes una imagen, la salida no es la esperada.
La clave es que aprenda a clasificar estas imágenes.
El algoritmo más utilizado para este tipo de técnicas es el deceso de gradiente, que
es un concepto muy sencillo.
Se trata de ir modificando esos pesos, haciéndoles un incremento hacia arriba o
hacia abajo, hasta comprobar si mejoro o empeoro.
Y la cosa es, aquí se ve muy fácil, si quiero llegar al óptimo, cojo este
caminito visualmente, pero ¿cómo sé si mejoro o empeoro?
Necesito algo con lo que comparar, una función de coste se llama.
Entonces, si yo meto una imagen en mi red anterior totalmente aleatoria, la salida
probablemente sea algo de este tipo.
Me dice que tiene una probabilidad alta de ser un 1, un 6, un 7, todo aleatorio.
Si yo calculo la distancia, simplemente es la distancia al cuadrado, entre lo que me
ha dado y lo que debe ser, yo espero que cuando esté esto funcionando, todo esto me
diga que probabilidad 0, 0, 0, probabilidad 100% de ser un 5.
Si yo calculo esta distancia, tengo un coste.
Mi objetivo es minimizar el coste para que mi red funcione lo mejor posible.
Aquí tendríamos nuestros 13.001 pesos por aprender.
Actualmente tienen valores mayores o peores.
Un peso mayor significa que ese camino va a tener una influencia mayor en la salida.
Nosotros tenemos una entrada, se activan las neuronas correspondientes con mayor o
menor peso y nos dice que este 2 tiene una probabilidad de un 20% de ser un 2.
y aquí dice que tiene un 100% de ser un 6.
Esto no es lo que queremos.
Entonces, el objetivo es mejorar, hacer que los pesos que llegan a este camino
suban y los pesos del resto de caminos bajen.
Es ajustar.
¿Cómo podemos subir este peso?
Es la fórmula que tiene la neurona.
Tenemos diferentes productos con las conexiones anteriores, una suma y luego
las conexiones que hubiera antes si las hay.
Entonces podemos ir cambiando estas cosas, ajustando.
Entonces, para subir esta, un camino podría ser subir esta, subir la anterior,
bajar otra.
Diferentes caminos.
A esto se le llama el algoritmo de propagación hacia atrás o backpropagation.
Entonces, si yo tengo el numerito 2, me sale que el peso 1 debería actualizarlo
esta cantidad.
pero para el 5 le viene mejor esta.
Cada uno va a tener un camino mejor.
Entonces, si yo calculo la media de todos, tengo un aprendizaje global.
Entonces, si yo actualizo esta variable, esta cantidad, voy a dar un paso hacia la
solución óptima.
Si esto lo realizo iterativamente, cada vez voy a estar más cerca de ese camino
óptimo.
En la práctica se suele entrenar por...
lo que se llama batches, que son conjuntos pequeños, porque esto es muy costoso en
tema de memoria y de GPU, pero tardas más en llegar al camino óptimo, no llegas en
línea recta, vas haciendo como el camino de un borracho, pero al final suele
converger.
Este es un dataset muy famoso que se utiliza para que la comunidad de
investigadores pruebe y desarrolle y compare los algoritmos.
Es un dataset con 14 millones de imágenes de este tipo con más de 1000 clases.
El objetivo es clasificar estas imágenes lo mejor posible.
A partir del año 2012, con la introducción de la CNN, se produce un salto
tecnológico.
Estamos en un punto que las tecnologías actuales apenas mejoraban año a año y con
la introducción de esta revolución la CNN aparece un salto enorme.
Aquí vemos lo que había antes, que era algo bastante plano ya, y en este año, en
el 2012, este grupo de investigadores, el autor principal, introduce una primera CNN
bastante sencilla, pero que produce un salto tecnológico enorme.
De ese problema tan grande de mil objetos, consigue bajar el error a menos de un 15%,
y actualmente esto ha seguido bajando hasta cifras muy bajas.
Esto es un ejemplito de clasificación en un vídeo.
Podemos ver la probabilidad de que sea tortuga, de que sea elefante.
Es un problema muy genérico que tiene mil objetos.
Dentro de la CNN existen diferentes arquitecturas que han ido mejorando con
los años.
Van añadiendo más capas, añaden más caminos, las combinan de diferentes
formas.
Esto es una pequeña comparación entre rendimiento versus coste computacional.
En ese mismo problema...
Otra red que aparece un poquito después son las Fully Convolutional Neural
Network, que tienen un objetivo un poco diferente, que lo que hacen es cambiar esa
última capa de clasificación por otra cosa diferente.
El objetivo ya no es decir que en esta imagen hay personas, sino que dentro de la
imagen
qué área, qué píxel es cada cosa.
Es un paso más, ¿vale?
Decir que toda esta área es una mesa, toda esta área es persona, esto es fondo.
Esto sería lo que teníamos antes, a partir de una imagen decidir que esto es un gato.
Pero ahora queremos más, queremos saber que esto es un gato y queremos saber dónde
está eso.
Esto se le llama sementación semántica o FCN.
En estas capas aparecen dos conceptos diferentes, que son las capas de
convolucionales y el ampulling.
Podéis ver que es un poco el opuesto a lo que hemos visto antes.
La de convolución es la operación inversa de la convolución y lo que hace es a
partir de un filtro deslizar una ventana e ir haciendo un producto y calculando la
suma.
Aquí veríamos cuál es el resultado visual.
Este sería el filtro, vamos deslizando la ventana y producimos una imagen mayor que
se asemeja a la operación inversa de la convolución.
El ampulling, que es la operación inversa del pooling, como tal, el máximo de una
región no tiene operación inversa, por lo que se guarda, aparte del máximo de cada
zona, dónde está ese máximo.
No hay forma de volver atrás en un máximo de una zona, pero si sabemos dónde está el
máximo, podemos hacer una aproximación bastante acertada.
Aquí vemos unos ejemplitos de qué pasa cuando hacemos una convolución sobre una
imagen y vemos que sale información más semántica, que es una rueda, que es una
bici, es otro tipo de...
Esta es una de las redes que mejor está funcionando para este fin.
Y lo que hace es colocar una CNN como la que hemos visto antes y aquí las capas
opuestas a las una convolución, una deconvolución, un pooling, un ampooling.
Aquí hay otras modificaciones que han hecho otros autores con el mismo fin.
Y aquí podemos ver un poco cómo funcionan.
Aquí tendríamos nuestra imagen de entrada, nuestro ground truth, es con lo que vamos
a aprender y con lo que nos gustaría conseguir.
Y aquí vemos dos métodos diferentes lo que están consiguiendo.
Vemos que esta consigue unos resultados bastante acertados, una segmentación
bastante buena de los objetos.
Otro tipo de enfoque muy usado son los region-based convolutional networks.
que estos tienen como objetivo detectar objetos dentro de la imagen.
Al principio hemos visto clasificación de imágenes, segmentación de imágenes y ahora
queremos detectar ciertos objetos dentro de la imagen.
Suelen estar formadas por tres pasos, una proposición de candidatos y esta parte
corresponde con una CNN tradicional.
Esta es la primera que surgió, la RCNN, tiene una primera capa de generación de
candidatos, posibles cosas a ser objeto.
Se suelen generar bastantes y luego se encarga la CNN tradicional de decidir qué
tipo de objeto es.
Este método se llama búsqueda selectiva.
Si a alguien le interesa, puede mirar más de ese tema.
Aparece una mejora para mejorar el tiempo y además de predecir la clase, ahora
también vamos a aprender cómo debería ser esta delimitación.
Si eso debería ajustarse más, debería estar más hacia la derecha.
Que la propia red sea capaz de aprender el tamaño del objeto y la posición.
Otra mejora que surge después es utilizar una propia red neuronal para generar los
candidatos.
Principalmente es una mejora de tiempo, de bajar de segundos a milisegundos en la
hora de generar candidatos.
Otro dataset muy famoso que se utiliza para estos problemas es Coco 2015, que es
un dataset que tiene 80 clases y más de 200.000 imágenes por clase y vemos que
están anotadas a nivel de píxel y también tienen una región de interés para su
detección.
El uso de Deep Learning para la detección de objetos revoluciona los resultados
anteriores.
Vemos que de unos resultados muy bajos antes de 2013, como de un 20%, están
llegando a resultados de un 80% en la detección de objetos.
Esto en el mundo del Deep Learning es un salto que nunca se ha visto antes.
Tanto en ImageNet, que es el dataset que hemos visto antes, como en Code que hemos
visto ahora.
Hoy en día a nadie se le ocurre trabajar de otra forma diferente que no sea usando
Deep Learning para estos problemas tan complejos.
Y por último, otro concepto que me gustaría explicar, que es la generativa
adversarial network.
¿Qué son las GAN?
Esto no son las GAN.
La GAN es un tipo de red neuronal que aprende a generar datos sintéticos.
fue introducida en el 2014 por un grupo de la Universidad de Montreal y ellos
pensaron, nuestro principal problema para entrenar nuestros modelos es que nos
faltan imágenes.
Necesitamos en el orden de miles, cientos o millones, dependiendo de la complejidad.
Y ellos pensaron, ¿por qué no creamos una red que sea capaz de generar sus propios
datos sintéticos para luego entrenar?
Y así empezó esto.
Este tipo de arquitectura se utiliza para generar imágenes de entrenamiento o
imágenes sintéticas para algunos fines, vídeos, modelos.
¿Cómo funciona este tipo un poco especial de red?
Está formado por dos partes.
Tiene una parte que es un generador, que se trata de, a partir de un vector
aleatorio de números, que sea capaz de ir construyendo nuestro objeto deseado.
Aquí tenemos las deconvoluciones y los ampulling.
Vamos expandiendo a partir de un vector aleatorio hasta que se parezca a algo que
nosotros queremos.
Y por otro lado tenemos un discriminador, que es una CNN normal, que simplemente nos
va a decir si la imagen de entrada es real o es fake, si es falsa.
¿Cómo funciona esto?
Por un lado tenemos un discriminador, que va a ser esa red que me diga si la imagen
es verdadera o falsa, y por aquí un generador.
La idea es ir metiéndole al discriminador imágenes reales e imágenes falsas e
intentar que el discriminador pone eso difícil.
Esto está extraído del paper original de las GAN y dice que las GAN se pueden
asemejar con un equipo de falsificación de moneda falsa.
Y el discriminador sería la policía.
Esa guerra entre generar moneda cada vez más real e investigar cada vez más hace
que tengas un producto cada vez mejor.
Entonces aquí un poco la cosa, qué es real y qué no es real.
Para que funcione esto debemos entrenar el generador y el discriminador de formas
independientes, a un ritmo parecido.
No tiene sentido que uno funcione muy bien a costa de que el otro lo está haciendo
muy mal.
No tendríamos ningún resultado que nos sirva.
Entonces, para entrenar el discriminador simplemente introducemos imágenes de
entrenamiento de un lado e imágenes falsas del otro.
Y el objetivo es que intente discriminar.
Por otro lado, el generador debería ser capaz de intentar engañar al
discriminador.
Genera una imagen y el discriminador se da cuenta de que es falsa.
Dice un 40% de que es falsa y el discriminador tiene que intentar mejorar.
Para intentar mejorar lo que se hace es coger esas capas que ha aprendido el
discriminador, esos pesos que le está ayudando a discriminar para actualizar sus
propios pesos.
Es un poco la batalla entre uno y otro y en ese proceso podemos conseguir que el
generador sea capaz de generar imágenes sintéticas que parezcan bastante reales si
lo hacemos bien.
Aquí vemos un ejemplo.
Estas son imágenes sintéticas en el proceso de entrenamiento y cada vez se
parecen más a dígitos hechos a mano.
Estos son datos totalmente sintéticos.
A partir de un vector aleatorio, se generan este tipo de cosas.
Aquí tenemos un ejemplo en el que en esta publicación muestran que ha sido capaz de
generar imágenes de habitaciones y cosas así de forma sintética.
Todo esto, aunque parezca bastante real, está generado de forma sintética.
Aquí también tenemos imágenes típicas de clasificación, de aviones, pájaros y tal.
La diferencia es que todo es sintético.
Esta gente fueron capaces de generar caras sintéticas a partir de un set muy grande
de imágenes.
Son imágenes que es una especie de mezcla y otras parecen bastante reales, pero
todas están generadas de forma aleatoria.
Y esto es la parte que quería mostrar, unas pinceladas de diferentes técnicas muy
usadas en la inteligencia artificial que nosotros las estamos aplicando en el mundo
de los vehículos aéreos.
Y si tenéis alguna duda, alguna cuestión en tema de inteligencia artificial más
propio o más de vehículos aéreos, nos podéis preguntar.
¿Profundidad?
¿A qué te refieres?
¿Qué tipo...?
La profundidad es un problema más complejo de lo que parece, es una buena pregunta,
porque si nosotros utilizamos imágenes normales, imágenes RGB, ¿cómo diferencias
a un objeto grande de un objeto cercano?
Si tú le pones a una cámara un objeto muy grande, se puede confundir con un objeto
que está muy lejos pero es enorme.
Entonces, solo con imágenes, solo con una cámara es muy complicado.
No tienes esa sensación de profundidad.
Entonces, hay sistemas estéreo.
Un sistema estéreo es cómo funciona el ojo humano.
Tenemos dos cámaras y a partir del procesamiento de la desviación podemos dar
una estimación de distancia.
Suele funcionar bien en sitios interiores, con la luz, cosas externas hace que no
funcione tan bien como nos gustaría.
Hay sistemas láser que lo que hace es emitir un pulso y espera el rebote.
Puede ser un sonido, un infrarrojo, un láser visible.
Eso sí que suele funcionar mejor para exteriores, pero depende mucho de la
aplicación.
No sé si es lo que...
Había uno para de la Kinect, de la Kinect, la camarita esta de Microsoft, que es de
los videojuegos, que es una cámara... Kinect, algo más.
Estéreo.
Es una cámara estéreo, al fin y al cabo.
Tiene un espectro infrarrojo, pero realmente son dos cámaras estéreo.
Estéreo con un poquito de infrarrojo y funciona con poca luz.
Depende de tu problema, si va a ser interior, si va a ser exterior...
En temas interiores te puede servir ese.
En exteriores, tema de lidar y esto, no hay mucho, porque lidar es bastante
diferente del fabricante, es más complicado.
Habrá que googlear un poco, pero no hay mucho.
[Orador 7]: Si somos capaces de generar imágenes,
de forma aleatoria, es que pueden tener todas las imágenes, podemos tener las
imágenes de cualquier persona, de cualquier cosa y puesto eso en un vehículo
que vuele, el tema es evidentemente para los ejércitos está estupendo,
...la guerra va a ser... ...incruentas para algunos... ...y absolutamente
cruentas para otros... ...pero es que puede ser para la sociedad... ...puede ser
un tema tremendo... ...por temas de seguridad te refieres supongo ¿no?...
...y de seguridad... ...de seguridad personal... ...que puede pasar cualquier
cosa... ...¿cómo nos protegemos ante esa situación?...
...porque aquí... ...yo no creo ni siquiera que los estados sean capaces de
legislar... ...porque los que están en el otro lado de la frontera...
[Orador 9]: Los malos pueden hacer lo que les dé la gana.
Comentar que en esta parte hay también una parte aún muy fuerte de investigación.
Hay modelos básicos que ya empiezan a funcionar, pero el tema de generación
sintética tiene sus limitaciones.
Suelen ser imágenes pequeñitas, no siempre se parecen tanto.
Y es mucho más complejo de lo que parece.
Aunque parezca un poco ciencia ficción, en la práctica tiene sus limitaciones.
No estamos en peligro inminente.
[Orador 7]: Imagínate, pero esto va a seguir avanzando, entiendo.
Y por lo tanto, a lo mejor no va a tener problemas de momento.
Pero, ¿qué hacemos del otro lado para contrarrestar esta tecnología?
[Orador 9]: Siempre habrá que usarla de una forma adecuada.
[Orador 7]: ¿Qué me pongo yo para que la imagen sintética mía se desvirtúe?
¿Me pongo de rojo, de amarillo, de laleti?
[Orador 9]: ¿Cómo?
No sé, ahí ya me pierdo.
En plan futurista no sé hasta dónde puede llegar.
Yo en mis carnes lo que vivo es que tiene sus limitaciones.
En ciertos escenarios controlados funciona, en otros escenarios no funciona
tan bien.
No es tan inteligencia artificial como podemos esperarnos.
[Orador 5]: Luis, sistemas antidrónicos.
[Orador 7]: Claro, a eso me refería yo.
Porque... Es la única manera.
Yo no creo que, por la edad que tengo, no voy a tener muchos problemas, pero
vosotros deberíais estar preocupados, ¿eh?
[Orador 9]: Aquí no les veo preocupados, porque probablemente trabajen en cosas parecidas.
Quizá otras carreras no les preocupe más.
[Orador 7]: ¿Alguna pregunta más, chicos?
¿No tenéis preguntas?
Me...
Me extrañaría.
[Orador 8]: Yo te quería preguntar que, a raíz de lo que ha preguntado Luis, qué opinas ahora
mismo de, no sé si sabes, el algoritmo Deep Newt, que se puso hace poco así de
moda, que usaba esas redes generativas para poner en bolas a cualquiera una foto.
Entonces, no sé qué opinión tienes, sobre todo al tema legislativo, porque
evidentemente son fotos generadas, o sea, por una máquina.
[Orador 9]: El tema legislativo no creo que llegue hasta ese punto, quizá nuestro... O sea,
me refiero a qué se debería hacer.
¿Qué se debería hacer?
¿Crees que es violación de privacidad o algo así?
[Orador 8]: Sí, incluso se ha hablado de extorsión de personas.
[Orador 9]: Si se llega a considerar, quizá la ley debería hacer algo en contra de eso, pero
al fin y al cabo es algo virtual.
Tampoco estás, no sé, no sé hasta qué punto puede ser que alguien se sienta...
[Orador 8]: ¿Crees que estas redes pueden llegar a una resolución muy alta y a una generación de
imagen?
[Orador 9]: Todas las tecnologías tienen su convergencia y hemos dado un salto
tecnológico grande, pero no es tanto como podría ser.
No creo que lleguemos hasta ese punto, por lo menos con la tecnología actual.
Vale, gracias.
[Orador 4]: Yo tengo otra pregunta, también similar, pero más en el tema bélico.
Si hablamos de que, como habéis comentado antes, los drones tienen capacidad de
distinguir, por ejemplo, si una persona está en plan ofensivo o en plan defensivo,
evidentemente llegar a un punto en el que puedan distinguir, por ejemplo, un
objetivo de otro.
Entonces, en ese punto la decisión de, por ejemplo, atacar, observar o eso, lo va a
tomar una persona o el propio dispositivo mediante inteligencia.
[Orador 9]: Yo siempre he pensado que este tipo de tecnología, todo lo que estamos
aprendiendo debe estar en servicio de las personas.
Yo creo que ya existen técnicas para ayudar a médicos, técnicas para ayudar a
pilotos de drones, técnicas para ayudar a los militares, pero siempre debería haber
una persona por detrás que valide esas decisiones.
Al fin y al cabo son técnicas estadísticas.
Puede funcionar mejor o peor, pero es un algoritmo en el que entran números y salen
números.
Entonces, fiar la vida de una persona a algo que puede fallar, en mi punto de
opinión, no debería ser.
Siempre debe ser un sistema de apoyo.
[Orador 2]: Muy buenas.
Tengo una pregunta en relación a las redes de neuronas que nadie por lo que se ve no
la ha preguntado.
Y por experiencia sé que el cálculo de capas que necesita una red y el número de
neuronas de cada esa capa,
pues hay que estar un poco como a prueba de ensayo y error, y es un poco laborioso
hasta obtener unos buenos resultados.
Y mi pregunta es, ¿optimizáis de alguna manera o usáis programación genética para
el uso óptimo del número de capas y neuronas?
[Orador 9]: He leído cosas y sé que Microsoft y Google están trabajando en redes que son
dinámicas, que pueden aprender a decidir cuál es el número mayor, cuál es la
optimización de capas.
El problema es que ya de por sí la complejidad es exponencial de este
entrenamiento, entonces la complejidad de un exponencial más otro exponencial se
traduce en tiempo no viable.
Nosotros en nuestro día a día utilizamos redes pre-entrenadas, que suelen ser que
una comunidad con millones de imágenes consigue buenos resultados y lo que
hacemos es adaptarlas para nuestros problemas.
Nosotros hemos obtenido mejores resultados adaptando cosas ya entrenadas para
nuestros problemas en particular.
Quizá llegar a ese punto tendría que ser quizá un centro de cálculo con mucha
potencia y ya en plan hilar muy muy muy fino.
Quizá nuestra solución no es la óptima que podríamos llegar a conseguir en el mejor
de los casos pero probablemente estemos cerca.
Entonces depende mucho de lo que quieras conseguir.
y depende la cantidad de cálculo que tengas disponibles.
Nosotros solemos trabajar con GPUs de sobremesa, son potentes pero no permiten
ese tipo de cosas.
[Orador 6]: Te quería preguntar sobre estas arquitecturas que nos has enseñado son
bastante costosas en cómputo y para sistemas como los que estáis tratando
vosotros necesitarían sistemas como los que estáis usando vosotros.
necesitaría una tarjeta gráfica bastante potente para todos estos cálculos de
detección y algunos vehículos como los que habéis enseñado son bastante pequeños o
muchos y no podrían incluir tanto hardware.
¿Cómo hacéis para que estos modelos puedan funcionar en tiempo real?
[Orador 9]: Es una muy buena pregunta y es un dolor de cabeza que nos lleva peleando tiempo.
Lo bueno de este tipo de modelos, bueno, primero, lo malo de este tipo de modelos
es que el entrenamiento es muy costoso.
Tenemos un entrenamiento exponencial en el que tenemos que hacer millones y millones
de operaciones.
La parte buena que es que una vez que tenemos nuestro modelo entrenado, lo que
se llama la inferencia, poner una nueva imagen y que nos dé un resultado no es tan
costoso.
En los últimos años, Movidius de Microsoft, Google y varias también Nvidia
han creado dispositivos bastante reducidos de tamaño, consumo y peso que son capaces
de hacer esa inferencia.
Es decir, entreno en mi ordenador,
de sobremesa con su GPU potente y luego utilizo ese modelo aprendido para a partir
de nuevas imágenes o nuevos datos tomar una respuesta.
Pero es algo muy crítico, sobre todo con las plataformas aéreas.
En un coche autónomo no tienen tantos problemas.
Puedes poner más peso, le puedes poner una batería más grande.
Sistemas que vuelan es un problema bastante importante a tener en cuenta.
[Orador 1]: Buenas tardes.
Yo quería preguntar, no sé si a ti o a tu compañero, me imagino que hay un tipo de
control terrestre, un operador humano, que si tienes un enjambre de drones volando y
hay una situación de emergencia, se le tiene que mandar algún tipo de orden para
que bajen.
Quería preguntaros si se utiliza algún tipo de protocolo tipo MQTT o es el más
usado para ese tipo de control.
[Orador 9]: Quizá...
[Orador 5]: Hola.
Bueno, a ver, todo esto de los enjambres de drones, hoy en día sigue siendo un
campo de desarrollo experimental.
Este vídeo que he puesto son ensayos y pruebas, nos están aplicando en el campo
de batalla.
Ha salido precisamente hoy, he leído una noticia de que Rusia va a poner en
funcionamiento un sistema con un enjambre de drones de 100 unidades.
No tengo ni idea de cuáles son los protocolos de seguridad ni cómo se
comunican con ellos.
Hoy en día es una cosa muy concreta que cada uno lo gestiona de forma particular.
[Orador 3]: Gracias.
Han hecho una pregunta relacionada y por relacionarlo con la charla que nos viene a
continuación.
Estos sistemas cada vez están tomando más decisiones, más críticas.
¿Qué medidas, qué estrategias tomáis para medir la fiabilidad de este tipo de
sistemas?
la fiabilidad y luego tiene que ver con la charla siguiente porque es la
responsabilidad social que va a asociar.
[Orador 9]: Totalmente, es un problema más gordo de lo que parece.
Al fin y al cabo, lo único que podemos hacer es coger un dataset muy grande y
echar cuentas.
Es decir, en este dataset el 96% de las veces lo hago bien, el 3% lo hago mal.
Pero en la vida real ese 3% de error nos vale.
¿Es viable?
¿No es viable?
Si estamos en medicina, quizá no nos vale.
Si estamos en detección de plantas en un bosque, árboles, también puede que nos
valga.
Tampoco necesitamos una precisión del 100%.
Entonces, dependiendo mucho de la aplicación, hay que mirar estas cosas con
pinzas.
Y la legislación está un poco adaptándose, seguro que nos puede comentar mejor
nuestro siguiente ponente.
Porque es algo tan nuevo que la ley no está preparada para estas cosas y yo ahí
patino.
Yo ahí ya no sabría hasta qué punto.
Yo me quedo más, doy un paso atrás y me quedo en la parte tecnológica y lo que
escucho.
[Orador 3]: Por ejemplo, en algunos estándares de sistemas de alta integridad, recuerdo
ahora uno de los ferrocarriles, entonces te dice las técnicas de programación, las
herramientas que se pueden utilizar, la inteligencia artificial hasta la última
versión del estándar que he visto yo estaba prohibida, no la recomendaban o
casi no la admitían.
¿Esa crucecita se puede ir quitando o la mantenemos?
[Orador 9]: Depende del problema.
Me ha pasado de presentar alguna conferencia, algún paper y hay revisores
que son muy partidarios de decir
Para mí no es válido un sistema de deep learning porque aprende de forma
automática y no hay un experto que le dice lo que tiene que aprender.
Al fin y al cabo depende de los resultados que queramos.
Incluso un sistema experto puede fallar.
Digamos experto de selección de técnicas más otros procedimientos.
También tiene una parte de aprendizaje.
Entonces depende mucho.
Yo para mí es válido, viendo lo que hay dentro, porque ha sido una revolución y
Hemos dado un salto, pero ciertas cosas quizá consideran que no son válidas.
Tiene que ser A más B, tiene que ser igual a C. No puede ser un 98 veces C.
[Orador 7]: Yo solamente daros las gracias, de verdad que ha sido tremendamente interesante.
Me ha ayudado a todos los conceptos que has contado porque no había leído nada al
respecto.
Y solamente, como la universidad ya sabéis que es pobre, esto me han dado estos
regalitos para vosotros.