0% encontró este documento útil (0 votos)
11 vistas20 páginas

Introducción A ML y AI

Este documento introduce conceptos clave sobre inteligencia artificial y machine learning. Explica brevemente la historia de la IA y define términos como la prueba de Turing y los diferentes niveles de IA. También describe conceptos básicos de machine learning como algoritmos y tipos de problemas que puede resolver.

Cargado por

lslemuss
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
11 vistas20 páginas

Introducción A ML y AI

Este documento introduce conceptos clave sobre inteligencia artificial y machine learning. Explica brevemente la historia de la IA y define términos como la prueba de Turing y los diferentes niveles de IA. También describe conceptos básicos de machine learning como algoritmos y tipos de problemas que puede resolver.

Cargado por

lslemuss
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 20

Machine Learning e Inteligencia Artificial

Introducción a ML y AI

Tabla de contenido
Introducción............................................................................................................................. 2
Brevísima Historia de la Inteligencia Artificial ................................................................................... 2
Definición la Inteligencia Artificial ........................................................................................ 4
La prueba de Turing............................................................................................................................. 5
Niveles de Inteligencia Artificial ......................................................................................................... 6
Aprendizaje Automático e IA................................................................................................. 7
Machine Learning ................................................................................................................... 8
Algoritmos ........................................................................................................................................... 8
Machine Learning .............................................................................................................................. 10
Programas de ordenador vs Machine Learning .................................................................................. 12
ML en el Ámbito empresarial .............................................................................................. 14
Aplicaciones de ML en el ámbito empresarial................................................................................... 14
¿Qué tipos de problemas se pueden resolver con ML? ...................................................................... 14
¿Qué tipos de ML existen? ................................................................................................................ 16
Ejemplos de Aplicación ..................................................................................................................... 17
Herramientas y “Frameworks” ........................................................................................... 19
Lenguajes de Programación ............................................................................................................... 19
Introducción
En los módulos anteriores hemos visto como obtener los datos, como almacenarlos,
como hacer una gestión adecuada y finalmente, como prepararlos, limpiarlos y
mantenerlos.

En este módulo aprenderemos los fundamentos de la técnica principal que nos va a


permitir pasar de un análisis exploratorio de los datos a un análisis predictivo, el
Aprendizaje Automático (o Machine Learning, ML).

Para esta primera sesión, vamos a introducirnos en los conceptos principales del
Aprendizaje Automático. El objetivo principal será obtener suficiente base para
entender los conceptos de las siguientes sesiones.

Antes que eso, no obstante, vamos a dar un pequeño repaso general a la Inteligencia
Artificial. Es muy importante cómo el ML queda incluido en este campo general de
investigación. Qué es y qué no es Inteligencia Artificial (IA) y dónde están los límites
en este campo es de una importancia extrema en estos tiempos donde se está
sobrevendiendo este término.

Brevísima Historia de la Inteligencia Artificial

La IA es un término que ya hace bastantes años que está


AI is born acuñado. De hecho, apareció por primera vez en una conferencia
organizada por él mismo en la Universidad de Darmouth en
1956. Allí planteó sus objetivos: "Este estudio procederá sobre
la base de la conjetura de que todos los aspectos del
aprendizaje o cualquier otro rasgo de la inteligencia pueden, en
principio, ser descritos de una forma tan precisa que se puede
crear una máquina que los simule".
1956

Desde aquel momento donde, evidentemente, las ciencias de computación aún estaban
en pañales, el avance en IA fue relativamente lento y contante.
Sin entrar en detalles podemos decir que, películas
aparte, el siguiente momento donde la IA volvió a
obtener protagonismo (incluso mediático) fue en
1997, cuando el ordenador creado por IBM, Deep
Blue, fue capaz de ganar a un humano en una tarea
típicamente humana, jugar al ajedrez. Aunque hay
que decir que este ordenador fue construido
únicamente para esta tarea y su capacidad de
racionamiento y aprendizaje, era muy limitada.
1997
No obstante, en el 2011, de nuevo IBM crea
Watson. Este sistema fue capaz de ganar a todos
los humanos en el concurso televisivo Jeopardy,
concursando como un participante más. La clave y
la auténtica importancia de este hecho no fue la
capacidad de búsqueda de los datos, si no la
capacidad de entender las preguntas en lenguaje
natural que el presentador iba lanzando.
2011

