Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   AI / Neuronale Netze... (https://www.delphipraxis.net/210656-ai-neuronale-netze.html)

Mavarik 23. Mai 2022 09:24

AI / Neuronale Netze...
 
Hallo Zusammen,

nach einigen spielereien mit neuronalen Netzen, würde ich gerne mal ein Netz produktiv einsetzen.
Ich habe jedoch immer noch ein Problem wie ich die Eingangsneuronen füttern muss...

Ziel ist es einen 255 Zeichen langen String (der hat immer wiederkehrende Textbausteine) so an das Netz zu übergeben, dass hinten
ein Wert mit 5 Stellen raus kommt.

Mit 255 Eingangsneuronen, macht es keinen Sinn, da die "Textbausteine" immer an anderen Stellen stehen.

Hat jemand eine Idee hierzu?

Grüsse Mavarik

Jens01 23. Mai 2022 10:35

AW: AI / Neuronale Netze...
 
Hmm, irgendwie verstehe ich das Problem nicht.

Könntest Du das Problem irgendwie praktischer beschreiben?

Zum Trainieren brauchst Du ja erst einmal viele Sätze mit Eingangsparametern und bekannten Ergebnisparametern. Das größte Problem ist es, die Eingangparameter zu "normalisieren". Sprich die Parameter müssen aufs Wesentliche runtergebrochen werden.


Hier die Werbung: https://github.com/Jens01/NewDann

Mavarik 23. Mai 2022 10:53

AW: AI / Neuronale Netze...
 
Zitat:

Zitat von Jens01 (Beitrag 1506218)
Zum Trainieren brauchst Du ja erst einmal viele Sätze mit Eingangsparametern und bekannten Ergebnisparametern. Das größte Problem ist es, die Eingangparameter zu "normalisieren". Sprich die Parameter müssen aufs Wesentliche runtergebrochen werden.

Ja genau...
Das "aufs Wesentliche runtergebrechen" ist genau die Frage...

Ich habe auch ganz viele Datensätze.

Wenn es schön wäre dann hätte ich:

"asldkaskldj FRANK alsdkjhaslkdj"
"alskjd FRANK asldasklalskdj"
"aölkdöalksdölak FRANK"

Dann könnte ich Wörter trennen und daraus eine Liste machen...

Ich habe aber eher:

"aslkjaskldj RDPxxx23:72632/22 aklsdjaklsjd"
"aj RDPx23vv:12632/22 aklsdjaklsjd"
"alskdjaskldjaskldj RDPhjdh:7812/18/5"

Ich brauche als eine "Unschärfe" die hoffentlich das NN finden kann.
Also das das NN Patterns findet, die ich weder sehen noch per code finden würde...

In diesem Beispiel wäre es
Code:
RDP????:???/???
Ich hoffe, dass ist verständlich.

Mavarik

Jens01 23. Mai 2022 11:08

AW: AI / Neuronale Netze...
 
Naaja, so ganz habe ich es noch nicht...

Du hast einen string :"aslkjaskldj RDPxxx23:72632/22 aklsdjaklsjd" und darin soll "RDPxxx23:72632/22" gefunden werden?

Jens01 23. Mai 2022 11:22

AW: AI / Neuronale Netze...
 
Vllt auch noch mal kurz zum Verständnis der Ergebnisneuronen:
Man kenn ja diese MNist Datensätze mit den handschriftlichen Zahlen.

Das Ergebnis ist nicht ein Neuron mit der Zahl als Ergebnis, sondern 10 Neuronen jeweils für die einzelnen Zahlen. Die jeweiligen Neuronen stellen dann die Wahrscheinlichkeit dar, welche Zahl es ist. ZB wenn jemand die Zahl 7 etwas undeutlich schreibt, kann das Neuron, das das Ergebnis 1 darstellen soll, auch einen gewissen "Auschlag" haben.

Zum Schluß muß man das Ergebnis des NN auch interpretieren. Ab welcher Wahrscheinlichkeit eine Zahl als Gesamtergebnis genommen wird und ab wann vllt gar kein Gesamtergebnis abgeleitet werden kann.

Mavarik 23. Mai 2022 13:19

AW: AI / Neuronale Netze...
 
Zitat:

Zitat von Jens01 (Beitrag 1506223)
Naaja, so ganz habe ich es noch nicht...

Du hast einen string :"aslkjaskldj RDPxxx23:72632/22 aklsdjaklsjd" und darin soll "RDPxxx23:72632/22" gefunden werden?

Nein im Training wäre der Result string z.b "12345" (nicht im Suchstring vorhanden) aber ich hätte gerne "12345" für all wo das RDP...Token erkannt wurde... Es kann auch sein, dass "12345" ein korrektes Ergebis für "aslkhjdskd KDP:???AN" ist...


Zitat:

Zitat von Jens01 (Beitrag 1506226)
Das Ergebnis ist nicht ein Neuron mit der Zahl als Ergebnis, sondern 10 Neuronen jeweils für die einzelnen Zahlen. Die jeweiligen Neuronen stellen dann die Wahrscheinlichkeit dar, welche Zahl es ist. ZB wenn jemand die Zahl 7 etwas undeutlich schreibt, kann das Neuron, das das Ergebnis 1 darstellen soll, auch einen gewissen "Auschlag" haben.

Zum Schluß muß man das Ergebnis des NN auch interpretieren. Ab welcher Wahrscheinlichkeit eine Zahl als Gesamtergebnis genommen wird und ab wann vllt gar kein Gesamtergebnis abgeleitet werden kann.

Ja das ist mir klar...

Ich dachte:

Code:
Result := chr(Neuron[1].Value)+ chr(Neuron[2].Value)+chr(Neuron[3].Value)+chr(Neuron[4].Value)+chr(Neuron[5].Value); // Vereinfacht dargestellt.

Jens01 23. Mai 2022 13:37

AW: AI / Neuronale Netze...
 
Zitat:

Nein im Training wäre der Result string z.b "12345" (nicht im Suchstring vorhanden) aber ich hätte gerne "12345" für all wo das RDP...Token erkannt wurde... Es kann auch sein, dass "12345" ein korrektes Ergebis für "aslkhjdskd KDP??AN" ist...
Sorry, Du mußt mir noch mal helfen. Soll überall wo allgemein dies RDP Token auftritt "12345" kommen oder wo ein ganz bestimmtes RDP Token kommt.

Aber grundsätzlich würde ich sagen, dass Du nicht ein Ergbnis "12345" erwarten darfst. Du könntest ein NN bauen, dass Dir mit einer gewissen Wahrscheinlichkeit sagt, dass dies Token im String vorhanden ist. Und dann kannst Du mit "normaler" Programmierung daraus folgern, dass Dein interpretiertes Ergebnis "12345" ist.


Kurz zu dem RDP. Zum Schluß fängt das NN an immer nach diesem "RDP" zu suchen und geht weniger ein auf den Rest des Token.
Das ist wie bei den Hundebildern. Die Hundeart Husky auf den Bildern wird nicht durch den Hund bestimmt, sondern manchmal durch den weißen Hintergrund. Weil Bilder mit Huskies immer im Schnee gemacht werden.

Mavarik 23. Mai 2022 14:39

AW: AI / Neuronale Netze...
 
Zitat:

Zitat von Jens01 (Beitrag 1506248)
Kurz zu dem RDP. Zum Schluß fängt das NN an immer nach diesem "RDP" zu suchen und geht weniger ein auf den Rest des Token.
Das ist wie bei den Hundebildern. Die Hundeart Husky auf den Bildern wird nicht durch den Hund bestimmt, sondern manchmal durch den weißen Hintergrund. Weil Bilder mit Huskies immer im Schnee gemacht werden.

Schon klar, aber kommen wir doch mal zurück auf den Input...

Was mache ich mit einem String[255] -> NN
Was gebe ich als Value für wie viele Eingangsnodes?

Jens01 23. Mai 2022 14:53

AW: AI / Neuronale Netze...
 
Zitat:

Was mache ich mit einem String[255] -> NN
Was gebe ich als Value für wie viele Eingangsnodes?
Tja, ich, der wenig mit Texten gemacht hat, würde sagen, Du nimmst 255 Neuronen und gibst denen jeweils den ASCII-Code.
Bei Bildern gibt es ja diesen "convolutional layer", der das Bild reduziert. Ich glaub, das geht mit Texten nicht.
Man könnte aber auch nacheinander einen Teilstring (mit der Länge des Tokens => ca.15 Neuronen) reinschicken und diesen analysieren.

NN ist auch immer etwas probieren und Erfahrung sammeln.

Mavarik 23. Mai 2022 15:19

AW: AI / Neuronale Netze...
 
Zitat:

Zitat von Jens01 (Beitrag 1506258)
Man könnte aber auch nacheinander einen Teilstring (mit der Länge des Tokens => ca.15 Neuronen) reinschicken und diesen analysieren.

Naja ich kenne keine Token... Ich kenne auch nicht die länge...
Der string ist das Token, welche ein "verstecktes" pattern hat! Genau das soll das NN ja rausfinden... Wie bei den Hunden...


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:45 Uhr.
Seite 1 von 2  1 2      

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