0 votes
par dans 02 - L’enfer des données, des modèles et des représentations...
Bonjour,

on parle en ce moment du test du K-fold, avec un exemple k = n, mais concrètement à, la fin on se retrouve dans cet exemple avec n réseaux de neuronnes différents, non? Dans ce cas lequel et le meilleur si on souhaite l'utiliser ensuite pour faire des prédictions ? celui avec la plus grande précision? ou celui qui est le plus moyen dans l'ensemble?

Egalement lorsqu'on paramètre un entrainement d'un réseau de neurones avec un taux pour l'entrainement et un autre pour la validation (hypothèse : le jeu de "test" est extrait des données avant), par exemple la fonction model.fit () dans tensorflow : est ce qu'au cours de la totalité de l'entrainement les jeux de données "train" et "validation" restent les mêmes ou est-ce qu'ils changent à chaque EPOCH ?

3 Réponses

0 votes
par (5.6k points)
sélectionné par
 
Meilleure réponse
Le k-fold est une méthode utilisée pour des datasets de "petites tailles" et pour lequel il est difficile d'évaluer fiablement un modèle avec un partage classique du dataset en train / val / test, c'est une manière de mieux comparer plusieurs modèles prédictifs. Une fois le modèle selectionné, on essaiera de l'entrainer sans le kfold.
0 votes
par Vétéran du GPU 🐋 (46.6k points)
Normalement ça importe peu parce que le split est aléatoire donc tous les résultats sont à peu près équivalent. Si c'est pas le cas alors notre méthode n'est pas fiable.

Les données de test et de train restent les mêmes pendant tout l'apprentissage sinon on finit par apprendre sur les données de test ce qui est un peu de la "triche" et ne permettra pas de détecter de l'overfitting.
par
Merci, ma 2e question concerne plutôt le split entre données de validation et données d'entrainement qui est plus obscur, car je ne sais pas exactement ce que font ces fonctions. La fonction model.fit de tensorflow demande de spécifier un % de données de validation dans les données d'entrainement.
par Vétéran du GPU 🐋 (46.6k points)
En gros si tu mets 15%. Au début il va prendre 15% des données de manière totalement aléatoire et les séparer du reste. Il va entraîner sur les 85% restants, et à chaque époque, il va vérifier comment le modèle se comporte sur les 15% qu'il n'a jamais vu et sur lesquelles il n'est pas entraîné. C'est pour vérifier la capacité de généralisation du réseau de neurones.
0 votes
par
Tu peux en effet garder le meilleur k model (sur le test set) pour la prediction; sachant que ca n'a pas trop de sens car le but du k-fold est de prouver que la variance entre les k models est faible. Du coup tu peux avoir avoir une meilleure predictin avec le k model qui n'est pas le 'meilleur'!
...