Что означает стандартная модель Keras? Что такое эпоха и потеря в Керасе?
Я только что построил свою первую модель с использованием Keras, и это выход. Это похоже на стандартный вывод, который вы получаете после создания любой искусственной нейронной сети Keras. Даже после просмотра документации я не полностью понимаю, что такое эпоха и что такое потеря, которая печатается на выходе.
что такое эпоха и потеря в Керасе?
(Я знаю, что это, вероятно, очень простой вопрос, но я не мог найти ответ в интернете, и если ответ действительно так трудно извлечь из документации, я думал, что у других будет тот же вопрос, и поэтому решил опубликовать его здесь.)
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
2 ответов
просто ответить на вопросы более конкретно, вот определение эпохи и потери:
эпохи: полный проход над всеми вашими обучение данные.
например, на ваш взгляд выше, у вас есть замечания 1213. Таким образом, эпоха завершается, когда она закончила тренировочный проход над всеми 1213 вашими наблюдениями.
потеря: скалярное значение, которое мы пытаемся минимизировать во время обучения модели. Нижний чем больше потери, тем ближе наши прогнозы к истинным меткам.
это обычно средняя квадратная ошибка (MSE), как сказал Дэвид Мауст выше, или часто в Керасе,Категориальная Перекрестная Энтропия
то, что вы ожидаете увидеть от запуска fit на вашей модели Keras, - это уменьшение потерь за n эпох. Ваш тренировочный бег довольно ненормален, так как ваша потеря на самом деле увеличивается. Это мог бы из-за скорости обучения, которая слишком велика, что приводит к тому, что вы перекрываете optima.
Как упоминалось в jaycode, вы захотите взглянуть на производительность вашей модели на невидимых данных, так как это общий случай машинного обучения.
таким образом, вы должны включить список метрик в свой метод компиляции, который может выглядеть так:
model.compile(optimizer='rmsprop', loss='categorical_crossentropy', metrics=['accuracy'])
а также запустить модель при проверке во время метода fit, например:
model.fit(data, labels, validation_split=0.2)
есть еще много, чтобы объяснить, но, надеюсь, это это тебя заводит.
одна эпоха заканчивается, когда ваша модель запустила данные через все узлы в вашей сети и готова обновить веса, чтобы достичь оптимального значения потерь. То есть, чем меньше, тем лучше. В вашем случае, поскольку есть более высокие баллы потерь на более высокой эпохе," кажется", что модель лучше на первой эпохе.
Я сказал "Кажется", так как мы не можем сказать наверняка, пока модель не была протестирована с использованием правильного метода перекрестной проверки, т. е. она оценивается только против ее обучения данные.
способы улучшения вашей модели:
- используйте перекрестную проверку в вашей модели Keras, чтобы узнать, как модель на самом деле работает, хорошо ли она обобщает при прогнозировании новых данных, которые она никогда не видела раньше?
- настройте скорость обучения, структуру модели нейронной сети, количество скрытых единиц / слоев, init, оптимизатор и параметры активатора, используемые в вашей модели среди множества других вещей.
объединение sklearn GridSearchCV с Keras может автоматизировать этот процесс.