AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Neuronale Netze ???

Ein Thema von Dannyboy · begonnen am 4. Sep 2003 · letzter Beitrag vom 17. Okt 2023
Antwort Antwort
Seite 6 von 8   « Erste     456 78      
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#51

Re: Neuronale Netze ???

  Alt 20. Dez 2004, 21:07
Das Neuronale Netz müsste dann auf diese Rechner verteilt werden. Angenommen man verteilt Schicht für Schicht, sprich Layer für Layer auf die einzelnen Rechner, dann könnte der 1. Rechner mit Layer 1 anfangen zu rechnen. Der 2. Rechner müsste nun auf den Rechner 1 warten da dessen Output des Layers jader Input des 2. Rechners wäre. Der 3. Rechner müsste auf den 1. dann 2. Rechner warten usw. usw.
Allerdings nachdem der 1. Rechner fertig ist kann er schon mit den nächsten Daten weitermachen und so entsteht eine Art Pipeline so wie in modernen CPU's. Tatsächlich gibt es auf parallelen Neuronalen Netzen in Hardware die gleichen Probleme wie mit Piplines in modernen CPU's. Denn zB. das Recurrent Cascade Network, wie oben angewendet, hat Recurrente Verknüpfungen der Neuronen zu deren Vorgänger Neuronen. Anders ausgedrückt der Output eines Neuronsin Layer 3. kann als Input eines Neurons in Layer 1. dienen. Nun muß der Rechner der Layer 1. berechnet also wiederum auf das Resultat des Rechners 3. für Layer 3. warten. Dieser Rechner kann aber erst sein Resultat liefern wenn Rechner 2. = Layer 2. fertig ist.

Nun, leider sind es aber die Recurrenten Netze die sozusagen ein Gedächtnis besitzen, eben auf Grund der Recurrenten Links. Und erst die Fähigkeit eines Gedächnisses ermöglicht das Lernen von sequentiellen Abfolgen und Mustern. Als Beispiel: ein Netzwerk soll das Morsealphabeth lernen. Dabei gibt es nur EINEN Input in das netzund über diesen kommt der Morsecode als sequentielle Folge rein. An den Ausgängen des Netzwerkes sollen diedekodierten Buchstaben anliegen. Solche Traningsaufgaben lassen sich nur mit Recurrenten Netzwerken umsetzen. Die meisten interessanten Probleme sind sequentieller Natur und bedürfern somit Recurrenter Netzwerke.

Leider lassen sich solche Netze nicht parallelisieren

Man kann versuchen das Problem zu parallelisieren, und das läuft darauf hinaus das das Problem in Teilprobleme zerlegt wird. Für jedes Teilproblem ein eigenes Netzwerk das dann natürlich auf einem eigenen Rechner laufen würde. Nur, das bringt nicht viel Denn die finale Laufzeit eines Netzwerkes ist enorm schnell im Vergleich zur Trainingsphase. Das was das Netzwerk so langsam macht ist also nicht die Forward Propagation sondern das Training auf ein Problem.

Gruß Hagen
  Mit Zitat antworten Zitat
Kernel32.DLL
(Gast)

n/a Beiträge
 
#52

Re: Neuronale Netze ???

  Alt 20. Dez 2004, 21:15
Hm.. Ok, ich denke, dass habe ich kapiert. Schad' drum. Wäre sicher interessant gewesen.
  Mit Zitat antworten Zitat
pajofego

Registriert seit: 6. Okt 2004
103 Beiträge
 
#53

Re: Neuronale Netze ???

  Alt 22. Dez 2004, 11:25
Zitat von negaH:
Nein, in Bezug auf die Klassifizierung von HTML's habe ich nichts getan. Aber ein ähnliches Projekt das eine beliebige Datei klassifizieren soll habe ich umgesetzt. Dabei wird das NN mit einer Datenbank von vorklassifizierten, sprich handausgewählten, Dateien trainiert. Bei meinen Tests waren das alle Dateien auf eine Festplatte. Diese hatte ich manuell per Handanalyse in einen Katalog einsortiert und das Netzwerk daraufhin traniert. Der Test der Fähigkeiten des Netzwerkes wurde mithilfe der Dateien einer anderen Festplatte durchgeführt. Die Trefferquote lag dabei bei circa 92%.
Interessant, wird es demnächst ein Programm zum Testen dafür geben?

