python - redes - tensorflow
¿Qué significa la salida del modelo estándar de Keras? ¿Qué es época y pérdida en Keras? (2)
Solo para responder las preguntas más específicamente, aquí hay una definición de época y pérdida:
Época : un pase completo sobre todos sus datos de entrenamiento .
Por ejemplo, en su vista anterior, tiene 1213 observaciones. Entonces, una época concluye cuando ha terminado un pase de entrenamiento sobre todas las 1213 observaciones.
Pérdida : un valor escalar que intentamos minimizar durante nuestro entrenamiento del modelo. Cuanto menor sea la pérdida, más cercanas estarán nuestras predicciones a las etiquetas verdaderas.
Esto es generalmente el Error Cuadrático Medio (MSE) como dijo David Maust anteriormente, o con frecuencia en Keras, entropía cruzada categórica
Lo que esperaría ver al funcionar en su modelo Keras, es una disminución en la pérdida en un n número de épocas. Su entrenamiento es bastante anormal, ya que su pérdida en realidad está aumentando. Esto podría deberse a una tasa de aprendizaje que es demasiado grande, lo que está causando que supere el límite óptimo.
Como se mencionó en jaycode, querrá ver el rendimiento de su modelo en datos no vistos, ya que este es el caso de uso general de Machine Learning.
Como tal, debe incluir una lista de métricas en su método de compilación, que podría verse así:
model.compile(optimizer=''rmsprop'', loss=''categorical_crossentropy'', metrics=[''accuracy''])
Además de ejecutar su modelo en la validación durante el método de ajuste, como:
model.fit(data, labels, validation_split=0.2)
Hay mucho más que explicar, pero espero que esto te permita comenzar.
Acabo de construir mi primer modelo usando Keras y esta es la salida. Se parece a la salida estándar que obtiene después de construir cualquier red neuronal artificial Keras. Incluso después de mirar en la documentación, no entiendo completamente qué es la época y cuál es la pérdida que se imprime en la salida.
¿Qué es época y pérdida en Keras?
(Sé que es probablemente una pregunta extremadamente básica, pero parece que no puedo encontrar la respuesta en línea, y si la respuesta es realmente tan difícil de extraer de la documentación, pensé que otros tendrían la misma pregunta y decidí publicarla aquí .)
Epoch 1/20
1213/1213 [==============================] - 0s - loss: 0.1760
Epoch 2/20
1213/1213 [==============================] - 0s - loss: 0.1840
Epoch 3/20
1213/1213 [==============================] - 0s - loss: 0.1816
Epoch 4/20
1213/1213 [==============================] - 0s - loss: 0.1915
Epoch 5/20
1213/1213 [==============================] - 0s - loss: 0.1928
Epoch 6/20
1213/1213 [==============================] - 0s - loss: 0.1964
Epoch 7/20
1213/1213 [==============================] - 0s - loss: 0.1948
Epoch 8/20
1213/1213 [==============================] - 0s - loss: 0.1971
Epoch 9/20
1213/1213 [==============================] - 0s - loss: 0.1899
Epoch 10/20
1213/1213 [==============================] - 0s - loss: 0.1957
Epoch 11/20
1213/1213 [==============================] - 0s - loss: 0.1923
Epoch 12/20
1213/1213 [==============================] - 0s - loss: 0.1910
Epoch 13/20
1213/1213 [==============================] - 0s - loss: 0.2104
Epoch 14/20
1213/1213 [==============================] - 0s - loss: 0.1976
Epoch 15/20
1213/1213 [==============================] - 0s - loss: 0.1979
Epoch 16/20
1213/1213 [==============================] - 0s - loss: 0.2036
Epoch 17/20
1213/1213 [==============================] - 0s - loss: 0.2019
Epoch 18/20
1213/1213 [==============================] - 0s - loss: 0.1978
Epoch 19/20
1213/1213 [==============================] - 0s - loss: 0.1954
Epoch 20/20
1213/1213 [==============================] - 0s - loss: 0.1949
Una época finaliza cuando su modelo ha ejecutado los datos a través de todos los nodos de su red y está listo para actualizar los pesos para alcanzar el valor de pérdida óptimo. Es decir, más pequeño es mejor. En su caso, como hay puntajes de pérdida más altos en una época más alta, "parece" que el modelo es mejor en la primera época.
Dije "parece" ya que no podemos decir con certeza todavía ya que el modelo no se ha probado utilizando el método de validación cruzada adecuado, es decir, se evalúa solo en comparación con los datos de capacitación.
Formas de mejorar su modelo:
- Use la validación cruzada en su modelo Keras para averiguar cómo funciona realmente el modelo, ¿se generaliza bien cuando se predicen nuevos datos que nunca antes se habían visto?
- Ajuste su tasa de aprendizaje, la estructura del modelo de red neuronal, el número de unidades / capas ocultas, los parámetros init, optimizador y activador utilizados en su modelo entre otras muchas cosas.
La combinación de GridSearchCV de sklearn con Keras puede automatizar este proceso.