Vous avez raison sur les données non étiquetées. Les RBM sont des modèles génératifs et le plus souvent utilisés comme apprenants non supervisés.
Lorsqu'elle est utilisée pour construire un réseau de croyances profondes, la procédure la plus courante consiste simplement à former chaque nouveau RBM un à la fois car ils sont empilés les uns sur les autres. Donc, la divergence contrastive ne va pas de haut en bas dans le sens que je pense que vous voulez dire. Il ne fonctionne qu'avec une seule RBM à la fois, en utilisant la couche cachée de la RBM la plus haute précédente comme entrée pour la nouvelle RBM la plus haute. Après tout cela, vous pouvez soit traiter la pile de poids RBM comme les poids initiaux pour un réseau neuronal à action directe standard et vous entraîner à l'aide de vos données étiquetées et de la rétropropagation, soit faire quelque chose de plus exotique, comme utiliser l'algorithme de réveil-sommeil. Notez que nous n'avons utilisé aucune donnée étiquetée jusqu'à cette dernière étape, c'est l'un des avantages de ces types de modèles.
D'un autre côté, il existe plusieurs façons d'utiliser les RBM pour la classification.
- Former un RBM ou une pile de plusieurs RBM. Utilisez la couche cachée la plus haute comme entrée pour un autre apprenant supervisé.
- Former un RBM pour chaque classe et utiliser les énergies non normalisées comme entrée dans un classificateur discriminant.
- Former le RBM pour être un modèle de densité conjointe de P (X, Y). Puis, étant donné une certaine entrée x, choisissez simplement la classe y qui minimise la fonction d'énergie (la normalisation n'est pas un problème ici comme ci-dessus car la constante Z est la même pour toutes les classes).
- Former un RBM discriminant
Je vous suggère fortement de lire le rapport technique Un guide pratique de la formation des machines Boltzmann restreintes de Geoff Hinton. Il aborde plusieurs de ces questions de manière beaucoup plus détaillée, fournit des conseils précieux, cite de nombreux articles pertinents et peut aider à dissiper toute autre confusion que vous pourriez avoir.
Veuillez consulter la mise en œuvre, http://code.google.com/p/matrbm/ . Il a une fonction d'ajustement rmb de classification qui mérite d'être considérée. Faites-moi également savoir si vous trouvez de meilleures implémentations de DBN et de RMB pour la classification et la régression.
la source
Je pense qu'une façon de tester des réseaux de neurones comme la machine Boltzman restreinte (RBM) est de les appliquer à de nouveaux ensembles de données, ou plus généralement à un sous-ensemble de l'ensemble de données, et de voir comment ils fonctionnent. Vous pouvez également tester le modèle avec validation croisée. J'ai utilisé une boîte à outils logicielle d'apprentissage machine ouverte (ML) populaire qui est simple à installer et à utiliser, et qui vous permet de tester facilement de nombreux types d'algorithmes ML séparément avec un certain nombre de statistiques de régression du modèle ( http: // www. cs.waikato.ac.nz/ml/weka/ ). Cela pourrait vous donner une analyse rapide sans trop d'intervention, sauf les bases de l'exécution du programme, bien que cela ne vaille pas la peine s'il est difficile de formater vos données (bien que vous puissiez généralement google "csv to arff convert online" par exemple pour le formatage en une étape).
la source