El aprendizaje de características es el conjunto de métodos que permiten encontrar una representación adecuada de los datos para realizar una tarea de aprendizaje automático. En otras palabras, el objetivo del aprendizaje de características es encontrar una transformación que mapee los datos en bruto en una representación que sea más adecuada para una tarea de aprendizaje automático (por ejemplo, clasificación).
Veámoslo a través de un ejemplo. Para este propósito, utilizaremos una red neuronal, que explota el concepto de aprendizaje de características por su propia naturaleza. En una red neuronal, cada capa oculta asigna sus datos de entrada a una representación interna que tiende a capturar un mayor nivel de abstracción.
Supongamos que queremos clasificar el siguiente conjunto de datos:
- Como programador novato, ¿realmente necesito conocer toda la documentación de un lenguaje o marco de programación para comenzar, o lo aprenderé acumulativamente mientras trabajo en un proyecto pequeño?
- Todos estos algoritmos de aprendizaje automático, ¿cuál es el punto? Parece que la elección del algoritmo de aprendizaje automático, el árbol de decisión, la red neuronal, svm, no es tan importante como la selección de características y el proceso de extracción de características que determina lo que entra, basura en basura, ese tipo de cosas.
- ¿Cuál es la relación entre el modelo Log Linear, el modelo MaxEnt y la regresión logística?
- ¿SSD es realmente mejor que YOLO?
- ¿Por qué se utiliza un descenso gradiente iterativo para redes neuronales y no inmediato?
Figura 1. Conjunto de datos que queremos clasificar.
Tenga en cuenta que este conjunto de datos no es separable linealmente, porque no podemos separarlo usando un modelo lineal (como una red neuronal de avance sin capas ocultas) sin modificar nuestra entrada. Por ejemplo, al entrenar una red neuronal de avance sin ninguna capa oculta utilizando este conjunto de datos, obtenemos los siguientes límites de clasificación:
Figura 2. Límites de clasificación obtenidos cuando entrenamos una red neuronal de avance sin ninguna capa oculta para clasificar nuestro conjunto de datos.
Aquí es donde el aprendizaje de características hace la diferencia. Las redes neuronales pueden aprender representaciones internas de datos a través de capas ocultas, y es por eso que son tan poderosas. Acompañadas por una función de activación no lineal adecuada, las capas ocultas mapean sus datos de entrada en un espacio no lineal más abstracto.
Al aprender múltiples representaciones internas sucesivas de datos, esperamos encontrar una transformación tal que las características latentes resultantes sean linealmente separables. Una vez que lo logremos, realizar una regresión logística simple en la parte superior de la red será suficiente para hacer una clasificación precisa.
Recuerde que no pudimos separar una clase de otra con una línea recta. Ahora, imagine que tiene la Figura 1 trazada en una hoja transparente. ¿Qué harías para hacer que los datos sean linealmente separables?
Podría doblar la hoja transparente en A = B. Tenga en cuenta que ahora puede dibujar una línea recta en la hoja transparente que separa una clase de la otra. ¡Acaba de aprender una representación interna de datos que lo hace linealmente separable!
Eso es exactamente lo que hace una red neuronal. Por ejemplo, al entrenar una red neuronal de avance con una capa oculta utilizando nuestro conjunto de datos, aprende la siguiente representación interna de datos:
Figura 3. Representación interna de datos en la capa oculta. Podrías imaginar esto como una vista superior de la hoja transparente. Tenga en cuenta que ahora podríamos dibujar fácilmente una línea recta que separe una clase de la otra.
En este caso, así es como se ven los límites de clasificación:
Figura 4. Límites de clasificación obtenidos cuando entrenamos una red neuronal de avance con una capa oculta para clasificar nuestro conjunto de datos.
Finalmente, es importante agregar que una red neuronal puede aprender transformaciones mucho más complejas que plegar una hoja. Además, espero poder brindarle la intuición detrás de las representaciones internas de los datos y el aprendizaje de características .
Nota: Cada cifra de esta respuesta se ha obtenido utilizando este marco de red neuronal didáctico y minimalista que implementé desde cero: rvinas / nnn.