Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Neuronales Netz - Hopfield-Netz - Ziffernerkennung (https://www.delphipraxis.net/122768-neuronales-netz-hopfield-netz-ziffernerkennung.html)

Flips 21. Okt 2008 22:00


Neuronales Netz - Hopfield-Netz - Ziffernerkennung
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hi alle zusammen!

Da ich mich ja nun doch etwas intensiver mit neuronalen Netzen aller Art befasse, hier meine neuste Schöpfung.
Ähnlich wie ein anderes Programm von mir, welches mit einem neuronalen Netz die Ziffern 0 bis 9 erkennen kann, kann dieses Programm die Ziffern 0 bis 4 erkennen. Oder besser gesagt, rekonstruieren!

Eine kurze Übersicht:
Hopfield-Netz
Einschichtiges Feedback Netz, d.h. es gibt nur eine Schicht, die gleichzeitig Eingabe -und Ausgabeschicht ist.
Desweiteren ist das Netz rückgekoppelt, d.h. jedes Neuron ist mit jedem vernetzt außer mit sich selbst.
Die Gewichte sind symmetrisch, d.h. das Gewicht zwischen Neuron A und Neuron B ist gleich dem Gewicht zwischen Neuron B und Neuron A und umgekehrt.

Besonderheit
Hopfield-Netze lernen nicht wirklich, sie speichern eher die Eingabemuster. Es gibt nur einen Lerndurchgang, danach kennt das Netz alle Eingabevektoren/-muster. (Erwähnenswert hierbei: Natürlich kann das Netz nicht unendlich viele Muster speichern, sobald der Quotient Muster zu Neuronenzahl größer als 0,136 ist, ist es nicht mehr sicher, dass das Netz eine sichere Antwort findet. In diesem Fall ist der Quotient 5/81 -> 0,062 -> Möglich!)
Sie geben auch kein explizites Ergebniss, um welches Muster es sich handelt, sondern sie rekonstruieren das Eingabemuster.
Sollte man dem Netz also ein stark unkenntlich gemachtes Eingabemuster geben, so rekonstruiert es das. Jedoch kann die komplette Rekonstruktion mehrere Iterationen erforden. Es ist also sehr gut zum Vorschalten vor andere Netze!

Das Netz ist ohne Schnickschnack wie Energiefunktion, also perfekt für Einsteiger.
Alles was nötig war ist kommentiert, ist aber nicht viel!


Da ich TFlowPanel benutze, ist dieses Code-Beispiel leider nicht unter Delphi 7 abwärts nutzbar! Da es aber um den Code geht, spielt das keine große Rolle. Die Exe geht ja trotzdem.

Lg, Flips :hi:

freak4fun 21. Okt 2008 23:28

Re: Neuronales Netz - Hopfield-Netz - Ziffernerkennung
 
Hast du ein paar gute Links zu NN?

Flips 22. Okt 2008 14:08

Re: Neuronales Netz - Hopfield-Netz - Ziffernerkennung
 
Ja, ich liste mal auf:

Neuronale Netze allgemein:Kohonennetze / SOM:
Hopfield-Netz:
Werde noch weitere ergänzen!



Ps: Anbei noch der Hinweis, das ich über das Thema ne Facharbeit schreibe. Sobald diese Präsentiert wurde, werd ich sie direkt hochladen.

Florian H 22. Okt 2008 15:02

Re: Neuronales Netz - Hopfield-Netz - Ziffernerkennung
 
Man muss ja nur ein einziges [geschickt gewähltes] Pixel ändern, dass er die Figur/Zahl überhaupt nicht mehr erkenn/rekonstruiert ôO

Flips 22. Okt 2008 15:08

Re: Neuronales Netz - Hopfield-Netz - Ziffernerkennung
 
Zitat:

Zitat von Florian H
Man muss ja nur ein einziges [geschickt gewähltes] Pixel ändern, dass er die Figur/Zahl überhaupt nicht mehr erkenn/rekonstruiert ôO

Gut, finde auf Anhieb keinen einzelnen Pixel der dafür ausreicht, aber das ist natürlich möglich. Sobald mehr als ein Muster in einem Hopfield-Netz gespeichert sind, kann es instabile Zustände geben, egal wieviele Iterationen es gibt. Genaueres dazu im Internet.
Nicht für ungut, aber das ist ja auch nur ein Codebeispiel, welches ich eigentlich nur online gestellt habe, weil man fast keinen guten Code dazu findet.

Edit: Gut, habe eines gefunden. Bei der 3 über dem Mittelstrich den 2. Pixel von rechts schwarz machen. Das sind halt Einzelerscheinungen. Außerdem soll das Netz es nicht erkennen, sonder rekonstruieren ;-)
Zum Vorschalten vor ein anderes Netz ist es somit ideal!

freak4fun 22. Okt 2008 15:55

Re: Neuronales Netz - Hopfield-Netz - Ziffernerkennung
 
Riesen Dank! :thumb: Habe das Thema zur zeit als Projekt beim Studium, daher passt das gerade sehr gut! Weiter so! :cheers:


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 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