Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Neuronale Netze ??? (https://www.delphipraxis.net/8425-neuronale-netze.html)

Hackbart 20. Jan 2004 11:58

Re: Neuronale Netze ???
 
Danke für die Antwort! Noch einmal eine Frage. Ich beschäftige mich zur Zeit mit einem bestimmten genetischen Allgorithmus, welcher einen Therm sucht, aus welcher man eine selbst eingegebene Zahl erechnen kann. z.B. 1+2+3*2 für 12. Die Chromosomen dabei stelle ich aus den (4- Stelligen) Binärwerten dar Operanden dar. Nun ist ein genetischer Allgorithmus nicht gerade der schnellste, deshalb möchte ich ihn auf folgende Art und weise erweitern:
Es werden Zwar immer neue Chromosomen gebildet, doch "die besten", welche am nächsten am Ergebnis dran sind, werden nicht gelöscht sondern gespeichert. Auch diese unterinander "vermehren" sich und danch wird neugeordnet. Die besten aus den neu Erzeugten und den schon gepeicherten Chromosomen werden wieder gespeichert und die "schlechten" fallen raus. Es fallen immer so viele raus, wie neu in die "best of" aufgenommen werden.
Kann man diese Modifikation nicht auch als NN realisieren? Wenn ja, wie müsste ich da ran gehen?

2) Wie müsste ein NN aussehen, wenn ein Bild (Aus Pannels/ Shapes zusammengesetz) abgetasten werden soll auf den dort gezeichneten Buchstaben/ Zahl?

negaH 20. Jan 2004 14:51

Re: Neuronale Netze ???
 
Hi Hackbart,

1.) ich kenne solche Genetischen Algorithmen zur Formelfindung nur als Algos. die Formel finden sollen zu sehr vielen Eingabe- zu Ausgabevariablen. D.h. man kennt bestimmte Eingabeparamter wie Alter,Familienstand,finanzielles Einkommen, finanzielle Sicherheit, beantragter Kredit usw. verschiedener Personen der Vergangenheit und als Ausgabeparamter ob und wie diese Personen ihren Kredit in der gegenwart abgezahlt haben. Der Gen. Algorithmus versucht nun eine allgemeingültige Formel zu finden. Nungut, ich will darauf hinaus das in deinem Beispiel ein geneterischer Algorithmus ein viel zu überdimensioniertes Instrument ist. Mit einer einfachen linearen Analyse findet man sehr schnell entsprechende Lösungen. Zb. 12=12 oder 12=2*6 oder 12=1*12 usw. Ich vermute mal das deine jetzige Implementation enorm schnell solche trivialen Lösungen produziert.
Desweiteren ist es wichtig zu wissen was das Genom im Unterschied zu den Chromosomen ist. In deinem Falle besteht ein Individuum nur aus einem Chromosom=Formel und diese wierderum aus mehreren Genomen=zweigliedrigen Formelteile und diese wiederum aus mehreren Gene=Konstanten oder Operatoren. Das bedeutet das es keinen Sinn macht Chromosomen separat qualitativ zu bewerten. Normalerweise würde in einem Mehrfach-Chromosomen-Individuum ganze Chromosomenpaare untereinander zwischen den Individuuen oder eben bei geschlechtlicher Vererbung zwichen den Kindern ausgetauscht. Dies auf Genom-Ebene zu machen ist sinnlos. Auf Genebene wirkt am besten die Mutation = zufällige "Bit"-Änderungen. D.h. es gibt zwei wesentliche Triebkräfte die die Evolution vorrantreiben. 1. leichte Mutation auf Genebene und 2. nach der Selektion die Vererbung von Chromosomenmixturen an die Nachfahren der besten Individuuen. Die Selektion und die Gencodierung sind der einzigste Punkt an denen wir als Programmierer die Vorgaben=Zielrichtung der Evolution festlegen. Die Festlegung was ein gültiges Chromosom per Definition ist bestimmt auch die Korrektheit und Funktionsfähigkeit des Individuums nachdem es als Kind mit einem neuen Mix von Eltern-Chromosomen erzeugt wurde. D.h. die Chromosomen-Definition hat die Aufgabe möglichst Genketten untereinander zu kombinieren die auch sinnvoll sind, so daß das Individuum auch "lebenfähig" wird. Die einzelnen Genome auf diesem Chromosom sollen sicherstellen das die logische Struktur eines Chromosomes korrekt aus Genen zusammengesetz wird. In deinem Falle würden also die Genome sicherstellen das sich eine Formel aus abwechselnden Zahlen und Operatoren ergeben kann. Erst bei den Genen, also den Konstanten und Operatoren, wird eine Zufälige Bitänderung relevant. D.h. egel welche Bits in den Genen geändert wird, auf Grund der logischen Struktur nach Genomen->Chromosomen entsteht auf einem Chromosom immer eine funktionsfähige Formel.

