Resumen Tema 1
Resumen Tema 1
Resumen Tema 1
Tema 1
Para definir lo que es la Inteligencia Artificial tendríamos que partir de una definición
precisa de “Inteligencia”, lo que daría para un debate filosófico aún no resuelto.
Siendo prácticos y respetando los avances realizados hasta ahora, podemos definir la IA
como la ciencia encargada de construir sistemas que i) piensan como humanos, ii) piensan
racionalmente, iii) actúan como humanos y iv) actúan racionalmente.
• Actuar como humanos. Para comprobar si una máquina actúa como un humano podemos
aplicar el test de Turing. Esta prueba plantea una serie de preguntas por escrito que una
maquina deberá responder también por escrito; si la máquina responde a las preguntas y la
persona que plantea las preguntas no es capaz de identificar si dichas respuestas vienen de
un humano o una máquina, entonces la máquina habrá pasado el test de Turing. Para superar
el test de Turing, una máquina debería contar con algunas capacidades como son el
Procesamiento de Lenguaje Natural para comunicarse con el humano, Representación del
conocimiento para almacenar lo que sabe, Razonamiento automático para responder a
preguntas y extraer nuevas conclusiones, Aprendizaje Automático para adaptarse a nuevas
circunstancias, Visión por Computador y Reconocimiento del Habla para percibir el mundo
que le rodea y Robótica para manipular objetos. Dichas disciplinas están conseguidas hoy en
día en mayor o menor medida, pero aún están incompletas.
• Pensar como humanos. Para decir que un programa piensa como un humano, primero
debemos de saber cómo piensan los humanos. De hecho, esta pregunta ha dado lugar a un
nuevo campo: la Ciencia Cognitiva, que trata de unir los modelos informáticos de la IA con
las técnicas experimentales de la psicología para construir teorías sobre la mente humana
que sean precisas y comprobables.
• Pensar racionalmente. Es decir, llegar a conclusiones lógicas partiendo de una serie de
hechos y usando un conjunto de reglas. Así, la llamada doctrina logicista dentro de la
inteligencia artificial confía en poder basarse en esos programas para crear sistemas
inteligentes. Sin embargo, el uso de la lógica tal y como la conocemos requiere un
conocimiento del mundo que sea certero, algo que en la práctica es imposible de conseguir.
Por ejemplo, conocemos perfectamente las reglas que rigen el juego del Ajedrez, pero no
conocemos bien las que rigen las guerras entre países.
• Actuar racionalmente. Podemos identificar un comportamiento racional como aquel que
hace lo correcto, o lo que es lo mismo, maximiza el objetivo (meta) con la información que
hay disponible o, cuando hay incertidumbre, obtiene el mejor resultado posible. En el
contexto de la IA, podemos modelar este comportamiento racional mediante un enfoque de
agentes que actúen de manera autónoma, perciban su entorno, persistan durante un tiempo
prolongado, se adapten al cambio y creen y alcancen metas. Este enfoque sigue presentando
el problema de la incertidumbre en el mundo real, seguido por la complejidad de las metas a
modelar donde la racionalidad perfecta no es posible
Los conceptos anteriores servirían para definir una IA de tipo generalista, capaz de pensar
como un humano. Este tipo de IA suele decirse que presenta una inteligencia general o fuerte. Como
seres humanos, somos capaces de aprender de diversas experiencias e interacciones en el mundo y
aplicar esa comprensión de un problema a otro. Por ejemplo, si de niño sentías dolor al tocar algo
caliente, puedes extrapolar y saber que otras cosas calientes pueden hacerte daño. Sin embargo, la
inteligencia general en los humanos es algo más que razonar algo como las cosas calientes pueden
ser dañinas. La inteligencia general abarca la memoria, el razonamiento espacial a través de medios
visuales, el uso del conocimiento y mucho más. Lograr la inteligencia general en una máquina
parece una hazaña improbable a corto plazo, pero los avances en la computación cuántica, el
procesamiento de datos y los algoritmos de IA podrían hacerlo realidad en el futuro.
Sería posible reutilizar algunos de los conceptos introducidos en las inteligencias fuertes
para resolver problemas de dominios más concretos y acotados, dando lugar a una IA que presente
una inteligencia débil o limitada. Por lo general, estos sistemas no pueden resolver un problema en
un determinado contexto y aplicar esa misma comprensión en otro. Un sistema desarrollado para
entender las interacciones de los clientes y el comportamiento de gasto, por ejemplo, no sería capaz
de identificar gatos en una imagen. Normalmente, para que algo sea eficaz en la resolución de un
problema, tiene que estar bastante especializado en el dominio del problema, lo que dificulta su
adaptación a otros problemas.
Sin embargo, se pueden combinar varios de estos sistemas de IA débil para crear algo mayor
que se asemeje a una IA fuerte. Un ejemplo sería un asistente de voz. Este sistema puede entender el
lenguaje natural, que por sí solo es un problema acotado, pero mediante la integración con otros
sistemas de inteligencia débil, como las búsquedas en la web y las recomendaciones personalizadas
de música, puede mostrar cualidades de una IA fuerte.
Una vez introducidas las bases que conforman la IA, podemos definir brevemente la
evolución histórica que ha sufrido para situarnos en contexto:
• 1943
Surgen las redes neuronales artificiales en un artículo de investigación por McCulloch y
Pitts, quienes idearon un modelo matemático sencillo y demostraron cómo podía utilizarse para
calcular funciones lógicas arbitrarias. Gran parte de los primeros trabajos se centraron en
comprender las propiedades matemáticas de estas redes, ya que los computadores de la época no
eran lo suficientemente potentes como para realizar tareas de interés.
• 1956
Se lleva a cabo un seminario en la universidad Dartmouth College organizado por John
McCarthy donde se acuña el término Inteligencia Artificial por primera vez.
• 1966
A pesar del futuro prometedor que tenía la IA por delante (y las altas expectativas), algunas
tareas como la traducción entre idiomas fue un fracaso total, lo que llevó a recortes en los
programas de financiación, lo que llevaría al primer invierno de la IA. Algunos problemas que
ocasionaron esto fueron las limitadas capacidades de los computadores de la época y la complejidad
de los problemas que se querían resolver mediante IA, los cuales requerían además una ingente
cantidad de datos.
• 1969
Se publica un libro que exploraba las propiedades matemáticas de los perceptrones (modelos
lineales) y donde se demostraba que ni siquiera eran capaces de resolver problemas simples como
una puerta lógica XOR (OR exclusiva). Debido a esto, el interés en la investigación de redes
neuronales se ve dramáticamente reducido.
• 1970- 80s
Surgen los sistemas basados en el conocimiento con el objetivo de permitir la codificación
del conocimiento directamente en aquellos sistemas inteligentes para que tengan toda la
información necesaria, reduciendo así los costes computacionales de rendimiento. Los
investigadores se enfocaron en construir sistemas más acotados que se centraran en dominios
concretos, dando lugar a los llamados sistemas expertos. Algunos ejemplos de estos sistemas serían
DENDRAL (inferencia la estructura molecular a partir de la espectrometría de masas) y MYCIN
(diagnóstico de infecciones en la sangre y recomendación de antibióticos), entre otros.
• 1986
En esta época se re-descubre el algoritmo de propagación hacia atrás de errores o
backpropagation en inglés, popularizándose así el entrenamiento de redes neuronales multi-capa y
devolviendo de nuevo el interés investigador a las redes neuronales, perdido en 1969.
• 1987
Aparecen las primeras aplicaciones que tienen un impacto en la industria. Sin embargo, la
tecnología existente se enfrentó a las limitaciones computacionales de la época y fracasó de nuevo a
la hora de abarcar problemas más complejos que requerían modelar más cantidad de incertidumbre
a partir de un considerable esfuerzo manual para crear las reglas necesarias, las cuales eran difíciles
de mantener a largo plazo. Debido a un exceso de promesas y una falta de cumplimiento, el campo
de la IA volvió a colapsar, dando lugar al segundo invierno de la IA.
• 1989
Yann LeCun construye un sistema basado en redes neuronales para reconocer dígitos
escritos a mano, convirtiéndose en uno de los primeros casos de éxito de aplicación de las redes
neuronales, que además fue utilizado por el servicio de correo postal de los Estados Unidos (USPS)
para reconocer códigos postales.
• 1990- 2000s
En estos años es donde aparecen los enfoques modernos de aplicación de la IA basados en
probabilidad, estadística e incertidumbre. Se producen avances y mejoras técnicas en las tecnologías
existentes, y surge el concepto de big data para referirnos a la producción de grandes conjuntos de
datos (datasets) del orden de magnitud de, por ejemplo, trillones de palabras en un texto, billones de
imágenes, y billones de horas de audio y vídeo, entre otros.
• 2010 – Actualidad
En esta época se produce el punto de inflexión real en el ámbito de la IA. Con el auge de la
computación debido a las capacidades técnicas de las GPUs y los enormes datasets existentes, como
ImageNet (2009), la IA a través de las redes neuronales y el aprendizaje profundo (deep learning)
había empezado a popularizarse.
3 Campos de Aplicación
Como hemos visto, la IA es un campo de estudio joven y en constante evolución. Tanto es
así, que continuamente se encuentran nuevos campos de aplicación donde la sociedad puede
beneficiarse de la IA; donde haya datos y problemas que resolver, existirán aplicaciones de la IA
potenciales. Así, las interacciones entre los seres humanos y las nuevas necesidades exigidas por las
personas e industrias, la IA puede aplicarse de forma innovadora para resolver problemas del
mundo real. Vamos a ver en esta sección algunas de las principales aplicaciones de la IA en la
industria.
3.1 Agricultura. Cultivo óptimo.
La agricultura, aunque pueda parecer alejado del mundo de la IA, plantea problemas y retos
que pueden resolverse aplicando tecnologías de IA: los agricultores tienen que ser capaces de
cultivar productos de calidad para el consumo masivo de forma económica.
Muchos agricultores cultivan a escala comercial para que podamos comprar frutas y
verduras en las tiendas con comodidad. Los cultivos crecen de forma diferente según el tipo de
cultivo, los nutrientes del suelo, el contenido de agua del suelo, las bacterias del agua y las
condiciones meteorológicas de la zona, entre otras cosas. El objetivo es cultivar la mayor cantidad
posible de productos de alta calidad dentro de una temporada, ya que determinados cultivos suelen
crecer bien sólo durante determinadas estaciones.
Los agricultores y otras organizaciones agrícolas llevan recopilando datos sobre sus
explotaciones y cultivos desde hace años. Con esos datos, podemos aprovechar la tecnología para
encontrar patrones y relaciones entre las variables del proceso de cultivo e identificar los factores
que más contribuyen al éxito del crecimiento. Además, con los sensores digitales actuales, podemos
registrar en tiempo real las condiciones meteorológicas, los atributos del suelo, las condiciones del
agua y el crecimiento de los cultivos. Estos datos, combinados con algoritmos inteligentes, pueden
proporcionar recomendaciones y ajustes en tiempo real para optimizar el crecimiento de los
cultivos.
3.2 Banca. Detección de fraude.
La banca ha evolucionado durante años para ofrecer diferentes opciones para guardar dinero,
invertir dinero y realizar pagos. Una cosa que no ha cambiado es la creatividad de la sociedad para
encontrar nuevas formas de engañar al sistema. Uno de los mayores problemas (no solo de la banca,
sino de de la mayoría de instituciones financieras, como las aseguradoras) es el fraude.
Gracias a la gran cantidad de datos disponible sobre las transacciones realizadas, podemos
identificar, en tiempo real, patrones de transacciones específicos al comportamiento de gasto de un
individuo que pueden estar fuera de lo normal. Estos datos ayudan a ahorrar enormes cantidades de
dinero a las instituciones financieras y protegen a los consumidores desprevenidos de los robos.
Utilizando la IA, podemos identificar y bloquear posibles ataques a los servidores. Algunas
grandes empresas de Internet almacenan datos sobre la forma en que determinadas personas
interactúan con su servicio, incluidos los identificadores de sus dispositivos, la geolocalización y la
forma de uso; cuando se detecta un comportamiento inusual, las medidas de seguridad limitan el
acceso. Algunas empresas de Internet también pueden bloquear y redirigir el tráfico malicioso
durante un ataque de denegación de servicio distribuido (DDoS), que consiste en sobrecargar un
servicio con peticiones falsas en un intento de hacerlo caer o impedir el acceso de los usuarios
auténticos. Estas peticiones no legítimas pueden ser identificadas y redirigidas para minimizar el
impacto del ataque mediante el conocimiento del comportamiento de los usuarios, los sistemas y la
red.
3.4 Atención Sanitaria. Diagnóstico de pacientes.
El sector de la logística es un enorme mercado formado por diferentes tipos de vehículos que
entregan diversos tipos de mercancías en distintos lugares, con diferentes exigencias y plazos.
Imaginemos la complejidad de la planificación de entregas de un gran portal de comercio
Esta problemática es similar al problema del viajante de comercio: un vendedor tiene que
visitar varios lugares para completar su trabajo, y el objetivo es encontrar la distancia más corta
para realizar esta tarea. Los problemas de logística son similares, pero suelen ser inmensamente más
complejos debido al entorno cambiante del mundo real. Gracias a la IA, podemos encontrar rutas
óptimas entre distintas ubicaciones en términos de tiempo y distancia. Además, podemos encontrar
las mejores rutas en función de los patrones de tráfico, los bloqueos de las obras e incluso los tipos
de carreteras en función del vehículo utilizado. Además, podemos calcular la mejor manera de
cargar cada vehículo de tal forma que se optimice cada entrega.
3.6 Telecomunicaciones. Optimización de redes.
Desde que los ordenadores personales y domésticos empezaron a estar disponibles, los
juegos han sido un reclamo para la venta de computadoras. Los juegos fueron muy populares en los
primeros años de la historia de los ordenadores personales. Si pensamos en el pasado, podemos
recordar las máquinas recreativas, los televisores y los ordenadores personales con capacidades de
entretenimiento. Los juegos de ajedrez, backgammon y otros han sido dominados por las máquinas
de IA. Si la complejidad de un juego es lo suficientemente baja, un ordenador puede encontrar
potencialmente todas las posibilidades y tomar una decisión basada en ese conocimiento más rápido
que un humano. Recientemente, un ordenador fue capaz de derrotar a campeones humanos en el
juego de estrategia Go. El Go tiene reglas sencillas para el control del territorio, pero tiene una
enorme complejidad en cuanto a las decisiones que hay que tomar para un escenario ganador. Un
ordenador no puede generar todas las posibilidades para vencer a los mejores jugadores humanos
porque el espacio de búsqueda es muy grande; en su lugar, se necesita un algoritmo más general que
pueda "pensar"de forma abstracta, elaborar estrategias y planificar movimientos hacia un objetivo.
En la pintura, cada artista tiene su propia manera de expresar el mundo que le rodea, al igual
que en la música a la hora de componer una canción. En ambos casos, la calidad del arte no puede
medirse cuantitativamente, sino cualitativamente (por lo que la gente disfruta de la obra). Los
factores que intervienen son difíciles de entender y captar; el concepto se rige por la emoción.
Existen muchos proyectos de investigación que pretenden crear una IA que genere arte. El
concepto implica la generalización; un algoritmo tendría que tener un conocimiento amplio y
general del tema para crear algo que se ajuste a esos parámetros. Una IA de Van Gogh, por ejemplo,
tendría que entender toda la obra de Van Gogh y extraer el estilo y la sensación para poder aplicar
esos datos a otras imágenes.
Los algoritmos de búsqueda son útiles para resolver problemas en los que se requieren
varias acciones para alcanzar un objetivo, como encontrar un camino a través de un laberinto o
determinar el mejor movimiento a realizar en un juego. Los algoritmos de búsqueda evalúan los
estados futuros e intentan encontrar el camino óptimo hacia el objetivo más valioso. Normalmente,
tenemos demasiadas soluciones posibles para forzar cada una de ellas. Incluso los espacios de
búsqueda más pequeños pueden suponer miles de horas de cálculo para encontrar la mejor solución.
Los algoritmos de búsqueda proporcionan formas inteligentes de evaluar el espacio de búsqueda y
se utilizan en ámbitos tan diversos como, por ejemplo, motores de búsqueda, aplicaciones de mapas
e incluso en videojuegos.
Para representar el espacio de búsqueda utilizado por un algoritmo de búsqueda se suelen
utilizar estructuras de datos como grafos (utilizando matrices de adyacencia o listas de aristas) y
árboles, principalmente estos últimos.
Los algoritmos de búsqueda pueden clasificarse en a) búsqueda no informada y b) búsqueda
informada.
Búsqueda no informada
En este tipo de algoritmos, el algoritmo de búsqueda no dispone de información adicional
sobre el dominio del problema, más allá de la representación del problema (comúnmente en forma
de árbol o grafo). Es decir, conocemos la estructura, pero no sabemos si unos nodos son mejores
que otros.
Las dos formas más comunes para buscar en un árbol o grafo son la búsqueda en anchura
(BFS) y la búsqueda en profundidad (DFS), respectivamente: la búsqueda en anchura explora todas
las opciones a una profundidad determinada antes de pasar a opciones más profundas en el árbol; la
búsqueda en profundidad explora un camino específico desde el principio hasta que encuentra un
objetivo a la máxima profundidad.
En la siguiente figura se muestra un ejemplo de ambos tipos de búsqueda:
Búsqueda Informada
A diferencia de la búsqueda no informada, los algoritmos de búsqueda informada disponen
de algún contexto del problema específico que están resolviendo. Las heurísticas son una forma de
expresar este contexto, mediante una regla o conjunto de reglas usadas para evaluar un estado;
pueden ser usadas para definir criterios que deban cumplir los estados o para medir el rendimiento
de un estado concreto. En resumen, las heurísticas son medidas aproximadas que se utilizan cuando
no existe un método para encontrar la solución óptima a un problema.
Otro tipo de algoritmos evolutivos son las inteligencias de enjambre (swarm) donde grupos
de individuos aparentemente tontos muestran un comportamiento inteligente. La optimización por
colonias de hormigas y la optimización por enjambres de partículas son dos algoritmos populares de
este tipo.
4.3 Aprendizaje automático (Machine learning).
• Aprendizaje supervisado
Consiste en entrenar modelos con algoritmos cuando los datos de entrenamiento tienen
resultados conocidos para una determinada pregunta como, por ejemplo, identificar el tipo de fruta
si tenemos un conjunto de datos que incluye el peso, el color, la textura y el nombre de la fruta para
cada caso.
• Aprendizaje no supervisado
Trata de descubrir relaciones y estructuras ocultas dentro de los datos que nos guían a la
hora de formular las preguntas relevantes sobre el conjunto de datos. Por ejemplo, puede encontrar
patrones en las propiedades de frutas similares y agruparlas en consecuencia, lo que puede darnos
una idea de las preguntas exactas que queremos hacer a los datos. Estos conceptos y algoritmos nos
ayudan a crear una base que nos permita desarrollar algoritmos más avanzados en el futuro.
los pasos anteriores. Algunas de las recomendaciones que se suelen seguir en este caso
serían i) recopilar más datos, ii) preparar o adaptar los datos usando otras técnicas, iii)
seleccionar otras características de los datos, o iv) usar un algoritmo diferente para entrenar
el modelo como, por ejemplo, árboles de decisión en caso de que nos enfrentemos a
problemas de clasificación en lugar de regresión.
Para configurar un perceptrón se establecen los pesos de todas sus entradas. Y su función de
activación. El perceptrón sumará los valores de todas sus entradas multiplicadas por sus respectivos
pesos. La suma obtenida se le dará como entrada a la función de activación, y ésta proporcionará la
salida de la neurona o perceptrón. Además, puede haber una entrada opcional con un valor fijo de
offset o desplazamiento, que se añadirá a la suma. Esto se usa para ajustar el rango de valores antes
de pasar por la función de activación.
Aunque el perceptrón es útil para resolver problemas lineales, no puede resolver problemas
no lineales por si solo; si no es posible clasificar el conjunto de datos del que partimos mediante una
línea recta, el perceptrón fallará. Es por ello que las ANNs emplean múltiples perceptrones que
trabajan juntos, distribuidos por capas, es posible resolver problemas no lineares de varias
dimensiones. Esto es lo que se llama una Red Neuronal.
El aprendizaje profundo (del inglés, deep learning), que se deriva del aprendizaje automático,
es una familia más amplia de técnicas y algoritmos que se utilizan para lograr una inteligencia
limitada (débil), pero con el objetivo de alcanzar una inteligencia general (fuerte). Concretamente,
el aprendizaje profundo es el nombre que reciben los algoritmos que utilizan ANNs en diferentes
arquitecturas para lograr un objetivo. El aprendizaje profundo suele implicar que el enfoque intenta
resolver un problema de forma más general, como el razonamiento espacial, o que se aplica a
problemas que requieren más generalización, como la visión por computador y el reconocimiento
del habla. El aprendizaje profundo también se basa en el aprendizaje supervisado, el aprendizaje no
supervisado y el aprendizaje por refuerzo.