Estrategias de aprendizaje automático: optimización de los sistemas de aprendizaje profundo

Ortogonalización

Los televisores más antiguos tienen muchas perillas que se pueden usar para ajustar varias propiedades de la imagen. Para estos televisores más antiguos, puede haber una perilla para ajustar la altura vertical de la imagen, otra perilla para ajustar el ancho de la imagen y tal vez otra perilla. Se utiliza para ajustar el ángulo trapezoidal, también hay una perilla para ajustar el desplazamiento izquierdo y derecho de la imagen, y también hay una perilla para ajustar el ángulo de rotación de la imagen, etc.
En este caso, la ortogonalización significa que los diseñadores de televisores diseñan perillas para que cada perilla ajuste solo una propiedad, lo que hace mucho más fácil ajustar la imagen del televisor para que esté centrada.

Diseñe un dispositivo de control ortogonal que sea idealmente consistente con las propiedades que realmente desea controlar, de modo que le resulte mucho más fácil ajustar los parámetros.

Asegúrate de cuatro cosas.
1. En primer lugar, normalmente hay que asegurarse de que al menos el sistema obtenga buenos resultados en el conjunto de entrenamiento, por lo que el rendimiento en el conjunto de entrenamiento debe pasar algún tipo de evaluación y alcanzar un nivel aceptable.
2. Después de un buen desempeño en el conjunto de entrenamiento, espera que el sistema también pueda funcionar bien en el conjunto de desarrollo.
3. Entonces espera que el sistema también funcione bien en el equipo de prueba.
4. Al final, espera que la función de costo del sistema en el equipo de prueba funcione satisfactoriamente en el uso real.

Si su algoritmo no se ajusta bien al conjunto de entrenamiento en la función de costo, querrá una perilla, o un conjunto específico de perillas, que pueda usar para asegurarse de que puede ajustar su algoritmo para que haga un buen trabajo. configurado, por lo que la perilla que usa para depurar puede ser para entrenar una red más grande, o puede cambiar a un mejor algoritmo de optimización, como el algoritmo de optimización de Adam, etc.

Si su algoritmo funciona bien en el conjunto de entrenamiento, pero no en el conjunto de desarrollo, entonces tiene un conjunto de controles de regularización que puede ajustar para intentar que el sistema satisfaga la segunda condición. Aumentar el conjunto de entrenamiento puede ser otra perilla disponible que puede ayudar a que su algoritmo de aprendizaje se generalice mejor al conjunto de desarrollo.

¿Qué pasa si no cumple con el tercer criterio? ¿Qué pasa si el sistema funciona bien en el conjunto de desarrollo, pero no en el de prueba? Si es así, entonces necesita ajustar la perilla y posiblemente un conjunto de desarrollo más grande. Porque si funciona bien en el conjunto de desarrollo pero no en el conjunto de prueba, eso probablemente significa que estás sobreajustando el conjunto de desarrollo y necesitas dar un paso atrás y usar un conjunto de desarrollo más grande.

Finalmente, si funciona bien en el conjunto de prueba pero no brinda a sus usuarios una buena experiencia, significa que debe regresar y cambiar el conjunto de desarrollo o la función de costo. Porque si de acuerdo con una determinada función de costos, el sistema funciona bien en el conjunto de prueba, pero no refleja cómo se desempeña su algoritmo en el mundo real, significa que la distribución de su conjunto de desarrollo no está configurada correctamente o su función de costos Los indicadores medidos están equivocados.

En el aprendizaje automático, si puede observar su sistema, si no funciona bien en el conjunto de entrenamiento, no funciona bien en el conjunto de desarrollo, no funciona bien en el conjunto de prueba o no. "No funciona bien en el equipo de prueba. Es bueno, pero no es bueno en el mundo real. Tienes que descubrir qué está yendo mal, y luego resulta que tenemos la perilla correspondiente, o un conjunto de perillas correspondientes, que pueden resolver el problema". problema que limita el rendimiento del sistema de aprendizaje automático.

Métrica de evaluación de número único

El aprendizaje automático aplicado es un proceso muy empírico. Por lo general, tenemos una idea, la programamos, realizamos experimentos para ver cómo funciona, luego usamos estos resultados experimentales para mejorar sus ideas y luego continuamos este ciclo para mejorar continuamente su algoritmo.

