¿Qué es el aprendizaje automático? Inteligencia derivada de datos

Definición de aprendizaje automático

El aprendizaje automático es una rama de la inteligencia artificial que incluye métodos o algoritmos para crear automáticamente modelos a partir de datos. A diferencia de un sistema que realiza una tarea siguiendo reglas explícitas, un sistema de aprendizaje automático aprende de la experiencia. Mientras que un sistema basado en reglas realizará una tarea de la misma manera cada vez (para bien o para mal), el rendimiento de un sistema de aprendizaje automático se puede mejorar a través del entrenamiento, al exponer el algoritmo a más datos.

Los algoritmos de aprendizaje automático a menudo se dividen en supervisados (los datos de entrenamiento están etiquetados con las respuestas) y no supervisados (cualquier etiqueta que pueda existir no se muestra en el algoritmo de entrenamiento). Los problemas de aprendizaje automático supervisados ​​se dividen además en clasificación (predicción de respuestas no numéricas, como la probabilidad de un pago hipotecario no realizado) y regresión (predicción de respuestas numéricas, como la cantidad de widgets que se venderán el próximo mes en su tienda de Manhattan).

El aprendizaje no supervisado se divide además en agrupamiento (encontrar grupos de objetos similares, como zapatillas para correr, zapatos para caminar y zapatos de vestir), asociación (encontrar secuencias comunes de objetos, como café y crema) y reducción de dimensionalidad (proyección, selección de características). y extracción de características).

Aplicaciones del aprendizaje automático

Oímos hablar de aplicaciones de aprendizaje automático a diario, aunque no todas son un éxito absoluto. Los automóviles autónomos son un buen ejemplo, donde las tareas van desde simples y exitosas (asistencia de estacionamiento y seguimiento de carril de la autopista) hasta complejas e inciertas (control total del vehículo en entornos urbanos, que ha provocado varias muertes).

El aprendizaje automático de juegos es un gran éxito para las damas, el ajedrez, el shogi y el Go, habiendo vencido a campeones mundiales humanos. La traducción automática de idiomas ha tenido un gran éxito, aunque algunos pares de idiomas funcionan mejor que otros, y muchas traducciones automáticas aún pueden ser mejoradas por traductores humanos.

La conversión automática de voz a texto funciona bastante bien para personas con acentos convencionales, pero no tan bien para personas con acentos regionales o nacionales fuertes; el rendimiento depende de los conjuntos de formación utilizados por los proveedores. El análisis automático de sentimientos de las redes sociales tiene una tasa de éxito razonablemente buena, probablemente porque los conjuntos de formación (por ejemplo, las calificaciones de productos de Amazon, que combinan un comentario con una puntuación numérica) son grandes y de fácil acceso.

La selección automática de currículums es un área controvertida. Amazon tuvo que retirar su sistema interno debido a sesgos de la muestra de capacitación que hicieron que bajara todas las solicitudes de empleo de mujeres.

Otros sistemas de evaluación de currículums que se utilizan actualmente pueden tener sesgos de capacitación que los hagan mejorar a los candidatos que son "como" los empleados actuales de formas que legalmente no deberían importar (por ejemplo, candidatos jóvenes, blancos, hombres de vecindarios de habla inglesa de alto nivel que jugaron los deportes de equipo tienen más probabilidades de aprobar la evaluación). Los esfuerzos de investigación de Microsoft y otros se centran en eliminar los sesgos implícitos en el aprendizaje automático.

La clasificación automática de imágenes de patología y radiología ha avanzado hasta el punto en que puede ayudar (pero no reemplazar) a patólogos y radiólogos para la detección de ciertos tipos de anomalías. Mientras tanto, los sistemas de identificación facial son controvertidos cuando funcionan bien (debido a consideraciones de privacidad) y tienden a no ser tan precisos para las mujeres y las personas de color como lo son para los hombres blancos (debido a los prejuicios en la población de entrenamiento).

Algoritmos de aprendizaje automático

El aprendizaje automático depende de una serie de algoritmos para convertir un conjunto de datos en un modelo. El algoritmo que funcione mejor depende del tipo de problema que esté resolviendo, los recursos informáticos disponibles y la naturaleza de los datos. Independientemente del algoritmo o algoritmos que utilice, primero deberá limpiar y acondicionar los datos.

Analicemos los algoritmos más comunes para cada tipo de problema.

Algoritmos de clasificación

Un problema de clasificación es un problema de aprendizaje supervisado que solicita la elección entre dos o más clases, lo que generalmente proporciona probabilidades para cada clase. Dejando de lado las redes neuronales y el aprendizaje profundo, que requieren un nivel mucho más alto de recursos informáticos, los algoritmos más comunes son Naive Bayes, Decision Tree, Logistic Regression, K-Neighbors Neighbors y Support Vector Machine (SVM). También puede utilizar métodos de conjunto (combinaciones de modelos), como Random Forest, otros métodos de embolsado y métodos de refuerzo como AdaBoost y XGBoost.

