Una guía suave para el aprendizaje automático  

  RSS
admin
(@admin)
Miembro Admin

El aprendizaje automático es un subcampo dentro de la inteligencia artificial que crea algoritmos que permiten a las computadoras aprender a realizar tareas a partir de datos en lugar de ser programadas explícitamente.

La primera vez que escuché eso, me voló la cabeza.

La capacidad de aprendizaje es uno de los aspectos más importantes de la inteligencia. Llevar ese poder a las máquinas, suena como un gran paso para hacerlas más inteligentes. Y, de hecho, el aprendizaje automático es el área que está logrando la mayor parte del progreso en la inteligencia artificial en la actualidad; Siendo un tema de moda en este momento y promoviendo la posibilidad de tener máquinas más inteligentes.

Esta publicación intentará dar al lector principiante una breve introducción al Aprendizaje automático. Daré una descripción general de conceptos importantes, aplicaciones y desafíos cuando trabaje con Machine Learning. No es el objetivo de esta publicación dar una descripción formal o exhaustiva sobre el tema, sino dar algunos conceptos iniciales para invitar al lector a continuar investigando y estudiando este apasionante tema.

Lo real de Machine Learning

De acuerdo, no todo es tan hermoso como parece, el Aprendizaje Automático tiene sus límites. Aún así, no podemos construir máquinas inteligentes como Data (personaje de la serie de ciencia ficción Star Trek) o Hal 9000 (personaje ficticio de la serie Odisea del espacio). Sin embargo, tenemos muchos ejemplos de aplicaciones en el mundo real en las que el aprendizaje automático funciona a la perfección. Las siguientes son algunas de las categorías más comunes de aplicaciones prácticas de Machine Learning:

Procesamiento de imágenes

Los problemas de procesamiento de imágenes básicamente tienen que analizar imágenes para obtener datos o hacer algunas transformaciones. Algunos ejemplos son:

  • El etiquetado de imágenes, como en Facebook, cuando el algoritmo detecta automáticamente que su rostro o el rostro de sus amigos aparecen en una foto. Básicamente, un algoritmo de aprendizaje automático aprende de las fotos que etiqueta manualmente.
  • Reconocimiento óptico de caracteres (OCR), cuando los algoritmos aprenden a transformar un manuscrito o un documento de texto escaneado en una versión digital. El algoritmo debe aprender a transformar una imagen de un personaje escrito en la letra digital correspondiente.
  • Automóviles de conducción automática: parte de los mecanismos que permiten que los automóviles conduzcan por sí mismos utilizan el procesamiento de imágenes. Un algoritmo de aprendizaje automático aprende dónde está el borde de la carretera, si hay una señal de alto o si se aproxima un automóvil al mirar cada cuadro tomado por una cámara de vídeo.

Análisis de texto

El análisis de texto es un proceso en el que extraemos o clasificamos información de texto, como tweets, correos electrónicos, chats, documentos, etc. Algunos ejemplos populares son:

  • El filtrado de spam, una de las aplicaciones de clasificación de texto más conocidas y utilizadas (asigna una categoría a un texto). Los filtros de spam aprenden a clasificar un correo electrónico como spam o no spam dependiendo del contenido y el tema.
  • Análisis de sentimiento, otra aplicación de clasificación de texto donde un algoritmo debe aprender a clasificar una opinión como positiva, neutral o negativa según el estado de ánimo expresado por el escritor.
  • La extracción de información, a partir de un texto, aprende a extraer una información o datos en particular, por ejemplo, extrayendo direcciones, entidades, palabras clave, etc.

Minería de datos

La minería de datos es el proceso de descubrir patrones o hacer predicciones a partir de datos. La definición es un poco genérica, pero piense en ella como en la extracción de información útil de una gran tabla en una base de datos. Cada fila serían nuestras instancias de entrenamiento, y cada columna una característica. Es posible que nos interese predecir una nueva columna en esa tabla en función del resto de las columnas o descubrir patrones para agrupar las filas. Por ejemplo:

  • Detección de anomalías: detecte valores atípicos, por ejemplo, para la detección de fraudes con tarjetas de crédito, podría detectar qué transacciones son valores atípicos del patrón de compra habitual de un usuario.
  • Reglas de asociación: por ejemplo, en un supermercado o sitio de comercio electrónico, puede descubrir los hábitos de compra de los clientes al observar qué productos se compran juntos. Esta información puede ser utilizada para fines de marketing.
  • Predicciones: predice una variable (columna en una base de datos) del resto de las variables. Por ejemplo, podría predecir la calificación crediticia de los nuevos clientes en un banco basándose en los perfiles y la calificación crediticia de los clientes actuales.

Videojuegos y robótica

