Что означает стандартная модель 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 может автоматизировать этот процесс.