Algoritmos de regresión

Un problema de regresión es un problema de aprendizaje supervisado que pide al modelo que prediga un número. El algoritmo más simple y rápido es la regresión lineal (mínimos cuadrados), pero no debe detenerse allí, porque a menudo le da un resultado mediocre. Otros algoritmos comunes de regresión de aprendizaje automático (excepto redes neuronales) incluyen Naive Bayes, Decision Tree, K-Neighbors Neighbors, LVQ (Learning Vector Quantization), LARS Lasso, Elastic Net, Random Forest, AdaBoost y XGBoost. Notará que existe cierta superposición entre los algoritmos de aprendizaje automático para la regresión y la clasificación.

Algoritmos de agrupamiento

Un problema de agrupamiento es un problema de aprendizaje no supervisado que pide al modelo que busque grupos de puntos de datos similares. El algoritmo más popular es Clustering K-Means; otros incluyen Clustering de cambio medio, DBSCAN (Clustering espacial basado en densidad de aplicaciones con ruido), GMM (Modelos de mezcla gaussiana) y HAC (Clustering aglomerativo jerárquico).

Algoritmos de reducción de dimensionalidad

La reducción de la dimensionalidad es un problema de aprendizaje no supervisado que pide al modelo que elimine o combine variables que tienen poco o ningún efecto sobre el resultado. Esto se usa a menudo en combinación con clasificación o regresión. Los algoritmos de reducción de dimensionalidad incluyen eliminar variables con muchos valores perdidos, eliminar variables con baja varianza, árbol de decisión, bosque aleatorio, eliminar o combinar variables con alta correlación, eliminación de características hacia atrás, selección de características hacia adelante, análisis factorial y PCA (análisis de componentes principales).

Métodos de optimización

El entrenamiento y la evaluación convierten los algoritmos de aprendizaje supervisado en modelos optimizando los pesos de sus parámetros para encontrar el conjunto de valores que mejor coincide con la verdad básica de sus datos. Los algoritmos a menudo se basan en variantes de descenso más pronunciado para sus optimizadores, por ejemplo, descenso de gradiente estocástico (SGD), que es esencialmente el descenso más pronunciado realizado varias veces desde puntos de partida aleatorios.

Los refinamientos comunes en SGD agregan factores que corrigen la dirección del gradiente según el impulso, o ajustan la tasa de aprendizaje según el progreso de una pasada a través de los datos (llamada época o lote) a la siguiente.

Redes neuronales y aprendizaje profundo

Las redes neuronales se inspiraron en la arquitectura de la corteza visual biológica. El aprendizaje profundo es un conjunto de técnicas de aprendizaje en redes neuronales que involucra una gran cantidad de capas “ocultas” para identificar características. Las capas ocultas se encuentran entre las capas de entrada y salida. Cada capa está formada por neuronas artificiales, a menudo con funciones de activación sigmoidea o ReLU (unidad lineal rectificada).

En una red de retroalimentación, las neuronas están organizadas en capas distintas: una capa de entrada, cualquier cantidad de capas de procesamiento ocultas y una capa de salida, y las salidas de cada capa van solo a la siguiente.

En una red de alimentación directa con conexiones de acceso directo, algunas conexiones pueden saltar sobre una o más capas intermedias. En las redes neuronales recurrentes, las neuronas pueden influirse a sí mismas, ya sea directa o indirectamente a través de la siguiente capa.

El aprendizaje supervisado de una red neuronal se realiza como cualquier otro aprendizaje automático: presenta a la red grupos de datos de entrenamiento, compara la salida de la red con la salida deseada, genera un vector de error y aplica correcciones a la red en función del vector de error , generalmente usando un algoritmo de retropropagación. Los lotes de datos de entrenamiento que se ejecutan juntos antes de aplicar las correcciones se denominan épocas.

Al igual que con todo el aprendizaje automático, debe comparar las predicciones de la red neuronal con un conjunto de datos de prueba separado. Sin hacer eso, corre el riesgo de crear redes neuronales que solo memoricen sus entradas en lugar de aprender a ser predictores generalizados.

El gran avance en el campo de la red neuronal para la visión fue LeNet-5 de 1998 de Yann LeCun, una red neuronal convolucional (CNN) de siete niveles para el reconocimiento de dígitos escritos a mano digitalizados en imágenes de 32x32 píxeles. Para analizar imágenes de mayor resolución, la red necesitaría más neuronas y más capas.

