-
Technisches Gebiet
-
Die vorliegende Erfindung bezieht sich auf eine Reduziervorrichtung für neuronale Netze.
-
Technischer Hintergrund
-
In den letzten Jahren wurden Techniken zum Anwenden einer Objekterkennung und einer Verhaltensvorhersage unter Verwendung von maschinellem Lernen auf das autonome Fahren eines Fahrzeugs entwickelt. Ein neuronales Netz ist als ein Verfahren für maschinelles Lernen bekannt, das zur Objekterkennung oder dergleichen verwendet wird. In einem neuronalen Netz wird eine Faltungsoperation oder dergleichen, die eine große Anzahl von Operationen aufweist, durchgeführt, was ein Problem ist, wenn eine Betriebsvorrichtung, die am Fahrzeug montiert ist, eine Verarbeitung in Echtzeit durchführt. Um das oben genannte Problem zu lösen, wird ein Reduzierverfahren (ein Komprimierungsverfahren) zum Reduzieren einer Berechnungslast eines neuronalen Netzes, während eine Wirkung auf eine Erkennungsleistung niedergehalten wird, indem Zweige (Zwischenschichtverbindungen) dort reduziert werden, wo ein Gewichtungsfaktor jedes Knotens des neuronalen Netzes unter einem Schwellenwert liegt, offenbart (siehe NPL 1).
-
Entgegenhaltungsliste
-
Nichtpatentliteratur
-
NPL 1: Song Han, Jeff Pool, John Tran, William J. Dally, „Learning both Weights and Connections for Efficient Neural Networks", [Online], 30. Oktober 2015, [gesucht am 24. Dezember 2018], Internet <URL: https://arxiv.org/pdf/1506.02626.pdf>
-
Zusammenfassung der Erfindung
-
Technisches Problem
-
NPL 1 offenbart das Verfahren des Reduzierens der Anzahl von Operationen des neuronalen Netzes durch Reduzieren einiger Zweige des neuronalen Netzes. Allerdings wird selbst dann, wenn die Anzahl von Operationen reduziert wird, nicht notwendigerweise die Verarbeitungszeit der Berechnungsverarbeitung reduziert. Zusätzlich liegt ein Fall vor, in dem mehrere Rechner, die in einem Rechner vorgesehen sind, nicht wirksam für die Berechnungsverarbeitung des neuronalen Netzes verwendet werden. Es ist wahrscheinlich, dass ein derartiges Problem nicht nur in einer fahrzeuginternen Betriebsvorrichtung, sondern auch in weiteren Betriebsvorrichtungen unter Verwendung eines neuronalen Netzes auftritt.
-
Die vorliegende Erfindung wurde gemacht, um das oben beschriebene Problem zu lösen, und eine ihrer Aufgaben ist, eine Reduziervorrichtung für neuronale Netze zu schaffen, die eine Verarbeitungszeit eines neuronalen Netzes verkürzen und die Anzahl von Operationen des neuronalen Netzes reduzieren kann, derart, dass mehrere Rechner wirksam verwendet werden können.
-
Lösung des Problems
-
Eine Reduziervorrichtung für neuronale Netze gemäß einem Aspekt der vorliegenden Erfindung ist eine Reduziervorrichtung für neuronale Netze, die die Anzahl von Operationen eines neuronalen Netzes durch eine Betriebsvorrichtung, die mehrere Rechner enthält, reduziert, indem das neuronale Netz reduziert wird, und enthält Folgendes: eine Rechnerzuweisungseinheit, die die Anzahl der Rechner, die der Berechnungsverarbeitung des neuronalen Netzes zugewiesen sind, einstellt; eine Einheit zum Einstellen der Anzahl von Operationen, die die Anzahl von Operationen des reduzierten neuronalen Netzes auf der Grundlage der Anzahl der zugewiesenen Rechner einstellt; und eine Reduziereinheit für neuronale Netze, die das neuronale Netz derart reduziert, dass die Anzahl von Operationen des neuronalen Netzes der Betriebsvorrichtung gleich der Anzahl von Operationen, die durch die Einheit zum Einstellen der Anzahl von Operationen eingestellt ist, ist.
-
Vorteilhafte Wirkungen der Erfindung
-
Gemäß der vorliegenden Erfindung kann die Verarbeitungszeit des neuronalen Netzes verkürzt werden und kann die Anzahl von Operationen des neuronalen Netzes reduziert werden, derart, dass die mehreren Rechner wirksam verwendet werden können. Eine weitere Eigenschaft in Bezug auf die vorliegende Erfindung wird aus der Beschreibung der vorliegenden Spezifikation und den begleitenden Zeichnungen deutlich. Zusätzlich werden weitere Aufgaben, Konfigurationen und Wirkungen aus der folgenden Beschreibung von Ausführungsformen deutlich.
-
Figurenliste
-
- [1] 1 ist ein Blockdiagramm eines Systems für autonomes Fahren gemäß einer ersten Ausführungsform.
- [2] 2 ist eine Ansicht, die ein Beispiel eines neuronalen Netzes gemäß der ersten Ausführungsform veranschaulicht.
- [3] 3 ist eine Ansicht, die ein Beispiel einer Knotenverarbeitung einer ersten Zwischenschicht gemäß der ersten Ausführungsform veranschaulicht.
- [4] 4 ist eine Ansicht, die ein weiteres Beispiel der Knotenverarbeitung der ersten Zwischenschicht gemäß der ersten Ausführungsform veranschaulicht.
- [5] 5 ist eine Ansicht, die ein Beispiel einer Knotenverarbeitung einer zweiten Zwischenschicht gemäß der ersten Ausführungsform veranschaulicht.
- [6] 6 ist eine Ansicht, die ein Beispiel einer Knotenverarbeitung einer Ausgangsschicht gemäß der ersten Ausführungsform veranschaulicht.
- [7] 7 ist eine Ansicht, die ein Beispiel einer Reduzierverarbeitung gemäß der ersten Ausführungsform veranschaulicht.
- [8] 8 ist ein Blockdiagramm, das einen Abschnitt einer Betriebsvorrichtung gemäß der ersten Ausführungsform veranschaulicht.
- [9] 9 ist eine Ansicht, die ein Beispiel eines Zeitdiagramms einer Berechnungsverarbeitung eines neuronalen Netzes veranschaulicht.
- [10] 10 ist eine Ansicht, die ein Beispiel des Zeitdiagramms der Berechnungsverarbeitung des neuronalen Netzes veranschaulicht.
- [11] 11 ist eine Ansicht, die ein Beispiel des Zeitdiagramms der Berechnungsverarbeitung des neuronalen Netzes veranschaulicht.
- [12] 12 ist eine Ansicht, die ein Beispiel des Zeitdiagramms der Berechnungsverarbeitung des neuronalen Netzes veranschaulicht.
- [13] 13 ist ein Blockdiagramm eines Systems für autonomes Fahren gemäß einer zweiten Ausführungsform.
- [14] 14 ist ein Blockdiagramm eines Systems für autonomes Fahren gemäß einer dritten Ausführungsform.
- [15] 15 ist ein Blockdiagramm eines Systems für autonomes Fahren gemäß einer vierten Ausführungsform.
-
Beschreibung der Ausführungsformen
-
[Erste Ausführungsform]
-
Im Folgenden wird ein System für autonomes Fahren, auf das eine Reduziervorrichtung für neuronale Netze angewendet wird, unter Bezugnahme auf die begleitenden Zeichnungen beschrieben. 1 ist ein Blockdiagramm eines Systems für autonomes Fahren gemäß einer ersten Ausführungsform. Es ist festzuhalten, dass das Beispiel, in dem die Reduziervorrichtung für neuronale Netze auf das System für autonomes Fahren angewendet wird, in der folgenden Beschreibung beschrieben wird, jedoch die Reduziervorrichtung des neuronalen Netzes auf weitere Systeme wie z. B. ein Überwachungskamerasystem, ein medizinisches Bilddiagnosesystem und ein Spracherkennungssystem angewendet werden kann.
-
Im System für autonomes Fahren sind ein Fahrzeug 10, das autonomes Fahren unter Verwendung eines neuronalen Netzes durchführt, und ein Server 20, der dem Fahrzeug 10 regelmäßig einen Parameter des neuronalen Netzes mitteilt, durch drahtlose Kommunikation verbunden, wie in 1 veranschaulicht ist. Das Fahrzeug 10 ist mit Folgendem versehen: einer Kamera 120, die ein Bild des Umfelds des Fahrzeugs aufnimmt; einer Fahrzeugsteuereinheit 110, die das autonome Fahren des Fahrzeugs 10 steuert; und einem Aktor 130, der für verschiedene Betätigungen z. B. eines Beschleunigers, einer Bremse und einer Lenkung verwendet wird. Im Server 20 ist eine Reduziervorrichtung 100 für neuronale Netze installiert, die die Anzahl von Operationen des neuronalen Netzes durch eine Reduziertechnik reduziert.
-
Die Fahrzeugsteuereinheit 110 ist mit Folgendem versehen: einer Bildeingabeeinheit 111, die das Bild, das von der Kamera 120 eingegeben wird, in ein vorgegebenes Format, umwandelt; einer Bilderkennungseinheit 112, die das Bild unter Verwendung des neuronalen Netzes erkennt; und einer Signalausgabeeinheit 113, die ein Steuersignal, das einem Erkennungsergebnis entspricht, zum Aktor 130 ausgibt. Die Reduziervorrichtung 100 für neuronale Netze teilt der Bilderkennungseinheit 112 den Parameter des reduzierten neuronalen Netzes mit. Der Parameter des neuronalen Netzes ist ein Parameter zum Konstruieren eines reduzierten neuronalen Netzes in der Bilderkennungseinheit 112 und ist z. B. ein Gewichtungsfaktor, der im neuronalen Netz verwendet wird.
-
Die Bilderkennungseinheit 112 konstruiert das reduzierte neuronale Netz auf der Grundlage des Parameters, der von der Reduziervorrichtung 100 für neuronale Netze mitgeteilt wurde, und erkennt das Bild, das von der Bildeingabeeinheit 111 eingegeben wurde, unter Verwendung des neuronalen Netzes. Die Signalausgabeeinheit 113 gibt das Steuersignal, das Fahrzeugsteuerinformationen, die für autonomes Fahren nötig sind, wie z. B. eine Bewegungsrichtung und eine Fahrgeschwindigkeit eines Trägerfahrzeugs enthält, auf der Grundlage des Erkennungsergebnisses des Bilds zum Aktor 130 aus: Der Aktor 130 enthält einen Antriebsaktor für den Beschleuniger, einen Bremsaktor für die Bremse, ein Lenkaktor für die Lenkung und dergleichen. Der Aktor 130 steuert das Fahrzeug 10 auf der Grundlage des Steuersignals von der Signalausgabeeinheit 113.
-
Die Fahrzeugsteuereinheit 110 ist durch eine Betriebsvorrichtung 140, die mehrere Rechner enthält, realisiert. Die Rechner der Betriebsvorrichtung 140 sind verschiedenen Verarbeitungsarten der Fahrzeugsteuereinheit 110 zugewiesen. Wenn die verschiedenen Verarbeitungsarten der Fahrzeugsteuereinheit 110 durch die mehreren Rechner der Betriebsvorrichtung 140 ausgeführt werden, wird die Bilderkennung unter Verwendung des neuronalen Netzes durchgeführt und eine Steuerung des autonomen Fahrens des Fahrzeugs 10 wird auf der Grundlage des Erkennungsergebnisses durchgeführt. Es ist festzuhalten, dass eine Bilderkennungsverarbeitung eine große Berechnungslast unter den verschiedenen Verarbeitungsarten der Fahrzeugsteuereinheit 110 aufweist und somit der Bilderkennungsverarbeitung im Vergleich zur weiteren Verarbeitung der Fahrzeugsteuereinheit 110 eine größere Rechneranzahl zugewiesen wird.
-
Die Reduziervorrichtung 100 für neuronale Netze ist mit einer Halteeinheit 101 für neuronale Netze, einer Rechnerzuweisungseinheit 102, einer Einheit 103 zum Einstellen der Anzahl von Operationen und einer Reduziereinheit 104 für neuronale Netze versehen. Die Halteeinheit 101 für neuronale Netze hält ein gelerntes neuronales Netz, nachdem es in einem PC, einem Server oder dergleichen gelernt wurde, d. h. ein neuronales Netz, das zur Schlussfolgerungsverarbeitung verwendet wird. Wenn die Bilderkennungseinheit 112 die Bilderkennung unter Verwendung des neuronalen Netzes durchführt, stellt die Rechnerzuweisungseinheit 102 die Anzahl von Rechnern der Betriebsvorrichtung 140, die der Berechnungsverarbeitung des neuronalen Netzes zugewiesen werden sollen, ein. In diesem Fall stellt die Rechnerzuweisungseinheit 102 die Anzahl zugewiesener Rechner, die von einem Anwender mittels einer Eingabevorrichtung oder dergleichen eingegeben wurde, in der Reduziervorrichtung 100 ein.
-
Die Einheit 103 zum Einstellen der Anzahl von Operationen berechnet die Anzahl von Operationen, die für die Berechnungsverarbeitung des neuronalen Netzes, das in der Halteeinheit 101 für neuronale Netze gehalten wird, erforderlich ist, und stellt die Anzahl von Operationen des reduzierten neuronalen Netzes auf der Grundlage der Anzahl zugewiesener Rechner ein. Die Reduziereinheit 104 für neuronale Netze reduziert das neuronale Netz, das in der Halteeinheit 101 für neuronale Netze gehalten wird, derart, dass die Anzahl von Operationen des neuronalen Netzes der Betriebsvorrichtung 140 gleich der Anzahl von Operationen, die durch die Einheit 103 zum Einstellen der Anzahl von Operationen eingestellt ist, ist. Zusätzlich teilt die Reduziereinheit 104 für neuronale Netze den Parameter des reduzierten neuronalen Netzes der Bilderkennungseinheit 112 des Fahrzeugs 10 mit, um die Anzahl von Operationen des neuronalen Netzes, das für die Bilderkennungsverarbeitung der Bilderkennungseinheit 112 verwendet wird, zu reduzieren.
-
Es ist festzuhalten, dass die jeweiligen Einheiten der Reduziervorrichtung 100 für neuronale Netze durch Software unter Verwendung eines Prozessors realisiert werden können oder durch eine Logikschaltung (Hardware), die in einer integrierten Schaltung oder dergleichen gebildet ist, realisiert werden können. Im Falle der Verwendung des Prozessors liest der Prozessor ein Programm, das in einem Speicher gespeichert ist, und führt es aus, um die verschiedenen Verarbeitungsarten durchzuführen. Als Prozessor wird z. B. eine Zentraleinheit (CPU), eine Mikroverarbeitungseinheit (MPU), eine Grafikverarbeitungseinheit (GPU) oder dergleichen verwendet. Zusätzlich ist der Speicher unter Verwendung eines oder mehrerer Aufzeichnungsmedien wie z. B. eines Festwertspeichers (ROM) und eines Schreib-/Lese-Speichers (RAM) abhängig von einer Anwendung konfiguriert.
-
Im Folgenden wird die Reduziervorrichtung 100 für neuronale Netze unter Verwendung eines spezifischen Beispiels beschrieben. 2 ist eine Ansicht, die ein Beispiel des neuronalen Netzes gemäß der ersten Ausführungsform veranschaulicht. 3 ist eine Ansicht, die ein Beispiel einer Knotenverarbeitung einer ersten Zwischenschicht gemäß der ersten Ausführungsform veranschaulicht. 4 ist eine Ansicht, die ein weiteres Beispiel der Knotenverarbeitung der ersten Zwischenschicht gemäß der ersten Ausführungsform veranschaulicht. 5 ist eine Ansicht, die ein Beispiel einer Knotenverarbeitung einer zweiten Zwischenschicht gemäß der ersten Ausführungsform veranschaulicht. 6 ist eine Ansicht, die ein Beispiel einer Knotenverarbeitung einer Ausgangsschicht gemäß der ersten Ausführungsform veranschaulicht. 7 ist eine Ansicht, die ein Beispiel einer Reduzierverarbeitung gemäß der ersten Ausführungsform veranschaulicht. Zusätzlich werden die Bezugszeichen in 1 wie jeweils anwendbar ist zur Vereinfachung der Beschreibung in der folgenden Beschreibung verwendet.
-
Wie in 2 veranschaulicht ist, enthält das neuronale Netz eine Eingangsschicht 200, eine erste Zwischenschicht 201, eine zweite Zwischenschicht 202 und eine Ausgangsschicht 203. Wenn fünf Eingangswerte X0 bis X4 in die Eingangsschicht 200 eingegeben werden, gibt das neuronale Netz zwei Ausgangswerte Y0 und Y1 mittels der ersten und der zweiten Zwischenschicht 201 und 202 aus der Ausgangsschicht 203 aus. Die Eingangsschicht 200 ist mit fünf Eingangsknoten NX0 bis NX4 als Eingangselemente versehen und die Ausgangsschicht 203 ist mit zwei Ausgangsknoten NY0 und NY1 als Ausgangselemente versehen. Die Knoten N00 bis N03 sind als Berechnungselemente in der ersten Zwischenschicht 201 vorgesehen und die Knoten N10 bis N13 sind in der zweiten Zwischenschicht 202 vorgesehen.
-
Die Knoten N00 bis N03 der ersten Zwischenschicht 201 multiplizieren den Eingangswert X0 bis X4, der aus der Eingangsschicht 200 eingegeben wird, mit einem Gewichtungsfaktor, der für jede Zwischenschichtverbindung (jeden Zweig) eingestellt ist, und geben ein Ergebnis, das durch Addieren jedes Multiplikationsergebnisses zu den Knoten N10 bis N13 der zweiten Zwischenschicht 202 erhalten wird, aus. Die Knoten N10 bis N13 der zweiten Zwischenschicht 202 multiplizieren Werte, die von den Knoten N00 bis N03 der ersten Zwischenschicht 201eingegeben werden, mit einem Gewichtungsfaktor, der für jede Zwischenschichtverbindung eingestellt ist, und geben ein Ergebnis, das durch Addieren jedes Multiplikationsergebnisses zu den Ausgangsknoten NY0 und NY1 der Ausgangsschicht 203 erhalten wird, aus. Die Ausgangsknoten NY0 und NY1 der Ausgangsschicht 203 multiplizieren einen Wert, der von den Knoten N10 bis N13 der zweiten Zwischenschicht 202 eingegeben wird, mit einem Gewichtungsfaktor, der für jede Zwischenschichtverbindung eingestellt ist, und geben ein Ergebnis, das durch Addieren sämtlicher Multiplikationsergebnisse erhalten wird, als die Ausgangswerte Y0 und Y1 aus.
-
Hier wird die Berechnungsverarbeitung jedes Knotens genau beschrieben.
3 veranschaulicht eine Berechnungsverarbeitung des Knotens N
00 der ersten Zwischenschicht 201. In
3 verwendet der Knoten N
00 der ersten Zwischenschicht 201 Gewichtungsfaktoren W
000 bis W
040 zwischen Schichten der Eingangsknoten Nxo bis N
X4 der Eingangsschicht 200 und dem Knoten N
00 und der Ausgangswert Z
00, der vom Knoten N
00 ausgeben wird, wird durch die folgende Formel (1) erhalten.
-
4 veranschaulicht eine Berechnungsverarbeitung des Knotens N
01 der ersten Zwischenschicht 201. In
4 verwendet der Knoten N
01 der ersten Zwischenschicht 201 Gewichtungsfaktoren W
001 bis W
041 zwischen Schichten der Eingangsknoten N
X0 bis N
X4 der Eingangsschicht 200 und dem Knoten N
01 und der Ausgangswert Z
01, der vom Knoten N
01 ausgeben wird, wird durch die folgende Formel (2) erhalten. Ausgangswerte Z
02 und Z
03 werden entsprechend zu den weiteren Knoten N
02 und N
03 der ersten Zwischenschicht 201 ausgegeben.
-
5 veranschaulicht eine Berechnungsverarbeitung des Knotens N
10 der zweiten Zwischenschicht 202. In
5 verwendet der Knoten N
10 der zweiten Zwischenschicht 202 Gewichtungsfaktoren W
100 bis W
130 zwischen Schichten der Knoten N
00 bis N
03 der ersten Zwischenschicht 201 und dem Knoten N
10 und ein Ausgangswert Z
11, der vom Knoten N
10 ausgeben wird, wird durch die folgende Formel (3) erhalten. Ausgangswerte Z
11 und Z
13 werden entsprechend zu den weiteren Knoten N
11 und N
13 der zweiten Zwischenschicht 202 ausgegeben.
-
6 veranschaulicht eine Berechnungsverarbeitung des -Ausgangsknotens N
Y0. der Ausgangsschicht 203. In
6 verwendet der Ausgangsknoten N
Y0 der Ausgangsschicht 203 Gewichtungsfaktoren W
200 bis W
230 zwischen Schichten des Knotens N
10 bis N
13 der zweiten Zwischenschicht 202 und dem Ausgangsknoten N
Y0 und der Ausgangswert Y
0, der aus dem Ausgangsknoten N
Y0 ausgeben wird, wird durch die folgende Formel (4) erhalten. Der Ausgangswert Y
1 wird entsprechend zum weiteren Ausgangsknoten N
Y1 der Ausgangsschicht 203 ausgegeben.
-
Das neuronale Netz der vorliegenden Ausführungsform wird in der Bilderkennungseinheit 112 für autonomes Fahren verwendet. Die Eingangswerte X0 bis X4 eines Bilds werden von der Bildeingabeeinheit 111 in die Eingangsknoten NX0 bis NX4 der Eingangsschicht 200 eingegeben und die Ausgangswerte Y0 und Y1, die Bilderkennungsergebnisse sind, werden von den Ausgangsknoten NY0 und NY1 der Ausgangsschicht 203 ausgegeben. Zum Beispiel wird die Wahrscheinlichkeit, dass das Bild ein weiteres Fahrzeug ist, als Y0 ausgegeben und wird die Wahrscheinlichkeit, dass das Bild ein Fußgänger ist, als Y1 ausgegeben. Wenn die Wahrscheinlichkeit, dass das Bild das weitere Fahrzeug ist, hoch ist, wird das Trägerfahrzeug durch die Fahrzeugsteuereinheit 110 gesteuert, dem weiteren Fahrzeug zu folgen. Wenn die Wahrscheinlichkeit, dass das Bild der Fußgänger ist, hoch ist, wird das Trägerfahrzeug gesteuert, dem Fußgänger auszuweichen. Auf diese Weise enthält das neuronale Netz eine Netzkonfiguration und einen Gewichtungsfaktor zum Erhalten eines gewünschten Ausgangswerts aus einem Eingangswert und die Halteeinheit 101 für neuronale Netze speichert verschiedene Typen von Informationen wie z. B. die Netzkonfiguration und den Gewichtungsfaktor.
-
Dann wird ein spezifischer Betrieb der Reduziervorrichtung 100 für neuronale Netze beschrieben. Die Rechnerzuweisungseinheit 102 stellt die Anzahl von Rechnern, die der Berechnungsverarbeitung des neuronalen Netzes, d. h. der Bilderkennungsverarbeitung der Bilderkennungseinheit 112 zugewiesen werden sollen, ein. In diesem Fall wird die Anzahl für die Bilderkennungsverarbeitung zugewiesener Rechner unter Berücksichtigung einer Verarbeitungslast jeder Einheit der Fahrzeugsteuereinheit 110 unter den mehreren Rechner der Betriebsvorrichtung 140, die am Fahrzeug 10 montiert ist, eingestellt. Beispiele der Betriebsvorrichtung 140, die in einem integrierten System wie z. B. dem System für autonomes Fahren der vorliegenden Ausführungsform verwendet werden, enthalten eine feldprogrammierbare Gate-Anordnung (FPGA). Die FPGA ist die Betriebsvorrichtung 140, die die gewünschte Verarbeitung in einem Format einer Logikschaltung entwerfen und ausführen kann. Die FPGA ist mit einem Rechner ausgestattet, der als ein digitaler Signalprozessor (DSP) bezeichnet wird, einen Produktsummenbetrieb bei einer hohen Geschwindigkeit durchführen kann und zum Verarbeiten einer Multiplikation und einer Addition eines neuronalen Netzes mit einer hohen Geschwindigkeit nützlich ist. Da die Anzahl montierter DSPs für jede FPGA im Voraus festgelegt ist, wird die Anzahl von DSPs, die für die Berechnungsverarbeitung des neuronalen Netzes verwendet wird, durch die Rechnerzuweisungseinheit 102 eingestellt. Es ist festzuhalten, dass die Anzahl von Operationen des neuronalen Netzes im Allgemeinen viel größer als die Anzahl von DSPs der FPGA ist und es schwierig ist, das gesamte neuronale Netz gleichzeitig zu verarbeiten. Deshalb wird die Berechnungsverarbeitung des neuronalen Netzes mehrmals durchgeführt. Zusätzlich ist die Betriebsvorrichtung 140 nicht auf die FPGA beschränkt und kann mehrere Produktsummenrechner enthalten, die für das neuronale Netz verwendet werden können.
-
Die Einheit
103 zum Einstellen der Anzahl von Operationen berechnet die Anzahl von Operationen des neuronalen Netzes vor der Reduzierung. Als Beispiel wird die Anzahl von Operationen, die für die Berechnungsverarbeitung des neuronalen Netzes, das in
2 veranschaulicht ist, erforderlich ist, beschrieben. Die Berechnungsverarbeitung jedes Knotens der ersten Zwischenschicht 201 erfordert eine Gesamtmenge von neun Operationstakten aus fünf Multiplikationstakten und vier Additionstakten, wie in der oben genannten Formel (1) veranschaulicht ist. Da die erste Zwischenschicht 201 die vier Knoten N
00 bis N
03 enthält, ist die Anzahl von Operationen, die für die Berechnungsverarbeitung der ersten Zwischenschicht 201 erforderlich ist, 9 * 4 = 36. Ähnlich erfordert die BerechnungsverarbeitungjedesKnotens der zweiten Zwischenschicht 202 eine Gesamtmenge von sieben Operationstakten aus vier Multiplikationstakten und drei Additionstakten,wie in der oben genannten Formel (3) veranschaulicht ist. Da die zweite Zwischenschicht 202 die vier Knoten vom Knoten N
10 zum Knoten N
13 enthält, ist die Anzahl von Operationen, die für die Berechnungsverarbeitung der zweiten Zwischenschicht 202 erforderlich ist, 7 * 4 = 28. Die Berechnungsverarbeitungjedes Ausgangsknotens der Ausgangsschicht 203 erfordert eine Gesamtmenge von sieben Operationstakten aus vier Multiplikationstakten und drei Additionstakten, wie in der oben genannten Formel (4) veranschaulicht ist. Da die Ausgangsschicht 203 die zwei Knoten der Ausgangsknoten N
Y0 und N
Y1 enthält, ist die Anzahl von Operationen, die für die Berechnungsverarbeitung der Ausgangsschicht 203 erforderlich ist, 7 * 2 = 14. Wenn die Anzahlen von Operationen sämtlicher Schichten addiert werden, ist die Anzahl von Operationen, die für die Berechnungsverarbeitung des neuronalen Netzes, das in
2 veranschaulicht ist, erforderlich ist, durch die folgende Formel (5) gegeben:
-
Es muss tatsächlich ein großes neuronales Netz, in dem die Anzahl von Operationen 1 Million Takte überschreitet, als neuronales Netz verwendet werden, jedoch wird das neuronale Netz in der vorliegenden Ausführungsform zur Vereinfachung der Beschreibung in einer vereinfachten Weise beschrieben.
-
Dann stellt die Einheit
103 zum Einstellen der Anzahl von Operationen die Anzahl von Operationen des reduzierten neuronalen Netzes kleiner als die Anzahl von Operationen des neuronalen Netzes vor der Reduzierung und als ein ganzzahliges Vielfaches der Anzahl zugewiesener Rechner, die durch die Rechnerzuweisungseinheit
102 eingestellt ist, ein. Wie durch die oben genannte Formel (5) erhalten wird, ist die Anzahl von Operationen des neuronalen Netzes vor der Reduzierung gleich 78. Hier wird z. B. unter der Annahme, dass die Anzahl zugewiesener Rechner gleich 20 ist, die Anzahl von Operationen des reduzierten neuronalen Netzes durch die folgende Formel (6) eingestellt. Es ist festzuhalten, dass mod(A, B) in Formel (6) eine Verarbeitung des Berechnens eines Rests, wenn A durch B geteilt wird, repräsentiert.
-
Die Reduziereinheit 104 für neuronale Netze reduziert das neuronale Netz, um es um 18 Operationen, was eine Differenz zwischen der Anzahl von Operationen des neuronalen Netzes vor der Reduzierung, die 78 ist, und der Anzahl von Operationen, die durch die Einheit 103 zum Einstellen der Anzahl von Operationen eingestellt ist, die 60 ist, ist, zu reduzieren. Die Anzahl von Operationen des neuronalen Netzes vor der Reduzierung kann von der Einheit 103 zum Einstellen der Anzahl von Operationen durch die Reduziereinheit 104 für neuronale Netze erfasst werden oder kann durch die Reduziereinheit 104 für neuronale Netze ebenso wie die Einheit 103 zum Einstellen der Anzahl von Operationen berechnet werden. Ein Verfahren zum Reduzieren des neuronalen Netzes ist nicht besonders beschränkt, jedoch wird in der vorliegenden Ausführungsform die Beschnittverarbeitung als Beispiel beschrieben. In der Beschnittverarbeitung wird eine Multiplikationsverarbeitung des Multiplizierens eines Eingangswerts mit einem Gewichtungsfaktor unter der Annahme reduziert, dass eine Wirkung auf dem Ausgangswert Z00 ausreichend klein ist, wenn ein Betrag des Gewichtungsfaktors kleiner als ein vorgegebener Schwellenwert ist. Das neuronale Netz wird durch Reduzieren von Gewichtungsfaktoren in ansteigender Reihenfolge der Beträge der Gewichtungsfaktoren des neuronalen Netzes reduziert.
-
Zum Beispiel ist, wie in
3 veranschaulicht ist, eine Gesamtmenge von neun Operationstakten aus fünf Multiplikationstakten und vier Additionstakten erforderlich, um den Ausgangswert Z
00 des Knotens N
00 der ersten Zwischenschicht 201 zu erhalten, wie in der oben genannten Formel (1) veranschaulicht ist. Zum jetzigen Zeitpunkt werden dann, wenn die Beträge der Gewichtungsfaktoren W
010 und W
040 kleiner als der Schwellenwert sind, wie in
7 veranschaulicht ist, die Multiplikationsverarbeitung des Eingangswerts X
1 und des Gewichtungsfaktors W
010 und die Multiplikationsverarbeitung des Eingangswerts X
4 und des Gewichtungsfaktors W
040 reduziert. Als Ergebnis wird der Ausgangswert Z
00 des Knotens N
00 der ersten Zwischenschicht 201 durch die folgende Formel (7) erhalten. In Formel (7) ist die Anzahl von Operationen des Knotens N
00 insgesamt fünf Takte, was drei Multiplikationstakte und zwei Additionstakte enthält, derart, dass die Anzahl von Operationen um vier Takte im Vergleich zu Formel (1) reduziert ist. Auf diese Weise reduziert die Beschnittverarbeitung die Anzahl von Operationen durch Löschen einer Verbindung zwischen Knoten, die eine kleinere Wirkung auf die Ausgabe besitzen.
-
Die Verarbeitungszeit der Berechnungsverarbeitung des neuronalen Netzes wird beschrieben. 8 ist ein Blockdiagramm, das einen Abschnitt der Betriebsvorrichtung gemäß der ersten Ausführungsform veranschaulicht, 9 ist eine Ansicht, die ein Beispiel eines Zeitdiagramms der Berechnungsverarbeitung des neuronalen Netzes veranschaulicht. 10 ist eine Ansicht, die ein weiteres Beispiel des Zeitdiagramms der Berechnungsverarbeitung des neuronalen Netzes veranschaulicht. 11 ist eine Ansicht, die noch ein weiteres Beispiel des Zeitdiagramms der Berechnungsverarbeitung des neuronalen Netzes veranschaulicht.
-
Wie in 8 veranschaulicht ist, werden Zwischendaten 303, die durch einen Rechner 302 berechnet werden, in einem Speicher 301 gespeichert. Zusätzlich wird die Berechnungsverarbeitung durch den Rechner 302 unter Verwendung eines Eingangswert 304 und der Zwischendaten 305, die im Speicher 301 gespeichert sind, wiederholt. Wenn die gesamte Berechnungsverarbeitung durch den Rechner 302 beendet wird, wird ein Berechnungsergebnis 306 aus dem Rechner 302 ausgegeben. Unter der Annahme, dass die Anzahl der zugewiesenen Rechner 302 gleich 20 ist und die Anzahl von Operationen, die für das reduzierte neuronale Netz erforderlich ist, gleich 60 Takte ist, wird das Berechnungsergebnis 306 ausgegeben, nachdem drei Arbeitszyklen der Berechnungsverarbeitung für einen Rechner 302 durchgeführt wurden. Wie in 9 veranschaulicht ist, werden unter der Annahme, dass die Verarbeitungszeit, die zur Berechnungsverarbeitung für einen Arbeitszyklus (einen Takt) durch jeden Rechner 302 erforderlich ist, gleich T ist, 60 Berechnungsverarbeitungstakte (Nr. 0 bis Nr. 59) in der Verarbeitungszeit T für drei Arbeitszyklen als das gesamte neuronale Netz beendet. Es ist festzuhalten, dass die Verarbeitungszeit T die Verarbeitungszeit für einen Arbeitszyklus durch einen Rechner 302 angibt, jedoch die Berechnungsverarbeitung durch die zwanzig Rechner 302 für die Verarbeitungszeit T parallel durchgeführt wird.
-
10 veranschaulicht einen Fall, in dem die Anzahl von Operationen des neuronalen Netzes reduziert wird, ohne die Anzahl zugewiesener Rechner 302 zu berücksichtigen. Hier wird als Beispiel ein Fall beschrieben, in dem die Anzahl zugewiesener Rechner 302 zu 20 eingestellt ist und die Anzahl von Operationen des neuronalen Netzes von 78 Takten zu 62 Takten reduziert wird. Im Vergleich zu dem Fall, in dem die Anzahl von Operationen des neuronalen Netzes 60 Takte ist, wird die Anzahl von Operationen lediglich zweimal erhöht (Nr. 60 und Nr. 61), jedoch ist die Verarbeitungszeit T für vier Arbeitszyklen als das gesamte neuronale Netz erforderlich, derart, dass sich die Verarbeitungszeit T für einen Arbeitszyklus erhöht.
-
Ähnlich veranschaulicht 11 einen Fall, in dem die Anzahl von Operationen des neuronalen Netzes reduziert wird, ohne die Anzahl zugewiesener Rechner 302 zu berücksichtigen. Hier wird als Beispiel ein Fall beschrieben, in dem die Anzahl zugewiesener Rechner 302 zu 20 eingestellt ist und die Anzahl von Operationen des neuronalen Netzes von 78 Takten zu 45 Takten reduziert wird. Alle der zwanzig Rechner 302 werden in der Berechnungsverarbeitung des ersten Arbeitszyklus und in der Berechnungsverarbeitung des zweiten Arbeitszyklus verwendet, jedoch werden lediglich fünf der zwanzig Rechner 302 in der Berechnungsverarbeitung des dritten Arbeitszyklus verwendet. Deshalb ist die Verarbeitungszeit der Berechnungsverarbeitung nicht verkürzt, obwohl die Anzahl von Operationen um 15 Takte im Vergleich zu dem Fall, in dem die Anzahl von Operationen des neuronalen Netzes 60 Takte ist, reduziert ist. Insbesondere wird der Rechner 302 in der Berechnungsverarbeitung des dritten Arbeitszyklus nicht wirksam verwendet und es besteht die Möglichkeit, dass sich die Erkennungsleistung der Bilderkennungseinheit 112 verschlechtert.
-
Wie oben beschrieben ist, wird die Anzahl von Operationen des neuronalen Netzes, das zur Bilderkennung des Bilds, das von der Kamera eingegeben wurde, verwendet wird, zu einem ganzzahligen Vielfachen der Anzahl zugewiesener Rechner 302, die durch die Rechnerzuweisungseinheit 102 im System für autonomes Fahren der ersten Ausführungsform eingestellt ist, reduziert. Als Ergebnis wird die Berechnungsverarbeitung durch die mehreren Rechner 302, die der Berechnungsverarbeitung des neuronalen Netzes zugewiesen wurden, gleichzeitig gestartet und wird die Berechnungsverarbeitung gleichzeitig beendet. Es ist kein Arbeitszyklus vorhanden, in dem die Berechnung lediglich durch einige Rechner 302 durchgeführt wird und die Verarbeitungszeit der Berechnungsverarbeitung kann verkürzt werden und die Verwendungseffizienz der mehreren Rechner 302 kann maximiert werden.
-
Zusätzlich ist die vorliegende Erfindung nicht auf die Konfiguration beschränkt, in der die Gesamtanzahl von Operationen von der ersten Zwischenschicht 201 zur Ausgangsschicht 203 des neuronalen Netzes reduziert wird, und die Anzahl von Operationen kann für jede Schicht des neuronalen Netzes reduziert werden.
-
Wie oben beschrieben ist, ist die Anzahl von Operationen der ersten Zwischenschicht 201 des neuronalen Netzes, das in 2 veranschaulicht ist, gleich 36, ist die Anzahl von Operationen der zweiten Zwischenschicht 202 gleich 28 und ist die Anzahl von Operationen der Ausgangsschicht 203 gleich 14. In diesem Fall wird die Anzahl zugewiesener Rechner 302 für jede Schicht des neuronalen Netzes durch die Rechnerzuweisungseinheit 102 eingestellt (siehe 1). Die Anzahl zugewiesener Rechner 302 in Bezug auf die erste Zwischenschicht 201 ist zu acht eingestellt, die Anzahl zugewiesener Rechner 302 in Bezug auf die zweite Zwischenschicht 202 ist zu acht eingestellt und die Anzahl zugewiesener Rechner 302 in Bezug auf die Ausgangsschicht 203 ist zu vier eingestellt.
-
Zusätzlich wird die Anzahl von Operationen für jede Schicht des reduzierten neuronalen Netzes durch die Einheit
103 zum Einstellen der Anzahl von Operationen eingestellt (siehe
1). Die Anzahl von Operationen für die erste Zwischenschicht 201 wird durch die folgende Formel (8) eingestellt, die Anzahl von Operationen für die zweite Zwischenschicht 202 wird durch die folgende Formel (9) eingestellt und die Anzahl von Operationen für die Ausgangsschicht 203 wird durch die folgende Formel (10) eingestellt. Es ist festzuhalten, dass die Anzahl zugewiesener Rechner
302 für jede Schicht in den Formeln (8) bis (10) einzeln eingestellt wird, jedoch für jede Schicht dieselbe Anzahl zugewiesener Rechner
302 eingestellt werden kann.
-
Wenn die Anzahl von Operationen für jede Schicht des neuronalen Netzes eingestellt wird, wird die Anzahl von Operationen für jede Schicht des neuronalen Netzes durch die Reduziereinheit 104 für neuronale Netze unter Verwendung eines Reduzierverfahrens wie z. B. Beschneidung reduziert. Vier Takte der Berechnungsverarbeitung in der ersten Zwischenschicht 201 werden reduziert, vier Takte der Berechnungsverarbeitung in der zweiten Zwischenschicht 202 werden reduziert und zwei Takte der Berechnungsverarbeitung in der Ausgangsschicht 203 werden reduziert. Auf diese Weise kann die Berechnungsverarbeitung mit einer relativ kleinen Anzahl von (z. B. acht) zugewiesenen Rechnern 302 durch Setzen der Anzahl von Operationen für jede Schicht des neuronalen Netzes durch die Einheit 103 zum Einstellen der Anzahl von Operationen durchgeführt werden und somit kann der Befestigungsumfang der Betriebsvorrichtung 140 reduziert werden.
-
Die Einheit
103 zum Einstellen der Anzahl von Operationen ist nicht auf die Konfiguration beschränkt, in der die Anzahl von Operationen des reduzierten neuronalen Netzes durch Subtrahieren eines Rests, der durch Teilen der Anzahl von Operationen, die für die Berechnungsverarbeitung des neuronalen Netzes erforderlich ist, durch die Anzahl zugewiesener Rechner
302 erhalten wird, von der Anzahl von Operationen eingestellt wird. Es ist ausreichend, dass die Einheit
103 zum Einstellen der Anzahl von Operationen ein ganzzahliges Vielfaches der Anzahl zugewiesener Rechner
302 einstellt. Zum Beispiel kann die Einheit
103 zum Einstellen der Anzahl von Operationen die Anzahl von Operationen unter Verwendung der folgenden Formel (11) einstellen.
(n = 0, 1, 2 usw., wobei die Anzahl von Operationen nach der Reduzierung eine positive Zahl ist)
-
Wenn n = 0 ist Formel (11) gleich Formel (6). Wenn n = 1 wird die Anzahl von Operationen durch die folgende Formel (12) zu 40 Takten eingestellt. Wenn die Anzahl von Operationen zu 40 Takten eingestellt ist, führt die Reduziereinheit
104 für neuronale Netze die Beschnittverarbeitung durch, um die Anzahl von Operationen, die 78 - 40 = 38 Takten entspricht, zu reduzieren. In diesem Fall ist es nötig, die Verschlechterung der Erkennungsgenauigkeit zu berücksichtigen, da die Anzahl von Löschungen größer als die Anzahl von Operationen, die aus Formel (6) erhalten wird, ist, jedoch kann die Verarbeitungszeit T für einen Arbeitszyklus verkürzt werden. Das heißt, die Verarbeitungszeit T für drei Arbeitszyklen ist für die Berechnungsverarbeitung des neuronalen Netzes erforderlich, wenn n = 0, und die Verarbeitung kann für die Berechnungsverarbeitung des neuronalen Netzes in der Verarbeitungszeit T für zwei Arbeitszyklen beendet werden, wenn n = 1. Es ist festzuhalten, dass der Wert von n durch den Anwender beliebig eingestellt werden kann oder im Voraus eingestellt werden kann.
-
Die Einheit
103 zum Einstellen der Anzahl von Operationen ist nicht auf die Konfiguration beschränkt, in der die Anzahl von Operationen des reduzierten neuronalen Netzes zu einem ganzzahligen Vielfachen der Anzahl zugewiesener Rechner
302 eingestellt ist. Die Einheit
103 zum Einstellen der Anzahl von Operationen stellt nicht notwendigerweise die Anzahl von Operationen des reduzierten neuronalen Netzes zu einem ganzzahligen Vielfachen der zugewiesenen Anzahl der Rechner
302 ein. Die Einheit
103 zum Einstellen der Anzahl von Operationen kann die Anzahl von Operationen des reduzierten neuronalen Netzes derart einstellen, dass ein Rest, der durch Teilen der Anzahl von Operationen des neuronalen Netzes vor der Reduzierung durch die Anzahl zugewiesener Rechner
302 erhalten wird, die Hälfte oder mehr der Anzahl zugewiesener Rechner
302 ist. Zum Beispiel kann die Einheit
103 zum Einstellen der Anzahl von Operationen die Anzahl von Operationen unter Verwendung der folgenden Formel (13) einstellen. Es ist festzuhalten, dass k gleich 1/2 oder weniger der Anzahl zugewiesener Rechner
302, die durch die Rechnerzuweisungseinheit
102 eingestellt ist, ist.
-
In Formel (13) wird die Anzahl von Operationen nach der Reduzierung abhängig vom Wert von m geändert. Zum Beispiel wird die Anzahl von Operationen zu 60 Takten eingestellt, wenn m = 0, wird die Anzahl von Operationen zu 59 Takten eingestellt, wenn m = 1, und wird die Anzahl von Operationen zu (60 - k) Takten eingestellt, wenn m = k. Wie in 12 veranschaulicht ist, werden dann, wenn die Anzahl von Operationen nach der Reduzierung 59 Takte ist, lediglich 19 Rechner 302 aus den zwanzig Rechnern 302 in der Berechnungsverarbeitung des dritten Arbeitszyklus verwendet und ein Rechner 302 wird nicht verwendet. Deshalb verschlechtert sich die Verwendungseffizienz des Rechners 302, jedoch kann eine Reduzierungsrate des neuronalen Netzes flexibel gemäß der Erkennungsgenauigkeit des reduzierten neuronalen Netzes geändert werden. Es ist festzuhalten, dass der Wert von m durch den Anwender beliebig eingestellt werden kann oder im Voraus eingestellt werden kann.
-
[Zweite Ausführungsform]
-
Im Folgenden wird ein System für autonomes Fahren gemäß einer zweiten Ausführungsform beschrieben. Das System für autonomes Fahren gemäß der zweiten Ausführungsform ist von dem der ersten Ausführungsform dahingehend verschieden, dass ein neuronales Netz durch Anpassen der Anzahl zugewiesener Rechner während des Überprüfens der Erkennungsgenauigkeit des neuronalen Netzes reduziert wird. Deshalb werden Konfigurationen ähnlich denen der ersten Ausführungsform nicht beschrieben. 13 ist ein Blockdiagramm des Systems für autonomes Fahren gemäß der zweiten Ausführungsform. In 13 werden dieselben Blöcke wie die des Systems für autonomes Fahren der ersten Ausführungsform durch dieselben Bezugszeichen bezeichnet.
-
Wie in 13 veranschaulicht ist, ist die Reduziervorrichtung 100 für neuronale Netze gemäß der zweiten Ausführungsform mit einer Prüfdatenhalteeinheit 106 und einer Erkennungsgenauigkeitsprüfeinheit 107 als eine Funktion des Prüfens der Erkennungsgenauigkeit des neuronalen Netzes versehen. In der Prüfdatenhalteeinheit 106 sind ein Prüfwert und ein korrekter Wert als Prüfdaten zum Prüfen der Erkennungsgenauigkeit eines reduzierten neuronalen Netzes gespeichert. Die Erkennungsgenauigkeitsprüfeinheit 107 berechnet die Erkennungsgenauigkeit des reduzierten neuronalen Netzes und prüft die Erkennungsgenauigkeit durch Vergleichen der Erkennungsgenauigkeit mit einer vorgegebenen Zielgenauigkeit. In diesem Fall gibt die Erkennungsgenauigkeitsprüfeinheit 107 den Prüfwert, der von der Prüfdatenhalteeinheit 106 gelesen wurde, in das reduzierte neuronale Netz ein und vergleicht einen Ausgangswert, der aus dem neuronalen Netz ausgeben wird, mit dem korrekten Wert, der aus der Prüfdatenhalteeinheit 106 gelesen wird, um die Erkennungsgenauigkeit zu berechnen. Dann vergleicht die Erkennungsgenauigkeitsprüfeinheit 107 die Erkennungsgenauigkeit mit der Zielgenauigkeit, um die Erkennungsgenauigkeit mit der Zielgenauigkeit als Bezug zu prüfen.
-
Wenn die Erkennungsgenauigkeit, die durch die Erkennungsgenauigkeitsprüfeinheit 107 überprüft wurde, kleiner als die Zielgenauigkeit ist, teilt die Erkennungsgenauigkeitsprüfeinheit 107 der Rechnerzuweisungseinheit 102 eine Anweisung mit, die Anzahl zugewiesener Rechner zu erhöhen. Wenn die Anweisung, die Anzahl zugewiesener Rechner zu erhöhen, von der Erkennungsgenauigkeitsprüfeinheit 107 empfangen wird, erhöht die Rechnerzuweisungseinheit 102 die Anzahl zugewiesener Rechner um eins und aktualisiert die Anzahl zugewiesener Rechner. Die Einheit 103 zum Einstellen der Anzahl von Operationen stellt die Anzahl von Operationen des reduzierten neuronalen Netzes auf der Grundlage der aktualisierten Anzahl zugewiesener Rechner ein. Andererseits teilt dann, wenn die Erkennungsgenauigkeit, die durch die Erkennungsgenauigkeitsprüfeinheit 107 überprüft wurde, gleich oder größer als die Zielgenauigkeit ist, die Erkennungsgenauigkeitsprüfeinheit 107 der Rechnerzuweisungseinheit 102 eine Anweisung, die Anzahl zugewiesener Rechner zu reduzieren, mit. Wenn die Anweisung, die Anzahl zugewiesener Rechner zu reduzieren, von der Erkennungsgenauigkeitsprüfeinheit 107 empfangen wird, reduziert die Rechnerzuweisungseinheit 102 die Anzahl zugewiesener Rechner um eins und aktualisiert die Anzahl zugewiesener Rechner. Die Einheit 103 zum Einstellen der Anzahl von Operationen stellt die Anzahl von Operationen des reduzierten neuronalen Netzes auf der Grundlage der aktualisierten Anzahl zugewiesener Rechner ein.
-
Als Beispiel wird eine spezifische Beschreibung mit dem neuronalen Netz, das in
2 veranschaulicht ist, ähnlich zur ersten Ausführungsform gegeben. Die Anzahl von Operationen des neuronalen Netzes vor der Reduzierung ist 78 Takte. Wenn die Anzahl zugewiesener Rechner durch die Rechnerzuweisungseinheit
102 zu 20 eingestellt ist, wird die Anzahl von Operationen durch die Einheit
103 zum Einstellen der Anzahl von Operationen unter Verwendung der folgenden Formel (14) zu 60 Takten eingestellt. Die Reduziereinheit
104 für neuronale Netze reduziert 18 Takte der Berechnungsverarbeitung des neuronalen Netzes, um das neuronale Netz zu reduzieren.
-
Dann prüft die Erkennungsgenauigkeitsprüfeinheit
107 die Erkennungsgenauigkeit für das reduzierte neuronale Netz. Wenn die Erkennungsgenauigkeit, die durch die Erkennungsgenauigkeitsprüfeinheit
107 überprüft wurde, kleiner als die Zielgenauigkeit ist, wird die Anzahl zugewiesener Rechner um eins erhöht und durch die Rechnerzuweisungseinheit
102 zu 21 aktualisiert. Wenn die zugewiesene Anzahl von Rechnern aktualisiert ist, setzt die Rechnerzuweisungseinheit
102 die Anzahl von Operationen unter Verwendung der folgenden Formel (15) zu 63 Takten zurück. Die Reduziereinheit
104 für neuronale Netze reduziert 15 Takte der Berechnungsverarbeitung des neuronalen Netzes, um das neuronale Netz erneut zu reduzieren. Da die Anzahl von Operationen des neuronalen Netzes von 60 Takten zu 63 Takten erhöht wird, kann die Verbesserung der Erkennungsgenauigkeit erwartet werden.
-
Dann prüft die Erkennungsgenauigkeitsprüfeinheit 107 die Erkennungsgenauigkeit für das erneut reduzierte neuronale Netz. Wenn die Erkennungsgenauigkeit, die durch die Erkennungsgenauigkeitsprüfeinheit 107 überprüft wurde, gleich oder größer als die Zielgenauigkeit ist, wird der Bilderkennungseinheit 112 ein Parameter des neuronalen Netzes mitgeteilt und zur Bilderkennungsverarbeitung an einem Bild, das von der Kamera 120 eingegeben wird, verwendet. Andererseits wird dann, wenn die Erkennungsgenauigkeit, die durch die Erkennungsgenauigkeitsprüfeinheit 107 überprüft wurde, kleiner als die Zielgenauigkeit ist, die Anzahl zugewiesener Rechner durch die Rechnerzuweisungseinheit 102 wieder um eins erhöht. Durch Wiederholen dieser Verarbeitung kann die Erkennungsgenauigkeit des neuronalen Netzes in der Nähe der Zielgenauigkeit gestaltet werden.
-
Es ist festzuhalten, dass die vorliegende Erfindung nicht auf die Konfiguration beschränkt ist, in der die Anweisung, die Anzahl zugewiesener Rechner zu erhöhen, von der Erkennungsgenauigkeitsprüfeinheit 107 zur Rechnerzuweisungseinheit 102 zurückgeführt wird, um die Erkennungsgenauigkeit zu verbessern, wenn die Erkennungsgenauigkeit des reduzierten neuronalen Netzes unzureichend ist. Wenn die Erkennungsgenauigkeit des reduzierten neuronalen Netzes größer als nötig ist, kann eine Anweisung, die Anzahl zugewiesener Rechner zu reduzieren, von der Erkennungsgenauigkeitsprüfeinheit 107 zur Rechnerzuweisungseinheit 102 zurückgeführt werden, um die Erkennungsgenauigkeit zur Zielgenauigkeit abzusenken.
-
Wie oben beschrieben ist, können im System für autonomes Fahren gemäß der zweiten Ausführungsform, die ähnlich der ersten Ausführungsform ist, die Verarbeitungszeit der Berechnungsverarbeitung verkürzt werden und die Verwendungseffizienz der mehreren Rechner verbessert werden.
-
Zusätzlich kann die Anzahl zugewiesener Rechner für die Berechnungsverarbeitung des neuronalen Netzes gemäß der Erkennungsgenauigkeit des reduzierten neuronalen Netzes angepasst werden. Entsprechend kann die Anzahl von Operationen des neuronalen Netzes zu einem derartigen Umfang reduziert werden, dass die Erkennungsgenauigkeit des neuronalen Netzes bei der Zielgenauigkeit gehalten werden kann.
-
[Dritte Ausführungsform]
-
Im Folgenden wird ein System für autonomes Fahren gemäß einer dritten Ausführungsform beschrieben. Das System für autonomes Fahren gemäß der dritten Ausführungsform ist von dem der zweiten Ausführungsform dahingehend verschieden, dass ein neuronales Netz durch Anpassen der Anzahl von Operationen während des Überprüfens der Erkennungsgenauigkeit des neuronalen Netzes reduziert wird. Deshalb werden Konfigurationen ähnlich denen der ersten Ausführungsform nicht beschrieben. 14 ist ein Blockdiagramm des Systems für autonomes Fahren gemäß der dritten Ausführungsform. In 14 werden dieselben Blöcke wie die des Systems für autonomes Fahren der zweiten Ausführungsform durch dieselben Bezugszeichen bezeichnet.
-
Wie in 14 veranschaulicht ist, ist die Reduziervorrichtung 100 für neuronale Netze gemäß der dritten Ausführungsform konfiguriert, die Anzahl von Operationen der Einheit 103 zum Einstellen der Anzahl von Operationen auf der Grundlage eines Prüfergebnisses der Erkennungsgenauigkeitsprüfeinheit 107 anzupassen. Das heißt, wenn die Erkennungsgenauigkeit, die durch die Erkennungsgenauigkeitsprüfeinheit 107 überprüft wurde, kleiner als die Zielgenauigkeit ist, teilt die Erkennungsgenauigkeitsprüfeinheit 107 der Einheit 103 zum Einstellen der Anzahl von Operationen eine Anweisung, die Anzahl von Operationen zu erhöhen, mit. Wenn die Anweisung, die Anzahl von Operationen zu erhöhen, von der Erkennungsgenauigkeitsprüfeinheit 107 empfangen wird, erhöht die Einheit 103 zum Einstellen der Anzahl von Operationen die Anzahl von Operationen eines reduzierten neuronalen Netzes und setzt die Anzahl von Operationen zurück. Andererseits teilt dann, wenn die Erkennungsgenauigkeit, die durch die Erkennungsgenauigkeitsprüfeinheit 107 überprüft wurde, gleich oder größer als die Zielgenauigkeit ist, die Erkennungsgenauigkeitsprüfeinheit 107 der Einheit 103 zum Einstellen der Anzahl von Operationen eine Anweisung, die Anzahl von Operationen zu senken, mit. Wenn die Anweisung, die Anzahl von Operationen zu senken, von der Erkennungsgenauigkeitsprüfeinheit 107 empfangen wird, senkt die Einheit 103 zum Einstellen der Anzahl von Operationen die Anzahl von Operationen eines reduzierten neuronalen Netzes und setzt die Anzahl von Operationen zurück.
-
Als Beispiel wird eine spezifische Beschreibung mit dem neuronalen Netz in
2 ähnlich zur ersten Ausführungsform gegeben. Die Anzahl von Operationen des neuronalen Netzes vor der Reduzierung ist 78 Takte. Wenn die Anzahl durch die Rechnerzuweisungseinheit
102 zugewiesener Rechner zu 20 eingestellt ist, wird die Anzahl von Operationen durch die Einheit
103 zum Einstellen der Anzahl von Operationen unter Verwendung der folgenden Formel (16) eingestellt. Als Beispiel stellt dann, wenn n = 2 eingestellt ist, die Einheit
103 zum Einstellen der Anzahl von Operationen die Anzahl von Operationen zu 20 Takten ein. Die Reduziereinheit
104 für neuronale Netze reduziert 58 Takte der Berechnungsverarbeitung des neuronalen Netzes, um das neuronale Netz zu reduzieren.
(n = 0, 1, 2 usw., wobei die Anzahl von Operationen nach der Reduzierung eine positive Zahl ist)
-
Dann prüft die Erkennungsgenauigkeitsprüfeinheit 107 die Erkennungsgenauigkeit für das reduzierte neuronale Netz. Wenn die Erkennungsgenauigkeit, die durch die Erkennungsgenauigkeitsprüfeinheit 107 überprüft wurde, kleiner als die Zielgenauigkeit ist, wird der Wert von n in Formel (16) durch die Einheit 103 zum Einstellen der Anzahl von Operationen um eins reduziert, derart, dass n = 1 und die Anzahl von Operationen zu 40 Takten zurückgesetzt wird. Die Reduziereinheit 104 für neuronale Netze reduziert 38 Takte der Berechnungsverarbeitung des neuronalen Netzes, um das neuronale Netz erneut zu reduzieren. Da die Anzahl von Operationen des neuronalen Netzes von 20 Takten zu 40 Takten erhöht wird, kann die Verbesserung der Erkennungsgenauigkeit erwartet werden.
-
Dann prüft die Erkennungsgenauigkeitsprüfeinheit 107 die Erkennungsgenauigkeit für das erneut reduzierte neuronale Netz. Wenn die Erkennungsgenauigkeit, die durch die Erkennungsgenauigkeitsprüfeinheit 107 überprüft wurde, gleich oder größer als die Zielgenauigkeit ist, wird der Bilderkennungseinheit 112 ein Parameter des neuronalen Netzes mitgeteilt und zur Bilderkennungsverarbeitung an einem Bild, das von der Kamera 120 eingegeben wird, verwendet. Andererseits wird dann, wenn die Erkennungsgenauigkeit, die durch die Erkennungsgenauigkeitsprüfeinheit 107 überprüft wurde, kleiner als die Zielgenauigkeit ist, der Wert von n in Formel (16) durch die Einheit 103 zum Einstellen der Anzahl von Operationen wieder um eins erhöht. Durch Wiederholen dieser Verarbeitung kann die Erkennungsgenauigkeit des neuronalen Netzes in der Nähe der Zielgenauigkeit gestaltet werden.
-
Es ist festzuhalten, dass die vorliegende Erfindung nicht auf die Konfiguration beschränkt ist, in der die Anweisung, die Anzahl von Operationen zu erhöhen, von der Erkennungsgenauigkeitsprüfeinheit 107 zur Einheit 103 zum Einstellen der Anzahl von Operationen zurückgeführt wird, um die Erkennungsgenauigkeit zu verbessern, wenn die Erkennungsgenauigkeit des reduzierten neuronalen Netzes unzureichend ist. Wenn die Erkennungsgenauigkeit des reduzierten neuronalen Netzes größer als nötig ist, kann eine Anweisung, die Anzahl von Operationen zu reduzieren, von der Erkennungsgenauigkeitsprüfeinheit 107 zur Einheit 103 zum Einstellen der Anzahl von Operationen zurückgeführt werden, um die Erkennungsgenauigkeit zur Zielgenauigkeit abzusenken.
-
Wie oben beschrieben ist, kann im System für autonomes Fahren gemäß der dritten Ausführungsform, die ähnlich zur zweiten Ausführungsform ist, die Verarbeitungszeit der Berechnungsverarbeitung verkürzt werden und kann die Verwendungseffizienz der mehreren Rechner verbessert werden.
-
Zusätzlich kann die Anzahl von Operationen des neuronalen Netzes gemäß der Erkennungsgenauigkeit des reduzierten neuronalen Netzes angepasst werden.
-
Entsprechend kann die Anzahl von Operationen des neuronalen Netzes zu einem derartigen Umfang reduziert werden, dass die Erkennungsgenauigkeit des neuronalen Netzes bei der Zielgenauigkeit gehalten werden kann.
-
[Vierte Ausführungsform]
-
Im Folgenden wird ein System für autonomes Fahren gemäß einer vierten Ausführungsform beschrieben. Das System für autonomes Fahren gemäß der vierten Ausführungsform ist von dem der ersten Ausführungsform dahingehend verschieden, dass die Anzahl von Operationen eines reduzierten neuronalen Netzes durch Anpassen der Anzahl zugewiesener Rechner korrigiert wird. Deshalb werden Konfigurationen ähnlich denen der ersten Ausführungsform nicht beschrieben. 15 ist ein Blockdiagramm des Systems für autonomes Fahren gemäß der vierten Ausführungsform. In 15 werden dieselben Blöcke wie die des Systems für autonomes Fahren der ersten Ausführungsform durch dieselben Bezugszeichen bezeichnet.
-
Die Reduziervorrichtung 100 für neuronale Netze gemäß der vierten Ausführungsform ist mit einer Einheit 108 zum Korrigieren der Anzahl von Operationen als eine Funktion zum Korrigieren der Anzahl von Operationen des reduzierten neuronalen Netzes versehen. Die Einheit 108 zum Korrigieren der Anzahl von Operationen korrigiert die Anzahl von Operationen des reduzierten neuronalen Netzes auf der Grundlage der Anzahl zugewiesener Rechner, die durch die Rechnerzuweisungseinheit 102 eingestellt wurde. In diesem Fall korrigiert die Einheit 108 zum Korrigieren der Anzahl von Operationen die Anzahl von Operationen des neuronalen Netzes für das reduzierte neuronale Netz derart, dass sie ein ganzzahliges Vielfaches der Anzahl zugewiesener Rechner, die durch die Rechnerzuweisungseinheit 102 eingestellt wurde, ist.
-
Als Beispiel wird eine spezifische Beschreibung mit dem neuronalen Netz, das in
2 veranschaulicht ist, entsprechend der ersten Ausführungsform gegeben. Die Anzahl von Operationen des neuronalen Netzes vor der Reduzierung ist 78 Takte. Die Anzahl von Operationen des reduzierten neuronalen Netzes wird durch die Einheit
103 zum Einstellen der Anzahl von Operationen zu 39 Takten eingestellt. Die Anzahl von Operationen des reduzierten neuronalen Netzes ist die Hälfte der Anzahl von Operationen eines neuronalen Netzes vor der Reduzierung. Die Reduziereinheit
104 für neuronale Netze reduziert 39 Takte der Berechnungsverarbeitung, um das neuronale Netz zu reduzieren. Zusätzlich wird dann, wenn die Anzahl zugewiesener Rechner durch die Rechnerzuweisungseinheit
102 zu 20 eingestellt ist, die Anzahl von Operationen des reduzierten neuronalen Netzes durch die Einheit
108 zum Korrigieren der Anzahl von Operationen unter Verwendung der folgenden Formel (17) korrigiert.
-
In Formel (17) repräsentiert div(A, B) eine Verarbeitung des Teilens von A durch B und INT(X) repräsentiert eine Verarbeitung des Abrundens der Dezimalstelle von X. In einem Beispiel von Formel (17) div(39, 20) = 1 und INT(div(mod(39, 20), 20) + 0,5) = 1 und somit ist Formel (17) gleich (1 + 1) * 20 und die Anzahl von Betriebstakten nach der Korrektur wird zu 40 Takten eingestellt. Als Ergebnis kann die Anzahl von-Operationen des reduzierten neuronalen Netzes derart korrigiert werden, dass sie ein ganzzahliges Vielfaches der Anzahl zugewiesener Rechner ist.
-
Wie oben beschrieben ist, können im System für autonomes Fahren gemäß der vierten Ausführungsform der vorliegenden Erfindung, die der ersten Ausführungsform ähnlich ist, die Verarbeitungszeit der Berechnungsverarbeitung verkürzt werden und die Verwendungseffizienz der mehreren Rechner verbessert werden. Zusätzlich ist es möglich, zunächst das neuronale Netz zu reduzieren und die Anzahl von Operationen des reduzierten neuronalen Netzes zu korrigieren, wobei die Anzahl zugewiesener Rechner berücksichtigt wird.
-
Es ist festzuhalten, dass die Reduziervorrichtung für neuronale Netze, die zur Bilderkennungsverarbeitung verwendet wird, in jeder der oben erwähnten Ausführungsformen beschrieben wurde, jedoch die vorliegende Erfindung nicht auf diese Konfiguration beschränkt ist. Die Reduziervorrichtung für neuronale Netze kann zusätzlich zu einer weiteren Erkennungsverarbeitung wie z. B. einer Spracherkennungsverarbeitung auch auf die Reduzierung eines neuronalen Netzes, das zur Vorhersageverarbeitungzukünftiger Daten verwendet wird, angewendet werden.
-
Zusätzlich ist in jeder der oben erwähnten Ausführungsformen die Reduziervorrichtung 100 für neuronale Netze im Server 20 vorgesehen, jedoch kann die Reduziervorrichtung 100 für neuronale Netze im Fahrzeug 10 vorgesehen sein.
-
Zusätzlich sind die Einheit 103 zum Einstellen der Anzahl von Operationen und die Reduziereinheit 104 für neuronale Netze in jeder der oben erwähnten Ausführungsformen konfiguriert, die Anzahl von Operationen des neuronalen Netzes vor der Reduzierung der Betriebsvorrichtung 140 zu berechnen, jedoch ist die vorliegende Erfindung nicht auf diese Konfiguration beschränkt. Die Anzahl von Operationen des neuronalen Netzes vor der Reduzierung kann im Voraus in der Halteeinheit 101 für neuronale Netze gehalten werden. Zusätzlich kann die Reduziervorrichtung 100 für neuronale Netze mit einer Einheit zum Berechnen der Anzahl von Operationen versehen sein, die die Anzahl von Operationen des neuronalen Netzes vor der Reduzierung berechnet.
-
Zusätzlich stellt die Rechnerzuweisungseinheit 102 in jeder der oben erwähnten Ausführungsformen die Anzahl von Rechnern 302, die der Berechnungsverarbeitung des neuronalen Netzes zugewiesen.werden soll, ein, jedoch ist die vorliegende Erfindung nicht auf diese Konfiguration beschränkt. Die Rechnerzuweisungseinheit 102 kann einen Anteil, der der Berechnungsverarbeitung des neuronalen Netzes zugewiesen werden soll, aus der Gesamtanzahl von Rechnern 302 einstellen.
-
Zusätzlich stellt die Einheit 103 zum Einstellen der Anzahl von Operationen in der oben genannten vierten Ausführungsform die Anzahl von Operationen des neuronalen Netzes ein, jedoch ist die vorliegende Erfindung nicht auf diese Konfiguration beschränkt. Die Einheit 103 zum Einstellen der Anzahl von Operationen kann eine Reduzierungsrate des neuronalen Netzes statt der Anzahl von Operationen des neuronalen Netzes einstellen.
-
Zusätzlich ist die Einheit 108 zum Korrigieren der Anzahl von Operationen in der oben genannten vierten Ausführungsform konfiguriert, die Anzahl von Operationen des reduzierten neuronalen Netzes derart zu korrigieren, dass sie ein ganzzahliges Vielfaches der Anzahl zugewiesener Rechner ist, jedoch ist die vorliegende Erfindung nicht auf diese Konfiguration beschränkt. Die Einheit 108 zum Korrigieren der Anzahl von Operationen kann die Anzahl von Operationen für jede Schicht des neuronalen Netzes korrigieren und kann die Anzahl von Operationen des neuronalen Netzes derart korrigieren, dass ein Rest, der durch Division durch die Anzahl zugewiesener Rechner erhalten wird, gleich oder größer als die Hälfte der Anzahl zugewiesener Rechner ist.
-
Wie oben beschrieben ist, ist die Reduziervorrichtung 100 für neuronale Netze gemäß der vorliegenden Ausführungsform die Reduziervorrichtung 100 für neuronale Netze, die die Anzahl von Operationen des neuronalen Netzes der Betriebsvorrichtung 140, die die mehreren Rechner 302 enthält, durch Reduzieren des neuronalen Netzes reduziert, und enthält Folgendes: die Rechnerzuweisungseinheit 102, die die Anzahl der Rechner 302, die der Berechnungsverarbeitung des neuronalen Netzes zugewiesen sind, einstellt; die Einheit 103 zum Einstellen der Anzahl von Operationen, die die Anzahl von Operationen des reduzierten neuronalen Netzes auf der Grundlage der Anzahl der zugewiesenen Rechner einstellt 302; und die Reduziereinheit 104 für neuronale Netze, die das neuronale Netz derart reduziert, dass die Anzahl von Operationen des neuronalen Netzes der Betriebsvorrichtung 140 gleich der Anzahl von Operationen, die durch die Einheit 103 zum Einstellen der Anzahl von Operationen eingestellt ist, ist.
-
Gemäß dieser Konfiguration wird die Anzahl von Operationen, die für die Berechnungsverarbeitung des neuronalen Netzes erforderlich ist, unter Berücksichtigung der Anzahl für die Berechnungsverarbeitung des neuronalen Netzes zugewiesener Rechner 302 reduziert. Das heißt, die Anzahl von Operationen pro Arbeitszyklus, die durch die mehreren Rechner 302, die der Berechnungsverarbeitung des neuronalen Netzes zugewiesen sind, gleichzeitig verarbeitet werden kann, wird berücksichtigt. Entsprechend kann die Anzahl von Operationen des neuronalen Netzes derart reduziert werden, dass ein Arbeitszyklus, der lediglich durch eine kleine Anzahl von Rechnern 302 bearbeitet wird, beseitigt wird, um die Verarbeitungszeit der Berechnungsverarbeitung zu verkürzen und die Verwendungseffizienz der mehreren Rechner 302 zu verbessern.
-
In der Reduziervorrichtung 100 für neuronale Netze gemäß der vorliegenden Ausführungsform stellt die Einheit 103 zum Einstellen der Anzahl von Operationen die Anzahl von Operationen des reduzierten neuronalen Netzes derart ein, dass sie kleiner als die Anzahl von Operationen des neuronalen Netzes vor der Reduzierung ist und ein ganzzahliges Vielfaches der Anzahl zugewiesener Rechner 302, die durch die Rechnerzuweisungseinheit 102 eingestellt ist, ist. Gemäß dieser Konfiguration wird die Berechnungsverarbeitung durch die mehreren Rechner 302, die der Berechnungsverarbeitung des neuronalen Netzes zugewiesen sind, gleichzeitig gestartet und wird die Berechnungsverarbeitung gleichzeitig beendet. Entsprechend liegt kein Arbeitszyklus vor, in dem eine Berechnung lediglich durch einige der Rechner 302 durchgeführt wird, und die Verarbeitungszeit der Berechnungsverarbeitung kann verkürzt werden und die Verwendungseffizienz der mehreren Rechner 302 kann maximiert werden.
-
In der Reduziervorrichtung 100 für neuronale Netze gemäß der vorliegenden Ausführungsform stellt die Einheit 103 zum Einstellen der Anzahl von Operationen die Anzahl von Operationen des reduzierten neuronalen Netzes derart ein, dass ein Rest, der durch Teilen der Anzahl von Operationen des neuronalen Netzes durch die Anzahl zugewiesener Rechner 302, die durch die Rechnerzuweisungseinheit 102 eingestellt ist, erhalten wird, die Hälfte oder mehr der mehreren zugewiesenen Rechner 302 ist. Gemäß dieser Konfiguration wird die Berechnungsverarbeitung durch die mehreren Rechner 302, die der Berechnungsverarbeitung des neuronalen Netzes zugewiesen sind, gleichzeitig gestartet und die Berechnungsverarbeitung wird durch die Rechner 302, die die Hälfte oder mehr der mehreren Rechner 302 sind, gleichzeitig beendet. Entsprechend liegt kein Arbeitszyklus vor, in dem eine Berechnung lediglich durch eine kleine Anzahl der Rechner 302 durchgeführt wird, und die Verarbeitungszeit der Berechnungsverarbeitung kann verkürzt werden und die Verwendungseffizienz der mehreren Rechner 302 kann verbessert werden.
-
In der Reduziervorrichtung 100 des neuronalen Netzes gemäß der vorliegenden Ausführungsform besitzt das neuronale Netz mehrere Schichten, stellt die Rechnerzuweisungseinheit 102 die Anzahl zugewiesener Rechner 302 für jede Schicht des neuronalen Netzes ein und stellt die Einheit 103 zum Einstellen der Anzahl von Operationen die Anzahl von Operationen des reduzierten neuronalen Netzes für jede Schicht des neuronalen Netzes ein. Gemäß dieser Konfiguration kann die Berechnungsverarbeitung durch eine relativ kleine Anzahl von Rechnern durchgeführt werden und somit kann der Befestigungsumfang der Betriebsvorrichtung 140 reduziert werden.
-
In der Reduziervorrichtung 100 für neuronale Netze gemäß der vorliegenden Ausführungsform reduziert die Reduziereinheit 104 für neuronale Netze das neuronale Netz durch eine Beschnittverarbeitung. Gemäß dieser Konfiguration ist es möglich, die Anzahl von Operationen des neuronalen Netzes zu reduzieren, während eine Verschlechterung der Genauigkeit des neuronalen Netzes durch die Beschnittverarbeitung unterdrückt wird.
-
Die Reduziervorrichtung 100 für neuronale Netze gemäß der vorliegenden Ausführungsform enthält eine Genauigkeitsprüfeinheit (die Erkennungsgenauigkeitsprüfeinheit 107, die die Genauigkeit des reduzierten neuronalen Netzes berechnet und die Genauigkeit mit der Zielgenauigkeit vergleicht.
-
Die Rechnerzuweisungseinheit 102 stellt die Anzahl zugewiesener Rechner 302 derart ein, dass sie klein ist, wenn die Genauigkeit gleich oder größer als die Zielgenauigkeit ist, und die Rechnerzuweisungseinheit 102 stellt die Anzahl zugewiesener Rechner 302 derart ein, dass sie groß ist, wenn die Genauigkeit kleiner als die Zielgenauigkeit ist. Gemäß dieser Konfiguration kann die Anzahl für die Berechnungsverarbeitung des neuronalen Netzes zugewiesener Rechner 302 gemäß der Genauigkeit des reduzierten neuronalen Netzes angepasst werden. Entsprechend kann die Anzahl von Operationen des neuronalen Netzes zu einem derartigen Umfang reduziert werden, dass die Genauigkeit des neuronalen Netzes bei der Zielgenauigkeit gehalten werden kann.
-
Die Reduziervorrichtung 100 für neuronale Netze gemäß der vorliegenden Ausführungsform enthält die Genauigkeitsprüfeinheit (die Erkennungsgenauigkeitsprüfeinheit 107, die die Genauigkeit des reduzierten neuronalen Netzes berechnet und die Genauigkeit mit der Zielgenauigkeit vergleicht. Die Einheit 103 zum Einstellen der Anzahl von Operationen stellt die Anzahl von Operationen des reduzierten neuronalen Netzes derart ein, dass sie klein ist, wenn die Genauigkeit gleich oder größer als die Zielgenauigkeit ist, und die Einheit 103 zum Einstellen der Anzahl von Operationen stellt die Anzahl von Operationen des reduzierten neuronalen Netzes derart ein, dass sie groß ist, wenn die Genauigkeit kleiner als die Zielgenauigkeit ist. Gemäß dieser Konfiguration kann die Anzahl von Operationen des neuronalen Netzes gemäß der Genauigkeit des reduzierten neuronalen Netzes angepasst werden. Entsprechend kann die Anzahl von Operationen des neuronalen Netzes zu einem derartigen Umfang reduziert werden, dass die Genauigkeit des neuronalen Netzes bei der Zielgenauigkeit gehalten werden kann.
-
Die Reduziervorrichtung 100 für neuronale Netze gemäß der vorliegenden Ausführungsform ist die Reduziervorrichtung 100 für neuronale Netze, die die Anzahl von Operationen des neuronalen Netzes der Betriebsvorrichtung 140, die die mehreren Rechner 302 enthält, durch Reduzieren des neuronalen Netzes reduziert, und enthält Folgendes: die Einheit 103 zum Einstellen der Anzahl von Operationen, die die Anzahl von Operationen des reduzierten neuronalen Netzes einstellt; die Reduziereinheit 104 für neuronale Netze, die das neuronale Netz derart reduziert, dass die Anzahl von Operationen des neuronalen Netzes der Betriebsvorrichtung 140 gleich der Anzahl von Operationen, die durch die Einheit.103 zum Einstellen der Anzahl von Operationen eingestellt wurde, ist; die Rechnerzuweisungseinheit 102, die die Anzahl für die Berechnungsverarbeitung des neuronalen Netzes zugewiesener Rechner 302 einstellt; und die Einheit 108 zum Korrigieren der Anzahl von Operationen, die die Anzahl von Operationen des reduzierten neuronalen Netzes auf der Grundlage der Anzahl zugewiesener Rechner 302 korrigiert.
-
Gemäß dieser Konfiguration wird die Anzahl von Operationen, die für die Berechnungsverarbeitung des reduzierten neuronalen Netzes erforderlich ist, unter Berücksichtigung der Anzahl für die Berechnungsverarbeitung des neuronalen Netzes zugewiesener Rechner 302 korrigiert. Das heißt, die Anzahl von Operationen pro Arbeitszyklus, die durch die mehreren Rechner 302, die der Berechnungsverarbeitung des neuronalen Netzes zugewiesen sind, gleichzeitig verarbeitet werden kann, wird berücksichtigt. Entsprechend kann die Anzahl von Operationen des neuronalen Netzes derart korrigiert werden, dass ein Arbeitszyklus, der lediglich durch eine kleine Anzahl von Rechnern bearbeitet wird, beseitigt wird, um die Verarbeitungszeit der Berechnungsverarbeitung zu verkürzen und die Verwendungseffizienz der mehreren Rechner 302 zu verbessern.
-
Im oben Genannten wurden die Ausführungsformen der vorliegenden Erfindung genau beschrieben, jedoch ist die vorliegende Erfindung nicht auf die oben beschriebenen Ausführungsformen beschränkt und verschiedene Entwurfsänderungen können vorgenommen werden, ohne vom Geist der vorliegenden Erfindung, der in den Ansprüchen rezitiert ist, abzuweichen. Zum Beispiel wurden die oben beschriebenen Ausführungsformen genau beschrieben, um die vorliegende Erfindung in einer einfach verständlichen Weise zu beschreiben, und sind nicht notwendigerweise auf jene beschränkt, die die gesamte Konfiguration, die oben beschrieben wurde, enthält. Zusätzlich können einige Konfigurationen einer bestimmten Ausführungsform durch Konfigurationen einer weiteren Ausführungsform ersetzt werden und zusätzlich kann eine Konfiguration einer weiteren Ausführungsform einer Konfiguration einer bestimmten Ausführungsform hinzugefügt werden. Ferner kann ein Hinzufügen, ein Entfernen oder ein Ersetzen weiterer Konfigurationen in Bezug auf einige Konfigurationen jeder Ausführungsform vorgenommen werden.
-
Bezugszeichenliste
-
- 100
- Reduziervorrichtung für neuronale Netze
- 102
- Rechnerzuweisungseinheit
- 103
- Einheit zum Einstellen der Anzahl von Operationen
- 104
- Reduziereinheit für neuronale Netze
- 107
- Erkennungsgenauigkeitsprüfeinheit (Genauigkeitsprüfeinheit)
- 108
- Einheit zum Korrigieren der Anzahl von Operationen
- 140
- Betriebsvorrichtung
- 302
- Rechner
-
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 Nicht-Patentliteratur
-
- NPL 1: Song Han, Jeff Pool, John Tran, William J. Dally, „Learning both Weights and Connections for Efficient Neural Networks“, [Online], 30. Oktober 2015, [gesucht am 24. Dezember 2018] [0003]