-
Die vorliegende Erfindung betrifft die Diskretisierung von Zahlenwerten für die Speicherung in einem Datenspeicher, wobei die Genauigkeit auf die jeweilige Anwendung zuschneidbar ist.
-
Stand der Technik
-
Ein künstliches neuronales Netzwerk, KNN, umfasst in der Regel eine Mehrzahl von Schichten mit Neuronen, die jeweils eine Mehrzahl von Eingaben mit Gewichten zu einer Aktivierung zusammenfassen. Die in einer Schicht gebildeten Aktivierungen, bzw. ein hieraus durch eine weitere Verarbeitung ermitteltes Ergebnis, werden jeweils der nächsten angrenzenden Schicht zugeführt, bis das KNN vollständig durchlaufen ist. Die Gewichte, die Aktivierungen und die hieraus ermittelten Ergebnisse sind in der Regel Gleitkommazahlen (englisch „float“).
-
Um den Speicherbedarf für die Realisierung des KNN zu reduzieren und zugleich preiswertere Hardware mit geringerem Energieverbrauch einsetzen zu können, wird häufig Hardware verwendet, die auf Berechnungen mit Festkommazahlen (englisch „fixed-point“) oder Ganzzahlen (englisch „integer“) spezialisiert ist. Die Fließkommazahlen werden dann zu Festkommazahlen oder Ganzzahlen diskretisiert.
-
Die
WO 2018/158 043 A1 offenbart ein Verfahren für die Kodierung von Zahlenwerten in einem
KNN, bei dem das höchstwertige Bit speziell für die Kodierung des Werts Null reserviert ist. Auf diese Weise lässt sich besonders schnell prüfen, ob der Wert Null ist.
-
Offenbarung der Erfindung
-
Im Rahmen der Erfindung wurde ein Encoder für die Speicherung von Zahlenwerten, die in einem Wertebereich zwischen einem vorgegebenen Minimalwert und einem vorgegebenen Maximalwert liegen, in einem Datenspeicher entwickelt. Der Encoder ist für diesen Zweck mit einem Datenspeicher verbindbar.
-
Der Encoder beinhaltet eine Zuordnungsvorschrift, nach der der Wertebereich in mehrere diskrete Intervalle unterteilt ist. Dabei wird unter einem Intervall insbesondere eine Zahlenmenge verstanden, die aus Elementen besteht, die zwischen einer vorgegebenen oberen Grenze und einer vorgegebenen unteren Grenze liegen. Die Unterteilung in diskrete Intervalle beinhaltet somit, dass für jedes Intervall eine obere Grenze und eine untere Grenze festgelegt wird.
-
Der Encoder ist dazu ausgebildet, einen zu speichernden Zahlenwert in genau ein Intervall einzuordnen und eine Kennung dieses Intervalls auszugeben, wobei diese Ausgabe insbesondere an den Datenspeicher erfolgen kann. Die Speicherung des Zahlenwerts ist dann in dem Datenspeicher in der dort abgelegten Kennung verkörpert. Das bedeutet, dass jeder Zahlenwert im Datenspeicher nur so viel Speicherplatz belegt wie die Kennung. Werden also beispielsweise die Zahlenwerte in 256 verschiedene Intervalle diskretisiert, so werden 8 Bits benötigt, um eine eindeutige Kennung für jedes der Intervalle abzuspeichern. Die Intervalle sind auf der Skala der Zahlenwerte unterschiedlich breit.
-
Dabei können insbesondere Gleitkommazahlen auf Festkommazahlen oder gar auf ganze Zahlen diskretisiert werden. Dies ist jedoch nicht zwingend erforderlich. Eine Reduzierung des Speicherbedarfs lässt sich auch dann bewirken, wenn ganze Zahlen (beispielsweise 64 Bit große „long integer“) in eine Anzahl Intervalle diskretisiert werden, deren Kennungen weniger Speicherplatz belegen (beispielsweise 22 Bit für die Darstellung von 65.536 Intervallen).
-
Die Diskretisierung auf Intervalle ist eine verlustbehaftete Kompression der Zahlenwerte. Das heißt, sie geht immer mit einem Verlust an Genauigkeit einher.
-
Es wurde erkannt, dass sich durch die unterschiedlich breiten Intervalle die Auswirkungen dieses Genauigkeitsverlusts auf die Anwendung, in der die Zahlenwerte verwendet werden, deutlich reduzieren lassen. Dies beruht auf der Erkenntnis, dass in vielen Anwendungen nicht alle Zahlenwerte gleich wichtig sind. So haben beispielsweise bei der Verarbeitung in künstlichen neuronalen Netzwerken, KNNs, höhere Gewichte und Aktivierungswerte einen deutlich stärkeren Einfluss auf die letztendlich gelieferte Ausgabe als niedrigere Werte. Daher ist es sinnvoll, die höheren Werte mit einer besseren Genauigkeit abzubilden als die niedrigeren Werte. Insbesondere ist die genaue Differenz zwischen höheren Werten relevanter als Differenzen zwischen niedrigen Werten. Genau dies lässt sich mit dem Encoder abbilden.
-
Dabei kann in einer besonders vorteilhaften Ausgestaltung die Breite der diskreten Intervalle auf der Skala der Zahlenwerte mit zunehmendem mittlerem Betrag der Zahlenwerte, die in den Intervallen jeweils enthalten sind, monoton fallen. Mit ein und derselben Menge an Bits, die im Datenspeicher für die Kennung eines Intervalls benötigt wird, können dann betragsmäßig geringere Zahlenwerte mit einer geringeren Genauigkeit und betragsmäßig höhere Zahlenwerte mit einer besseren Genauigkeit abgespeichert werden.
-
Beispielsweise kann die Breite der diskreten Intervalle auf der Skala der Zahlenwerte exponentiell mit einem fortlaufenden Index k über Intervalle, und/oder über Gruppen von Intervallen, variieren. Eine solche Zuordnungsvorschrift bildet die Korrelation zwischen betragsmäßiger Höhe und Wichtigkeit der Zahlenwerte für viele Anwendungen zutreffend ab.
-
Sei beispielsweise ein ganzzahliger Wertebereich zwischen
0 und
2R mit einer positiven ganzen Zahl
R vorgegeben, der in
2R (mit P < R) verschiedene Gruppen von Intervallen diskretisiert werden soll. Dabei sind jeweils alle zu einer Gruppe von Intervallen gehörenden Intervalle gleich breit, aber die zu unterschiedlichen Gruppen gehörenden Intervalle sind unterschiedlich breit. Dann kann beispielsweise für jede Gruppe k die untere Grenze
Uk der Zahlenwerte, bei der diese Gruppe k beginnt, zu
und die obere Grenze
Ok , bei der diese Gruppe endet, zu
festgelegt werden, wobei diese obere Grenze
Ok schon nicht mehr zu der Gruppe k gehören soll. Die Anzahl
Nk der Intervalle, die zu der Gruppe k gehören, kann dann beispielsweise festgelegt werden zu
Nk ist also gleichbedeutend mit der Anzahl unterschiedlicher Intervall-Kennungen, die benötigt werden, um alle Intervalle aus der Gruppe k darzustellen. Um den gesamten ursprünglichen Wertebereich von
0 bis
2R abzubilden, werden also
unterschiedliche Intervall-Kennungen benötigt.
-
Dies sei an einem Zahlenbeispiel mit R=10 und P=3 verdeutlicht. Da 2R-P=27=128 ist, erstreckt sich jede der 23=8 Gruppen über 128 Zahlenwerte des ursprünglichen Wertebereichs.
-
Für die erste Gruppe mit k=1 besagt die Formel für Nk , dass der Bereich zwischen der unteren Grenze U1=896 und O1=1024, mit 1024 ausgenommen, in N1=128 Intervalle aufzuteilen ist. Damit werden die 128 höchsten diskreten Zahlenwerte des Gesamt-Wertebereichs ohne Verlust an Genauigkeit zu Intervall-Kennungen abgebildet.
-
Für die zweite Gruppe mit k=2 besagt die Formel für Nk , dass diese Gruppe nur noch N2=64 Intervalle enthalten soll. Die 128 Zahlenwerte in dieser Gruppe (zwischen U2=768 und O2=896, mit 896 ausgenommen) werden also auf 64 Intervall-Kennungen, und somit um einen Faktor 2, verdichtet.
-
Dies setzt sich fort bis k=8. Für k=8 wird der gesamte Bereich von U8=0 bis O8=128, mit 128 ausgenommen, in nur noch N8=20=1 einziges Intervall komprimiert, also um einen Faktor 128.
-
Insgesamt werden N=255 (128+64+32+22+8+4+2+1) verschiedene Kennungen für Intervalle benötigt, die sich mit einem Speicherbedarf von 8 Bits darstellen lassen. Demgegenüber wurden ursprünglich 10 Bits benötigt, um alle 1024 diskreten Zahlenwerte des ursprünglichen Wertebereichs abzuspeichern. Insgesamt werden also 20 % an Speicherplatz eingespart.
-
Insbesondere in einem KNN handelt es sich bei den abgespeicherten Zahlenwerten vielfach um Zwischenergebnisse, mit denen später noch einmal weiter gerechnet werden soll. Hierfür ist es erforderlich, mit einem Decoder die im Datenspeicher hinterlegte Kennung des Intervalls wieder in einen Zahlenwert zurückzuübersetzen, mit dem weiter gerechnet werden kann. Daher bezieht sich die Erfindung auch auf einen Decoder für Zahlenwerte, die mit dem beschriebenen Encoder in einem Datenspeicher abgespeichert sind. Dieser Decoder ist dazu ausgebildet, einer aus dem Datenspeicher abgerufenen Kennung eines diskreten Intervalls nach einer Zuordnungsvorschrift einen zu diesem Intervall gehörenden festen Zahlenwert zuzuordnen und auszugeben.
-
Dabei kann der Decoder beispielsweise dazu ausgebildet sein, mindestens einer Kennung eines diskreten Intervalls das Maximum, das Minimum oder den Mittelwert der zu diesem Intervall gehörenden Zahlenwerte zuzuordnen. Diese Größen sind zumindest Näherungen für den ursprünglich abgespeicherten Zahlenwert, deren maximaler Fehler vorab bekannt ist.
-
Um den durchschnittlichen Fehler bei der Rekonstruktion deutlich zu vermindern, ist in einer weiteren besonders vorteilhaften Ausgestaltung der Encoder zusätzlich dazu ausgebildet, für mindestens eines der diskreten Intervalle eine zusammenfassende Statistik über eingegebene Zahlenwerte zu führen, die der Encoder dem diskreten Intervall zugeordnet hat. Aus dieser zusammenfassenden Statistik lässt sich ein besser motivierter Zahlenwert ableiten, den der Decoder bei der späteren Rekonstruktion der Kennung des Intervalls zuordnen kann.
-
Zu diesem Zweck kann der Encoder insbesondere dazu ausgebildet sein, im Rahmen der zusammenfassenden Statistik ein Perzentil (etwa das 75. Perzentil), einen Mittelwert und/oder einen Median derjenigen Zahlenwerte zu ermitteln, die er dem diskreten Intervall zugeordnet hat.
-
Die Speicherung der zusammenfassenden Statistik zusätzlich zu den Kennungen der Intervalle kostet einen geringen Betrag an zusätzlichem Speicherplatz.
-
Nach dem zuvor Beschriebenen ist die Diskretisierung von Zahlenwerten in unterschiedlich breite Intervalle besonders vorteilhaft für die Realisierung künstlicher neuronaler Netzwerke, KNN, da hier in besonderem Maße betragsmäßig höhere Zahlenwerte einen stärkeren Einfluss auf die letztendlich erzielte Ausgabe haben als betragsmäßig niedrigere Zahlenwerte. Daher bezieht sich die Erfindung auch auf ein Künstliche-Intelligenz-Modul, Kl-Modul, mit einem KNN, das eine Mehrzahl von Schichten mit Neuronen umfasst. Die Neuronen sind jeweils dazu ausgebildet, eine Mehrzahl von Eingaben mit Gewichten zu einer Aktivierung zusammenzufassen. Diese Aktivierungen können wahlweise unmittelbar als Eingaben für die nächste Schicht des KNN dienen oder aber durch eine optionale nichtlineare Verarbeitungsstufe zu einem Ergebnis verarbeitet werden, dass dann wiederum der nächsten Schicht als Eingabe zugeführt wird.
-
Eine derartige nichtlineare Verarbeitungsstufe kann beispielsweise eine Gleichrichtungsfunktion umfassen, die nur den positiven Anteil ihres Arguments und ansonsten Null ausgibt (Rectified Linear Unit, ReLU).
-
Es ist mindestens ein Encoder für die Speicherung der Gewichte mindestens einer Schicht, und/oder mindestens der in einer Schicht gebildeten Aktivierungen und/oder Ergebnisse, in einem Datenspeicher vorgesehen. Weiterhin ist mindestens ein Decoder für den Abruf der Gewichte, Aktivierungen bzw. Ergebnisse aus dem Datenspeicher vorgesehen.
-
Wie zuvor beschrieben, hat die Diskretisierung mit dem Encoder die Wirkung, dass der Speicherbedarf in dem Datenspeicher deutlich reduziert wird. Zugleich leistet diese Diskretisierung auch die Vorarbeit für eine Implementierung des KNN auf Hardware, die speziell für Festkomma- oder Ganzzahlberechnungen ausgelegt ist. Daher sind in einer besonders vorteilhaften Ausgestaltung die Neuronen in dem KI-Modul mit einer Recheneinheit realisiert, die für Festkomma- oder Ganzzahlberechnungen ausgebildet ist.
-
Die Größenordnungen, in denen sich die Zahlenwerte von Aktivierungen, Gewichten und Ergebnissen bewegen, können sich von Schicht zu Schicht des KNN unterscheiden. So können beispielsweise nichtlineare Verarbeitungsstufen, die jeweils die Ausgabe eines Neurons zu einem Ergebnis verarbeiten, bewirken, dass die Beträge der Aktivierungen von Schicht zu Schicht sukzessive ansteigen. Wird beispielsweise die „Rectified Linear Unit“ (ReLU) als nichtlineare Verarbeitungsstufe verwendet, so können beispielsweise in der ersten Schicht des KNN die Aktivierungen zwischen 0 und 2 liegen, während sie in der fünften Schicht bereits zwischen 0 und 40 liegen. Daher sind in einer vorteilhaften Ausgestaltung für unterschiedliche Schichten des KNN Encoder mit unterschiedlichen Zuordnungsvorschriften von Zahlenwerten zu Intervallen vorgesehen.
-
Ebenso sind in einer weiteren vorteilhaften Ausgestaltung für unterschiedliche Schichten des KNN Decoder mit unterschiedlichen Zuordnungsvorschriften von Intervall-Kennungen zu Zahlenwerten vorgesehen. Beispielsweise können die Encoder für unterschiedliche Schichten des KNN unterschiedliche Wertebereiche in unterschiedlicher Weise in Intervalle aufteilen, und der Decoder sollte dann jeweils hierzu korrespondieren. Die Encoder können auch beispielsweise für unterschiedliche Schichten des KNN unterschiedliche zusammenfassende Statistiken in Bezug auf ein und dasselbe diskrete Intervall erstellen, so dass die Decoder der Kennung dieses Intervalls dann jeweils einen passenden Zahlenwert für die weiteren Rechnungen zuordnen können.
-
In dem KI-Modul können der Encoder und der Decoder an beliebiger Stelle untergebracht sein. Der Encoder und der Decoder können beispielsweise in einen Pfad für den direkten Speicherzugriff (Direct Memory Access, DMA) geschaltet sein oder auch beispielsweise an einer beliebigen Stelle sitzen, an der sie exklusiv den Zugriff auf zumindest einen Teil des Datenspeichers kontrollieren. Der Encoder und der Decoder können aber auch beispielsweise innerhalb der Software-Implementierung des KNN implementiert sein und sich der herkömmliche, von der Hardware und vom Betriebssystem bereitgestellten, Methoden für den Speicherzugriff bedienen.
-
Typischerweise wird ein KNN mit zufälligen Werten oder anderen Startwerten für die darin vorkommenden Gewichte initialisiert, und die endgültigen Gewichte bilden sich dann erst während des Trainings heraus. Das Training entscheidet somit über die Größenordnungen, in denen sich die Zahlenwerte von Aktivierungen, Gewichten und Ergebnissen bewegen.
-
Daher bezieht sich die Erfindung auch auf ein Verfahren zur Herstellung des beschriebenen KI-Moduls.
-
Im Rahmen dieses Verfahrens werden zunächst die Gewichte des KNN in dem KI-Modul mittels Lern-Datensätzen für die Eingabedaten und zugehörigen Lern-Ausgaben trainiert. Hierbei werden die Gewichte insbesondere so optimiert, dass das KNN zu den Lern-Datensätzen jeweils eine Ausgabe liefert, die nach Maßgabe einer Fehlerfunktion hinreichend gut der zugehörigen Lern-Ausgabe entspricht.
-
Es wird nun anhand von Datensätzen für die Eingabedaten ermittelt, in welchem Wertebereich die in mindestens einer Schicht des KNN gebildeten Aktivierungen und/oder Ergebnisse liegen. Der auf diese Weise ermittelte Wertebereich, und/oder ein Wertebereich, in dem die beim Training ermittelten Gewichte liegen, wird als Wertebereich für mindestens einen Encoder des KI-Moduls festgelegt. Diese Datensätze können beispielsweise für das Training verwendete Lern-Datensätze, für die Validierung nach dem Training verwendete Test-Datensätze, oder auch beliebige Kombinationen hieraus, beinhalten.
-
Wie zuvor beschrieben, kann diese Festlegung separat für jede einzelne Schicht des KNN erfolgen. Es kann aber auch beispielsweise ein globaler Wertebereich für alle Aktivierungen, Ergebnisse bzw. Gewichtungen des gesamten KNN festgelegt werden, der alle im KNN vorkommenden Zahlenwerte abdeckt.
-
Situationen, in denen die genaue Differenz zwischen höheren Zahlenwerten wichtiger ist als Differenzen zwischen niedrigeren Zahlenwerten, können insbesondere auftreten, wenn ein KNN für Klassifikationsaufgaben eingesetzt wird. Bei dieser Art Aufgaben können hohe Konfidenzen für mehrere Klassen nahe beieinander liegen, und nur diese Klassen kommen überhaupt für die Auswahl der letztendlich ausgegebenen Klasse in Betracht. Daher ist die genaue Unterscheidung zwischen diesen Klassen viel wichtiger als eine Unterscheidung zwischen Klassen, bezüglich derer die Konfidenz bereits wesentlich niedriger eingestuft wurde. Daher wird das beschriebene KI-Modul besonders vorteilhaft für die Spracherkennung, Objekterkennung, Linienschätzung, Ego-Line-Schätzung, Betrugserkennung, Gesichtserkennung und/oder semantische Segmentierung aus physikalisch aufgenommenen Messdaten verwendet. Wichtige Anwendungen sind hier beispielsweise Fahrassistenzsysteme, die Steuerung eines zumindest teilweise automatisierten Fahrzeugs im Straßenverkehr sowie auch die Zutrittskontrolle, bei der es darauf ankommt, das Vorliegen eines gültigen Zugangsmediums zu erkennen.
-
Der Encoder und der Decoder können ganz oder teilweise in einer Software implementiert sein, die insbesondere auch nachträglich auf ein bestehendes Kl-Modul nachgerüstet werden kann. Diese Software ist somit ein eigenständiges Produkt mit dem unmittelbaren Kundennutzen, dass die Performance eines damit ausgerüsteten KI-Moduls besser wird. Daher bezieht sich die Erfindung auch auf ein Computerprogramm mit maschinenlesbaren Anweisungen, die, wenn sie auf einem Computer, und/oder auf einem Embedded-System, ausgeführt werden, den Computer, und/oder das Embedded-System, zu dem beschriebenen Encoder, und/oder zu dem beschriebenen Decoder, aufwerten, und/oder den Computer, bzw. das Embedded-System, dazu veranlassen, das beschriebene Verfahren zur Herstellung eines KI-Moduls auszuführen. Ebenso bezieht sich die Erfindung auch auf einen maschinenlesbaren Datenträger oder ein Downloadprodukt mit dem Computerprogramm.
-
Weitere, die Erfindung verbessernde Maßnahmen werden nachstehend gemeinsam mit der Beschreibung der bevorzugten Ausführungsbeispiele der Erfindung anhand von Figuren näher dargestellt.
-
Ausführungsbeispiele
-
Es zeigt:
- 1 Kodierung von Zahlenwerten 4 mit einem beispielhaften Encoder 1 und Dekodierung mit einem beispielhaften Decoder 2;
- 2 Ausführungsbeispiel eines KI-Moduls mit Encoder 1 und Decoder 2;
- 3 Ausführungsbeispiel des Verfahrens 100.
-
Nach 1 fallen aus beliebiger Quelle Zahlenwerte 4 an, die sich über einen Wertebereich 43 zwischen einem vorgegebenen Minimalwert 41 und einem vorgegebenen Maximalwert 42 erstrecken. Diese Zahlenwerte sind in diskretisierter, platzsparender Form in dem Datenspeicher 3 zu hinterlegen.
-
Hierfür kommt der beispielhafte Encoder 1 zum Einsatz. Gemäß der Zuordnungsvorschrift 11 in dem Encoder 1 wird der Wertebereich 43 in diskrete Intervalle 12a-12d unterteilt, deren Breiten 14a-14d unterschiedlich sind. Abhängig davon, in welches der Intervalle 12a-12d ein konkreter abzuspeichernder Zahlenwert 4 fällt, wird die Kennung 13a-13d des jeweiligen Intervalls 12a-12d in dem Datenspeicher 3 hinterlegt.
-
Der Encoder 1 führt weiterhin eine zusammenfassende Statistik 15a-15d über diejenigen Zahlenwerte 4, die er jeweils den einzelnen Intervallen 12a-12d zugeordnet hat. Diese zusammenfassende Statistik 15a-15d wird ebenfalls in den Datenspeicher 3 ausgegeben. Da diese Statistik 15a-15d ein Komprimat aus sehr vielen Einzelwerten 4 ist, ist der zusätzliche Platzbedarf im Datenspeicher 3 sehr gering.
-
Wird ein Zahlenwert 4 wieder benötigt, um damit weiter zu rechnen, werden die an Stelle dieses Zahlenwerts 4 im Datenspeicher 3 hinterlegte Kennung 13a-13d des Intervalls 12a-12d sowie eine eventuell vorhandene zusammenfassende Statistik 15a-15d aus dem Datenspeicher 3 abgerufen. Die Zuordnungsvorschrift 21 des Decoders 2 ordnet der Kennung 13a-13d einen festen Wert 22a-22d zu, der für die weitere Verwendung an die Stelle des ursprünglich eingegebenen Zahlenwerts 4 tritt. Dabei kann für die Festlegung des zu jeder Kennung 13a-13d gehörenden festen Werts 22a-22d insbesondere auch die vom Encoder 1 zum jeweiligen Intervall 12a-12d geführte und im Datenspeicher 3 hinterlegte zusammenfassende Statistik herangezogen werden.
-
2 zeigt ein Ausführungsbeispiel des KI-Moduls 5. Das KI-Modul 5 enthält ein künstliches neuronales Netzwerk, KNN 50. Das KNN 50 besteht aus einer Vielzahl von Schichten, von denen drei in 2 beispielhaft dargestellt und mit den Bezugszeichen 51-53 bezeichnet sind. Jede Schicht 51-53 enthält eine Vielzahl von Neuronen, von denen in 2 eines beispielhaft mit dem Bezugszeichen 54 bezeichnet ist. Das KI-Modul 5 ist dazu bestimmt, Zahlenwerte 4, beispielsweise Messdaten aus physikalischen Beobachtungen, in eine für die jeweilige Anwendung zutreffende Ausgabe 7, etwa eine Klassifikation dieser Messdaten, zu übersetzen.
-
Zum Training des KNN 50 wird dieses mit Lern-Datensätzen 6a beaufschlagt, und die internen Gewichte 51a-53a in den Schichten 51-63 werden so optimiert, dass die Ausgabe 7 des KNN 5 nach Maßgabe einer Fehlerfunktion hinreichend gut zu der zugehörigen Lern-Ausgabe 6b korrespondiert. Zum Einrichten des Encoders 1, das im Zusammenhang mit 3 näher erläutert wird, werden weiterhin Datensätze in das KNN 50 eingegeben. Diese Datensätze können beispielsweise für das Training verwendete Lern-Datensätze, für die Validierung nach dem Training verwendete Test-Datensätze, oder auch beliebige Kombinationen hieraus, beinhalten.
-
Dabei sind die Neuronen 54 des KNN 50 zumindest im fertig trainierten Zustand mit einer Recheneinheit 55 realisiert, die für Festkomma- oder Ganzzahlberechnungen ausgebildet ist. Für das Training kann Hardware verwendet werden, die mit Gleitkommazahlen arbeitet, damit die kleinen, während des Trainings auftretenden Gradientenschritte nicht durch Rundungseffekte unterdrückt werden.
-
In den Schichten 51-53 des KNN 50 entstehende Aktivierungen 51b-53b, sowie daraus durch nichtlineare Verarbeitung ermittelte Ergebnisse 51c-53c, werden über den Encoder 1 im Datenspeicher 3 abgelegt. Auch die nach dem Training entstandenen Gewichte 51a-53a werden in dieser Weise gespeichert. Wie im Zusammenhang mit 1 beschrieben, wird zu jedem diesbezüglichen Zahlenwert 4 die Kennung 13a-13d eines Intervalls 12a-12d, in das der Zahlenwert fällt, abgespeichert. Zusätzlich wird auch die zusammenfassende Statistik 15a-15d über alle jeweils dem Intervall 12a-12d zugeordneten Zahlenwerte 4 abgespeichert.
-
Wenn die Zahlenwerte 4 wieder benötigt werden, etwa um die Eingabe für die nächste Schicht 51-53 zu erstellen, werden, wie im Zusammenhang mit 1 beschrieben, den Kennungen 13a-13d mit dem Decoder 2 feste Werte 22a-22d aus den jeweiligen Intervallen 12a-12d zugeordnet. Diese festen Werte 22a-22d treten bei der weiteren Verarbeitung an die Stelle der Zahlenwerte 4, die ursprünglich zur Speicherung vorgelegt wurden. Sie können beispielsweise unter Heranziehung der jeweiligen zusammenfassenden Statistik 15a-15d festgelegt sein.
-
3 zeigt ein Ausführungsbeispiel des Verfahrens 100. In Schritt 110 liegt das KI-Modul 5 zunächst noch in seinem untrainierten Zustand 5' vor und wird, wie zuvor beschrieben, trainiert. Als Ergebnis entstehen die internen Gewichte 51a-53a der Schichten 51-53 im KNN 50 des KI-Moduls 5. Das KI-Modul 5 liegt jetzt in seinem trainierten Zustand vor.
-
In diesem trainierten Zustand bekommt das KI-Modul 5 in Schritt 120 Datensätze 6c für Eingabedaten zugeführt. Diese Datensätze 6c können beispielsweise für das Training verwendete Lern-Datensätze 6a, für die Validierung nach dem Training verwendete Test-Datensätze, oder auch beliebige Kombinationen hieraus, beinhalten. Die Datensätze 6c können aber auch beispielsweise disjunkt zu den Lern-Datensätzen 6a, und/oder zu den Test-Datensätzen, sein. Es wird getestet, in welchen Wertebereichen 43 die in den Schichten 51-53 des KNN 50 gebildeten Aktivierungen 51b-53b, bzw. die hieraus ermittelten Ergebnisse 51c-53c, liegen.
-
Diese Wertebereiche werden in Schritt 130 als Wertebereiche 43 für mindestens einen Encoder 1 des KI-Moduls 5 festgelegt. Auch der Wertebereich 43, in dem die beim Training 110 ermittelten Gewichte 51a-53a liegen, wird als Wertebereich 43 für mindestens einen solchen Encoder 1 festgelegt.
-
Diesen Anpassungen des Encoders 1 kann insbesondere auch der jeweils zugehörige Decoder 2 nachgeführt werden.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-