AlexNet, fue un modelo de red neuronal


convolucional que revolucionó el campo del
aprendizaje profundo. Demostró la eficacia del
entrenamiento en GPU, superando los resultados
anteriores en el reconocimiento de imágenes en el
desafío ImageNet, allanando el camino para el
éxito posterior de la IA en aplicaciones de visión
por computadora. Fue capaz de clasificar
2012 imágenes mejor que un humano.

ChatGPT es un chatbot desarrollado por OpenAI


que interactúa de manera conversacional y puede
responder preguntas de seguimiento, admitir
errores y rechazar solicitudes inapropiadas. Su
capacidad para generar texto humano y su
versatilidad lo convierten en un avance importante
en IA. Está basado en el modelo de lenguaje a gran
escala (Large Language Model) GPT-3.
Definición la Inteligencia
Artificial
Si tenemos que definir la IA muchas veces tendríamos que definir primero
qué consideramos por Inteligencia. No obstante, una de las definiciones más
aceptadas el la siguiente:
“Inteligencia Artificial es el área de las ciencias de la computación que se
enfoca en la creación de máquinas y programas que simulan procesos
asociados a la inteligencia humana.”
En este punto tenemos que destacar los siguientes conceptos:

1. La IA no es un robot, un ordenador o algo similar. Es un área de las


ciencias de computación. Es decir, un campo de investigación y
aplicación.
2. Los programas / robots / dispositivos que siguen un comportamiento
basado en IA se llaman agentes.
3. El punto clave para distinguir un agente de un programa normal es
que intenta simular procesos asociados a la inteligencia humana.
Cosas tan sencillas como distinguir objetos de una foto, leer una
carta, reconocer a una persona, identificar el sarcasmo… es tos
procesos típicamente humanos son muy complicados para los
ordenadores. Cuando un agente es capaz de simular alguno de ellos,
se dice que está asociado con la IA.
La prueba de Turing

Alan Turing fue uno de los padres de


las ciencias de comunicación.
Cuando a él le preguntaron cómo
definiría la IA, directamente esquivó
la pregunta y creó “la prueba de
Turing”.

“[…] Alan Turing propuso que un


humano evaluara conversaciones en
lenguaje natural entre un humano y
una máquina diseñada para generar
respuestas similares a las de un
humano. El evaluador sabría que uno de los participantes de la
conversación es una máquina y los intervinientes serían separados unos de
otros. La conversación estaría limitada a un medio únicamente textual como
un teclado de computadora y un monitor por lo que sería irrelevante la
capacidad de la máquina de transformar texto en habla.2 En el caso de que
el evaluador no pueda distinguir entre el humano y la máquina
acertadamente (Turing originalmente sugirió que la máquina debía
convencer a un evaluador, después de 5 minutos de conversación, el 70 %
del tiempo), la máquina habría pasado la prueba. Esta prueba no evalúa el
conocimiento de la máquina en cuanto a su capacidad de responder
preguntas correctamente, solo se toma en cuenta la capacidad de esta de
generar respuestas similares a las que daría un humano.”
Fuente: https://es.wikipedia.org/wiki/Test_de_Turing
Es muy interesante entender bien el contexto de la prueba, así como el
concepto del juego de imitación que Turing plantea. Recomiendo que leáis
el artículo como ampliación de conocimientos.
Niveles de Inteligencia Artificial

Hay varias clasificaciones de niveles dentro de la IA. No obstante, una de las más
aceptadas es la siguiente:

Nivel 1: Inteligencia Artificial Débil. En este nivel el agente es


únicamente capaz de realizar una única tarea sencilla. Es importante
reseñar que este es el nivel que actualmente tenemos de IA.

