Texto Semana 1
Texto Semana 1
Texto Semana 1
Otros autores, lo remontan al año 1950 cuando un conocido matemático Inglés, llamado
Alan Turing publicó un artículo en la revista Mind, titulado “Computing Machinery and
Intelligence”, en el que reflexionaba sobre el concepto de inteligencia artificial y establecía
lo que luego se conocería como el test de Turing. Un test muy conocido y famoso en el
mundo de la Inteligencia Artificial. 1
Lo cierto es que aún en la década de 1950, el término Inteligencia Artificial (tal como lo
conocemos hoy) no existía. Recién se establece en el año 1956, en una conferencia muy
famosa, donde se abordó formalmente el tema de la “Inteligencia Artificial”. De esa
conferencia que se llamó “Dartmouth Summer Research Project on Artificial Intelligence”
participaron grandes personalidades de la historia de la informática y quienes hoy son
llamados “Los padres de la Inteligencia Artificial”. Algunos de ellos, los mas reconocidos,
sobre todo por los libros y publicaciones que realizaron a lo largo de la historia son los
investigadores: McCarthy, Marvin Minsky, Nathaniel Rochester y Claude E. Shannon. Estos
investigadores fueron muy importantes porque establecieron las bases de la inteligencia
artificial como un campo independiente dentro de la informática.
1 NOTA: Existe una película que se llama “Enigma”, la misma trata sobre la vida de Alan Turing, y justamente
cómo con dispositivos analógicos logró construir durante la segunda guerra mundial, una especie de
inteligencia artificial, para descifrar los mensajes encriptados que se enviaba el ejercito Alemán. Con esa
tecnología logró un gran avance científico pero también un gran avance para la humanidad. La película
tiene algunos años, pero se encuentra fácilmente en las plataformas de películas y series, por si no la vieron.
La vida de Alan Turing es muy interesante.
De 1957 a 1974, la Inteligencia Artificial floreció. Las computadoras podían almacenar más
información y ser más rápidas, más baratas y accesibles. Todavía no existían las
computadoras personales, pero sí comenzaron los primeros algoritmos de aprendizaje
automático. De todas formas, cabe acotar que todo lo relacionado a la inteligencia artificial
en los años sesenta, como tal, no tuvo muchos éxitos ya que requería demasiada inversión
de dinero para aquel entonces, y la mayoría de las tecnologías eran propias de grandes
centros de investigación. En los años 70’s a 80’s se lograron algunos avances significativos
en una de sus ramas llamada Sistemas Expertos, con la introducción de algunos lenguajes
de programación como PROLOG o LISP.
Y brinda una definición: “Disciplina científica que se ocupa de crear programas informáticos
que ejecutan operaciones comparables a las que realiza la mente humana, como el
aprendizaje o el razonamiento”.
Marvin L. Minsky: “La IA es la ciencia de hacer máquinas que hagan cosas que realizadas
por el hombre requieran uso de inteligencia”.
Alan Turing, en el año 1950, presentó un trabajo el cual contenía una especie de “Prueba”
que se realizaba con el fin de determinar cuando la inteligencia artificial es comparable con
el razonamiento humano. Esa prueba, es el TEST DE TURING.
2 Una cuestión muy curiosa sobre este TEST, es que se realizan en todo el mundo, certámenes donde se
otorgan premios a quienes puedan “pasar” con mayores exigencias este TEST DE TURING. Uno de los
certámenes mas conocidos es el de la Universidad Exeter (https://loebner.exeter.ac.uk).
Este agente ha sido definido como un sistema hardware o software que es autónomo,
interactivo y reactivo a su entorno e incluso a otros agentes. A su vez, puede ser proactivo
al tomar la iniciativa en un comportamiento dirigido hacia objetivos.
Un “agente inteligente” es una entidad autónoma que actúa sobre un entorno utilizando
sensores y actuadores para lograr objetivos. Es decir, puede aprender del
entorno para lograr sus objetivos.3
Las siguientes son las cuatro reglas principales para un agente de IA:
Los agentes se los puede clasificar de diversas formas, una de las clasificaciones
tradicionales es en agentes naturales (biológicos) y los agentes artificiales (creados por el
ser humano).
Dentro de los agentes artificiales, que son los que nos interesan en nuestro caso, se pueden
clasificar en:
3Un “entorno” es todo lo que rodea al agente en el mundo, pero no es parte de un agente
en sí. Se puede describir como una situación en la que está presente un agente.
Es donde el agente vive, opera y le proporciona algo para sentirlo y actuar sobre él.
Por otro lado, tenemos a los Agentes de software (Softbots): el agente de software puede
tener pulsaciones de teclas, el contenido del archivo como entrada sensorial y actuar sobre
esas entradas y mostrar la salida en la pantalla de una computadora. Los softbots son los
que cada día se incorporan más en las actividades diarias, por ejemplo, los chatbots en las
páginas web.
Otro ejemplo que está tomando mucha fuerza, son los softbots que operan realizando
transacciones comprando y/o vendiendo cualquier tipo de especie (acciones, divisas,
criptomonedas, etc).
Hasta aquí, hemos realizado un pasaje histórico de la Inteligencia Artificial, hemos visto las
definiciones elementales que subyacen al tema y nos dedicamos a brindar definiciones y
contextualizar en términos generales. Lo que seguramente el lector se esté preguntando,
es ¿cómo es posible que los algoritmos aprendan?. De eso nos ocuparemos a continuación.
Como se observa en la imagen, tanto el Machine Learning como el Deep Learning, son parte
(un subconjunto) de la Inteligencia Artificial. La Inteligencia Artificial como vimos
anteriormente, trata de programas que son diseñados con el fin de imitar la forma en la que
aprenden y razonan los seres humanos. Ahora para poder lograr eso, se requiere que se
conozcan y apliquen ciertos algoritmos que son capaces de cumplir con ese objetivo.
Digamos que tanto el Machine Learning como el Deep Learning forman parte de lo que
conocemos con Inteligencia Artificial, y dependiendo del problema que debamos resolver,
podremos aplicar algoritmos de Machine Learning, o de Deep Learning (o ambos) para
resolver el problema y cumplir el objetivo. Para poder analizar cada uno es necesario ir por
partes.
Dentro del Machine Learning existen una gran variedad de algoritmos, apuntando a resolver
distintas problemáticas, pero a grandes rasgos el aprendizaje automático se puede clasificar
en tres grandes grupos. La forma en la que estos algoritmos aprenden puede estar dado
por:
1. Para la segmentación de los clientes: Uno de los casos típicos de aplicación es para
realizar “campañas” dirigidas y específicas en el mundo de los negocios. Esto puede
2. Ayuda en línea: La mesa de ayuda en línea es una de las aplicaciones que se puede
convertir en una de las más útiles de la inteligencia artificial en los negocios. Al visitar
un sitio web, se suele encontrar un chatbot que se ha abre automáticamente y en
donde se pueden hacer consultas sobre el contenido del sitio. Pero no solo eso, sino
que en los últimos tiempos, estas tecnologías han crecido tanto, que el chatbot, no
sólo se utiliza para brindar ayuda en línea, sino que el bot pasó a transformarse en
una especie de “Asistente virtual”. Ese asistente, opera las 24hs del dia, los 365 del
año y puede realizar operaciones de atención al cliente, utilizando lenguaje natural
(Inteligencia Artificial), puede realizar transacciones (por ejemplo, registrar un
reclamo, o realizar una compra). También puede realizar encuestas o mismo, se
utiliza para realizar “Recuperos de Deuda”, es decir ayuda a mejorar las cobranzas.
En definitiva, optimiza los procesos de negocio, la atención y customer sat.
4 Los Científicos de Datos (data scientists) son personas que tienen un perfil muy particular: deben saber
mucho de estadística, de manipulación de datos, de matemática, y por supuesto deben saber mucho de
programación. Son uno de los perfiles más demandados en la actualidad en todas partes del mundo.
Un conjunto de datos de alta calidad es la forma más segura de entrenar un modelo de gran
eficacia6. La velocidad a la que se repite este ciclo es lo que determina sus costos;
afortunadamente, existen herramientas que pueden ayudar a acelerar el ciclo sin sacrificar
la calidad.
5 Las nuevas tecnologías son excelentes. Tienen capacidades de mejorar la rentabilidad de las empresas, la
satisfacción de los consumidores, pero así como se implementa la tecnología para cuestiones que mejoran la
vida de las personas y de una sociedad, también se puede utilizar para causar daños. Los robos podrían ser
posibles daños, que son producidos por personas que con mucho conocimiento de tecnología, implementan
soluciones para realizar estafas. La ciber delincuencia ha crecido y evolucionado tanto que no puede dejarse
de lado. Es importante estar atentos y tomar medidas que garanticen la seguridad de nuestra empresa y de
nuestros clientes.
6 Recordemos que estos modelos funcionan muy bien sobre la base de datos históricos. Si los datos no son
verídicos, o no son reales, no tendrá sentido alguno la información que podamos extraer de allí.
Los datos
Implementación El modelo
La evaluación
Los datos para realizar un proyecto de Machine Learning, en general ya existen dentro de
una empresa. Si no existen, se deben generar, se deben almacenar y se deben procesar.
Para esto existen diversas técnicas de filtrado y manipulación de datos con la finalidad de
solucionar esos problemas.
Tercera fase, Evaluación: Una vez que obtenido un modelo, el cual ha aprendido de los
datos de entrenamiento, es hora de profundizar y ver qué tan bien podría funcionar con
datos nuevos, es decir, evaluar su eficacia.
Esto de alguna manera se logra utilizando un lote de “datos de prueba”, que por supuesto,
normalmente son extraídos de los datos originales.
En cuanto se tenga el modelo entrenado, se debe “ejecutar” y probar con algunas muestras
y observar el resultado del mismo. Esta es la mejor manera de encontrar si hay algún error
en el momento del entrenamiento, antes de ejecutar la evaluación en todo el conjunto de
prueba (llamado test set). También ayudará a ver si hay errores evidentes, como algún
etiquetado realizado de manera incorrecta.
Seguramente el lector luego de leer los párrafos anteriores se deberá estar preguntando
para sí mismo….¿cómo se hace para saber si un modelo arroja resultados que son
correctos?. Pues bien, una técnica simple de evaluar el resultado de un algoritmo de
machine learning, es la denominada “matriz de confusión”, normalmente usada en casos
de clasificación.
La matriz de confusión, que recordemos nos sirve para ver qué tan bueno es el resultado
de nuestro modelo, podría ser el la siguiente (a modo de ejemplo):
Clase Predicha
Positivo (Perro) Negativo (Gato)
Positivo (Perro) Negativo (Gato)
Positivo (Perro) 45 5
Clase Real
Negativo (Gato) 3 47
Por un lado, tenemos lo que se llama Clase Real. La clase real en este caso son los PERROS
(que asumimos como valores Positivos) y los GATOS (que asumimos como negativos).
También tenemos la CLASE Predicha que son los resultados que arroja el modelo que
entrenamos en su salida.
El modelo, podrá darnos valores Positivos (si determinó que la imagen es perro) o podrá
darnos Negativos (si determina que es gato).
Podemos ver que, en la matriz de confusión, los valores que fueron correctos y son
catalogados como valores “buenos”, son los valores que se dan en la diagonal tomando los
valores de 45 y 47. Mientras que la diagonal que tiene los valores 3 y 5 son los errores que
el modelo cometió.
Clase Predicha
Positivo Negativo
Positivo Verdadero Positivo Falso Negativo
Clase Real
Negativo Falso Positivo Verdadero Negativo
Donde los “Verdaderos” que están pintados de verde, nos dan una idea de que tan bien
acertó nuestro modelo.
Cuarta fase, Producción: El último paso del ciclo de vida del aprendizaje automático es la
implementación o puesta en producción, en donde se implementa el modelo en el sistema
del mundo real.
Para esto se debe “monitorear” la implementación con el fin de asegurar de que el modelo
funcione como se espera con los datos de prueba con respecto a las métricas de evaluación
Departamento de Educación a Distancia | ucema.edu.ar/on
como la velocidad de inferencia. Además, al usar el modelo en producción con frecuencia
pasarán datos nuevos a través del modelo que nunca se han probado. Es importante en
este punto, realizar una evaluación y profundizar en muestras específicas para analizar el
rendimiento del modelo en los datos nuevos. Por eso es que decimos que en términos
prácticos el proyecto nunca termina porque siempre se deben incorporar nuevos datos con
el fin de optimizar y mejorar la eficiencia del modelo y siempre ocurre en general que
debemos estar realizando algunos ajustes sobre los modelos para evitar fundamentalmente
sesgos o errores de clasificación.
El algoritmo tomará una suposición cada vez que vea una instancia de datos (por ejemplo,
una fotografía), y esa suposición se comparará con la respuesta correcta, la etiqueta o el
nombre. El acto de “supervisión”, entonces, es esa verificación de conjeturas con respuestas
correctas. Cuando el algoritmo hace una suposición errónea, se puede detectar y el
algoritmo en sí se puede ajustar para que prediga mejor. Para ello vimos anteriormente la
matriz de confusión. A todo esto, se lo llama aprendizaje del aprendizaje automático con
supervisión.
La regresión también utiliza modelos de datos etiquetados para predecir los valores de las
incógnitas que buscamos averiguar, siempre utilizando antecedentes históricos. Un
ejemplo de esto es la predicción de los precios de un nuevo producto basándose en
productos anteriores similares. También cuál puede ser la esperanza de vida para el año
2050.
Hay muchos casos de aplicación de la inteligencia artificial con modelos de regresión que
en el día a día nos puede ser de utilidad.
Regresión Lineal
Tomaremos el ejemplo de las horas de estudio Vs La nota del examen.
En el Eje Y tenemos las notas que se sacaron los alumnos que rindieron el examen.
En el Eje X tenemos las horas de estudio de cada uno de ellos.
Esa es la respuesta que trata de predecirse. Este modelo (en este caso) relaciona dos
variables y trata a partir de esta relación de estimar valores. Pero ¿cómo es esto posible?
La Lógica es bastante simple. Podríamos encontrar una recta (línea Roja) que siga la
distribución de esos puntos. Esa recta tendrá una fórmula que es la que todos conocemos
y=mx+b. Ese es el modelo del cual vamos a partir.
Por medio de diferentes métodos podríamos calcular la fórmula de la recta trazada en color
rojo.
Los algoritmos de Machine Learning, con aprendizaje automático pueden aplicar este tipo
de métodos para estimar valores como que el que analíticamente revisamos o incluso en
modelos más complejos, donde intervienen más variables (eso serían los casos de regresión
múltiple).
Otro ejemplo: supongamos que queremos saber si una entrada al algoritmo corresponde a
una fruta. Dado que en el aprendizaje no supervisado no existe ninguna categorización o
etiquetado previo de los datos, el modelo no tendrá idea del concepto de fruta. Sin
embargo, podrá agrupar las imágenes según sus colores, tamaños, formas y diferencias. El
modelo agrupará las cosas de acuerdo con las similitudes, encontrando estructuras y
patrones ocultos en datos sin etiquetar. No existe un camino correcto o incorrecto, ni
tampoco un maestro. No existen resultados, solo un análisis puro de los datos.
Los algoritmos de aprendizaje no supervisado se pueden clasificar para resolver tres tipos
de problemas:
Una de las preguntas que seguramente el lector puede estar haciéndose en estos
momentos es ¿Cuándo conviene utilizar aprendizaje supervisado, y cuando el no
supervisado?
La respuesta a esa pregunta puede ser muy extensa y variada, y en definitiva, todo depende.
En general, utilizaremos el aprendizaje no supervisado cuando no existan datos previos
sobre los resultados preferidos.
Algunas de las aplicaciones más comunes del aprendizaje no supervisado en el mundo real
son:
7Sea cual sea el mecanismo de aprendizaje, de todas formas, los modelos siempre tienen
que tener algún tipo de supervisión humana, para garantizar que funcionan
correctamente.
Hasta aquí hemos visto el funcionamiento del Machine Learning, tanto con aprendizaje
supervisado como no supervisado, y también hemos revisado como es que este aprendizaje
automático se lleva a cabo en la práctica.
Dado que no hay datos etiquetados, el agente está obligado a aprender solo por su
experiencia al recorrer o explorar esos datos. El agente aprende con el proceso de prueba
y error, y en base a la experiencia, asimila la tarea de una mejor manera. Por lo tanto, se
puede decir que el aprendizaje por refuerzo es un tipo de método de aprendizaje
automático en el que un agente inteligente (programa informático) interactúa con el
entorno y aprende a actuar dentro de él.
Dado que el aprendizaje automático requiere una gran cantidad de datos, es más aplicable
en dominios donde los datos simulados están fácilmente disponibles como juegos o la
robótica. El aprendizaje automático se usa habitualmente en la construcción de IA para
juegos de computadora. AlphaGo Zero es el primer programa de computadora en derrotar
a un campeón mundial en el antiguo juego chino de Go.
La red neuronal artificial o red neuronal se inspiró en la estructura del cerebro humano.8
Con lo cual se diseñó un cerebro artificial, que se conoce como Red Neuronal. Como el
cerebro humano está compuesto por neuronas para transmitir información, la red neuronal
también tiene nodos para realizar esa tarea. Dichos nodos son funciones matemáticas.
En la década de 1980 se plantean las teorías sobre el aprendizaje profundo por primera vez,
sin embargo, hay dos razones principales por las que sólo recientemente se ha vuelto útil:
8 Recordemos que el cerebro es una de las cumbres de la evolución biológica, ya que es un gran procesador
de información. Entre sus características podemos destacar, que es capaz de procesar a gran velocidad
grandes cantidades de información procedentes de los sentidos, combinarla o compararla con la
información almacenada y dar respuestas adecuadas. Además, hay que destacar su capacidad para aprender
a representar la información necesaria para desarrollar tales habilidades, sin instrucciones explícitas para
ello.
Podríamos decir entonces, que una red neuronal es un modelo simplificado que emula el
modo en que el cerebro humano procesa la información: Funciona simultaneando un
número elevado de unidades de procesamiento interconectadas que parecen versiones
abstractas de neuronas.
Las unidades de procesamiento se organizan en capas. Hay tres partes normalmente en una
red neuronal: una capa de entrada, con unidades que representan los campos de entrada;
una o varias capas ocultas; y una capa de salida, con una unidad o unidades que representa
el campo o los campos de destino.
Los datos de entrada se presentan en la primera capa, y los valores se propagan desde cada
neurona hasta cada neurona de la capa siguiente. Al final, se envía un resultado desde la
capa de salida.
La red aprende examinando los registros individuales, generando una predicción para cada
registro y realizando ajustes a las ponderaciones cuando realiza una predicción incorrecta.
Este proceso se repite muchas veces y la red sigue mejorando sus predicciones hasta haber
alcanzado uno o varios criterios de parada.
Inicialmente todas las ponderaciones son aleatorias y las respuestas que resultan de la red
son, posiblemente, disparatadas. Lo interesante es que la red aprende a través
del entrenamiento. Continuamente se presentan a la red ejemplos para los que se conoce
el resultado, y las respuestas que proporciona se comparan con los resultados conocidos.
Por otro lado, uno de los tipos más populares de redes neuronales se conoce como redes
neuronales convolucionales (CNN o ConvNet). Una red neuronal convolucional (CNN o
ConvNet) es particularmente útil para identificar patrones en imágenes con el fin de
reconocer objetos, clases y categorías. Además, pueden ser muy eficaces para clasificar
datos de audio, señales y series temporales.
Las redes neuronales convolucionales pueden tener decenas o cientos de capas, y cada una
de ellas aprende a detectar diferentes características de una imagen.
Se aplican filtros a las imágenes de entrenamiento con distintas resoluciones, y la salida
resultante de convolucionar cada imagen se emplea como entrada para la siguiente capa.
Los filtros pueden comenzar como características muy simples, tales como brillo y bordes,
e ir creciendo en complejidad hasta convertirse en características que definen el objeto de
forma singular.
Vemos en la imagen, que lo más probable es que ante la entrada de una imagen (imput) la
salida del modelo determine que se trata de un Auto (car) con mayor probabilidad de que
se trate de una bicicleta.