Tag: Stanford University

5 coole Anwendungen für Deep Learning

Viele halten es für einen Hype, aber es gibt auch Anwendungen, in denen Deep Learning uns schon ernsthaft helfen kann. Egal ob im Bereich Computer Vision, Natural Language Processing oder Creation, Deep Learning Anwendungen werden in den nächsten Jahren immer häufiger auftreten. Hier ein paar Anwendungen, die aktuell schon möglich sind.

1. Bring deinem Auto bei, wie ein Mensch zu lenken

Es ist kein Problem mehr, ein eigenes Auto dazu zu bringen, zu lenken wie ein Mensch. Das einzige, was man dazu braucht, ist etwas Technik, ein Auto, ein paar Kameras und dieses Paper als Bauanleitung. Damit kann jeder ein selbstfahrendes Auto nachbauen. Das ganze läuft mit Torch 7. Eine gute Simulationsumgebung hierfür ist dann wohl Grand Theft Auto.

2. Bau dir ein intelligentes Tagging-System für deine Bilder

Resultate von Projekt deepimagesent. Credits: Stanford.edu

Resultate von Projekt deepimagesent. Credits: Stanford.edu

Bilder zu beschreiben, haben Deep Learning Netze ebenfalls gelernt. Besonders spannend wird es, wenn man eine große Bildersammlung hat und nun herausfinden will, was in diesen Bildern enthalten ist. Dazu bieten sich verschiedene Programme u.a. NeuralTalk von Andrej Karpathy an. Wie das Ganze funktioniert, lernt man hier (sogar mit passender Demo).

 

3. Male wie ein richtiger Künstler

neural-doodle

Beispiel von Neural Doodle. Credits: alexjc

Neural Doodle heißt das Tool. Man kann mit den, für eine Landschaftszeichnung üblichen, Farben ein Bild malen. Danach transformiert ein Netz das simple Bild in ein Kunstwerk. Dabei nutzt das Netz die Farbkombinationen als Annotation und versucht aus diesen Annotationen das ursprüngliche Kunstwerk wieder herzustellen. Dabei kann man zwischen verschiedenen Stilen wählen. Es hängt ganz davon ab, was man dem Netzwerk zeigt.

 

4. Entwickle deinen eigenen Font

Eigene Fonts entwickeln mit deep-fonts. Credits: erikbern

Eigene Fonts entwickeln mit deep-fonts. Credits: erikbern

Jeder Designer hat schonmal eine Schrift benötigt, die genau nach seinen Wünschen aussieht. Wie wäre es mit einer grafischen Oberfläche, auf der man verschiedene Regler nach links und rechts schieben kann. Was man erhält sind verschiedene Fonts, die das Neuronale Netz passend zu den Eingaben anpasst.

50.000 Schriftarten hat der Autor von deep-fonts benutzt, um das Netzwerk zu trainieren. Hier erhält man den Code und das trainierte Netz für die eigenen Spielereien.

5. Höre und komponiere klassische Musik

Neuronale Netze komponieren sogar Musik. Sie klingt bereits so, als würde jemand am Klavier sitzen und nur persönlich für uns spielen. Damit können in der Zukunft auch professionelle Komponisten und Interpreten ihre Musik von einer KI überarbeiten lassen oder sogar einem Mastering unterziehen. Das ist besonders spannend für Musiker, die noch kein Plattenlabel haben und trotzdem ein Platte in ordentlicher Qualität produzieren wollen. Vielleicht ist das sogar noch eine Marktlücke. 😉 Nachfolgend könnt ihr hören, wie das klingen kann. Mehr Infos dazu findet ihr hier.

5 weitere Anwendungen für Deep Learning lest ihr in unserem zweiten Teil der Serie.

 

Zooids – Open Source Hardware – Schwarmintelligenz zum Lernen

Quelle: ShapeLab

Quelle: ShapeLab

Ihr seid von Schwarmintelligenz fasziniert und bastelt gern mit Hardware herum, dann ist Zooid genau das richtige für euch. ShapeLab, Stanford University und weitere Partner haben die Zooid-Plattform nämlich Open Source gemacht. Damit könnt ihr kleine Roboter ansteuern, programmieren und euer gewünschtes Verhalten damit umsetzen. Neben der Hardware-Plattform gibt es natürlich auch einiges an Software, die quelloffen ist. Auf Github bekommt man die SwarmUI dazu. Darüber programmiert man die Pfadplannung, das Ziel, die Orientierung und Farbe der Zooids.

Ein kleines Demo-Video gibt es hier. Viel Spaß beim Basteln!

 




Deep Learning – So gelingt der Einstieg!