Sollte denoch eine untaugliche Formel entstehen so wird diese NICHT durch spezielle Algorithmen ausgesiebt. Dazu ist ebenfalls nur die Selektions-Funktion zuständig. D.h. ein nicht überlebensfähiges Individuum, weil kaputte Chromosomen, wird einfach mit einer Fitness von NULL bewertet. Dadurch stirbt es in der nächsten Generation ganz von selber aus. Somit wird eine nicht funktionsfähige Formel am stärksten bestraft = mit dem Tode. Am Ende enthält unser Individuum-Pool nfast nur noch gültige Formeln. D.h. die Selektierungs-Funktion bewertet jedes Individuum abhängig davon ob es eine gültige Formel ist und wenn ja wie gut diese Formel an das Ziel herankommt. Danach werden alle Individuuen einer geschlechtlichen Fortpflanzung entsprechend ihrer Fitness unterzogen. D.h. man erzeugt die nächste Generation aus Individduen als Kinder der aktuell stärksten Individuuen. Anschließend wird ein sogenanntes Crossover auf die Chromosomen der neuen Generation angewendet. Dabei vertauscht man meistens innerhalb der Individuen ganze Chromosomen oder Genome untereinander. Abschließend wird noch eine Mutation an ca. 3% der Gene durch Bitänderungen durchgeführt. Nun wird erneut auf diese Generation die Selelktion durchgeführt usw. usw.

Im Grunde würdest du also keinerlei Neuronale Netzwerke usw. benötigen. Ich kenne auch keinen solchen Anwendungsfall wie du ihn beschreibst. Das einzigste was ich in diesem Zusammenhang weis ist das man NN's benutzt um die Evolutionsparamater = Mutationsrate, Vermehrungsrate usw. abhänig von der Stagnation der Evolution zu setzen. D.h. das Neuronale Netzwerk übernimmt die Aufgabe des Menschen indem es die Evolution abhänig von ihrer Wachstumsrate steuert.

Umgekehrt gibt es aber genetische Algortihmen die die Netzwerkstruktur von großen neuronalen Netzen optimieren sollen. D.h. die Aufgabe der gen. Algos. ist es möglichst Netzwerke zu finden mit wenig Neuronen und Verbindungen.

2.) Für OCR Systeme gibt es viele spezialisierte Netzwerke, zB. Hopefield Netzwerke. Im Normalfalle wird erstmal eine Sensorische Schicht definiert. Diese ist eine Matrix von Bildaktiven Sensoren. Dazu wird man technisch gesehen jedes Bild erstmal auf die Pixelgröße dieser Sensor-Matrix reduzieren. Nun wird diese Matrix nach bestimmten Regeln abgetastet. D.h. man reduziert zB. bei einer Matrix von 16x16 Pixeln auf zB. 32 oder 64 Inputs. Diese Inputs sind dann die Inpoutneuronen des Netzwerkes. Man macht diese Reduktion damit ein netzwerk eben nicht mit zB. 256 Inputs für eine 16x16 Matrix arbeiten muß. Dadurch wird das Netzwerk enorm beschleunigt da nun die "komplette" Bildinformation nur auf 32 oder 64 Inputs gemappt wird. Bei größeren Matrizen wird das noch deutlicher. Eine 1024x1024 Matrix hat 1 Mega Pixel, aber bei der H+V+D Abtastung eben "nur" 1024+1024+2047 Inputneuronen. Bei solch riesigen Matrizen lohnt selbst die H+V+D Abtastung nicht mehr da das Netzwerk einfach zu gigantisch wird. Ich habe dann immer mit einer Kombination per Fast Fourier Tranformation der Bilddaten gearbeitet.

Man sieht also das bei der Bilderkennung per NN's das Postprocessing der Bildinformationen sehr wichtig ist.

