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 4 von 8   « Erste     234 56     Letzte »    
Benutzerbild von Stanlay Hanks
Stanlay Hanks

Registriert seit: 1. Mär 2003
2.078 Beiträge
 
Delphi 2005 Professional
 
#31

Re: Neuronale Netze ???

  Alt 3. Jan 2004, 13:12
Zitat von negaH:
Es tut mir ehrlich sehr Leid aber ich werde keine Tutorials schreiben.
Hi. Is auch nicht so schlimm! Ich kann natürlich verstehen, dass das sehr viel Arbeit is und auch sehr viel Zeit benötigen würde. Dann werd ich eben auch mal etwas googeln.

Man liest sich, Stanlay
  Mit Zitat antworten Zitat
Benutzerbild von stoxx
stoxx

Registriert seit: 13. Aug 2003
1.111 Beiträge
 
#32

Re: Neuronale Netze ???

  Alt 3. Jan 2004, 14:26
Hallo Hagen,

kennst Du Dich mit Wavelets zum Zweck der Mustererkennung genauso gut aus, wie mit Neuronalen Netzen ?
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

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

Re: Neuronale Netze ???

  Alt 12. Jan 2004, 23:07
Wavelets habe ich nur sehr sehr oberflächlich angeschaut, man kann ja nicht alles ausprobieren

Bisher empfand ich die beschriebenen Techniken immer als sehr kompliziert und für mich unverständlich erklärt. Sie sind eben die Weiterentwicklung der Fourier Transformation. Mit der FFT habe ich allerdings schon einiges gemacht. Desöfteren fand ich WEB Sites die sich mit Wavelets befassten aber kein einzigstes Wort über FFT usw. verlieren. Viel Sprachschöpfungen machen es auch schwierig die Wavelets zu begreifen. Mit einfacher Fourier Transformation hat das meiner Ansicht nichts mehr zu tun.

Hier im Forum sollte man von mir eine Software für die FFT finden. Für einige der obigen NN Projekte benötigt man auch eine FFT. Zb. das Datei-Erkennungs-Projekt muß ja den binären Inhalt beliebig großer Dateien auf einen annehmbaren Wertebereich für das NN downscalen, dies geht nur mit FFT's. Dh. die binäre Datei wurde per FFT einer "Frequenzspektrum-Analyse" unterzogen mit insgesammt 256 Punkten. Deren Amplitude wurde als Input für ein NN mit 256 Inputneuronen benutzt. Dieses Netz war aber nur ein "Vorschalt-Netzwerk" das aus den FFT Daten ermitteln sollte ob die Datei Textbasiert, Binär, Gepackt, Bild, Sound, Verschlüsselt oder Formatiert ist. Erst daran anschließend wurden einzelnen Netze mit diesen Ausgaben trainiert die den Dateityp filtern sollten, sprich Ausführbare Datei, BMP,JPG,PCX,WAV usw.


Gruß Hagen
  Mit Zitat antworten Zitat
Hackbart

Registriert seit: 12. Jan 2004
Ort: Ankh Morpork
6 Beiträge
 
#34

Re: Neuronale Netze ???

  Alt 14. Jan 2004, 13:13
Ich hab ein kleines, Erklärendes Tutorial zu diesem Themagefunden: Strucktur Neuronaler Netze

Vielleicht hilfts ja weiter. unter www.planet-source-code.com findet man zu diesem Thema ein paar Quellcode- Beispiele.
Es gibt sogar einen Code- Builder, welcher anhand eurer Imputs Code in C/Javafür ein Neuronales Netzwerk erstrellt. Wir wir ja wissen, ist die Formulierung passender Inputs, passender Themen, an welchem das NN arbeiten soll, aber grad das schwierigste...
Aber mit diesem Code- Builder kann man schon einiges erreichen!
Den gibt unter www.cobaltai.com -> Code Builder