Deep Learning ist in vielen Bereichen der KI-Forschung und der praktischen wirtschaftlichen Anwendungen von maschinellem Lernen  zum State-of-the-Art geworden – vor allem bei Aufgaben mit Bildern und Texten. Es klingt wie ein komplett neues und aufregendes Verfahren, entpuppt sich aber als ein Zusammensetzen von bereits vorhandenen Komponenten des Machine Learning. Je nachdem wie tief man in die Materie einsteigen will, muss man sich vorher mit Formen der Merkmalsextraktion sowie mit künstlichen neuronalen Netzen beschäftigen. Deep Learning bedeutet nämlich im Grunde folgendes:

  • Ein mehrschichtiges künstliches neuronales Netz (multi layer)
  • Jede Schicht (Layer) hat eine bestimmte Funktion & führt verschiedene Operationen aus
  • Man entwirft verschiedene Architekturen dieser Netze – verschiedene Verschaltungen von Layern





Diese Layer haben verschiedene Funktionen. Die meistbenutzten Konzepte werden nachfolgend dargestellt:

  • INPUT [32x32x3] Funktioniert im Grunde ähnlich wie eine Retina. Die Matrix in diesem Layer besteht aus den RGB-Bildpunkten (3) und entspricht der Größe des Bildes in diesem Beispiel: 32×32 Pixel.

    Quelle: Wikipedia

    Quelle: Wikipedia

  • CONV (Convolutional Layer) Dieser Layer berechnet Features für lokale Regionen im Input. Die meistgenutzte Funktion hier ist ein Skalarprodukt der Werte in den verschiedenen Regionen berechnet. Setzt man 12 verschiedene Filter ein, erhält man 12 Ergebnismatrizen. Dieser Dieser Layer produziert also eine Matrix mit den Dimensionen: [32x32x12].
  • RELU (Rectified Linear Unit) In diesem Layer werden relativ simple Funktionen angewendet, ähnlich wie max(x, 0). Werte werden hier nicht verändert, dafür aber eventuell auf einen Threshold-Wert gesetzt. Wir erhalten also wieder eine Matrix mit den Dimensionen [32x32x12].
  • POOL (Pooling) wird genutzt, um ein Downsampling auszuführen. Für POOL gibt es verschiedene Operationen, eine davon ist Max-Pooling- Dabei wird aus einer n x n Matrix der größte Wert gewählt. Beispielsweise mit dem Output [16x16x12]. Das entspricht einem Faktor von 0.5.
  • FC (fully connected) In diesem Layer sind alle Neuronen einer Schicht miteinander verbunden. Hier passiert auch der meiste Lernaufwand. Für den Fall, dass ein Netz zwischen 10 Klassen entscheiden muss, wären die Dimensionen hier [1x1x10].

Eine Beispiel-Architektur wäre eine serielle Verschaltung folgender Layer:  [INPUT – CONV – RELU – POOL – FC]. Hier werden zuerst verschiedene gefaltete Features aus dem Bild extrahiert. Danach wird ein bestimmtes Muster aus den extrahierten Features herausgeschnitten (entschieden nach Thresholds). Mit diesen Features wird nur ein Downsampling durchgeführt. Nach dem Downsampling der gefilterten und gefalteten Features wird nun der Layer angesprochen, der aus den Repräsentationen die verschiedenen Klassen entscheidet. Im Vergleich zu einem Ein-Layer-Netzwerk (auch shallow genannt) wird hier viel mehr Aufwand betrieben, um Features zu extrahieren.

Mehr über die Vergangenheit von Deep Learning und der Schönheit von lernenden Maschinen, erfährt man in Ben Vigoras Talk mit dem Titel “When Machines Have Ideas”. Er redet darüber, was lernen wirklich bedeutet und was das Interessante an lernenden Maschinen ist.

Hugo Larochelle redet in “The Deep End of Deep Learning” über den langen Weg, den Deep Learning gehen musste, bis es zum Buzzword wurde. Sehr interessant ist dabei auch, dass es diverse Ansätze zum Thema Deep Learning schon viel eher gab.

Um die 2 vorherigen Videos abzurunden, sollte man sich diesen Talk von Andrej Karpathy ansehen. Er ist Teil des Labs der Stanford University und war maßgeblich an der Weiterentwicklung des initialen Begriffs Deep Learning beteiligt.

Nach diesen Ausführungen zum Thema Deep Learning hat man eine Intuition für das aktuell am meisten gehypte Thema der KI-Forschung bekommen. Falls ihr euch fragt, wie es nun weiter geht oder gar Lust habt, ein Projekt mit Deep Learning Frameworks umzusetzen, dann werdet ihr hier fündig: