Aprendizaje profundo versus aprendizaje automático
Tanto el aprendizaje automático como el aprendizaje profundo descubren patrones en los datos, pero involucran técnicas dramáticamente diferentes

por Martin Heller

El aprendizaje automático y el aprendizaje profundo son formas de inteligencia artificial . También puede decir, correctamente, que el aprendizaje profundo es un tipo específico de aprendizaje automático. Tanto el aprendizaje automático como el aprendizaje profundo comienzan con datos de prueba y entrenamiento y un modelo, y pasan por un proceso de optimización para encontrar los pesos que hacen que el modelo se ajuste mejor a los datos. Ambos pueden manejar problemas numéricos (regresión) y no numéricos (clasificación), aunque existen varias áreas de aplicación, como el reconocimiento de objetos y la traducción de idiomas, donde los modelos de aprendizaje profundo tienden a producir mejores ajustes que los modelos de aprendizaje automático.

Aprendizaje profundo versus aprendizaje automático
Aprendizaje profundo versus aprendizaje automático

Explicación del aprendizaje automático

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).

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 mayor 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 solicita 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 (menos 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 regresión y clasificación.

Algoritmos de agrupamiento

Un problema de agrupamiento es un problema de aprendizaje no supervisado que le pide al modelo que encuentre grupos de puntos de datos similares. El algoritmo más popular es Clustering de K-Means; otros incluyen Clustering de desplazamiento medio, DBSCAN (Clustering espacial de aplicaciones con ruido basado en densidad), 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 en 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 se adapte a 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, que es esencialmente el descenso más pronunciado realizado varias veces desde puntos de partida aleatorios.

Los refinamientos comunes en el descenso de gradiente estocástico agregan factores que corrigen la dirección del gradiente según el impulso, o ajustan la tasa de aprendizaje según el progreso de un paso a través de los datos (llamado una época o un lote) al siguiente.

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 forma 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 tengan 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 se supone que es una lista ordenada.

Para usar datos numéricos para la regresión de la máquina, generalmente necesita normalizar los datos. De lo contrario, los números con rangos más grandes podrían tender a dominar la distancia euclidiana entre los vectores de características , sus efectos podrían magnificarse a expensas de los otros campos y la optimización de descenso más pronunciada podría tener dificultades para converger. Hay varias formas de normalizar y estandarizar los datos para el aprendizaje automático, incluida la normalización mínimo-máximo, la normalización media, la estandarización y el escalado a la longitud de la unidad. Este proceso a menudo se denomina escalamiento de características .

Ingeniería de funciones para el aprendizaje automático

Un rasgo es una propiedad individual mensurable o una característica de un fenómeno que se observa. El concepto de “característica” está relacionado con el de variable explicativa, que se utiliza en técnicas estadísticas como la regresión lineal. Los vectores de características combinan todas las características de una sola fila en un vector numérico.

Parte del arte de elegir características es elegir un conjunto mínimo de variables independientes que expliquen el problema. Si dos variables están muy correlacionadas, es necesario combinarlas en una sola característica o descartar una. A veces, las personas realizan análisis de componentes principales para convertir variables correlacionadas en un conjunto de variables linealmente no correlacionadas.

Algunas de las transformaciones que la gente usa para construir nuevas características o reducir la dimensionalidad de los vectores de características son simples. Por ejemplo, reste Year of Birthde Year of Deathy construya Age at Death, que es una variable independiente principal para el análisis de vida y mortalidad. En otros casos, la construcción de características puede no ser tan obvia.

División de datos para el aprendizaje automático

La práctica habitual para el aprendizaje automático supervisado es dividir el conjunto de datos en subconjuntos para entrenamiento , validación y prueba . Una forma de trabajar es asignar el 80% de los datos al conjunto de datos de entrenamiento y el 10% a cada uno de los conjuntos de datos de validación y prueba. (La división exacta es una cuestión de preferencia). La mayor parte del entrenamiento se realiza contra el conjunto de datos de entrenamiento, y la predicción se realiza contra el conjunto de datos de validación al final de cada época.

Los errores en el conjunto de datos de validación se pueden usar para identificar criterios de detención o para impulsar el ajuste de hiperparámetros. Lo más importante es que los errores en el conjunto de datos de validación pueden ayudarlo a averiguar si el modelo se ha sobreajustado a los datos de entrenamiento.

La predicción contra el conjunto de datos de prueba se realiza normalmente en el modelo final. Si el conjunto de datos de prueba nunca se utilizó para el entrenamiento, a veces se denomina conjunto de datos reservados.

Hay varios otros esquemas para dividir los datos. Una técnica común, la validación cruzada , implica dividir repetidamente el conjunto de datos completo en un conjunto de datos de entrenamiento y un conjunto de datos de validación. Al final de cada época, los datos se barajan y se vuelven a dividir.

Bibliotecas de aprendizaje automático

En Python, Spark MLlib y Scikit -learn son excelentes opciones para las bibliotecas de aprendizaje automático. En R, algunas opciones de paquetes de aprendizaje automático son CARAT, randomForest, e1071 y KernLab. En Java, las buenas opciones incluyen Java-ML, RapidMiner y Weka.

Explicación del aprendizaje profundo

El aprendizaje profundo es una forma de aprendizaje automático en la que el modelo que se está entrenando tiene más de una capa oculta entre la entrada y la salida. En la mayoría de las discusiones, el aprendizaje profundo significa utilizar redes neuronales profundas . Sin embargo, existen algunos algoritmos que implementan el aprendizaje profundo utilizando otros tipos de capas ocultas además de las redes neuronales.

Las ideas de redes neuronales “artificiales” se remontan a la década de 1940. El concepto esencial es que una red de neuronas artificiales construida a partir de interruptores de umbral interconectados puede aprender a reconocer patrones de la misma manera que lo hace el cerebro y el sistema nervioso de un animal (incluida la retina).

Backprop

El aprendizaje ocurre básicamente fortaleciendo la conexión entre dos neuronas cuando ambas están activas al mismo tiempo durante el entrenamiento. En el software moderno de redes neuronales, esto es más comúnmente una cuestión de aumentar los valores de peso para las conexiones entre neuronas utilizando una regla llamada propagación inversa del error , backprop o BP.

Neuronas en redes neuronales artificiales

¿Cómo se modelan las neuronas? Cada uno tiene una función de propagación que transforma las salidas de las neuronas conectadas, a menudo con una suma ponderada. La salida de la función de propagación pasa a una función de activación, que se dispara cuando su entrada supera un valor de umbral.

Funciones de activación en redes neuronales

En las décadas de 1940 y 1950, las neuronas artificiales utilizaban una función de activación escalonada y se llamaban perceptrones . Las redes neuronales modernas pueden decir que están usando perceptrones, pero en realidad tienen funciones de activación suave, como la función logística o sigmoidea, la tangente hiperbólica o la unidad lineal rectificada (ReLU). ReLU suele ser la mejor opción para una convergencia rápida, aunque tiene el problema de que las neuronas “mueren” durante el entrenamiento si la tasa de aprendizaje se establece demasiado alta.

La salida de la función de activación puede pasar a una función de salida para darle forma adicional. Sin embargo, a menudo, la función de salida es la función de identidad, lo que significa que la salida de la función de activación se pasa a las neuronas conectadas aguas abajo.

Topologías de redes neuronales

Ahora que conocemos las neuronas, necesitamos aprender sobre las topologías comunes de las redes neuronales. En una red de alimentación directa, las neuronas se organizan en capas distintas: una capa de entrada, n capas de procesamiento ocultas y una capa de salida. Las salidas de cada capa van solo a la siguiente capa.

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.

Entrenamiento de redes neuronales

El aprendizaje supervisado de una red neuronal se realiza como cualquier otro aprendizaje automático: presenta la red con 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 según el vector de error . Los lotes de datos de entrenamiento que se ejecutan juntos antes de aplicar las correcciones se denominan épocas.

Para aquellos interesados ​​en los detalles, la propagación inversa usa el gradiente de la función de error (o costo) con respecto a los pesos y sesgos del modelo para descubrir la dirección correcta para minimizar el error. Dos cosas controlan la aplicación de correcciones: el algoritmo de optimización y la variable de tasa de aprendizaje. La variable de la tasa de aprendizaje generalmente debe ser pequeña para garantizar la convergencia y evitar la muerte de las neuronas ReLU.

Optimizadores para redes neuronales

Los optimizadores para redes neuronales suelen utilizar algún tipo de algoritmo de descenso de gradiente para impulsar la retropropagación, a menudo con un mecanismo para ayudar a evitar quedarse atascado en mínimos locales, como optimizar mini lotes seleccionados al azar (descenso de gradiente estocástico) y aplicar correcciones de impulso al degradado. Algunos algoritmos de optimización también adaptan las tasas de aprendizaje de los parámetros del modelo al observar el historial del gradiente (AdaGrad, RMSProp y Adam).

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

Algoritmos de aprendizaje profundo

Una red neuronal profunda para un problema real puede tener más de 10 capas ocultas. Su topología puede ser simple o bastante compleja.

Cuantas más capas haya en la red, más características podrá reconocer. Desafortunadamente, cuantas más capas haya en la red, más tiempo tomará calcular y más difícil será entrenar.

Las redes neuronales convolucionales (CNN) se utilizan a menudo para la visión artificial. 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 aplican la función de activación no saturante f (x) = max (0, x). En una capa completamente conectada, las neuronas tienen conexiones 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 función de pérdida de entropía cruzada o Softmax para la clasificación, o una función de pérdida euclidiana para la regresión.

Las redes neuronales recurrentes (RNN) se utilizan a menudo para el procesamiento del lenguaje natural ( NLP ) y otro procesamiento de secuencias, al igual que las redes de memoria a corto plazo (LSTM) y las redes neuronales basadas en la atención. En las redes neuronales de alimentación hacia adelante, la información fluye desde la entrada, a través de las capas ocultas, hasta la salida. Esto limita la red a lidiar con un solo estado a la vez.

En las redes neuronales recurrentes, la información recorre un bucle, lo que permite que la red recuerde salidas anteriores recientes. Esto permite el análisis de secuencias y series de tiempo. Los RNN tienen dos problemas comunes: gradientes explosivos (se arreglan fácilmente sujetando los gradientes) y gradientes que desaparecen (no tan fáciles de arreglar).

En los LSTM, la red es capaz de olvidar (activar) información previa y recordarla, en ambos casos modificando los pesos. Esto le da a un LSTM memoria a corto y largo plazo, y resuelve el problema del gradiente que desaparece. Los LSTM pueden manejar secuencias de cientos de entradas pasadas.

Los módulos de atención son puertas generalizadas que aplican pesos a un vector de entradas. Un codificador de atención neuronal jerárquico utiliza múltiples capas de módulos de atención para lidiar con decenas de miles de entradas pasadas.

Los bosques de decisión aleatoria (RDF), que no son redes neuronales, son útiles para una variedad de problemas de clasificación y regresión. Los RDF se construyen a partir de muchas capas, pero en lugar de neuronas se construye un RDF a partir de árboles de decisión y genera un promedio estadístico (modo para clasificación o media para regresión) de las predicciones de los árboles individuales. Los aspectos aleatorios de los RDF son el uso de agregación bootstrap (también conocido como ensacado ) para árboles individuales y tomar subconjuntos aleatorios de las características de los árboles.

XGBoost (eXtreme Gradient Boosting), que tampoco es una red neuronal profunda, es un sistema de refuerzo de árboles escalable de extremo a extremo que ha producido resultados de vanguardia en muchos desafíos de aprendizaje automático. El embolsado y el refuerzo se mencionan a menudo al mismo tiempo; la diferencia es que, en lugar de generar un conjunto de árboles aleatorios, la mejora del árbol de gradiente comienza con un único árbol de decisión o regresión, lo optimiza y luego construye el siguiente árbol a partir de los residuos del primer árbol.

Algunos de los mejores marcos de trabajo de aprendizaje profundo de Python son TensorFlow , Keras , PyTorch y MXNet . Deeplearning4j es uno de los mejores marcos de aprendizaje profundo de Java. ONNX y TensorRT son tiempos de ejecución para modelos de aprendizaje profundo.

Aprendizaje profundo versus aprendizaje automático

En general, los algoritmos de aprendizaje automático clásicos (no profundos) entrenan y predicen mucho más rápido que los algoritmos de aprendizaje profundo; una o más CPU a menudo serán suficientes para entrenar un modelo clásico. Los modelos de aprendizaje profundo a menudo necesitan aceleradores de hardware como GPU, TPU o FPGA para entrenamiento y también para implementación a escala; sin ellos, los modelos tardarían meses en entrenarse.

Para muchos problemas, algunos algoritmos clásicos de aprendizaje automático producirán un modelo “suficientemente bueno”. Para otros problemas, los algoritmos clásicos de aprendizaje automático no han funcionado muy bien en el pasado.

Un área que generalmente se ataca con el aprendizaje profundo es el procesamiento del lenguaje natural , que abarca la traducción de idiomas, el resumen automático, la resolución de co-referencias, el análisis del discurso, la segmentación morfológica, el reconocimiento de entidades nombradas, la generación del lenguaje natural, la comprensión del lenguaje natural, la parte del discurso. etiquetado, análisis de sentimientos y reconocimiento de voz.

Otra área primordial para el aprendizaje profundo es la clasificación de imágenes, que incluye clasificación de imágenes con localización, detección de objetos, segmentación de objetos, transferencia de estilo de imagen, coloración de imágenes, reconstrucción de imágenes, superresolución de imágenes y síntesis de imágenes.

Además, el aprendizaje profundo se ha utilizado con éxito para predecir cómo interactuarán las moléculas con el fin de ayudar a las compañías farmacéuticas a diseñar nuevos medicamentos, buscar partículas subatómicas y analizar automáticamente las imágenes de microscopio utilizadas para construir un mapa tridimensional del cerebro humano.

Martin Heller es editor colaborador y revisor de InfoWorld. Anteriormente, consultor de programación web y Windows, desarrolló bases de datos, software y sitios web de 1986 a 2010. Más recientemente, se ha desempeñado como vicepresidente de tecnología y educación en Alpha Software y presidente y director ejecutivo de Tubifi.

Fuente: https://www.infoworld.com/article/3512245/deep-learning-vs-machine-learning-understand-the-differences.html

Deja un comentario