Por ejemplo, para un clasificador cat, previamente construyó un determinado clasificador A. Al cambiar los hiperparámetros y cambiar el conjunto de entrenamiento, ahora ha entrenado un nuevo clasificador B, así que evalúe su clasificador. Una forma razonable es observar su precisión y recuperarla.

La precisión se define como cuántos de los ejemplos que su clasificador etiqueta como gatos son en realidad gatos. Entonces, si el clasificador A tiene una tasa de precisión del 95%, significa que cuando su clasificador dice que hay un gato en la imagen, hay un 95% de posibilidades de que en realidad sea un gato.

La recuperación es el porcentaje de imágenes de gatos reales que su clasificador identifica correctamente. ¿Cuántas imágenes de gatos reconoció realmente el sistema? Si la tasa de recuperación del clasificador A es del 90%, significa que para todas las imágenes, por ejemplo, su conjunto de desarrollo es una imagen de gato real, el clasificador A distingue con precisión el 90% de ellas.

Los hechos han demostrado que a menudo existe un equilibrio entre precisión y recuperación, y ambos indicadores deben tenerse en cuenta. Lo que quieres es que cuando tu clasificador diga que algo es un gato, hay una buena posibilidad de que realmente sea un gato, pero para todas las imágenes de gatos, también quieres que el sistema pueda clasificar la mayoría de las imágenes como gatos. se clasifica como un gato, por lo que es más razonable utilizar precisión y recuperación para evaluar el clasificador.

Pero cuando se utilizan la precisión y la recuperación como indicadores de evaluación, si se prueban muchas ideas diferentes y muchos hiperparámetros diferentes y se desea poder probar rápidamente una docena de clasificadores y seleccionar rápidamente el "mejor", si se utilizan dos indicadores de evaluación: precisión tasa y tasa de recuperación, el clasificador A se desempeña mejor en la tasa de recuperación y el clasificador B se desempeña mejor en la tasa de precisión. No se puede juzgar qué clasificador es mejor. Es muy difícil. Es difícil elegir rápidamente uno de dos o uno de diez , por lo que no se recomienda utilizar precisión y recuperación para seleccionar un clasificador en aplicaciones prácticas. Sólo necesita encontrar una nueva métrica de evaluación que combine precisión y recuperación.

En la literatura sobre aprendizaje automático, la forma estándar de combinar precisión y recuperación es la llamada F 1 F1Puntuación F 1 . De manera informal, puedes pensar en esto como el promedio de precisión P y recuperar R. Formalmente,F 1 F1La definición de fracción F 1 es esta fórmula: 2 1 P + 1 R \frac{2}{\frac{1}{P} + \frac{1}{R}}PAG1+R12

En matemáticas, esta función se llama media armónica de precisión P y recuperación R.
Insertar descripción de la imagen aquí
En el ejemplo anterior, puede ver inmediatamente que el clasificador A tiene F 1 F1La puntuación F 1 es mayor. Puede seleccionar rápidamente el clasificador A y eliminar el clasificador B.

Métricas satisfactorias y optimizadas

A veces no es fácil combinar todo lo que se considera en una única métrica de evaluación de números reales, en estos casos es importante configurar indicadores de satisfacción y optimización.

Al elegir un clasificador, puede maximizar la precisión, pero debe cumplir con los requisitos de tiempo de ejecución. Por ejemplo, el tiempo necesario para clasificar una imagen debe ser menor o igual a 100 milisegundos. Entonces, en este caso, digamos que la precisión es una métrica de optimización, porque desea maximizar la precisión, desea hacerlo con la mayor precisión posible, pero el tiempo de ejecución es lo que llamamos una métrica de satisfacción, lo que significa que tiene que ser suficiente. Bueno, sólo necesita ser menos de 100 milisegundos, y después de eso, no te importa qué tan buena sea la métrica, o al menos no te importa tanto. Por lo tanto, es una compensación o combinación bastante razonable de precisión y tiempo de ejecución. La realidad puede ser que mientras el tiempo de ejecución sea inferior a 100 milisegundos, a sus usuarios no les importará si el tiempo de ejecución es de 100 milisegundos o 50 milisegundos, o incluso más rápido.

