Au cours de la dernière année, j'ai beaucoup entendu parler des cadres de programmation probabiliste (PP) comme PyMC3 et Stan , et de la qualité de PP. Et aujourd'hui, quelqu'un a partagé ce lien avec moi: Pyro: un langage de programmation probabiliste profond
Cependant, je ne suit pas vraiment ce qui est spécial à ce sujet car cela ressemble à tout ce que vous pouvez faire en PP, vous pouvez le faire dans n'importe quel autre langage à usage général. Je suis sûr qu'il y a des aspects techniques du PP qui le rendent attrayant (par exemple le calcul parallèle), mais mis à part, PP est-il vraiment différent de tout autre langage?
Question: Je me demandais s'il y avait un consensus sur ce qu'était PP et en quoi il diffère des autres logiciels statistiques comme R, Matlab, Mathematica. Il convient de noter que PyMC3
et Stan
se concentrent sur une analyse plus bayésienne.
En faisant un peu de recherche sur Google, je suis tombé sur les deux définitions suivantes. Le premier plus abstrait et le second plus sur les caractéristiques techniques de PP.
1.2. La programmation probabiliste est
Au lieu de cela, la programmation probabiliste est un outil de modélisation statistique. L'idée est d'emprunter des leçons du monde des langages de programmation et de les appliquer aux problèmes de conception et d'utilisation de modèles statistiques. Les experts construisent déjà des modèles statistiques - à la main, en notation mathématique sur papier - mais c'est un processus réservé aux experts qui est difficile à supporter avec le raisonnement mécanique. L'idée clé de PP est que la modélisation statistique peut, lorsque vous le faites suffisamment, commencer à ressembler beaucoup à la programmation. Si nous faisons le saut et utilisons réellement un vrai langage pour notre modélisation, de nombreux nouveaux outils deviennent possibles. Nous pouvons commencer à automatiser les tâches qui justifiaient la rédaction d'un article pour chaque instance.
Voici une deuxième définition : un langage de programmation probabiliste est un langage de programmation ordinaire avec
rand
et une grande pile d'outils connexes qui vous aident à comprendre le comportement statistique du programme.Ces deux définitions sont exactes. Ils soulignent simplement différents angles sur la même idée centrale. Le choix qui vous convient dépendra de la raison pour laquelle vous souhaitez utiliser PP. Mais ne vous laissez pas distraire par le fait que les programmes PPL ressemblent beaucoup à des implémentations logicielles ordinaires, où le but est d'exécuter le programme et d'obtenir une sorte de sortie. L'objectif en PP est l'analyse, pas l'exécution (accent ajouté).
Je voudrais savoir si la communauté statistique générale est d'accord avec ces deux définitions de PP, et s'il y a d'autres caractéristiques, cette définition peut manquer.