Leider nur für sehr viel Geld...
ES GIBT KEINE GERECHTIGKEIT, ES GIBT NUR MICH
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#35

Re: Neuronale Netze ???

  Alt 14. Jan 2004, 13:42
Kleine Einführung zum Background Neuronaler Netze:

1. Als Grundlage dient die Arbeitsweise des Gehirns.
2. Besonders wird ein Element des Gehirns betrachtet, Neuron genannt
3. Ein Neuron ist eine Nervenzelle, die viele Eingänge hat, sogenannte Dendriten und einen Ausgang (Axon)
4. Über die Dendriten kommen sogenannte Aktionspotenziale, die sich im Zellkörper aufsummieren.
5. Ist eine gewisse Summe erreicht (man spricht von Schwellwert) "feuert" das Neuron seinerseits über das Axon.

Also ein auf den Computer bezogen:
Delphi-Quellcode:
Var
AP_D: real; //eintreffendes Aktionspotenzial Dendriten
Schwellwert: real;
AP_A: real; //Aktionspotenzial Axon beim Feuern
Dies stellt ein einzelnes neuronales Element eines Netes dar. (Vereinfacht)

Vielleicht später mal mehr
  Mit Zitat antworten Zitat
Hackbart

Registriert seit: 12. Jan 2004
Ort: Ankh Morpork
6 Beiträge
 
#36

Re: Neuronale Netze ???

  Alt 14. Jan 2004, 15:43
Es ist mir zwar mega- peinlich, das zu sagen, aber ich habe echt vergessen, wie man units als Komponenten registriert. Könnte mir das vielleicht noch einmal auffrischen?


Hagen: Dein NN- Test Programm zeigt irgedwie... intervalle. Ich weiss nich genau, wie ich das nennen soll, aber die Zeiten, in dem Programm meine Eingaben zu mehr als 50% vorhersagt und die, bei denen es nur "rät" wechseln sich, in zwar ungleichmäßigen, aber doch Intervallen ab.

Woran kann das liegen? Habe ich da vielleicht nur meine Click- Strategie unterbewusst geändert, so dass das Netz eine neue Erlernen mussste, welche ich dann wiederum ändere, oder liegt das an etwas anderem?
ES GIBT KEINE GERECHTIGKEIT, ES GIBT NUR MICH
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

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

Re: Neuronale Netze ???

  Alt 15. Jan 2004, 10:44
Zitat:
Es ist mir zwar mega- peinlich, das zu sagen, aber ich habe echt vergessen, wie man units als Komponenten registriert. Könnte mir das vielleicht noch einmal auffrischen?
IDE\Menu\Komponente installieren...

Zitat:
Hagen: Dein NN- Test Programm zeigt irgedwie... intervalle. Ich weiss nich genau, wie ich das nennen soll, aber die Zeiten, in dem Programm meine Eingaben zu mehr als 50% vorhersagt und die, bei denen es nur "rät" wechseln sich, in zwar ungleichmäßigen, aber doch Intervallen ab.
Woran kann das liegen? Habe ich da vielleicht nur meine Click- Strategie unterbewusst geändert, so dass das Netz eine neue Erlernen mussste, welche ich dann wiederum ändere, oder liegt das an etwas anderem?
Das Netz lernt nach jedem Tipp alle vorherigen Tipps neu, eg. es wird immer mit allen getätigten Tipps trainiert. Dadurch steigt die Komplexität des Netzes exponentiell, was wiederum die Trainingsphase erheblich zeitlich verlängert. Da mein RCC Netz aber ganz spezielle Trainings-Algorithmen enthält ist die Adaptionsgeschwindigkeit des Netzes NICHT vorhersehbar. Ein Schubweises lernen von Neuronalen Netzen, genetischen Algorithmen und Evolutions Strategien ist durchaus bekannt und logisch. Wie in der Evolution selber gibt es Trainings/Lernphasen die einen Quantitatives Wachstum und ein Qualitatives Wachstum beschreiben. Quantitive Verlaufe sind stetig linear und Qualitative Verläufe sind immer sprunghafte Anstiege.

