|
|
|
|
| Zitat von [smith]
Ich versuche mich gerade mal in Richtung Data Analysis und Machine Learning ein wenig schlau zu machen, unter anderem in dem ich versuche die Beispiele aus Numsense! mit Apache Spark nachzubauen.
Nunja, jetzt habe ich eine fancy PCA-Analyse gemacht, kann aber meine Ergebnisse nicht interpretieren
Kurz: Ist hier jemand fit auf dem Gebiet? Ich würde gerne meine berechneten Werte mal mit jemandem vergleichen, der davon hoffentlich Ahnung hat
| |
Frag gerne was du möchtest. Ich denke hier gibt es mehrere Leute, die dir da helfen können.
|
|
|
|
|
|
|
Welches Framework zu Variational Inference ist denn zu empfehlen (vorzugsweise Python)? Ich hatte mir mal Pyro angeschaut, finde es aber etwas komplizierter als PYMC3. PYMC3 ist mir insgesamt aber etwas zu buggy.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von homer is alive am 08.05.2019 10:03]
|
|
|
|
|
|
Ich würde momentan wohl aus Kompatibilitätsgründen Tensorflow-Probability (Edward) empfehlen. Das Framework sollte auch stäker sein in VI als sagen wir PYMC3, das ja nun eher aus der Monte-Carlo-Ecke kommt.
Ich habe mit einigen dieser Frameworks herumgespielt und fürchte, dass man sich für "echte" Probleme leider nicht zu viel erwarten sollte. Was möchtest du damit machen?
|
|
|
|
|
|
|
Ich nutze momentan einige Beta-Binomial-Modelle, um Quoten (Bspw. Retourenquote / Conversion Rate) durch Wahrscheinlichkeiten auszutauschen. So muss ich an sich ja gar nichts Aufwendiges rechnen, solange ich meinen Prior gewählt habe. Wenn ich das alles aber in irgendeiner Form hierarchisch machen möchte, muss ich mit PYMC3 samplen (was ewig dauert bei 50000 Artikeln) und ich wollte schauen, wie ein VI-Framework dabei performt.
Und unabhängig davon wollte ich mal Bayesian Neural Networks ausprobieren.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von homer is alive am 08.05.2019 15:38]
|
|
|
|
|
|
Binomial klingelt noch aus Stochastik I.
|
|
|
|
|
|
|
Ein paar salbungsvolle Worte: Ich kenne die Struktur von solchen Modellen nicht, aber meine Erfahrung ist, dass Black-Box VI sehr enge Grenzen hat und stark davon abhängig ist, was für Annahmen du triffst. Wenn du das Modell so umformulieren oder approximieren kannst, dass es entlang der Daten faktorisiert, dann solltest du mit SVI (Stochastic Variational Inference) bzw MC-Verfahren auf kleineren Batches schon sehr gute Performance hinkriegen.
Das Framework wird dir aber fürchte ich nicht abnehmen können, eine gute variationale Approximation zu wählen.
|
|
|
|
|
|
|
#numeriklife
Kontext-Edit: Bei mir war Wahlpflicht zwischen Stochastik I und Numerik I.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von csde_rats am 08.05.2019 17:52]
|
|
|
|
|
|
Ich versteh bei Homer auch nie etwas. Aber er scheint sich ja gut gemacht zu haben, vom (quantitativen) WiWi zum data scientist?
Was genau machst du jetzt eigentlich beruflich?
Ich hab rechtzeitig zum Ende der Probezeit den Anspruch geschafft, und das Big4 Life hinter mir gelassen. D.h. Doktoranden +=1.
|
|
|
|
|
|
Variational Inference Frameworks
|
Ich hab mich vor sechs Monaten für pyro entschieden, aus Kompatibilitätsgründen (pyro basiert auf pytorch und ist für Deep Learning Leute, ohne viel Prob. Prog. Erfahrung, geschrieben).
Aktuell würde ich mich ebenfalls für Edwards oder Pyro entscheiden, falls du irgendwann DL integrieren möchtest oder Rechnungen auf der GPU anvisierst. Der Unterschied zw. den beiden ist zu vernachlässigen, siehe z.b. hier: https://discourse.edwardlib.org/t/edward2-vs-pyro/978 . Schau einfach, welche API dir besser gefällt... .
Falls nicht, sind PyMC oder Stan/PyStan aktuell wohl immer noch erste Wahl, aufgrund des besseren - weil lange existierenden - Ecosystems.
Btw.:
Edward2 ist draußen, PyMC4 wir auf Tensorflow basieren.
PS: Facebook hat Ax und Botorch (Bayesian Optimization) veröffentlicht, imho auch für TF Nutzer interessant .
|
|
|
|
|
|
|
IntelliJ: Ich hab hier ein Projekt, dass aus vielen Git-Repos besteht. Wirklich interessieren tut mich nur ein bestimmtes Repo, die anderen brauche ich aber dennoch hin und wieder, um Dinge zu debuggen bzw. Implementation zu checken.
Soweit, so gut.
Wenn ich jetzt im IDE committen will, zeigt mir IntelliJ alle Repos an, bei denen sich was geändert hat. Das will ich nicht, ich will nur die Changes des für mich interessanten Repos sehen. Jetzt muss ich immer die anderen Repos weg-klicken, damit ich nur die Changes meines Repos comitten kann.
Kann ich IntellIJ irgendwie sagen, dass es gewisse Ordner von der Version Control ausschließen soll? Die "Mark as"-Funktion scheint hier nicht zu greifen. Ich hab auch keine Lust für all die anderen Repos die .gitignore-Files anzugreifen, damit da nix committed wird.
|
|
|
|
|
|
|
Mich interessiert, wieso du ein Projekt mit unterschiedlichen Git Repos hast.
Könnte alternativ nicht ein Dependency Management Tool wie Maven oder so helfen?
In PHP ist es so, dass ich Pro Projekt auch nur eine Git Repo nutze. Will ich andere Frameworks nutzen, binde ich sie über Composer ein.
Somit kann ich an den anderen Modulen in eigenen Projekten was ändern und per composer Update die updates zugreifen, während ich mit gitignore den vendor ordner einfac außen vor lassen kann.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Lightspeed am 09.05.2019 10:10]
|
|
|
|
|
|
| Zitat von derSenner
IntelliJ: Ich hab hier ein Projekt, dass aus vielen Git-Repos besteht. Wirklich interessieren tut mich nur ein bestimmtes Repo, die anderen brauche ich aber dennoch hin und wieder, um Dinge zu debuggen bzw. Implementation zu checken.
Soweit, so gut.
Wenn ich jetzt im IDE committen will, zeigt mir IntelliJ alle Repos an, bei denen sich was geändert hat. Das will ich nicht, ich will nur die Changes des für mich interessanten Repos sehen. Jetzt muss ich immer die anderen Repos weg-klicken, damit ich nur die Changes meines Repos comitten kann.
Kann ich IntellIJ irgendwie sagen, dass es gewisse Ordner von der Version Control ausschließen soll? Die "Mark as"-Funktion scheint hier nicht zu greifen. Ich hab auch keine Lust für all die anderen Repos die .gitignore-Files anzugreifen, damit da nix committed wird.
| |
Das Problem habe ich auch und freue mich über Lösungsvorschläge.
|
|
|
|
|
|
|
| Zitat von Lightspeed
Mich interessiert, wieso du ein Projekt mit unterschiedlichen Git Repos hast.
Könnte alternativ nicht ein Dependency Management Tool wie Maven oder so helfen?
In PHP ist es so, dass ich Pro Projekt auch nur eine Git Repo nutze. Will ich andere Frameworks nutzen, binde ich sie über Composer ein.
Somit kann ich an den anderen Modulen in eigenen Projekten was ändern und per composer Update die updates zugreifen, während ich mit gitignore den vendor ordner einfac außen vor lassen kann.
| |
Das ist zwar eine gute Idee, aber ich will nicht die ganzen Repos doppelt und dreifach runterklonen müssen.
In meinem Fall hab ich z.B. einfach ein komplettes Web lokal zum Entwickeln laufen. Da sind eben diverse Repositories drin, die zum Betrieb des Webs benötigt werden. Ich will direkt live an diesen Files arbeiten, ohne irgendwelche Umwege mit symlinks oder so.
|
|
|
|
|
|
|
Oh, ich hab was gefunden:
Settings - Version Control: Dort sind alle von IntelliJ gefundenen Repos gelistet. Die, die mich nicht interessieren, habe ich editiert und das VCS auf <none> gestellt.
Et voilà, nur noch die Repos die mich interessieren, werden angezeigt.
Noice.
|
|
|
|
|
|
|
Kann das Mavel oder Gradle das nicht autoamtisieren?
Über Symlinks muss ich mir keine Gedanken machen und für die notwendigen Projekte habe ich jeweils ein eigenes IDE Fenster offen.
Nevermind.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Lightspeed am 09.05.2019 10:43]
|
|
|
|
|
|
| Zitat von B0rG*
Ein paar salbungsvolle Worte: Ich kenne die Struktur von solchen Modellen nicht, aber meine Erfahrung ist, dass Black-Box VI sehr enge Grenzen hat und stark davon abhängig ist, was für Annahmen du triffst. Wenn du das Modell so umformulieren oder approximieren kannst, dass es entlang der Daten faktorisiert, dann solltest du mit SVI (Stochastic Variational Inference) bzw MC-Verfahren auf kleineren Batches schon sehr gute Performance hinkriegen.
Das Framework wird dir aber fürchte ich nicht abnehmen können, eine gute variationale Approximation zu wählen.
| |
"Wenn du das Modell so umformulieren oder approximieren kannst, dass es entlang der Daten faktorisiert, dann solltest du mit SVI (Stochastic Variational Inference) bzw MC-Verfahren auf kleineren Batches schon sehr gute Performance hinkriegen." Den Teil verstehe ich nicht. Was meinst du damit? Aktuell kann ich ja bequem aus der entstehenden Beta-Verteilung samplen, bzw. die MAP-Estimation nehmen, da ich einen Punktschätzer brauche.
| Zitat von R
Ich hab mich vor sechs Monaten für pyro entschieden, aus Kompatibilitätsgründen (pyro basiert auf pytorch und ist für Deep Learning Leute, ohne viel Prob. Prog. Erfahrung, geschrieben).
Aktuell würde ich mich ebenfalls für Edwards oder Pyro entscheiden, falls du irgendwann DL integrieren möchtest oder Rechnungen auf der GPU anvisierst. Der Unterschied zw. den beiden ist zu vernachlässigen, siehe z.b. hier: https://discourse.edwardlib.org/t/edward2-vs-pyro/978 . Schau einfach, welche API dir besser gefällt... .
Falls nicht, sind PyMC oder Stan/PyStan aktuell wohl immer noch erste Wahl, aufgrund des besseren - weil lange existierenden - Ecosystems.
Btw.:
Edward2 ist draußen, PyMC4 wir auf Tensorflow basieren.
PS: Facebook hat Ax und Botorch (Bayesian Optimization) veröffentlicht, imho auch für TF Nutzer interessant .
| |
Danke für die Zusammenfassung. Bei PYMC3 stört mich einfach, dass es scheinbar noch einige Bugs gibt, die noch nicht behoben sind. Ich habe für ein Beispiel in Stan und PYMC3 komplett unterschiedliche Ergebnisse bekommen. Der Kommentar eines Devs war dabei "hmm, something is wrong here". War leider nicht nur einmal so, auch bei Kollegen. Dürfe ich fragen, welche Art von Problemstellungen du mit Pyro angehst?
| Zitat von Irdorath
Ich versteh bei Homer auch nie etwas. Aber er scheint sich ja gut gemacht zu haben, vom (quantitativen) WiWi zum data scientist?
Was genau machst du jetzt eigentlich beruflich?
Ich hab rechtzeitig zum Ende der Probezeit den Anspruch geschafft, und das Big4 Life hinter mir gelassen. D.h. Doktoranden +=1.
| |
Korrekt. Ich habe mich vom Wiwi zum Data Scientist hochgehustlet und bin seit fast 1,5 Jahren jetzt bei einer kleinen Data-Science-Firma in Karlsruhe. Allerdings muss ich viele Grundlagen (in Wahrscheinlichkeit, Statistik und linearer Algebra) mühsam aufarbeiten, um theoretisch fundierter werden zu können. Da hätte mir ein Studium, welches einen stärkeren Fokus in diese Richtung gehabt hätte (bzw. wenn ich mich mal getraut hätte, nicht so viel BWL-Krams zu wählen).
Und Glückwunsch zur getroffenen Entscheidung. Ich bin ebenfalls sehr froh darüber, dass ich mich nicht ins klassische Wiwi-Life eingeklinkt habe, sondern noch rechtzeitig den Absprung geschafft habe. Ich könnte mir momentan keinen spannenden Job vorstellen, in dem ich nicht selbst richtig viel programmieren darf (und das, obwohl ich die ersten 4 Jahre meines Studiums mir nicht vorstellen konnte, überhaupt mal einen Job zu haben, in dem ich programmieren werde).
|
|
|
|
|
|
|
| Zitat von homer is alive
"Wenn du das Modell so umformulieren oder approximieren kannst, dass es entlang der Daten faktorisiert, dann solltest du mit SVI (Stochastic Variational Inference) bzw MC-Verfahren auf kleineren Batches schon sehr gute Performance hinkriegen." Den Teil verstehe ich nicht. Was meinst du damit? Aktuell kann ich ja bequem aus der entstehenden Beta-Verteilung samplen, bzw. die MAP-Estimation nehmen, da ich einen Punktschätzer brauche.
| |
In Figure 2 im Paper zu SVI sieht man die Struktur, die ich meine: Wenn du dein Modell auffassen kannst als eine kombination aus globalen Parametern und lokalen Parametern, die exakt einem Datenpunkt zugeordnet sind und anstonsten (bedingte) Unabhänigkeiten herrschen, dann wird es effizient, weil du Mini-Batches benutzen "darfst". Die bedingte Unabhängigkeit bedeutet, dass du keine Kovarianzen (oder andere Momente) zwischen deinen Datenpunkten berücksichtigen musst, in Formeln heißt das, dass sich die Likelihood deiner Daten Y als Produkt über die einzelnen Datenpunkte formulieren lässt:
Mit irgendwelchen globalen Parametern Theta und lokalen Parametern z.
Anschauliches Beispiel: Nearest Neighbour folgt dieser Struktur nicht, weil du immer alle Daten anschauen musst, um Vorhersagen zu treffen. Neuronetze schon, denn die Gewichte (und Sturktur) zusammen (das ist das Theta) bestimmen eine Vorhersage. Polynomsplines nicht, Naive Bayes schon.
|
|
|
|
|
|
|
@homer:
Hauptsächlich verwende ich Pyro um bestehende Regressionen in pytorch/sklearn zu erweitern um den Begriff der Varianz.
Währenddessen stößt man natürlich auch auf andere Sachen wie GP oder causal inference, mit denen ich nur rudimentär gearbeitet habe.
PS: Wenn du weitere Tutorials für Pyro (neben den offiziellen) suchst, kann ich Mal meine Bookmarks durchgehen...
|
|
|
|
|
|
|
| Zitat von B0rG*
| Zitat von homer is alive
"Wenn du das Modell so umformulieren oder approximieren kannst, dass es entlang der Daten faktorisiert, dann solltest du mit SVI (Stochastic Variational Inference) bzw MC-Verfahren auf kleineren Batches schon sehr gute Performance hinkriegen." Den Teil verstehe ich nicht. Was meinst du damit? Aktuell kann ich ja bequem aus der entstehenden Beta-Verteilung samplen, bzw. die MAP-Estimation nehmen, da ich einen Punktschätzer brauche.
| |
In Figure 2 im Paper zu SVI sieht man die Struktur, die ich meine: Wenn du dein Modell auffassen kannst als eine kombination aus globalen Parametern und lokalen Parametern, die exakt einem Datenpunkt zugeordnet sind und anstonsten (bedingte) Unabhänigkeiten herrschen, dann wird es effizient, weil du Mini-Batches benutzen "darfst". Die bedingte Unabhängigkeit bedeutet, dass du keine Kovarianzen (oder andere Momente) zwischen deinen Datenpunkten berücksichtigen musst, in Formeln heißt das, dass sich die Likelihood deiner Daten Y als Produkt über die einzelnen Datenpunkte formulieren lässt:
Mit irgendwelchen globalen Parametern Theta und lokalen Parametern z.
Anschauliches Beispiel: Nearest Neighbour folgt dieser Struktur nicht, weil du immer alle Daten anschauen musst, um Vorhersagen zu treffen. Neuronetze schon, denn die Gewichte (und Sturktur) zusammen (das ist das Theta) bestimmen eine Vorhersage. Polynomsplines nicht, Naive Bayes schon.
| |
Nice, gute Erklärung.
|
|
|
|
|
|
|
Was sind so eure Favoriten im hochpreisigen Laptop Segment? Ich hab viel Budget und bin unschlüssig. X1 Carbon? X1 Yoga? Surface Book? XPS13 durchpimpen? All the choices!
Mal am Beispiel X1 Carbon vs Yoga: mich würde die Tabletfunktionalität reizen, um darauf Notizen zu machen. Aber ob man das letztlich macht, wenn man dafür ja ständig die Tastatur opfern muss? Vielleicht für Vorträge. Dafür mehr Gewicht und Bezel...
|
|
|
|
|
|
|
Ich bin total von den Surface Pro und Books überzeugt. Wenn Touch, dann für mich entweder gleich richtig oder gar nicht. Mit diesen nach hinten klappenden Eimern kann ich gar nix anfangen. Für mich also klar entweder X1 Carbon, das neue X390 oder gleich Surface. Und wenn das Budget da ist würde ich full retard beim Surface Book gehen.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von SwissBushIndian am 10.05.2019 16:04]
|
|
|
|
|
|
An der Uni laufen die Revolutionsverräter Windowsnasen alle mit den Surfaces rum. Außerhalb der Uni auch, z.B. Genosse audax.
|
|
|
|
|
|
|
Die machen halt auch haptisch richtig was her.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von SwissBushIndian am 10.05.2019 16:06]
|
|
|
|
|
|
Hm, ich sehe da ein grundlegendes Problem mit dem Surface Book...
/die anderen beiden Optionen sind nicht wählbar
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Irdorath am 10.05.2019 16:21]
|
|
|
|
|
|
| Zitat von homer is alive
Korrekt. Ich habe mich vom Wiwi zum Data Scientist hochgehustlet und bin seit fast 1,5 Jahren jetzt bei einer kleinen Data-Science-Firma in Karlsruhe.
| |
Cool. Was hast Du so an Literatur verwendet? Ich hab ein paar MOOC zum Thema gemacht (den ML Kurs von Andrew Ng, die deeplearning specialization (wobei das ja nur NN sind) und einen Python Kurs mit relativ vielen Data Science Elementen). Bücher/Paper hab ich meistens quer gelesen, z.B. von Hastie/Tibshirani.
Leider darf/kann ich momentan noch nicht wirklich viel programmieren respektive abdatasciencen sondern muss viel anderes Zeugs lernen und machen, deshalb entgleitet mir mein bisschen an Wissen immer wieder.
|
|
|
|
|
|
|
Ich sehe da kein Problem, was willst du mehr als 2 penen.
Ist das bei Microsoft direkt? Dann anrufen.
|
|
|
|
|
|
|
Danke an b0rG*. Mit dieser Erklärung kann ich sehr gut etwas anfangen.
| Zitat von pumpi2k
| Zitat von homer is alive
Korrekt. Ich habe mich vom Wiwi zum Data Scientist hochgehustlet und bin seit fast 1,5 Jahren jetzt bei einer kleinen Data-Science-Firma in Karlsruhe.
| |
Cool. Was hast Du so an Literatur verwendet? Ich hab ein paar MOOC zum Thema gemacht (den ML Kurs von Andrew Ng, die deeplearning specialization (wobei das ja nur NN sind) und einen Python Kurs mit relativ vielen Data Science Elementen). Bücher/Paper hab ich meistens quer gelesen, z.B. von Hastie/Tibshirani.
Leider darf/kann ich momentan noch nicht wirklich viel programmieren respektive abdatasciencen sondern muss viel anderes Zeugs lernen und machen, deshalb entgleitet mir mein bisschen an Wissen immer wieder.
| |
Hmm, gute Frage. Ich bin immer wieder am Springen.
Die MOOCs sind cool, aber befriedigen halt nicht wirklich und man kratzt immer nur an der Oberfläche. Besser finde ich mittlerweile richtige Vorlesungen (ist halt dann wirklich nur Theorie). Eine schöne Vorlesung macht Ali Ghodsi. Der Stil ist vielleicht etwas gewöhnungsbedürftig, aber für mich sehr gut nachvollziehbar: https://www.youtube.com/channel/UCKJNzy_GuvX3SAg3ipaGa8A/playlists hier sind ein paar Playlists, ansonsten einfach suchen.
Mein Einstieg war aber auch über MOOCs und Vorlesungen an der Uni, dann habe ich mir ein paar einfachere Bücher zugelegt (Hands-On Machine Learning with Scikit-Learn and Tensorflow von Aurelien Geron - gab es zuletzt kostenlos bei OReilly). Relativ intensiv habe ich "Statistical Rethinking" durchgearbeitet, um mich an bayes'sche Modellierung ranzuwagen. Das ist zwar auch eher angewandt, aber den Einstieg finde ich auch ziemlich happig. Ansonsten lese ich viel als Empfehlung von "Introduction to Statistical Learning" auch von Hastie, was aber einfacher zum Einstieg sein soll als "Elements of Statistical Learning". "Information Theory, Inference and Learning Algorithms" von MacKay ist ziemlich cool, aber relativ Informationstheorie-lastig (was ich eher gut finde). "Machine Learning: A probabilistic perspective" von Kevin Murphy ist ein ziemlicher Wälzer, meiner Meinung nach auch recht schwer und mathelastig und oft muss ich diesbezüglich noch Grundlagen nachholen (bspw. in linearer Algebra oder sogar Statistik), um den Ausführungen folgen zu können.
Es gibt aber auch wirklich gute Blogs und coole Leute, die einzelne Themen sehr verständlich und interessant erläutern (z.B. Christopher Colah zu LSTMs - http://colah.github.io/posts/2015-08-Understanding-LSTMs/) - also einfach auch konkret nach Themen suchen.
Woran liegt es denn, dass du nicht programmieren kannst oder darfst? Ich sehe das als einen ziemlich wichtigen Teil dabei, die Dinge selbst zu verstehen. Gerade, wenn man Algorithmen selbst implementiert (mit Numpy) oder sie anwendet, lernt man ordentlich was dazu. Gerade der Unterschied von der probabilistischen Formulierung zur Implementierung und Anwendung von Algorithmen ist leider sehr groß, weshalb die Theorie nicht immer weiterhilft.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von homer is alive am 10.05.2019 16:42]
|
|
|
|
|
|
edith
|
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von pumpi2k am 06.11.2019 17:56]
|
|
|
|
|
|
Sehe ich das gerade richtig, dass Candela eine etwas ungewöhnliche SI-Einheit ist, weil sie sich explizit um die menschliche Wahrnehmung kümmert anstelle eines physikalischen Sachverhaltes wie die anderen sechs Basiseinheiten?
And therefore never send to know for whom the bell tolls; it tolls for thee.
|
|
|
|
|
|
|
Joah, hört sich doch sinnvoll an.
Wenn es gerade nicht um die menschliche Wahrnehmung ginge, könnte man ja auch einfach Watt nehmen, oder vielleicht Anzahl der Photonen pro Zeit, je nach Anwendung.
Candela und Lumen sind sind dann die Einheiten die man auf (Allgebrauchs-)Leuchtmittel druckt.
|
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Rootsquash am 22.05.2019 7:40]
|
|
|
|
|
Thema: pOT-lnformatik, Mathematik, Physik XXII ( Jetzt nehmen uns Computer schon die Memes weg! ) |