Los videojuegos y la robótica han sido un campo enorme en el que se ha aplicado el aprendizaje automático. En general, tenemos un agente (personaje del juego o robot) que tiene que moverse dentro de un entorno (un entorno virtual en un videojuego o un entorno físico en el caso de los robots). El aprendizaje automático puede usarse para permitir que el agente realice tareas, como moverse en un entorno y evitar obstáculos o enemigos. Una técnica de Aprendizaje automático muy utilizada en estos casos es el Aprendizaje de Refuerzo, donde el agente aprende a realizar una tarea aprendiendo del reforzamiento del entorno (el refuerzo es negativo si golpea un obstáculo o es positivo si llega a la meta).

Bien, ya se las aplicaciones del Aprendizaje Automático, pero ¿cómo funciona?

El libro Aprendizaje automático de Tom Mitchell, escrito en 1997, fue escrito hace mas de 10 años, pero los conceptos generales siguen siento validos hoy en día.

De ese libro, tenemos la siguiente definición formal sobre Aprendizaje automático:

Se dice que un programa de computadora aprende a realizar una tarea T de la experiencia E, si su desempeño en la tarea T, medido por una métrica de rendimiento P, mejora con la experiencia E a lo largo del tiempo.

Por ejemplo, un jugador de juego artificial que tiene que jugar al ajedrez (tarea T), podría aprender mirando partidas de ajedrez anteriores o jugando contra un tutor (experiencia E). Su rendimiento P se puede medir contando el porcentaje de juegos ganados contra un humano.

Imaginemos un par de ejemplos más:

  • Ejemplo 1: un sistema que, dada una imagen, tiene que decir si el rostro de Bill Gates aparece en esa imagen (la generalización sería como el etiquetado automático de Facebook).
  • Ejemplo 2: un sistema que recibe un tweet, dice si habla con un estado de ánimo positivo o negativo.
  • Ejemplo 3: un sistema que, dado el perfil crediticio de una persona, asigna una puntuación que representa la probabilidad de que esa persona pague un préstamo de dinero.

En el ejemplo 1, la tarea es detectar cuándo aparece la cara de Bill Gates en una imagen. La experiencia podría ser un conjunto de imágenes donde aparece la cara de Bill Gates y otras donde no aparece. El rendimiento podría medirse como el porcentaje de nuevas imágenes que nuestro sistema etiqueta correctamente.

En el ejemplo 2, la tarea es asignar el sentimiento de un tweet. La experiencia podría ser un conjunto de tweets y su correspondiente sentimiento. El rendimiento podría medirse como el porcentaje de tweets nuevos que nuestro sistema clasifica correctamente.

En el ejemplo 3, la tarea es asignar una puntuación de crédito. La experiencia podría ser un conjunto de perfiles de usuario con sus puntuaciones de crédito correspondientes. El rendimiento podría medirse como el error cuadrado (la diferencia entre la puntuación predicha y la esperada).

Para permitir que el algoritmo aprenda a transformar la entrada en la salida deseada, debe proporcionar lo que se denomina instancias de entrenamiento o ejemplos de entrenamiento, que en la definición de Mitchell se definen como experiencia E. Un conjunto de capacitación es un conjunto de instancias que funciona como ejemplos a partir de los cuales el algoritmo de aprendizaje automático aprenderá a realizar la tarea deseada. Bastante intuitivo, ¿no es así? Es como cuando le enseñas a un bebé cómo lanzar una pelota, la lanzas un par de veces para mostrarle cómo hacerlo y, al observar esos ejemplos, comienza a aprender a hacerlo él mismo.

Cada instancia de entrenamiento generalmente se representa como un conjunto fijo de atributos o características. Las características son la forma de caracterizar cada instancia. Por ejemplo, en el ejemplo 1, una imagen podría caracterizarse por el nivel de gris de cada uno de sus píxeles. En el ejemplo 2, un tweet podría caracterizarse por las palabras que aparecen en el tweet. En el ejemplo 3, un registro de crédito podría estar representado por la edad de la persona, el salario, la profesión, etc.

Calcular y seleccionar las funciones adecuadas para representar una instancia es una de las tareas más importantes cuando se trabaja con Aprendizaje automático.

Categorías de algoritmos de aprendizaje automático

En este punto, tenemos que hablar de dos categorías generales de algoritmos de aprendizaje automático: aprendizaje supervisado o algoritmos de aprendizaje no supervisado. La principal diferencia entre ambos enfoques reside en la forma en que proporcionamos ejemplos de entrenamiento a nuestro algoritmo, cómo el algoritmo los usa y el tipo de problemas que resuelven.

Aprendizaje supervisado

En el caso de aprendizaje supervisado, el algoritmo de aprendizaje automático puede verse como un proceso que debe transformar una entrada particular en una salida deseada.

El proceso de Aprendizaje automático debe aprender cómo transformar cada entrada posible en la salida correcta/deseada, de modo que cada ejemplo de entrenamiento tenga la entrada particular y la salida deseada.

En el ejemplo sobre el jugador de ajedrez artificial, nuestra entrada sería un estado particular del tablero de ajedrez, y la salida sería el mejor movimiento posible en esa situación.

Dependiendo del tipo de salida, tenemos dos subtipos de aprendizaje supervisado:

Clasificación

Cuando el valor de salida pertenece a un conjunto discreto y finito, estamos hablando de una clasificación. El ejemplo 2 se puede resolver con un problema de clasificación, la salida es un conjunto finito de opciones: positivo, negativo o neutral.

Regresión

Cuando el valor de salida es un número continuo, por ejemplo, una probabilidad, entonces estamos hablando de un problema de regresión. El ejemplo 3 es una regresión, ya que el resultado es un número entre 0 y 1 que representa la probabilidad de que una persona pague sus deudas. 

El aprendizaje supervisado es la categoría más popular de algoritmos de aprendizaje automático. La desventaja de usar este enfoque es que para cada ejemplo de entrenamiento, tenemos que proporcionar el resultado correcto, y en muchos casos, esto es bastante caro. Por ejemplo, en el caso del análisis de sentimientos, si necesitamos 10,000 ejemplos de entrenamiento (tweets), tendríamos que etiquetar cada tweet con el sentimiento correcto (positivo, negativo o neutral). Eso requeriría que un grupo de humanos leyera y etiquetara cada tweet (una tarea aburrida que consume bastante tiempo). Esto suele ser un cuello de botella muy común para los algoritmos de aprendizaje automático: recopilar datos de entrenamiento etiquetados de calidad.

Aprendizaje no supervisado

Hay una segunda categoría de algoritmos de aprendizaje automático denominado aprendizaje no supervisado. En este caso, los ejemplos de entrenamiento solo deben ser la entrada al algoritmo, pero no la salida deseada. El caso de uso típico es descubrir la estructura oculta y las relaciones entre los ejemplos de entrenamiento. Un ejemplo típico son los algoritmos de agrupación en clúster, donde aprendemos a encontrar instancias similares o grupos de instancias (agrupaciones). Por ejemplo: tenemos un artículo de noticias y queremos obtener otros similares, algunos algoritmos de agrupación en clúster como K-means pueden hacer eso, obtener varios artículos similares de un solo articulo.

Algoritmos de aprendizaje automático

Bueno, aquí es cuando las matemáticas y la lógica entran en acción. Para transformar una entrada en una salida deseada podemos usar diferentes modelos. En el Machine Learning no hay un tipo único de algoritmo, tal vez haya oído hablar de Support Vector Machines, Naive Bayes, Decision Trees o Deep Learning. Esos son diferentes algoritmos de aprendizaje automático que intentan resolver el mismo problema: aprender a transformar cada entrada en la salida correcta.

Esos diferentes algoritmos de aprendizaje automático utilizan diferentes paradigmas o técnicas para realizar el proceso de aprendizaje y representan el conocimiento de lo que han aprendido.

Pero antes de seguir adelante y hablar sobre cada algoritmo, un principio común es que los algoritmos de aprendizaje automático intentan hacer generalizaciones. Es decir, intentan explicar algo con la teoría más simple, un principio conocido como la navaja de afeitar de Occam. Cada algoritmo de aprendizaje automático, independientemente del paradigma que use, intentará crear la hipótesis más simple (la de menos suposiciones) explica la mayoría de los ejemplos de capacitación.

Hay muchos algoritmos de aprendizaje automático, pero mencionemos brevemente tres de los más populares:

  • Máquinas de vectores de soporte: el modelo intenta crear un conjunto de hiperplanos en un espacio de alta dimensión que intenta separar instancias de diferentes clases obteniendo la mayor separación entre las instancias más cercanas de diferentes clases. El concepto intuitivamente es simple, pero el modelo puede ser muy complejo y poderoso. De hecho, para algunas tareas/aplicaciones es uno de los mejores algoritmos de aprendizaje automático que puede utilizar en la actualidad.
  • Modelos probabilísticos: estos modelos generalmente intentan predecir la respuesta correcta al modelar el problema con una distribución de probabilidad. Quizás los algoritmos más populares en esta categoría son los clasificadores Naive Bayes, que utilizan el teorema de Bayes junto con fuertes supuestos de independencia entre las características. Una de sus ventajas, además de ser un modelo simple pero poderoso, es que devuelven no solo la predicción sino también el grado de certeza, que puede ser muy útil.
  • Deep Learning: basada en los muy conocidos modelos de redes neuronales artificiales. Las redes neuronales tienen un enfoque conexionista, intentan emular (de una manera muy simplificada) la forma en que funciona el cerebro. Básicamente, consisten en un enorme conjunto de neuronas interconectadas (la unidad básica de procesamiento), organizadas en varias capas. El aprendizaje profundo, en pocas palabras, ha desarrollado nuevas estructuras con capas más profundas y mejorado los algoritmos de aprendizaje para no solo intentar aprender, sino también construir estructuras para representar las características más importantes automáticamente con niveles más altos de abstracción.

Para continuar viendo el resto de contenido por favor Regístrate o Inicia Sección

This topic was modified hace 4 meses 3 times by admin
This topic was modified hace 2 meses by admin
ResponderCitar
Respondido : 06/10/2018 5:50 pm gacuna me gusta
Share:
  
Trabajando

Por favor Iniciar Sesión o Registro