Gute Netze/Gen. Algo. setzen sich immer aus solchen abwechselnden quantitativen und qualitativen lernphasen zusammen. Normalerweise sind diese sich abwechelenden Phasen eher zufällig, zB. bei genetischen Algortihmen. Neuronale Netze tendieren aber dazu diese abwechselnden Phasen sehr ausgeglichen durchzuführen. Als Resultat erleben wir eine Intervallhafte Lernkurve. Diese Lernkurve bestimmt ist die Geschwindigkeit der Lernfähigkeit des Netzes sowie demzufolge auch ein Maß für die antrainierte "Intelligenz" des Netzes. Es besteht also zwischen der Lernkurve des Netze ein indirekter Zusammehang zur Qualität des erzeugten Netzes. Um so mehr es trainiert wird um so spezialisierter wird das Netz sich ausbilden, man übertrainiert es also. Dadurch sinkt aber die Adaptionsfähigkeit des Netzes für neue Probleme. In diesem Moment muß sich das Netzwerk umorganisieren. Da aber in meiner Demo jeder neue Tipp + alle vorherigen Tipps in inkrementeller Weise trainiert werden wird das Netz bei sehr langen Spielen eben ineffizient. Normalerweise müsste man ein "Vergessen" der ältesten Tipps einbauen und das Netz herunter-stuzen. Das ist aber einfacher gesagt als getan

Mein Demo-Beispiel ist eben NUR eine Demonstration der unwahrscheinlichen Fähigkeiten Neuronaler Netze. Es ist schwierig solche Beispiele exakt zu konstruieren so daß sie auch noch in beweisbarer Form die Wirksamkeit der NN's aufzeigen. Normalerweise kann man sagen das der Programmtechnische Aufwand um die Netze herum größer sein muß als der eigentliche Netzwerkcode. D.h. der Code des NN's ist nur 50% der gesammten Arbeit. Wenn du dir aber mein Beispiel anschaust so sieht man das ich diesen Aufand so gering wie nur möglich gehalten habe, d.h. mein Demo-Beispiel kann nicht optimal an das Netzwerk angepasst sein. Nur in einigen Ausnahmen, wie reine Mustererkennungen, ist dieser zusätzliche Aufwand geringer. Allerings demonstrieren solche Aufgaben nicht die "Intelligenz" der Netzwerke, und waren somit keine Alternative für meine Demo.

Gruß Hagen
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

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

Re: Neuronale Netze ???

  Alt 15. Jan 2004, 11:02
Zitat:
Kleine Einführung zum Background Neuronaler Netze:

1. Als Grundlage dient die Arbeitsweise des Gehirns.
2. Besonders wird ein Element des Gehirns betrachtet, Neuron genannt
3. Ein Neuron ist eine Nervenzelle, die viele Eingänge hat, sogenannte Dendriten und einen Ausgang (Axon)
4. Über die Dendriten kommen sogenannte Aktionspotenziale, die sich im Zellkörper aufsummieren.
5. Ist eine gewisse Summe erreicht (man spricht von Schwellwert) "feuert" das Neuron seinerseits über das Axon.
Das ist die ursprüngliche Idee Neuronaler Netzwerke der Computertechnik. Würde man aber die heutigen NN-Techniken und mathematischen Grundlagen auf die biologischen Netze, wie auf unser Hirn anwenden, so würde man kläglich scheitern. D.h. die heutigen Neuronalen Netze kann man in keinster Weise mit der Arbeitsweise von Neuronen vergleichen, sie sind im Grunde was komplett anderes. Nun, um als Einsteiger ein Gefühl für NN's zu bekommen hat es sich eingebürgert eben NN's mit unseren Hirnen zu vergleichen. Allerdings ist dies eben auch falsch. Das hat mehrere Gründe. Computer NN's sind nur stark abstrahierte "Verwandte" unserer Hirne, und kommen in ihrer Auflösung, Komplexität und Fähigkeiten nicht im entferntesten an die Fähigkeiten ihrer biologischen Verwandten heran. Ein vergleichsweises Herangehen von Computer NN's zu Gehirnen würde bedeuten das ein Computer NN die gleichen Resultate wie ein Gehirn liefern müsste. Dies tut es aber nicht (noch nicht ).

