Patent Publication Number: US-2022222525-A1

Title: Method and system for training dynamic deep neural network

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application claims priority to and the benefit of Korean Patent Application No. 10-2021-0003878 filed in the Korean Intellectual Property Office on Jan. 12, 2021, the entire contents of which are incorporated herein by reference. 
     BACKGROUND OF THE DISCLOSURE 
     (a) Field of the Disclosure 
     The present disclosure relates to a method and system for training a dynamic deep neural network. 
     (b) Description of the Related Art 
     A dynamic deep neural network may recognize contents of an input image by constructing a module, in which a linear filter and a nonlinear activation function are combined, in a multi-layered form in order to extract features. Many studies have been conducted not only on the problem of designing a network with high accuracy for the same data set, but also on the problem of designing a network with the highest accuracy in a limited amount of computation. 
     A dynamic network is a type of research that increases accuracy under the limited amount of computation. Unlike the existing network in which the same filter is used regardless of input data, the dynamic network is a network in which the filter used according to the input is changed, and enables more efficient calculation suitable for the input. That is, for example, there are training data on various breeds of dogs in ImageNet, but a filter for detailed classification of breeds of dogs will hardly play a role for car input images. Therefore, when the input is a car image, if the filter related to the classification of breeding of dogs may be removed from the calculation, the amount of computation may be reduced with little effect on the accuracy. 
     Such a dynamic network may be implemented by a channel gating or channel mixing method. The channel gating is a method in which some channels pass with a calculation and other channels pass without a calculation at an inference time. Since the channel gating performs the inference using only some channels of the network, the calculation cost may be saved. Meanwhile, the channel mixing is a method of generating a new filter set suitable for an input from a filter set trained at an inference time. Since the channel mixing also uses the small number of filters that condenses information of several filters, the calculation cost may be saved that much. 
     The above information disclosed in this Background section is only for enhancement of understanding of the background of the disclosure, and therefore it may contain information that does not form the prior art that is already known in this country to a person of ordinary skill in the art. 
     SUMMARY OF THE DISCLOSURE 
     The present disclosure has been made in an effort to provide a method and system for training a dynamic deep neural network in which, in the dynamic deep neural network, a routing module for determining importance of filters to be used for calculation in association with an input may be trained to select different filter sets for each input class. 
     An example embodiment of the present disclosure provides a method for training a dynamic deep neural network, including: receiving an output of a last layer of the deep neural network and outputting a first loss; receiving an output of a routing module according to an input class of the deep neural network and outputting a second loss; calculating a third loss based on the first loss and the second loss; and updating a weight of the deep neural network by using the third loss. 
     The outputting of the first loss may include: predicting the input class; and calculating a class determination loss for the prediction and outputting the first loss. 
     The outputting of the first loss may include outputting the first loss based on similarity to a ground truth class label. The outputting of the second loss may include: generating one tensor by summing the outputs of the routing modules; predicting the input class based on the tensor; and calculating a class determination loss for the prediction and outputting the second loss. 
     The outputting of the second loss may include outputting the second loss based on similarity to the ground truth class label. 
     The calculating of the third loss may include calculating the third loss by the following equation. 
       Third loss=first loss+λ*second loss   [Equation 1]
 
     Here, λ is a hyper parameterfor determining a weight between the first loss and the second loss. 
     The method for training a dynamic deep neural network may further include: initializing all weights of the deep neural network; reading a training batch; and sequentially passing the training batch for all layers of the deep neural network. 
     The sequentially passing of the training batch may include generating a feature batch based on importance information of the filter after generating importance information of the filter using the routing module for each layer of the deep neural network. 
     The method for training a dynamic deep neural network may further include performing the method for training a dynamic deep neural network on a next training batch after updating the weight of the deep neural network. 
     The method for training a dynamic deep neural network may further include terminating the method for training a dynamic deep neural network when the next training batch does not exist. 
     Another embodiment of the present disclosure provides a method for training a dynamic deep neural network, including: receiving an output of a last layer of the deep neural network and outputting a first loss; receiving outputs of a first routing module and a second routing module according to an input class of the deep neural network, and outputting a second loss and a third loss; calculating a fourth loss based on the first loss and the second loss; and updating a weight of the deep neural network by using the fourth loss. 
     The outputting of the first loss may include: predicting the input class; and calculating a class determination loss for the prediction and outputting the first loss. 
     The outputting of the second loss may include: generating one first tensor by summing outputs of the first routing module of a first group; predicting the input class based on the first tensor; and a class determination loss for the prediction and outputting the second loss. 
     The outputting of the third loss may include: generating one second tensor by summing outputs of the second routing module of a second group; predicting the input class based on the second tensor; and calculating a class determination loss for the prediction and outputting the third loss. 
     The outputting of the second loss may include: predicting the input class based on the output of the first routing module; and calculating a class determination loss for the prediction and outputting the second loss. 
     The outputting of the third loss may include: predicting the input class based on the output of the second routing module; and calculating a class determination loss for the prediction and outputting the third loss. 
     Yet another embodiment of the present disclosure provides a system for training a dynamic deep neural network, including: a first loss output module receiving an output of a last layer of the deep neural network and outputting a first loss; a second loss output module receiving an output of a routing module according to an input class of the deep neural network and outputting a second loss; a loss calculation module calculating a third loss based on the first loss and the second loss; and a weight update module updating a weight of the deep neural network by using the third loss. 
     The first loss output module may include: a class prediction module predicting the input class; and a class determination loss module calculating a class determination loss for the prediction and outputting the first loss. 
     The second loss output module may include: a tenser merging module generating one tensor by summing the outputs of the routing modules; a class prediction module predicting the input class based on the tensor; and a class determination loss module calculating a class determination loss for the prediction and outputting the second loss. 
     The loss calculation module may calculate the third loss by the following equation 1. 
       Third loss=first loss+λ*second loss   [Equation 1]
 
     Here, λ is a hyper parameterfor determining a weight between the first loss and the second loss. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram for describing a system for training a dynamic deep neural network according to an example embodiment of the present disclosure. 
         FIG. 2  is a diagram for describing a neural network structure in which the dynamic deep neural network is trained according to an example embodiment of the present disclosure. 
         FIG. 3  is a diagram for describing a method for training a dynamic deep neural network according to an example embodiment of the present disclosure. 
         FIG. 4  is a block diagram for describing a system for training a dynamic deep neural network according to an example embodiment of the present disclosure. 
         FIG. 5  is a diagram for describing a neural network structure in which the dynamic deep neural network is trained according to the example embodiment of the present disclosure. 
         FIG. 6  is a block diagram for describing the system for training a dynamic deep neural network according to the example embodiment of the present disclosure. 
         FIG. 7  is a diagram for describing the neural network structure in which the dynamic deep neural network is trained according to the example embodiment of the present disclosure. 
         FIG. 8  is a block diagram for describing a computing device for implementing a method and system for training a dynamic deep neural network according to example embodiments of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS 
     Hereinafter, the present disclosure will be described more fully hereinafter with reference to the accompanying drawings, in which example embodiments of the disclosure are shown. As those skilled in the art would realize, the described embodiments may be modified in various different ways, all without departing from the spirit or scope of the present disclosure. Accordingly, the drawings and description are to be regarded as illustrative in nature and not restrictive. Like reference numerals designate like elements throughout the specification. 
     Throughout the present specification and the claims, unless explicitly described to the contrary, the word “comprise” and variations such as “comprises” or “comprising”, will be understood to imply the inclusion of stated elements but not the exclusion of any other elements. 
     In addition, terms “˜part”, “˜er/or”, “module”, or the like, described in the specification means a unit of processing at least one function or operation and may be implemented by hardware or software or a combination of hardware and software. 
       FIG. 1  is a block diagram for describing a system for training a dynamic deep neural network according to an example embodiment of the present disclosure, and  FIG. 2  is a diagram for describing a neural network structure in which the dynamic deep neural network is trained according to an example embodiment of the present disclosure. 
     Referring to  FIGS. 1 and 2 , the system  1  for training a dynamic deep neural network according to an example embodiment of the present disclosure may include a first loss output module  200 , a second loss output module  100 , a loss calculation module  310 , and a weight update module  320 . 
     The first loss output module  200  may receive an output of a last layer of the deep neural network and output a first loss (Loss cls ). To this end, the first loss output module  200  may include a class prediction module  220  and a class determination loss module  230 . The class prediction module  220  and the class determination loss module  230  may correspond to “Class Prediction” and 
     “Criterion” in a dotted line box referenced as  200  in  FIG. 2 . 
     The class prediction module  220  may predict an input class. Specifically, the class prediction module  200  may perform class prediction on an output that passes through a last layer by allowing an input of the deep neural network to pass through layers corresponding to dynamic convolution blocks of the deep neural network. 
     Here, the deep neural network may include any dynamic deep neural network, and a plurality of dynamic convolution blocks (Dynamic Cony Block) may be included in the deep neural network. Specifically, a weight that may be used for feature extraction, a routing module (Route Fn) for generating a weight to be used when inferring a current input among weights, and a convolution layer (Cony) composed of generated weights may constitute one dynamic convolution block. Such a plurality of such dynamic convolution blocks are connected to form the dynamic deep neural network. 
     The class determination loss module  230  may calculate a class determination loss for the prediction of the class prediction module  220  and output the first loss (Loss cls ). Specifically, the class determination loss module  230  may calculate a loss based on similarity between a prediction result of the class prediction module  220  and a ground truth class label (ground class label), and then output the result as the first loss (Loss cls ). In this case, “cross entropy loss” or the like may be used as the class determination loss calculation layer. 
     Meanwhile, the second loss output module  100  may receive an output of the routing module that generates importance information of a filter according to the input class of the deep neural network and output a second loss (Loss route-cls ). For example, the second loss output module  100  may receive the output of the routing module that generates a gating or mixing pattern according to the input class of the deep neural network and output the second loss (Loss route-cls ). To this end, the second loss output module  100  may include a tensor merging module  110 , a class prediction module  120 , and a class determination loss module  130 . The tensor merging module  110 , the class prediction module  120 , and the class determination loss module  130  may correspond to “Concat”, “Class Prediction” and “Criterion” in the dotted-line box referenced by  100  in  FIG. 2 . 
     The tensor merging module  110  may generate one tensor by summing the outputs of the routing modules. Specifically, for example, when three dynamic convolution blocks exist in the dynamic deep neural network, the tensor merging module  110  may receive outputs from all three routing modules included in each of the three dynamic convolution blocks, and then, sums these outputs to generate one tensor. 
     The class prediction module  120  may predict an input class based on the tensor generated by the tensor merging module  110 . Specifically, the class prediction module  120  may perform the class prediction on all results output through the routing module from each of the layers corresponding to the dynamic convolution blocks of the deep neural network. 
     The class determination loss module  130  may calculate a class determination loss for the prediction of the class prediction module  120  and output the second loss (Loss route-cls ). Specifically, the class determination loss module  130  may calculate a loss based on the similarity between the prediction result of the class prediction module  120  and the ground truth class label, and then, output the result as the second loss (Loss route-cls ). In this case, “cross entropy loss” or the like may be used as the class determination loss calculation layer. 
     The loss calculation module  310  may calculate a third loss (Loss) based on the first loss (Loss cls ) output from the first loss output module  200  and the second loss (Loss route-cls ) output from the second loss output module  100 . 
     Specifically, the loss calculation module  310  may calculate the third loss (Loss) by the following Equation 1. 
       Third loss (Loss)=first loss (Loss cls )+λ*second loss (Loss route-cls )   [Equation 1]
 
     Here, λ is a hyper parameter for determining a weight between the first loss (Loss cls ) and the second loss (Loss route-cls ). 
     Then, the weight update module  320  may update the weight of the deep neural network by using the third loss (Loss). 
     According to the present example embodiment, when correcting the loss used in training the deep neural network, not only the class classification loss referenced by 200 in  FIG. 2  is used, but the class classification loss according to the result of the routing module referenced by 100 in  FIG. 1  is also taken into account. As a result, when a loss occurs due to a routing module pattern and is added to the existing class classification loss, parameters of the routing module may be trained so that each class may be classified by an output pattern of the routing module in a backpropagation process, and in accordance with an original meaning of a dynamic deep neural network in which filters are selected or synthesized to be suitable for each input, from a training stage, different filter sets for each input class can be used to the extent that an input class may be predicted by a routing module to further improve expressive power of the network, thereby increasing accuracy under the same amount of computation. 
     In the example embodiment, the class prediction module  220  and the class prediction module  120  may be implemented as a single layer or as a fully connected layer having a multi-layered structure. 
       FIG. 3  is a diagram for describing a method for training a dynamic deep neural network according to an example embodiment of the present disclosure. 
     Referring to  FIG. 3 , the method for training a dynamic deep neural network according to an example embodiment of the present disclosure may include starting training S 301 . In step S 301 , training for any dynamic deep neural network as described with reference to  FIGS. 1 and 2  may be started. 
     The method may include, after starting the training, initializing all weights of the deep neural network S 303  and reading a training batch S 305 . When reading the training batch succeeds (S 305 , Yes), the process may proceed to steps S 307 , S 309 , and S 311  of sequentially passing the training batch for all layers of the deep neural network. On the other hand, when it fails to read the training batch (S 305 , No) (for example, when a next training batch does not exist), the process may proceed to the step S 327  of terminating the training of the dynamic deep neural network. 
     Steps S 307 , S 309 , and S 311  of sequentially passing the training batch for all layers of the deep neural network may include a step S 309  of generating importance information of the filter, for example, a gating or a mixing pattern for each layer of the deep neural network, by using the routing module, and then, a step S 311  of generating a feature batch based on the importance information of the filter. The feature batch may be applied to a next layer. 
     Until the last layer is reached (S 307 , No), steps S 309  and S 311  are repeatedly performed, and after reaching the last layer (S 307 , Yes), the process proceeds to next steps. 
     Steps S 313  and S 315  may receive the output of the last layer of the deep neural network and output the first loss (Loss cls ). 
     Steps S 313  and S 315  may include a step of predicting an input class S 313  and outputting the first loss (Loss cls ) by calculating the class determination loss for the prediction S 315 . Here, step S 315  may include outputting the first loss (Loss cls ) based on the similarity with the ground truth class label. 
     Steps S 317 , S 319 , and S 321  may receive the output of the routing module and output the second loss (Loss route-cls ). 
     Steps S 317 , S 319 , and S 321  may include generating a single tensor by summing the outputs of the routing modules S 317 , predicting an input class based on the corresponding tensor S 319 , and calculating a class determination loss for the prediction and outputting the second loss (Loss route-cls ) S 321 . Here, step S 321  may include outputting the second loss (Loss route-cls ) based on the similarity with the ground truth class label. 
     Step S 323  may calculate the third loss (Loss) based on the first loss (Loss cls ) and the second loss (Loss route-cls ). 
     Specifically, in step S 323 , the third loss (Loss) may be calculated by the following Equation 1. 
       Third loss=first loss+λ*second loss   [Equation 1]
 
     Here, λ is a hyper parameterfor determining a weight between the first loss (Loss cls ) and the second loss (Loss route-cls ). 
     In step S 325 , the weight of the deep neural network may be updated using the third loss (Loss). 
     In the method, after step S 325 , in order to perform the learning of the dynamic deep neural network for the next training batch, the process may proceed to step S 305  of reading the training batch based on the updated weight. 
       FIG. 4  is a block diagram for describing a system for training a dynamic deep neural network according to an example embodiment of the present disclosure, and  FIG. 5  is a diagram for describing a neural network structure in which the dynamic deep neural network is trained according to an example embodiment of the present disclosure. 
     Referring to  FIGS. 4 and 5 , the system  2  for training a dynamic deep neural network according to an embodiment of the present disclosure may include a first loss output module  200 , a second loss output module  102 , a loss calculation module  310 , and a weight update module  320 . 
     The first loss output module  200  may refer to the description of the first loss output module  200  of the system  1  for training a dynamic deep neural network described with reference to  FIG. 1 , and therefore, the overlapping description will be described. 
     The second loss output module  102  may include a plurality of group tensor merging modules  112   a  and  112   b,  a plurality of class prediction modules  122   a  and  122   b,  and a plurality of class determination loss modules  132   a  and  132   b.  Unlike the system  1  for training a dynamic deep neural network of  FIG. 1 , which generated one loss by merging the outputs of all the routing modules into one, in the system  2  for training a dynamic deep neural network, the outputs of the routing modules may merge the outputs of the routing modules into a certain group unit (e.g., block unit of resnet), and calculates the class prediction and class determination loss for each group, thereby calculating the loss separately. 
     To this end, the first group tensor merging module  112   a  may generate a tensor for the output of the first routing module (i.e., outputs of one or more routing modules belonging to the first group). Specifically, for example, when there are three dynamic convolution blocks in the dynamic deep neural network, the first group tensor merging module  112   a  may receive the outputs from the two routing modules included in each of the dynamic convolution blocks corresponding to the first and second layers and then sum these outputs, thereby generating one tensor. 
     Meanwhile, the second group tensor merging module  112   b  may generate a tensor for the output (i.e., outputs of one or more routing modules belonging to the second group) of the second routing module. Specifically, the second group tensor merging module  112   b  may receive an output from one routing module included in the dynamic convolution block corresponding to the third layer, and then, generate one tensor therefrom, in the dynamic deep neural network. 
     The tensor generated by the first group tensor merging module  112   a  passes through the class prediction module  122   a  and the class determination loss module  132   a,  and the second loss (Loss route-cls ) is output therefrom. 
     Meanwhile, the tensor generated by the second group tensor merging module  112   b  passes through the class prediction module  122   b  and the class determination loss module  132   b,  and the third loss (Loss route-cls ) is output therefrom. 
     The loss calculation module  310  may calculate a fourth loss (Loss) based on the first loss (Loss cls ) output from the first loss output module  200 , the second loss (Loss route-cls ) output from the class determination loss module  132   a  among the second loss output modules  102 , and the third loss (Loss route-cls ) output from the class determination loss module  132   b  among the second loss output modules  102 . 
     Then, the weight update module  320  may update the weight of the deep neural network by using the fourth loss (Loss). 
     According to the present embodiment, since the loss is calculated in units of each group, training is performed to classify classes in units of each group. The present example embodiment is different from the previous example embodiment in that when the class classification is performed only with a part of the routing modules because the outputs of all the routing modules are merged, the class classification is performed only with the part, and the remaining routing modules do not receive a loss for classifying the class. 
     In a deep learning network, it is known that a global feature of an image is trained in the first half layers and a class specific feature is trained in the second half layer. In the configuration of the previous example embodiment, the second half layers are trained to be classified by class, but the first half layers may not be classified by class, while according to the configuration of the present example embodiment, the training proceeds so that both the first and second half layers are classified by class, so redundancy in all the layers may be reduced and various filters specialized for each class may be trained. 
       FIG. 6  is a block diagram for describing a system for training a dynamic deep neural network according to an example embodiment of the present disclosure, and  FIG. 7  is a diagram for describing a neural network structure in which the dynamic deep neural network is trained according to an example embodiment of the present disclosure. 
     Referring to  FIGS. 6 and 7 , the system  3  for training a dynamic deep neural network according to an example embodiment of the present disclosure may include a first loss output module  200 , a second loss output module  104 , a loss calculation module  310 , and a weight update module  320 . 
     The first loss output module  200  may refer to the description of the first loss output module  200  of the system  1  for training a dynamic deep neural network described with reference to  FIG. 1 , and therefore, the overlapping description will be described. 
     The second loss output module  102  may include a plurality of class prediction modules  124   a,    124   b,  and  124   c  and a plurality of class determination loss modules  134   a,    134   b,    134   c.  Unlike the systems  1  and  2  for training a dynamic deep neural network described above, the system  3  for training a dynamic deep neural network may calculate class prediction and class determination loss individually without merging the outputs of the routing modules, thereby calculating the loss separately. 
     To this end, the class prediction module  124   a  predicts the input class based on the output of the first routing module, and the second loss (Loss route-cls ) passes through the class determination loss module  134   a,  and then, is output. 
     Meanwhile, the class prediction module  124   a  predicts the input class based on the output of the second routing module, and the third loss (Loss route-cls ) passes through the class determination loss module  134   b,  and then, is output. 
     Meanwhile, the class prediction module  124   c  predicts the input class based on the output of the third routing module, and the fourth loss (Loss route-cls ) passes through the class determination loss module  134   c,  and then, is output. 
     The loss calculation module  310  may calculate a fifth loss (Loss) based on the first loss (Loss cls ) output from the first loss output module  200 , the second loss (Loss route-cls ) output from the class determination loss module  134   b  among the second loss output modules  102 , the third loss (Loss route-cls ) output from the class determination loss module  134   b  among the second loss output modules  102 , and the fourth loss (Loss route-cls ) output from the class determination loss module  134   c  among the second loss output modules  102 . 
     Then, the weight update module  320  may update the weight of the deep neural network by using the fifth loss (Loss). 
     According to the present example embodiment, it has a configuration in which the outputs of all the routing modules are individually subjected to the class prediction and class loss determination to calculate the loss. In this case, no merging is necessary, and it is possible to perform the class classification of the outputs of all the routing modules, and train filters suitable for the class in all the layers. 
     According to the example embodiments of the present disclosure described so far, when a loss occurs due to a routing module pattern and is added to the existing class classification loss, parameters of the routing module may be trained so that each class may be classified by an output pattern of the routing module in a backpropagation process. Accordingly, in accordance with an original meaning of a dynamic deep neural network in which filters are selected or synthesized to be suitable for each input, from a training stage, different filter sets for each input class can be used to the extent that an input class may be predicted by a routing module to further improve expressive power of the network, thereby increasing accuracy under the same amount of computation. 
     In order to verify the effect of the disclosure, the following experiment was performed. A data set was CIFAR-10, a base network was resnet20, and the routing module used an attention module similar to squeeze-and-excite network (SENet). The results of measuring accuracy performance (top 1  accuracy) while increasing a pruning ratio from 30% to 90% are shown in Table 1 below. 
     
       
         
           
               
               
               
               
               
             
               
                   
                 TABLE 1 
               
               
                   
                   
               
               
                   
                   
                   
                 Method according  
                   
               
               
                   
                 Pruning  
                 Existing  
                 to the present 
                   
               
               
                   
                 ratio 
                 method 
                 disclosure 
                 Difference 
               
               
                   
                   
               
             
            
               
                   
                 30% 
                 0.9205 
                 0.9225 
                 0.0020 
               
               
                   
                 40% 
                 0.9143 
                 0.9190 
                 0.0047 
               
               
                   
                 50% 
                 0.9120 
                 0.9126 
                 0.0004 
               
               
                   
                 60% 
                 0.9040 
                 0.9076 
                 0.0036 
               
               
                   
                 70% 
                 0.8964 
                 0.9021 
                 0.0057 
               
               
                   
                 80% 
                 0.8860 
                 0.8861 
                 0.0001 
               
               
                   
                 90% 
                 0.8501 
                 0.8603 
                 0.0102 
               
               
                   
                   
               
            
           
         
       
     
     As can be seen from Table 1, it may be confirmed that the method according to the present disclosure at various pruning ratios has improved performance at the same amount of calculation compared to the existing method. 
     In addition, the results of comparing the difference in the accuracy performance between the existing method and the method according to the present disclosure while maintaining the overall number of filters similarly by adjusting the pruning ratio while increasing the total number of channels by increasing a width-multiplier are as shown in Table 2 below. 
     
       
         
           
               
               
               
               
               
               
             
               
                   
                 TABLE 2 
               
               
                   
                   
               
               
                   
                   
                   
                   
                 Method 
                   
               
               
                   
                   
                   
                   
                 according to  
                   
               
               
                   
                 Width- 
                 Pruning  
                 Existing  
                 the present 
                   
               
               
                   
                 multiplier 
                 ratio 
                 method 
                 disclosure 
                 Difference 
               
               
                   
                   
               
             
            
               
                   
                 1 
                  0.0% 
                 0.9301 
                 0.9305 
                 0.0004 
               
               
                   
                 2 
                 50.0% 
                 0.9400 
                 0.9412 
                 0.0012 
               
               
                   
                 4 
                 75.0% 
                 0.9450 
                 0.9462 
                 0.0012 
               
               
                   
                 8 
                 87.5% 
                 0.9470 
                 0.9507 
                 0.0037 
               
               
                   
                   
               
            
           
         
       
     
     As can be seen from Table 2, it can be seen that the proposed method shows higher accuracy than the existing method even when the pruning ratio (and) width-multiplier is changed together. 
       FIG. 8  is a block diagram for describing a computing device for implementing a method and system for training a dynamic deep neural network according to embodiments of the present disclosure. 
     Referring to  FIG. 8 , a method and system for training a dynamic deep neural network according to example embodiments of the present disclosure may be implemented using a computing device  50 . 
     The computing device  50  may include at least one of a processor  510 , a memory  530 , a user interface input device  540 , a user interface output device  550 , and a storage device  560  in communication via a bus  520 . The computing device  50  may also include a network interface  570  electrically connected to network  40 , such as a wireless network. The network interface  570  may transmit or receive signals with other entities through the network  40 . 
     The processor  510  may be implemented in various types such as an application processor (AP), a central processing unit (CPU), a graphics processing unit (GPU), and the like, and may be any semiconductor device that executes a command stored in the memory  530  or the storage device  560 . The processor  510  may be configured to implement functions and methods described with reference to  FIGS. 1 to 7 . 
     The memory  530  and the storage device  560  may include various types of volatile or non-volatile storage media. For example, the memory may include a read-only memory (ROM)  531  and a random access memory (RAM)  532 . In an example embodiment of the present disclosure, the memory  530  may be located inside or outside the processor  510 , and the memory  530  may be connected to the processor  510  through various known means. 
     In addition, at least a part of the method and system for training a dynamic deep neural network according to example embodiments of the present disclosure may be implemented as a program or software executed in the computing device  50 , and the program or software may be stored in a computer-readable medium. 
     In addition, at least some of the method and system for training a dynamic deep neural network according to example embodiments of the present disclosure may be implemented as hardware that may be electrically connected to the computing device  50 . 
     According to embodiments of the present disclosure, outputs of routing modules in a dynamic deep neural network passes through a trainable neural network, so the routing modules are trained to classify an input class. That is, when a loss occurs due to a routing module pattern and is added to the existing class classification loss, parameters of the routing module may be trained so that each class may be classified by an output pattern of the routing module in a backpropagation process. Accordingly, in accordance with an original meaning of a dynamic deep neural network in which filters are selected or synthesized to be suitable for each input, from a training stage, different filter sets for each input class can be used to the extent that an input class may be predicted by a routing module to further improve expressive power of the network, thereby increasing accuracy under the same amount of computation. 
     The components described in the example embodiments may be implemented by hardware components including, for example, at least one digital signal processor (DSP), a processor, a controller, an application-specific integrated circuit (ASIC), a programmable logic element, such as an FPGA, other electronic devices, or combinations thereof. At least some of the functions or the processes described in the example embodiments may be implemented by software, and the software may be recorded on a recording medium. The components, the functions, and the processes described in the example embodiments may be implemented by a combination of hardware and software. 
     The method according to example embodiments may be embodied as a program that is executable by a computer, and may be implemented as various recording media such as a magnetic storage medium, an optical reading medium, and a digital storage medium. 
     Various techniques described herein may be implemented as digital electronic circuitry, or as computer hardware, firmware, software, or combinations thereof. The techniques may be implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device (for example, a computer-readable medium) or in a propagated signal for processing by, or to control an operation of a data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program(s) may be written in any form of a programming language, including compiled or interpreted languages and may be deployed in any form including a stand-alone program or a module, a component, a subroutine, or other units suitable for use in a computing environment. A computer program may be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network. 
     Processors suitable for execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. Elements of a computer may include at least one processor to execute instructions and one or more memory devices to store instructions and data. Generally, a computer will also include or be coupled to receive data from, transfer data to, or perform both on one or more mass storage devices to store data, e.g., magnetic, magneto-optical disks, or optical disks. Examples of information carriers suitable for embodying computer program instructions and data include semiconductor memory devices, for example, magnetic media such as a hard disk, a floppy disk, and a magnetic tape, optical media such as a compact disk read only memory (CD-ROM), a digital video disk (DVD), etc. and magneto-optical media such as a floptical disk, and a read only memory (ROM), a random access memory (RAM), a flash memory, an erasable programmable ROM (EPROM), and an electrically erasable programmable ROM (EEPROM) and any other known computer readable medium. A processor and a memory may be supplemented by, or integrated into, a special purpose logic circuit. 
     The processor may run an operating system (OS) and one or more software applications that run on the OS. The processor device also may access, store, manipulate, process, and create data in response to execution of the software. For purpose of simplicity, the description of a processor device is used as singular; however, one skilled in the art will be appreciated that a processor device may include multiple processing elements and/or multiple types of processing elements. For example, a processor device may include multiple processors or a processor and a controller. In addition, different processing configurations are possible, such as parallel processors. 
     Also, non-transitory computer-readable media may be any available media that may be accessed by a computer, and may include both computer storage media and transmission media. 
     The present specification includes details of a number of specific implements, but it should be understood that the details do not limit any invention or what is claimable in the specification but rather describe features of the specific example embodiment. Features described in the specification in the context of individual example embodiments may be implemented as a combination in a single example embodiment. In contrast, various features described in the specification in the context of a single example embodiment may be implemented in multiple example embodiments individually or in an appropriate sub-combination. Furthermore, the features may operate in a specific combination and may be initially described as claimed in the combination, but one or more features may be excluded from the claimed combination in some cases, and the claimed combination may be changed into a sub-combination or a modification of a sub-combination. 
     Similarly, even though operations are described in a specific order on the drawings, it should not be understood as the operations needing to be performed in the specific order or in sequence to obtain desired results or as all the operations needing to be performed. In a specific case, multitasking and parallel processing may be advantageous. In addition, it should not be understood as requiring a separation of various apparatus components in the above described example embodiments in all example embodiments, and it should be understood that the above-described program components and apparatuses may be incorporated into a single software product or may be packaged in multiple software products. 
     Although the example embodiment of the present disclosure has been described in detail hereinabove, the scope of the present disclosure is not limited thereto. That is, several modifications and alterations made by a person of ordinary skill in the art using a basic concept of the present disclosure as defined in the claims fall within the scope of the present disclosure.