AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Neuronales Netz - Hopfield-Netz - Ziffernerkennung
Thema durchsuchen
Ansicht
Themen-Optionen

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
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#1

Neuronales Netz - Hopfield-Netz - Ziffernerkennung

  Alt 21. Okt 2008, 22:00
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, 103x aufgerufen)
Philipp F.
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: Neuronales Netz - Hopfield-Netz - Ziffernerkennung

  Alt 21. Okt 2008, 23:28
Hast du ein paar gute Links zu NN?
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Flips

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#3

Re: Neuronales Netz - Hopfield-Netz - Ziffernerkennung

  Alt 22. Okt 2008, 14:08
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.
Philipp F.
  Mit Zitat antworten Zitat
Florian H

Registriert seit: 30. Mär 2003
Ort: Mühlacker
1.043 Beiträge
 
Delphi 6 Professional
 
#4

Re: Neuronales Netz - Hopfield-Netz - Ziffernerkennung

  Alt 22. Okt 2008, 15: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

Registriert seit: 17. Feb 2005
Ort: Sankt Wendel
491 Beiträge
 
Delphi 7 Professional
 
#5

Re: Neuronales Netz - Hopfield-Netz - Ziffernerkennung

  Alt 22. Okt 2008, 15: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

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: Neuronales Netz - Hopfield-Netz - Ziffernerkennung

  Alt 22. Okt 2008, 15:55
Riesen Dank! Habe das Thema zur zeit als Projekt beim Studium, daher passt das gerade sehr gut! Weiter so!
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
Antwort Antwort


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 03:10 Uhr.
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