Este documento explica el aprendizaje de máquinas y cómo los computadores aprenden a clasificar, predecir e identificar imágenes mediante el análisis de grandes conjuntos de datos. Describe cómo los algoritmos pueden aprender patrones sin usar fórmulas predefinidas y cómo esto se aplica a problemas como la clasificación de personas por sexo y el reconocimiento de imágenes de animales. También presenta ejemplos de cómo los computadores aprenden a predecir el tiempo y componen música en el estilo de Bach después de analizar muchas obras musicales.
1. Aprendizaje de Máquina: Una explicación amigable
Cómo “aprenden” los computadores
Eduardo Martínez E.
2. Preguntas más comunes sobre el Aprendizaje de Máquina
1. ¿Qué es el Aprendizaje de Máquina (AM)?
2. ¿Para qué sirve el AM?
3. ¿Cuáles son las principales aplicaciones prácticas del AM?
4. ¿Cómo “cuentan” los computadores y los humanos?
5. ¿Qué es un algoritmo?
6. ¿Qué son los lenguajes de programación de computadores?
7. ¿Cómo aprende el computador a “clasificar” objetos? Un ejemplo
8. ¿Cómo aprende el computador a “predecir” un resultado? Un
ejemplo
9. ¿Cómo aprende el computador a “reconocer” imágenes? Un
ejemplo
3. Aprendizaje de Máquina/Machine Learning
El Aprendizaje de Máquina (del inglés, "Machine Learning") es una rama de
la Inteligencia Artificial que se ocupa de desarrollar procedimientos
computacionales que permitan a las computadoras “aprender” a resolver
problemas, tomar decisiones, realizar acciones, clasificar elementos y hacer
predicciones.
El Aprendizaje de Máquina se refiere al uso de programas de computación
capaces de descubrir patrones, hacer generalizaciones de comportamientos y
detectar características grupales explorando una base de datos, sin usar
fórmulas pre definidas.
El Aprendizaje de Máquina está en la raíz de todos los sistemas de Inteligencia
Artificial.
4. Principales aplicaciones del Aprendizaje de Máquina
• Agrupación de objetos (“clustering” en inglés). Por ejemplo, agrupar países
según su grado de desarrollo.
• Predicción de resultados.
• Correlación de datos.
• Clasificación de objetos: Asignar objetos a “clases” según el “perfil” de los
datos.
• Reconocimiento de imágenes.
• Clasificación de imágenes.
• Reconocimiento de lenguajes
5. Usos prácticos del Aprendizaje de Máquina
• Vehículos autodirigidos
• Sugerencias personales de productos (por ejemplo, Netflix y
Amazon)
• Análisis del comportamiento de los consumidores
• Detección de riesgos de fraude
• Pronósticos del tiempo
• Análisis de la delincuencia
• Análisis de riesgos de créditos
• Reconocimiento de imágenes
• Diagnósticos médicos
6. Cómo cuentan los computadores y los humanos
• Los seres humanos y los computadores tienen distinta manera de contar y
numerar.
• Los humanos usamos el sistema decimal y los computadores el sistema binario
(inventado por Gottfried Leibniz hace 400 años).
• Por ejemplo, el número 10 no significa lo mismo para los humanos que para los
computadores.
• Si a una persona se le pide que dibuje 10 emoticones, hará esto:
• Si a un computador se le pide (en su idioma) que dibuje 10 emoticones, hará esto:
7. Sistema de numeración humano (decimal)
• Base del sistema = 10 dígitos
• Los dígitos del sistema decimal son: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
• Ejemplo: cómo se calcula el Número Decimal 1 0 1
• El número 101 es la suma de las potencias de 10 elevado al número que
indica la posición del dígito, multiplicado por el valor del dígito
correspondiente:
• 1*10^2 + 0*10^1 + 1*10^0 = 101
8. Sistema de numeración del computador (binario)
• Base del sistema: 2 dígitos
• Los dígitos del sistema binario son: 0, 1
• Ejemplo: cómo se calcula el valor decimal del Número Binario 1 0 1
• El número 101 es la suma de las potencias de 2 elevado al número que
indica la posición del dígito, multiplicado por el valor del dígito
correspondiente:
1*2^2 + 0*2^1 + 1*2^0 = 41
• También es posible representar letras con un código binario; por ejemplo
A = 01000001
9. El lenguaje del computador
El “cerebro” del computador está constituido por circuitos
eléctricos que pueden asumir dos estados: apagado (0) o
encendido (1), lo que es compatible con el sistema binario
de numeración.
Con el código binario se pueden representar números,
letras, pixeles de imágenes y señales de audio, que el
computador puede “leer” desde dispositivos como el
teclado de computador y sensores.
10. Algoritmos
• Un algoritmo es un conjunto de pasos lógicos para hacer
cálculos, resolver problemas y tomar decisiones; por ejemplo,
una receta de cocina es un algoritmo, un procedimiento para
calcular el precio final de un producto agregando el IVA
también es un algoritmo. Los seres humanos usan algoritmos
en casi todas sus actividades, muchas veces de manera
inconsciente.
• El Aprendizaje de Máquina se basa en crear programas de
computación que contienen algoritmos para procesar datos y
obtener resultados sin usar fórmulas pre definidas, sino
“aprendiendo” de los datos mismos.
11. Algoritmo de clasificación: Un ejemplo simple
Supóngase una tabla que contiene datos de Tamaño, Peso y Largo de Pelo
para 1000 personas, hombres y mujeres. El algoritmo para distinguir entre
mujeres y hombres sería:
• Seleccionar la Clase más frecuente en la base de datos (por ejemplo,
Hombre).
• Buscar en la base de datos el Atributo (por ejemplo, Largo del Pelo) que
sea más eficaz para discriminar entre Hombres y Mujeres; o sea, que
tenga mayor porcentaje de aciertos en la clasificación.
• Repetir el paso anterior con el resto de los atributos hasta que todas las
combinaciones de atributos contengan la misma cantidad de una misma
clase (Mujeres u Hombres) o que los datos restantes sean muy pocos.
12. Lenguajes de programación
Son los distinto “idiomas” que puede usar el ser humano para
comunicarse con el computador, especificar los algoritmos y proveer
los datos.
El lenguaje del computador es el sistema binario de numeración y
codificación. Las dificultades para los humanos de escribir en lenguaje
binario han llevado a crear diversos lenguajes de programación con
palabras humanas bajo determinadas reglas de sintaxis y vocabulario,
las que el computador traduce a su propio lenguaje.
Actualmente, los lenguajes más usados para Aprendizaje de Máquina y
Minería de Datos son: Java, R, Python y Matlab.
13. Ejemplo: Programa para convertir números
decimales a binarios
Este programa, en lenguaje Python, le dice al computador cómo convertir el número
decimal 34 a binario. Resultado: 100010
14. Un problema de la clasificación
Vista parcial de la base de
datos que usará el computador
para “aprender” a clasificar las
personas según su sexo,
considerando las características
de tamaño (en cm), peso (en
kg) y largo de pelo (en cm).
15. Resultados de la clasificación según el sexo
La imagen de la Matriz de Confusión muestra en cuantos casos el computador clasificó correctamente las
personas según su sexo: el computador reconoció a las 28 mujeres y a 30 de 31 hombres.
16. Un problema de predicción: Pronóstico del tiempo
La imagen es una vista parcial de la
base de datos que usará el
computador para “predecir” el
tiempo: Seco o Lluvia.
Las celdas en blanco servirán para
“entrenar” al computador.
Las celdas amarillas no se usarán
para “entrenar” al computador, sólo
se emplearán para probar la
exactitud de las predicciones
17. Resultados del pronóstico del tiempo
La imagen muestra la comparación entre los valores reales y las predicciones del
computador. Se puede ver que el computador se equivocó sólo 2 veces: casos 9 y 11.
18. Un problema de reconocimiento de imágenes
Imágenes de animales
Imágenes de aves
Imágenes de hombres
Imágenes de mujeres
19. Resultados del reconocimiento de imágenes
La imagen de la Matriz de Confusión muestra en cuantos casos hay coincidencia o no entre la predicción del
computador y la clase real de la imagen. Por ejemplo, de las 13 imágenes de Animales, el computador
reconoció 11 bien y 2 mal.
20. Imágenes de animales: Resultados del reconocimiento
Imágenes reales Imágenes clasificadas por el computador
El computador reconoció correctamente 11 de 12 imágenes reales y clasificó
erróneamente 2 aves como animales.
Mal clasificados
21. Imágenes de aves: Resultados del reconocimiento
Imágenes reales Imágenes clasificadas por el computador
El computador reconoció correctamente 11 de las 13 aves y clasificó erróneamente 1
animal como ave.
Mal clasificado
22. Imágenes de mujeres: Resultados del reconocimiento
Imágenes reales Imágenes clasificadas por el computador
El computador reconoció correctamente 5 de las 8 mujeres y clasificó erróneamente
3 hombres como mujeres.
Mal clasificados
23. Imágenes de Hombres: Resultados del reconocimiento
Imágenes reales Imágenes clasificadas por el computador
El computador reconoció correctamente 5 imágenes de 8 y clasificó erróneamente a 3
mujeres como hombres.
Mal clasificados
24. Ejemplo: Aprendizaje de Máquina en la Música
Un programa de computador creado por David Cope en los años ochenta
entrenó a un computador para reconocer los estilos de música de los grandes
maestros clásicos (Bach, Chopin, Mozart y otros) y crear nuevas obras con el
mismo estilo.
Para probar la capacidad de este aprendizaje de máquina se presentaron a
una audiencia una obra de Bach autentica y una creada por el computador. Al
final de la prueba se le preguntó al público que eligiera cuál era la pieza
auténtica, y la mayoría votó por la composición creada por el computador.
Se puede comprobar la calidad asombrosa de una composición musical estilo
Bach creada por computador siguiendo el link .
Obra coral de Bach
25. EPILOGO
• Los computadores “aprenden” a reconocer objetos (materiales o
conceptuales) de manera parecida a los humanos. Los humanos necesitan
unos pocos ejemplos para reconocer un patrón de identificación; a los
computadores, en cambio, les cuesta generalizar a partir de pocos
ejemplos y, por lo general, necesitan gran cantidad de datos para
descubrir un patrón. Sin embargo esta limitación los computadores la
compensan con la velocidad de su análisis.
• El Aprendizaje de Máquina es una tecnología que está en pleno desarrollo,
nadie sabe hasta donde podrá llegar ni cuales serán sus consecuencias
para la sociedad, especialmente respecto al trabajo humano. Algunos
piensan que se crearán más empleos de los que desaparecerán y otros
piensan todo lo contrario. En lo que hay acuerdo –por ahora- es que las
máquinas nunca podrán emular la conciencia emocional y moral del ser
humano.