Nivel 2: Inteligencia Artificial General. Un agente en este nivel sería


capaz de pasar la Prueba de Turing

Nivel 3: IA Fuerte. Un agente en este nivel sería capaz de tener


consciencia de sí mismo. Este nivel, por supuesto, es pura ciencia
ficción y lo tenemos en películas como Terminator (siempre con un
final horrible para la humanidad)

Andrew Ng, uno de los padres de Deep Learning y una de las personas más influentes
del mundo en ML, acuñó la siguiente frase:

“Si una persona normal es capaz de hacer un proceso mental en menos de un segundo,
entonces, probablemente, seremos capaces de automatizarlo mediante un agente de IA”

Esto nos puede dar una idea del momento real en que nos encontramos en este campo.
Pensemos en tareas como identificar una persona para que pase por la puerta. Es una
tarea que un humano hace inmediatamente. El portero/a reconoce a la persona y la deja
entrar o no. Este reconocimiento, en un ordenador, es extremadamente complejo. Un
ordenador o agente capaz de hacerlo, está habilitado por IA.
Aprendizaje Automático e IA
En este contexto, ¿dónde aparece el Aprendizaje Automático (ML a partir de ahora)?
Veamos este diagrama:

Si analizamos este diagrama atentamente, vemos que en realidad el ML es un campo


dentro de la IA. Las técnicas de ML permitirán a los ordenadores crear agentes de IA a
partir de los datos. Obviamente, estas técnicas necesitan datos y necesitan
conocimientos del campo del Procesado de Lenguaje Natural (NLP), por ejemplo, para
realizar tareas asociadas al lenguaje. Un apunte más, como vemos, Deep Learning (DL)
no es más que una técnica de ML, quizás muy potente, pero está dentro de este campo
de investigación.
Machine Learning
Algoritmos

Antes de entrar 100% en el tema de ML necesitamos asentar unos conceptos básicos.


Empecemos por el principio: ¿qué es un algoritmo?

Un algoritmo, formalmente, es:


“Grupo finito de operaciones organizadas de forma lógica y ordenada que le permite
resolver un problema en particular. Se trata de una serie de instrucciones de reglas
establecidas que, mediante una sucesión de pasos, el sistema llega a una solución o
resultado.”

Pero realmente lo podemos resumir como una serie de pasos para realizar una tarea.
Ni más ni menos.

Por ejemplo, los pasos para cocinar una tortilla de patatas no dejan de ser un algoritmo.
Una serie de pasos para hacer algo.

A veces, los algoritmos son un poco más complicados, principalmente porque la tarea a
realizar es compleja. Por ejemplo, tenemos los bucles, que repiten unos pasos varias
veces.

No obstante, una característica clave en los algoritmos son las condiciones o reglas.
Por ejemplo, si diseñamos un algoritmo para cruzar una calle, vamos a tener que
ponerle muchas condiciones o reglas, ya que la tarea es más complicada.
Estas condiciones (o “if’s”) son las claves para llegar al final del algoritmo. Suele pasar
que, al desarrollar un algoritmo, a veces no tenemos en consideración alguna de las
reglas o condiciones. En esos casos es cuando se produce un “error” o “bug”. Es
necesario revisar donde está el error, añadir las condiciones que faltan y actualizar.
Por lo tanto, cuando queremos que ordenador haga una tarea, debemos diseñar un
algoritmo y luego implementarlo con algún lenguaje de programación. ¿Esto lo
podemos hacer siempre?
Machine Learning

Pongamos un ejemplo. Supongamos que queremos que un ordenador sea capaz de


distinguir si en una imagen hay un perro o no.

Bien, supongamos que podemos describir, en lenguaje natural, un perro:

¿Creéis que somos capaces de explicitar todas las reglas que hacen que nosotros, como
humanos, podamos distinguir entre un perro y un gato?

Fijémonos bien en la foto, nosotros, como humanos, hemos tardado menos de un


