Knowledge Transfer Between Different Deep Learning Architectures
20210056388 ยท 2021-02-25
Inventors
Cpc classification
G06N3/082
PHYSICS
G06F18/214
PHYSICS
B60W2050/0018
PERFORMING OPERATIONS; TRANSPORTING
International classification
Abstract
The invention relates to a method for converting a first neural network with a first architecture into a second neural network with a second architecture for use in a vehicle controller in order to obtain the knowledge of the first neural network and transfer same to the second neural network. In a first step of the method, a conversion (701) of at least one layer of the first neural network into at least one layer of the second neural network is carried out. In a second step, a random initialization (702) of the at least one converted layer is carried out in the architecture of the second neural network. In a third step, a training process (703) of the at least one converted layer is carried out in the second neural network. In a fourth step, a fine-tuning process (704) of the non-converted layer is carried out in the second neural network or in the entire second neural network. The conversion of the first neural network into the second neural network is carried out in multiple cycles or iterations, wherein for each cycle, the conversion (701), random initialization (702), training (703), and simultaneous fine-tuning (704) steps are carried out.
Claims
1. A method for converting a first neural network with a first architecture into a second neural network with a second architecture for use in a vehicle controller in order to obtain the knowledge of the first neural network and transfer same to the second neural network, the method having the following steps: Conversion (701) of at least one layer of the first neural network into at least one layer of the second neural network; Random initialization (702) of the at least one converted layer in the architecture of the second neural network; Training (703) of the at least one converted layer in the second neural network and simultaneous fine-tuning (704) of the non-converted layer in the second neural network or of the entire second neural network, wherein the conversion of the first neural network into the second neural network is carried out in multiple cycles, wherein for each cycle, the conversion (701), random initialization (702), training (703), and simultaneous fine-tuning (704) steps are carried out.
2. The method according to claim 1, wherein the first architecture of the first neural network is different to the second architecture of the second neural network.
3. The method according to claim 1, additionally having the following step: Transfer of at least one layer of the first neural network without changes into the second neural network.
4. The method according to claim 1, wherein the conversion step comprises the conversion of at least two layers of the first neural network into a layer of the second neural network.
5. The method according to claim 1, wherein the conversion step comprises the conversion of a layer of the first neural network into at least two layers of the second neural network.
6. The method according to claim 1, wherein the conversion step exclusively comprises the conversion of an input layer of the first neural network into the second neural network, wherein the method provides that the remaining layers of the first neural network are transferred without changes into the second neural network.
7. The method according to claim 1, wherein the method provides that the second architecture of the second neural network is to be optimized or respectively to be compressed for hardware running said neural network.
8. The method according to claim 1, additionally having the following steps: Extraction of a subnetwork from the first neural network; Random initialization of the subnetwork in the architecture of the second neural network; Training of the subnetwork in the architecture of the second neural network; Utilization of the subnetwork as an independent neural network.
9. A controller (800) for a vehicle (900) for converting a first neural network into a second neural network, the controller having: the first neural network (1) with a first architecture; the second neural network (2) with a second architecture; wherein the first architecture and the second architecture are different, wherein the first neural network (1) and the second neural network (2) have at least one layer (110, 120, 130, 140, 150, 160), wherein the controller (800) is designed to gradually convert the first neural network (1) into the second neural network (2), wherein the controller (800) is embodied to convert at least one layer (110, 120, 150) of the first neural network (1) into at least one layer (130, 160) of the second neural network (2) in each step, wherein the controller (800) is embodied to randomly initialize and train the at least one converted layer (130) in the second neural network, (2) as well as to subject the non-converted layer (110, 120) or the entire second neural network to a fine-tuning process in each step.
10. The controller (800) according to claim 9, wherein the controller (800) is designed to process the input data by means of the second neural network (2).
11. The controller (800) according to claim 9, wherein the controller (800) is embodied to convert the first neural network (1) of a first vehicle system into the second neural network (2) of a second vehicle system.
12. A vehicle (900) having a controller (800) according to claim 9.
13. A program element which, when run on a controller of a driver assistance system, instructs the controller to perform the method according to claim 1.
14. A computer-readable medium, on which a program element according to claim 13 is stored.
Description
[0079] The figures are shown schematically and are not true to scale. If the same reference numerals are indicated in the following description of the figures, these designate the same or similar elements.
[0080]
[0081]
[0082]
[0083]
[0084]
[0085]
[0086]
[0087]
[0088]
[0089]
[0090] According to an embodiment of the invention, multiple layers to be converted can, in this connection, be converted into a single layer of the second neural network 2. A conversion of a single layer of the first neural network 1 into multiple layers of the second neural network 2 is additionally possible. Furthermore, every possibility therebetween of converting a first number of layers into any second number of layers in the second neural network 2 can also be converted. Consequently, another architecture, compared with the first neural network 1, emerges for the second neural network.
[0091] The advantage of the method for converting targeted layers from the first neural network 1 into the second neural network 2 is that no knowledge from the first neural network 1 is lost. The knowledge is coded in the layers 110, 120, of the first neural network 1, since the knowledge, among other things, has been collected during the operation of the first neural network 1. It should be indicated as a further advantage that the second neural network 2 can be trained with a significantly lower quantity of training data, without reducing the quality. Consequently, the expensive creation of training data is reduced and the training time is additionally reduced. This can be particularly useful if it becomes necessary to switch the neural networks due to a change in the hardware, e.g. the sensors, for the input data and/or due to a change in the hardware of the computing unit. Consequently, time and money can be saved thanks to the method shown in
[0092] The conversion 200 is based on the principle that individual layers 110 of the first neural network 1 are gradually converted in each cycle and, following a random initialization, can be subsequently trained and refined in the remaining, still existing structure of the first neural network 1. The first neural network 1 can be a pre-trained neural network or an existing neural network of a previous product generation. Furthermore, the knowledge of the first neural network 1, which is coded in the weights and layers, is converted or respectively transferred into the second neural network 2. As a result, the knowledge regarding multiple product generations can be obtained. The second neural network 2 is particularly provided for use on a controller of a vehicle.
[0093]
[0094]
[0095]
[0096] The first neural network 1 can be converted into the second neural network 2 with the aid of the gradual method described. Following the conclusion of the conversion, the second neural network 2 can be refined with the aid of the fine-tuning method and further datasets for the desired scenario. The fine-tuning can be particularly used to meet the requirements of the second architecture. The converted neural network can subsequently be used on a controller of a driver assistance system, in order to recognize e.g. objects or voice commands.
[0097]
[0098]
[0099]
[0100]
[0101]
LIST OF REFERENCE NUMERALS
[0102] 110 Layer to be converted of the first neural network [0103] 120 Layer which is transferred without changes into the second neural network [0104] 130 Randomly initialized layer [0105] 140 Layer trained in the second neural network [0106] 150 Input layer to be converted of the first neural network [0107] 160 Input layer to be converted of the second neural network [0108] 200 Conversion of the first neural network into the second neural network [0109] 210 Conversion into the second neural network and random initialization [0110] 220 Adoption of the layers without changes in the second neural network [0111] 230 Training of the converted layer in the second neural network [0112] 240 Fine-tuning of the adopted layer in the second neural network [0113] 250 Conversion of the input layer for the second neural network [0114] 701 Conversion step of at least one layer into the second neural network [0115] 702 Random initialization step of the converted layer [0116] 703 Training step of the converted layer in the second neural network [0117] 704 Fine-tuning step of the adopted layer in the second neural network [0118] 800 Controller for the converting method [0119] 900 Vehicle having the controller