Quels problèmes d'entrée séquentielle conviennent le mieux à chacun? La dimensionnalité d'entrée détermine-t-elle celle qui correspond le mieux? Les problèmes qui nécessitent une "mémoire plus longue" sont-ils mieux adaptés à un LSTM RNN, alors que les problèmes de modèles d'entrée cycliques (bourse, météo) sont plus facilement résolus par un HMM?
Il semble qu'il y ait beaucoup de chevauchements; Je suis curieux de savoir quelles différences subtiles existent entre les deux.
Réponses:
Résumé
Les modèles de Markov cachés (HMM) sont beaucoup plus simples que les réseaux neuronaux récurrents (RNN) et reposent sur des hypothèses fortes qui ne sont pas toujours vraies. Si les hypothèses sont vraies, vous pouvez voir de meilleures performances d'un HMM car il est moins difficile de travailler.
Un RNN peut être plus performant si vous disposez d'un très grand ensemble de données, car la complexité supplémentaire peut mieux tirer parti des informations contenues dans vos données. Cela peut être vrai même si les hypothèses HMM sont vraies dans votre cas.
Enfin, ne vous limitez pas à ces deux modèles uniquement pour votre tâche de séquence, parfois des régressions plus simples (par exemple ARIMA) peuvent l'emporter, et parfois d'autres approches compliquées telles que les réseaux de neurones à convolution peuvent être les meilleures. (Oui, les CNN peuvent être appliqués à certains types de données de séquence, tout comme les RNN.)
Comme toujours, la meilleure façon de savoir quel modèle est le meilleur est de créer les modèles et de mesurer les performances sur un ensemble de test tenu.
Hypothèses solides des HMM
Les transitions entre États ne dépendent que de l'état actuel, pas de quoi que ce soit dans le passé.
Cette hypothèse ne tient pas dans beaucoup de domaines que je connais. Par exemple, faites comme si vous essayiez de prédire pour chaque minute de la journée si une personne était éveillée ou endormie à partir des données de mouvement. La chance de quelqu'un de transition endormi à éveillé augmente le plus la personne est dans le sommeil état. Un RNN pourrait théoriquement apprendre cette relation et l'exploiter pour une plus grande précision prédictive.
Vous pouvez essayer de contourner cela, par exemple en incluant l'état précédent en tant que fonctionnalité ou en définissant des états composites, mais la complexité supplémentaire n'augmente pas toujours la précision prédictive d'un HMM, et cela n'aide certainement pas les temps de calcul.
Vous devez prédéfinir le nombre total d'états.
Pour revenir à l'exemple du sommeil, il peut sembler que nous ne nous soucions que de deux états. Cependant, même si nous ne nous soucions que de prédire l' éveil par rapport au sommeil , notre modèle peut bénéficier de la détermination d'états supplémentaires tels que la conduite, la douche, etc. (par exemple, la douche vient généralement juste avant de dormir). Encore une fois, un RNN pourrait théoriquement apprendre une telle relation s'il en montrait suffisamment d'exemples.
Difficultés avec les RNN
Il peut sembler d'après ce qui précède que les RNN sont toujours supérieurs. Je dois cependant noter que les RNN peuvent être difficiles à faire fonctionner, surtout lorsque votre ensemble de données est petit ou vos séquences très longues. J'ai personnellement eu du mal à former les RNN sur certaines de mes données, et je soupçonne que la plupart des méthodes / directives RNN publiées sont réglées sur des données texte . Lorsque j'ai essayé d'utiliser des RNN sur des données non textuelles, j'ai dû effectuer une recherche hyperparamétrique plus large que je ne le souhaitais pour obtenir de bons résultats sur mes ensembles de données particuliers.
Dans certains cas, j'ai trouvé que le meilleur modèle pour les données séquentielles est en fait un style UNet ( https://arxiv.org/pdf/1505.04597.pdf ) Modèle de réseau neuronal convolutionnel car il est plus facile et plus rapide à former, et est capable pour prendre en compte le contexte complet du signal.
la source
Voyons d'abord les différences entre le HMM et le RNN.
À partir de cet article: Un tutoriel sur les modèles de Markov cachés et certaines applications de reconnaissance vocale, nous pouvons apprendre que HMM doit être caractérisé par les trois problèmes fondamentaux suivants:
Nous pouvons comparer le HMM avec le RNN de ces trois perspectives.
Probabilité
Probabilité dans HMM (Image A.5) Modèle de langage dans RNN
Décodage
Décodage en HMM (Figure A.10)
Décodage en RNN
Apprentissage
L'apprentissage en HMM est beaucoup plus compliqué que celui en RNN. Dans HMM, il utilise généralement l'algorithme Baum-Welch (un cas particulier de l'algorithme Expectation-Maximization) tandis que dans RNN, il s'agit généralement de la descente de gradient.
Pour vos sous-questions:
Lorsque vous ne disposez pas de suffisamment de données, utilisez le HMM et lorsque vous devez calculer la probabilité exacte, le HMM conviendrait également mieux (tâches génératives modélisant la façon dont les données sont générées). Sinon, vous pouvez utiliser RNN.
Je ne pense pas, mais cela peut prendre plus de temps à HMM pour savoir si les états cachés sont trop grands car la complexité des algorithmes (en avant en arrière et Viterbi) est fondamentalement le carré du nombre d'états discrets.
Dans HMM, l'état actuel est également affecté par les états et observations précédents (par les états parents), et vous pouvez essayer le modèle de Markov caché du second ordre pour une "mémoire plus longue".
Je pense que vous pouvez utiliser RNN pour faire presque
références
la source
J'ai trouvé cette question, parce que je me posais également des questions sur leurs similitudes et leurs différences. Je pense qu'il est très important de déclarer que les modèles de Markov cachés (HMM) n'ont pas d'entrées et de sorties au sens strict.
Les HMM sont des modèles dits génératifs , si vous avez un HMM, vous pouvez générer des observations telles quelles. Ceci est fondamentalement différent des RNN, car même si vous avez un RNN formé, vous avez besoin de commentaires.
Un exemple pratique où cela est important est la synthèse vocale. Les états cachés sous-jacents de Markov sont les téléphones et les événements de probabilité émis sont l'acoustique. Si vous avez un modèle de mot formé, vous pouvez en générer autant de réalisations différentes que vous le souhaitez.
Mais avec les RNN, vous devez fournir au moins quelques graines d'entrée pour sortir votre sortie. Vous pourriez faire valoir que dans les HMM, vous devez également fournir une distribution initiale, donc c'est similaire. Mais si nous nous en tenons à l'exemple de la synthèse vocale, ce n'est pas parce que la distribution initiale sera fixe (en commençant toujours par les premiers téléphones du mot).
Avec les RNN, vous obtenez une séquence de sortie déterministe pour un modèle entraîné, si vous utilisez tout le temps la même graine d'entrée. Avec HMM, vous ne le faites pas parce que les transitions et les émissions sont toujours échantillonnées à partir d'une distribution de probabilité.
la source