Al definir métricas de optimización y satisfacción, esto le brinda una manera clara de elegir el "mejor" clasificador.
De manera más general, si tiene N indicadores a considerar, a veces tiene sentido elegir uno de ellos como indicador de optimización. Entonces desea optimizar ese indicador tanto como sea posible, y luego los N − 1 indicadores restantes son todos indicadores satisfactorios, lo que significa que siempre que alcancen un cierto umbral, por ejemplo, el tiempo de ejecución es más rápido que 100 milisegundos, usted No les importa su rendimiento después de que supere ese umbral, pero deben alcanzar este umbral.

Distribución de capacitación/desarrollo/pruebas

La forma en que configura sus conjuntos de capacitación, desarrollo y prueba afecta en gran medida la rapidez con la que usted o su equipo pueden avanzar en la creación de una aplicación de aprendizaje automático.

El conjunto de desarrollo ( dev ) también se denomina conjunto de desarrollo ( development set ), a veces llamado conjunto de validación cruzada de reserva (conjunto de validación cruzada de reserva). El flujo de trabajo en el aprendizaje automático consiste en probar muchas ideas, usar el conjunto de capacitación para entrenar diferentes modelos y luego usar el conjunto de desarrollo para evaluar las diferentes ideas, luego elegir una y luego continuar iterando para mejorar el rendimiento del conjunto de desarrollo. hasta que finalmente puedas obtener un costo que te satisfaga y luego uses el conjunto de prueba para evaluarlo.

Al dividir el conjunto de desarrollo y el conjunto de prueba, todos los datos deben mezclarse aleatoriamente y colocarse en el conjunto de desarrollo y el conjunto de prueba para que las dos partes de datos provengan de la misma distribución.

Tamaño de los conjuntos de desarrollo y prueba

Es posible que haya escuchado una regla general en el aprendizaje automático: dividir todos los datos que obtiene en un conjunto de entrenamiento y un conjunto de prueba en una proporción de 70/30. O si tiene que configurar un conjunto de entrenamiento, un conjunto de desarrollo y un conjunto de prueba, lo dividiría en un 60 % de un conjunto de entrenamiento, un 20 % de un conjunto de desarrollo y un 20 % de un conjunto de prueba. En los primeros días del aprendizaje automático, esta división era bastante razonable, especialmente porque los tamaños de los conjuntos de datos anteriores eran mucho más pequeños.

Pero en el aprendizaje automático moderno, estamos más acostumbrados a operar conjuntos de datos mucho más grandes. Por ejemplo, si tiene 1 millón de muestras de entrenamiento, puede ser más razonable dividirlas así, 98% como conjunto de entrenamiento, 1% como conjunto de entrenamiento. conjunto de desarrollo y 1% como conjunto de prueba.Utilizamos las abreviaturas D y T para representar el conjunto de desarrollo y el conjunto de prueba. Porque si tiene 1 millón de muestras, entonces el 1% son 10,000 muestras, lo que puede ser suficiente para el conjunto de desarrollo y el conjunto de prueba. Entonces, en la era moderna del aprendizaje profundo, a veces tenemos conjuntos de datos mucho más grandes, por lo que es razonable usar menos del 20% de los datos o menos del 30% de los datos como conjunto de desarrollo y conjunto de prueba.

Cuándo cambiar las métricas y los conjuntos de desarrollo/pruebas

Ya he hablado sobre cómo configurar el conjunto de desarrollo y las métricas de evaluación, que es como establecer un objetivo en una posición determinada a la que debe apuntar su equipo. Pero a veces, en medio de un proyecto, es posible que te des cuenta de que el objetivo está en el lugar equivocado. En este caso, debes mover tu objetivo.

La política es que, si le está yendo bien en sus métricas, en su conjunto de desarrollo actual o en las distribuciones de su conjunto de desarrollo y prueba, pero su aplicación real, en la que realmente se está concentrando en ella, no está funcionando bien, entonces Necesita modificar las métricas o su conjunto de pruebas de desarrollo.

Supongo que te gusta

Origin blog.csdn.net/Luo_LA/article/details/132522070
Recomendado
Clasificación