Zitat von negaH:
Die WEB-basierte Idee ist natürlich um einiges schwieriger umzusetzen. Man benötigt erstmal einen HTTP Browser um den Links von Google etc. folgen zu können und die entsprechenden Seiten zu laden. Dann muß man alle HTML Formatierung, Java Scripte usw. aus den geladenen Seiten ausfiltern und dann die verbleibenden Informationen geeignet so umwandeln das sie einen kompakten Input für ein NN darstellen.
Ja stimme ich dir zu, ist ein bischen aufwendig, aber denoch machbar.

Zitat von negaH:
Soweit so gut, bleibt noch das Problem wie man das Netzwerk traniert, sprich woher man die Traningsdaten bekommt. Denn nur wenn die Auswahl der Trainingsdaten entsprechend groß, abwechslungsreich und exakt klassifiziert ist, kann das Netzwerk auch sinnvoll lernen.
Gruß Hagen
Genau das war auch die Motivation meiner Ursprungsfrage. Wie und mit welchen Daten soll man ein NN trainieren, damit es weiss was wichtig oder unwichtig bzw. Spam ist. Sollte dahingehend deinerseits noch Interesse bestehen könnten wir unter deiner Schirmherrschaft eine Art Brainstorming Thread starten zur Klärung der Frage: Mit welchen Inputs ein NN passable Resultate beim Suchen Informationsrelevanter Seiten liefern kann?

Gruss pajofego
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#54

Re: Neuronale Netze ???

  Alt 22. Dez 2004, 12:08
Die richtigen Trainingsdaten, tja das ist die Frage.

Wir geben dem Netzwerk einen beliebigen Input und dazu gleichzeitig die richtige Antwort die wir von ihm erwarten. Der Rest, sprich "sich" darüber "Gedanken" zu machen "was" nun "wie" zusammengehört ist die Aufgabe des Netzwerkes, das wollen WIR garnicht wissen Nur eines soll das Netzwerk aber richtig machen, es soll zu einem Input oder ähnlichem Input eine vorgegebene oder ähnlich vorgegebene Antwort liefern. Wichtig dabei ist aber das wir eben nicht wie Eltern jeden klitzkleinen Scheiß dem Netz vorplappern wollen, sondern mit möglichst wenigen oder unvollständigen Inputs soll das Netzwerk eine passable Antwort liefern. Wie, das ist uns im Grunde schnuppe.

Denoch, wenn wir schlechte Eltern sind, und einmal Hü das anderemal Hot sagen, sprich sich logisch widersprechende Trainingsangaben machen dann kann das Netz nicht lernen. Auch wenn der Zusammenhang zwischen Input und Output zu komplex für das Netzwerk ist oder das Netzwerk garnicht darauf ausgelegt ist wird es nicht in der Lage sein zu lernen.

D.h. wir müssen uns doch wiederum auch Gedanken machen wie das Netzwerk was lernt, damit es funktionieren kann.
Allerdings eben nur im Grob-Theoretischen und nicht bis zum letzten kleinen Schritt und Neuron.

Ausgehend vom HTML wissen wir
- es muß meßbare Unterschiede geben zwischen Spam und wichtigen Seiten
- denoch ist HTML eben HTML und alle Seiten folgen den gleichen Regeln
- wir wissen aber definitiv nicht ob die meßbare Varianz der HTMLs zwischen Spams und wichtigen Seiten logisch ist, d.h. gibt es immer wiederkehrende Muster in Spams die sie von wichtigen Seiten unterscheiden, oder sind die Programmierer der Spams so clever und abwechslungsreich in ihrem HTML Code das es keine Möglichkeit gibt, selbst für Menschen nicht, deren Spam HTMLs von wichtigen Seiten zu unterscheiden.

Der letzte Punkt ist aber die schönste Motivation beim Thema. Denn solche Probleme sind es in denen uns das Netzwerk wirklich überraschen kann, und aus unserer Sicht fast schon intelligent reagiert. Das liegt daran das die Informationsflut uns Menschen überlastet und so die kleinen Unterscheidungsmerkmale nicht auffallen. Dem Netzwerk entgingen solche Unterschiede aber nicht und es reagiert mit einer sauberen Lösung die wir nicht so erwartet haben.

Nun, die Trainingsdaten beim HTML Problem sind das wichtigste. Man benötigte eine ziemlich große aber gewichte Auswahl von schlechten und wichtigen HTML Seiten. Diese Auswahl muß mindestens zweimal vorhanden sein, sprich man benötigt zwei Test-Kataloge. Mit dem einen Katalog wird das Netzwerk trainiert mit dem zweiten wird dessen Voraussage verifiziert. Das wäre der letze Schritt nachdem man die Probleme der Aufbereitung der HTML Seiten, deren Filterung, des Browsens gelösst hätte.

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#55

Re: Neuronale Netze ???

  Alt 22. Dez 2004, 12:31
Achso, damit du keine falsche Vorstellungen hast:

Das Netzwerk soll nicht nach Informationen suchen, das übernimmt Google oder jede andere Suchmaschine. Es soll lernen so wie WIR die gefundenen Resulate nach UNSEREM Geschmack zu unterscheiden, nach wichtig und unwichtig. Es soll also nach Möglichkeit die Seiten selbständig so klassifizieren wie wir es getan hätten. Das Ziel ist es also Zeit zu sparen da das Netzwerk rund um die Uhr tausende von Seiten abarbeiten kann, so als wenn wir das machen müssten.

Dies impliziert also auch das das Netzwerk sich unserem "Geschmack" anpasst, das jeder für sich das Netzwerk persönlich trainieren muß.

Das Netzwerk sucht also nicht nach Informationen, sondern filtert eine Google Suche indem es dem Link folgt und diese HTML Seiten für uns klassifiziert und in Kataloge einordnet.

Wie könnte das gehen ?
Als erstes mal müsste man das HTML Format genauer untersuchen. Sprich wie kann man das HTML so vorfiltern das es eine gewichte Abschätzung liefert über prozentuale Anteile von Headern, Bildern, Verlinkungen, Texten, welche Sprache enthält der Text, Java Scripten usw. usw. Dieser Output wäre schon ein Input für das Netzwerk. Zb. die blöden Conrad-Elektronik Verlinkungs-Seiten die auf jedes Suchwort reagieren, immer andere URL's benutzen und denoch alle bei Conrad landen, ließen sich damit schon ausfiltern. Denn alle diese Seiten haben eine überdurchschnittliche Link-Anzahl. Oder Porno Seiten haben eine überdurchschnittlich hohe Anzahl von Bildern.

Danach könnte man noch die verbleibenden Textuellen Informationen dem Netz zuführen. Man müsste den Text aber vorher Klassifizieren. Vorstellbar wäre das indem man Wörterbücher benutzt, für Deutsch, Englisch usw. und nun die Häufigkeit der übereinstimmenden Wörter zu jedem Wörterbuch berechnet. Man könnte also auch Wörterbücher mit verbotenen Wörtern oder mit gesuchten Wörtern aufbauen und so die verlinkten HTML's untersuchen.

Es wäre auch möglich eine "Spektralanalyse" über die verbleibenden Texte oder Bilder durchzuführen. D.h. per Fourier Transformation wird sozusagen eine Frequenzspektrum über die Daten erzeugt. Vorteil dabei ist das man so beliebig große Datenmengen auf eine kleine Datenmenge mit fester Größe (z.B. 128 Doubles) reduzieren kann. Diese 128 Werte werden ebenfalls dem Netzwerk zugeführt.

Gruß Hagen
  Mit Zitat antworten Zitat
trasher

