Carypt C. schrieb:
Lieben Dank für Deine Antwort. :-)
ja, was weiß ich überhaupt von computer-learning ?
anscheinend geht es von den verschnitt-freien
tischlerplatten-zuschnitt-optimierungs-programmen aus, wo nach simplem
ausprobieren parkettierungen nach der verschnitt-abfallrate bewertet
werden. das überträgt man dann auf andere "themen", die wiederum
"parkettiert" und bewertet werden.
Hmmm... ja, nein, vielleicht...
das problem scheint zu sein die daten-extraktion aus den pdfs in
programmanweisungen zu übertragen, die dann ja auch noch ergebnisse in
verschiedenen zielsetzungsebenen erarbeiten sollen.
aaber den schritt hinzu maschinenverarbeitbareb zahlwerten verstehe ich
nicht, deshalb ist für mich ende.
Machine- und Deep Learning arbeiten aber nicht mit Programmanweisungen.
Ein klassisches Programm hat zwei Eingänge und einen Ausgang; und seine Eingänge sind die Daten und die Regeln, mit denen die Daten verarbeitet werden sollen, um zum Ausgang, also dem Ergebnis zu gelangen. Sowas ist klassische Programmierung: wir legen die Programmanweisungen fest.
Bei den modernen Ansätzen aus der Künstlichen Intelligenz ist das aber deutlich anders. Wir geben demselben Programm nur die Daten und unser gewünschtes Ergebnis, und die Regeln, die wir früher selbst entwickeln mußten, die findet das Programm bei seinem Training selbst.
Das macht es, indem es die Eingangsdaten und die Ausgangsdaten in seinem Training immer wieder miteinander vergleicht. Dabei seine Funktionen (die Regeln) so anpaßt, daß der vorgegebene Eingang und der gewünschte Ausgang nach jedem Rechenschritt miteinander verglichen, und dahingehend optimiert werden, daß der gegebene Eingang möglichst nah am errechneten Ausgang ist.
Die eigentlichen Funktionen in unserem Programm bleiben dabei dieselben, und sind mathematisch sogar sehr einfach. Einzelne künstliche Neuronen in einem Neuronalen Netzwerk bestehen, im Grunde genommen, aus zwei simplen Funktionen mit Parametern.
Die erste Funktion ist für die Eingänge zuständig, bei einer Nervenzelle wären das die Dendriten [1]. Jeder dieser Dendriten nimmt in jedem Schritt nur einen einzigen Datenpunkt entgegen, eine Zahl.
Diese Zahl wird dann in dem Dendrit mit einem "Gewicht" multipliziert, welches im Modell gespeichert ist. Dann werden die Ergebnisse all dieser Multiplikationen addiert und, je nach Modell, noch eine Verfälschung (der "Bias") hinzu addiert.
Das Ergebnis dieser Berechnungen wird dann an die zweite Funktion gegeben, die das Ergebnis dieser einzelnen Zelle ausgibt. Bei einer Nervenzelle wär diese Ausgabe dann eine Synapse. Auch diese zweite Funktion ist einfach, häufig sogar nur eine lineare oder eine Sigmoid-Funktion [2].
Wie lernt denn so ein Machinelearning-Algorithmus denn nun? Wie bereits gesagt, indem die Eingangs- mit den Ausgangsdaten verglichen werden: mit einer Fehlerfunktion, die die Abweichung zwischen den Soll- und Istdaten ausrechnet. Mit dem Ergebnis der Fehlerfunktion wird aber nicht nur die Abweichung zwischen den Eingangs- und Ergebnisdaten berechnet, sondern zusätzlich eine weitere Funktion gefüttert: der Optimierer.
Was macht der Optimierer? Der kann ja weder die Funktionen im künstlichen Neuron noch die Ein- und Ausgangsdaten beeinflussen. Also macht er genau das, was er kann: die Gewichte (und eventuell die Biases) anpassen, und damit beeinflußt er das, was aus jedem einzelnen Neuron heraus kommt.
Nun ist es so, daß wir bisher nur die Funktion eines einzelnen künstlichen Neurons betrachtet haben. In einem Neuronalen Netzwerk gibt es aber meist sehr viele, sogar bei kleinen Neuronalen Netzen oft sogar schon mehrere Millionen Neuronen, und jedes einzelne davon hat seine eigenen Gewichte (und, je nach Modell, jeweils auch ein Bias).
Diese Neuronen sind jeweils miteinander verbunden: die Ausgänge (Synapsen) eines Neurons sind die Eingänge (Dendriten) des nächsten. Haargenau diese Verknüpfungen machen die Fähigkeiten eines Neuronalen Netzwerks aus.
Wenn Du es genauer verstehen und selbst nachprogrammieren möchtest, will ich Dir ein Buch empfehlen: "Neuronale Netze selbst programmieren" von Tariq Rashid. Niemand kann diese Dinge so gut erklären wie er, davon bin ich fest überzeugt und meine Ausführungen hier sind eigentlich seine.
[1] https://www.studienkreis.de/fileadmin/lernen/assets/courses/media/nerv-ca.png
[2] https://en.wikipedia.org/wiki/Sigmoid_function
allerdings bleibt ja auch die frage: welchen logischen mehrwert soll es
den haben einen im text gefundenem zahlenwert einem bestimmten keyword
eher zuzuorden. durch logisches denken lassen sich leistungswerte von
bauteilen ja nicht unbedingt ergrübeln.
Das stimmt, aber die Umwandlung von Textteilen in Zahlenwerte ist ja nur die Vorverarbeitung. Neuronen, mithin: Neuronale Netze müssen mit ihren Eingaben und den gewünschten Ausgaben rechnen können, und das ist mit Texten naturgemäß... schwierig.
Wenn man also Texte mit einem Neuronalen Netzwerk verarbeiten möchte, dann muß man dem Neuronalen Netzwerk etwas geben, mit dem es Rechnen kann, also kurz gesagt: Zahlen. Es gibt verschiedene Möglichkeiten, Texte in Zahlen umzuwandeln, einige davon habe ich oben ja schon erzählt -- und jede von diesen Methoden hat ihre Stärken und Schwächen...
Erschwerend kommt hinzu, daß die Neuronalen Netzwerke, die ich in diesem Beitrag zu erklären versucht habe, nunja... ein bisschen blöd und für die Verarbeitung von Texten nur sehr bedingt geeignet sind. Mit anderen Daten funktionieren die allerdings wirklich oft beeindruckend gut. Aber Texte, vor allem nicht formalisierte Freitexte, stellen noch einmal eine ganz eigene (und, wie ich finde, besonders spannende) Herausforderung dar.
Aber da gleiten wir in einen anderen, heute zwar verwandten Teil ab, weil Freitexte -- egal, auf welche Weise man sie aufbereitet -- nunmal nicht standardisiert werden können. Das ist aber ein anderes, hochinteressantes Wissenschaftsgebiet, in das Du Dich bei Interesse gerne bei der Uni zu Hannover [3] einlesen kannst, wenn Du magst. Unter dem Link "Tutorials" dieser Seite findest Du einige spannende Einführungen von Herrn Prof. Dr. Christian Wartena, die ich bei Interesse wärmstens empfehlen möchte.
Viel Spaß und Erfolg! Wenn Du Fragen, Ideen oder Anregungen hast, bist Du mir jederzeit herzlich willkommen. Viel Spaß und Erfolg! ;-)
PS: Könnten wir uns bitte auf eine halbwegs korrekte Recht-, Groß- und Kleinschreibung verständigen? Normalerweise antworte ich auch solche Beiträge gar nicht, weil mich das Lesen zu sehr anstrengt und ich auch leider zu faul bin, mir einen entsprechenden Filter zu schreiben. Danke.
[3] https://textmining.wp.hs-hannover.de/