segundo en localizar al perro en la foto. No obstante, si queremos describir las
diferencias, ¡es prácticamente imposible enumerarlas todas!
Pero en caso de se un ordenador, el problema es mucho más grande:
Los ordenadores solo entienden de números, por lo que debemos traducir las imágenes a
matrices, cada píxel, un valor por cada uno de los canales de colores.
¿Podemos imaginarnos cómo explicitar todas las condiciones que nos harían distinguir
un perro y un gato en una matriz numérica de 1980x1080x3 de números enteros?
Recordemos que debe ser un algoritmo robusto a cambios de posición, zoom,
rotaciones, colores, etc.
Simplemente, no es posible, existen demasiadas posibilidades, existen demasiadas
condiciones, no se pueden explicitar todas.
Cuando tenemos un problema demasiado complejo como para poder explicitarlo, pero
tenemos ejemplos sobre los que trabajar, es cuando podemos utilizar técnicas de ML
que se encargaran de encontrar esas reglas, esos patrones, en los datos.
A esos patrones o reglas encontradas en los datos los llamamos modelos.
Analizando el problema, cualquier tarea cognitiva del ser humano se encuadra en este
entorno de trabajo. El lenguaje, el habla, jugar al ajedrez, todas estas tareas son
demasiado complejas para explicitarlas en un algoritmo, por lo que, aunque sencillas
para el ser humano, muy complicadas para un ordenador.
Esta reflexión ha estado ahí desde el nacimiento del campo de la ciencia de
computación:

Es decir, tenemos que ser capaces de que los ordenadores extraigan esas condiciones,
esos patrones o modelos de los datos para que no tengamos que decírselas
explícitamente. A ese proceso lo llamamos aprendizaje.
Programas de ordenador vs Machine Learning

Bien, hemos visto que con técnicas de ML somos capaces de extraer patrones (reglas) a
base de mirar los datos. A estos patrones o reglas los llamamos modelos. Pero no
perdamos de vista que son los propios ordenadores, es decir, un programa de ordenador
el que hace ese aprendizaje. Por lo tanto, existe un algoritmo, este sí, totalmente
explicitado, que le dice al ordenador cómo tiene que realizar este aprendizaje.
Recordemos cuales son las principales diferencias entre un problema resuelto con un
programa de ordenador clásico y un problema resuelto con técnicas de ML.

En un programa de ordenador hay un algoritmo (el “how”


en la imagen) que le dice a la central de proceso
(“machine”) cómo manipular las entradas (“inputs”) para
realizar la tarea.
Por ejemplo, el algoritmo de la tortilla de patatas nos dice
cómo tenemos que manipular los ingredientes (“inputs”)
para obtener la tortilla (“output”), objetivo de la tarea.

En una aproximación basada en ML esto cambia


considerablemente. Aquí el “input” son los datos, los
ejemplos de ese problema (por ejemplo, las fotos de perros y
gatos), el “output” debe ser el cómo realizar la tarea (por
ejemplo, el modelo que nos va a permitir diferenciar entre
perros y gatos a partir de ahora), y el algoritmo de ML se
encarga de decirle al ordenador cómo realizar ese
aprendizaje.

Por lo tanto, debemos acostumbrarnos a distinguir entre algoritmo de ML (encargado


de hacer que el ordenador aprenda de los datos) y el modelo de ML (o reglas o patrón
aprendido de los datos).
ML en el Ámbito empresarial
Aplicaciones de ML en el ámbito empresarial
Las posibles aplicaciones de las técnicas de ML en el ámbito empresarial son enormes.
Por primera vez hay ordenadores que son capaces de realizar tareas típicamente
cognitivas y, por lo tanto, se ha abierto un abanico enorme de posibilidades.
En este gráfico vemos unas cuantas aplicaciones, diferenciadas por el beneficio que se
puede obtener.

¿Qué tipos de problemas se pueden resolver con ML?


