Method, device and computer program for running a deep neural network
By using deep neural networks with bridging connections and parallel processing, the problems of high energy consumption and large memory requirements on mobile devices have been solved, enabling energy-efficient and high-performance deep neural network operation and improving processing speed and accuracy.
Patent Information
- Application Number
- CN202080027127.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-04-09
- Filing Date
- 2020-03-24
- Publication Date
- 2025-12-19
- Estimated Expiration
- 2040-03-24
AI Technical Summary
Running deep neural networks on mobile devices consumes a lot of energy and requires a lot of memory. Existing technologies struggle to provide efficient and accurate results with limited resources.
By employing a deep neural network with cross-connections, the energy demand is dynamically adjusted by selecting different paths to propagate input parameters, activating only necessary layers, improving resource utilization through parallel processing, avoiding redundant calculation of intermediate parameters, and using computing units to run each layer in parallel.
It enables energy-efficient operation of deep neural networks on mobile devices, reduces memory requirements, improves processing speed and throughput, and ensures low latency and high accuracy from input to output signals.
Smart Images

Figure CN113614747B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The invention relates to a method for running a deep neural network. The invention likewise relates to a device and a computer program respectively, which are set up to implement the method. BACKGROUND
[0002] The authors Fischer, V., Köhler, J. and Pfeil, T. disclose in their publication "The Streaming rollout of deep networks - towards fully model-parallel execution" in Advances in Neural Information Processing Systems (pages 4043-4054) a method for being able to run deep neural networks completely parallelized.
[0003] DE 20 2018 104 373 discloses a device for implementing a method in which a machine learning system is assigned a predefinable control pattern, which characterizes an order in which the layers of the machine learning system determine their intermediate variables.
[0004] Since mobile terminal devices usually have a limited energy budget, it is desirable to consume as little energy as possible when running deep neural networks on these terminal devices. The method according to the invention is advantageous in that the deep neural network is implemented at least partially sequentially in order to save energy and still provide accurate results. The method according to the invention is further advantageous in that the sequentially implemented deep neural network requires less memory than a plurality of deep neural networks optimized for a corresponding (energy or time) budget. The advantage of implementing the deep neural network at least partially sequentially is a low latency from the input signal to the output signal. The first "coarse" result is then refined by adding further paths. SUMMARY
[0005] In a first aspect of the present application, a method, in particular a computer-implemented method, for operating a deep neural network having at least one skip connection is proposed according to independent claim 1. The method mainly comprises the following steps: selecting a first path, the first path characterizing a layer sequence along at least a pre-specifiable portion of an order of layers of the deep neural network using the skip connection. Then, an output quantity is determined by means of a propagation of an input quantity along the first path. Then, it is checked whether the output quantity fulfills a pre-specifiable criterion. If the pre-specifiable criterion is not fulfilled, a further path through the deep neural network is selected, the further path being different from the first path, for example the further path being at least one layer longer than the first path. Preferably, the second path differs from the first path in that, in particular, the layer sequence of the second path has at least one layer of the deep neural network which is not contained in the first path in addition to the layers of the first path. Then, the input quantity is propagated along the second path. It is also conceivable that, if the architecture of the deep neural network enables paths of the same length, a path of the same length through the deep neural network is selected.
[0006] A skip connection connects one of the layers of the deep neural network additionally with a further, in particular next, layer of the pre-specifiable order of layers of the deep neural network arranged in succession. In the pre-specifiable order, the further layer is not the immediately next layer having the skip connection.
[0007] A path, in particular a signal propagation path, can characterize an uninterrupted, forward sequence of a plurality of layers of the deep neural network. That is, the path then characterizes how the plurality of layers of the deep neural network are connected in succession in order to propagate an input quantity through the deep neural network starting at an input layer, i.e. a layer of the deep neural network which receives the input quantity of the deep neural network, until an output layer which outputs an output quantity of the deep neural network.
[0008] It is noted that the layers forming a respective path determine their intermediate quantities only from at least one intermediate quantity of at least one (immediately) preceding connected layer of the path which is assigned to these layers. It is further noted that a layer connected with more than one preceding layer in the order of layers of the deep neural network determines its intermediate quantity only from the immediately preceding determined intermediate quantity of the immediately preceding connected layer according to the path. The intermediate quantity is understood to be the output quantity of a layer, wherein the output quantity is provided as an input quantity of the next connected layer.
[0009] Propagation along the path is understood such that the input quantity is processed by the deep neural network along the prescribed sequence of layers of the path.
[0010] The advantage of this aspect is that energy is saved when running the deep neural network, since not all layers of the deep neural network are needed, but only the layers of the respective path are used. Another advantage is that the energy demand can be dynamically adjusted depending on which of the different possible paths through the deep neural network are chosen. Thus, the depth of the deep neural network can be dynamically adapted according to predefinable conditions in order to still ensure a more reliable processing of the input quantity.
[0011] It is proposed that, when propagating the input quantity along the path, those layers of the neural network which are not needed for the respective used path are deactivated and only activated when that layer is needed for the respective path.
[0012] A deactivated layer can be understood such that these deactivated layers do not have to be loaded from memory and thus do not require further resources of the computer. If the deep neural network is implemented purely in hardware, a deactivated layer can be understood such that even if suitable data are present, for example at the hardware module to which the layer belongs, the module does not carry out an arithmetic operation.
[0013] Due to this deactivation, the respective arithmetic operation is not carried out for this layer. Thus, the deep neural network can process the input quantity particularly energy-efficiently.
[0014] It is further proposed that, when propagating along the second path, those layers of the second path which differ from the first path determine their intermediate quantity. It is further proposed that, when propagating along the second path, those layers of the second path which are connected to more than one previous layer in the deep neural network and which were also contained in the first path determine their intermediate quantity also in dependence on the provided intermediate quantity of the respective immediately preceding connected layer of the second path and the last provided intermediate quantity of the immediately preceding connected layer of the first path. Advantageously, the last provided intermediate quantity is reused, i.e. not recalculated.
[0015] The last provided intermediate quantity is that intermediate quantity which was provided to the layer when propagating the input quantity along the first path.
[0016] It is noted that layers which are connected to more than one previous layer can also combine their intermediate quantities with each other, for example with the mathematical operations mean(), max(), add(), concat(), with the intermediate quantities which have already been determined along the first path.
[0017] The advantage in this case is that unnecessary recalculation of intermediate quantities for the respective input quantity can be avoided, whereby an even more sparing use of the limited resources available can be achieved.
[0018] It is further proposed that the output quantity is determined by means of the input quantity of the deep neural network being propagated along the first and the second path at the same time. The common layers of the first and the second path can be implemented exactly once on exactly one computing unit. These common layers are layers whose respective position in the predefinable order of the layers of the deep neural network corresponds to the same position in the sequence of layers of the first path and in the sequence of layers of the second path.
[0019] Preferably, the intermediate quantities of those of the remaining layers which are contained in both the sequence of layers of the first and the second path and which have a different position in the sequence of layers of the first path and in the sequence of layers of the second path, respectively, are determined when these layers are implemented repeatedly from the last provided intermediate quantity according to the preceding position in the different positions of the respective layer when the intermediate quantity was provided for the first time and from the intermediate quantity provided according to the later position of the different positions of the respective layer.
[0020] On the computing unit, the layers of the first and the second path determine their intermediate quantities successively according to their position in the sequence of layers of the respective path, respectively. For this purpose, each layer of each selected path can be assigned a time point of a sequence of time points at which the intermediate quantity of the respective layer is determined from the intermediate quantities provided to the layer. Those layers which are connected to more than one preceding layer can be assigned a plurality of different time points. Here, these time points are the points in time at which these layers implement their operational operations on the computing unit. It is further proposed that when the output quantity is determined, the sequence of time points is started and at the respective current time point all layers of the selected path which are assigned a time point corresponding to the current time point determine their intermediate quantities. Layers which are connected to more than one preceding layer determine their intermediate quantities at the respective current time point corresponding to the different time points respectively assigned to these layers from the intermediate quantities existing up to the respective time point, in particular the intermediate quantities existing at the preceding time point, respectively. Each time the output quantity is determined, a predefinable criterion is checked. If this criterion is not fulfilled, the processing of the layers is continued at the respective subsequent time point until the next output quantity is output.
[0021] It should be noted that the layers of the selected path which are assigned the same time point determine their intermediate quantities simultaneously, respectively. This has the advantageous effect that these layers are implemented in parallel and thus accelerate the method.
[0022] The assignment of the time points can be made in such a way that at each immediately subsequent next time point the intermediate quantity of the layer according to the immediately subsequent next connected layer of the path is determined from the determined intermediate quantity of the last connected layer.
[0023] Herein the decoupling of the dependencies between the layers can be said, since a layer that is connected to more than one previous layer does not have to wait until all required intermediate quantities are present. Thus, it can be said that all paths are run simultaneously.
[0024] Since the neural network only has forward connections, the layers are not needed anymore after they have determined their intermediate quantities, and multiple input quantities can advantageously be provided to the input layer at each one time point and propagated through the deep neural network. Thereby, not only the paths are run in parallel, but also the input quantities are processed in parallel through the deep neural network.
[0025] Advantageously, each layer is implemented on each one own computing unit, in particular on parallelized hardware. This allows an efficient running, since the method uses the resources efficiently as described above and additionally enables an efficient implementation of each computation by running the layers in parallel.
[0026] A further advantage in this case is that a higher throughput of input quantities to be processed can be achieved when running the layers in parallel, since during the propagation of an input quantity through the deep neural network, already other input quantities can be propagated through the deep neural network. Thus, compared to a regular running of the deep neural network, the time interval between the output of an output quantity is shortened and more input quantities can be processed within the same time period.
[0027] Advantageously, the parameters and activations of the deep neural network are quantized and wherein the first path is the shortest path through the deep neural network.
[0028] It is further proposed that each path of the deep neural network is taught separately from each other and / or at least one group of paths is taught jointly.
[0029] An advantage in this case is that by the parallel optimization of multiple paths it can be ensured that the intermediate quantities of each path do not degrade, such as when the entire neural network is trained.
[0030] It is further advantageous in this case that the deep neural network is more robust with respect to failures of paths or layers after such a teaching, since the paths are trained separately from each other.
[0031] It is further proposed that after the fulfillment of a criterion, a control quantity is determined from the output quantity of the deep neural network. The control quantity can be used to control an actuator of a technical system. The technical system can be for example an at least partially autonomous machine, an at least partially autonomous vehicle, a robot, a tool, a factory machine or a flying vehicle like a drone.
[0032] It is proposed in another aspect of the application that the input quantity of the deep neural network is a quantity detected by means of a sensor. The sensor quantity is then propagated by the deep neural network along a respective path.
[0033] In another aspect, a computer program is proposed. The computer program is set up to carry out one of the above-mentioned methods. The computer program comprises instructions which, when the computer program runs on a computer, cause the computer to carry out the method in all steps of one of the mentioned methods. A machine-readable storage module is also proposed, on which the computer program is stored. A device is also proposed, which is set up to carry out one of the methods. BRIEF DESCRIPTION OF DRAWINGS
[0034] Embodiments of the above-mentioned aspects are shown in the attached drawings and are further explained in the following description. Herein:
[0035] Figure 1 A schematic diagram of a deep neural network with multiple paths through the deep neural network is shown;
[0036] Figure 2 A schematic diagram of a parallelized implementation of paths is shown;
[0037] Figure 3 A schematic diagram of an implementation of a method for running a deep neural network is shown;
[0038] Figure 4 A schematic diagram of an implementation of a robot using a method for running a deep neural network is shown. DETAILED DESCRIPTION
[0039] Figure 1 A schematic diagram of a deep neural network (10) is shown, which determines an output quantity (y) from an input quantity (x). In one implementation of the deep neural network (10), the deep neural network (10) determines a classification (y) of an image (x) from the image (x). In an alternative implementation, the deep neural network (10) determines a regression (y) from an input quantity (x).
[0040] As Figure 1 The deep neural network (10) is constructed by a plurality of layers (11) which are connected to one another by connections (12), as shown in Fig. 1. It should be noted that at least two layers can also be connected to one another in parallel.
[0041] The layer that obtains the input quantity (x) is hereinafter referred to as the input layer and the layer that outputs the output quantity (y) is hereinafter referred to as the output layer. The connections (12) can be equipped with weights in order to provide the outputted intermediate quantities of the respective layers to the next layer of the respective connection weightedly.
[0042] The layers comprise a plurality of neurons, respectively, which have a predefinable activation function, respectively. Alternatively, at least one of the layers is configured as a convolutional layer. Additionally, the deep neural network (10) in this embodiment has two cross-connection connections (13a, 13b). The first cross-connection connection (13a) connects the layer immediately following the input layer with the output layer. That is to say, the determined intermediate quantity of the input layer is not only forwarded to the layer immediately following the input layer and to the output layer. The second cross-connection connection (13b) directly connects the input layer with the output layer.
[0043] Due to the cross-connection connections (13a, 13b), a plurality of paths (10a, 10b, 10c) through the deep neural network (10) can be determined. This is shown in Figure 1 on the right-hand side of the schematically illustrated deep neural network (10).
[0044] The first path (10a) through the deep neural network (10) only uses the input layer and the output layer, which are connected to one another via the two cross-connection connections (13b). That is to say, only the input layer and the output layer are used when propagating the input quantity through the deep neural network (10) along the first path (10a).
[0045] The second path (10b) through the deep neural network (10) uses the input layer, the layer immediately following the input layer and the output layer, which are connected to one another via the connections (12) and the first cross-connection connection (13a). The layer immediately following the input layer is hereinafter referred to as the second layer and the layer immediately following the second layer is referred to as the third layer.
[0046] The difference between the first path and the second path is that the second path (10b) is one layer longer than the first path (10a).
[0047] A further path (10c) can be defined by using each layer of the deep neural network (10), which are only connected to one another by the forward connections (12).
[0048] If the input variable (x) is propagated through the deep neural network (10) along the first path (10a), the output variable (y) already exists after two time steps. Because within the first time step the input variable (x) is processed in the input layer and outputted as an intermediate variable. Since the first path (10a) is defined by the second cross-connection (13b), the intermediate variable of the input layer is processed by the input layer at the next time step. That is, although the whole deep neural network is processed by its sequence of layers each requiring one time step, i.e. at least 4 time steps in total to output the output variable (y), the output variable already exists after two time steps.
[0049] It should be noted that, as Figure 1 shown in Fig. 1, the output layer of the deep neural network (10) determines the output variable (y) from three intermediate variables, but in case of using the first path (10a) from only one intermediate variable. In this case, the other two intermediate variables are not considered because the first path (10a) does not pass through the layers each of which is required for this.
[0050] For the case that the input variable (x) is propagated through the deep neural network along the second path (10b), the input layer processes the input variable (x) at the first time step and outputs the intermediate variable of the input layer. At the second time step, the second layer determines an intermediate variable of the second layer from the intermediate variable of the input layer. Then, at the third time point, the outputted intermediate variable of the second layer is processed by the output layer due to the first cross-connection (13a). That is, after already three time steps, the output variable of the deep neural network exists.
[0051] The same explanation can be used for the propagation of the input variable (x) along the third path as well. In this case, the output variable exists only after the fourth time step because the input variable has to be propagated through all four layers.
[0052] By using these paths, a significantly higher responsiveness of the deep neural network can be achieved because it is not necessary to wait until the input variable is completely propagated through each of the layers until the output.
[0053] Figure 2 A simplified diagram showing a method for partially or completely parallelized streaming rollouts of the deep neural network (10) in case the input variable is propagated through the deep neural network (10) simultaneously along three paths (10a, 10b, 10c) is shown in Fig. 2.
[0054] The method for implementing a deep neural network (10) in parallel is characterized in that a part of the layers or all of the layers are run in parallel and independently of one another.
[0055] At the first time point (t = 1) of the time point sequence (T), the input variable (x) is processed in the input layer, at Figure 2 which is presented in the diagram (20) by a highlight (21) of the input layer.
[0056] Since the individual layers of the deep neural network (10) are run independently of one another, at the next time point (t = 2) directly following the first time point (t = 1), not only the intermediate variable of the input layer is processed in the second layer but also the intermediate variable is processed in the output layer. This parallelized calculation of the second layer and the output layer is presented in the diagram (20) by a highlight (22) of the layers. It should be noted that the intermediate variable of the input layer is provided to the output layer by a second cross-connection. That is, at the second time point (t = 2), the output layer determines the output variable (y) only on the basis of the intermediate variable of the input layer. Figure 2
[0057] For the case that the deep neural network (10) classifies the input variable (x), the output layer outputs a classification, the accuracy (acc) or reliability of which is exemplary presented in the diagram above.
[0058] At the third time point (t = 3), the determined intermediate variable of the second layer is not only further processed in the output layer but also further processed in the third layer. Preferably, at the third time point (t = 3), the output layer determines the output variable (y) on the basis of the intermediate variable of the input layer, which has already been determined at the first time step (t = 1), and the intermediate variable of the second layer. In Figure 2 the diagram (20) by a highlight (23) that the third layer determines its intermediate variable at the third time point (t = 3). The output layer is likewise equipped with the highlight (23) since it updates the output variable on the basis of the intermediate variable of the second layer.
[0059] For the case that the deep neural network (10) performs a classification of the input variable (x), the determination of the output variable in the output layer on the basis of the two intermediate variables leads to the fact that the classification will be more accurate or more reliable. This is presented in the diagram above by the fact that the curve (25) describing the course of the accuracy (acc) or reliability of the output variable (y) rises slightly.
[0060] Preferably, at the fourth time point (t = 4), the output layer now determines the output variable on the basis of all the intermediate variables provided to it. (This is presented in Figure 2 The curve in the diagram above drops because of the case that a reduction in accuracy or reliability of the output variable can occur due to an over-parameterization of the deep neural network (10) by using too many layers. However, it can also occur that the third layer contributes further valuable information which can lead to an even more accurate classification. Thus, the curve (25) can then rise further.
[0061] It is conceivable that at each point in time (t = 1,..., 4) always the same input variable (x) is attached to the input layer until all paths have been calculated. It is noted that at Figure 2 In an alternative embodiment, at each point in time (t = 2, 3, 4) there are temporally subsequent input variables of the deep neural network and these input variables can be propagated step by step through the deep neural network. Thus, at the respective point in time, not only the layers are active which are needed for processing the intermediate variables assignable to the input variable (x), but also the layers are active which process the intermediate variables assignable to the subsequent input variables. Thus, a higher utilization of the deep neural network (10) can be achieved.
[0062] For the case that the network performs a regression instead of a classification, the curve (25) can exemplarily present an interpolated course of the values of the output variable (y) of the deep neural network (10).
[0063] Figure 3 A schematic diagram showing a flow chart for performing a method for operating a neural network is shown.
[0064] The method (30) starts in step S31. In step S31, a provided deep neural network having at least one skip connection, for example the deep neural network (10) according to Figure 1 is decomposed into a plurality of paths (10a, 10b, 10c). The weights of the individual layers can be shared by the paths (10a, 10b). Additionally, the paths can also be limited by limiting the layers to a smaller set of parameters, in particular weights. Optionally, after step S31, step S32 can be performed. In step S32, the deep neural network is taught. Teaching is understood as an adaptation of the parameterization of the deep neural network according to the provided training data and the labels respectively assigned to the training data such that a cost function becomes optimal with respect to a training criterion. By being taught separately, in particular independently of each other, by the individual paths, the deep neural network can be taught. That is, for each of the paths, the cost function is evaluated at the time of teaching. Thereby, parallel paths of information processing are formed such that, if there is an interference in one path, the other paths can maintain the original output values of the neural network.
[0065] It should also be noted that for time series as input variables those paths which require the same number of time steps can be combined into groups and equipped with a cost function.
[0066] Additionally or alternatively, a group of paths or all paths can be co- taught. In this case, the cost function is then composed of the individual, preferably weighted, cost functions of the individual paths.
[0067] The number of different paths used in the teaching can be chosen depending on the desired granularity of the resources available.
[0068] It is also conceivable to check during the teaching, in particular shortly before the end of the teaching, which paths are reasonable. For example, it is checked whether the use of one of the paths can contribute to improving the quality of the output variable. If it is ascertained that one of the paths does not contribute to the improvement, this path can be discarded or the corresponding layer which differs from the other paths can be removed from the deep neural network. The advantageous effect in this case is that the architecture of the deep neural network is already optimized during the teaching.
[0069] Alternatively or additionally, it can be taught by means of reinforcement learning which path is the most suitable for the respective input variable depending on the input variable.
[0070] After step S31 or the optional step S32, step S33 follows. Therein one of the paths of the plurality of paths selected in step S31 is initially selected. Preferably, the shortest path through the deep neural network is initially selected, i.e. the path in which the fewest layers of the deep neural network (10) are required in order to propagate the input variable (x) through the deep neural network (10). Alternatively, another path can be selected from step S32 by means of reinforcement learning with the taught context initially and / or upon repeated implementation of step S33. Then, the deep neural network can be configured according to the selected path. If another path is selected, the neural network can be reconfigured according to the other path. The configuration of the deep neural network can be understood as the use of only those layers which belong to the respective path. It is also conceivable to use another neural network which is configured according to another path such that the input variable can be propagated through the other neural network in a subsequent step.
[0071] Then, in a next step S34, the input variable is propagated through the deep neural network which is configured according to the path selected in step S33, see with regard to Figure 1For example, deep neural networks are configured according to the chosen path by deactivating layers that do not belong to the first path or one of the other paths.
[0072] Then, in step S35, it is checked whether the output parameter output at the output end of the deep neural network after the input parameters are propagated in step S34 meets a predefined criterion. For example, in the case of classification, this predefined criterion could be: there must be a predefined minimum classification difference between the class with the highest probability and other classes; for example, the output value of the class with the highest output value should differ from the output values of other classes by at least 20%. Alternatively or additionally, it can be checked whether a predefined resource quota, such as an energy / time budget or storage quota, has been exhausted due to propagation according to step S34. Therefore, this criterion preferably characterizes a threshold, such as the confidence or variance of the output parameter (y) and / or the resource quota. Alternatively or additionally, this criterion can characterize the change in the output parameter output by different paths. If, for example, the output parameter is changed by less than 5%, the criterion is met.
[0073] If the criteria in step S34 should not be met ( Figure 3 If the fork is "No", then step S33 is repeated, where another path is now selected from the multiple selected paths. This other path is at least one layer longer than the previously selected path. This effectively adds another layer to the deep neural network, enhancing its expressive power and allowing for more accurate output parameters, particularly improved classification. The neural network is then configured according to this other path.
[0074] This alternative path can be randomly selected from the set of all possible paths, or it can be excluded from each layer with a certain probability. Preferably, this random selection is used during teaching. During inference, the advantage of random selection is that it allows for the calculation of the discreteness of the output parameters.
[0075] Furthermore, network characteristics can be influenced through explicit weighting of individual paths and / or groups of paths, particularly with respect to cost terms / functions during the teaching period. For example, paths that are individually particularly capable of functioning and / or less susceptible to disturbances can be weighted particularly strongly. Similarly, paths can be weighted according to their resource requirements, such as energy requirements.
[0076] The more complex the input parameter (x), or the more resources available, the more layers should preferably be used to compute the output signal, especially longer paths.
[0077] After completing step S33, re-execute step S34.
[0078] Preferably, when repeating the step S34, the intermediate results determined when propagating along the first path are used again, whereby the parameters of the deep neural network do not have to be repeatedly loaded into the computing unit. Furthermore, calculations already performed do not have to be re-executed.
[0079] If the criterion is fulfilled in step S35, then step S36 follows. In step S36, the at least partially autonomous robot can be maneuvered, for example, in accordance with the output variable of the deep neural network.
[0080] In an alternative embodiment of the method (30), the deep neural network (10) is operated in parallel Figure 2 to the calculations according to
[0081] In this case, in particular after each time step (t = 2, 3, 4), step S35 can be performed each time the network outputs an output variable (y). If step S35 outputs no, the deep neural network continues to be operated according to the procedure according to Figure 2
[0082] Unlike in Figure 3 , according to the described procedure of the calculation in Figure 2 , in step S33, the neural network does not have to be reconfigured for the selected further path, but only the required calculations for the subsequent time steps have to be performed. For example, at the time point t = 2, the check of step S35 results in that the output variable does not fulfill the criterion, the calculations for the time point t = 3 are performed, i.e. the layers with the protrusions (23) now perform their calculations.
[0083] If after step S35 it is decided that the output variable fulfills the criterion, step S36 is performed as in Figure 3
[0084] The at least partially autonomous robot is schematically represented in Figure 4 by an at least partially autonomous vehicle (40). In another embodiment, the at least partially autonomous robot can be a service robot, an assembly robot or a stationary production robot, alternatively an autonomous aircraft, such as a drone.
[0085] The at least partially autonomous vehicle (40) comprises a detection unit (41). The detection unit (41) can be, for example, a camera which detects the surroundings of the vehicle (40). The detection unit (41) is connected to the deep neural network (10). According to the procedure of Figure 3 , the deep neural network (10) determines an output variable from the provided input variables provided by the detection unit (41) and from a plurality of parameters. The output variable is to be forwarded to a control unit (43).
[0086] The control unit (43) controls an effector in dependence on the output quantity (y) of the deep neural network (10), preferably controls the effector such that the vehicle (40) carries out a collision-free maneuver. In a first embodiment, the effector can be a motor or brake system of the vehicle (40). In another embodiment, the partially autonomous robot can be a tool, a machine tool or a production robot. The material of the workpiece can be classified by means of the deep neural network (10). In this case, the effector can be, for example, a motor driving a grinding head.
[0087] The vehicle (40), in particular the partially autonomous robot, further comprises a computing unit (44) and a machine-readable storage element (45). On the storage element (45) a computer program can be stored, which comprises instructions which, when implemented on the computing unit (44), cause the computing unit (44) to implement the method (30) according to Figure 3 the application.
Claims
1. A computer-implemented method (30) for running a deep neural network (10), the deep neural network having at least one bridging connection (13a, 13b), the method comprising the following steps: Select the first path (10a) along the bridging connections (13a, 13b) through the deep neural network (10). The output parameter is determined by propagating the input parameter (x) of the deep neural network (10) along the first path, wherein the input parameter is an image; and The output parameter is checked to see if it meets a pre-defined criterion. If it does not meet the pre-defined criterion, a second path (10b, 10c) different from the first path (10a) is selected through the deep neural network (10), and the output parameter is determined by propagating the input parameter (x) of the deep neural network (10) along the second path (10b, 10c). If the pre-defined criterion is met, control parameters are determined based on the output parameter of the deep neural network. The control parameters are used to control the actuators of the technology system, which includes at least a partially autonomous machine, at least a partially autonomous vehicle, robot, tool, factory machine, or aircraft.
2. The method of claim 1, wherein, as the input parameter (x) is propagated along the path, those layers (11) of the neural network (10) that are not required for the corresponding path are deactivated and are activated only when that layer is required for the corresponding path.
3. The method according to claim 1 or 2, wherein when propagating the input parameter (x) along the second path (10b, 10c), the intermediate parameters of those layers (11) determined when propagating along the first path (10a) are used again.
4. The method according to any one of claims 1 to 2, wherein during propagation along the second path (10b, 10c), only the intermediate parameters of those layers that differ from the first path (10a) in the second path (10b, 10c) are determined, and As propagation proceeds along the second path (10b, 10c), the intermediate parameters of those layers that are connected to more than one previous layer and were also included in the first path (10a) are determined based on the intermediate parameters provided by the corresponding immediately preceding connected layer of the second path and the intermediate parameters provided by the previous immediately preceding connected layer of the first path.
5. The method according to any one of claims 1 to 2, wherein the method comprises the following additional steps: Provide multiple different paths through the deep neural network; Select at least a first path and a second path from the plurality of different paths; The output parameters are determined by simultaneously propagating the input parameters of the deep neural network along at least the first path and the second path. First, the common intermediate parameters of the first path and the second path are determined successively up to the layers from which the layer sequences of these paths differ. The intermediate parameters of the remaining layers, where the first and second paths occupy the same position in the layer sequence of these paths, are determined in parallel. If the output parameters of the first path are output, then the pre-defined standard is checked. If the criteria are not met, the propagation continues until the output parameters of the second path are output.
6. The method according to any one of claims 1 to 2, wherein the selection of these paths depends on the input parameters and / or on a pre-given energy / time quota that is most likely to be consumed to propagate the input parameters through the deep neural network (10); and / or The pre-defined standard hereindicates the minimum pre-defined accuracy or reliability of the output parameter.
7. The method according to any one of claims 1 to 2, wherein each path of the deep neural network (10) is taught separately from each other and / or at least a set of paths are taught together.
8. An apparatus (44) configured to perform the method according to any one of claims 1 to 7.
9. A computer program product comprising a computer program, the computer program including instructions configured to cause the computer to perform the method according to any one of claims 1 to 7 when the instructions are executed on the computer.
10. A machine-readable storage element (45) having a computer program stored thereon, the computer program including instructions configured to cause the computer to perform the method according to any one of claims 1 to 7 when the instructions are executed on the computer.
Citation Information
Patent Citations
device set up to operate a machine learning system
DE202018104373U1