Gruß Hagen
  Mit Zitat antworten Zitat
Minz

Registriert seit: 19. Dez 2002
476 Beiträge
 
#39

Re: Neuronale Netze ???

  Alt 15. Jan 2004, 11:39
Um die Arbeitsweise von z.B. Perzeptronen-Netzen zu verstehen, die für die Erkennung von Schrift eingesetzt werden können, ist die obige Herangehensweise durchaus praktikabel.
Das Feld Neuronaler Netze ist sicherlich groß und es kommen verschiedene Ansätze für unterschiedliche Aufgaben zum Tragen.
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

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

Re: Neuronale Netze ???

  Alt 15. Jan 2004, 12:03
Zitat:
Ich hatte mir ja bishier erst ein Tutorial durchgelesen (über Perzeptronennetze) und da stand, dass der (das?) Bias konstant bleibt und in der Ausgabefunktion wird dann mit Hilfe des Ergebnisses der Aktivitätsfunktion berechnet ob der (das?) Bias erreicht wurde. Hier setzt auch der Lernprozess an, jedoch werden nur die Gewichte der Unit-Inputs verändert.
Ein Neuron hatte dort auch keinen extra Output, sondern nur ein Datum (nicht zu verwechseln mit Datum ), das einen Wert enthielt, welcher vom Dentrid (Input) anderer Neuronen ausgelesen wird.

Wo liegen die Unterschiede zwischen diesen beiden Lernweisen und was ist in welcher Hinsicht vorteilhafter?

Der BIAS ist ein "Störsignal" das zusätzlich zu den Nutzsignalen am Neuron anliegt. Dadurch wird verhindert das das Netzwerk anfängt sinnlos zu schwingen bzw. sich selbst zu blockieren. D.h. durch den BIAS wird sichergestellt das das Netz einen definierten Input erhält der als Referenzsignal zu den Nutzsignalen dient. Ein BIAS muß nicht auf fester Größe stehen, normalerweise wird er aber auf 1 gesetzt und beliebt fixiert. In meinem RCC Netzwerk ist der BIAS ebenfalls fixiert nach dem Training des Neurons. Allerdings wird der BIAS eben auch wie die anderen Gewichte mittrainiert. D.h. jedes Neuron hat einen individuellen BIAS-Wert. Man kann sich dieses BIAS wie den Helligkeitsregler am Fernseher vorstellen. Er reguliert/dämoft/verstärkt die "Spannungen" der anderen Input-Gewiche so daß das Neuron auch reagieren kann. Ein positiver Bias von +10 Volt würde demnach bedeuten das die Gesammtspannungen aller Inputgewichte um 10V gedämpft werden. (dies ist aber nur eine bildliche Erklärung der Vorgänge im Netz).

Als Anfänger hat man immer wieder das Problem die Bestandteile einen Netzwerkes räumlich voneinander zu erklären. Man fragt sich also was denn nun ein Neuron und was eine Nervenbahn ist, in einem NN !? Betrachtet auf ein Computer-Netzerek sieht's so aus:
Das Neuron als solches existiert als solches NICHT in einem Netzwerk. Das aktive Element das das Neuron beschreibt ist die Aktivierungsfunktion, eg. die Schwellenwert-Funktion. Sollten externe Parameter zu dieser Aktivierungsfunktion existieren, z.B. die Mathematische Formel oder Parameter, so werden diese als Neuron an sich gespeichert. D.h. ein Neuron ist ein Speicherbereich in dem die verwendete Aktivierungsfunktion, dessen Position im Netzwerk und die Verbindungen zu den Input-Neuronen gespeichert sind.
Jetzt kommen wir auch schon zu den "Dentriten", eg. Nervenbahnen des Neurons. Eine Nervenbahn ist nur ein Zahlenwert. Dieser Zahlenwert bestimmt wie stark das Aktivierungspotential des Ausgangssignal des Eingangsneurons in die Aktivierungsfunktion des aktuellen Neurons ist. Sinnvollerweise sollte man also alle diese Zahlenwerte=Nervenbahnen zum Neuron selber speichern.

So, nun zu dem was die meisten Anfänger in einem Neuron als "Zahlenwert" mißverstehen. Wir wissen das ein Neuron nur eine Aktivierungsfuntion = mathematische Formal ist, und nur die Nervenbahnen zu seinen Inputneuronen speichert. Denoch wird auf Grund softwaretechnischer Gegebenheiten im Neuron noch das Aktivierungspotential gespeichert. Dies ist eine Zahl die durch die Aktivierungsfunktion beerechnet wird. D.h. die Aktivierungsfunktion berechnet aus allen Aktivierungspotentialen der Inputneuronen + den Gewichten der Nerevenbahnen das Aktivierungspotential des aktuellen Neurons = Resultat der Aktivierungsfunktion. Man macht dies aber NUR weil es Softwaretechnisch vom Berechnungsalgortihmus besser zu codieren ist. D.h. dieser Zahlenwert des Neurons ist nicht das Neuron selber sondern nur eine Hilfsvariable. Somit besteht ein Neuron nur "virtuell" als mathematische Formel und deren Inputvariablen = Nervenbahnen.

In vielen NN's wird noch gespeichert zu welchen Inpuitneuronen auch tatsächlich eine Nervenbahn besteht. Solche Netze besitzen also die Möglichkeit das ein Neuron sehr individuell mit anderen Neuronen verknüpft wird. Die Anzahl der Nervenbahnen=Verknüpfungen bestimmen die Berechnungskomplexität des Netzwerkes, eg. Laufzeitverhalten. Theoretisch kann jedes Neuron mit jedem anderen Neuron und sogar mit sich selber verküpft sein. Allerdings erhöht sich der Berechnungs-/Speicheraufwand damit sehr drastisch. In meinem RCC Netzwerk sind solche individuellen Verküpfungen enthalten. D.h. eine Nervenbahn besteht aus einem Integer der das Input-Neuron der Nervenbahn als Index beschreibt plus dem Gewicht dieser Nervenbahn als Doublezahl.
Diese individuelle Verknüpfungen kommen unserem realen Hirn schon sehr nahe. Sie verkomplizieren aber die Berechnungen innerhalb des Netzwerkes. Als programmtechnische Optimierung und Vereinfachung der Netzwerkberechnugen wird deshalb das Aktivierungspotential des Neurons=Aktivierungsfunktion im Neuron zwischengespeichert. Dies verhindert Rekursive-Endlosberechnungen, denn normalerweise könnte man ausgehend vom aktuellen Neuron diese ohne solche Zwischenspeicherungen berechnen. Man berechnet dazu rekursiv die Potentiale aller Inputneuronen usw. usw. bis man zur Input-Schicht des Netzwerkes gelangt. Dies ist aber vom Berechnungsaufwand her eine invers-exponentielle aufwendige Funktion !! Deshalb besitzt ein Neuron eben auch eine Variable die das Resultat seiner Schwellenwertfunktion=Aktivierungsfunktion zwischenspeichert. Diese Variable ist aber NICHT das Neuron an sich.

Gruß Hagen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 8   « Erste     234 56     Letzte »    


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 05:27 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