WO2021052677A1 - Schnelles quantisiertes training trainierbarer module - Google Patents

Schnelles quantisiertes training trainierbarer module Download PDF

Info

Publication number
WO2021052677A1
WO2021052677A1 PCT/EP2020/072158 EP2020072158W WO2021052677A1 WO 2021052677 A1 WO2021052677 A1 WO 2021052677A1 EP 2020072158 W EP2020072158 W EP 2020072158W WO 2021052677 A1 WO2021052677 A1 WO 2021052677A1
Authority
WO
WIPO (PCT)
Prior art keywords
values
parameters
training
discrete
output variables
Prior art date
Application number
PCT/EP2020/072158
Other languages
English (en)
French (fr)
Inventor
Lukas ENDERICH
Fabian TIMM
Original Assignee
Robert Bosch Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch Gmbh filed Critical Robert Bosch Gmbh
Priority to EP20753732.5A priority Critical patent/EP4032030A1/de
Priority to KR1020227013027A priority patent/KR20220065025A/ko
Priority to US17/632,735 priority patent/US20220277200A1/en
Priority to CN202080065624.5A priority patent/CN114402340A/zh
Priority to JP2022517997A priority patent/JP7385022B2/ja
Publication of WO2021052677A1 publication Critical patent/WO2021052677A1/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Definitions

  • the present invention relates to the training of trainable modules, especially for use in control devices for vehicles or in other embedded systems.
  • ANN artificial neural network
  • An artificial neural network is a processing chain that usually contains a plurality of layers of neurons. Each neuron combines a plurality of input variables with weights for activation. The activations formed in a layer, or a result determined therefrom by further processing, are in each case fed to the next adjacent layer until the ANN has been completely passed through and one or more output variables arise.
  • the ANN therefore maps values of the input variables to values of the output variables in accordance with the internal processing chain.
  • WO 2018/158043 A1 discloses a method for coding numerical values in an ANN, in which the most significant bit is reserved specifically for coding the value zero. In this way, it is particularly quick to check whether the value is zero.
  • the trainable module maps one or more input variables to one or more output variables using an internal processing chain.
  • the internal processing chain is characterized by a set of parameters.
  • a trainable module is viewed in particular as a module that embodies a function parameterized with adaptable parameters with ideally great power for generalization.
  • the parameters can in particular be adapted in such a way that when learning input variables are input into the module, the values of associated learning output variables are reproduced as well as possible.
  • the internal processing chain can in particular comprise, for example, an artificial neural network, ANN, or it can also be an ANN.
  • the parameters can then include weights with which neurons each combine a plurality of input variables to form an activation.
  • At least one learning data set is provided which comprises learning values of the input variables and associated learning values of the output variables.
  • a large number of learning data sets are made available, which record many variants of situations presented at the input that the trainable module is supposed to deal with.
  • a list of discrete values is provided from which the parameters characterizing the internal processing chain are to be selected during training. These discrete values are chosen to be can be stored as a fixed point number with a predetermined number N of bits without loss of quality.
  • a discretization of the model parameters generally leads to a reduced memory requirement of the ANN. If these discrete values can also be expressed losslessly as fixed-point numbers, an efficient implementation on fixed-point hardware can be realized. Such fixed-point hardware is significantly cheaper, more energy-efficient and more space-saving than hardware for floating-point calculations.
  • the learning values of the input variables contained in the learning data set are mapped to assessment values of the output variables by the trainable module.
  • a predefined cost function is now evaluated, which characterizes both a deviation of the assessment values of the output variables from the learning values of the output variables contained in the learning data set and a deviation of at least one parameter of the internal processing chain from at least one discrete value in the list.
  • At least one parameter of the internal processing chain is adjusted with the aim of improving the value of the cost function.
  • the range of values of the parameters and / or a gradient of the cost function is limited using the discrete values.
  • the cost function can be a sum, for example.
  • the first summand can characterize the deviation of the assessment values of the output variables from the learning values of the output variables contained in the learning data set.
  • the second summand can include at least one penalty variable which is the deviation of the at least one Parameters of the internal processing chain characterized by the at least one discrete value in the list.
  • the sum can optionally also be weighted.
  • the weighting can be carried out individually for each layer. For example, a weighting can be used that is inversely proportional to the number of parameters of precisely this layer.
  • the adaptation of the at least one parameter of the internal processing chain can in particular be aimed at optimizing, for example minimizing, the value of the cost function. This optimization then represents a simultaneous improvement both in terms of the optimal reproduction of the knowledge contained in the learning data sets and in terms of compliance with the desired discretization of the parameters.
  • a gradient descent method or any other desired optimization method can be used which, based on the value of the cost function, suggests changes to one or more parameters that are likely to improve the value of the cost function in the further course of the training. “Probably” in this context means that not every training step inevitably leads to an improvement in the value of the cost function. In the course of the training there can also be “missteps” that instead worsen the value of the cost function. The optimization process learns from these "missteps” so that the initial deterioration is ultimately turned into an improvement.
  • the number N of bits specifies the number of possible discrete values fixed at a maximum of 2 N.
  • values of N between 2 and 7, preferably between 2 and 5 and very particularly preferably between 2 and 3, have proven to be particularly advantageous.
  • the last-mentioned narrowest area in particular is counter-intuitive, because prima facie the impression arises that this discretization is also propagated into the output variables supplied by the trainable module as a whole and that these are thus significantly coarsened. In practical applications, however, this is not the case, as the trainable module, due to the large number of parameters available, is still quite in is able to differentiate the knowledge presented in the form of the learning data sets.
  • the number N of bits can be used as an adjusting screw to adapt the training of one and the same basic architecture for a trainable module to different applications. If the basic architecture remains the same, this means that the various applications can be implemented on hardware with a high proportion of identical parts, which in turn simplifies production and makes it cheaper.
  • the list of discrete values can come from any source. It can be determined, for example, on the basis of prior knowledge about the application in which the trainable module is to be operated. However, there are also possibilities of automatically defining the list of discrete values in whole or in part if such prior knowledge is incomplete or not available.
  • the list of discrete values is determined on the basis of the values of the parameters of the internal processing chain obtained during pre-training of the trainable module.
  • This pre-training can in particular be carried out using floating point numbers for the parameters, that is to say without quantizing or otherwise restricting the values that the parameters can assume.
  • the learning values of the input variables contained in at least one learning data set are mapped to assessment values of the output variables by the trainable module.
  • a predetermined pre-training Evaluated cost function that characterizes a deviation of the assessment values of the output variables from the learning values of the output variables contained in the learning data set.
  • At least one parameter of the internal processing chain is adjusted with the aim of improving, in particular optimizing, the value of the pre-training cost function.
  • the pre-training cost function can in particular, for example, characterize the deviation of the assessment values of the output variables from the learning values of the output variables contained in the learning data set in the same way as the previously described predetermined cost function does.
  • this given cost function is a sum
  • the summand that characterizes the deviation of the assessment values of the output variables from the learning values of the output variables contained in the learning data set can, for example, be taken over unchanged as the pre-training cost function will.
  • a range of values can be determined in which the parameters are located.
  • the discrete values of the list can then be determined depending on this area. They can, for example, be distributed equidistantly over this area and / or can be determined using accumulation points of the values of parameters in this area.
  • the number N of bits and / or the list of discrete values can also be adapted during the actual training i with the aim of improving, in particular optimizing, the value of the cost function.
  • This adaptation can thus be integrated into the normal training of the trainable module. If the cost function depends on the error that the trainable module makes in processing the learning values of the Input quantities, as well as the discretization error of the parameters, then both types of errors can be the cause that the value of the cost function is bad. Then it is logical if the trainable module can learn to correct the discretization error itself in the same way as to correct excessive deviations from the learning values of the output variables.
  • the discrete values in the list are uniformly, i.e. symmetrically, distributed around zero. This means that the values are distributed around 0 with a constant distance (step size) D, where the step size D is any power of two.
  • Discrete values of this type are characterized by the fact that arithmetic operations with these values can be implemented particularly easily on fixed-point hardware. Scaling by the step size D can be implemented as a simple bit-by-bit shift operation.
  • the discrete values in the list can be integers.
  • numerically adjacent discrete values can each differ by a step size D, which is a power of two of a non-negative integer.
  • the parameters are typically successively adapted in many update steps in order to ultimately arrive at a set of parameters for which the value of the cost function is optimal.
  • part of the information acquired during training can be lost in a manner similar to that when an image sensor is overdriven, which can no longer distinguish between very large brightness values and instead only outputs its maximum saturation value.
  • This tendency is counteracted by setting parameters outside the permitted interval to the corresponding interval limits. This can take place particularly advantageously with each adjustment of the parameters as part of the training.
  • Significantly fewer training epochs are then required overall to train the ANN in such a way that the trained ANN achieves a predetermined accuracy in a test with validation data.
  • a parameter can have a negative value in one training epoch and change to a positive value in a later training epoch. If, for example, the permitted discrete values for a parameter are -1, 0 and +1 and the parameter was set to -10 in the first training epoch, while in a later training epoch the tendency tends towards +2, then the strong negative A deviation of -10 in connection with the discretization leads to the trend reversal being completely “dampened”. This is avoided by truncating the negative deflection at -1.
  • Limiting the parameters to the permitted interval during training has the further effect that less computing time is required for the calculation of Intermediate results are used that are not reflected in the parameters determined as the end result of the training. If the permitted discrete values for a parameter are, for example, -1, 0 and +1, then there is no point in optimizing this parameter in several steps to -3, then to -3.141 and finally to -3.14159. Limiting the parameters at an early stage restricts the search space from the outset to what is ultimately required. The effect is to a certain extent comparable to the fact that passwords can be cracked much faster if an originally very large search space (around 15 characters from the entire available character set) with prior knowledge of the user's bad habits is restricted to "six lowercase letters", for example can be.
  • the solution space is given by the list of discrete values that the parameters can assume after training. It would therefore be inefficient to alienate yourself from this solution space during training.
  • a gradient of the cost function expressed in the parameters as variables is determined in the direction of better values of the cost function.
  • the parameters are changed by a product of the gradient and a step size (gradient descent or gradient ascent method).
  • the cost function contains a weighted sum
  • a second contribution which characterizes a deviation of at least one parameter of the internal processing chain from at least one discrete value in the list.
  • the weighting of the first contribution is decreased and the weighting of the second contribution is increased.
  • the speed or rate at which this change in weighting is carried out can increase exponentially as the training progresses.
  • model capacity depends on the number of possible combinations of values of the parameters, so it is a measure of the dimensionality of a space spanned by the parameters.
  • too high a model capacity can give the training a tendency to “overfitting”, which is essentially a “memorization” of the situations represented by the training data. This “memorized” knowledge is difficult to generalize to new situations that did not arise in training.
  • a restriction of the model capacity during training can therefore avoid over-adapting to the training data, especially in an advanced phase in which the training is, so to speak, perfected, and can therefore be very useful.
  • This restriction only finds its practical limit at the point at which the ANN can no longer cope with the complexity of the problem posed due to the insufficient model capacity.
  • the end result of the training can become a sensible combination of convergence in the sense of the learning task on the one hand and discretization on the other.
  • the emphasis is placed on the learning task of the ANN in order to achieve the first important learning successes as early as possible.
  • the comparison with human learning processes shows that this improves the accuracy of the final result: If you start studying with a large model capacity and achieve the important learning successes in the fundamentals of your subject, you will be able to fall back on this again and again later and get a good degree at the end. But if you are already struggling with insufficient model capacity in this phase, you will always lag behind.
  • the initial learning success is “preserved”, so to speak, and the training turns towards the goal of discretization.
  • the first stage focuses exclusively on the intended application and the second stage exclusively on discretization each other's goal is not completely lost sight of. In this way, it is avoided in particular that the training with regard to the discretization is too much at the expense of the previously acquired learning success with regard to the intended application.
  • each of the parameters is set to that discrete value from the list to which it is closest.
  • the trainable module can learn to deal with the restrictions that the discretization entails in the best possible way and still deliver maximum accuracy.
  • the trainable module is validated after the parameters have been set to the discrete values. This is used to check whether the trainable module has really “understood” the knowledge contained in the learning data sets and can apply it to new situations, or whether the trainable module has only “learned by heart” this knowledge in such a way that it prepares precisely for the known situations is.
  • a large number of validation data records are provided for validation, each of which includes validation values for the input variables and associated validation values for the output variables.
  • the amount of validation data records is not congruent with the amount of learning data records.
  • the set of validation data sets can advantageously be disjoint to the set of learning data sets.
  • the respective validation values of the input variables are mapped to test values of the output variables by the trainable module. It is checked whether the deviations of the test values from the validation values of the output variables meet a specified criterion.
  • a criterion can consist, for example, in the fact that a mean, for example an absolute or quadratic, mean of the deviations over all validation data records is below a predetermined one The threshold value. Alternatively or also in combination with this, it can be checked, for example, whether the maximum deviation in the set of validation data records is below a predetermined threshold value. If the respective criterion is met, the trainable module can be found to be suitable for real use.
  • the cost function used for the training can be, for example, the form where L is a component that only characterizes the deviation of the assessment values of the output variables from the learning values of the output variables contained in the learning data set, and LR is a component that only characterizes the deviation of at least one parameter of the internal processing chain from characterizes at least one discrete value in the list.
  • the parameters to be discretized can include, for example, all weights w®.
  • the LR portion of the cost function can then take the form, for example where the index q in the subtract denotes the closest discrete value of the corresponding weight.
  • the parameter l decides how strongly the part LR is weighted relative to the part L. In particular, as described above, it can be used as an adjustment screw between the learning task and discretization. As explained above, l can be varied during training and in particular, for example, increase exponentially with increasing training progress.
  • D (i) is the respective step size of the quantization for layer I.
  • the first case in the case distinction can practically be neglected, since the weights w® are usually initialized with random floating point values at the beginning of the training of an ANN. The probability that such a value falls exactly on a quantization level approaches zero.
  • the invention also relates to a method for producing a trainable module which maps one or more input variables onto one or more output variables by means of an internal processing chain.
  • the internal processing chain is characterized by a set of parameters.
  • discrete values are determined for the parameters of the internal processing chain of the trainable module, and the trainable module is then optionally validated.
  • the internal processing chain of the trainable module implemented in an arithmetic unit, which is designed for the representation and / or processing of the parameters characterizing the internal processing chain in fixed-point arithmetic.
  • the implementation can in particular include providing appropriate hardware.
  • the parameters are set to the previously determined discrete values in the arithmetic unit.
  • this method can use fast floating point hardware for the actual development and possible validation of the trainable module.
  • the trainable module can then be implemented on fixed-point hardware without changing its behavior.
  • the fixed point arithmetic results in a clear run time advantage compared to implementation on hardware with comparable costs and / or comparable energy consumption.
  • the invention accordingly also relates to a further method.
  • a trainable module is first trained with the method described above for training.
  • the trainable module is then operated by supplying it with one or more input variables.
  • a vehicle, a robot, a quality control system and / or a system for monitoring an area on the basis of sensor data is controlled.
  • the invention therefore also relates to a trainable module for mapping one or more input variables to one or more output variables by means of an internal processing chain, which is characterized by a set of parameters and is implemented in an arithmetic unit.
  • the arithmetic unit is designed to display and / or process the parameters in fixed-point arithmetic.
  • trainable modules can be installed in control units for vehicles and other embedded systems in particular. With such devices in particular, there is a high cost pressure with regard to the hardware to be used, despite the requirement that the trainable module should function reliably.
  • the invention therefore also relates to a control device for a vehicle and / or an embedded system with the trainable module described above and / or with another trainable module trained and / or produced using one of the methods described above.
  • the trainable module can in particular be designed as a classifier and / or regressor for physical measurement data recorded with at least one sensor.
  • the sensor can be, for example, an imaging sensor, a radar sensor, a lidar sensor or an ultrasonic sensor.
  • the methods described can be implemented in whole or in part by computer. For example, they can be part of a computer-implemented development environment for trainable modules.
  • the implementation of the internal processing chain of the trainable module as part of its production can also be computer-implemented, for example by means of automated production.
  • the invention therefore also relates to a computer program with machine-readable instructions which, when they are executed on one or more computers, cause the computer or computers to carry out one of the described methods.
  • the invention also relates to a machine-readable data carrier and / or a download product with the computer program.
  • the invention also relates to a computer or other computing unit with the described computer program and / or with the described machine-readable data carrier and / or download product.
  • the computer or the arithmetic unit can also be specifically designed in some other way to carry out one of the described methods.
  • Such a specific design can be embodied, for example, in one or more field programmable gate arrays (FPGA) and / or in one or more application-specific integrated circuits (ASIC).
  • FPGA field programmable gate arrays
  • ASIC application-specific integrated circuits
  • FIG. 1 exemplary embodiment of the method 100 for training a trainable module 1
  • FIG. 2 exemplary embodiment of the method 200 for producing a trainable module 1
  • FIG. 4 exemplary qualitative effect of the method 100 on the parameters 12a of the internal processing chain 12 of the trainable module 1;
  • FIG. 5 shows an example of the development of the parameters 12a in the course of the method 100
  • FIG. 6 Another example of the development of the parameters 12a with a limitation of the value range of the parameters 12a for each update step;
  • FIG. 7 shows an example of the course of the convergence of the parameters 12a in different layers ad of an artificial neural network;
  • FIG. 8 Another example of the convergence of the parameters 12a with (diagram (a)) and without (diagram (b)) limitation of the range of values of the parameters 12a in each update step.
  • Figure 1 is a flowchart of an embodiment of the method 100 for training a trainable module 1.
  • step 110 at least one learning data record 2 is provided, the learning values 11a of the input variables 11 of the trainable module 1 and learning values 13a of the output variables 13 of the trainable module 1 includes.
  • step 120 a list of 3 discrete values 3a-3c is provided, from which the parameters 12a characterizing the internal processing chain 12 of the trainable module 1 are to be selected. These discrete values 3a-3c are selected in such a way that they can be stored as fixed-point numbers with a predetermined number N of bits without any loss of quality.
  • the list 3 of the discrete values 3a-3c can be determined, for example, with the aid of a pre-training of the trainable module 1. This preliminary training can also make use of the learning data sets 2 provided in step 110.
  • the learning values 11a of the input variables 11 are mapped by the trainable module 1 to assessment values 13b of the output variables.
  • a pre-training cost function 4a is evaluated, which characterizes a deviation of the assessment values 13b of the output variables from the learning values 13a of the output variables 13 contained in the learning data record 2.
  • at least one parameter 12a of the internal processing chain 12 of the trainable module 1 is adapted as a function of the value of the pre-training cost function 4a determined in this way. From the values of the parameters 12a obtained in this way, the list 3 of the discrete values 3a-3c can finally be determined in accordance with block 124. For example, an interval can be determined in which the parameters 12a lie, and the discrete values 3a-3c can, for example, be distributed equidistantly over this interval.
  • step 130 The actual training of trainable module 1 begins in step 130.
  • learning values 11a are again mapped by trainable module 1 to assessment values 13b of the output variables.
  • the cost function 4 subsequently evaluated in step 140, however, in contrast to the pre-training cost function 4a in the optional pre-training, not only depends on the deviation of the assessment values 13b from the learning values 13a, but also characterizes a deviation of at least one internal parameter 12a Processing chain 12 of at least one discrete value 3a-3c in the list 3.
  • step 150 at least one parameter 12a of the internal processing chain 12 is adapted as a function of the value of the cost function 4 determined in this way.
  • the training can end, for example, when a predefined termination condition is reached.
  • the termination condition can include, for example, a threshold value for the cost function and / or a time available for the training and / or the completion of a predetermined number of epochs.
  • the training in step 130 can be initialized, for example, with random values for the parameters 12a. If, however, a preliminary training has already been carried out in order to establish the list 3 of the discrete values 3a-3c, then the parameters 12a determined in the course of this preliminary training can be used as starting values. In this way, the effort invested in this preliminary training is optimally used.
  • the number N of bits and / or the list 3 of the discrete values 3a-3c can be adapted in step 160 as a function of the value of the cost function 4.
  • the parameters 12a can be set to those discrete values 3a-3c from the list 3 which are respectively closest to them.
  • the trainable module 1 can then be validated in step 180. When the trainable module 1 is finally implemented on hardware, it will show exactly the same behavior as in the validation 180.
  • validation data records 5 are provided in accordance with block 181.
  • These validation data sets 5 each include validation values 51 of the input variables 11 and associated validation values 53 of the output variables 13.
  • the set of validation data sets 5 is not congruent with the set of learning data sets 2. These two sets are particularly advantageous disjoint.
  • the respective validation values 51 of the input variables 11 are mapped by the trainable module 1 to test values 13c of the output variables 13.
  • box 150 several possibilities are shown by way of example as to how the adaptation 150 of the parameters 12a can be refined during the training in order to improve the accuracy and at the same time to save training time.
  • values of the parameters 12a which are lower than the lowest discrete value 3a-3c of the list 3 can be set to this lowest discrete value 3a-3c.
  • values of the parameters 12a which are higher than the highest discrete value 3a-3c of the list 3 can be set to this highest value 3a-3c.
  • the adaptation 150 of the parameters 12a can include, in accordance with block 153, determining a gradient 4d of the cost function 4 expressed as variables in the parameters 12a in the direction of better values of the cost function 4 and, in accordance with block 154, the parameters 12a around a product of the gradient 4d and to change one step size.
  • components of the gradient 4d which relate to parameters 12a which currently have the lowest discrete value 3a-3c in list 3 can then be limited to non-negative values.
  • components of the gradient 4d which relate to parameters 12a which currently have the highest discrete value 3a-3c of the list 3 can be limited to non-positive values.
  • the cost function 4 can contain a weighted sum of at least two contributions.
  • the first contribution 4b characterizes a deviation of the assessment values 13b of the output variables 13 from the learning values 13a of the output variables 13 contained in the learning data record 2.
  • the second contribution 4c characterizes a deviation of at least one parameter 12a of the internal processing chain 12 from at least one discrete value 3a-3c in the list 3.
  • the weighting of the first contribution 4b can be reduced and the weighting of the second contribution 4c can be increased.
  • FIG. 2 is a flowchart of an exemplary embodiment of the method 200 for producing a trainable module 1.
  • the trainable module is trained with the method 100, and integer values for the parameters 12a of the internal processing chain 12 of the trainable module 1 are determined.
  • Discrete values 3a-3c that are numerically adjacent differ in each case by a step size D, which is a power of two of a non-negative whole number.
  • step 220 such an implementation is carried out on an arithmetic unit 6, which is used for the representation and / or processing of the parameters 12a in fixed point Arithmetic is trained, made.
  • step 230 the parameters 12a are set in the arithmetic unit to the integer values determined in step 210.
  • FIG. 3 shows an exemplary embodiment of the trainable module 1.
  • the trainable module 1 is implemented in an arithmetic unit 6, which is designed for the display and / or processing of the parameters 12a in fixed-point arithmetic.
  • the internal processing chain 12 drawn as an example as an artificial neural network, ANN, and characterized by the parameters 12a, one or more input variables 11 are mapped onto one or more output variables 13 during operation of the trainable module 1.
  • FIG. 4 qualitatively shows the effect of the method 100 on the structure which the spectrum of the parameters 12a shows.
  • the frequency p of the values of the parameters 12a is plotted against these values.
  • Diagram (a) shows a uniform distribution, as it arises, for example, when the parameters 12a are initialized with random values.
  • Diagram (b) shows a normal distribution that arises from a list 3 during conventional training without restriction to discrete values 3a-3c.
  • Diagram (c) shows a multimodal distribution that arises during training with the method 100 for three discrete values 3a-3c drawn in by way of example. The optimal theoretical distribution for these three quantization levels 3a-3c would be the Dirac distribution shown in diagram (d) with three Dirac pulses.
  • Figure 5 shows an example of real training of a trainable module 1 with an ANN as internal processing chain 12 on the benchmark data set “CIFAR-10” how the frequencies p of values of the parameters 12a of a specific layer in the ANN as a function of the epoch number e develop.
  • the parameters 12a are approximately normally distributed as in the schematic diagram in diagram (b) of FIG. 4.
  • the distribution approaches the multimodal distribution shown in diagram (c) of FIG on.
  • FIG. 6 shows how the parameters 12a of the first layer (row (a)), the fourth layer (row (b)) and the seventh layer (row (c)) of a VGG11, seen from above -KNN develop in the course of the training on the benchmark data set "CIFAR-100" depending on the epoch number e.
  • the frequencies p of values of the parameters 12a of the respective layer for the respective epoch number e are plotted in each of the diagrams in FIG. In the example shown in FIG. 6, only the three discrete values -D, 0 and D are permitted for the parameters 12a.
  • the distribution of the parameters 12a which comes from a pre-training, is unimodal with a peak at 0.
  • the distribution also includes runners for values of the parameters 12a that are below -D or above D lie.
  • the weight of a first contribution 4b which relates to the training of the ANN in relation to the classification task on the CIFAR 100 data set, is reduced in the cost function 4.
  • the weight of a second contribution 4c which relates to the regularization by discretizing the parameters 12a, is increased.
  • FIG. 7 shows which percentage r of the parameters 12a is “rotated” in different layers ad of the ANN in a training period that goes back 10 epochs from the given epoch, ie, from a mode of multimodal distribution has switched to another.
  • the layers ac are Folding layers and are in the first, third and fifth position in the layer sequence of the ANN.
  • Layer d is a fully cross-linked layer and is in seventh position in the layer sequence of the ANN. It can be seen that the parameters 12a in the various layers finally “decide” for one of the modes at different speeds. From an epoch number e of around 180, this is
  • FIG. 8 shows, on the basis of the real training already illustrated in FIG. 6, which percentage r of the parameters 12a of layers a-k of the ANN has changed from one mode of multimodal distribution to another in each epoch e.
  • Diagram (a) shows the course of r with the limitation of the value range of the parameters 12a to the interval [-D, D] after each update step.
  • diagram (b) shows the course of r without this limitation of the value range.
  • the limitation of the value range has the effect, which is clearly visible in comparison, that especially at the beginning of the training a particularly large number of parameters 12a change mode, i.e. change from one of the discrete values 3a-3c in list 3 to another. This means that there is greater learning progress, especially at the beginning of the training, than without the limitation of the value range. As explained before, this improves the accuracy of the training and at the same time saves a considerable amount of training time.

Abstract

Verfahren (100) zum Trainieren eines trainierbaren Moduls (1), welches eine oder mehrere Eingangsgrößen (11) durch eine interne Verarbeitungskette (12) auf eine oder mehrere Ausgangsgrößen (13) abbildet, mit den Schritten: - es wird mindestens ein Lern-Datensatz (2) bereitgestellt (110), der Lern-10 Werte (11a) der Eingangsgrößen (11) und zugehörige Lern-Werte (13a) der Ausgangsgrößen (13) umfasst; - es wird eine Liste (3) von diskreten Werten (3a-3c) bereitgestellt (120), aus denen die die interne Verarbeitungskette (12) charakterisierenden Parameter (12a) während des Trainings ausgewählt werden sollen, wobei die diskreten Werte (3a-3c) so gewählt sind, dass sie sich mit einer vorgegebenen Anzahl N von Bits ohne Qualitätsverlust als Festkommazahl speichern lassen; - die im Lern-Datensatz (2) enthaltenen Lern-Werte (11a) der Eingangsgrößen (11) werden durch das trainierbare Modul (1) auf Beurteilungs-Werte (13b) der Ausgangsgrößen abgebildet (130); - es wird eine vorgegebene Kostenfunktion (4) ausgewertet (140), die sowohl eine Abweichung der Beurteilungs-Werte (13b) der Ausgangsgrößen (13) von den im Lern-Datensatz (2) enthaltenen Lern-Werten (13a) der Ausgangsgrößen (13) als auch eine Abweichung mindestens eines Parameters (12a) der internen Verarbeitungskette (12) von mindestens einem diskreten Wert (3a-3c) in der Liste (3) charakterisiert; - mindestens ein Parameter (12a) der internen Verarbeitungskette (12) wird angepasst (150) mit dem Ziel, den Wert der Kostenfunktion (4) zu 30 verbessern, wobei bei mindestens einer Anpassung (150) der Parameter (12a) der Wertebereich der Parameter (12a), und/oder eines Gradienten (4d) der Kostenfunktion (4), unter Heranziehung der diskreten Werte (3a-3c) begrenzt wird.

Description

Beschreibung
Titel:
Schnelles quantisiertes Training trainierbarer Module
Die vorliegende Erfindung betrifft das Training trainierbarer Module, speziell für den Einsatz in Steuergeräten für Fahrzeuge oder in anderen Embedded- Systemen.
Stand der Technik
Für viele anspruchsvolle Klassifikations- und Steuerungsaufgaben, die nur schwer oder gar nicht geschlossen mathematisch modelliert werden können, werden trainierbare Module eingesetzt, die beispielsweise neuronale Netzwerke enthalten. Ein künstliches neuronales Netzwerk, KNN, ist eine Verarbeitungskette, die in der Regel eine Mehrzahl von Schichten mit Neuronen enthält. Jedes Neuron fasst eine Mehrzahl von Eingangsgrößen mit Gewichten zu einer Aktivierung zusammen. 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 und eine oder mehrere Ausgangsgrößen entstehen. Das KNN bildet also nach Maßgabe der internen Verarbeitungskette Werte der Eingangsgrößen auf Werte der Ausgangsgrößen ab.
Die Gewichte, die Aktivierungen und die hieraus ermittelten Ergebnisse sind in der Regel Gleitkommazahlen (englisch „float“). Um die Vielzahl der beim Training und bei der späteren Verwendung des KNN nötigen Gleitkommaoperationen effizient durchführen zu können, werden häufig Grafikprozessoren, GPUs, verwendet. Dabei wird typischerweise mehr GPU-Arbeitsspeicher benötigt als in Desktop-GPUs standardmäßig verbaut ist. Die WO 2018/158043 Al 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 Verfahren zum Trainieren eines trainierbaren Moduls entwickelt. Das trainierbare Modul bildet eine oder mehrere Eingangsgrößen durch eine interne Verarbeitungskette auf eine oder mehrere Ausgangsgrößen ab. Die interne Verarbeitungskette ist durch einen Satz Parameter charakterisiert.
Unter einem trainierbaren Modul wird insbesondere ein Modul angesehen, das eine mit anpassbaren Parametern parametrierte Funktion mit idealerweise großer Kraft zur Verallgemeinerung verkörpert. Die Parameter können beim Training eines trainierbaren Moduls insbesondere dergestalt angepasst werden, dass bei Eingabe von Lern- Eingangsgrößen in das Modul die Werte zugehöriger Lern-Ausgangsgrößen möglichst gut reproduziert werden.
Dabei kann die interne Verarbeitungskette insbesondere beispielsweise ein künstliches neuronales Netzwerk, KNN, umfassen oder auch ein KNN sein. Die Parameter können dann Gewichte umfassen, mit denen Neuronen jeweils eine Mehrzahl von Eingangsgrößen zu einer Aktivierung zusammenfassen.
Bei dem Verfahren wird mindestens ein Lern- Datensatz bereitgestellt, der Lern- Werte der Eingangsgrößen und zugehörige Lern-Werte der Ausgangsgrößen umfasst. Typischerweise wird im Verlauf des Trainings eine Vielzahl von Lern- Datensätzen bereitgestellt, die viele Varianten von eingangsseitig vorgelegten Situationen, mit denen das trainierbare Modul umgehen soll, erfassen.
Es wird eine Liste von diskreten Werten bereitgestellt, aus denen die die interne Verarbeitungskette charakterisierenden Parameter während des Trainings ausgewählt werden sollen. Diese diskreten Werte sind so gewählt, dass sie sich mit einer vorgegebenen Anzahl N von Bits ohne Qualitätsverlust als Festkommazahl speichern lassen.
Eine Diskretisierung der Modellparameter führt im Allgemeinen zu einem verringerten Speicheraufwand des KNN. Lassen sich diese diskreten Werte zudem verlustfrei als Festkommazahlen ausdrücken, kann eine effiziente Implementierung auf Festkomma- Hardware realisiert werden. Eine solche Festkomma- Hardware ist deutlich preiswerter, energieeffizienter und platzsparender als Hardware für Gleitkommaberechnungen.
Die gewünschte Festlegung auf die diskreten Werte wird nun von vornherein in das Training des trainierbaren Moduls integriert. Das heißt, dieses Training berücksichtigt nun gleichermaßen sowohl den Wunsch, dass die Lern-Werte der Eingangsgrößen möglichst gut auf die Lern-Werte der Ausgangsgrößen abgebildet werden sollen, als auch den Wunsch, dass die Parameter nur die diskreten Werte annehmen sollen.
Zu diesem Zweck werden die im Lern- Datensatz enthaltenen Lern-Werte der Eingangsgrößen durch das trainierbare Modul auf Beurteilungs-Werte der Ausgangsgrößen abgebildet. Es wird nun eine vorgegebene Kostenfunktion ausgewertet, die sowohl eine Abweichung der Beurteilungs-Werte der Ausgangsgrößen von den im Lern- Datensatz enthaltenen Lern-Werten der Ausgangsgrößen als auch eine Abweichung mindestens eines Parameters der internen Verarbeitungskette von mindestens einem diskreten Wert in der Liste charakterisiert. Mindestens ein Parameter der internen Verarbeitungskette wird angepasst mit dem Ziel, den Wert der Kostenfunktion zu verbessern. Bei mindestens einer Anpassung der Parameter wird der Wertebereich der Parameter, und/oder eines Gradienten der Kostenfunktion, unter Heranziehung der diskreten Werte begrenzt.
Die Kostenfunktion kann beispielsweise eine Summe sein. In dieser Summe kann der erste Summand die Abweichung der Beurteilungs-Werte der Ausgangsgrößen von den im Lern- Datensatz enthaltenen Lern-Werten der Ausgangsgrößen charakterisieren. Der zweite Summand kann wenigstens eine Bestrafungsgröße umfassen, die die Abweichung des mindestens einen Parameters der internen Verarbeitungskette von dem mindestens einem diskreten Wert in der Liste charakterisiert. Die Summe kann optional auch gewichtet sein. Die Gewichtung kann insbesondere für jede Schicht einzeln vorgenommen werden. So kann beispielsweise eine Gewichtung verwendet werden, die umgekehrt proportional zur Anzahl der Parameter genau dieser Schicht ist.
Die Anpassung des mindestens einen Parameters der internen Verarbeitungskette kann insbesondere darauf gerichtet sein, den Wert der Kostenfunktion zu optimieren, wie etwa zu minimieren. Diese Optimierung stellt dann eine gleichzeitige Verbesserung sowohl im Hinblick auf die optimale Reproduktion des in den Lern- Datensätzen enthaltenen Wissens als auch im Hinblick auf die Einhaltung der gewünschten Diskretisierung der Parameter dar.
Für die Optimierung kann beispielsweise ein Gradientenabstiegsverfahren oder ein beliebiges anderes Optimierungsverfahren verwendet werden, das anhand des Werts der Kostenfunktion Änderungen eines oder mehrerer Parameter vorschlägt, die im weiteren Verlauf des Trainings den Wert der Kostenfunktion voraussichtlich verbessern. „Voraussichtlich“ bedeutet in diesem Zusammenhang, dass nicht bei jedem Trainingsschritt zwangsläufig eine Verbesserung des Werts der Kostenfunktion eintreten muss. Es kann im Verlauf des Trainings durchaus auch „Fehltritte“ geben, die den Wert der Kostenfunktion stattdessen verschlechtern. Das Optimierungsverfahren lernt aus diesen „Fehltritten“, so dass die anfängliche Verschlechterung letztendlich doch in eine Verbesserung verkehrt wird.
Die Anzahl N von Bits legt die Anzahl der möglichen diskreten Werte auf maximal 2N fest. In den Versuchen der Erfinder haben sich Werte von N zwischen 2 und 7, bevorzugt zwischen 2 und 5 und ganz besonders bevorzugt zwischen 2 und 3, als besonders vorteilhaft erwiesen. Dabei ist gerade der letztgenannte engste Bereich kontra-intuitiv, weil prima facie der Eindruck entsteht, dass sich diese Diskretisierung auch in die vom trainierbaren Modul als Ganzes gelieferten Ausgangsgrößen fortpflanzt und diese somit deutlich vergröbert werden. Dies ist jedoch in praktischen Anwendungen nicht der Fall, da das trainierbare Modul bedingt durch die Vielzahl der vorhandenen Parameter nach wie vor durchaus in der Lage ist, das in Form der Lern- Datensätze vorgelegte Wissen differenziert abzubilden.
Im Fall von N=2 kann es weiterhin von Vorteil sein, eine symmetrische Quantisierung bzw. Diskretisierung zu wählen, also die Anzahl der diskreten Werte auf 2N-1=3 zu verkleinern. Dann ist eine Skalierung zu {-1, 0, 1} möglich. Somit sind nur noch Additionen zum Errechnen der Aktivierung nötig. Da die Skalierung eine Zweierpotenz ist (2 f), muss das Komma anschließend nur um den jeweiligen Skalierungsfaktor f verschoben werden. Insgesamt sind somit keine Gleitkommaoperationen mehr notwendig, sondern nur noch „günstige“ Additionen und bitweise Verschiebungen.
Die Anzahl N von Bits kann als Stellschraube genutzt werden, um das Training ein und derselben Grundarchitektur für ein trainierbares Modul an verschiedene Anwendungen anzupassen. Wenn die Grundarchitektur gleich bleibt, bewirkt dies, dass die Realisierung der verschiedenen Anwendungen auf Hardware mit einem hohen Gleichteilanteil erfolgen kann, was wiederum die Fertigung vereinfacht und preiswerter macht.
Die Liste der diskreten Werte kann aus einer beliebigen Quelle stammen. Sie kann beispielsweise anhand von Vorwissen über die Anwendung, in der das trainierbare Modul betrieben werden soll, festgelegt werden. Es gibt jedoch auch Möglichkeiten, die Liste der diskreten Werte ganz oder teilweise automatisch festzulegen, wenn solches Vorwissen lückenhaft oder nicht vorhanden ist.
In einer besonders vorteilhaften Ausgestaltung wird die Liste von diskreten Werten anhand der bei einem Vortraining des trainierbaren Moduls erhaltenen Werte der Parameter der internen Verarbeitungskette ermittelt. Dieses Vortraining kann insbesondere unter Verwendung von Gleitkommazahlen für die Parameter durchgeführt werden, also ohne Quantisierung oder sonstige Einschränkung der Werte, die die Parameter annehmen können.
Bei dem Vortraining werden die in mindestens einem Lern- Datensatz enthaltenen Lern-Werte der Eingangsgrößen durch das trainierbare Modul auf Beurteilungs- Werte der Ausgangsgrößen abgebildet. Es wird eine vorgegebene Vortrainings- Kostenfunktion ausgewertet, die eine Abweichung der Beurteilungs-Werte der Ausgangsgrößen von den im Lern- Datensatz enthaltenen Lern-Werten der Ausgangsgrößen charakterisiert. Mindestens ein Parameter der internen Verarbeitungskette wird angepasst mit dem Ziel, den Wert der Vortrainings- Kostenfunktion zu verbessern, insbesondere zu optimieren.
Dabei kann die Vortrainings- Kostenfunktion insbesondere beispielsweise die Abweichung der Beurteilungs-Werte der Ausgangsgrößen von den im Lern- Datensatz enthaltenen Lern-Werten der Ausgangsgrößen in gleicher Weise charakterisieren wie dies die zuvor beschriebene vorgegebene Kostenfunktion tut. In dem zuvor genannten Beispiel, in dem diese vorgegebene Kostenfunktion eine Summe ist, kann also der Summand, der die Abweichung der Beurteilungs- Werte der Ausgangsgrößen von den im Lern- Datensatz enthaltenen Lern-Werten der Ausgangsgrößen charakterisiert, beispielsweise unverändert als Vortrainings- Kostenfunktion übernommen werden.
Dies ist jedoch nicht zwingend erforderlich, da im Rahmen des Vortrainings lediglich ein grober Anhaltspunkt hinsichtlich des Wertebereichs gewonnen werden soll, in dem die Parameter liegen. Es kann beispielsweise auch eine Abwandlung des besagten Summanden, oder auch eine ganz andere alternative Vortrainings- Kostenfunktion, verwendet werden, beispielsweise, weil sich eine solche alternative Vortrainings- Kostenfunktion schneller auswerten lässt.
Beispielsweise kann ein Wertebereich ermittelt werden, in dem die Parameter liegen. Die diskreten Werte der Liste können dann abhängig von diesem Bereich ermittelt werden. Sie können beispielsweise äquidistant auf diesen Bereich verteilt werden, und/oder anhand von Häufungspunkten der Werte von Parametern in diesem Bereich festgelegt werden.
Alternativ oder auch in Kombination hierzu kann die Anzahl N von Bits, und/oder die Liste der diskreten Werte, auch beim eigentlichen Training i angepasst werden mit dem Ziel, den Wert der Kostenfunktion zu verbessern, insbesondere zu optimieren. Diese Anpassung kann somit in das normale Training des trainierbaren Moduls integriert werden. Wenn die Kostenfunktion sowohl vom Fehler, den das trainierbare Modul bei der Verarbeitung der Lern-Werte der Eingangsgrößen macht, als auch vom Diskretisierungsfehler der Parameter abhängt, dann können beide Arten von Fehlern die Ursache dafür sein, dass der Wert der Kostenfunktion schlecht ist. Dann ist es konsequent, wenn das trainierbare Modul die Behebung des Diskretisierungsfehlers in der gleichen Weise selbst erlernen kann wie die Behebung zu großer Abweichungen von den Lern-Werten der Ausgangsgrößen.
In einerweiteren besonders vorteilhaften Ausgestaltung sind die diskreten Werte in der Liste einheitlich, d.h. symmetrisch, um 0 verteilt. Das heißt, die Werte sind mit gleichbleibendem Abstand (Schrittweite) D um 0 verteilt, wobei die Schrittweite D eine beliebige Zweierpotenz ist.
Diskrete Werte dieser Art zeichnen sich dadurch aus, dass Rechenoperationen mit diesen Werten besonders einfach auf Festkomma- Hardware implementiert werden können. Eine Skalierung um die Schrittweite D lässt sich als einfache bitweise Verschiebeoperation implementieren.
Beispielsweise können die diskreten Werte in der Liste ganzzahlig sein. Dann können sich insbesondere beispielsweise zahlenmäßig benachbarte diskrete Werte jeweils um eine Schrittweite D unterscheiden, die eine Zweierpotenz einer nichtnegativen ganzen Zahl ist.
Im Verlauf des Trainings werden die Parameter typischerweise sukzessive in vielen Update-Schritten angepasst, um letztendlich zu einem Satz Parameter zu gelangen, für den der Wert der Kostenfunktion optimal ist. In einer besonders vorteilhaften Ausgestaltung werden bei mindestens einer Anpassung der Parameter
• Werte der Parameter, die niedriger sind als der niedrigste diskrete Wert der Liste, auf diesen niedrigsten diskreten Wert gesetzt, und/oder
• Werte der Parameter, die höher sind als der höchste diskrete Wert der Liste, auf diesen höchsten Wert gesetzt werden.
Es wurde erkannt, dass hierdurch überraschenderweise das Training zu einem noch besseren Ergebnis konvergiert und dass es außerdem deutlich schneller konvergiert. Eine Ursache hierfür ist, dass Werte der Parameter außerhalb des zwischen dem niedrigsten diskreten Wert der Liste und dem höchsten diskreten Wert der Liste liegenden Intervalls während des Trainings und auch im Endergebnis zu einer künstlichen Bevorzugung des niedrigsten und des höchsten Werts der Liste führen können. So kann beispielsweise das Training unter dem Gesichtspunkt, dass die Beurteilungs-Werte der Ausgangsgrößen möglichst im Einklang mit den Lern-Werten der Ausgangsgrößen stehen sollen, Werte der Parameter weit außerhalb des Intervalls produzieren. Dies kann die Parameter auf dem niedrigsten bzw. höchsten Wert der Liste „festnageln“. Hierdurch kann in ähnlicher Weise ein Teil der im Training erarbeiteten Information verlorengehen wie beim Übersteuern eines Bildsensors, der sehr große Helligkeitswerte nicht mehr voneinander unterscheiden kann und stattdessen nur noch seinen maximalen Sättigungswert ausgibt. Dieser Tendenz wird entgegengewirkt, indem außerhalb des erlaubten Intervalls liegende Parameter auf die entsprechenden Intervallgrenzen gesetzt werden. Dies kann insbesondere vorteilhaft bei jeder Anpassung der Parameter im Rahmen des Trainings erfolgen. Es werden dann insgesamt deutlich weniger Trainingsepochen benötigt, um das KNN so zu trainieren, dass das trainierte KNN bei einem Test mit Validierungs-Daten eine vorgegebene Genauigkeit erreicht.
Dieser Effekt wird durch den Umstand verstärkt, dass sich die Parameter gerade zu Beginn des Trainings typischerweise noch stark verändern. So kann ein Parameter beispielsweise in einer Trainingsepoche einen negativen Wert haben und in einer späteren Trainingsepoche zu einem positiven Wert wechseln. Wenn nun beispielsweise die erlaubten diskreten Werte für einen Parameter -1, 0 und +1 sind und der Parameter in der ersten Trainingsepoche auf -10 festgelegt wurde, während in einer späteren Trainingsepoche die Tendenz eher in Richtung +2 geht, dann kann der starke negative Ausschlag zu -10 in Verbindung mit der Diskretisierung dazu führen, dass die Trendumkehr vollständig „weggedämpft“ wird. Dies wird vermieden, wenn der negative Ausschlag bei -1 abgeschnitten wird.
Das Begrenzen der Parameter auf das erlaubte Intervall während des Trainings hat den weiteren Effekt, dass weniger Rechenzeit für die Berechnung von Zwischenergebnissen aufgewendet wird, die sich in den als Endergebnis des Trainings ermittelten Parametern gar nicht niederschlagen. Wenn die erlaubten diskreten Werte für einen Parameter beispielsweise -1, 0 und +1 sind, dann bringt es nichts, diesen Parameter in mehreren Schritten auf -3, dann auf -3,141 und schließlich auf -3,14159 zu optimieren. Das frühzeitige Begrenzen der Parameter schränkt den Suchraum von vornherein auf das ein, was letztendlich gefragt ist. Der Effekt ist in gewisser Weise vergleichbar damit, dass Passwörter wesentlich schneller zu knacken sind, wenn ein ursprünglich sehr großer Suchraum (etwa 15 Zeichen aus dem kompletten zur Verfügung stehenden Zeichenvorrat) mit Vorwissen über die schlechten Gewohnheiten des Benutzers beispielsweise auf „sechs Kleinbuchstaben“ eingeschränkt werden kann. Hier ist der Lösungsraum durch die Liste der diskreten Werte gegeben, die die Parameter nach dem Training annehmen können. Daher wäre es ineffizient, sich während des Trainings von diesem Lösungsraum zu entfremden.
In Versuchen der Erfinder konnte die Kombination aus der Einsparung von Trainingsepochen und der Einsparung an Rechenaufwand innerhalb jeder Epoche die insgesamt für das Training erforderliche Rechenzeit um bis zu 70 % reduzieren.
In die gleiche Richtung geht eine weitere besonders vorteilhafte Ausgestaltung. Hier wird bei mindestens einer Anpassung der Parameter ein Gradient der in den Parametern als Variablen ausgedrückten Kostenfunktion in Richtung auf besserer Werte der Kostenfunktion ermittelt. Die Parameter werden um ein Produkt aus dem Gradienten und einer Schrittweite geändert (Gradientenabstiegs- bzw. Gradientenaufstiegsverfahren). Als wichtige Neuerung werden beim Ermitteln des Gradienten
• Komponenten des Gradienten, die sich auf Parameter beziehen, die aktuell den niedrigsten diskreten Wert der Liste haben, auf nichtnegative Werte begrenzt, und/oder
• Komponenten des Gradienten, die sich auf Parameter beziehen, die aktuell den höchsten diskreten Wert der Liste haben, auf nichtpositive Werte begrenzt. Insbesondere können Algorithmen zur Berechnung von Komponenten des Gradienten bereits an der Stelle abgebrochen werden, an der sich abzeichnet, dass sie das jeweils unerwünschte Vorzeichen haben. In dem genannten Beispiel, in dem nur die diskreten Werte -1, 0 und +1 für einen Parameter erlaubt sind, ist es ausgehend vom Wert -1 von vornherein klar, dass nur eine Veränderung dieses Parameters in positiver Richtung möglich ist. Wenn der Gradient bezüglich dieses Parameters in eine negative Richtung weist, dann kann diese Veränderung nicht durchgeführt werden, und es ist dann auch sinnlos, diese Veränderung in mehreren Schritten auf -2,7, dann auf -2,718 und schließlich auf -2,71828 zu präzisieren. Die Situation ist in gewisser Weise analog zu mündlichen Prüfungen, bei denen die Prüfungsordnung eine Mindestdauer und eine Höchstdauer vorgibt. Wenn sich bereits nach der Mindestdauer das „Mangelhaft“ abzeichnet, wird die Prüfung beendet und das „Mangelhaft“ verhängt. Hingegen wird die Höchstdauer ausgeschöpft, um die Nuancen zwischen „Sehr gut“ und „Mit Auszeichnung“ herauszuarbeiten.
In einerweiteren besonders vorteilhaften Ausgestaltung enthält die Kostenfunktion eine gewichtete Summe aus
• einem ersten Beitrag, der eine Abweichung der Beurteilungs-Werte der Ausgangsgrößen von den im Lern- Datensatz enthaltenen Lern- Werten der Ausgangsgrößen charakterisiert, und
• einem zweiten Beitrag, der eine Abweichung mindestens eines Parameters der internen Verarbeitungskette von mindestens einem diskreten Wert in der Liste charakterisiert.
Mit dem Fortschritt des Trainings wird die Gewichtung des ersten Beitrags vermindert, und die Gewichtung des zweiten Beitrags wird erhöht. Insbesondere kann beispielsweise die Geschwindigkeit bzw. Rate, mit der diese Änderung der Gewichtung durchgeführt wird, mit dem Fortschritt des Trainings exponentiell steigen.
Es wurde erkannt, dass die Diskretisierung der Werte der Parameter, wie andere Regularisierungen der Parameter auch, die sogenannte Modellkapazität des KNN stark vermindert. Die Modellkapazität hängt von der Anzahl möglicher Kombinationen von Werten der Parameter ab, ist also ein Maß für die Dimensionalität eines von den Parametern aufgespannten Raums. Je höher die Modellkapazität ist, desto mehr Nuancen können beim Training des KNN im Hinblick auf eine möglichst gute Reproduktion der Lern-Ausgangsgrößen verarbeitet werden und desto besser ist die nach Abschluss des Trainings erzielte Genauigkeit. Eine zu hohe Modellkapazität kann allerdings dem Training eine Tendenz zum „Overfitting“ geben, das im Wesentlichen ein „Auswendiglernen“ der durch die Trainingsdaten repräsentierten Situationen ist. Dieses „auswendig gelernte“ Wissen ist schlecht auf neue Situationen, die nicht im Training vorgekommen sind, verallgemeinerbar. Eine Einschränkung der Modellkapazität während des Trainings kann also insbesondere in einer fortgeschrittenen Phase, in der das Training sozusagen perfektioniert wird, eine Überanpassung an die Trainingsdaten vermeiden und somit sehr sinnvoll sein. Diese Einschränkung findet lediglich an dem Punkt, an dem das KNN auf Grund der zu geringen Modellkapazität die Komplexität des gestellten Problems nicht mehr bewältigen kann, ihre praktische Grenze.
Indem nun das Training zunächst mit einer hohen Modellkapazität begonnen und später in Richtung auf ein Übergewicht der Diskretisierung gelenkt wird, kann das Endergebnis des Trainings zu einer sinnvollen Kombination aus Konvergenz im Sinne der Lernaufgabe einerseits und Diskretisierung andererseits werden. Zunächst wird mit der hohen Modellkapazität das Übergewicht auf die Lernaufgabe des KNN gelegt, um hier möglichst frühzeitig erste wichtige Lernerfolge zu erzielen. Dass dies die Genauigkeit des Endergebnisses verbessert, verdeutlicht der Vergleich mit menschlichen Lernprozessen: Wer beim Start in ein Studium mit großer Modellkapazität die wichtigen Lernerfolge bei den Grundlagen seines Fachs erzielt, wird später immer wieder hierauf zurückgreifen können und am Ende einen guten Abschluss machen. Wer aber bereits in dieser Phase mit einer zu geringen Modellkapazität zu kämpfen hat, wird immer einem Rückstand hinterherlaufen.
Durch die spätere Verminderung der Modellkapazität wird der anfängliche Lernerfolg gleichsam „konserviert“, und das Training wendet sich dem Ziel der Diskretisierung zu. Im Unterschied zu einem strikt zweistufigen Training, bei dem in der ersten Stufe ausschließlich auf die beabsichtige Anwendung und in der zweiten Stufe ausschließlich auf die Diskretisierung abgestellt wird, wird das jeweils andere Ziel nicht vollständig aus den Augen verloren. Auf diese Weise wird insbesondere vermieden, dass das Training im Hinblick auf die Diskretisierung zu stark auf Kosten des bereits zuvor erarbeiteten Lernerfolgs in Bezug auf die beabsichtige Anwendung geht.
In einer weiteren besonders vorteilhaften Ausgestaltung wird jeder der Parameter auf denjenigen diskreten Wert aus der Liste gesetzt, dem er am nächsten ist.
Dies kann ein- oder mehrmals an beliebiger Stelle während des Trainings erfolgen, und/oder nach dem Abschluss des Trainings. Insbesondere durch das ein- oder mehrmalige Setzen auf die diskreten Werte während des Trainings kann das trainierbare Modul es erlernen, mit den Beschränkungen, die die Diskretisierung mit sich bringt, bestmöglich umzugehen und dennoch eine maximale Genauigkeit zu liefern.
In einer weiteren besonders vorteilhaften Ausgestaltung wird das trainierbare Modul nach dem Setzen der Parameter auf die diskreten Werte validiert. Hiermit wird geprüft, ob das trainierbare Modul das in den Lern- Datensätzen enthaltene Wissen wirklich „verstanden“ hat und auf neue Situationen anwenden kann oder ob das trainierbare Modul dieses Wissen lediglich so „auswendig gelernt“ hat, dass es genau auf die bekannten Situationen vorbereitet ist.
Zum Validieren wird eine Vielzahl von Validierungs-Datensätzen bereitgestellt, die jeweils Validierungs-Werte der Eingangsgrößen und zugehörige Validierungs- Werte der Ausgangsgrößen umfassen. Dabei ist die Menge der Validierungs- Datensätze nicht deckungsgleich mit der Menge der Lern- Datensätze. Insbesondere kann die Menge der Validierungs-Datensätze vorteilhaft disjunkt zur Menge der Lern- Datensätze sein.
Für jeden Validierungs-Datensatz werden die jeweiligen Validierungs-Werte der Eingangsgrößen durch das trainierbare Modul auf Prüf-Werte der Ausgangsgrößen abgebildet. Es wird geprüft, ob die Abweichungen der Prüf- Werte von den Validierungs-Werten der Ausgangsgrößen ein vorgegebenes Kriterium erfüllen. Ein solches Kriterium kann beispielsweise darin bestehen, dass ein, beispielsweise betragsmäßiges oder quadratisches, Mittel der Abweichungen über alle Validierungs-Datensätze unterhalb eines vorgegebenen Schwellwerts liegt. Alternativ oder auch in Kombination hierzu kann beispielsweise geprüft werden, ob die maximale Abweichung auf der Menge der Validierungs-Datensätze unterhalb eines vorgegebenen Schwellwerts liegt. Ist das jeweilige Kriterium erfüllt, kann das trainierbare Modul als tauglich für den realen Einsatz befunden werden.
Das Setzen der Parameter auf die diskreten Werte aus der Liste vor der Validierung hat den Vorteil, dass das trainierbare Modul hiermit in genau dem Zustand geprüft werden kann, in dem es auch später auf Hardware implementiert wird. Durch die Implementierung auf beispielsweise für Festkomma-Arithmetik ausgelegte Hardware wird sich an seinem Verhalten nichts mehr ändern. Das bedeutet, dass die Validierung nicht auf der Hardware erfolgen muss, die später in das Endprodukt mit dem trainierbaren Modul verbaut wird, sondern stattdessen auf schnellerer, für die Entwicklung und das Training des trainierbaren Moduls verwendeter Hardware, wie etwa einer GPU, erfolgen kann.
Dies ist insbesondere von Vorteil im Zusammenhang mit sicherheitskritischen Anwendungen beispielsweise im Zusammenhang mit der Steuerung und Überwachung von Fahrzeugen zu Lande, zu Wasser und in der Luft. Für die Zulassung zum jeweiligen öffentlichen Verkehr wird vielfach eine sehr umfangreiche Validierung zur Auflage gemacht. Diese Validierung wird nun durch die Implementierung auf Hardware, oder auch durch den nachträglichen Wechsel der Hardwareplattform im Zuge der Produktweiterentwicklung, nicht ungültig.
Die für das Training verwendete Kostenfunktion kann beispielsweise die Form
Figure imgf000015_0001
haben, wobei L ein Anteil ist, der nur die Abweichung der Beurteilungs-Werte der Ausgangsgrößen von den im Lern- Datensatz enthaltenen Lern-Werten der Ausgangsgrößen charakterisiert, und wobei LR ein Anteil ist, der nur die Abweichung mindestens eines Parameters der internen Verarbeitungskette von mindestens einem diskreten Wert in der Liste charakterisiert.
Wenn die interne Verarbeitungskette des trainierbaren Moduls nun beispielsweise ein neuronales Netzwerk, KNN, aus L Schichten umfasst und jede Schicht eine vom Index I der Schicht abhängige Anzahl M® Gewichte umfasst, dann können die zu diskretisierenden Parameter beispielsweise sämtliche Gewichte w® umfassen. Der Anteil LR der Kostenfunktion kann dann beispielsweise die Form
Figure imgf000016_0001
haben, worin der Index q im Subtrahenden den jeweils nächstliegenden diskreten Wert des entsprechenden Gewichts bezeichnet. Der Parameter l entscheidet darüber, wie stark der Anteil LR relativ zum Anteil L gewichtet wird. Er kann somit insbesondere, wie zuvor beschrieben, als Stellschraube zwischen Lernaufgabe und Diskretisierung eingesetzt werden. Wie zuvor erläutert, kann l während des Trainings variiert werden und insbesondere beispielsweise mit zunehmendem Trainingsfortschritt exponentiell ansteigen.
Partielle Differentiation dieses Ausdrucks nach den Gewichten ergibt dLR + , falls
_ _(w® _ w ( ) d \ _ dw (0 - M(Q [Wi Wi,q ) 1 - i dw\ (0 Tö(w®
Figure imgf000016_0002
Das bedeutet, dass die Gewichte w® umso stärker optimiert werden, je größer der jeweilige Quantisierungsfehler ist. D(i) ist die jeweilige Schrittweite der Quantisierung für die Schicht I. Der erste Fall in der Fallunterscheidung kann praktisch vernachlässigt werden, da die Gewichte w® zu Beginn des Trainings eines KNN in der Regel mit zufälligen Gleitkomma-Werten initialisiert werden. Die Wahrscheinlichkeit, dass ein solcher Wert genau auf eine Quantisierungsstufe fällt, geht gegen Null.
Die Erfindung bezieht sich auch auf ein Verfahren zur Herstellung eines trainierbaren Moduls, welches eine oder mehrere Eingangsgrößen durch eine interne Verarbeitungskette auf eine oder mehrere Ausgangsgrößen abbildet. Dabei ist die interne Verarbeitungskette durch einen Satz Parameter charakterisiert.
Bei diesem Verfahren werden zunächst mit dem beschriebenen Verfahren diskrete Werte für die Parameter der internen Verarbeitungskette des trainierbaren Moduls ermittelt, und optional wird das trainierbare Modul anschließend validiert. Danach wird die interne Verarbeitungskette des trainierbaren Moduls in einem Rechenwerk implementiert, das für die Darstellung und/oder Verarbeitung der die interne Verarbeitungskette charakterisierenden Parameter in Festkomma-Arithmetik ausgebildet ist. Hierbei kann das Implementieren insbesondere umfassen, entsprechende Hardware bereitzustellen. Die Parameter werden in dem Rechenwerk auf die zuvor ermittelten diskreten Werte gesetzt.
Wie zuvor erläutert, kann bei diesem Verfahren für die eigentliche Entwicklung und eventuelle Validierung des trainierbaren Moduls schnelle Gleitkomma- Hardware genutzt werden. Anschließend kann das trainierbare Modul auf Festkomma- Hardware implementiert werden, ohne dass sich an seinem Verhalten noch etwas ändert. Bei der Inferenz im Betrieb des trainierbaren Moduls ergibt sich durch die Festkomma-Arithmetik ein deutlicher Laufzeitvorteil gegenüber einer Implementierung auf Hardware mit vergleichbaren Kosten und/oder vergleichbarem Energieverbrauch.
Dementsprechend bezieht sich die Erfindung auch auf ein weiteres Verfahren.
Bei diesem Verfahren wird ein trainierbares Modul zunächst mit dem zuvor beschriebenen Verfahren zum Trainieren trainiert. Das trainierbare Modul wird anschließend betrieben, indem ihm eine oder mehrere Eingangsgrößen zugeführt werden. Abhängig von den vom trainierbaren Modul gelieferten Ausgangsgrößen wird ein Fahrzeug, ein Roboter, ein Qualitätskontrollsystem, und/oder ein System zur Überwachung eines Bereichs auf der Basis von Sensordaten, angesteuert.
Dass dieses Verfahren angewendet wurde, kann am fertigen trainierbaren Modul insbesondere den „Fingerprint“ hinterlassen, dass dieses Festkomma-Hardware für die Darstellung und/oder Verarbeitung der Parameter aufweist. Die Erfindung bezieht sich daher auch auf ein trainierbares Modul für die Abbildung einer oder mehrerer Eingangsgrößen auf eine oder mehrere Ausgangsgrößen mittels einer internen Verarbeitungskette, welche durch einen Satz Parameter charakterisiert ist und in einem Rechenwerk implementiert ist. Das Rechenwerk ist für die Darstellung und/oder Verarbeitung der Parameter in Festkomma-Arithmetik ausgebildet. Wie zuvor erläutert, können derartige trainierbare Module insbesondere in Steuergeräten für Fahrzeuge und anderen Embedded-Systemen verbaut werden. Gerade bei derartigen Geräten besteht trotz des Erfordernisses einer zuverlässigen Funktion des trainierbaren Moduls ein hoher Kostendruck, was die zu verwendende Hardware angeht. Übliche für die Entwicklung etwa von KN Ns verwendete GPUs können mehrere tausend Euro kosten und eine elektrische Leistung beanspruchen, die im Bordnetz etwa eines Pkw nur mit Mühe aufzubringen ist. Festkomma- Hardware ist deutlich preiswerter sowie zugleich deutlich energieeffizienter und platzsparender. Daher bezieht sich die Erfindung auch auf ein Steuergerät für ein Fahrzeug, und/oder ein Embedded-System, mit dem zuvor beschriebenen trainierbaren Modul, und/oder mit einem sonstigen mit einem der zuvor beschriebenen Verfahren trainierten und/oder hergestellten trainierbaren Modul.
Das trainierbare Modul kann insbesondere als Klassifikator und/oder Regressor für mit mindestens einem Sensor aufgenommene physikalische Messdaten ausgebildet sein. Es ermöglicht dann auch in Anwendungen, in denen nur beschränkte Hardware, eine beschränkte Energiemenge oder ein beschränkter Einbauraum zur Verfügung steht, eine aussagekräftige und auf viele Situationen verallgemeinerbare Auswertung der physikalischen Messdaten durch Künstliche Intelligenz. Der Sensor kann beispielsweise ein bildgebender Sensor, ein Radarsensor, ein Lidar-Sensor oder ein Ultraschallsensor sein.
Die beschriebenen Verfahren können ganz oder teilweise computerimplementiert sein. Sie können beispielsweise Teil einer computerimplementierten Entwicklungsumgebung für trainierbare Module sein. Auch die Implementierung der internen Verarbeitungskette des trainierbaren Moduls im Rahmen seiner Herstellung kann computerimplementiert sein, beispielsweise im Wege einer automatisierten Fertigung. Daher bezieht sich die Erfindung auch auf ein Computerprogramm mit maschinenlesbaren Anweisungen, die, wenn sie auf einem oder mehreren Computern ausgeführt werden, den oder die Computer dazu veranlassen, eines der beschriebenen Verfahren auszuführen. Ebenso bezieht sich die Erfindung auch auf einen maschinenlesbaren Datenträger und/oder ein Downloadprodukt mit dem Computerprogramm. Die Erfindung bezieht sich weiterhin auch auf einen Computer oder eine sonstige Recheneinheit mit dem beschriebenen Computerprogramm, und/oder mit dem beschriebenen maschinenlesbaren Datenträger und/oder Downloadprodukt. Der Computer, bzw. die Recheneinheit, kann auch in sonstiger Weise spezifisch dazu ausgebildet sein, eines der beschriebenen Verfahren auszuführen. Eine solche spezifische Ausbildung kann beispielsweise in einem oder mehreren feldprogrammierbaren Gatteranordnungen (Field Programmable Gate Array, FPGA), und/oder in einem oder mehreren anwendungsspezifischen integrierten Schaltkreisen (Application Specific Integrated Circuit, ASIC) verkörpert sein.
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:
Figur 1 Ausführungsbeispiel des Verfahrens 100 zum Trainieren eines trainierbaren Moduls 1;
Figur 2 Ausführungsbeispiel des Verfahrens 200 zur Herstellung eines trainierbaren Moduls 1;
Figur 3 Ausführungsbeispiel des trainierbaren Moduls 1;
Figur 4 Beispielhafte qualitative Auswirkung des Verfahrens 100 auf die Parameter 12a der internen Verarbeitungskette 12 des trainierbaren Moduls 1;
Figur 5 Beispielhafte Entwicklung der Parameter 12a im Verlauf des Verfahrens 100;
Figur 6 Weiteres Beispiel für die Entwicklung der Parameter 12a mit Begrenzung des Wertebereichs der Parameter 12a bei jedem Update-Schritt; Figur 7 Beispielhafter Verlauf des Konvergierens der Parameter 12a in verschiedenen Schichten a-d eines künstlichen neuronalen Netzwerks;
Figur 8 Weiteres Beispiel für das Konvergieren der Parameter 12a mit (Diagramm (a)) und ohne (Diagramm (b)) Begrenzung des Wertebereichs der Parameter 12a bei jedem Update-Schritt.
Figur 1 ist ein Ablaufdiagramm eines Ausführungsbeispiels des Verfahrens 100 zum Trainieren eines trainierbaren Moduls 1. In Schritt 110 wird mindestens ein Lern- Datensatz 2 bereitgestellt, der Lern-Werte 11a der Eingangsgrößen 11 des trainierbaren Moduls 1 sowie Lern-Werte 13a der Ausgangsgrößen 13 des trainierbaren Moduls 1 umfasst. Weiterhin wird in Schritt 120 eine Liste 3 diskreter Werte 3a-3c bereitgestellt, aus denen die die interne Verarbeitungskette 12 des trainierbaren Moduls 1 charakterisierenden Parameter 12a ausgewählt werden sollen. Diese diskreten Werte 3a-3c sind so gewählt, dass sie sich mit einer vorgegebenen Anzahl N von Bits ohne Qualitätsverlust als Festkommazahl speichern lassen.
Die Liste 3 der diskreten Werte 3a-3c kann beispielsweise mit Hilfe eines Vortrainings des trainierbaren Moduls 1 ermittelt werden. Dieses Vortraining kann sich ebenfalls die in Schritt 110 bereitgestellten Lern- Datensätze 2 zu Nutze machen.
In dem in Figur 1 innerhalb des Kastens 120 gezeigten Beispiel für das Vortraining werden gemäß Block 121 die Lern-Werte 11a der Eingangsgrößen 11 durch das trainierbare Modul 1 auf Beurteilungs-Werte 13b der Ausgangsgrößen abgebildet. Gemäß Block 122 wird eine Vortrainings- Kostenfunktion 4a ausgewertet, die eine Abweichung der Beurteilungs-Werte 13b der Ausgangsgrößen von den im Lern- Datensatz 2 enthaltenen Lern-Werten 13a der Ausgangsgrößen 13 charakterisiert. Gemäß Block 123 wird in Abhängigkeit des so ermittelten Werts der Vortrainings- Kostenfunktion 4a mindestens ein Parameter 12a der internen Verarbeitungskette 12 des trainierbaren Moduls 1 angepasst. Aus den so erhaltenen Werten der Parameter 12a kann schließlich gemäß Block 124 die Liste 3 der diskreten Werte 3a-3c ermittelt werden. Beispielsweise kann ein Intervall ermittelt werden, in dem die Parameter 12a liegen, und die diskreten Werte 3a-3c können, beispielsweise äquidistant, über dieses Intervall verteilt werden.
In Schritt 130 beginnt das eigentliche Training des trainierbaren Moduls 1. Hier werden die Lern-Werte 11a wiederum durch das trainierbare Modul 1 auf Beurteilungs-Werte 13b der Ausgangsgrößen abgebildet. Die anschließend in Schritt 140 ausgewertete Kostenfunktion 4 hängt jedoch im Unterschied zur Vortrainings- Kostenfunktion 4a im optionalen Vortraining nicht nur von der Abweichung der Beurteilungs-Werte 13b von den Lern-Werten 13a ab, sondern charakterisiert zusätzlich auch eine Abweichung mindestens eines Parameters 12a der internen Verarbeitungskette 12 von mindestens einem diskreten Wert 3a-3c in der Liste 3. In Schritt 150 wird in Abhängigkeit des so ermittelten Werts der Kostenfunktion 4 mindestens ein Parameter 12a der internen Verarbeitungskette 12 angepasst.
Üblicherweise werden viele Lern- Datensätze 2 verwendet, und diese Lern- Datensätze 2 werden auch in einer Vielzahl von Epochen immer wieder durch das trainierbare Modul 1 verarbeitet. Jedes Mal, wenn geänderte Werte für die Parameter 12a der internen Verarbeitungskette 12 ermittelt werden, können diese auf das trainierbare Modul 1 zurückgespielt werden und so unmittelbar die darauffolgenden Verarbeitungen von Lern- Datensätzen 2 beeinflussen. Das Training kann beispielsweise enden, wenn eine vorgegebene Abbruchbedingung erreicht ist. Die Abbruchbedingung kann beispielsweise ein Schwellwert für die Kostenfunktion, und/oder eine für das Training zur Verfügung stehende Zeit, und/oder das Absolvieren einer vorgegebenen Anzahl von Epochen, umfassen.
Das Training in Schritt 130 kann beispielsweise mit zufälligen Werten für die Parameter 12a initialisiert werden. Wenn jedoch bereits ein Vortraining durchgeführt wurde, um die Liste 3 der diskreten Werte 3a-3c festzulegen, dann können die im Rahmen dieses Vortrainings ermittelten Parameter 12a als Startwerte verwendet werden. Auf diese Weise wird der in dieses Vortraining investierte Aufwand optimal ausgenutzt. Alternativ oder auch in Kombination zum Vortraining kann in Schritt 160 die Anzahl N von Bits, und/oder die Liste 3 der diskreten Werte 3a-3c, in Abhängigkeit des Werts der Kostenfunktion 4 angepasst werden.
In Schritt 170 können die Parameter 12a auf diejenigen diskreten Werte 3a-3c aus der Liste 3 gesetzt werden, die ihnen jeweils am nächsten liegen. Optional kann das trainierbare Modul 1 anschließend in Schritt 180 validiert werden. Wenn das trainierbare Modul 1 schließlich auf Hardware implementiert wird, wird es genau das gleiche Verhalten zeigen wie in der Validierung 180.
Im Rahmen der Validierung wird gemäß Block 181 eine Vielzahl von Validierungs-Datensätzen 5 bereitgestellt. Diese Validierungs-Datensätze 5 umfassen jeweils Validierungs-Werte 51 der Eingangsgrößen 11 und zugehörige Validierungs-Werte 53 der Ausgangsgrößen 13. Dabei ist die Menge der Validierungs-Datensätze 5 nicht deckungsgleich mit der Menge der Lern- Datensätze 2. Besonders vorteilhaft sind diese beiden Mengen disjunkt.
Gemäß Block 182 werden für jeden Validierungs-Datensatz 5 die jeweiligen Validierungs-Werte 51 der Eingangsgrößen 11 durch das trainierbare Modul 1 auf Prüf-Werte 13c der Ausgangsgrößen 13 abgebildet. Gemäß Block 183 wird geprüft, ob die Abweichungen der Prüf-Werte 13c von den Validierungs-Werten 53 ein vorgegebenes Kriterium 55 erfüllen. Ist dies der Fall, wird das trainierte trainierbare Modul 1 als tauglich für den realen Einsatz befunden.
Innerhalb des Kastens 150 sind beispielhaft mehrere Möglichkeiten eingezeichnet, wie die Anpassung 150 der Parameter 12a während des Trainings verfeinert werden kann, um die Genauigkeit zu verbessern und zugleich Trainingszeit zu sparen.
Gemäß Block 151 können Werte der Parameter 12a, die niedriger sind als der niedrigste diskrete Wert 3a-3c der Liste 3, auf diesen niedrigsten diskreten Wert 3a-3c gesetzt werden. Gemäß Block 152 können Werte der Parameter 12a, die höher sind als der höchste diskrete Wert 3a-3c der Liste 3, auf diesen höchsten Wert 3a-3c gesetzt werden. Die Anpassung 150 der Parameter 12a kann beinhalten, gemäß Block 153 einen Gradienten 4d der in den Parametern 12a als Variablen ausgedrückten Kostenfunktion 4 in Richtung auf bessere Werte der Kostenfunktion 4 zu ermitteln und gemäß Block 154 die Parameter 12a um ein Produkt aus dem Gradienten 4d und einer Schrittweite zu ändern. Es können dann gemäß Block 153a Komponenten des Gradienten 4d, die sich auf Parameter 12a beziehen, die aktuell den niedrigsten diskreten Wert 3a-3c der Liste 3 haben, auf nichtnegative Werte begrenzt werden. Es können gemäß Block 153b Komponenten des Gradienten 4d, die sich auf Parameter 12a beziehen, die aktuell den höchsten diskreten Wert 3a-3c der Liste 3 haben, auf nichtpositive Werte begrenzt werden.
Die Kostenfunktion 4 kann eine gewichtete Summe aus mindestens zwei Beiträgen enthalten. In dem in Figur 1 gezeigten Beispiel gibt es zwei Beiträge 4b und 4c. Hier charakterisiert der erste Beitrag 4b eine Abweichung der Beurteilungs-Werte 13b der Ausgangsgrößen 13 von den im Lern- Datensatz 2 enthaltenen Lern-Werten 13a der Ausgangsgrößen 13. Der zweite Beitrag 4c charakterisiert eine Abweichung mindestens eines Parameters 12a der internen Verarbeitungskette 12 von mindestens einem diskreten Wert 3a-3c in der Liste 3. Es kann dann gemäß Block 155 mit dem Fortschritt des Trainings die Gewichtung des ersten Beitrags 4b vermindert und die Gewichtung des zweiten Beitrags 4c erhöht werden.
Figur 2 ist ein Ablaufdiagramm eines Ausführungsbeispiels des Verfahrens 200 zur Herstellung eines trainierbaren Moduls 1. In Schritt 210 wird das trainierbare Modul mit dem Verfahren 100 trainiert, und es werden ganzzahlige Werte für die Parameter 12a der internen Verarbeitungskette 12 des trainierbaren Moduls 1 ermittelt. Dabei unterscheiden sich zahlenmäßig benachbarte diskrete Werte 3a- 3c sich jeweils um eine Schrittweite D, die eine Zweierpotenz einer nichtnegativen ganzen Zahl ist.
Wie zuvor beschrieben, lässt sich dann die Darstellung und/oder Verarbeitung dieser Parameter besonders gut in Festkomma-Arithmetik implementieren. In Schritt 220 wird eine solche Implementierung auf einem Rechenwerk 6, das für die Darstellung und/oder Verarbeitung der Parameter 12a in Festkomma- Arithmetik ausgebildet ist, vorgenommen. In Schritt 230 werden die Parameter 12a in dem Rechenwerk auf die in Schritt 210 ermittelten ganzzahligen Werte gesetzt.
Figur 3 zeigt ein Ausführungsbeispiel des trainierbaren Moduls 1. Das trainierbare Modul 1 ist in einem Rechenwerk 6 implementiert, das für die Darstellung und/oder Verarbeitung der Parameter 12a in Festkomma-Arithmetik ausgebildet ist. Mit der beispielhaft als künstliches neuronales Netzwerk, KNN, gezeichneten und durch die Parameter 12a charakterisierten internen Verarbeitungskette 12 werden im Betrieb des trainierbaren Moduls 1 eine oder mehrere Eingangsgrößen 11 auf eine oder mehrere Ausgangsgrößen 13 abgebildet.
Figur 4 zeigt qualitativ die Auswirkung des Verfahrens 100 auf die Struktur, die das Spektrum der Parameter 12a zeigt. In den Diagrammen ist jeweils die Häufigkeit p der Werte der Parameter 12a über diesen Werten aufgetragen.
Diagramm (a) zeigt eine uniforme Verteilung, so wie sie beispielsweise bei einer Initialisierung der Parameter 12a mit zufälligen Werten entsteht. Diagramm (b) zeigt eine Normalverteilung, die bei einem herkömmlichen Training ohne Einschränkung auf diskrete Werte 3a-3c aus einer Liste 3 entsteht. Diagramm (c) zeigt eine multimodale Verteilung, die beim Training mit dem Verfahren 100 für drei beispielhaft eingezeichnete diskrete Werte 3a-3c entsteht. Die optimale theoretische Verteilung für diese drei Quantisierungsstufen 3a-3c wäre die in Diagramm (d) gezeigte Dirac-Verteilung mit drei Dirac-Pulsen.
Figur 5 zeigt beispielhaft am realen Training eines trainierbaren Moduls 1 mit einem KNN als interner Verarbeitungskette 12 auf dem Benchmark- Datensatz „CIFAR-10“, wie sich die Häufigkeiten p von Werten der Parameter 12a einer konkreten Schicht in dem KNN in Abhängigkeit der Epochenzahl e entwickeln. Zu Beginn des Trainings (e=0) sind die Parameter 12a näherungsweise normalverteilt wie in der Prinzipskizze in Diagramm (b) von Figur 4. Mit zunehmender Epochenzahl e nähert sich die Verteilung immer mehr der in Diagramm (c) von Figur 4 gezeigten multimodalen Verteilung an. Figur 6 zeigt in einem weiteren Beispiel, wie sich die Parameter 12a der, von oben gesehen, ersten Schicht (Reihe (a)), der vierten Schicht (Reihe (b)) und der siebten Schicht (Reihe (c)), eines VGG11-KNN im Laufe des Trainings auf dem Benchmark- Datensatz „CIFAR-100“ in Abhängigkeit der Epochenzahl e entwickeln. Die vier Spalten von Figur 6 korrespondieren, von links nach rechts, zu den Epochenzahlen e=0, e=20, e=80 und e=100. Analog zu Figur 5 sind in jedem der Diagramme in Figur 6 die Häufigkeiten p von Werten der Parameter 12a der jeweiligen Schicht bei der jeweiligen Epochenzahl e aufgetragen. In dem in Figur 6 gezeigten Beispiel sind für die Parameter 12a jeweils nur die drei diskreten Werte -D, 0 und D zugelassen.
Zu Beginn des Trainings (e=0) ist die Verteilung der Parameter 12a, die aus einem Vortraining stammt, unimodal mit einem Peak bei 0. Die Verteilung umfasst auch noch Ausläufer für Werte der Parameter 12a, die unterhalb von -D bzw. oberhalb von D liegen. In dem in Figur 6 gezeigten Beispiel werden bei jedem Update-Schritt der Parameter 12a die Werte dieser Parameter 12a auf das Intervall [-D, D] eingeschränkt. Daher sind bereits bei e=20 die genannten Ausläufer vollständig verschwunden.
Mit zunehmendem Trainingsfortschritt, d.h., mit zunehmender Epochenzahl e, wird in der Kostenfunktion 4 das Gewicht eines ersten Beitrages 4b, der sich auf das Training des KNN in Bezug auf die Klassifikationsaufgabe am CIFAR-100- Datensatz bezieht, vermindert. Hingegen wird das Gewicht eines zweiten Beitrages 4c, der sich auf die Regularisierung durch Diskretisierung der Parameter 12a bezieht, erhöht.
Bei der Epochenzahl e=100 sind die Zentren der drei Peaks der Verteilungen so nah an den diskreten Werten -D, 0 bzw. D, dass die Diskretisierung der Parameter 12a zu keinem nennenswerten Fehler mehr führt.
Figur 7 zeigt anhand des bereits in Figur 5 veranschaulichten realen Trainings, welcher Prozentsatz r der Parameter 12a in verschiedenen Schichten a-d des KNN in einem Trainingszeitraum, der von der jeweils angegebenen Epoche 10 Epochen zurückreicht, „rotiert“ ist, d.h., von einer Mode der multimodalen Verteilung zu einer anderen gewechselt ist. Die Schichten a-c sind Faltungsschichten und stehen in der Schichtenfolge des KNN an erster, dritter bzw. fünfter Stelle. Die Schicht d ist eine vollvernetzte Schicht und steht in der Schichtenfolge des KNN an siebter Stelle. Es zeigt sich, dass die Parameter 12a in den verschiedenen Schichten sich unterschiedlich schnell endgültig für eine der Moden „entscheiden“. Ab einer Epochenzahl e von etwa 180 ist diese
Entscheidung jedoch überall im KNN zementiert.
Figur 8 zeigt anhand des bereits in Figur 6 veranschaulichten realen Trainings, welcher Prozentsatz r der Parameter 12a von Schichten a-k des KNN in jeder Epoche e von einer Mode der multimodalen Verteilung zu einer anderen gewechselt ist. Diagramm (a) zeigt den Verlauf von r mit Begrenzung des Wertebereichs der Parameter 12a auf das Intervall [-D, D] nach jedem Update- Schritt. Diagramm (b) zeigt zum Vergleich den Verlauf von r ohne diese Begrenzung des Wertebereichs.
Die Begrenzung des Wertebereichs hat den im Vergleich deutlich sichtbaren Effekt, dass gerade zu Beginn des Trainings besonders viele Parameter 12a die Mode wechseln, d.h. von einem der diskreten Werte 3a-3c der Liste 3 zu einem anderen wechseln. Das bedeutet, dass es gerade zu Beginn des Trainings einen größeren Lernfortschritt gibt als ohne die Begrenzung des Wertebereichs. Wie zuvor erläutert, verbessert dies die Genauigkeit des Trainings und spart gleichzeitig in erheblichem Maße Trainingszeit ein.

Claims

Ansprüche
1. Verfahren (100) zum Trainieren eines trainierbaren Moduls (1), welches eine oder mehrere Eingangsgrößen (11) durch eine interne Verarbeitungskette (12) auf eine oder mehrere Ausgangsgrößen (13) abbildet, wobei die interne Verarbeitungskette (12) durch einen Satz Parameter (12a) charakterisiert ist, mit den Schritten:
• es wird mindestens ein Lern- Datensatz (2) bereitgestellt (110), der Lern- Werte (11a) der Eingangsgrößen (11) und zugehörige Lern-Werte (13a) der Ausgangsgrößen (13) umfasst;
• es wird eine Liste (3) von diskreten Werten (3a-3c) bereitgestellt (120), aus denen die die interne Verarbeitungskette (12) charakterisierenden Parameter (12a) während des Trainings ausgewählt werden sollen, wobei die diskreten Werte (3a-3c) so gewählt sind, dass sie sich mit einer vorgegebenen Anzahl N von Bits ohne Qualitätsverlust als Festkommazahl speichern lassen;
• die im Lern- Datensatz (2) enthaltenen Lern-Werte (11a) der Eingangsgrößen (11) werden durch das trainierbare Modul (1) auf Beurteilungs-Werte (13b) der Ausgangsgrößen abgebildet (130);
• es wird eine vorgegebene Kostenfunktion (4) ausgewertet (140), die sowohl eine Abweichung der Beurteilungs-Werte (13b) der Ausgangsgrößen (13) von den im Lern- Datensatz (2) enthaltenen Lern- Werten (13a) der Ausgangsgrößen (13) als auch eine Abweichung mindestens eines Parameters (12a) der internen Verarbeitungskette (12) von mindestens einem diskreten Wert (3a-3c) in der Liste (3) charakterisiert;
• mindestens ein Parameter (12a) der internen Verarbeitungskette (12) wird angepasst (150) mit dem Ziel, den Wert der Kostenfunktion (4) zu verbessern, wobei bei mindestens einer Anpassung (150) der Parameter (12a) der Wertebereich der Parameter (12a), und/oder eines Gradienten (4d) der Kostenfunktion (4), unter Heranziehung der diskreten Werte (3a-3c) begrenzt wird.
2. Verfahren (100) nach Anspruch 1, wobei bei mindestens einer Anpassung (150) der Parameter (12a)
• Werte der Parameter (12a), die niedriger sind als der niedrigste diskrete Wert (3a-3c) der Liste (3), auf diesen niedrigsten diskreten Wert (3a-3c) gesetzt werden (151), und/oder
• Werte der Parameter (12a), die höher sind als der höchste diskrete Wert (3a-3c) der Liste (3), auf diesen höchsten Wert (3a-3c) gesetzt werden (152).
3. Verfahren (100) nach einem der Ansprüche 1 bis 2, wobei bei mindestens einer Anpassung (150) der Parameter (12a) ein Gradient (4d) der in den Parametern (12a) als Variablen ausgedrückten Kostenfunktion (4) in Richtung auf bessere Werte der Kostenfunktion (4) ermittelt wird (153) und wobei die Parameter (12a) um ein Produkt aus dem Gradienten (4d) und einer Schrittweite geändert werden (154), wobei beim Ermitteln des Gradienten (153)
• Komponenten des Gradienten (4d), die sich auf Parameter (12a) beziehen, die aktuell den niedrigsten diskreten Wert (3a-3c) der Liste (3) haben, auf nichtnegative Werte begrenzt werden (153a), und/oder
• Komponenten des Gradienten (4d), die sich auf Parameter (12a) beziehen, die aktuell den höchsten diskreten Wert (3a-3c) der Liste (3) haben, auf nichtpositive Werte begrenzt werden (153b).
4. Verfahren (100) nach einem der Ansprüche 1 bis 3, wobei die Kostenfunktion (4) eine gewichtete Summe aus mindestens
• einem ersten Beitrag (4b), der eine Abweichung der Beurteilungs-Werte (13b) der Ausgangsgrößen (13) von den im Lern- Datensatz (2) enthaltenen Lern-Werten (13a) der Ausgangsgrößen (13) charakterisiert, und • einem zweiten Beitrag (4c), der eine Abweichung mindestens eines Parameters (12a) der internen Verarbeitungskette (12) von mindestens einem diskreten Wert (3a-3c) in der Liste (3) charakterisiert, enthält, wobei mit dem Fortschritt des Trainings die Gewichtung des ersten Beitrags (4b) vermindert und die Gewichtung des zweiten Beitrags (4c) erhöht wird (155).
5. Verfahren (100) nach einem der Ansprüche 1 bis 4, wobei die Anzahl N von Bits zwischen 2 und 7, bevorzugt zwischen 2 und 5 und ganz besonders bevorzugt zwischen 2 und 3 gewählt wird.
6. Verfahren (100) nach einem der Ansprüche 1 bis 5, wobei die Liste (3) von diskreten Werten (3a-3c) anhand der bei einem Vortraining des trainierbaren Moduls (1) erhaltenen Werte der Parameter (12a) der internen Verarbeitungskette (12) ermittelt wird (124), wobei dieses Vortraining folgende Schritte umfasst:
• die in mindestens einem Lern- Datensatz (2) enthaltenen Lern-Werte (11a) der Eingangsgrößen (11) werden durch das trainierbare Modul (1) auf Beurteilungs-Werte (13b) der Ausgangsgrößen (13) abgebildet (121);
• es wird eine vorgegebene Vortrainings- Kostenfunktion (4a) ausgewertet (122), die eine Abweichung der Beurteilungs-Werte (13b) der Ausgangsgrößen (13) von den im Lern- Datensatz (2) enthaltenen Lern- Werten (13a) der Ausgangsgrößen (13) charakterisiert;
• mindestens ein Parameter (12a) der internen Verarbeitungskette (12) wird angepasst (123) mit dem Ziel, den Wert der Vortrainings- Kostenfunktion (4a) zu verbessern.
7. Verfahren (100) nach Anspruch 6, wobei ein Wertebereich ermittelt wird, in dem die Parameter (12a) liegen, und wobei diskreten Werte (3a-3c) der Liste (3) abhängig von diesem Bereich ermittelt werden.
8. Verfahren (100) nach einem der Ansprüche 1 bis 7, wobei die Anzahl N von Bits, und/oder die Liste (3) der diskreten Werte (3a-3c), angepasst wird (160) mit dem Ziel, den Wert der Kostenfunktion (4) zu verbessern.
9. Verfahren (100) nach einem der Ansprüche 1 bis 8, wobei die diskreten Werte (3a-3c) in der Liste (3) ganzzahlig sind und wobei zahlenmäßig benachbarte diskrete Werte (3a-3c) sich jeweils um eine Schrittweite D unterscheiden, die eine Zweierpotenz einer nichtnegativen ganzen Zahl ist.
10. Verfahren (100) nach einem der Ansprüche 1 bis 9, wobei die diskreten Werte (3a-3c) in der Liste (3) einheitlich um 0 verteilt sind.
11. Verfahren (100) nach einem der Ansprüche 1 bis 10, wobei jeder der Parameter (12a) auf denjenigen diskreten Wert (3a-3c) aus der Liste (3) gesetzt wird (170), dem er am nächsten ist, und wobei das trainierbare Modul (1) nach dem Setzen (170) der Parameter (12a) auf die diskreten Werte validiert wird (180), wobei das Validieren (180) die folgenden Schritte umfasst:
• es wird eine Vielzahl von Validierungs-Datensätzen (5) bereitgestellt (181), die jeweils Validierungs-Werte (51) der Eingangsgrößen (11) und zugehörige Validierungs-Werte (53) der Ausgangsgrößen (13) umfassen, wobei die Menge der Validierungs-Datensätze (5) nicht deckungsgleich mit der Menge der Lern- Datensätze (2) ist;
• für jeden Validierungs-Datensatz (5) werden die jeweiligen Validierungs- Werte (51) der Eingangsgrößen (11) durch das trainierbare Modul (1) auf Prüf-Werte (13c) der Ausgangsgrößen (13) abgebildet (182);
• es wird geprüft (183), ob die Abweichungen der Prüf-Werte (13c) von den Validierungs-Werten (53) der Ausgangsgrößen (13) ein vorgegebenes Kriterium (55) erfüllen.
12. Verfahren (200) zur Herstellung eines trainierbaren Moduls (1), welches eine oder mehrere Eingangsgrößen (11) durch eine interne Verarbeitungskette (12) auf eine oder mehrere Ausgangsgrößen (13) abbildet, wobei die interne Verarbeitungskette (12) durch einen Satz Parameter (12a) charakterisiert ist, mit den Schritten:
• durch Trainieren mit dem Verfahren (100) nach Anspruch 4 in Verbindung mit einem der Ansprüche 9 bis 10 werden diskrete Werte für die Parameter (12a) der internen Verarbeitungskette (12) ermittelt (210);
• die interne Verarbeitungskette (12) des trainierbaren Moduls (1) wird in einem Rechenwerk (6) implementiert (220), das für die Darstellung und/oder Verarbeitung der die interne Verarbeitungskette (12) charakterisierenden Parameter (12a) in Festkomma-Arithmetik ausgebildet ist;
• die Parameter (12a) werden in dem Rechenwerk (6) auf die zuvor ermittelten (210) diskreten Werte gesetzt (230).
13. Verfahren mit den Schritten:
• ein trainierbares Modul (1) wird mit dem Verfahren (100) nach einem der Ansprüche 1 bis 12 trainiert;
• das trainierbare Modul (1) wird betrieben, indem ihm eine oder mehrere Eingangsgrößen (11) zugeführt werden;
• abhängig von den vom trainierbaren Modul (11) gelieferten Ausgangsgrößen (13) wird ein Fahrzeug, ein Roboter, ein Qualitätskontrollsystem, und/oder ein System zur Überwachung eines Bereichs auf der Basis von Sensordaten, angesteuert.
14. Trainierbares Modul (1) für die Abbildung einer oder mehrerer Eingangsgrößen (11) auf eine oder mehrere Ausgangsgrößen (13) mittels einer internen Verarbeitungskette (12), welche durch einen Satz Parameter (12a) charakterisiert ist und in einem Rechenwerk (6) implementiert ist, wobei das Rechenwerk (6) für die Darstellung und/oder Verarbeitung der Parameter (12a) in Festkomma-Arithmetik ausgebildet ist.
15. Trainierbares Modul (1) nach Anspruch 14, ausgebildet als Klassifikator und/oder Regressorfür mit mindestens einem Sensor aufgenommene physikalische Messdaten.
16. Computerprogramm, enthaltend maschinenlesbare Anweisungen, die, wenn sie auf einem oder mehreren Computern ausgeführt werden, den oder die Computer dazu veranlassen, ein Verfahren (100, 200) nach einem der Ansprüche 1 bis 13 auszuführen.
17. Maschinenlesbarer Datenträger und/oder Downloadprodukt mit dem Computerprogramm nach Anspruch 16.
18. Computer oder sonstige Recheneinheit mit dem Computerprogramm nach Anspruch 16, und/oder mit dem maschinenlesbaren Datenträger und/oder Downloadprodukt nach Anspruch 17, und/oder in sonstiger Weise spezifisch dazu ausgebildet, ein Verfahren (100, 200) nach einem der Ansprüche 1 bis 13 auszuführen.
PCT/EP2020/072158 2019-09-19 2020-08-06 Schnelles quantisiertes training trainierbarer module WO2021052677A1 (de)

Priority Applications (5)

Application Number Priority Date Filing Date Title
EP20753732.5A EP4032030A1 (de) 2019-09-19 2020-08-06 Schnelles quantisiertes training trainierbarer module
KR1020227013027A KR20220065025A (ko) 2019-09-19 2020-08-06 훈련 가능한 모듈들의 고속 양자화 훈련
US17/632,735 US20220277200A1 (en) 2019-09-19 2020-08-06 Fast quantised training of trainable modules
CN202080065624.5A CN114402340A (zh) 2019-09-19 2020-08-06 对可训练模块的快速量化训练
JP2022517997A JP7385022B2 (ja) 2019-09-19 2020-08-06 トレーニング可能なモジュールの高速な量子化されたトレーニング

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102019214308.3A DE102019214308B4 (de) 2019-09-19 2019-09-19 Schnelles quantisiertes Training trainierbarer Module
DE102019214308.3 2019-09-19

Publications (1)

Publication Number Publication Date
WO2021052677A1 true WO2021052677A1 (de) 2021-03-25

Family

ID=71996001

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2020/072158 WO2021052677A1 (de) 2019-09-19 2020-08-06 Schnelles quantisiertes training trainierbarer module

Country Status (7)

Country Link
US (1) US20220277200A1 (de)
EP (1) EP4032030A1 (de)
JP (1) JP7385022B2 (de)
KR (1) KR20220065025A (de)
CN (1) CN114402340A (de)
DE (1) DE102019214308B4 (de)
WO (1) WO2021052677A1 (de)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102017206892A1 (de) 2017-03-01 2018-09-06 Robert Bosch Gmbh Neuronalnetzsystem
KR102601604B1 (ko) 2017-08-04 2023-11-13 삼성전자주식회사 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치
US11928601B2 (en) 2018-02-09 2024-03-12 Google Llc Neural network compression

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
PAULIUS MICIKEVICIUS ET AL: "Mixed Precision Training", ARXIV.ORG, CORNELL UNIVERSITY LIBRARY, 201 OLIN LIBRARY CORNELL UNIVERSITY ITHACA, NY 14853, 15 February 2018 (2018-02-15), XP081319104 *
WESS MATTHIAS ET AL: "Weighted Quantization-Regularization in DNNs for Weight Memory Minimization Toward HW Implementation", IEEE TRANSACTIONS ON COMPUTER AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 37, no. 11, 1 November 2018 (2018-11-01), pages 2929 - 2939, XP011692583, ISSN: 0278-0070, [retrieved on 20181017], DOI: 10.1109/TCAD.2018.2857080 *

Also Published As

Publication number Publication date
JP7385022B2 (ja) 2023-11-21
US20220277200A1 (en) 2022-09-01
DE102019214308B4 (de) 2022-07-28
KR20220065025A (ko) 2022-05-19
CN114402340A (zh) 2022-04-26
EP4032030A1 (de) 2022-07-27
DE102019214308A1 (de) 2021-03-25
JP2022548965A (ja) 2022-11-22

Similar Documents

Publication Publication Date Title
DE102005046747B3 (de) Verfahren zum rechnergestützten Lernen eines neuronalen Netzes und neuronales Netz
EP2999998B1 (de) Methode zur ermittlung eines modells einer ausgangsgrösse eines technischen systems
DE102012009502A1 (de) Verfahren zum Trainieren eines künstlichen neuronalen Netzes
WO2019081241A1 (de) Verfahren, vorrichtung und computerprogramm zur erstellung eines tiefen neuronalen netzes
DE102019209644A1 (de) Verfahren zum Trainieren eines neuronalen Netzes
DE102021002318A1 (de) Verfahren zur Erstellung eines Simulationsmodells, Verwendung eines Simulationsmodells, Computerprogrammprodukt, Verfahren zur Kalibrierung eines Steuergeräts
DE4002336A1 (de) Bezugsmuster-erneuerungsverfahren
DE102019211672A1 (de) Trainingsverfahren für ein künstliches neuronales Netzwerk
DE4121453C2 (de) Näherungsschlußfolgerungsvorrichtung
WO2020178009A1 (de) Training neuronaler netzwerke für effizientes implementieren auf hardware
DE102019214308B4 (de) Schnelles quantisiertes Training trainierbarer Module
WO2020064209A1 (de) Maschinelles lernsystem, sowie ein verfahren, ein computerprogramm und eine vorrichtung zum erstellen des maschinellen lernsystems
WO2020169416A1 (de) Quantisiertes training trainierbarer module
DE102013206274A1 (de) Verfahren und Vorrichtung zum Anpassen eines nicht parametrischen Funktionsmodells
DE102020210700A1 (de) Flexiblerer iterativer Betrieb künstlicher neuronaler Netzwerke
DE102020116013A1 (de) Verfahren zum Bereitstellen eines komprimierten künstlichen neuronalen Netzes mittels eines Autoencoders
WO2021009153A1 (de) Komponentenbasierte verarbeitung von eingangsgrössen
DE102004013924B3 (de) Vorrichtung zur kontextabhängigen Datenanalyse
DE102020122979A1 (de) Verfahren zum Bereitstellen eines komprimierten, robusten neuronalen Netzes und Assistenzeinrichtung
EP1359539A2 (de) Neurodynamisches Modell der Verarbeitung visueller Informationen
DE102019216973A1 (de) Lernverfahren für neuronale netze basierend auf evolutionären algorithmen
DE102005045120A1 (de) Vorrichtung und Verfahren zur dynamischen Informationsselektion mit Hilfe eines neuronalen Netzes
DE102021204343A1 (de) Steuergerät zum Erzeugen von Trainingsdaten zum Trainieren eines Algorithmus des maschinellen Lernens
DE102022115101A1 (de) Automatisierter entwurf von architekturen künstlicher neuronaler netze
DE19641286C1 (de) Lernverfahren für selbstorganisierende neuronale Netzwerke und Vorrichtung zur Durchführung des Verfahrens

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20753732

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022517997

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20227013027

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2020753732

Country of ref document: EP

Effective date: 20220419