Aprendizaje profundo versus aprendizaje automático: comprenda las diferencias

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

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 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, 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 época o 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 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 se supone que la columna codificada 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 suele ser 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 usaban 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.

[También sobre: ​​6 formas de hacer que falle el aprendizaje automático]

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 redes neuronales. En una red de alimentación directa, las neuronas están organizadas 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 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 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 propagación hacia atrás, 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 a la 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).