[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.