Обратный вызов досрочного прекращения - это мощный инструмент в глубоком обучении для предотвращения переобучения. Переобучение происходит, когда нейронная сеть слишком хорошо подстраивается под обучающий набор и теряет способность обобщать новые данные. Досрочное прекращение предотвращает переобучение, останавливая процесс обучения, когда производительность нейронной сети перестает улучшаться на проверочном наборе.
В Keras, популярной библиотеке глубокого обучения, реализовать обратный вызов досрочного прекращения очень просто. Для этого выполните следующие шаги:
from keras import callbacks
early_stopping = callbacks.EarlyStopping(patience=5, restore_best_weights=True)
patience
: Количество эпох, которые могут пройти без улучшения производительности на проверочном наборе, прежде чем будет активировано досрочное прекращение.restore_best_weights
: Указывает, следует ли восстанавливать веса модели с лучшей производительностью на проверочном наборе после досрочного прекращения.fit()
: model.fit(..., callbacks=[early_stopping])
Рассмотрим пример использования обратного вызова досрочного прекращения для обучения нейронной сети для классификации изображений.
import tensorflow as tf
from keras import datasets, models, callbacks
(x_train, y_train), (x_test, y_test) = datasets.mnist.load_data()
model = models.Sequential([
tf.keras.layers.Flatten(input_shape=(28, 28)),
tf.keras.layers.Dense(128, activation='relu'),
tf.keras.layers.Dense(10, activation='softmax')
])
early_stopping = callbacks.EarlyStopping(patience=5, restore_best_weights=True)
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])
model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test), callbacks=[early_stopping])
Обратите внимание, что мы указываем validation_data
в fit()
, чтобы обратный вызов мог отслеживать производительность на проверочном наборе.
Использование обратного вызова досрочного прекращения имеет ряд преимуществ:
Обратный вызов досрочного прекращения - это простой в использовании, но мощный инструмент для повышения производительности нейронных сетей. Он предотвращает переобучение, сокращает время обучения и улучшает обобщающую способность. Применяя обратный вызов досрочного прекращения в свои проекты, вы можете добиться существенных улучшений производительности своих моделей.