¿Cuáles son los diferentes enfoques que uno puede tomar para mejorar la precisión dado un conjunto de datos además de probar diferentes algoritmos en el aprendizaje automático?

Si está utilizando redes neuronales específicamente. La respuesta obvia es cambiar los hiperparámetros de una red neuronal, aquí hay algunos que aparecen en la mayoría de las redes neuronales.

  • Rata de aprendizaje e: cuánto cambian los pesos del gráfico en función del gradiente decente.
    • Cómo la variación de este parámetro afecta a su red: tasa baja, los pesos cambian lentamente hacia los niveles óptimos, el peso de la tasa alta cambia rápidamente, pero puede perder óptimos
  • Función de pérdida : mide la diferencia entre la salida de la red y la salida que se esperaba.
    • Cómo la variación de este parámetro afecta a su red: la distancia euclidiana funciona para mundos de baja dimensionalidad y distancia cosenoidal para alta dimensionalidad
  • Número de iteraciones : el número de veces que se pasa su conjunto en la red.
    • Cómo la variación de este parámetro afecta a su red: si tiene demasiadas iteraciones, la red puede ajustarse a sus datos y obtendrá malos resultados. Ver paro anticipado
  • Tamaño de lote : el tamaño del conjunto de aprendizaje aprobado en cada iteración de aprendizaje.
    • Cómo la variación de este parámetro afecta a su red: los lotes pequeños hacen que los pesos de actualización de su red sean más frecuentes, los lotes grandes aceleran el proceso de aprendizaje porque muchas operaciones paralelas pueden ejecutarse a la vez.
  • Tasa de abandono : para reducir el sobreajuste, la red “apagará” algunos nodos, por lo que no aprenderán durante esta iteración. (Sé que esto suena artificial)
    • Cómo varía este parámetro en su red: una alta tasa de abandono hace que su aprendizaje sea más lento. sin embargo, obliga a más nodos a aprender la tarea, lo que probablemente aumentará la precisión de su red
  • Momentum : Momentum es la desaceleración del efecto del descenso de gradiente, lo que significa que aprende rápido al principio y ralentiza su aprendizaje a medida que pasan las iteraciones.
    • Cómo varía este parámetro en su red: un momento cercano a 1 significa que el efecto de su gradiente decente se ralentizará muy progresivamente. por ejemplo si momentum = 0.9, será 0.9 después de una iteración, 0.81 después de dos, 0.729 después de tres, etc.
  • Pérdida de peso : esto es esencialmente olvidar, sus pesos y sesgos pueden tender hacia cero o hacia la aleatoriedad.
    • Cómo la variación de este parámetro afecta su red: esto le da un mayor efecto a los datos más recientes y disminuye el efecto de los datos más antiguos.
  • Número de capas : profundidad de su red neuronal, el número de capas ocultas.
    • Cómo la variación de este parámetro afecta su red: Hay muchas implicaciones que la profundidad puede afectar: ​​el tiempo que lleva aprender un conjunto de datos. tamaño del conjunto de datos necesario para la eficiencia. cómo interactuarán todos los demás hiperparámetros, etc.

Obviamente, hay ajuste de hiperparámetros, pero considero que eso es parte de probar un algoritmo, así que lo omitiré.

Lo más importante que puede hacer definitivamente es la ingeniería de características .

He estado trabajando con datos de imágenes en una red neuronal y, al reemplazar la imagen de entrada con su gradiente, logré mejorar el rendimiento en varios órdenes de magnitud.

Si [math] \ frac {x_1} {x_2} [/ math] es de gran importancia para la variable de respuesta, una red neuronal lo suficientemente profunda o lo suficientemente amplia puede aprender a aproximar [math] \ frac {x_1} {x_2} [/ matemática] con precisión arbitraria, pero si simplemente incluye [matemática] \ frac {x_1} {x_2} [/ matemática] como entrada, ya no tiene que hacerlo. Eso es muy significativo porque [math] \ frac {x_1} {x_2} [/ math] es difícil de aproximar con precisión para una red, especialmente cuando [math] x_2 [/ math] es pequeño.

Eso significa

  • Puedes usar una red más pequeña
  • Más rápido para entrenar / evaluar
  • Menos riesgo de sobreajuste
  • Puede usar una red del mismo tamaño y obtener más poder predictivo
    • Todos los nodos que antes estaban dedicados a aproximar [matemáticas] \ frac {x_1} {x_2} [/ matemáticas] ahora pueden converger a otra cosa sin perder ninguna información.

    Ese fue un ejemplo para las redes neuronales, pero la ingeniería de características es aún más importante en otros algoritmos porque a muchos de ellos les resulta mucho más difícil aproximar los efectos de cosas como [matemáticas] \ frac {x_1} {x_2} [/ matemáticas].