AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Neuronales Netz - Hopfield-Netz - Ziffernerkennung

Neuronales Netz - Hopfield-Netz - Ziffernerkennung

Ein Thema von Flips · begonnen am 21. Okt 2008 · letzter Beitrag vom 22. Okt 2008
Antwort Antwort
Flips
Registriert seit: 17. Feb 2005
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
Miniaturansicht angehängter Grafiken
screen_469.jpg  
Angehängte Dateien
Dateityp: zip hopfield_201.zip (235,2 KB, 96x aufgerufen)
 
Benutzerbild von freak4fun
freak4fun

 
Delphi 10.2 Tokyo Starter
 
#2
  Alt 22. Okt 2008, 00:28
Hast du ein paar gute Links zu NN?
  Mit Zitat antworten Zitat
Florian H

 
Delphi 6 Professional
 
#4
  Alt 22. Okt 2008, 16:02
Man muss ja nur ein einziges [geschickt gewähltes] Pixel ändern, dass er die Figur/Zahl überhaupt nicht mehr erkenn/rekonstruiert ôO
Florian Heft
  Mit Zitat antworten Zitat
Flips

 
Delphi 7 Professional
 
#5
  Alt 22. Okt 2008, 16:08
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!
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

 
Delphi 10.2 Tokyo Starter
 
#6
  Alt 22. Okt 2008, 16:55
Riesen Dank! Habe das Thema zur zeit als Projekt beim Studium, daher passt das gerade sehr gut! Weiter so!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:23 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf