Suche probabilistische Programmiersprache

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Suche probabilistische Programmiersprache

Beitrag von weedy » 17.01.2017 10:12:29

Hi,

ich suche aus dem Debian-Repository eine bayessche oder probabilistische Programmiersprache. Leider kann ich über die normale Suche nichts finden.

Ich habe schon von einigen Sprachen gehört, die aber im Repository nicht vorhanden sind.

Z.B die Sprache Image (vom MIT), die auf Julia basiert. Die sollte Opensource sein, ist aber nicht im Repository. Und ggf. ist diese Sprache auch zu beschränkt, da sie primär nur auf Bildverarbeitung anwendbar ist.

Die Sprachen, denen ich begegnet bin, waren nicht opensource, in günstigsten Fall wurde wenigstens ein Binary zur Verfügung gestellt, aber da habe ich kein Vertrauen.

Also, falls jemand eine bayessche oder probabilistische Sprache aus dem Repository kennt, dann bitte hier melden. Danke.

Gruß

Benutzeravatar
novalix
Beiträge: 1909
Registriert: 05.10.2005 12:32:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: elberfeld

Re: Suche probabilistische Programmiersprache

Beitrag von novalix » 17.01.2017 11:48:26

weedy hat geschrieben: Z.B die Sprache Image (vom MIT), die auf Julia basiert. Die sollte Opensource sein, ist aber nicht im Repository. Und ggf. ist diese Sprache auch zu beschränkt, da sie primär nur auf Bildverarbeitung anwendbar ist.
Du meinst wahrscheinlich Picture.
Ohne das Projekt jetzt näher zu kennen, gehe ich davon aus, dass es letztlich eine DSL (Domain Specific Language) eben auf Basis von Julia ist. Die spezifische Problemdomäne, die damit in Angriff genommen werden soll, ist "computer vision". Probabilistische Verfahren stehen dabei im Vordergrund und werden deshalb bei der Konstruktion der DSL besonders hervorgehoben; es wurde eine abstraktive API für diese Arbeitsschritte geschaffen.
Die Grundlage bleibt aber die "Muttersprache" Julia. Man könnte jedes Picture-Programm auch direkt in Julia programmieren, allerdings wohl mit erheblich höherem Aufwand.
Julia ist ja mit dem Ziel angetreten ein gleichwertiges Macro-System wie Common Lisp zu implementieren, also ebenfalls eine programmierbare Programmiersprache zu sein. Die wesentliche Grundlage, um sinnvoll DSLs zu schreiben. In anderen Sprachen werden für solche Problemdomänen ublicherweise umfangreiche Bibliotheken geschrieben. Im Bereich computer vision wäre das etwa OpenCV.
Langer Rede kurzer Sinn: Letzlich können alle Programiersprachen, die Touring-Complete sind, stochastische Probleme lösen. Du solltest etwas näher darauf eingehen, welche Probleme/Aufgaben Dir konkret am Herzen liegen.
Das Wem, Wieviel, Wann, Wozu und Wie zu bestimmen ist aber nicht jedermannns Sache und ist nicht leicht.
Darum ist das Richtige selten, lobenswert und schön.

Benutzeravatar
Meillo
Moderator
Beiträge: 9232
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Suche probabilistische Programmiersprache

Beitrag von Meillo » 17.01.2017 13:04:47

http://p-nand-q.com/programming/languages/java2k/ hat geschrieben: Java2K is not a deterministic programming language, but a probabilistic one. Even for built-in functions, there is only a certain probability the function will do whatever you intend it to do.
Meinst du sowas? ;-)

Java2k ist allerdings auch nicht in den Debian Repos ... liegt sicher an der Lizenz:
## Copyright (C) 2004-4002 by Gerson Kurz (http://p-nand-q.com).
## All rights reserved. Free for any use whatsoever, enjoy!
Use ed once in a while!

Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Suche probabilistische Programmiersprache

Beitrag von weedy » 17.01.2017 13:37:34

Meillo hat geschrieben:
http://p-nand-q.com/programming/languages/java2k/ hat geschrieben: Java2K is not a deterministic programming language, but a probabilistic one. Even for built-in functions, there is only a certain probability the function will do whatever you intend it to do.
Meinst du sowas? ;-)

Java2k ist allerdings auch nicht in den Debian Repos ... liegt sicher an der Lizenz:
## Copyright (C) 2004-4002 by Gerson Kurz (http://p-nand-q.com).
## All rights reserved. Free for any use whatsoever, enjoy!
Nein, die Sprache meinte ich definitiv nicht.

Gruß

Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Suche probabilistische Programmiersprache

Beitrag von weedy » 17.01.2017 14:01:54

novalix hat geschrieben:
weedy hat geschrieben: Z.B die Sprache Image (vom MIT), die auf Julia basiert. Die sollte Opensource sein, ist aber nicht im Repository. Und ggf. ist diese Sprache auch zu beschränkt, da sie primär nur auf Bildverarbeitung anwendbar ist.
Du meinst wahrscheinlich Picture.
...
Langer Rede kurzer Sinn: Letzlich können alle Programiersprachen, die Touring-Complete sind, stochastische Probleme lösen. Du solltest etwas näher darauf eingehen, welche Probleme/Aufgaben Dir konkret am Herzen liegen.
Ja, ich meinte Picture.

Also ich suche eine Sprache oder Library für allgemeine bayessche bzw. probabilistische Programmierung, mit der man zb. auch unvollständige Trainingssaetze handhaben kann.

Vieleicht auch als Erweiterungs-Bibliothek für Prolog oder andere Sprachen.

Interresant wäre auch eine Sprache, in der der boolsche Datentyp grundsätzlich Wahrscheinlichkeitsbehaftet ist, so dass bei einem Branch in Wirklichkeit eine Art Markov-Chain-Berechnung durchgeführt wird.

Gruß

eggy
Beiträge: 3334
Registriert: 10.05.2008 11:23:50

Re: Suche probabilistische Programmiersprache

Beitrag von eggy » 17.01.2017 14:59:42

Hast Du Dich mal in Richtung R umgesehn?

Code: Alles auswählen

apt-cache search bayes |grep cran
r-cran-bayesm - GNU-R-Paket für Bayessche Statistik
r-cran-coda - Ausgabeanalyse und -diagnostiken für MCMC-Simulationen in R
r-cran-bayesfactor - GNU R Bayes factors for t-tests, ANOVAs and contingency tables
r-cran-bms - GNU R package for Bayesian model averaging for linear models
r-cran-conting - GNU R package for Bayesian analysis of contingency tables
r-cran-deal - Learning Bayesian Networks with Mixed Variables
r-cran-dosefinding - Planning and Analyzing Dose Finding experiments
r-cran-e1071 - GNU R package with miscellaneous functions of the Dept of Statisics (e1071)
r-cran-eco - GNU R routines for Bayesian ecological inference
r-cran-learnbayes - GNU R functions for learning bayesian inference
r-cran-mcmcpack - R routines for Markov chain Monte Carlo model estimation
r-cran-mi - GNU R package for Missing Data Imputation and Model Checking -- mi
r-cran-mnp - GNU R package for fitting multinomial probit (MNP) models
r-cran-rjags - R interface to the JAGS Bayesian statistics package
r-cran-seroincidence - GNU R seroincidence calculator tool
r-cran-spdep - GNU R spatial dependence: weighting schemes, statistics and models
r-cran-tgp - GNU R package "tgp: Bayesian treed Gaussian process models"
edit: Das copypastamonster hatte ein paar Einträge weggemampft

Benutzeravatar
weedy
Beiträge: 585
Registriert: 02.11.2002 21:47:49
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Suche probabilistische Programmiersprache

Beitrag von weedy » 17.01.2017 15:15:08

eggy hat geschrieben:Hast Du Dich mal in Richtung R umgesehn?

Code: Alles auswählen

apt-cache search bayes |grep cran
r-cran-bayesm - GNU-R-Paket für Bayessche Statistik
r-cran-coda - Ausgabeanalyse und -diagnostiken für MCMC-Simulationen in R
r-cran-bayesfactor - GNU R Bayes factors for t-tests, ANOVAs and contingency tables
r-cran-bms - GNU R package for Bayesian model averaging for linear models
r-cran-conting - GNU R package for Bayesian analysis of contingency tables
r-cran-deal - Learning Bayesian Networks with Mixed Variables
r-cran-dosefinding - Planning and Analyzing Dose Finding experiments
r-cran-e1071 - GNU R package with miscellaneous functions of the Dept of Statisics (e1071)
r-cran-eco - GNU R routines for Bayesian ecological inference
r-cran-learnbayes - GNU R functions for learning bayesian inference
r-cran-mcmcpack - R routines for Markov chain Monte Carlo model estimation
r-cran-mi - GNU R package for Missing Data Imputation and Model Checking -- mi
r-cran-mnp - GNU R package for fitting multinomial probit (MNP) models
r-cran-rjags - R interface to the JAGS Bayesian statistics package
r-cran-seroincidence - GNU R seroincidence calculator tool
r-cran-spdep - GNU R spatial dependence: weighting schemes, statistics and models
r-cran-tgp - GNU R package "tgp: Bayesian treed Gaussian process models"
edit: Das copypastamonster hatte ein paar Einträge weggemampft
Ja, also ich hatte schon die mcmc Dinger gefunden, aber noch keinen richtigen Durchblick. Jetzt ist erstmal Package jags dran, das ist auch in R-Package rjags (r-cran-rjags) enthalten, welches ein BUGS-Nachbau sein soll, hier ist wenigstens mal eine ordentliche Doku mitgeliefert.

Ich hoffe, die bringt Klarheit.

Die Beispiele aus https://en.wikipedia.org/wiki/Bayesian_network habe ich schon in Prolog/CHR implementiert, aber das scheint nur ein kleiner Einstieg überhaupt zu sein.

Ich bin also noch auf der Suche nach dem Klick.

Bei den R-Packages coda, MCMCpack und bayesm stocher ich noch im trüben, was das Verständnis angeht.

Genaugenommen habe ich eine sehr starke Vorstellung darüber, was bayessche Programmierung ist und kann. Möglicherweise liege ich auch falsch.

Deswegen wäre mir eine Sprache am liebsten, die Paradigmen bedient, die ich bereits kenne und zusätzlich probabilistische Features hat, in dem Sinne, dass ich im einfachsten Fall deterministischen Code auch probabilistisch ausführen kann, mit einer voll- oder unvollständigen Parameterdatenbank im Hintergrund.

Aber ob ich sowas finden werde, steht noch in den Sternen.

Gruß

Antworten