[Deeplearning.ai] Aprendizaje profundo: en proyectos estructurados de aprendizaje automático

[Deeplearning.ai] Aprendizaje profundo: en proyectos estructurados de aprendizaje automático

吴恩达老师DeepLearning.ai课程笔记
【吴恩达Deeplearning.ai笔记一】直观解释逻辑回归
【吴恩达deeplearning.ai笔记二】通俗讲解神经网络上
【吴恩达deeplearning.ai笔记二】通俗讲解神经网络下
深度网络不好使?吴恩达老师带你优化神经网络(1)
【deeplearning.ai】深度学习:优化神经网络(2)

Cuando se crea un sistema de aprendizaje automático y se obtienen algunos resultados preliminares, a menudo se necesitan muchas mejoras para obtener los resultados más satisfactorios. Como se mencionó en la optimización anterior de redes neuronales, hay muchas formas de mejorar, que pueden ser recolectar más datos, realizar una regularización o utilizar diferentes algoritmos de optimización.

Para encontrar la dirección de mejora y hacer que un sistema de aprendizaje automático funcione más rápido y de manera más eficiente, debe aprender algunas estrategias que se usan comúnmente al crear sistemas de aprendizaje automático.

1 Ortogonalización


Uno de los desafíos de construir un sistema de aprendizaje automático es que hay muchas cosas que se pueden probar y cambiar. Por ejemplo, hay muchos hiperparámetros que deben entrenarse. Es muy importante captar la dirección de la experimentación y el cambio, y darse cuenta del impacto de cada ajuste realizado.

La ortogonalización es un atributo del diseño del sistema que asegura que cuando se modifica una instrucción de algoritmo o un componente de un sistema, los efectos secundarios no se generarán ni se propagarán a otros componentes del sistema.

Facilita la verificación de que un algoritmo es independiente de otro y también reduce el tiempo de diseño y desarrollo.

Por ejemplo, cuando aprende a conducir un automóvil, está aprendiendo principalmente los tres métodos de control básicos de dirección, aceleración y frenado. Estos tres métodos de control no interfieren entre sí. Solo necesita dominarlos mediante un entrenamiento continuo.

Y si desea aprender a conducir un automóvil con un solo joystick, el joystick está diseñado para controlar una determinada curva y una cierta velocidad cada vez que lo opera, entonces el costo de aprendizaje será mucho mayor. La llamada ortogonalización es la verdad.

Al diseñar un sistema de aprendizaje supervisado, se deben cumplir los siguientes cuatro supuestos y son ortogonales:

  1. El modelo establecido funciona bien en el conjunto de entrenamiento;
  2. El modelo establecido funciona bien en el conjunto de desarrollo (conjunto de validación);
  3. El modelo establecido funcionó bien en el equipo de prueba;
  4. El modelo establecido funciona bien en aplicaciones reales.

Después de la ortogonalización, si encuentra:

  1. El rendimiento en el conjunto de entrenamiento no es lo suficientemente bueno; intente utilizar una red neuronal más profunda o cambie a un algoritmo de optimización mejor;
  2. El rendimiento en el conjunto de desarrollo no es lo suficientemente bueno; intente regularizar o agregar más datos de entrenamiento;
  3. El rendimiento en el conjunto de prueba no es lo suficientemente bueno; intente utilizar más conjuntos de desarrollo para la verificación de la prueba;
  4. El rendimiento no es lo suficientemente bueno en aplicaciones reales; puede deberse a que el equipo de prueba no está configurado correctamente o la evaluación de la función de costo es incorrecta.

Ante diversos problemas encontrados, la ortogonalización puede ayudarnos a localizar y resolver problemas con mayor precisión.

2 evaluación de un solo número


Al crear un sistema de aprendizaje automático, al establecer una métrica de evaluación de un solo número, puede determinar más rápidamente cuál de los diferentes resultados obtenidos después de varios ajustes tiene el mejor efecto.