En este punto nos podemos preguntar cuales son los problemas más típicos que
podemos resolver con ML. Los más comunes son:
Problemas de clasificación: clasificación de imágenes, clasificación de clientes, clasificación
de documentos...
Predicción de números: predicción de valor de acciones, predicción de ventas, predicción del
fallo de una máquina...
Problemas de agrupación: segmentación, recomendación de películas, música, recetas...
Problemas secuenciales: jugar al ajedrez, coches autónomos...
Dependiendo del problema y de los datos que tengamos, será necesario seleccionar una
técnica de ML diferente.
¿Qué tipos de ML existen?
Tradicionalmente se han dividido los tipos de ML en tres grandes bloques:
Aprendizaje SUPERVISADO:
La definición más aceptada para este tipo de aprendizaje es la siguiente.
“el aprendizaje supervisado es una técnica para deducir una función a partir de datos
de entrenamiento. Los datos de entrenamiento consisten en pares de objetos: una
componente del par son los datos de entrada y el otro, los resultados deseados. […] El
objetivo del aprendizaje supervisado es el de crear una función capaz de predecir el
valor correspondiente a cualquier objeto de entrada válida después de haber visto una
serie de ejemplos, los datos de entrenamiento. Para ello, tiene que generalizar a partir
de los datos presentados a las situaciones no vistas previamente.”
En este caso, se trata de predecir una de las características de los datos en función de las
demás. Si somos capaces de encontrar la función que relaciona estos dos elementos,
podremos predecir la característica objetivo para ejemplos nuevo que nunca hayamos
visto. A esta característica objetivo que conocemos de los datos se le llama etiqueta.
Aprendizaje NO SUPERVISADO:
“El aprendizaje no supervisado tiene lugar cuando no se dispone de datos
“etiquetados” para el entrenamiento. Sólo conocemos los datos de entrada, pero no
existen datos de salida que correspondan a un determinado input. Por tanto, sólo
podemos describir la estructura de los datos, para intentar encontrar algún tipo de
organización que simplifique el análisis.”
En este caso, no tenemos la característica objetivo, por lo que según qué problemas no
podemos resolverlos. Por ejemplo, si tenemos fotos de perros y gatos, pero no las
tenemos etiquetadas, no podemos aprender a clasificar las fotos en estas dos categorías.
No obstante, quizás seamos capaces de intentar agrupar las fotos en dos grupos y de ahí
extraer conclusiones.
Aprendizaje REFORZADO:
Aprendizaje por refuerzo o Aprendizaje reforzado es un área del aprendizaje
automático inspirada en la psicología conductista, cuya ocupación es determinar qué
acciones debe escoger un agente de software en un entorno dado con el fin de
maximizar alguna noción de "recompensa" o premio acumulado...”
Este tipo de aprendizaje es más parecido a cómo aprendemos los humanos, es decir, a
base de prueba y error. Puede llevarnos a realizar tareas más complejas, como por
ejemplo que un robot sea capaz de andar. No obstante, tiene una limitación enorme y es
que es necesario tener un modelo (matemático) del entorno donde el agente está
aprendiendo. Esto no siempre es posible, principalmente para ejemplos complejos.
Ejemplos de Aplicación
En el siguiente diagrama podemos ver varios ejemplos de aplicación para cada tipo de
aprendizaje.

Como vemos, en realidad para cada tipo de aprendizaje tenemos dos subtareas
principales:
Supervisado: clasificación y regresión
No Supervisado: clustering (o agrupación) y reducción de la dimensionalidad
Reforzado. En este caso no hay subtareas ya que el marco de trabajo es siempre el
mismo
¿Qué es la Inteligencia Artificial Generativa?

La Inteligencia Artificial Generativa (Gen AI) es un subcampo de la Inteligencia


Artificial que se centra en la creación de contenido nuevo y original a partir de datos
existentes. Esto puede incluir una variedad de formatos de contenido, como texto,
imágenes o música.

Historia de la IA Generativa:

• 1990: Las Máquinas de Soporte Vectorial emergen como una técnica importante
en el aprendizaje automático, proporcionando una forma de clasificar los datos
de manera eficiente.
• Finales de los 90: La IA comienza a integrarse en la vida cotidiana a través de
diversas aplicaciones, desde motores de búsqueda hasta asistentes personales
digitales.
• Años 2000: A pesar de las dificultades iniciales, los investigadores persisten con
las redes neuronales, una forma de IA que imita la forma en que el cerebro
humano procesa la información.
• 2012: El triunfo de AlexNet en la competencia ImageNet es un punto de
inflexión, demostrando el poder de las redes neuronales convolucionales para el
procesamiento de imágenes.
• Década de 2020: Se observa un aumento significativo en la inversión en IA
generativa, ya que las empresas buscan aprovechar su capacidad para crear
contenido nuevo y atractivo.

Funcionamiento de la IA Generativa: La IA Generativa utiliza técnicas de


aprendizaje profundo para aprender a generar nuevos datos que se parezcan a los datos
de entrenamiento. Esto se logra a través de una combinación de redes neuronales y
algoritmos de optimización que trabajan juntos para “aprender” las características y
patrones en los datos de entrenamiento y luego generar nuevas instancias de esos datos.

Además, la IA Generativa a menudo utiliza RLHL (Reinforcement Learning with


Human in the Loop) para mejorar el rendimiento de los modelos. En este enfoque, un
humano proporciona retroalimentación al modelo durante el proceso de entrenamiento,
ayudando al modelo a aprender y mejorar con el tiempo. Esto puede ser particularmente
útil en tareas que requieren un alto grado de creatividad o intuición humana.

La IA Generativa es una herramienta poderosa y versátil que puede generar una amplia
gama de contenido, desde texto hasta música, y su uso está en constante crecimiento.
Herramientas y Frameworks
Lenguajes de Programación
En el momento de entrenar un modelo podemos elegir varias opciones. Por un lado,
podemos seleccionar diferentes herramientas que nos pueden ayudar a desarrollar el
modelo de forma interactiva o gráfica:
• Azure ML Studio
• Knime
• BigML
• Dataiku
• Datarobot
• H2O
Todas ellas nos ayudan a entrenar un modelo de forma más o menos sencilla.
No obstante, en ciertas ocasiones, es necesario desarrollar un programa que nos permita
entrenar un modelo desde cero. Para eso debemos seleccionar un lenguaje de
programación adecuado. Dependiendo del modelo que queramos entrenar y el entorno
donde deba ejecutarse, será mejor seleccionar uno u otro.
Actualmente, debido al auge de Deep Learning, Python es el lenguaje por excelencia en
este tipo de proyectos. No obstante, hay muchos Data Scientist que siguen usando R,
Scala, Julia, C#...
Una vez seleccionado el lenguaje, la librería que utilizaremos para entrenar el modelo es
clave. Cada librería tiene su propia implementación de los algoritmos de ML, aunque, al
ser la mayoría Open Source, han sido todas muy bien probadas por la comunidad.
Por ejemplo, si seleccionamos Python como lenguaje, dominar Scikit-Learn y Pandas es
básico para poder empezar a trabajar en un modelo desde cero.
Cloud Computing
Con todo, solo los pequeños experimentos se pueden ejecutar en un PC local. Lo normal
será necesitar mucha capacidad de cómputo. Para eso, los sistemas cloud nos ayudarán
enormemente. Solo deberemos pagar por lo que necesitemos y cuando lo necesitemos.
Los principales jugadores cloud tienen una auténtica batería de herramientas para ML.
Todas nos permitirán seguir el ciclo de vida completo del desarrollo del modelo.
- Microsoft: Azure Cognitive Servies y Azure ML.
- Google (GCP): AI Platform
- Amazon (AWS): Sagemaker

En estas plataformas podremos desplegar cualquier tipo de proyecto, desde el desarrollo


hasta la puesta en producción.
Por último, hay herramientas ya listas como paquete para poder ser utilizadas sin tener
que salir de ese entorno. Por ejemplo, BigML o Dataiku, gestionan todo el proyecto
desde un único entorno.

También podría gustarte