Artículo del Co-CEO de Lanaccess Fernando Guillem en la revista Seguritecnia.
En el término Inteligencia Artificial, la palabra Artificial no hace referencia a que la inteligencia sea falsa, sino que no es natural de un ser vivo. Más bien se trata de una inteligencia creada por el ser humano para que la aplique una máquina.
“AI” y su traducción al castellano “IA” se han convertido en buzzwords que engloban multitud de tecnologías que de alguna manera mejoran o complementan el trabajo humano y/o su capacidad cognitiva.
Podemos decir que una máquina está dotada de AI si hace lo siguiente:
Estos bloques de construcción se basan en algoritmos, que son conjuntos de acciones encaminadas a resolver un problema.
Podemos pensar en ello como el desarrollo cognitivo y motor de un bebé humano. Cuando nacen, no saben distinguir lo que es un perro de un gato, no saben distinguir al tacto si un objeto es de madera o de plástico, pero su cerebro está continuamente recogiendo datos, que aprende a interpretar en base a feedback del entorno y de sus propios sentidos. En el caso de las máquinas, al no tener sentidos, su principal manera de interpretar los datos es si estos están etiquetados, e.g.: esto es una persona, esto otro es un perro; este resultado es correcto, este no.
En los años 40 y 50 del siglo XX científicos de diversos campos empiezan a hablar de la posibilidad de crear un cerebro artificial. Estudios de neurología de la época proponían que el cerebro está formado por una red de neuronas que emiten impulsos eléctricos binarios: impulso o no-impulso, 0 o 1. Antes de esto, Alan Turing había formulado su teoría de la computación, que decía que cualquier cómputo podía describirse de manera digital. La unión de estas y otras ideas de la época da a pensar que una máquina pueda hacer cómputos como un cerebro.
En el verano de 1956 tuvo lugar en Dartmouth College una conferencia donde se juntaron los científicos inmersos en esta vanguardista área de estudio. En este evento, John MacCarthy acuñó el nombre de inteligencia artificial por primera vez en la historia. Por aquel entonces, las discusiones de los participantes quedaron en meros esbozos de ideas, pues no eran conscientes de la cantidad de datos y la capacidad de procesamiento requerida para realmente dotar de inteligencia a una máquina.
Esa falta de capacidad de procesamiento y de datos fue lo que obstaculizó el avance de esta disciplina, por lo que no muchos años después de aquella conferencia se produjo un periodo de estancamiento que se conoce como el AI Winter (invierno de la IA) y que perduraría hasta llegar al siglo XXI.
El desbloqueo de esta área de estudio se produjo gracias a un cúmulo de pequeñas mejoras incrementales y a dos hechos determinantes:
Si hacemos recuento de las efemérides de la IA[1][2] podemos ver el progreso en las diferentes épocas desde que se inició y los periodos del AI Winter donde hubo pocos avances:
La lista sigue, pero podemos ver claramente que los avances en IA se han acelerado en los últimos 20 años.
El término Inteligencia Artificial (IA, o AI en inglés) se ha convertido en una buzzword que cualquier empresa lanza con el objetivo de demostrar que tiene productos o soluciones más avanzadas. Pero no es IA todo lo que parece, igual que no todo lo que nos venden como light en el supermercado es realmente light. La misma analogía la podríamos hacer con decenas de productos que utilizan algún tipo de reclamo que no es realmente cierto o que lo es solo parcialmente. Eso no quita que cada vez más organizaciones utilicen IA y que su uso vaya a incrementarse en el futuro.
Podemos definir la IA como una disciplina que trata de crear máquinas inteligentes que imiten la inteligencia humana, total o parcialmente. Esto, traducido en acciones concretas nos lleva a que para considerar una máquina inteligente, ésta tiene que ser capaz de recoger o absorber datos, interpretar y aprender de estos datos, y aplicar estos aprendizajes para llevar a cabo acciones.
Según el alcance, podemos decir que hay dos tipos de IA: la específica y la general. La específica es aquella en la que un sistema se dedica a ejecutar acciones para resolver un problema concreto, pero no sabe nada más allá de ese problema concreto. El reconocimiento facial, tan presente en las conversaciones del sector de las seguridad es un tipo de IA específica, pues se dedica únicamente a encontrar caras que coincidan con otras caras. Lo mismo podemos decir de casi cualquier analítica de vídeo del sector de la seguridad, pues son concretas a detectar algún tipo de objeto, persona o evento.
La general es aquella que busca dotar a la máquina de una capacidad de razonamiento similar a la de un humano. Para saber si una IA es general, podemos hacer diferentes tests, siendo el más conocido el Test de Turing, creado por Alan Turing en 1950.
Dicho esto, hay otros términos que nos pueden llevar a confusión como son Machine Learning (ML) y Deep Learning (DL). Estas son subáreas de la IA. El Machine Learning es una sub-área de la IA, y el Deep Learning es una sub-área del Machine Learning. La figura de abajo nos lo muestra gráficamente en un diagrama de Venn[3].
Nos queda entonces por saber qué hay dentro de la IA que queda fuera del ML. Aquí tendríamos una IA más básica, que utilicemos para resolver u optimizar problemas de manera generalmente matemática. E.g.: un algoritmo que resuelve sudokus es una forma de IA básica. No aprende, sino que sabe exactamente qué condiciones ha de cumplir cada número que ponga en el sudoku para que sea correcto, y lo que tiene que hacer es probar las diferentes combinaciones que le den el sudoku completo. Aplicado a un problema de una empresa real, podemos pensar en operadores logísticos que utilicen el algoritmo de Dijkstra para optimizar sus rutas de distribución[4], pues no deja de ser un problema matemático de optimización.
El Machine Learning (ML) es el tipo más común de IA. Permite a una máquina aprender y mejorar sus acciones en base a datos, sin ser específicamente programada para ello. Hay cuatro tipos de ML:
Ahora que sabemos en qué consiste el Machine Learning, debemos entender cómo valorar un algoritmo que haga uso de ML. Que use ML no quiere decir que los resultados sean buenos ni que todos los algoritmos o aplicaciones obtengan los mismos resultados.
Para esta evaluación podemos usar 4 métricas cuantitativas[6]:
En el sector de la seguridad, podemos pensar en casos como el reconocimiento facial de personas en busca y captura, donde detener a la persona incorrecta puede acarrear un daño a la persona incorrectamente detenida, además de un gran impacto reputacional por cometer semejante error.
Esta métrica aplicada al sector de la seguridad es importante en casos como por ejemplo la intrusión en un robo. No hacer la detección puede acarrear grandes pérdidas económicas. O peor aún, no detectar la intrusión en un sabotaje de una infraestructura crítica.
Las redes neuronales son sistemas inspirados en el cerebro de un ser vivo. Se componen de nodos conectados entre sí que hacen las veces de neuronas artificiales.
Volviendo al origen de la IA, los científicos de la época concebían el cerebro humano de manera digital, funcionando a base de impulsos eléctricos binarios. Partiendo de ese concepto Frank Rosenblatt concibió el perceptrón en 1958, una suerte de neurona artificial.
El funcionamiento del perceptrón se reduce a recibir una información, procesarla, y emitir un resultado. Más concretamente como sigue[7]:
Una red neuronal es un conjunto de nodos conectados entre sí, por capas. La estructura sería la siguiente[8]:
Las redes neuronales son usadas tanto en ML como en DL, con diferencias entre cada uno de ellos. En ML se usan redes neuronales fully connected con hasta 3 capas intermedias. Esto significa que cada nodo de una capa está conectado a todos los nodos de la siguiente capa, como muestra la siguiente imagen.
En DL ya hablamos de mayor número de capas intermedias[9]. Además en DL entran en escena las redes convolucionales y las recurrentes, que añaden un nivel más de complejidad al sistema. Las redes fully connected se pueden usar en DL, pero tienen limitaciones. Para tratar imágenes donde tenemos gran número de inputs y características, las redes convolucionales son el camino a seguir.
La estructura de las redes neuronales descrita la podemos plasmar en una fórmula matemática que quedaría así:
Trabajaremos con un ejemplo para verlo más claro. Tengo que decidir si comprarme un patinete eléctrico para mis desplazamientos habituales por la ciudad. Para esto, tenemos que tener en cuenta una serie de factores:
Por simplicidad, los tomaremos como binarios, cero o uno. Entonces, tendríamos los siguientes datos de entrada:
Estos 3 factores tienen diferente importancia para mí, y eso tiene que estar reflejado en la red neuronal. Para eso sirven los pesos, que quedarían así:
Por último establecemos el sesgo b que marca el umbral para tomar decisiones. Le asignamos un valor de 3, por lo que
Ahora que tenemos todos los datos podemos introducirlos en la fórmula y calcular el resultado:
Este resultado lo usamos en la fórmula de activación, que sería la siguiente:
Como hemos tenido que y=1, con esta entrada de datos el nodo se habría “activado”, pasando los datos a los nodos en la siguiente capa de la red. De no haberse activado, la iteración de esa entrada de datos habría parado ahí. Cada capa tiene una función de activación diferente, por lo que los resultados en cada nodo pueden ir variando.
Cuando la red hace esto con todos los datos y a través de toda la red, obtiene un resultado final, que es lo que estamos buscando.
Cuando hablamos de las redes neuronales y la posibilidad de analizar cualquier imagen y detectar cualquier objeto o evento, entra en juego la fase de entrenamiento. El entrenamiento es un proceso mediante el cual se buscan los pesos adecuados para la red que nos permiten obtener la salida deseada para una entrada determinada. Este proceso de optimización lo logramos proveyendo de datos a la red.
Para entrenar una red neuronal necesitamos un conjunto de datos, el dataset, que contiene un set de datos de entrenamiento y otro de datos de validación. Es decir, con una parte de los datos entrenamos y con la otra verificamos que el entrenamiento ha sido efectivo.
Se trata de un proceso iterativo en el cual pasamos cada dato del dataset hacia delante y posteriormente pasamos hacia detrás el error producido, forward propagation y backpropagation:
En el proceso anterior asumimos que el dataset es idóneo, pero esto no siempre es así. Un mal dataset puede hacer que la red dé peores resultados después de entrenarla. En el sector de la seguridad no siempre podemos conseguir buenas imágenes para los datasets antes de desplegar la solución o de tener imágenes del lugar con las que entrenar, y esto complica el entrenamiento de las redes neuronales.
Una vez tenemos imágenes del lugar disponibles, crear datasets y mejorar los resultados es cuestión de tiempo. De hecho, entrenar las redes con imágenes específicas del lugar a analizar hará que el entrenamiento sea a medida de ese sitio.
Las redes neuronales tienen obstáculos y retos que superar para avanzar. Entre ellos:
En el futuro veremos mejoras incrementales en cada uno de estos puntos, facilitando el avance de la IA, aunque ya hay voces que hablan de cambios significativos con la llegada de la computación cuántica. Veremos qué nos depara el futuro y seguiremos trabajando para proveer las mejores soluciones de analítica.
Cuando una tecnología alcanza tal popularidad como sucede con la IA, el hype hace que tendamos a simplificar el tema. Siendo un tema tan complejo vale la pena indagar un poco más y no quedarnos en la superficie.
Cuando evaluamos una solución para nuestra organización que nos ayude a mejorar nuestra seguridad y nuestra operativa, vale la pena ir un paso más allá de si tiene o no tiene IA. ¿Funciona con ML, con DL o es algo más básico? ¿Qué métricas nos ofrecen para evaluar su rendimiento? ¿Cuántos canales puede analizar manteniendo ese rendimiento? ¿Puede analizar vídeo de cualquier cámara? ¿Es posible customizar de alguna manera? ¿Con qué datasets ha sido entrenada? ¿Qué equipo de I+D hay detrás? Podemos hacernos multitud de preguntas al respecto.
Estamos en un punto del desarrollo de este tipo de tecnología que el avance es muy rápido, y si queremos rentabilizar nuestra inversión en este tipo de soluciones, vale la pena que nos aseguremos de que nos dan el resultado que queremos. No estamos comprando una caja negra, sino algo que tiene que resolver nuestra necesidad. En LANACCESS estamos siempre dispuestos a conversar y asesorar sobre estos temas, al igual que aquellos distribuidores e integradores que hacen un trabajo exhaustivo en ofrecer un valor real con esta tecnología. Usémoslos.
[1] History of Artificial Intelligence, JavaTPoint.
[2] History of Artificial Intelligence, Rebeca Reynoso, 2021.
[3] The difference between artificial intelligence, machine learning and deep learning, Mark Robbins, 2020.
[4] Application of Dijkstra Algorithm in Logistics Distribution Lines, Liu Xiao-Yan, Chen Yan-Li, 2010
[5] Psychology in AI: How Pavlov’s Dogs Influenced Reinforcement Learning, Anirudh V. K., 2019
[6] Artificial Intelligence AI Primer – Part II, Christopher Seifel, 2021.
[7] Artificial Intelligence Primer – Part III, Christopher Seifel, 2021.
[8] Deep Learning with Python, 2nd Edition, François Chollet, 2021.
[9] AI vs. Machine Learning vs. Deep Learning vs. Neural Networks: What’s the Difference?, IBM, 2020.