Ich persönlich habe mit mehreren solchen Matrix Typen für die OCR rumgespielt. Die besten Resultate erzielte ich wenn die Matrix horizontal, vertikal und diagonal in einer Richtung abgetatstet wurde. Desweiteren wurden die Sensoren der Matrix im Mittelpunkt der Matrix stärker verstärkt als die Randsensoren. Dies entspräche unserem Auge mit seinem hochaktiven Sehnerv. Wenn du also weitergehende Fragen hast dann frag einfach.

Gruß Hagen

negaH 20. Jan 2004 15:09

Re: Neuronale Netze ???
 
Übrigens, dein gen. Algorithmus wäre mit entspechenden Randbedingungen ein idealer Faktorizations-Algorithmus. Gegeben ist eine sehr sehr große Zahl die in zwei bis drei Konstanten per Multiplikation und einer Addition zerlegt werden soll. Die Konstanten selber müssen mindestens zweimal kleiner als die große Zahl sein. Wird damit ein Individuum mit Z=X*Y+U erzeugt wobei U=0 ist, so hat man die große Zahl Z in zwei Teiler zerlegt.

Gruß Hagen

flomei 7. Feb 2004 23:07

Re: Neuronale Netze ???
 
Ich find das Thema durchaus interessant... :roll:
Heute war ich bei Jugend-Forscht und wir haben richtig schlecht abgeschnitten mit unserem Physik-Projekt... :roll:
Deshalb habe ich mir vorgenommen nächstes Jahr etwas im Bereich Informatik/Mathematik zu machen...
Dabei dachte ich an Neuronale Netze weil das ja noch ein wirklich unberührtes Thema ist. Ist zwar extrem kompliziert aber ich habe ja noch ein Jahr Zeit...
Wie fange ich am Besten mit dem Erlernen der Grundlagen von NN an?

Danke im Vorraus! :)

MfG Florian :hi:

negaH 9. Feb 2004 00:15

Re: Neuronale Netze ???
 
Zitat:

Wie fange ich am Besten mit dem Erlernen der Grundlagen von NN an?
Puh, am besten nimmste dir 3-4 Tage Zeit und sammelst alles was im Netz dazu zu finden ist. Es gibt gute Einsteiger-Sites in deutsch die zwar einen oberflächlichen aber dennoch guten Einstieg bieten. Weiter gehts dann mit den meisten englischen Pages der Universitäten ua. die dann aber auch schon viel tiefer in die Technik eindringen. Du wirst dabei auch auf einige freie Software stoßen. Interessant sind dann auch schon die verschiedenen PDF's und PostScript's, die du benötigen wirst wenn du auf dem derzeitigen aktuellen Stand der Forschungen kommen willst.

Bücher solltest du mal bei Amazon versuchen.

Gruß Hagen

flomei 9. Feb 2004 00:44

Re: Neuronale Netze ???
 
Vielen Dank für die Info... Ich hab ja noch rund 1 Jahr Zeit... ;)

Mal sehen was ich so finde. Hast du da vielleicht ein paar sehr gute Einsteiger-Links oder soll ich mich erst durch alle Google-Ergebnisse quälen? :mrgreen:

Danke!

MfG Florian :hi:

Nicodius 12. Nov 2004 18:49

Re: Neuronale Netze ???
 
hab da noch einen sehr interessanten link ( bin jetzt auf den post hier gestoßen) da ich mich seit ein paar monaten schon über das thema informiere

hier isser

pajofego 20. Dez 2004 16:27

Re: Neuronale Netze ???
 
Zitat:

Zitat von negaH

Ein interessantes Projekt wäre für mich eine eigene Suchmaschine. Im Laufe der letzten 2 Jahre musste ich leider feststellen das die heutigen Internet-Suchmaschinen immer weniger für mich relevante Resultate bringen. Es werden immer häufiger irgendwelche virtuell-kommerzielle Links gefunden die auf eBay oder andere Suchmaschinen verweisen. Immer seltener findet man die echt guten privaten Homepages von wirklich interessierten Menschen. Das kann NICHT daran liegen das das Verhältniss von guten privaten Homepages zu kommerziellen Homepages verschoben wurde. Es liegt eher am pushen kommerzieller Pages. Öfters lege ich KEINEN Wert darauf sehr schnell Resultate zu bekommen. D.h. ein Such-Robot der über 1-2 Tage hinweg eine einzigste Suche ausführt, aber dabei WIRKLICH relevante Pages findet ist mir lieber, als Google mit seinen 10.000 Links auf eBay o.ä. Alleine schon der Fakt das man heute die echten kommerziellen Seiten der Hersteller nicht mehr so einfach findet ist schmerzhaft. Nun die Aufgabe des NN's wäre es die schnelle Entscheidung zu treffen ob eine anvisierte Hompage kommerzieller oder informeller Natur ist. Am besten sollte das NN nur auf Grund des Index-HTML's erkennen ob sich eine Suche auf der Hompage überhaupt lohnt. Das NN klassifiziert also den Internet-Spam-Müll !

Praktisch gesehen könnte das so funktionieren: Eine Software stellt Anfragen an Google oder MetaGear. Deren HTML's werden zerlegt und jede Seite per NN analysiert. Die Aufgabe der Software besteht also darin den Intenet-Spam-Müll raus zu filtern. Aus einem Resultat von zB. 10.000 Links bleiben dann 2-3 Kategorien übrig, wie Private Hompages, echte kommerzielle Firmen und Spam-Müll.

Gruß Hagen

Ooooooh...dieses Problem finde ich höchstinteressant. Ich plage mich ebenfalls damit rum teilweise nichts vernünftiges zu finden. Ohne programierähnliche Fähigkeiten wie "Suchbegriff" -ebay -amazon -billiger komme ich schon gar nicht mehr aus!

Meine Frage, hast du diesbzgl. etwas in letzter gemacht oder waren dies nur Gedankenspiele deinerseits?

Gruss pajofego

negaH 20. Dez 2004 18:30

Re: Neuronale Netze ???
 
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%.

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.

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

Kernel32.DLL 20. Dez 2004 20:43

Re: Neuronale Netze ???
 
Ich muss gestehen, dass ich sämtliche Posts "nur" Überflogen hab' und daher nicht hundertpro sicher sein kann, dass diese Frage nicht schon gestellt wurde:

Wäre es nicht reintheoretisch möglich,in deinem Testprogramm noch eine Netzwerkfähigkeit zu implementieren? Ähm, jetzt darfst du mich nicht falsch verstehen, ich dachte mehr an das Nutzen der Rechner in einem Netzwerk. So könnte man doch sicherlich die Rechenzeit des neuronalen Netzes verkürzen, wenn zwei oder mehr Computer gleichzeitig arbeiten könnten...

3..2..1.. Da war's meins!!

negaH 20. Dez 2004 21:07

Re: Neuronale Netze ???
 
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

Kernel32.DLL 20. Dez 2004 21:15

Re: Neuronale Netze ???
 
Hm.. Ok, ich denke, dass habe ich kapiert. Schad' drum. Wäre sicher interessant gewesen.

pajofego 22. Dez 2004 11:25

Re: Neuronale Netze ???
 
Zitat:

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:

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:

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

negaH 22. Dez 2004 12:08

Re: Neuronale Netze ???
 
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

negaH 22. Dez 2004 12:31

Re: Neuronale Netze ???
 
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

trasher 20. Mai 2008 21:52

Re: Neuronale Netze ???
 
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.

omata 20. Mai 2008 21:56

Re: Neuronale Netze ???
 
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

trasher 20. Mai 2008 23:51

Re: Neuronale Netze ???
 
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?

omata 21. Mai 2008 00:34

Re: Neuronale Netze ???
 
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

fishbrain 21. Mai 2008 18:57

Re: Neuronale Netze ???
 
Liste der Anhänge anzeigen (Anzahl: 1)
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

Sandi007 31. Jul 2023 23:12

AW: Neuronale Netze ???
 
Spannend was sich bis heute so getan hat. Wie z.B. www.deepai.com und der Chat dort. Was denkt ihr zum Thema Zufall und KI:
Angenommen ich habe eine Quelle, die wirklich echte Zufallszahlen generiert. Diese "Quelle" wird nun einem Einfluß ausgesetzt, der für uns zunächst keine Auswirkungen haben sollte (spirituelle Vorschläge sind willkommen). Z.B. Befasse ich mich mit der Zufallsquelle gedanklich oder mit Berührung - was auch immer. Und nun soll eine KI prüfen, ob die Daten anders reinkommen als es ohne die Beeinflussung zu erwarten wäre... jedem, den ich nun ein Schmuntzeln abringe - ich stehe dazu und lasst uns diesen Post so wie den letzten hier weitere 15 Jahre stehen und dann lesen wir noch mal drüber. :-)
Der Gedanke dahinter ist, das es nicht wirklich einen Zufall gibt. Er erscheint uns nur so, da wir keine Erklärung dafür haben (wollen/können).