Las redes neuronales convolucionales suelen utilizar capas convolucionales, agrupadas, ReLU, totalmente conectadas y de pérdida para simular una corteza visual. La capa convolucional básicamente toma las integrales de muchas pequeñas regiones superpuestas. La capa de agrupación realiza una forma de muestreo descendente no lineal. Las capas ReLU, que mencioné anteriormente, aplican la función de activación no saturante f(x) = max(0,x).

En una capa completamente conectada, las neuronas tienen conexiones completas con todas las activaciones en la capa anterior. Una capa de pérdida calcula cómo el entrenamiento de la red penaliza la desviación entre las etiquetas predichas y verdaderas, usando una pérdida de Softmax o de entropía cruzada para la clasificación o una pérdida euclidiana para la regresión.

El procesamiento del lenguaje natural (PNL) es otra área de aplicación importante para el aprendizaje profundo. Además del problema de traducción automática abordado por Google Translate, las principales tareas de PNL incluyen resumen automático, resolución de co-referencias, análisis de discurso, segmentación morfológica, reconocimiento de entidades nombradas, generación de lenguaje natural, comprensión del lenguaje natural, etiquetado de parte del discurso, sentimiento análisis y reconocimiento de voz.

Además de las CNN, las tareas de PNL a menudo se abordan con redes neuronales recurrentes (RNN), que incluyen el modelo de memoria a largo y corto plazo (LSTM).

Cuantas más capas haya en una red neuronal profunda, más cálculo se necesitará para entrenar el modelo en una CPU. Los aceleradores de hardware para redes neuronales incluyen GPU, TPU y FPGA.

Aprendizaje reforzado

El aprendizaje por refuerzo entrena a un actor o agente para responder a un entorno de una manera que maximiza algún valor , generalmente mediante prueba y error. Eso es diferente del aprendizaje supervisado y no supervisado, pero a menudo se combina con ellos.

Por ejemplo, AlphaGo de DeepMind, para aprender a jugar (la acción) el juego de Go (el entorno), primero aprendió a imitar a los jugadores de Go humanos a partir de un gran conjunto de datos de juegos históricos (aprendizaje de aprendices). Luego mejoró su juego por prueba y error (aprendizaje por refuerzo), jugando un gran número de juegos de Go contra instancias independientes de sí mismo.

El control robótico es otro problema que ha sido atacado con métodos de aprendizaje por refuerzo profundo, es decir, aprendizaje por refuerzo más redes neuronales profundas, las redes neuronales profundas a menudo son CNN capacitadas para extraer características de fotogramas de video.

Cómo utilizar el aprendizaje automático

¿Cómo se puede crear un modelo de aprendizaje automático? Comienza limpiando y acondicionando los datos, continúa con la ingeniería de funciones y luego prueba todos los algoritmos de aprendizaje automático que tengan sentido. Para ciertas clases de problemas, como la visión y el procesamiento del lenguaje natural, los algoritmos que probablemente funcionen implican el aprendizaje profundo.

Limpieza de datos para aprendizaje automático

No existen datos limpios en la naturaleza. Para que sea útil para el aprendizaje automático, los datos deben filtrarse de manera agresiva. Por ejemplo, querrás:

  1. Mire los datos y excluya las columnas que tengan muchos datos faltantes.
  2. Mire los datos nuevamente y elija las columnas que desea usar ( selección de características ) para su predicción. Esto es algo que puede querer variar cuando repita.
  3. Excluya las filas que aún tengan datos faltantes en las columnas restantes.
  4. Corrija errores tipográficos obvios y combine respuestas equivalentes. Por ejemplo, EE. UU., EE. UU., EE. UU. Y América deben fusionarse en una sola categoría.
  5. Excluya las filas que tienen datos fuera de rango. Por ejemplo, si está analizando viajes en taxi dentro de la ciudad de Nueva York, querrá filtrar filas con latitudes y longitudes de recogida o devolución que estén fuera del cuadro delimitador del área metropolitana.

Hay mucho más que puede hacer, pero dependerá de los datos recopilados. Esto puede ser tedioso, pero si configura un paso de limpieza de datos en su canal de aprendizaje automático, puede modificarlo y repetirlo a voluntad.

Codificación y normalización de datos para el aprendizaje automático

Para utilizar datos categóricos para la clasificación de la máquina, debe codificar las etiquetas de texto en otro formulario. Hay dos codificaciones comunes.

Una es la codificación de etiquetas , lo que significa que cada valor de etiqueta de texto se reemplaza por un número. La otra es la codificación one-hot , lo que significa que cada valor de etiqueta de texto se convierte en una columna con un valor binario (1 o 0). La mayoría de los marcos de aprendizaje automático tienen funciones que realizan la conversión por usted. En general, se prefiere la codificación one-hot, ya que la codificación de etiquetas a veces puede confundir al algoritmo de aprendizaje automático haciéndole pensar que la columna codificada está ordenada.