Registriert seit: 17. Mai 2008
3 Beiträge
 
#56

Re: Neuronale Netze ???

  Alt 20. Mai 2008, 21:52
Ist es eigtl. möglich so etwas wie eine Buchstaben Erkennung oder allgemein die Erkennung von bestimmten Zeichen auch ohne ein neuronales Netz zu realisieren und trotzdem gute Ergebnisse dadurch zu erzielen? Der Source mit über 2000 Zeilen wirkt schon etwas abschreckend, vor allem da es sich dabei um ein doch recht simples Beispiel handelt.
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#57

Re: Neuronale Netze ???

  Alt 20. Mai 2008, 21:56
Natürlich sollte das gehen.
Du must halt alles selber programmieren. Das ist ja gerade das interessante an einem Neuronalen Netz, dass es anlernbar ist und die Unterscheidungsfunktion mit der die zu erkennenden Muster im Geamtensuchraum unterteilt werden können wird durch das Netz erstellt. Aber du kannst so eine Klassifizierung natürlich auch selber schreiben und nicht automatisch erstellen lassen.

Gruss
Thorsten
  Mit Zitat antworten Zitat
trasher

Registriert seit: 17. Mai 2008
3 Beiträge
 
#58

Re: Neuronale Netze ???

  Alt 20. Mai 2008, 23:51
Denkst du, dass sich der Aufwand (es selbst zu machen und nicht automatisch erlernen zu lassen) lohnt oder sollte da grundsätzlich auf ein neuronales netz zurückgegriffen werden? Oder hat es sogar Vorteile es selbst zu machen?
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#59

Re: Neuronale Netze ???

  Alt 21. Mai 2008, 00:34
Der Vorteil bei einem NN ist zum einen die hohe Geschwindkeit beim Erkennen gelernter Muster und seine hohe Fehlertolerenz. Ein NN ist ein Klassifikator, der für einen vorhandenen Suchraum und seine Muster eine Mathematische Funktion erstellt, über die die einzelnen Muster in Klassen zerlegt werden.
Wenn du das jetzt selber programmierst (also einen eigenen Klassifikator) dann wird das ebenfalls sehr aufwendig. Ob du da mit <2000 Zeilen etwas wirst ist fraglich. Nur weil ein NN nicht gerade einfach, ist ein anderer Ansatz nicht einfacher.
Du müstest dir ja eine Funktion überlegen, mit der du deine Musterklassen im Suchraum eindeutig trennen kannst. Ich würde da schon zu einem NN raten. Allerdings gibt es natürlich auch hier Nachteile. Ein NN ist kein Allheilmittel.

Hier ist auch ein Ansatz von mir.

Gruss
Thorsten
  Mit Zitat antworten Zitat
fishbrain

Registriert seit: 17. Sep 2007
Ort: Regensburg
132 Beiträge
 
#60

Re: Neuronale Netze ???

  Alt 21. Mai 2008, 18:57
Mich als Neurobiologiefan hat das thema natürlich sofort begeistert.
Jetzt habe ich einen kleinen text erkenner geschrieben. Da ich daten leider noch nicht in dbs speichern kann habe ich Inis genommen.
Oben in das schwarz umrandete kästchen etwas reinmalen, dann entweder abfragen ob das ein bestimmter buchstabe ist, oder ihm(Norbert Neuro) sagen welcher buchstabe das ist. Er wird es sich merken und beim nächsten mal wissen.
Um einen buchstaben gut zu erkennen braucht er ca 5-10 einträge.
Funktionieren tut das ganze (fast ) wie beim menschen:

Für ein bestimmtes gebiet ist ein bestimmtes Neuron zuständig, das immer nur für sein gebiet weis was es ist.
Danach werden die ergebnisse zusammengefasst. Bisher kann er A,O,Z,F und L.
Source ist dabei.

Viel Spass mit Norbert Neuro wünscht

Demler Jakob
Angehängte Dateien
Dateityp: zip texterkenner_167.zip (354,3 KB, 82x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 8   « Erste     456 78      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz