Maschinelles Lernen

Kababär

Top Contributor
Hi Leute,

auf der Suche nach fortgeschrittenen Themen (mal wieder), bin ich (mal wieder) so gut wie nur über Frameworks gestolpert (Jenkins, Tomcat, JSP, JSF, XML [JAXB/P, DOM, StAX, ...], "Nebenläufigkeit", Sockets/Servlets, Applets, ...), aber auch über ein sehr interessantes Thema, das zurzeit zu Boomen scheint (zumindest für die ganzen Firmen, Datensammelwut und Geldgeilheit :rolleyes: ).

Was ich eigentlich fragen will:
1. Kennt jemand guten und aktuelle Bücher (die neuesten Erkenntnisse werden wohl, außer in Papers, noch nicht veröffentlich sein), um einen relativ lockeren Einstieg in die Thematik zu finden?
JAXCenter wirbelt quasi mit dem Thema um sich. Die Beispiele habe ich mir angesehen, beispielsweise das Perzeptron. Das Muster dahinter erkenne ich (auch wenn ich etwas davon enttäuscht bin, dass da viel Statistik dahinter steckt).

Und 2.:
Hat jemand Erfahrung mit ML, insbesondere Deep Learning (bzw. Neuronale Netze)? Meist verwendet man das ja für Bild/Sprach/Schrifterkennung, zur Optimierung von Prozessen, etc.. Denkt ihr, man kann der Maschine auch beibringen, Abhängigkeiten zu lernen und diese in bestimmte Kategorien richtig einzuordnen?

Beispielsweise Sportarten und deren Regeln. Jede Sportart hat ja "weitestgehend" andere Regeln (oder Bezeichnungen dafür) und einen gesonderten Ablauf. Eine mögliche Eingabe könnte beispielsweise eine Regel sein und er (die Maschine) sagt dann, welche Sportarten davon betroffen sind. Oder er agiert als Beobachter und erkennt, sobald eine Regel verletzt wurde (Computerspiele).
Eventuell auch Schach: er spielt anfangs wie ein Baby, aber durch das gemeinsame Spielen baut er seine Strategie weiter aus (in Abhängigkeit vom Gegener).

Und was mir auch auf der Zunge liegt: Denkt ihr es ist (jetzt) schon möglich, einem Computer die Bedeutung von Wörter verständlich zu machen, so dass er logische Schlüsse daraus ziehen kann?
Oder ihm beizubringen, eigenständig Formulare zu lesen wie etwa Listen und Tabellen und daraus eventuelle Strukturen und Abhängigkeiten zu erkennen?
Wo sind die Grenzen? Bin ich der richtigen Annahme, dass man ihm alles beibringen kann, solange es mathematisch präzise genug beschreibbar und vor allem ein strenges, logisches Fundament ist?

Sorry, dass mein Text eigentlich nur aus Fragen besteht :D

Würde mich über Antworten freuen :)
 

Java20134

Bekanntes Mitglied
Zu dieser Thematik kann ich dir folgende Bibliothek namens SNIPE empfehlen. Sie ist sehr umfangreich und ist wie er es beschreibt keine "klick dir alles zusammen" Bibliothek.
 

Java20134

Bekanntes Mitglied
Vor allem was schön zu sehen ist, dass es eine sehr schönen Einstieg gibt. Wenn du es lieber hast Videos zu sehen statt Text zu lesen, kann ich folgende laufende Bilder empfehlen.
 
Zuletzt bearbeitet:

Kababär

Top Contributor
Das Kerlchen ist schon bisschen lustig :D ist wohl eher Theoretiker oder so.
Schade, dass das Video so kurz ist. Finde für den Einstieg Videos tatsächlich angenehmer.
Danke für die Links, Snipe habe ich mir mal eben gezogen und werde mal gucken, was ich damit anfangen kann.
Gibt ja mittlerweile echt schon Frameworks wie Sand am Meer o_O
 

@SupressWarnings()

Aktives Mitglied
@Kababär ich nehme an, das man mit genügend Rechenleistung (für neuronale Netzt nimmt man meistens Grafikkarten aufgrund der hohen Parallelität) und einer gewissen Wissensbasis (z. B. Duden) mit nur "wenig" Programmierung man einer Maschine beinahe alles beibringen kann. Dabei muss man halt nur darauf achten, dass die Lernmenge möglichst ausgewogen ist, da man sonst nicht weiß wonach das Programm wirklich gewichtet - ein gutes Beispiel dafür ist eine Software des Pentagon (oder ähnlicher Institution), die auf beliebigen Bildern versteckte Panzer erkennen sollte. Dabei war die Lernmenge ein Paket an Bildern, die alle an einem Tag aufgenommen waren (also alle mit Panzer an einem und alle ohne an einem anderen). Als das Programm also fertig gelernt hatte bemerkte man irgendwann das ein blauer Himmel das Kriterium war. (Habe dazu mal einen sehr theoretischen Workshop besucht, der vorallem auf Neuronen und Googles deep dream eingegangen ist)

Zu 2):
Ich habe mal in einer Ausstellung zum Thema Sprache ein schönes Video gesehen, in dem zwei Roboter nur mit ganz wenig möglichen Befehlen (Motorenanbindung, Kamera und Sprachausgabe) zusammen in einen Raum gepackt wurden. Dabei ging es um die Entwicklung einer eigenen Sprache, wobei bei lernenden Maschinen als Kriterium für das Verständnis von Sprache oft die Abhängigkeit von einem Körper genannt wird (sog. Embodiment). Diese Roboter haben erst geguckt "was bin ich? Was bin ich nicht?" und dann "sagte" einer etwas wie "jadok" und der andere versuchte die gemeinte Bewegung oder Gegenstand zu "erraten". So haben sich die beiden immer mehr auf eine Sprache geeinigt, die sie an einem Nachmittag entwickelt haben. Spezieller zu deiner Frage nehme ich an, dass da vielleicht das Stichwort Turing-Test interessant werden könnte und ich nehme an, dass auch das möglich wäre.

Du könntest vielleicht mal versuchen für ein einfaches Spiel (villeicht nicht direkt Schach sondern sowas wie TicTacToe oder Nim) eine einfache, lernende KI zu schreiben. Wichtig dabei ist halt, das du bei neuronalen Netzen nicht sagst, was er machen soll, sondern, dass das Programm die Neuronen selbst definiert. Du gibst also "Verknüpfungen" zum Spiel und eine Bewertung der Ausgabe. Die KI wird dann versuchen, mit ihrer Eingabe eine möglichst gute Ausgabe zu erzeugen. So entsteht eine Taktik, die mit einer Lernkurve beschrieben werden kann.

Mich würde das Thema auch interessieren, wenn du willst könnten wir uns zusammen daran wagen.
 

@SupressWarnings()

Aktives Mitglied
Achso, und was mir noch als möglicher Lernprozess einfällt wäre ein evolutionärer Algorithmus, den kann ich zwar nicht direkt programmieren (müsste erstmal länger drüber nachdenken) aber vom mathematischen Ansatz her erklären.
 

Ähnliche Java Themen

Neue Themen


Oben