J'ai regardé quelques tutoriels pour pénétrer Keras pour un apprentissage en profondeur à l'aide de réseaux de neurones convolutionnels. Dans le tutoriel (et dans la documentation officielle de Keras), le jeu de données MNIST est chargé comme suit:
from keras.datasets import mnist
(x_train, y_train), (x_test, y_test) = mnist.load_data()
Cependant, aucune explication n'est fournie pour expliquer pourquoi nous avons deux tuples de données. Ma question est: quels sont x_train
et y_train
et en quoi diffèrent-ils de leur x_test
et y_test
homologues?
L'ensemble d'apprentissage est un sous-ensemble de l'ensemble de données utilisé pour former un modèle.
x_train
est l'ensemble de données d'entraînement.y_train
est l'ensemble d'étiquettes de toutes les données dans x_train
.L'ensemble de tests est un sous-ensemble de l'ensemble de données que vous utilisez pour tester votre modèle une fois que le modèle a subi la vérification initiale par l'ensemble de validation.
x_test
est l'ensemble de données de test.y_test
est l'ensemble d'étiquettes de toutes les données dans x_test
.L'ensemble de validation est un sous-ensemble de l'ensemble de données (distinct de l'ensemble d'apprentissage) que vous utilisez pour ajuster les hyperparamètres.
J'ai fait une Deep Learning avec Keras playlist sur Youtube. Il contient les bases pour commencer avec Keras, et quelques démonstrations de vidéos sur la façon d'organiser les images en ensembles de formation/valides/de test, ainsi que sur la façon d'obtenir que Keras crée un ensemble de validation pour vous. Voir cette implémentation peut vous aider à mieux comprendre comment ces différents ensembles de données sont utilisés dans la pratique.
L'objectif final de tous les algorithmes d'apprentissage automatique est de généraliser à de nouvelles données. si vous créez un modèle basé sur toutes les données dont vous disposez, vous ne disposerez pas d'une mesure sur les performances de votre modèle sur les nouvelles données. Pour résoudre ce problème, nous divisons normalement les données du train en trois parties, le jeu de données du train, le jeu de données de développement/réglage et le jeu de données de test. Prenons l'exemple de la division des données en deux parties, former et tester. Dans ce cas, vous devez d'abord diviser vos données en train 60/70/80% et test 40/30/20 et appliquer une validation croisée 10 fois et une recherche dans la grille qui seraient également utiles pour le réglage. Rappelez-vous jusqu'à ce que vous vous entraîniez et régliez les données de votre train (vous ne toucheriez jamais vos données de test pendant la phase de réglage sans même regarder leurs distributions ou quoi que ce soit). Une fois votre modèle généré, vous l'exécuterez sur des données de test et obtiendrez les performances de votre modèle sur des données de test. Cela agirait comme une mesure des performances de votre modèle sur des données inconnues.