himitsu 1. Aug 2023 03:23

AW: Neuronale Netze ???
 
Das "System" der KIs ist ja selber schon fast chaotisch genug und praktisch niemand weiß was genau intern mit den Daten passiert ist, welche die KI für die Ausgabe heran zog.
Ich glaub fast da ist es nicht mehr soooo wichtig, wie zufällig der Zufallsgenerator darin arbeitet ... die anderen Dinge haben wohl so auch schon eine zu hohe Komplexität.




Der Zufallsgenerator im Pascal/Delphi hat nur 32 Bit
und besteht aus einer sehr einfachen Formel, für die Berechnung.

Früher wurde auch GetTickCount für die Initialisierung benutzt.
Inzwischen ist es QueryPerformanceCounter. (Windows)
Auch initialisiert die VCL inzwischen automatisch den Generator.
Wenn man es vergessen hatte, dann begann es ja immer bei 0.

Selbes war "früher", wenn jemand grob fahrlässig Randomize öfters / zu oft aufgerufen hatte
und so nacheinander mehrmals der selbe Zufallswert, bzw. sogar die gleiche Zufallszahlen-Reihe entstehen konnte. :freak:


Nja, je aufwändiger der Zufallsgenerator, z.B. für Verschlüsselungungen werden daher gern eigene Generatoren benutzt,
um so komplexer wird die Folge von Zufallszahlen und um so schwerer, bis nahezu unmöglich, wird es da eine "Regelmäßigkeit" zu erkennen.
(gut, denn sonst könnte man ja "leicht" den nächsten Zufallswert "vorberechnen" und so z.B. Verschlüsselungen knacken)

Bei so "mathematischen" Zufallsgeneratoren bezieht sich der nächste Wert immer auf dem vorherigen Wert.


Es gibt für PCs auch Zufallsgeneratorchips, welche z.B. aus dem Rauschen gewisser Bauelemente/Materialien einen Zufallswert generieren.
Es gibt auch Webservices, welche irgenwelche "chaotische" Quellen für die Generierung von Zufallszahlen nutzen-
Unter anderem gibt/gab es in Berlin eine Webcam, welche Lavalampen aufnimmt und damit arbeitet.
Anhang 56155







Für ihre KIs benutzen die bestimmt "bessere" Zufallsgeneratoren, womöglich sogar entsprechende Chips.

'ner KI beizubringen "echten" Zufall von "Berechnetem", oder aus "schrottigen" Quellen zu unterscheiden, wird bestimmt schwer bis nahezu unmöglich.
Und dann wird es bestimmt auch egal sein, was die KI selbst benutzt. (so lange es nicht sowas "Einfaches", wie im Delphi/C++/... ist)



schrottig: Es gab z.B. Welche, die aus dem Hintergrundrauschen einer Radioantenne, oder Schwingungen von Quarzen arbeiteten,
welches aber auch durch konstante Strahlungsquellen "leicht" beeinflusst werden können und dann plötzlich nicht mehr ganz so zufällig sind.






Es ist manchmal echt witzig, wie leicht sich eine KI manchmal verwirren lässt.

Irgendwo auf dem Bild ein "keines" Störmuster und schon erkennt sie garnichts mehr.
Besonders problematisch für selbstfahrende Autos, welche ein Auto oder ein Verkehrsschlild nicht sehen.
Oder vor Kurzem eine Objekterkennung gesehn, die "Menschen" auf Bildern/Videos findet, wenn er nicht ein unschafes Bild einer Menschengruppe hält (könnte man z.B. auf das T-Shirt drucken).
https://www.spiegel.de/netzwelt/web/...a-1301234.html

Sinspin 1. Aug 2023 07:59

AW: Neuronale Netze ???
 
Zitat:

Zitat von Sandi007 (Beitrag 1525097)
Der Gedanke dahinter ist, das es nicht wirklich einen Zufall gibt. Er erscheint uns nur so, da wir keine Erklärung dafür haben (wollen/können).

Das ist korrekt. Es gibt keinen Zufall, wir haben nur nicht genug Überblick um zu erkennen was für Variablen existieren und welche Werte in die Variablen gefüllt werden müssen.

