Neuronale Netze mit den ML-Frameworks Keras und Tensorflow

Links zu Themen aus dem Statistik- und R-Bereich

Moderator: student

Antworten
consuli
Beiträge: 436
Registriert: Mo Okt 10, 2016 8:18 pm

Neuronale Netze mit den ML-Frameworks Keras und Tensorflow

Beitrag von consuli » Di Jan 15, 2019 10:18 pm

Bei den Maschinenlern Frameworks haben zwei die größte Verbreitung erlangt (derzeit mit großem Abstand):
  • Keras
  • Tensorflow

Bereits seit einiger Zeit gibt es auch R Pakete, die eine API bereit stellen:
Online Lernmaterial zu Keras und Tensorflow:
"Sehet die Vögel unter dem Himmel an: sie säen nicht, sie ernten nicht, sie sammeln nicht in die Scheunen; und euer himmlischer Vater ernährt sie doch." (Matthäus 6, V. 26)

Benutzeravatar
student
Beiträge: 337
Registriert: Fr Okt 07, 2016 9:52 am

Re: Neuronale Netze mit den ML-Frameworks Keras und Tensorflow

Beitrag von student » Do Jan 17, 2019 3:47 pm

:D
Viele Grüße,
Student
-----------------------------------------------------------------------------------------------------------------------
faes.de: https://www.faes.de
Datenanalyse mit R: https://www.r-statistik.de
Ad-Oculos-Projekt: https://www.ad-oculos.faes.de

Habe Mut, dich deines eigenen Verstandes zu bedienen! (Kant)

bigben
Beiträge: 1057
Registriert: Mi Okt 12, 2016 9:09 am

Re: Neuronale Netze mit den ML-Frameworks Keras und Tensorflow

Beitrag von bigben » Do Jan 17, 2019 10:39 pm

Wenn ich das richtig verstanden habe, sind das nicht zwei verschiedene Frameworks auf Augenhöhe, sondern Keras ist eine Zwischenschicht zwischen (typischerweise) Tensorflow und dem Nutzer, die die Bedienbarkeit vereinfachen soll.
Wir hätten damit Tensorflow als Basis, darauf aufbauend das Keras, welches eigentlich für Python gedacht ist und dazu das R package, das Keras anspricht, wenn denn eine entsprechende Python-Instanz auch zur Verfügung steht.

Ich habe mir das Buch zu Keras mit R gekauft und angefangen, es zu lesen. Was da als R-Code geschrieben wird um Keras aus R heraus anzusprechen fühlte sich für mich, der ich aus der R Ecke komme, sehr befremdlich und unintuitiv an. Es mag nur an mir liegen, aber ich habe kurz mal ernsthaft erwogen, mich doch nochmal in Python reinzulesen und zu schauen, ob die Python-API von Keras sich natürlicher anfühlt. Python ist ja wieder auf meinem Rechner, seit ich Keras installiert habe. Nun, dazu komme ich auf absehbare Zeit nicht, ich würde aber gerne von einem lesen, der das versucht.

Generell ist Keras nun einmal Python und derzeit noch findet man auch im Netz überwiegend Anleitungen, Videos und Blogeinträge dazu, wie man Keras aus Python heraus nutzt. Ein Beispiel dafür hast Du ja selbst gepostet. Ich würde mich sehr freuen, wenn sich das im Laufe der Zeit deutlich ändern würde.

Es ist beruhigend zu sehen, dass die Keras und Tensorflow-Möglichkeiten auch aus R heraus genutzt werden können, aber in diesem Bereich scheint R wirklich nicht zu führen, sondern hinterher zu laufen. Bin gespannt, wie sich das im Laufe der Zeit entwickelt.

Am Thema sehr interessiert grüßt
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte

consuli
Beiträge: 436
Registriert: Mo Okt 10, 2016 8:18 pm

Re: Neuronale Netze mit den ML-Frameworks Keras und Tensorflow

Beitrag von consuli » Fr Jan 18, 2019 4:44 pm

bigben hat geschrieben:
Do Jan 17, 2019 10:39 pm
Wenn ich das richtig verstanden habe, sind das nicht zwei verschiedene Frameworks auf Augenhöhe, sondern Keras ist eine Zwischenschicht zwischen (typischerweise) Tensorflow und dem Nutzer, die die Bedienbarkeit vereinfachen soll.
Ja, das stimmt.
bigben hat geschrieben:
Do Jan 17, 2019 10:39 pm
Wir hätten damit Tensorflow als Basis, darauf aufbauend das Keras, welches eigentlich für Python gedacht ist und dazu das R package, das Keras anspricht, wenn denn eine entsprechende Python-Instanz auch zur Verfügung steht.
Wenn die API Pakete einiger Maßen gut sind, braucht man kein Python. Python ist ja auch nur "irgendeine" relativ gemächliche Interpreter-Skript-Sprache um compilierte Binaries aufzurufen. High-Performance-Computing ist mit Python an sich nicht möglich. Aber ich lese mich auch noch ein.
"Sehet die Vögel unter dem Himmel an: sie säen nicht, sie ernten nicht, sie sammeln nicht in die Scheunen; und euer himmlischer Vater ernährt sie doch." (Matthäus 6, V. 26)

bigben
Beiträge: 1057
Registriert: Mi Okt 12, 2016 9:09 am

Re: Neuronale Netze mit den ML-Frameworks Keras und Tensorflow

Beitrag von bigben » Fr Jan 18, 2019 9:09 pm

Ja, aber Keras läuft im Python Interpreter und auch Tensorflow ist teilweise in Python implementiert. Ich musste mir eine riesige Anaconda-installation auf meinen Windows-Rechner ziehen.

Dazu steht dann noch im Buch: You'll need access to a UNIX machine; it's possible to use Windows as well, but we don't recommend it. Na danke.

Irgendwann werden wir komplexe Netze locker in R über caret erstellen, da bin ich sicher. Derzeit scheint mir da noch viel Luft nach oben zu sein. Vielleicht waren meine Erwartungen auch einfach zu hoch, meine Bereitschaft zu intensiver Arbeit zu gering. Klar ist: Es ist ein wichtiger Zwischenschritt, erstmal einen Zugang zu keras zu haben.

Vielleicht erscheint ja demnächst ein tidylearn package? 😉

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte

Benutzeravatar
EDi
Beiträge: 887
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Neuronale Netze mit den ML-Frameworks Keras und Tensorflow

Beitrag von EDi » Sa Jan 19, 2019 8:58 am

Was da als R-Code geschrieben wird um Keras aus R heraus anzusprechen fühlte sich für mich, der ich aus der R Ecke komme, sehr befremdlich und unintuitiv an. Es mag nur an mir liegen, aber ich habe kurz mal ernsthaft erwogen, mich doch nochmal in Python reinzulesen und zu schauen, ob die Python-API von Keras sich natürlicher anfühlt. Python ist ja wieder auf meinem Rechner, seit ich Keras installiert habe. Nun, dazu komme ich auf absehbare Zeit nicht, ich würde aber gerne von einem lesen, der das versucht.
Die R API richtet sehr stark nach der python API. Was kein Wunder ist, da r keras nur ein wrapper um das python modul ist. Ganz arg schlimm finde ich das nicht (wenn man pipes gewohnt ist). Aber ich gebe dir recht, vieles von der Datenaufbereitung hätte ich anders gemacht, als im Buch beschrieben.

Code: Alles auswählen

Tensorflow ist teilweise in Python implementiert
Naja, das meiste ist C++ und CUDA, python ist nur eines der frontends welches sehr beliebt ist.
Ich musste mir eine riesige Anaconda-installation auf meinen Windows-Rechner ziehen.
Anaconda kommt bei mir nicht auf die Maschine, das ist ein Monstrum. Das meiste davon brauchst du vermutlich nicht. Keine Ahnung warum das sol beliebt ist.
Dazu steht dann noch im Buch: You'll need access to a UNIX machine; it's possible to use Windows as well, but we don't recommend it. Na danke.
Man muss nunmal einsehen, das windows für's programmieren nicht optimal ist (deshalb hat win10 ja jetzt auch eine Linux bash :))
Irgendwann werden wir komplexe Netze locker in R über caret erstellen, da bin ich sicher.
Ist jetzt schon möglich
https://topepo.github.io/caret/train-mo ... al-network
Vielleicht erscheint ja demnächst ein tidylearn package? 😉
Das bist du gar nicht soweit weg... caret ist feature complete, stabil und wird nur noch gepflegt. Max Kuhn & Co arbeiten am nachfolger tidymodels
https://github.com/tidymodels/tidymodels

Vieles an infrastruktur ist schon da: recipes fürs pre-processing (geht auch mit caret!), resample für resampling strategien, parsnip als model interface (auch hier gibts keras als backend), dials für hyperparameter generierung, yardstick für evaluierung, tidyposterior für bayesian vergleiche von Modellen.
Ein bisschen fehlt noch, z. B. bayesian hyperparameter tuning,

Was fehlt sind higher-level APIs, welche vermutlich bald kommen werden um das ganze Nutzerfreundlicher zu machen. Bis dahin ist caret wohl noch vorzuziehen (außer man braucht die Flexibilität, dann macht tidymodels jetzt schon sinn).
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.

consuli
Beiträge: 436
Registriert: Mo Okt 10, 2016 8:18 pm

Re: Neuronale Netze mit den ML-Frameworks Keras und Tensorflow

Beitrag von consuli » So Jan 20, 2019 1:38 pm

bigben hat geschrieben:
Fr Jan 18, 2019 9:09 pm
Ja, aber Keras läuft im Python Interpreter und auch Tensorflow ist teilweise in Python implementiert. Ich musste mir eine riesige Anaconda-installation auf meinen Windows-Rechner ziehen.
[Werbung]
Wenn ich mich richtig erinnere, dann steht in dem iX Artikel Vergleich von Machine-Learning-Frameworks, dass Keras und Tensorflow Schnittstellen zu C++, Python, ... haben.

Wenn's einen wirklich brennend interessiert, nimmt man vielleicht besser gleich das ganze iX Developer Sonderheft Machine Learning. Da steht es auf jeden Fall drin.
[/Werbung]

Aber wie bereits gesagt. Ich lese mich selbst noch ein.
"Sehet die Vögel unter dem Himmel an: sie säen nicht, sie ernten nicht, sie sammeln nicht in die Scheunen; und euer himmlischer Vater ernährt sie doch." (Matthäus 6, V. 26)

bigben
Beiträge: 1057
Registriert: Mi Okt 12, 2016 9:09 am

Re: Neuronale Netze mit den ML-Frameworks Keras und Tensorflow

Beitrag von bigben » Mo Jan 21, 2019 3:29 pm

Hallo,

> Anaconda kommt bei mir nicht auf die Maschine, das ist ein Monstrum. Das meiste davon brauchst du vermutlich nicht.

Eben, das ist ein Monstrum und das allermeiste brauche ich nicht. Scheint aber noch der Weg zu sein, um unter Windows mit Ra uf Keras zuzugreifen. Deshalb wollte ich das in diesem Thread erwähnt haben.

> Keine Ahnung warum das so beliebt ist.

Nach meinem Verständnis, weil es in Python nunmal keinen schlichten und gut funktinoierenden einheitlichen Weg zum Installieren von modulen, vergleichbar einem CRAN und install.packages gibt. Es will ja nicht jeder zum allgemeinen Computerfachmann werden, bloß weil man ein paar Daten auswerten will.

> Man muss nunmal einsehen, das windows für's programmieren nicht optimal ist

Mag ja alles sein, aber entweder ist es ein cross-platform framework oder nicht. Meckern macht ohnehin keinen Sinn und die Linux/Windows-Debatte werden wir hier nicht klären. Es scheint ja auch unter Windows irgendwie zu laufen, aber halt derzeit noch "irgendwie".

> Ist jetzt schon möglich https://topepo.github.io/caret/train-mo ... al-network

Ich habe gerade angefangen, meinen sprichwörtlichen großen Zeh in das kalte Wasser von caret zu halten und nach den ersten paar Sessions des entsprechenden Datacamp-Kurses erschien mir caret als gutes Beispiel, wie so etwas unter R aussehen sollte. Es scheint doch ein längerer Weg zu sein, bis man sich in caret ausreichend umgesehen hat und dass es eine so große Vielfalt von Neuronalen Netzen, insbesondere auch eine Anbindung von MxNet gibt, das ermutigt mich doch, dass ich hier weiter machen sollte. Man müsste halt viel mehr Zeit für seine Hobbys haben...

> Das bist du gar nicht soweit weg... caret ist feature complete, stabil und wird nur noch gepflegt. Max Kuhn & Co arbeiten am nachfolger tidymodels https://github.com/tidymodels/tidymodels

Ach, das sind mal so richtig gute Nachrichten. Da freue ich mich :-) Dann wird mein caret-Buch wohl wertlos, sobald tidymodels so richtig durchstartet? Egal, trotzdem gut.


Ich habe ja immer gesagt, dass ich nie wirklich große Datensätze habe und Auswertungen für die sehr konservativen Mediziner mache, so dass ML allgemein und Neuronale Netze im Besonderen für mich kein Thema seien und ich mich besser mehr mit Statistik beschäftigen sollte. Jetzt rechne ich damit, hier irgendwann ein Gerät hingestellt zu bekommen, das von 9 am Körper befestigten Sensoren je eine Zeitreihe (also 9 synchrone/parallele Zeitreihen) erstellt und in denen ich gerne Mustererkennung (diese Bewegung oder jene Bewegung gemacht oder nicht gemacht) betreiben würde. Nun werden Zeitreihen in Beispieltexten gerne zur Vorhersage von Werten aber nicht unbedingt zur Klassifikation eingesetzt und wenn doch, dann einzelne Zeitreihen und nicht Kombinationen aus 9 und es fehlt die Zeit, mich in Neuronale Netze und speziell in RNNs, wirklich einzuarbeiten.
Ich weiß auch nicht, ob ich die Hoffnung hatte, ein Buch zu lesen und darin eine Kochbuchanleitung zu finden. Wenn ja, dann ist "vielleicht" in meinem oben geschriebenen Satz "Vielleicht waren meine Erwartungen auch einfach zu hoch, meine Bereitschaft zu intensiver Arbeit zu gering." durch "ganz sicher" zu ersetzen.