Para un clasificador, el índice para evaluar el desempeño del clasificador es generalmente la precisión de la clasificación (Exactitud), es decir, la relación entre el número de muestras clasificadas correctamente y el número total de muestras, que también se puede utilizar como un índice de estimación de un solo número. Por ejemplo, varios algoritmos del clasificador de gatos anterior utilizan la precisión como estándar para su rendimiento.

Los indicadores de evaluación de uso común para problemas de clasificación binaria son Precisión y Recuperación. La clase en cuestión se considera una clase positiva y las otras clases se consideran una clase negativa (Negativa), y el clasificador predice sobre el conjunto de datos Correcto o incorrecto, el número de especies en los cuatro casos se registra como:

  • TP (verdadero positivo): predice la clase positiva como un número de clase positivo
  • FN (falso negativo): predice la clase positiva como un número de clase negativo
  • FP (falso positivo): predice la clase negativa como número de clase positivo
  • TN (Verdadero Negativo): predice la clase negativa como un número de clase negativo
    [Deeplearning.ai] Aprendizaje profundo: en proyectos estructurados de aprendizaje automático
    . Cuando la siguiente situación es difícil de distinguir, debe utilizar la métrica F1 (Puntuación F1) para juzgar la calidad de los dos clasificadores.
    [Deeplearning.ai] Aprendizaje profundo: en proyectos estructurados de aprendizaje automático
    La métrica F1 se define como:

La métrica F1 es en realidad la Media Armónica de la tasa de precisión y la tasa de recuperación, es un método basado en la mejora del valor promedio, que es mejor que simplemente tomar el valor promedio.

De esta manera, el valor de la métrica F1 del clasificador A en la figura anterior se calcula en 92,4% y el clasificador B es 91,0%. Nunca se ha sabido que el clasificador A sea mejor. Aquí, el valor de medición F1 se utiliza como un único indicador de evaluación numérico.

3Conozca y optimice los indicadores


[Deeplearning.ai] Aprendizaje profundo: en proyectos estructurados de aprendizaje automático

A veces, sin embargo, el criterio para juzgar no se limita a un solo indicador numérico de evaluación. Por ejemplo, varios clasificadores de gatos en la figura anterior quieren preocuparse por su respectiva precisión de reconocimiento y tiempo de ejecución al mismo tiempo, pero no es lo suficientemente bueno combinar estos dos indicadores en un solo indicador de evaluación numérico.

En este momento, debe establecer un indicador como indicador de optimización (Métrica de optimización) y otros como indicador de satisfacción (Métrica de satisfacción).

Como en el ejemplo anterior, la precisión es un índice de optimización, porque desea que el clasificador clasifique de la manera más correcta posible y el tiempo de ejecución es un índice satisfactorio. Si desea que el tiempo de ejecución del clasificador no supere un cierto valor , Entonces, el clasificador que debe elegir debe ser el que tenga la mayor precisión en este valor para hacer una compensación.

Además de utilizar estos criterios para evaluar un modelo, también debe aprender a ajustar algunos indicadores de evaluación a tiempo cuando sea necesario, e incluso cambiar los datos de entrenamiento.

Por ejemplo, los errores de reconocimiento de los dos clasificadores de gatos A y B son 3% y 5%, respectivamente, pero por alguna razón, el reconocedor A identificará erróneamente la imagen pornográfica como un gato, causando incomodidad al usuario, mientras que B no tendrá esta En este caso, B con un error de reconocimiento mayor es un mejor clasificador. La siguiente fórmula se puede utilizar para calcular la tasa de reconocimiento falso:
[Deeplearning.ai] Aprendizaje profundo: en proyectos estructurados de aprendizaje automático

También puede establecer un ω (i), cuando x (i) es una imagen pornográfica, ω (i) es 10, de lo contrario es 1, para distinguir entre imágenes pornográficas y otras imágenes no reconocidas: de
[Deeplearning.ai] Aprendizaje profundo: en proyectos estructurados de aprendizaje automático
acuerdo con la situación real, correcto Determine un índice de evaluación para asegurarse de que el índice de evaluación sea óptimo.

4 procesamiento de datos


Al construir un sistema de aprendizaje automático, el método de procesamiento del conjunto de datos afectará el progreso de todo el proceso de construcción. Como hemos sabido antes, los datos existentes recopilados generalmente se dividen en un conjunto de entrenamiento, un conjunto de desarrollo y un conjunto de prueba. El conjunto de desarrollo también se denomina conjunto de validación cruzada.

Al construir un sistema de aprendizaje automático, se utilizan varios métodos diferentes para entrenar diferentes modelos en el conjunto de entrenamiento y luego usar el conjunto de desarrollo para evaluar la calidad del modelo, y luego usar el conjunto de prueba para probar cuando esté seguro de que un determinado modelo es lo suficientemente bueno.

Lo primero que hay que tener en cuenta es que la fuente del conjunto de desarrollo y el conjunto de prueba deben ser la misma, y ​​deben seleccionarse al azar de todos los datos. Los conjuntos de desarrollo y prueba seleccionados deben ser lo más coherentes posible con los datos reales que enfrentará el sistema de aprendizaje automático en el futuro. Solo así no podremos desviarnos del objetivo tanto como sea posible.

En segundo lugar, debemos prestar atención a la división del tamaño de cada conjunto de datos. En la era temprana del aprendizaje automático, para todos los conjuntos de datos que tiene, generalmente usa el 70% de ellos como el conjunto de entrenamiento y el 30% restante como el conjunto de prueba; o si desea unirse al conjunto de desarrollo, use el 60% como el conjunto de entrenamiento. 20% para los conjuntos de desarrollo y prueba.

Cuando los datos obtenidos son relativamente pequeños, esta división es razonable. Pero en la era actual del aprendizaje automático, la cantidad de datos obtenidos es generalmente de decenas de miles. En este momento, no se puede dividir según el método tradicional de división de datos.

Si se obtienen un millón de muestras de datos, el 98% de los datos se utilizará como conjunto de entrenamiento, y el 1% o 10.000 datos se utilizarán como conjunto de desarrollo y el 1% de los datos será suficiente como conjunto de prueba.

Por lo tanto, los datos deben dividirse según la situación real, en lugar de seguir rígidamente la tradición.

El tamaño del conjunto de prueba debe establecerse lo suficiente para mejorar la confiabilidad del rendimiento general del sistema, y ​​el tamaño del conjunto de desarrollo debe establecerse lo suficiente para evaluar varios modelos diferentes.

5 comparar el desempeño humano


Hoy en día, diseñar y construir un sistema de aprendizaje automático es más sencillo y eficiente que antes. Algunos algoritmos de aprendizaje automático pueden competir con los humanos en muchas áreas, como AlphaGo desarrollado por Google DeepMind.

Sin embargo, muchas tareas para nosotros, los humanos, se pueden completar casi perfectamente, y los sistemas de aprendizaje automático también están tratando de alcanzar o superar el rendimiento humano.
[Deeplearning.ai] Aprendizaje profundo: en proyectos estructurados de aprendizaje automático

La figura anterior muestra los cambios en el aprendizaje automático y los niveles de rendimiento humano a lo largo del tiempo. Generalmente, cuando el aprendizaje automático supera los niveles de rendimiento humano, progresa lentamente. Una de las razones importantes es que los humanos El nivel de rendimiento de algunos problemas de percepción natural se acerca al Error de Bayes (Error de Bayes).

El error bayesiano se define como el mejor error posible, en otras palabras, cualquier función de mapeo desde x hasta la precisión y no puede exceder este valor.

Cuando el rendimiento del modelo de aprendizaje automático establecido no ha alcanzado el nivel de rendimiento humano, se puede mejorar por varios medios. Por ejemplo, el uso de datos etiquetados manualmente para la capacitación, mediante el análisis manual de errores para comprender por qué las personas pueden identificarse correctamente, o la realización de análisis de varianza y sesgo.

El concepto de sesgo y varianza se ha involucrado en la optimización de las redes neuronales. Al comparar con el nivel de rendimiento de los humanos en algo, puede mostrar claramente qué tan bien se desempeña un modelo de aprendizaje automático en esto y luego emitir un juicio ¿Debería reducirse la desviación o la varianza debería reducirse más tarde?

[Deeplearning.ai] Aprendizaje profundo: en proyectos estructurados de aprendizaje automático

La diferencia entre el error del conjunto de entrenamiento y el error del desempeño humano se denomina sesgo evitable (sesgo evitable).

Por ejemplo, en los dos escenarios de la figura anterior, compare la tasa de error humano con la tasa de error del modelo de aprendizaje automático para ver que en el escenario A, la tasa de error del algoritmo de aprendizaje y la tasa de error del humano son relativamente grandes. En este caso, el trabajo de seguimiento es reducir la tasa de error del conjunto de entrenamiento a través del método introducido anteriormente para reducir la desviación. En el escenario B, el algoritmo de aprendizaje y el rendimiento humano son equivalentes, y la desviación evitable es solo del 0,5%. El trabajo de seguimiento debe cambiar para reducir la varianza del 2% entre el conjunto de desarrollo y el conjunto de entrenamiento tanto como sea posible.

El nivel de desempeño humano proporciona un método de estimación de error bayesiano. Cuando se entrena un sistema de aprendizaje automático para un cierto tipo de cosa, el nivel de desempeño humano en la cosa se usa como el error bayesiano, que evita la tasa de error del entrenamiento durante el proceso de entrenamiento. Optimice directamente con el 0% como objetivo.

Por tanto, cuando se obtienen los datos de error humano de una determinada tarea, estos datos se pueden utilizar como el agente del error bayesiano para analizar la desviación y varianza del algoritmo de aprendizaje.

Si la diferencia de error entre el conjunto de entrenamiento y el nivel de rendimiento humano es mayor que la diferencia entre el conjunto de entrenamiento y el conjunto de desarrollo, entonces debe centrarse en reducir el sesgo; de lo contrario, debería centrarse en reducir la varianza.
[Deeplearning.ai] Aprendizaje profundo: en proyectos estructurados de aprendizaje automático

La figura anterior resume varios métodos para lidiar con la desviación y la varianza. En resumen, la desviación evitable es pequeña, lo que significa que el proceso de entrenamiento del modelo es mejor; la variación dentro del rango aceptable significa que el rendimiento del modelo construido en los conjuntos de desarrollo y prueba es tan bueno como en el conjunto de entrenamiento.

Además, si el error evitable es negativo, es decir, cuando el rendimiento del modelo de aprendizaje automático supera el nivel de rendimiento humano (un proxy del error bayesiano), no significa que el rendimiento de su modelo haya llegado al extremo. Para mejorar su rendimiento, es necesario encontrar algunos otros métodos convencionales de optimización.

Ahora, el aprendizaje automático ha hecho esto en muchos campos, como el negocio de la publicidad en línea, la promoción de productos, la logística de pronósticos y el tiempo de transporte, la evaluación crediticia, etc.

Nota: Las imágenes y los materiales incluidos en este artículo se compilaron y tradujeron de la serie Deep Learning de Andrew Ng, y los derechos de autor le pertenecen. El nivel de traducción y cotejo es limitado, y le invitamos a señalar cualquier punto inadecuado.
[Deeplearning.ai] Aprendizaje profundo: en proyectos estructurados de aprendizaje automático

Lectura recomendada:

Procesos de Markov del proceso de decisión de Markov
[Combate real de aprendizaje profundo] Cómo lidiar con el relleno de secuencia de longitud variable de entrada RNN en pytorch
[Teoría básica del aprendizaje automático ] Explicar la comprensión de la estimación de probabilidad posterior máxima (MAP) en detalle

      欢迎关注公众号学习交流~         

[Deeplearning.ai] Aprendizaje profundo: en proyectos estructurados de aprendizaje automático

Supongo que te gusta

Origin blog.51cto.com/15009309/2554226
Recomendado
Clasificación