Anstatt Bots zu entwickeln die Menschen simulieren oder Passwörter knacken, sollte AI besser dazu verwendet werden um Krankheiten zu besiegen und die Kernfusion nutzbar zu machen.

Sandi007 1. Aug 2023 08:44

AW: Neuronale Netze ???
 
Lieben Dank Himitsu. Den "Anhang 56155" kann ich nicht öffnen. Liegt es an mir?
Lieben Danke Sinspin - in der Richtung folgt von mir:

Zum Zufall und Rauschgeneratoren habe ich noch etwas gefunden. Es wird/ bleibt aber spirituell. Das Gerät "Timewaver" (Hersteller) arbeitet mit 2 abgeschirmten Rauschquellen. Eine weitere Signalquelle wird als Lichtquantenresonator bezeichnet. Aus Sicht des Herstellers werden die Signale in Verbindung mit dem Benutzer zu interpetierbaren Signalen. Damit können Informationen aus einem "Informationseld" gelesen und auch hineingeschrieben werden.
Aus meiner Sicht sind es zunächst Zufallsgeneratoren. Jedoch findet ja in der Anwendung noch eine Beeinflussung statt, die dann körperlich heilen kann oder andere Prozesse positiv beeinflusst. Wie z.B. die Vorgänge in einem Unternehmen.

Na guuuut. Daher wieder meine Überlegung, ob eine KI diese Art von Signalen beobachten kann. Eingangssignal sind also Daten aus diversen Rauschquellen. Die Rauschquellen laufen für die Analyse einmal im "Leerlauf" und ein anderes mal unter Beeiflussung durch einen Benutzer - vergleichbar wie beim Timewaver. Im letzteren Fall sollte die KI anstatt Zufallsdaten eine bestimmte charakteristik in den Signalen finden - die von Kommunikation. Da es sich nicht mehr um Zufallsdaten handelt, sondern um Daten aus dem Informationsfeld.

Sollte sich dies bestätigen - was durchaus nahe liegt, da mit dem Timewaver Erfolge erzielt werden - dann versteckt* sich hinter dem Zufall eine riesige Welt, vollgestopft mit Informationen die es zu entdecken gilt. Der Zugang wäre jederman möglich. Die nötigen Mittel dazu im überschaubarem Rahmen. Eine KI mit Sprachmodel könnte hier als Dolmetscher eingesetzt werden. Was meint ihr dazu?


* mit versteckt meine ich, dass dadurch beide Welten nebeneinander funktionieren: Wer den Zufall für Zufall hält wird gut zurecht kommen. Wer hinter dem Zufall an größeres glaubt und es evtl. sogar findet, wird damit auch zurecht kommen.

Amateurprofi 1. Aug 2023 09:12

AW: Neuronale Netze ???
 
[QUOTE=Sinspin;1525103]
Zitat:

Zitat von Sandi007 (Beitrag 1525097)
Es gibt keinen Zufall.

Zufall ist unsere Unfähigkeit, alle Umgebungsbedingungen zu erkennen und zu bewerten.

Zufall ist die Maske, die das Schicksal benutzt, wenn es nicht erkannt werden will.

himitsu 2. Aug 2023 08:32

AW: Neuronale Netze ???
 
Zufall ist Unordnung ... jetzt fangen die KIs an auch noch aufzuräumen.




Spot, Cozmo, Eilik und ihre Freunde waren schon nett,

aber wann kommt der endlich mal der Aufräumroboter auf den Markt?
https://www.facebook.com/watch/?v=242087078748525
mit Objekterkennungs-KI

Wobei ........
https://www.stern.de/digital/technik...f-8690104.html


Achtung, das Ding könnte auch ein Messer halten und dann damit Nachts durch die Wohnung ...



Auch mehrere Weltraumhotels waren bereits auf die ersten Jahre hin komplett ausgebucht und sollten 2004 2012 2017 2021 2025 2027 schon fertig sein.

freimatz 2. Aug 2023 12:56

AW: Neuronale Netze ???
 
[QUOTE=Amateurprofi;1525106]
Zitat:

Zitat von Sinspin (Beitrag 1525103)
Zitat:

Zitat von Sandi007 (Beitrag 1525097)
Es gibt keinen Zufall.

Zufall ist unsere Unfähigkeit, alle Umgebungsbedingungen zu erkennen und zu bewerten.