Klar ist mal, wenn man zu den coolen kids gehören will, dann braucht man Neuronale Netze.

GLG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte

Benutzeravatar
EDi
Beiträge: 887
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Neuronale Netze mit den ML-Frameworks Keras und Tensorflow

Beitrag von EDi » Di Jan 22, 2019 2:47 am

Dann wird mein caret-Buch wohl wertlos, sobald tidymodels so richtig durchstartet? Egal, trotzdem gut.
Applied Predictive Modelling (APM) hat auch ohne caret enormen wert. Ich vermute das tidymodels im laufe des Jahres durchstarten wird. caret ist gut und wird es auch bleiben - kein Fehler damit jetzt anzufangen.

Hier der Link zum rstudio-workshop letzt Woche auf der rstudio::conf: https://github.com/topepo/rstudio-conf-2019

Als Ergänzung zu APM, schau dir mal https://bookdown.org/max/FES/, auch von Max Kuhn, an...
Ich habe ja immer gesagt, dass ich nie wirklich große Datensätze habe und Auswertungen für die sehr konservativen Mediziner mache, so dass ML allgemein und Neuronale Netze im Besonderen für mich kein Thema seien und ich mich besser mehr mit Statistik beschäftigen sollte.
Für jedes problem gibt es unterschiedlich gut geeignete Methoden - für small data klassische statistik, für meta-analysen finde ich bayesian hierachical models unübertroffen, für Bildanalysen gehen nicht viele Wege an CNNs vorbei (außer man hat small data, dann eher klassische feature extraction), für Text analysen sind NN auch besser als einzelwort-basierte sentiment analysen , Multivariat ist eine Geschichte für sich, ... undundund...

Mit Zeitreihen hab ich bisher wenig zu tun gehabt, aber es scheint da einiges zu geben (z.b. review auf arxiv, diverse blogs,...)
Klar ist mal, wenn man zu den coolen kids gehören will, dann braucht man Neuronale Netze.
Und viele Daten.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.

Benutzeravatar
databraineo
Beiträge: 10
Registriert: Mo Apr 02, 2018 8:20 am

Re: Neuronale Netze mit den ML-Frameworks Keras und Tensorflow

Beitrag von databraineo » Sa Mai 18, 2019 9:52 am

Anaconda
Also ich habe eigentlich gute Erfahrungen mit Anaconda unter Windows gemacht. Ich denke, Anaconda ist die bequemste Möglichkeit, Python vernünftig zu nutzen.

Ja, es ist riesig und schleppt viel Ballast mit sich rum (gerade mal auf meinem Rechner geschaut: das Verzeichnis ist aktuell 20GB und hat 350.000 Dateien :o )
Dafür bekommt man im Wesentlichen Python inkl. Standardbibliotheken, conda und die Python-IDE Spyder

Das Problem in Python ist, dass die verschiedensten Versionen der Pakete nicht miteinander kompatibel sind. Das versucht conda beim Package-Updaten zu lösen. Man kann sogenannte virtual environments definieren, welche dann einen gewissen Stand der Pakete halten. So macht es Sinn, für tensorflow so ein environment anzulegen. Das kann man alles über die Kommandozeile oder auch über eine GUI machen. Die Prompt-Befehle sind nicht schwer zu lernen.

Keras
Wie schon von meinen Vorrednern geschrieben ist Keras ursprünglich eine Schnittstelle zu verschiedenen Deep Learning Frameworks, d.h. neben TensorFlow kann man auch CNTK oder Theano als Backend benutzen, ohne den Keras-Code ändern zu müssen. Das ist meiner Meinung nach aber kein so großer Vorteil mehr, weil aktuell wohl TensorFlow (wegen Popularität) und PyTorch die beiden wichtigsten Frameworks sind.

Der eigentliche Vorteil von Keras ist aber, dass es nutzerfreundlicher und schneller als TensorFlow zu bedienen ist.
Lasst uns helfen, dass Menschen mittels Datenanalyse intelligente Entscheidungen treffen

Website: Databraineo - Data Science Blog
Twitter: @databraineo
Facebook-Gruppe: Data Science Deutschland

Antworten