Das gilt nicht bei quantenmechanischen Vorgängen. Es hängt z.B. nicht von Umgebungsbedingungen ab, ob ein radioaktives Atom zerfällt innerhalb eines Zeitraumes.

Uwe Raabe 2. Aug 2023 13:37

AW: Neuronale Netze ???
 
Zitat:

Zitat von freimatz (Beitrag 1525157)
Das gilt nicht bei quantenmechanischen Vorgängen. Es hängt z.B. nicht von Umgebungsbedingungen ab, ob ein radioaktives Atom zerfällt innerhalb eines Zeitraumes.

Das ist zumindest der aktuelle Konsens in der Physik. Vielleicht fassen wir den Begriff Umgebung aber einfach nur zu eng auf das was wir kennen (oder annehmen zu kennen). Wenn es eine Bedingung, z.B. eine Kraft, für den Zerfall gibt und wir nur noch nicht in der Lage sind, diese Kraft nachzuweisen, dann ist die Beobachtung des Zerfalls vielleicht der einzige uns aktuell zur Verfügung stehende Nachweis für diese Kraft.

Sherlock 2. Aug 2023 13:53

AW: Neuronale Netze ???
 
Zitat:

Zitat von freimatz (Beitrag 1525157)
Es hängt z.B. nicht von Umgebungsbedingungen ab, ob ein radioaktives Atom zerfällt innerhalb eines Zeitraumes.

Da setze ich mal Heisenberg dagegen. Allein die Beobachtung dieses Atoms ändert schon etwas. Außerdem ist es ja eben nicht auf die Millisekunde genau vorhersagbar, wann ein solches Atom zerfällt, sondern man gibt Wahrscheinlichkeiten für einen Zeitraum an (Halbwertszeit). Aber mein letzter Kontakt mit Physik ist schon 30 Jahre her, ich kann mich auch auf einem extrem dünnen Holzweg befinden.

Sherlock

himitsu 12. Okt 2023 00:09

AW: Neuronale Netze ???
 
Google meinte grade: „Rekordhalter“ ist das erwähnte Tellur-128 mit der Halbwertszeit von 7,2 · 10^24 Jahren (siehe Liste der Isotope/Ordnungszahl 51 bis Ordnungszahl 60); dies ist das etwa 520-Billionen-fache des Alters des Universums.

Quelle: https://de.wikipedia.org/wiki/Primordiales_Nuklid

Wie kommt man denn auf so eine Zahl?
Nachgemessen wird es ja noch niemand haben, also dass nach dieser Zeit wirklich die Hälfte weg ist.

Und wenn im Messzeitraum zufällig grade weniger zerfiel (von Billionen beobachteten Atomen), als im Durchschnitt zerfällt, dann kann bei dieser Größenordnung die Fehlerrate ja enorm sein, oder nicht?
Wobei die Wiki sagt "Tellur ist ein seltenes chemisches Element", also soooooo viel können die davon eigentlich nicht gehabt haben.
Von 1000 Billionen beobachteten Atomen düfte demnach ja statistisch gesehn noch Garkeines zerfallen sein, seit jemand da drauf guckt ... woher weiß man dann, dass es überhaupt radioaktiv ist und deswegen irgendwann zerfällt?



Nja, ich hatte mich öfters mal gefragt, wo die radioaktiven Stoffe bei uns her kommen, bzw. warum es sie immernoch gibt.
Sie dürften doch größtenteils irgendwo in einer/vielen Supernovae entstanden sein, also die schwereren Atome. Und da Materie nicht schneller als Licht sein kann, war sie ganz sehr viel enoorm lange unterwegs, bevor sie sich hier in unserer Staubwolke ansammelten, bevor unser Sonnensystem entstand, bzw. wenn sie es danach aus dem interstellaren bis zu uns geschafft hatte, entgegen der rausdrückenden Kraft der Sonne.



Wobei mir das mit der Halbwertszeit einfach nicht in den Kopf will.

Wenn ich 1000 Atome habe, dann sind nach einer gewissen Zeit 500 zerfallen.
Von den restlichen 500 zerfallen in nochmal der selben Zeit nicht ebenfalls 500, sondern nur noch 250.


Falls das eine KI jemals verstehen sollte, dann sind wir bestimmt am Arsch.

Sinspin 12. Okt 2023 08:51

AW: Neuronale Netze ???
 
Das ist Statistik. Dafür braucht es keine KI.

Witzigerweise basiert die Lösungsfindung von KI aber auf Statisik bzw. auf Wahrscheinlichkeitsberechnungen.
Das sollte man auch immer schön im Kopf behalten wenn man sich von sowas helfen lässt. Ala, traue keiner Statistik die du nicht selber gefälscht hast ;-) -> Traue keiner KI die du nicht selber trainiert hast.

himitsu 12. Okt 2023 09:58

AW: Neuronale Netze ???
 
https://www.der-postillon.com/2023/05/deppgpt.html :stupid:

Zitat:

Zitat von Sinspin (Beitrag 1528005)
die du nicht selber trainiert hast

Auch das hilft nicht, da du ja dennoch nicht weißt, was sie wirklich gelernt hat.

Beispiele:
Gebrauchtwagenwebseite benutzte KI für Bewertung der Autos.
Man dachte sie hat gelernt teure Autos von Schrottkarren zu unterscheiden (die Ergebnisse sahen anfangs gut aus),
aber eigentlich hatte sie nur gelernt
* schönes Wetter + sauberes Auto = teuer
* schmuddelregenwetter und/oder dreckiges Auto = schrott
* aka gutes Foto = truer versus schlechtes Foto = schrott

Oder eine Personalabteilung wollte durch KI die Diskriminierung eindämmen.
Nur wurde die KI mit Daten alter Bewerbungen und daraus resultierender Einstellungen gefüttert,
also verhielt sie sich noch sexistischer, als jene Personaler, welche sich bemühten es nicht zu sein.
* sobald ein Lebenslauf nach "Frau" klang, wurde sie öfters/immer sofort aussortiert (weil früher wurden Männer bevorzugt und da sich zusätzlich auch mehr Männer bewarben, wurden auch vorwiegend Männer eingestellt)
* wenn ein Mann z.B. irgendwas mit Wohltätigkeit oder Volleyball machte oder einen Vaterschaftsurlaub hatte, dann war er eine Frau.

Sinspin 12. Okt 2023 14:00

AW: Neuronale Netze ???
 
Zitat:

Zitat von himitsu (Beitrag 1528009)
Auch das hilft nicht, da du ja dennoch nicht weißt, was sie wirklich gelernt hat.

Da hast Du recht. Das wird auch nix werden solange die KI nur mit Daten gefüttert wird ohne festzulegen was eigentlich der Focus ist.

Erst müsste man der KI beibringen was Focus ist und wer den Focus angibt.
Ein Affe kann ja auch erst dann Stöckchen sammeln und gegen futter tauschen wenn der Trainer nicht nur gezeigt hat dass es Heute Stöckchen sind, sondern wenn der Affe den Trainer überhaupt versteht.

freimatz 16. Okt 2023 13:34

AW: Re: Neuronale Netze ???
 
Zitat:

Zitat von negaH (Beitrag 62184)
Die Nachfrage nach Neuronalen Netzen scheint nun doch nicht so hoch zu sein wie ich dachte, leider :(

Das hat sicher Gründe. Der Nutzen ist doch für die meisten Anwendungsfälle hier nicht oder kaum gegeben.

Das wäre sicher anders wenn man die Neuronalen Netze mit einer Blockchain kombinieren würde. :duck:

rabatscher 17. Okt 2023 10:14

AW: Neuronale Netze ???
 
Ich hab mal eine kleine Lib für neuronale Netze und andere Classifier geschrieben - sie sind
im Grunde recht einfach und können hier mal gecheckt werden:

https://github.com/mikerabat/mrai

eine richtig gute Library, spezialisiert auf Neuronale Netze, die so ziemlich alles kann was auch die
hochgelobten Pyhton usw libraries können kann hier gefunden werden:

https://github.com/joaopauloschuler/neural-api

Die ist RICHTIG gut :) wir nutzen sie mitlerweile auch ;)

Die lib ist eher für FPC geschrieben, drum funktionieren die meisten AVX extension nicht - wer das teilweise auch noch will kann,
dafür gibt es einen Fork:
https://github.com/mikerabat/neural-api

lg

Jens01 17. Okt 2023 17:28

AW: Neuronale Netze ???
 
https://github.com/Jens01/NewDann

Für eine reine KI kann ich Dir noch meine bieten. Nicht so richtig für Bilder geeignet, aber funktioniert gut für andere Sachen.
Der Algo läuft mit RPROP, das ist erheblich schneller als das einfache BackProp.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:17 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz