WO2021137420A1 - Development apparatus for analysis algorithm and operation method therefor - Google Patents

Development apparatus for analysis algorithm and operation method therefor Download PDF

Info

Publication number
WO2021137420A1
WO2021137420A1 PCT/KR2020/016107 KR2020016107W WO2021137420A1 WO 2021137420 A1 WO2021137420 A1 WO 2021137420A1 KR 2020016107 W KR2020016107 W KR 2020016107W WO 2021137420 A1 WO2021137420 A1 WO 2021137420A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
calculation block
calculation
connection
analysis algorithm
Prior art date
Application number
PCT/KR2020/016107
Other languages
French (fr)
Korean (ko)
Inventor
박경석
Original Assignee
한국과학기술정보연구원
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 한국과학기술정보연구원 filed Critical 한국과학기술정보연구원
Publication of WO2021137420A1 publication Critical patent/WO2021137420A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/33Intelligent editors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming

Definitions

  • the present invention relates to a method that can effectively support the development (construction) of a machine learning model of high difficulty using a large-scale computational resource without being constrained by a special development language or environment.
  • Machine learning Artificial intelligence can be created (trained) or utilized (inferred or predicted) using machine learning.
  • the training process is a process of forming artificial intelligence that is used as a criterion for judging operations such as data recognition and classification by using an arithmetic device, and as a result of the training, Recognition and classification criteria may be generated.
  • the judgment criterion generated through the training process is called a machine learning model.
  • the present invention intends to propose a new method that can effectively support the development (construction) of a machine learning model.
  • the present invention was created in consideration of the above circumstances, and the purpose of the present invention is to effectively support the development (construction) of a high-level machine learning model using large-scale computational resources without the restriction of a special development language or environment. have.
  • An apparatus for developing an analysis algorithm for achieving the above object includes: a block connection unit for connecting a calculation flow between each calculation block in which independent calculation processing is performed in relation to the execution of the analysis algorithm by a link; an error checking unit for checking whether an error occurs in a result of a forward calculation sequentially calculated from an input calculation block to an output calculation block based on a predefined operator according to the link connection; and a connection value update unit for updating the connection value between each calculation block so that the output value of the output calculation block corresponding to the forward calculation result becomes a predefined optimal value when it is confirmed that an error occurs in the forward calculation result. characterized in that
  • the output value from the specific calculation block may be randomized via an aggregation block for applying the calculation rule. It can be linked by a link so that it can be passed to a computational block.
  • the block connection unit may connect a calculation block of a layer having a layer interval greater than or equal to a set number of layers from the layer of the specific calculation block, and whose weight change between layers starts below a reference value, to the arbitrary calculation block. have.
  • the block connection unit connects a second calculation block that is another arbitrary calculation block through a separate aggregation block to a first calculation block that is an arbitrary calculation block connected to the specific calculation block via the aggregation block.
  • the weight change between the layers of the first calculation block and the layer having an interval equal to or greater than the set number is checked in the order of the neighboring layers, and the calculation block of the layer in which the weight change equal to or greater than the reference value is confirmed is set to the second calculation block. It can be connected to a calculation block.
  • connection value update unit may update the connection value between each calculation block through a backward operation based on at least one of a curvature and a slope.
  • connection value update unit may initially update the connection value between each calculation block based on the curvature when the occurrence of an error in the forward operation result is confirmed, and when the error reduction width using the curvature is less than or equal to a reference value, the slope Based on , the connection value between each calculation block can be updated.
  • the analysis algorithm development apparatus as a result of repeatedly executing the analysis algorithm a predetermined number of times through each of two or more matrix operators, has the shortest average execution time in the two execution steps that are adjacent to each other, and the average
  • the method may further include a recommendation unit for recommending a specific matrix operator whose difference between execution times is determined to be less than a threshold as an operator for the forward operation.
  • the method of operating an analysis algorithm development apparatus for achieving the above object is a block connection step of linking a calculation flow between each calculation block in which independent calculation processing is performed in relation to the execution of the analysis algorithm by a link ; an error checking step of checking whether an error occurs in a forward calculation result sequentially calculated from an input calculation block to an output calculation block based on a predefined operator according to the link connection; and a connection value updating step of updating the connection value between each calculation block so that the output value of the output calculation block corresponding to the forward calculation result becomes a predefined optimal value when it is confirmed that an error occurs in the forward operation result. characterized in that
  • the output value from the specific calculation block is arbitrary via an aggregation block for applying the calculation rule It can be linked by a link so that it can be transmitted to the computation block of
  • a calculation block of a layer having a layer interval of a set number or more from the layers of the specific calculation block and whose weight change between layers starts less than or equal to a reference value is connected to the arbitrary calculation block.
  • a second calculation block that is another arbitrary calculation block through a separate aggregation block for a first calculation block that is an arbitrary calculation block connected to the specific calculation block via the aggregation block to connect the layers of the first calculation block and the layer having an interval equal to or greater than the set number, check the weight change between the layers in the order of the neighboring layers, and select the calculation block of the layer in which the weight change greater than or equal to the reference value is confirmed as the second calculation block. It can be linked with 2 calculation blocks.
  • connection value between each calculation block may be updated through a backward operation based on at least one of a curvature and a slope.
  • connection value between each calculation block is initially updated based on the curvature, and when the error reduction width using the curvature is less than or equal to a reference value, the Based on the slope, the connection value between each calculation block can be updated.
  • the method as a result of repeatedly executing the analysis algorithm a predefined number of times through each of two or more matrix operators, the average execution time in two execution steps in the order adjacent to each other is the shortest, and the average execution time between the average execution times is the shortest.
  • the method may further include a recommendation unit for recommending a specific matrix operator whose difference is determined to be less than a threshold as an operator for the forward operation.
  • the calculation flow between each calculation block in which independent calculation processing is performed in relation to the execution of the analysis algorithm is connected by a link, and an optimal operator for the execution of the analysis algorithm is selected.
  • FIG. 1 is an exemplary diagram for explaining a machine learning model development environment according to an embodiment of the present invention according to an embodiment of the present invention.
  • FIG. 2 is a schematic configuration diagram of an analysis algorithm development apparatus according to an embodiment of the present invention.
  • FIG. 3 is an exemplary diagram for explaining a calculation block according to an embodiment of the present invention.
  • 4 and 5 are exemplary diagrams for explaining a connection method through an aggregation block according to an embodiment of the present invention.
  • FIG. 6 is an exemplary diagram for explaining a connection value update between calculation blocks according to an embodiment of the present invention.
  • FIG. 7 is a schematic flowchart for explaining an operating method of an analysis algorithm development apparatus according to an embodiment of the present invention.
  • first, second, etc. used herein may be used to describe various components, but the components should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.
  • the user's analysis flow is controlled and managed based on the GUI (Graphic User Interface) and various analysis methods and algorithms such as statistical analysis and numerical analysis, including a machine learning model such as deep learning, are controlled and managed, and the algorithm
  • GUI Graphic User Interface
  • various analysis methods and algorithms such as statistical analysis and numerical analysis, including a machine learning model such as deep learning, are controlled and managed, and the algorithm
  • FIG. 1 schematically shows a machine learning model development environment according to an embodiment of the present invention.
  • the machine learning model development environment may divide a system configuration and a processing flow between the configurations according to the system configuration into the following steps.
  • Termination and size selection of resources required for data processing and analysis such as CPU, GPU, and FGPA
  • step 1) related to the termination and size selection of resources necessary for data processing and analysis such as CPU, GPU, FGPA, records the type and size of available resources, and access information in the system configuration file, and the resource allocation block If you select , it can be understood as the process of receiving this information and making a list.
  • step 2) related to input, processing, and loading of original data may be understood as a process executed according to the size of the resource selected in step 1).
  • big data technologies including Hadoop, Spark, etc.
  • the user developer
  • step 3 of the analysis algorithm development the user (developer) can select the input variable used in the analysis algorithm or directly input it, and when the analysis algorithm is not an existing standardized algorithm, the user (developer) It can support modifying the core part of algorithm processing directly with scripts.
  • the internal execution code of the analysis algorithm may be provided based on Python and R API provided by, for example, a Python library, an R library, and a deep learning framework (eg, TensorFlow, PyTorch, MXNet, CNTK, DL4J, etc.).
  • Python and R API provided by, for example, a Python library, an R library, and a deep learning framework (eg, TensorFlow, PyTorch, MXNet, CNTK, DL4J, etc.).
  • step 4) regarding model evaluation and fine-tuning, it is understood as a process of evaluating whether the developed model provides accurate results or has room for further improvement, and adjusting the necessary input variables in the analysis algorithm according to the evaluation results.
  • the input variable adjustment may be made in a way that the user (developer) directly selects, or provides information so that the best result can be selected after all cases are substituted and processed according to a predetermined rule.
  • step 5 related to the visualization of the analysis result, various charts are provided for the developer to understand the numerical analysis result more easily from the results of model evaluation and fine-tuning or the final result, and for example, neural network configuration information in algorithms such as deep learning It can be understood as a process of visualizing by outputting the graph.
  • step 6) of new data inference using the development model and transmission of the inference server is performed by receiving new data not used for analysis model development and performing prediction, or if there is a separate inference server, it is developed in the inference server It can be understood as the process of transmitting a model and applying it to the actual service and operating environment.
  • step 7) of adding a user-defined block may be understood as a process of adding a function that cannot be processed in the predefined block provided by the system as a default.
  • step 8) related to the use of the pre-learning model can be understood as a process of registering the previously developed model as a library and allowing the user (developer) to use it to build a new model or directly apply it to inference.
  • the pre-learning model can be usefully utilized when the concept of the model is very complex, and the user (developer) can adjust the coefficients or weights calculated by the model by adding their own data to this complex model. .
  • this process can be used as a substitute for step 3) of the aforementioned analysis algorithm development.
  • step 3 related to the development of a block-link-based analysis algorithm, which is a core process for developing (constructing) a machine learning model in a machine learning model development environment according to an embodiment of the present invention, will be continued below. do it with
  • FIG. 2 schematically shows the configuration of an analysis algorithm development apparatus 100 for realizing a block-link-based analysis algorithm development process according to an embodiment of the present invention.
  • the analysis algorithm development apparatus 100 includes a block connection unit 10 for connecting calculation blocks, an error check unit 20 for checking whether an error occurs, and a block It may have a configuration including a connection value update unit 30 for updating the connection value between connections.
  • the analysis algorithm development apparatus 100 may further include a recommendation unit 40 for recommending a speaker in addition to the above-described configuration.
  • the whole configuration or at least part of the analysis algorithm development apparatus 100 including the block connection unit 10, the error check unit 20, the connection value update unit 30, and the recommendation unit 40 is in the form of a hardware module or software It may be implemented in the form of a module or may be implemented in a form in which a hardware module and a software module are combined.
  • the software module for example, may be understood as an instruction executed by a processor for controlling operations in the analysis algorithm development apparatus 100, and these instructions are in the form mounted in the memory in the analysis algorithm development apparatus 100.
  • the analysis algorithm development apparatus 100 may further include a configuration of the communication unit 50, which is a communication module responsible for a communication function for supporting a wired/wireless communication network connection, in addition to the above configuration. .
  • the apparatus 100 for developing an analysis algorithm can effectively support the development (construction) of a machine learning model of high difficulty using large-scale computational resources without restriction of a special development language or environment through the above-described configuration.
  • each configuration in the analysis algorithm development apparatus 100 for realizing this will be described in more detail.
  • the block connection unit 10 performs a function of connecting the calculation blocks with a link.
  • the block connection unit 10 connects the calculation flow between each calculation block in which independent calculation processing is performed in relation to the execution of the analysis algorithm by a link.
  • the calculation block is an object for inputting or selecting essential information necessary for the overall analysis process such as analysis and data processing
  • the link may be understood as an object defining the characteristics of the connection between the calculation blocks.
  • individual elements of an analysis algorithm or model are implemented as independent calculation blocks, such as a method of controlling data processing or analysis flow, and the flow of calculation between each calculation block is connected and processed by a link.
  • computation block group (computation block group A, computation block group B) supports both the link-based connection within the group, the group and the group, or the group and the external single or multiple computation blocks.
  • the implementation of the calculation block in a group unit can be understood to divide and manage the entire complex analysis process and model in a group unit, which is an easy-to-manage form.
  • the block connection unit 10 intends to apply a predefined calculation rule to an output value from a specific calculation block
  • the output value from the corresponding calculation block is an arbitrary calculation via the aggregation block for applying the calculation rule.
  • Links can be linked so that they can be delivered as blocks.
  • the calculation result of a specific calculation block is not directly transferred to an adjacent block, but is connected to an arbitrary calculation block through several calculation procedures, or the calculation result of each calculation block is expressed by a specific algorithm or equation It provides aggregate blocks that can be combined according to
  • the gradient is not lost and can be transmitted well, or it prevents distortion such as underestimating or overestimating a specific calculation result in the algorithm processing process.
  • a method that can freely connect to arbitrary calculation blocks and apply calculation rules, rather than sequential connection with adjacent calculation blocks, is required when a special calculation rule is to be applied.
  • a connection to an arbitrary calculation block is supported by applying a predefined calculation rule to an output value from a specific calculation block using the aggregation block.
  • connection of arbitrary calculation blocks through the aggregation block can be made according to user (developer) definition, but in one embodiment of the present invention, it is assumed that the system automatically supports connection with arbitrary calculation blocks. .
  • the block connection unit 10 when the block connection unit 10 connects arbitrary calculation blocks through an aggregation block, it has a layer interval of a set number (eg, 3 layers) or more from the layer of a specific calculation block, and The calculation block of the layer whose change starts below the reference value is connected to an arbitrary calculation block.
  • a layer interval of a set number eg, 3 layers
  • the calculation block of the layer whose change starts below the reference value is connected to an arbitrary calculation block.
  • the block connection unit 10 for any calculation block (hereinafter, first calculation block) connected to the specific calculation block via the aggregation block, another arbitrary calculation block (hereinafter, 2nd calculation block), check the weight change between the layers of the first calculation block and the layer having an interval greater than or equal to the set number (eg, 3 layers) in the order of neighboring layers, and change the weight greater than or equal to the reference value
  • the calculation block of the layer in which ⁇ is confirmed is connected to the second calculation block.
  • the change in weights is the reference value input by the user (developer) with an interval of 3 layers or more between intermediate layers.
  • An arbitrary calculation block can be constructed by increasing the interval between intermediate layers by one layer (Layer) until the value is sufficiently changed (ae).
  • the aggregation block according to an embodiment of the present invention may support simultaneous connection with a plurality of calculation blocks, for example, as shown in FIG. 5 .
  • a predefined calculation rule can be applied and one or multiple outputs can be produced, and these results are in turn combined with one or multiple calculation blocks. It can be transmitted through a connection.
  • the aggregation block according to an embodiment of the present invention can be connected to an adjacent calculation block or connected to a remote calculation block through the aggregation block, and through this block-to-block connection method, accurate learning even in a model having a complex network structure can make it possible
  • the error check unit 20 performs a function of confirming whether an error occurs in the forward calculation result.
  • the error check unit 20 checks whether an error occurs in the forward calculation result sequentially calculated from the input calculation block to the output calculation block based on a predefined operator according to the link connection between the calculation blocks.
  • checking whether an error occurs in the forward operation result may be understood as updating a connection value between each calculation block through a backward operation in order to improve accuracy when an error occurs in the forward operation result.
  • each adjacent calculation block is directly linked, and when this process is performed in the forward direction (input-output), it can be understood as defining a simple workflow.
  • the reverse (output->input) operation process is the core of algorithm processing (eg, error function-based iterative processing in machine learning models or numerical analysis models, etc.) and can be widely used in various machine learning models or numerical analysis models.
  • algorithm processing eg, error function-based iterative processing in machine learning models or numerical analysis models, etc.
  • connection value updater 30 Such a backward operation process will be described in detail in the description of the connection value updater 30 to be described below.
  • connection value update unit 30 performs a function of updating the connection value between each calculation block through reverse operation.
  • connection value update unit 30 sets the output value of the output calculation block corresponding to the forward calculation result to a predefined value.
  • the connection value between each calculation block is updated so that it becomes the optimal value.
  • connection value update unit 30 repeatedly updates the connection value between each calculation block through a reverse operation based on at least one of the curvature and the slope, so that the output value of the output calculation block reaches a predefined optimal value. can make it happen
  • connection value update unit 30 initially updates the connection value between each calculation block based on the curvature, and the error reduction width using the curvature is the reference value. In the following case, by repeating the operation of updating the connection value between each calculation block based on the slope (ad), the convergence speed of the output value of the output calculation block is accelerated, and the predefined optimal value is always reached. will be.
  • the update method using the curvature in the embodiment of the present invention may be calculated using the following Hessian Matrix.
  • the above Hessian Matrix can be calculated using the below Jacobian Matrix.
  • ⁇ (>0) is a damping factor (DF) and may be increased or decreased together according to the increase/decrease state of the error and may be adjusted.
  • DF damping factor
  • F(x) denotes a differentiable multivariable function
  • F(x) is the gradient vector and represents a constant
  • the recommendation unit 40 performs a function of recommending an operator for executing the analysis algorithm.
  • the recommendation unit 40 repeatedly executes the analysis algorithm a predetermined number of times through each of the previously registered matrix operators, and selects a specific value according to the repeated execution result.
  • the matrix operator is recommended as the optimal operator for forward operation.
  • the recommendation unit 40 repeatedly executes the analysis algorithm a predefined number of times through each of the previously registered matrix operators, and as a result of such repeated execution, the average execution time in the two execution steps that are adjacent to each other is the shortest , a specific matrix operator whose difference between average execution times is found to be less than a threshold can be recommended as an operator for forward operation.
  • GEMM General Matrix Multiply
  • Strassen Pan
  • Winograd Coppersmith-Winograd
  • Stother and Williams
  • the recommendation unit 40 calculates a probabilistic difference between the average execution time in the previous execution step (t-1) and the average execution time in the next execution step (t) for each of the matrix operators to be compared. do.
  • Such a stochastic difference is the difference in average execution time within a specific probability based on the random variable F by [Equation 4] below calculated with the values of two random variables V 1 and V 2 with k 1 , k 2 degrees of freedom. It can be calculated as the value of the cumulative probability distribution.
  • the cumulative probability serving as the optimal operator recommendation criterion can be changed by the user according to the situation.
  • the basic cumulative probability is recommended based on 0.9 and may be changed and input according to the situation.
  • the random variable F has little change and may continue until there is no change in the conclusion about the difference in average execution time.
  • a user in the case of a matrix operator applied every time the analysis algorithm is repeatedly executed, a user (developer) may be selected in a fixed order or randomly selected in advance and applied to the calculation process.
  • an intermediate operator for performing a specific operation in advance using the basic operator of a matrix operation is provided, and a user (developer) can create and provide a new operator.
  • CNN Convolutional Neural Network
  • An appropriate convolution operation method can be selected.
  • the user can directly specify the matrix operator and force its use.
  • a user may develop an analysis model by randomly applying an appropriate matrix operator for each step.
  • the calculation time according to the size and shape of the matrix is stored in a file or database in the system, and when a matrix of the same type is input later, it is performed in the past. It can also be implemented in such a way that the system first recommends the optimal operator based on the obtained results.
  • the calculation flow between each calculation block in which independent calculation processing is performed in relation to the execution of the analysis algorithm is connected by a link, and , it is possible to effectively support the development (construction) of high-level machine learning models using large-scale computational resources through the method of recommending the optimal operator for the execution of the analysis algorithm.
  • the block connection unit 10 connects the calculation flow between each calculation block in which independent calculation processing is performed in relation to the execution of the analysis algorithm by a link (S11-S14).
  • the calculation block is an object for inputting or selecting essential information necessary for the overall analysis process such as analysis and data processing
  • the link may be understood as an object defining the characteristics of the connection between the calculation blocks.
  • individual elements of an analysis algorithm or model are implemented as independent calculation blocks, such as a method of controlling data processing or analysis flow, and the flow of calculation between each calculation block is connected and processed by a link.
  • a calculation block group (computation block group A, calculation block group) A detailed model including B) can be implemented.
  • computation block group (computation block group A, computation block group B) supports both the link-based connection within the group, the group and the group, or the group and the external single or multiple computation blocks.
  • the implementation of the calculation block in a group unit can be understood to divide and manage the entire complex analysis process and model in a group unit, which is an easy-to-manage form.
  • the block connection unit 10 determines that the output value from the corresponding calculation block is applied to the calculation rule through step S13. It can be linked by a link so that it can be delivered to any computational block via an aggregation block for
  • the calculation result of a specific calculation block is not directly transferred to an adjacent block, but is connected to an arbitrary calculation block through several calculation procedures, or the calculation result of each calculation block is expressed by a specific algorithm or equation It provides aggregate blocks that can be combined according to
  • the gradient is not lost and can be transmitted well, or it prevents distortion such as underestimating or overestimating a specific calculation result in the algorithm processing process.
  • a method that can freely connect to arbitrary calculation blocks and apply calculation rules, rather than sequential connection with adjacent calculation blocks, is required when a special calculation rule is to be applied.
  • a connection to an arbitrary calculation block is supported by applying a predefined calculation rule to an output value from a specific calculation block using the aggregation block.
  • connection of arbitrary calculation blocks through the aggregation block can be made according to user (developer) definition, but in one embodiment of the present invention, it is assumed that the system automatically supports connection with arbitrary calculation blocks. .
  • the block connection unit 10 when the block connection unit 10 connects arbitrary calculation blocks through an aggregation block, it has a layer interval of a set number (eg, 3 layers) or more from the layer of a specific calculation block, and The calculation block of the layer whose change starts below the reference value is connected to an arbitrary calculation block.
  • a layer interval of a set number eg, 3 layers
  • the calculation block of the layer whose change starts below the reference value is connected to an arbitrary calculation block.
  • the block connection unit 10 for any calculation block (hereinafter, first calculation block) connected to the specific calculation block via the aggregation block, another arbitrary calculation block (hereinafter, 2nd calculation block), check the weight change between the layers of the first calculation block and the layer having an interval greater than or equal to the set number (eg, 3 layers) in the order of neighboring layers, and change the weight greater than or equal to the reference value
  • the calculation block of the layer in which ⁇ is confirmed is connected to the second calculation block.
  • the weight change is the reference value input by the user (developer) with an interval of 3 layers or more between intermediate layers.
  • An arbitrary calculation block can be configured by increasing the interval between the intermediate layers by one layer (Layer) until the value is sufficiently changed (ae).
  • the aggregation block may support simultaneous connection with a plurality of calculation blocks, as illustrated in FIG. 5 .
  • a predefined calculation rule can be applied and one or multiple outputs can be produced, and these results are in turn combined with one or multiple calculation blocks. It can be transmitted through a connection.
  • the aggregation block according to an embodiment of the present invention can be connected to an adjacent calculation block or connected to a remote calculation block through the aggregation block, and through this block-to-block connection method, accurate learning even in a model having a complex network structure can make it possible
  • the error check unit 20 checks whether an error occurs in the forward calculation result sequentially calculated from the input calculation block to the output calculation block based on a predefined operator according to the link connection between the calculation blocks (S15).
  • checking whether an error occurs in the forward operation result may be understood as updating a connection value between each calculation block through a backward operation in order to improve accuracy when an error occurs in the forward operation result.
  • connection value update unit 30 sets the output value of the output calculation block corresponding to the forward calculation result to a predefined optimal value.
  • the connection value between each calculation block is updated so that it becomes a value (S16-S17).
  • connection value update unit 30 repeatedly updates the connection value between each calculation block through a reverse operation based on at least one of the curvature and the slope, so that the output value of the output calculation block reaches a predefined optimal value. can make it happen
  • connection value update unit 30 initially updates the connection value between each calculation block based on the curvature when it is confirmed that an error occurs in the forward operation result, and the error reduction width using the curvature is If it is less than the reference value, by repeating the operation of updating the connection value between each calculation block based on the slope (ad), the convergence speed of the output value of the output calculation block is accelerated, and the predefined optimal value is always reached.
  • the recommendation unit 40 repeatedly executes the analysis algorithm a predefined number of times through each of the previously registered matrix operators, and according to the results of the repeated execution, the specific matrix operator is recommended as an optimal operator for forward operation (S18-S21).
  • the recommendation unit 40 repeatedly executes the analysis algorithm a predefined number of times through each of the previously registered matrix operators, and as a result of such repeated execution, the average execution time in the two execution steps that are adjacent to each other is the shortest, , a specific matrix operator whose difference between average execution times is found to be less than a threshold can be recommended as an optimal operator for forward operation.
  • GEMM General Matrix Multiply
  • Strassen Pan
  • Winograd Coppersmith-Winograd
  • Stother and Williams
  • the recommendation unit 40 calculates a probabilistic difference between the average execution time in the previous execution step (t-1) and the average execution time in the next execution step (t) for each of the matrix operators to be compared.
  • This stochastic difference is averaged within a specific probability based on the random variable F calculated with the values of two random variables V 1 and V 2 having k 1 , k 2 degrees of freedom as in [Equation 4] mentioned above. Whether there is a difference in execution time can be calculated as a value of the cumulative probability distribution.
  • the cumulative probability serving as the optimal operator recommendation criterion can be changed by the user according to the situation.
  • the basic cumulative probability is recommended based on 0.9 and may be changed and input according to the situation.
  • the random variable F has little change and may continue until there is no change in the conclusion about the difference in average execution time.
  • the calculation flow between each calculation block in which independent calculation processing is performed in relation to the execution of the analysis algorithm is connected by a link. And, through the method of recommending the optimal operator for the execution of the analysis algorithm, it is possible to effectively support the development (construction) of high-level machine learning models using large-scale computational resources.
  • Implementations of the subject matter described in this specification are implemented as digital electronic circuits, computer software, firmware or hardware including the structures disclosed in this specification and structural equivalents thereof, or at least one of these It can be implemented by combining.
  • Implementations of the subject matter described herein are one or more computer program products, ie one or more modules of computer program instructions encoded on a tangible program storage medium for controlling the operation of or for execution by a processing system. can be implemented.
  • the computer readable medium may be a machine readable storage device, a machine readable storage substrate, a memory device, a composition of matter that affects a machine readable radio wave signal, or a combination of one or more thereof.
  • system encompasses all devices, devices and machines for processing data, including, for example, programmable processors, computers, or multiple processors or computers.
  • a processing system may include, in addition to hardware, code that, upon request, forms an execution environment for a computer program, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of these. .
  • a computer program (also known as a program, software, software application, script or code) may be written in any form of a programming language, including compiled or interpreted language or a priori or procedural language, and may be written as a stand-alone program or module; It can be deployed in any form, including components, subroutines, or other units suitable for use in a computer environment.
  • a computer program does not necessarily correspond to a file in a file system.
  • a program may be placed in a single file provided to the requested program, or in multiple interacting files (eg, files that store one or more modules, subprograms, or portions of code), or portions of files that hold other programs or data. (eg, one or more scripts stored within a markup language document).
  • the computer program may be deployed to be executed on a single computer or multiple computers located at one site or distributed over a plurality of sites and interconnected by a communication network.
  • computer-readable media suitable for storing computer program instructions and data include, for example, semiconductor memory devices such as EPROMs, EEPROMs and flash memory devices, such as magnetic disks such as internal hard disks or external disks, magneto-optical disks and CDs.
  • semiconductor memory devices such as EPROMs, EEPROMs and flash memory devices, such as magnetic disks such as internal hard disks or external disks, magneto-optical disks and CDs.
  • -Can include all types of non-volatile memory, media and memory devices, including ROM and DVD-ROM disks.
  • the processor and memory may be supplemented by, or integrated into, special purpose logic circuitry.
  • Implementations of the subject matter described herein may include a backend component, such as a data server, or a middleware component, such as an application server, such as a web browser or graphical user that allows a user to interact with an implementation of the subject matter described herein, for example. It may be implemented in a front-end component, such as a client computer having an interface, or in a computing system including any combination of one or more of such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication, such as, for example, a communication network.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

The present invention relates to a development apparatus for an analysis algorithm and an operation method therefor, the development apparatus being capable of effectively supporting the development (construction) of a high-level machine learning model using large-scale computational resources even without the constraints of a special development language or environment.

Description

분석알고리즘개발장치 및 그 동작 방법Analysis algorithm development apparatus and its operation method
본 발명은 특별한 개발 언어나 환경의 구속 없이도 대규모 계산 자원을 활용한 고 난이도의 기계학습모델 개발(구축)을 효과적으로 지원할 수 있는 방안에 관한 것이다.The present invention relates to a method that can effectively support the development (construction) of a machine learning model of high difficulty using a large-scale computational resource without being constrained by a special development language or environment.
인공지능은 기계학습을 이용하여 생성(훈련)되거나 활용(추론 혹은 예측)될 수 있다.Artificial intelligence can be created (trained) or utilized (inferred or predicted) using machine learning.
특히, 기계학습을 이용하는 인공지능에 있어서, 훈련 과정은 연산장치를 이용하여 데이터 인식, 분류와 같은 동작의 판단 기준으로 사용되는 인공의 지능을 형성하는 과정이며, 그 훈련의 결과로, 입력 데이터의 인식, 분류의 판단 기준 등이 생성될 수 있다.In particular, in artificial intelligence using machine learning, the training process is a process of forming artificial intelligence that is used as a criterion for judging operations such as data recognition and classification by using an arithmetic device, and as a result of the training, Recognition and classification criteria may be generated.
이때, 훈련 과정을 통해 생성된 판단 기준을 기계학습모델(machine learning model)이라고 한다.In this case, the judgment criterion generated through the training process is called a machine learning model.
최근에는 딥러닝 등의 기계학습모델의 개발이 산업 전반에 걸쳐 활발히 이루어지고 있으며, 향후 시장의 수요 또한 꾸준히 증가 추세를 이룰 것으로 기대되고 있다.Recently, the development of machine learning models such as deep learning has been actively carried out throughout the industry, and it is expected that the market demand will also steadily increase in the future.
그러나, 지금까지의 기계학습모델의 개발 환경에서는, 개발 언어가 특정되며, 이미 정의되어 있는 연산 알고리즘을 제공하거나, 내지는 워크플로우를 사용자가 직접 개발해야 하는 수준에 머물고 있는 관계로, 전문 지식이 없는 개발자에 대해 기계학습모델의 개발을 지원하기에는 한계가 따른다.However, in the development environment of the machine learning model so far, the development language is specified, and the user has to develop the previously defined computational algorithm or the workflow. There is a limit to supporting the development of machine learning models for developers.
더욱이, 개발자가 고 난이도의 기계학습모델을 개발하고자 하는 경우, 예컨대, 빅데이터의 분석 처리를 위한 대규모 계산 자원의 유연한 설정 및 최적화된 연산자의 적용 등에 있어서 이러한 기존 기계학습모델의 개발 환경의 한계점은 더욱 더 심화될 수 있다.Moreover, when a developer wants to develop a machine learning model of high difficulty, for example, the limitations of the development environment of such an existing machine learning model in the flexible setting of large-scale computational resources for analysis processing of big data and application of optimized operators, etc. could get even worse.
이에, 본 발명은 기계학습모델의 개발(구축)을 효과적으로 지원할 수 있는 새로운 방안을 제안하고자 한다.Accordingly, the present invention intends to propose a new method that can effectively support the development (construction) of a machine learning model.
본 발명은 상기한 사정을 감안하여 창출된 것으로서, 본 발명에서 도달하고자 하는 목적은, 특별한 개발 언어나 환경의 구속 없이 대규모 계산 자원을 활용한 고 난이도의 기계학습모델 개발(구축)을 효과적으로 지원하는데 있다.The present invention was created in consideration of the above circumstances, and the purpose of the present invention is to effectively support the development (construction) of a high-level machine learning model using large-scale computational resources without the restriction of a special development language or environment. have.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 분석알고리즘개발장치는, 분석 알고리즘의 실행과 관련하여 독립적인 계산 처리가 이루어지는 각 계산 블록 간의 계산 흐름을 링크로 연결하는 블록연결부; 상기 링크 연결에 따라 기 정의된 연산자를 기준으로 입력 계산 블록으로부터 출력 계산 블록까지 순차적으로 계산되는 순방향 연산 결과의 오차 발생 여부를 확인하는 오차확인부; 및 상기 순방향 연산 결과의 오차 발생이 확인되는 경우, 상기 순방향 연산 결과에 해당하는 상기 출력 계산 블록의 출력 값이 기 정의된 최적 값이 되도록 각 계산 블록 간 연결 값을 갱신하는 연결값갱신부를 포함하는 것을 특징으로 한다.An apparatus for developing an analysis algorithm according to an embodiment of the present invention for achieving the above object includes: a block connection unit for connecting a calculation flow between each calculation block in which independent calculation processing is performed in relation to the execution of the analysis algorithm by a link; an error checking unit for checking whether an error occurs in a result of a forward calculation sequentially calculated from an input calculation block to an output calculation block based on a predefined operator according to the link connection; and a connection value update unit for updating the connection value between each calculation block so that the output value of the output calculation block corresponding to the forward calculation result becomes a predefined optimal value when it is confirmed that an error occurs in the forward calculation result. characterized in that
구체적으로, 상기 블록연결부는, 특정 계산 블록으로부터의 출력 값에 대해 기 정의된 계산 규칙을 적용하고자 하는 경우, 상기 특정 계산 블록으로부터의 출력 값이 상기 계산 규칙 적용을 위한 집계 블록을 경유하여 임의의 계산 블록으로 전달될 수 있도록 링크로 연결할 수 있다.Specifically, when the block connection unit intends to apply a pre-defined calculation rule to an output value from a specific calculation block, the output value from the specific calculation block may be randomized via an aggregation block for applying the calculation rule. It can be linked by a link so that it can be passed to a computational block.
구체적으로, 상기 블록연결부는, 상기 특정 계산 블록의 레이어(Layer)와는 설정 개수 이상의 레이어 간격을 가지며, 레이어 간 가중치의 변화가 기준치 이하로 시작되는 레이어의 계산 블록을 상기 임의의 계산 블록으로 연결할 수 있다.Specifically, the block connection unit may connect a calculation block of a layer having a layer interval greater than or equal to a set number of layers from the layer of the specific calculation block, and whose weight change between layers starts below a reference value, to the arbitrary calculation block. have.
구체적으로, 상기 블록연결부는, 상기 집계 블록을 경유하여 상기 특정 계산 블록과 연결되는 임의의 계산 블록인 제1 계산 블록에 대해 별도의 집계 블록을 통해 또 다른 임의의 계산 블록인 제2 계산 블록을 연결하고자 하는 경우, 상기 제1 계산 블록의 레이어와 상기 설정 개수 이상의 간격을 가지는 레이어부터 이웃한 레이어 순서로 레이어 간 가중치 변화를 확인하여, 기준치 이상의 가중치 변화가 확인되는 레이어의 계산 블록을 상기 제2 계산 블록으로 연결할 수 있다.Specifically, the block connection unit connects a second calculation block that is another arbitrary calculation block through a separate aggregation block to a first calculation block that is an arbitrary calculation block connected to the specific calculation block via the aggregation block. In the case of connection, the weight change between the layers of the first calculation block and the layer having an interval equal to or greater than the set number is checked in the order of the neighboring layers, and the calculation block of the layer in which the weight change equal to or greater than the reference value is confirmed is set to the second calculation block. It can be connected to a calculation block.
구체적으로, 상기 연결값갱신부는, 상기 순방향 연산 결과의 오차 발생이 확인되는 경우, 곡률 및 기울기 중 적어도 하나를 기준으로 한 역방향 연산을 통해 각 계산 블록 간 연결 값을 갱신할 수 있다.Specifically, when it is confirmed that an error occurs in the result of the forward operation, the connection value update unit may update the connection value between each calculation block through a backward operation based on at least one of a curvature and a slope.
구체적으로, 상기 연결값갱신부는, 상기 순방향 연산 결과의 오차 발생이 확인되는 경우, 상기 곡률을 기준으로 각 계산 블록 간 연결 값을 초기 갱신하며, 상기 곡률을 이용한 오차 감소폭이 기준치 이하인 경우, 상기 기울기를 기준으로 각 계산 블록 간 연결 값을 갱신할 수 있다.Specifically, the connection value update unit may initially update the connection value between each calculation block based on the curvature when the occurrence of an error in the forward operation result is confirmed, and when the error reduction width using the curvature is less than or equal to a reference value, the slope Based on , the connection value between each calculation block can be updated.
구체적으로, 상기 분석알고리즘개발장치는, 2 이상의 행렬 연산자 각각을 통해 상기 분석 알고리즘을 기 정의된 횟수만큼 반복 실행한 결과, 서로 이웃한 순서인 두 실행 단계에서의 평균 실행 시간이 가장 짧으며, 평균 실행 시간 간의 차이가 임계치 미만으로 확인되는 특정 행렬 연산자를 상기 순방향 연산을 위한 연산자로 추천하는 추천부를 더 포함할 수 있다.Specifically, the analysis algorithm development apparatus, as a result of repeatedly executing the analysis algorithm a predetermined number of times through each of two or more matrix operators, has the shortest average execution time in the two execution steps that are adjacent to each other, and the average The method may further include a recommendation unit for recommending a specific matrix operator whose difference between execution times is determined to be less than a threshold as an operator for the forward operation.
상기 목적을 달성하기 위한 본 발명의 일 실시예에 따른 분석알고리즘개발장치의 동작 방법은, 분석 알고리즘의 실행과 관련하여 독립적인 계산 처리가 이루어지는 각 계산 블록 간의 계산 흐름을 링크로 연결하는 블록연결단계; 상기 링크 연결에 따라 기 정의된 연산자를 기준으로 입력 계산 블록으로부터 출력 계산 블록까지 순차적으로 계산되는 순방향 연산 결과의 오차 발생 여부를 확인하는 오차확인단계; 및 상기 순방향 연산 결과의 오차 발생이 확인되는 경우, 상기 순방향 연산 결과에 해당하는 상기 출력 계산 블록의 출력 값이 기 정의된 최적 값이 되도록 각 계산 블록 간 연결 값을 갱신하는 연결값갱신단계를 포함하는 것을 특징으로 한다.The method of operating an analysis algorithm development apparatus according to an embodiment of the present invention for achieving the above object is a block connection step of linking a calculation flow between each calculation block in which independent calculation processing is performed in relation to the execution of the analysis algorithm by a link ; an error checking step of checking whether an error occurs in a forward calculation result sequentially calculated from an input calculation block to an output calculation block based on a predefined operator according to the link connection; and a connection value updating step of updating the connection value between each calculation block so that the output value of the output calculation block corresponding to the forward calculation result becomes a predefined optimal value when it is confirmed that an error occurs in the forward operation result. characterized in that
구체적으로, 상기 블록연결단계는, 특정 계산 블록으로부터의 출력 값에 대해 기 정의된 계산 규칙을 적용하고자 하는 경우, 상기 특정 계산 블록으로부터의 출력 값이 상기 계산 규칙 적용을 위한 집계 블록을 경유하여 임의의 계산 블록으로 전달될 수 있도록 링크로 연결할 수 있다.Specifically, in the block connection step, when a predefined calculation rule is to be applied to an output value from a specific calculation block, the output value from the specific calculation block is arbitrary via an aggregation block for applying the calculation rule It can be linked by a link so that it can be transmitted to the computation block of
구체적으로, 상기 블록연결단계는, 상기 특정 계산 블록의 레이어(Layer)와는 설정 개수 이상의 레이어 간격을 가지며, 레이어 간 가중치의 변화가 기준치 이하로 시작되는 레이어의 계산 블록을 상기 임의의 계산 블록으로 연결할 수 있다.Specifically, in the block connection step, a calculation block of a layer having a layer interval of a set number or more from the layers of the specific calculation block and whose weight change between layers starts less than or equal to a reference value is connected to the arbitrary calculation block. can
구체적으로, 상기 블록연결단계는, 상기 집계 블록을 경유하여 상기 특정 계산 블록과 연결되는 임의의 계산 블록인 제1 계산 블록에 대해 별도의 집계 블록을 통해 또 다른 임의의 계산 블록인 제2 계산 블록을 연결하고자 하는 경우, 상기 제1 계산 블록의 레이어와 상기 설정 개수 이상의 간격을 가지는 레이어부터 이웃한 레이어 순서로 레이어 간 가중치 변화를 확인하여, 기준치 이상의 가중치 변화가 확인되는 레이어의 계산 블록을 상기 제2 계산 블록으로 연결할 수 있다.Specifically, in the block connection step, a second calculation block that is another arbitrary calculation block through a separate aggregation block for a first calculation block that is an arbitrary calculation block connected to the specific calculation block via the aggregation block to connect the layers of the first calculation block and the layer having an interval equal to or greater than the set number, check the weight change between the layers in the order of the neighboring layers, and select the calculation block of the layer in which the weight change greater than or equal to the reference value is confirmed as the second calculation block. It can be linked with 2 calculation blocks.
구체적으로, 상기 연결값갱신단계는, 상기 순방향 연산 결과의 오차 발생이 확인되는 경우, 곡률 및 기울기 중 적어도 하나를 기준으로 한 역방향 연산을 통해 각 계산 블록 간 연결 값을 갱신할 수 있다.Specifically, in the updating of the connection value, when it is confirmed that an error occurs in the result of the forward operation, the connection value between each calculation block may be updated through a backward operation based on at least one of a curvature and a slope.
구체적으로, 상기 연결값갱신단계는, 상기 순방향 연산 결과의 오차 발생이 확인되는 경우, 상기 곡률을 기준으로 각 계산 블록 간 연결 값을 초기 갱신하며, 상기 곡률을 이용한 오차 감소폭이 기준치 이하인 경우, 상기 기울기를 기준으로 각 계산 블록 간 연결 값을 갱신할 수 있다.Specifically, in the step of updating the connection value, when the occurrence of an error in the forward operation result is confirmed, the connection value between each calculation block is initially updated based on the curvature, and when the error reduction width using the curvature is less than or equal to a reference value, the Based on the slope, the connection value between each calculation block can be updated.
구체적으로, 상기 방법은, 2 이상의 행렬 연산자 각각을 통해 상기 분석 알고리즘을 기 정의된 횟수만큼 반복 실행한 결과, 서로 이웃한 순서인 두 실행 단계에서의 평균 실행 시간이 가장 짧으며, 평균 실행 시간 간의 차이가 임계치 미만으로 확인되는 특정 행렬 연산자를 상기 순방향 연산을 위한 연산자로 추천하는 추천부를 더 포함할 수 있다.Specifically, in the method, as a result of repeatedly executing the analysis algorithm a predefined number of times through each of two or more matrix operators, the average execution time in two execution steps in the order adjacent to each other is the shortest, and the average execution time between the average execution times is the shortest. The method may further include a recommendation unit for recommending a specific matrix operator whose difference is determined to be less than a threshold as an operator for the forward operation.
이에, 본 발명의 분석알고리즘개발장치 및 그 동작 방법에서는, 분석 알고리즘의 실행과 관련하여 독립적인 계산 처리가 이루어지는 각 계산 블록 간의 계산 흐름을 링크로 연결하고, 분석 알고리즘의 실행을 위한 최적의 연산자를 추천하는 방식을 통해서, 대규모 계산 자원을 활용한 고 난이도의 기계학습모델 개발(구축)을 효과적으로 지원할 수 있다.Accordingly, in the apparatus for developing an analysis algorithm of the present invention and an operating method thereof, the calculation flow between each calculation block in which independent calculation processing is performed in relation to the execution of the analysis algorithm is connected by a link, and an optimal operator for the execution of the analysis algorithm is selected Through the recommended method, it is possible to effectively support the development (construction) of high-level machine learning models using large-scale computational resources.
도 1은 본 발명의 일 실시예에 따른 본 발명의 일 실시예에 따른 기계학습모델 개발 환경을 설명하기 위한 예시도.1 is an exemplary diagram for explaining a machine learning model development environment according to an embodiment of the present invention according to an embodiment of the present invention.
도 2는 본 발명의 일 실시예에 따른 분석알고리즘개발장치의 개략적인 구성도.2 is a schematic configuration diagram of an analysis algorithm development apparatus according to an embodiment of the present invention;
도 3은 본 발명의 일 실시예에 따른 계산 블록을 설명하기 위한 예시도.3 is an exemplary diagram for explaining a calculation block according to an embodiment of the present invention.
도 4 및 도 5는 본 발명의 일 실시예에 따른 집계 블록을 통한 연결 방식을 설명하기 위한 예시도.4 and 5 are exemplary diagrams for explaining a connection method through an aggregation block according to an embodiment of the present invention.
도 6은 본 발명의 일 실시예에 따른 계산 블록 간 연결 값 갱신을 설명하기 위한 예시도.6 is an exemplary diagram for explaining a connection value update between calculation blocks according to an embodiment of the present invention.
도 7은 본 발명의 일 실시예에 따른 분석알고리즘개발장치의 동작 방법을 설명하기 위한 개략적인 순서도.7 is a schematic flowchart for explaining an operating method of an analysis algorithm development apparatus according to an embodiment of the present invention.
본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 명세서에 개시된 기술의 사상을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 명세서에 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 명세서에 개시된 기술의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 당업자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 명세서에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다. It should be noted that the technical terms used in this specification are only used to describe specific embodiments, and are not intended to limit the spirit of the technology disclosed herein. In addition, the technical terms used in this specification should be interpreted in the meaning generally understood by those of ordinary skill in the art to which the technology disclosed in this specification belongs, unless otherwise defined in this specification. It should not be construed in a very comprehensive sense or in an excessively reduced meaning. In addition, when the technical terms used in the present specification are incorrect technical terms that do not accurately express the spirit of the technology disclosed herein, they should be understood by being replaced with technical terms that can be correctly understood by those skilled in the art. In addition, the general terms used in this specification should be interpreted according to the definition in the dictionary or according to the context before and after, and should not be interpreted in an excessively reduced meaning.
또한, 본 명세서에서 사용되는 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "구성된다" 또는 "포함한다" 등의 용어는 명세서상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다. Also, as used herein, the singular expression includes the plural expression unless the context clearly dictates otherwise. In this specification, terms such as “consisting of” or “comprising” should not be construed as necessarily including all of the various components or various steps described in the specification, some of which components or some steps are It should be construed that it may not include, or may further include additional components or steps.
또한, 본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다. Also, terms including ordinal numbers such as first, second, etc. used herein may be used to describe various components, but the components should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, the second component may also be referred to as a first component.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예들을 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. Hereinafter, embodiments disclosed in the present specification will be described in detail with reference to the accompanying drawings, but the same or similar components are assigned the same reference numerals regardless of reference numerals, and redundant description thereof will be omitted.
또한, 본 명세서에 개시된 기술을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 기술의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 기술의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 그 기술의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.In addition, in describing the technology disclosed in the present specification, if it is determined that a detailed description of a related known technology may obscure the gist of the technology disclosed in this specification, the detailed description thereof will be omitted. In addition, it should be noted that the accompanying drawings are only for easy understanding of the spirit of the technology disclosed in this specification, and should not be construed as limiting the spirit of the technology by the accompanying drawings.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예에 대하여 설명한다.Hereinafter, preferred embodiments of the present invention will be described with reference to the accompanying drawings.
본 발명의 일 실시예에서는, 딥러닝과 같은 기계학습모델을 포함하여 통계분석 및 수치해석 등의 알고리즘과 다양한 분석 방식을 GUI(Graphic User Interface)에 기반하여 사용자의 분석 흐름을 제어, 관리하고 알고리즘 처리의 핵심인 행렬 연산의 효율을 높일 수 있는 기계학습모델 개발 환경을 제안한다.In one embodiment of the present invention, the user's analysis flow is controlled and managed based on the GUI (Graphic User Interface) and various analysis methods and algorithms such as statistical analysis and numerical analysis, including a machine learning model such as deep learning, are controlled and managed, and the algorithm We propose a machine learning model development environment that can increase the efficiency of matrix operation, which is the core of processing.
또한, 본 발명의 일 실시예에서는, 전술한 바와 같이 GUI 기반의 사용자 분석을 지원하는데 그치지 않고, 복잡한 계산 과정과 컴퓨팅 자원 등을 효율적으로 관리하고, 빅데이터의 처리를 지원할 수 있는 기계학습모델 개발 환경을 제안하게 된다.In addition, in one embodiment of the present invention, as described above, it does not stop at supporting GUI-based user analysis, but also efficiently manages complex calculation processes and computing resources, and develops a machine learning model that can support the processing of big data. environment is suggested.
이와 관련하여, 도 1에는 본 발명의 일 실시예에 따른 기계학습모델 개발 환경을 개략적으로 보여주고 있다.In this regard, FIG. 1 schematically shows a machine learning model development environment according to an embodiment of the present invention.
도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 기계학습모델 개발 환경은, 시스템 구성과 그에 따른 구성 간 처리 흐름을, 다음의 단계로 구분할 수 있다.As shown in FIG. 1 , the machine learning model development environment according to an embodiment of the present invention may divide a system configuration and a processing flow between the configurations according to the system configuration into the following steps.
1) CPU, GPU, FGPA 등 데이터 처리와 분석에 필요한 자원의 종료와 규모 선택1) Termination and size selection of resources required for data processing and analysis, such as CPU, GPU, and FGPA
2) 원본 데이터의 입력, 처리, 적재2) Input, processing and loading of original data
3) 블록-링크 기반 분석 알고리즘 개발3) Development of block-link based analysis algorithm
4) 모델 평가 및 미세 조정4) Model evaluation and fine-tuning
5) 분석 결과 가시화5) Visualization of analysis results
6) 개발 모델을 이요한 신규 데이터의 추론 및 추론 서버 전송6) Inference of new data using the development model and transmission of inference server
7) 사용자 정의 블록 추가7) Add custom block
8) 사전 학습 모델 적용8) Apply the pre-learning model
여기서, CPU, GPU, FGPA 등 데이터 처리와 분석에 필요한 자원의 종료와 규모 선택에 관한 1) 단계는, 가용한 자원의 종류와 규모, 접속 정보를 시스템의 환경 설정 파일에 기록하고, 자원 할당 블록을 선택할 경우 이 정보를 전달받아 목록을 만드는 과정으로 이해될 수 있다.Here, step 1) related to the termination and size selection of resources necessary for data processing and analysis, such as CPU, GPU, FGPA, records the type and size of available resources, and access information in the system configuration file, and the resource allocation block If you select , it can be understood as the process of receiving this information and making a list.
또한, 원본 데이터의 입력, 처리, 적재에 관한 2) 단계는, 1) 단계에서 선택된 자원의 규모에 맞춰 실행되는 과정으로 이해될 수 있다.In addition, step 2) related to input, processing, and loading of original data may be understood as a process executed according to the size of the resource selected in step 1).
이때, 데이터가 적은 경우 단일 계산 자원을 이용하여 간단히 데이터를 처리할 수 있고, 반면 데이터 규모가 큰 경우에는 가능한 많은 양의 자원을 할당하여 빠르고 효율적으로 작업을 처리할 수 있도록 할 수 있다.In this case, when the amount of data is small, data can be simply processed using a single computational resource. On the other hand, when the size of the data is large, a large amount of resources can be allocated as possible so that the task can be processed quickly and efficiently.
이 과정에서는, 예컨대, Hadoop, 및 Spark 등을 비롯한 빅데이터 기술을 활용할 수 있지만 사용자(개발자)는 이러한 하부 기술의 내용을 확인할 필요 없이 1) 과정을 통해 자동 처리될 수 있다.In this process, for example, big data technologies including Hadoop, Spark, etc. can be utilized, but the user (developer) can be automatically processed through 1) process without the need to check the contents of these sub-technology.
또한, 분석 알고리즘 개발에 관한 3) 단계에서는, 분석 알고리즘에서 사용하는 입력 변수를 선택하거나 직접 사용자(개발자)가 직접 입력할 수 있으며, 분석 알고리즘이 기존의 표준화된 알고리즘이 아닌 경우 사용자(개발자)가 알고리즘 처리의 핵심 부분을 직접 스크립트로 수정하는 것을 지원할 수 있다.In addition, in step 3) of the analysis algorithm development, the user (developer) can select the input variable used in the analysis algorithm or directly input it, and when the analysis algorithm is not an existing standardized algorithm, the user (developer) It can support modifying the core part of algorithm processing directly with scripts.
이때, 분석 알고리즘의 내부 실행 코드는, 예컨대, Python 라이브러리, R 라이브러리, 딥러닝 프레임워크(예: TensorFlow, PyTorch, MXNet, CNTK, DL4J 등)에서 제공하는 Python과 R API를 기반으로 제공될 수 있으며, 사용자가 직접 스크립트로 수정할 경우에도 동일한 방식으로 입력을 처리할 수 있다.At this time, the internal execution code of the analysis algorithm may be provided based on Python and R API provided by, for example, a Python library, an R library, and a deep learning framework (eg, TensorFlow, PyTorch, MXNet, CNTK, DL4J, etc.). , the input can be processed in the same way even when the user directly modifies the script.
또한, 모델 평가 및 미세 조정에 관한 4) 단계에서는, 개발한 모델이 정확한 결과를 제공하는지 또는 더욱 개선할 여지가 있는지를 평가하고, 평가 결과에 따라 분석 알고리즘에서 필요한 입력 변수를 조정하는 과정으로 이해될 수 있다.In addition, in step 4) regarding model evaluation and fine-tuning, it is understood as a process of evaluating whether the developed model provides accurate results or has room for further improvement, and adjusting the necessary input variables in the analysis algorithm according to the evaluation results. can be
이때, 입력 변수 조정은 사용자(개발자)가 직접 선택하거나, 미리 정해진 규칙에 따라 모든 경우를 대입하여 처리한 후 가장 좋은 결과를 선택할 수 있도록 정보를 제공하는 방식으로 이루어질 수 있다.In this case, the input variable adjustment may be made in a way that the user (developer) directly selects, or provides information so that the best result can be selected after all cases are substituted and processed according to a predetermined rule.
또한, 분석 결과 가시화에 관한 5) 단계에서는, 모델 평가 및 미세 조정의 결과 또는 최종 결과에서 개발자로 하여금 수치화된 분석 결과를 한층 이해하기 쉽게 다양한 도표를 제공하고 예컨대 딥러닝과 같은 알고리즘에서는 신경망 구성 정보를 그래프로 출력하여 가시화하는 과정으로 이해될 수 있다.In addition, in step 5) related to the visualization of the analysis result, various charts are provided for the developer to understand the numerical analysis result more easily from the results of model evaluation and fine-tuning or the final result, and for example, neural network configuration information in algorithms such as deep learning It can be understood as a process of visualizing by outputting the graph.
또한, 개발 모델을 이용한 신규 데이터 추론 및 출론 서버 전송에 관한 6) 단계는, 분석 모델 개발에 사용하지 않은 새로운 데이터를 입력받아 예측을 수행하거나, 별도의 추론 서버가 존재하는 경우 해당 추론 서버에 개발한 모델을 전송하여 실제 서비스와 운영 환경에 적용하는 과정으로 이해될 수 있다.In addition, step 6) of new data inference using the development model and transmission of the inference server is performed by receiving new data not used for analysis model development and performing prediction, or if there is a separate inference server, it is developed in the inference server It can be understood as the process of transmitting a model and applying it to the actual service and operating environment.
또한, 사용자 정의 블록 추가에 관한 7) 단계는, 시스템에서 기본으로 제공하는 사전 정의 블록에서 처리할 수 없는 기능을 추가하는 과정으로 이해될 수 있다.In addition, step 7) of adding a user-defined block may be understood as a process of adding a function that cannot be processed in the predefined block provided by the system as a default.
이처럼 추가되는 사용자 정의 블록 역시 Python과 R API와 같은 스크립트 언어로 개발할 수 있으며, 분석 순서나 흐름과 관계없이 언제든 추가하여 적절한 위치에 배치하는 것이 지원될 수 있다.These additional user-defined blocks can also be developed with scripting languages such as Python and R API, and it can be supported to add and place them at an appropriate location at any time regardless of the analysis order or flow.
마지막, 사전 학습 모델 활용에 관한 8) 단계는, 기존에 개발한 모델을 라이브러리로 등록하여 사용자(개발자)로 하여금 이를 새로운 모델 구축에 활용하거나 추론에 바로 적용하는 과정으로 이해될 수 있다.Lastly, step 8) related to the use of the pre-learning model can be understood as a process of registering the previously developed model as a library and allowing the user (developer) to use it to build a new model or directly apply it to inference.
여기서, 사전 학습 모델은 모델의 개념이 매우 복잡한 경우에 유용하게 활용될 수 있으며, 이처럼 복잡하게 구성된 모델에 대해 사용자(개발자)가 자신의 데이터를 추가하여 모델이 산출하는 계수 또는 가중치를 조정할 수 있다.Here, the pre-learning model can be usefully utilized when the concept of the model is very complex, and the user (developer) can adjust the coefficients or weights calculated by the model by adding their own data to this complex model. .
참고로, 이 과정은 앞서 언급한 분석 알고리즘 개발에 관한 3) 단계를 대체하여 사용될 수 있다.For reference, this process can be used as a substitute for step 3) of the aforementioned analysis algorithm development.
이하에서는, 본 발명의 일 실시예에 따른 기계학습모델 개발 환경에서 기계학습모델 개발(구축)을 위한 핵심 과정인, 블록-링크 기반 분석 알고리즘 개발에 관한 3) 단계에 대해서 보다 구체적인 설명을 이어 가기로 한다.Hereinafter, a more detailed description of step 3) related to the development of a block-link-based analysis algorithm, which is a core process for developing (constructing) a machine learning model in a machine learning model development environment according to an embodiment of the present invention, will be continued below. do it with
이와 관련하여, 도 2에는 본 발명의 일 실시예에 따른 블록-링크 기반 분석 알고리즘 개발 과정을 실현하기 위한 분석알고리즘개발장치(100)의 구성을 개략적으로 보여주고 있다.In this regard, FIG. 2 schematically shows the configuration of an analysis algorithm development apparatus 100 for realizing a block-link-based analysis algorithm development process according to an embodiment of the present invention.
도 2에 도시된 바와 같이, 본 발명의 일 실시예에 따른 분석알고리즘개발장치(100)는 계산 블록을 연결하는 블록연결부(10), 오차 발생 여부를 확인하는 오차확인부(20), 및 블록 간 연결 값을 갱신하는 연결값갱신부(30)를 포함하는 구성을 가질 수 있다.As shown in FIG. 2 , the analysis algorithm development apparatus 100 according to an embodiment of the present invention includes a block connection unit 10 for connecting calculation blocks, an error check unit 20 for checking whether an error occurs, and a block It may have a configuration including a connection value update unit 30 for updating the connection value between connections.
또한, 본 발명의 일 실시예에 따른 분석알고리즘개발장치(100)는 전술한 구성 이외에, 연사자를 추천하는 추천부(40)를 더 포함할 수 있다.In addition, the analysis algorithm development apparatus 100 according to an embodiment of the present invention may further include a recommendation unit 40 for recommending a speaker in addition to the above-described configuration.
이상의 블록연결부(10), 오차확인부(20), 연결값갱신부(30), 및 추천부(40)를 포함하는 분석알고리즘개발장치(100)의 전체 구성 내지는 적어도 일부는 하드웨어 모듈 형태 또는 소프트웨어 모듈 형태로 구현되거나, 하드웨어 모듈과 소프트웨어 모듈이 조합된 형태로도 구현될 수 있다.The whole configuration or at least part of the analysis algorithm development apparatus 100 including the block connection unit 10, the error check unit 20, the connection value update unit 30, and the recommendation unit 40 is in the form of a hardware module or software It may be implemented in the form of a module or may be implemented in a form in which a hardware module and a software module are combined.
여기서, 소프트웨어 모듈이란, 예컨대, 분석알고리즘개발장치(100) 내에서 연산을 제어하는 프로세서에 의해 실행되는 명령어로 이해될 수 있으며, 이러한 명령어는 분석알고리즘개발장치(100) 내 메모리에 탑재된 형태를 가질 수 있을 것이다.Here, the software module, for example, may be understood as an instruction executed by a processor for controlling operations in the analysis algorithm development apparatus 100, and these instructions are in the form mounted in the memory in the analysis algorithm development apparatus 100. will be able to have
한편, 본 발명의 일 실시예에 따른 분석알고리즘개발장치(100)는 전술한 구성 이외에, 유무선 통신망 접속을 지원하기 위한 통신 기능을 담당하는 통신 모듈인 통신부(50)의 구성을 더 포함할 수 있다.On the other hand, the analysis algorithm development apparatus 100 according to an embodiment of the present invention may further include a configuration of the communication unit 50, which is a communication module responsible for a communication function for supporting a wired/wireless communication network connection, in addition to the above configuration. .
이상 본 발명의 일 실시예에 따른 분석알고리즘개발장치(100)는 전술한 구성을 통해서 특별한 개발 언어나 환경의 구속 없이도 대규모 계산 자원을 활용한 고 난이도의 기계학습모델 개발(구축)을 효과적으로 지원할 수 있는데, 이하에서는 이를 실현하기 위한 분석알고리즘개발장치(100) 내 각 구성에 대해 보다 구체적으로 설명하기로 한다.As described above, the apparatus 100 for developing an analysis algorithm according to an embodiment of the present invention can effectively support the development (construction) of a machine learning model of high difficulty using large-scale computational resources without restriction of a special development language or environment through the above-described configuration. Hereinafter, each configuration in the analysis algorithm development apparatus 100 for realizing this will be described in more detail.
블록연결부(10)는 계산 블록을 링크로 연결하는 기능을 수행한다.The block connection unit 10 performs a function of connecting the calculation blocks with a link.
보다 구체적으로, 블록연결부(10)는 분석 알고리즘의 실행과 관련하여 독립적인 계산 처리가 이루어지는 각 계산 블록 간의 계산 흐름을 링크로 연결하게 된다.More specifically, the block connection unit 10 connects the calculation flow between each calculation block in which independent calculation processing is performed in relation to the execution of the analysis algorithm by a link.
여기서, 계산 블록은, 분석과 데이터 처리 등 분석과정 전반에 필요한 필수 정보를 입력하거나 선택하는 객체이며, 링크는 계산 블록 간 연결의 특징을 정의하는 객체로 이해될 수 있다.Here, the calculation block is an object for inputting or selecting essential information necessary for the overall analysis process such as analysis and data processing, and the link may be understood as an object defining the characteristics of the connection between the calculation blocks.
즉, 본 발명의 일 실시예에서는 데이터 처리나 분석 흐름을 제어하는 방식과 같이 분석 알고리즘이나 모델의 개별 요소들을 독립적인 계산 블록으로 구현하고, 각 계산 블록 간 계산의 흐름을 링크로 연결하여 처리하고 있는 것이다.That is, in an embodiment of the present invention, individual elements of an analysis algorithm or model are implemented as independent calculation blocks, such as a method of controlling data processing or analysis flow, and the flow of calculation between each calculation block is connected and processed by a link. there will be
이와 관련하여, 본 발명의 일 실시예에 따라 신경망 모델과 같은 복잡한 단계로 이루어지는 알고리즘을 적용하는 경우에는 예컨대, 도 3에 도시된 바와 같이, 계산 블록 그룹(계산 블록 그룹 A, 계산 블록 그룹 B)을 포함하는 상세 모델을 구현할 수 있다.In this regard, when an algorithm consisting of complex steps such as a neural network model is applied according to an embodiment of the present invention, for example, as shown in FIG. 3 , a group of computational blocks (computation block group A, computation block group B) It is possible to implement a detailed model including
여기서, 계산 블록 그룹(계산 블록 그룹 A, 계산 블록 그룹 B)은, 그룹 내에서의 링크 기반 연결과, 그룹과 그룹, 또는 그룹과 외부 단일 내지는 여러 계산 블록과의 연결을 모두 지원한다.Here, the computation block group (computation block group A, computation block group B) supports both the link-based connection within the group, the group and the group, or the group and the external single or multiple computation blocks.
이처럼, 계산 블록을 그룹 단위로 구현하는 것은, 복잡한 분석 과정 전체와 모델을 관리에 용이한 형태인 그룹 단위로 구획하여 관리하기 위함으로 이해될 수 있다.In this way, the implementation of the calculation block in a group unit can be understood to divide and manage the entire complex analysis process and model in a group unit, which is an easy-to-manage form.
또한, 블록연결부(10)는 특정 계산 블록으로부터의 출력 값에 대해 기 정의된 계산 규칙을 적용하고자 하는 경우, 해당 계산 블록으로부터의 출력 값이 상기 계산 규칙 적용을 위한 집계 블록을 경유하여 임의의 계산 블록으로 전달될 수 있도록 링크로 연결할 수 있다.In addition, when the block connection unit 10 intends to apply a predefined calculation rule to an output value from a specific calculation block, the output value from the corresponding calculation block is an arbitrary calculation via the aggregation block for applying the calculation rule. Links can be linked so that they can be delivered as blocks.
즉, 본 발명의 일 실시예에서는, 특정 계산 블록의 계산 결과가 인접 블록으로 직접 전달되지 않고 몇 가지 계산 절차를 거쳐 임의의 계산 블록과 연결되거나, 각 계산 블록의 계산 결과를 특정 알고리즘이나 수학식에 맞게 결합할 수 있는 집계 블록을 제공하고 있는 것이다.That is, in an embodiment of the present invention, the calculation result of a specific calculation block is not directly transferred to an adjacent block, but is connected to an arbitrary calculation block through several calculation procedures, or the calculation result of each calculation block is expressed by a specific algorithm or equation It provides aggregate blocks that can be combined according to
특히, 신경망 모형의 경우, 학습 단계에서 후진역전파(backpropagation) 할 때 기울기가 소실되지 않고 잘 전달될 수 있게 하거나, 또는 특정 계산 결과가 알고리즘 처리 과정에서 과소 혹은 과대 평가되는 등의 왜곡을 막거나, 내지는 특별한 계산 규칙을 적용하고 싶을 때 인접 계산 블록과의 순차 연결이 아닌 임의의 계산 블록과 자유롭게 연결하고 계산 규칙을 적용할 수 있는 방식이 요구된다.In particular, in the case of a neural network model, when performing backpropagation in the learning phase, the gradient is not lost and can be transmitted well, or it prevents distortion such as underestimating or overestimating a specific calculation result in the algorithm processing process. , or a method that can freely connect to arbitrary calculation blocks and apply calculation rules, rather than sequential connection with adjacent calculation blocks, is required when a special calculation rule is to be applied.
이에, 본 발명의 일 실시예에서는, 집계 블록을 활용하여 특정 계산 블록으로부터의 출력 값에 대해 기 정의된 계산 규칙을 적용하여 임의의 계산 블록으로의 연결을 지원하고 있는 것이다.Accordingly, in an embodiment of the present invention, a connection to an arbitrary calculation block is supported by applying a predefined calculation rule to an output value from a specific calculation block using the aggregation block.
이처럼 집계 블록을 통해 임의의 계산 블록을 연결하는 것은 사용자(개발자) 정의에 따라 이루어질 수 있지만, 본 발명의 일 실시예에서는 시스템에서 자동으로 임의의 계산 블록과의 연결을 지원하는 것을 전제하기로 한다.As such, the connection of arbitrary calculation blocks through the aggregation block can be made according to user (developer) definition, but in one embodiment of the present invention, it is assumed that the system automatically supports connection with arbitrary calculation blocks. .
이와 관련하여, 블록연결부(10)는 집계 블록을 통해 임의의 계산 블록을 연결하는 경우, 특정 계산 블록의 레이어(Layer)와는 설정 개수(예: 3 layer) 이상의 레이어 간격을 가지며, 레이어 간 가중치의 변화가 기준치 이하로 시작되는 레이어의 계산 블록을 임의의 계산 블록으로 연결하게 된다.In this regard, when the block connection unit 10 connects arbitrary calculation blocks through an aggregation block, it has a layer interval of a set number (eg, 3 layers) or more from the layer of a specific calculation block, and The calculation block of the layer whose change starts below the reference value is connected to an arbitrary calculation block.
이때, 블록연결부(10)는, 집계 블록을 경유하여 상기 특정 계산 블록과 연결되는 임의의 계산 블록(이하, 제1 계산 블록)에 대해 별도의 집계 블록을 통해 또 다른 임의의 계산 블록(이하, 제2 계산 블록)을 연결하고자 하는 경우에는 제1 계산 블록의 레이어와 상기 설정 개수(예: 3 layer) 이상의 간격을 가지는 레이어부터 이웃한 레이어 순서로 레이어 간 가중치 변화를 확인하여, 기준치 이상의 가중치 변화가 확인되는 레이어의 계산 블록을 제2 계산 블록으로 연결한다.At this time, the block connection unit 10, for any calculation block (hereinafter, first calculation block) connected to the specific calculation block via the aggregation block, another arbitrary calculation block (hereinafter, 2nd calculation block), check the weight change between the layers of the first calculation block and the layer having an interval greater than or equal to the set number (eg, 3 layers) in the order of neighboring layers, and change the weight greater than or equal to the reference value The calculation block of the layer in which α is confirmed is connected to the second calculation block.
예를 들어, 도 4를 참조하면, 시스템에서 갱신되는 가중치가 지나치게 작아 가중치의 갱신 폭에 변화가 없을 경우 중간층 간 3 단계(Layer) 이상의 간격을 두고 가중치의 변화가 사용자(개발자)가 입력한 기준치 이하(0에 가까운)로 이루어지기 시작하는 중간층(Layer A1)을 결정하고, 결정된 중간층(Layer A1)부터 입력층으로부터 멀어지는 3 단계(Layer) 이상의 간격을 가지는 또 다른 중간층(Layer B1)부터 갱신되는 값의 변화가 충분히 이루어질 때까지 중간층 간 간격을 1 단계(Layer)씩 넓혀가며 임의의 계산 블록을 구성할 수 있다(a-e).For example, referring to FIG. 4 , when the weights updated in the system are too small and there is no change in the update width of the weights, the change in weights is the reference value input by the user (developer) with an interval of 3 layers or more between intermediate layers. Determines an intermediate layer (Layer A1) that starts to consist of less than (close to 0), and is updated from another intermediate layer (Layer B1) having an interval of 3 or more layers (Layer) away from the input layer from the determined intermediate layer (Layer A1) An arbitrary calculation block can be constructed by increasing the interval between intermediate layers by one layer (Layer) until the value is sufficiently changed (ae).
한편, 본 발명의 일 실시예에 따른 집계 블록은, 예컨대, 도 5에 도시된 바와 같이, 다수의 계산 블록과 동시 연결을 지원할 수 있다.Meanwhile, the aggregation block according to an embodiment of the present invention may support simultaneous connection with a plurality of calculation blocks, for example, as shown in FIG. 5 .
이와 관련하여, 여러 계산 블록이 하나의 집계 블록으로 연결되는 경우, 사전에 정의한 계산 규칙을 적용할 수 있고 하나 또는 다수의 출력을 만들어 낼 수 있으며, 이러한 결과는 다시 하나 또는 다수의 계산 블록과의 연결을 통해서 전달될 수 있다.In this regard, if several calculation blocks are connected into one aggregation block, a predefined calculation rule can be applied and one or multiple outputs can be produced, and these results are in turn combined with one or multiple calculation blocks. It can be transmitted through a connection.
또한, 본 발명의 일 실시예에 따른 집계 블록은 인접한 계산 블록과 연결되거나 원격에 있는 계산 블록에 집계 블록을 관통하여 연결할 수 있으며, 이러한 블록 간 연결 방식을 통해서 복잡한 네트워크 구조를 갖는 모델에서도 정확한 학습을 가능하도록 할 수 있다.In addition, the aggregation block according to an embodiment of the present invention can be connected to an adjacent calculation block or connected to a remote calculation block through the aggregation block, and through this block-to-block connection method, accurate learning even in a model having a complex network structure can make it possible
오차확인부(20)는 순방향 연산 결과의 오차 발생 여부를 확인하는 기능을 수행한다The error check unit 20 performs a function of confirming whether an error occurs in the forward calculation result.
보다 구체적으로, 오차확인부(20)는 계산 블록 간 링크 연결에 따라 기 정의된 연산자를 기준으로 입력 계산 블록으로부터 출력 계산 블록까지 순차적으로 계산되는 순방향 연산 결과의 오차 발생 여부를 확인하게 된다.More specifically, the error check unit 20 checks whether an error occurs in the forward calculation result sequentially calculated from the input calculation block to the output calculation block based on a predefined operator according to the link connection between the calculation blocks.
이처럼, 순방향 연산 결과의 오차 발생 여부를 확인하는 것은, 순방향 연산 결과의 오차 발생 시 정확도 제고를 위해 역방향 연산을 통해 각 계산 블록 간 연결 값을 갱신하기 위함으로 이해될 수 있다.As such, checking whether an error occurs in the forward operation result may be understood as updating a connection value between each calculation block through a backward operation in order to improve accuracy when an error occurs in the forward operation result.
참고로, 분석 알고리즘이 순차적으로 처리될 경우는 인접한 각 계산 블록을 직접 링크로 연결하게 되며, 이러한 과정이 순방향(입력-출력)으로 이루어질 경우는 단순한 작업 흐름을 정의하는 것으로 이해할 수 있다.For reference, when the analysis algorithm is sequentially processed, each adjacent calculation block is directly linked, and when this process is performed in the forward direction (input-output), it can be understood as defining a simple workflow.
그러나, 역방향(출력->입력) 연산 과정은 알고리즘 처리(예: 기계학습 모델이나 수치해석 모델 등에서 오차함수 기반 반복처리)의 핵심으로 다양한 기계학습 모델이나 수치해석 모델에서 광범위하게 활용될 수 있다.However, the reverse (output->input) operation process is the core of algorithm processing (eg, error function-based iterative processing in machine learning models or numerical analysis models, etc.) and can be widely used in various machine learning models or numerical analysis models.
이러한, 역방향 연산 과정은 이하에서 서술될 연결값갱신부(30)의 설명에서 구체적으로 언급하기로 한다.Such a backward operation process will be described in detail in the description of the connection value updater 30 to be described below.
연결값갱신부(30)는 역방향 연산을 통한 각 계산 블록 간 연결 값을 갱신하는 기능을 수행한다.The connection value update unit 30 performs a function of updating the connection value between each calculation block through reverse operation.
보다 구체적으로, 연결값갱신부(30)는 입력 계산 블록으로부터 출력 계산 블록까지 순차적으로 계산되는 순방향 연산 결과의 오차 발생이 확인되는 경우, 순방향 연산 결과에 해당하는 출력 계산 블록의 출력 값이 기 정의된 최적 값이 되도록 각 계산 블록 간 연결 값을 갱신하게 된다.More specifically, when it is confirmed that an error occurs in the forward calculation result sequentially calculated from the input calculation block to the output calculation block, the connection value update unit 30 sets the output value of the output calculation block corresponding to the forward calculation result to a predefined value. The connection value between each calculation block is updated so that it becomes the optimal value.
이때, 연결값갱신부(30)는 곡률 및 기울기 중 적어도 하나를 기준으로 한 역방향 연산을 통해 각 계산 블록 간 연결 값을 반복하여 갱신함으로써, 출력 계산 블록의 출력 값이 기 정의된 최적 값에 도달할 수 있도록 할 수 있다.At this time, the connection value update unit 30 repeatedly updates the connection value between each calculation block through a reverse operation based on at least one of the curvature and the slope, so that the output value of the output calculation block reaches a predefined optimal value. can make it happen
즉, 도 6을 참조하면, 연결값갱신부(30)는, 순방향 연산 결과의 오차 발생이 확인되는 경우, 곡률을 기준으로 각 계산 블록 간 연결 값을 초기 갱신하며, 곡률을 이용한 오차 감소폭이 기준치 이하인 경우, 기울기를 기준으로 각 계산 블록 간 연결 값을 갱신하는 동작을 반복함으로써(a-d), 출력 계산 블록의 출력 값의 수렴 속도를 빠르게 하면서 반드시 기 정의된 최적 값에 도달할 수 있도록 구현하고 있는 것이다.That is, referring to FIG. 6 , when it is confirmed that an error occurs in the forward calculation result, the connection value update unit 30 initially updates the connection value between each calculation block based on the curvature, and the error reduction width using the curvature is the reference value. In the following case, by repeating the operation of updating the connection value between each calculation block based on the slope (ad), the convergence speed of the output value of the output calculation block is accelerated, and the predefined optimal value is always reached. will be.
참고로, 본 발명의 일 실시예에서의 곡률을 이용한 갱신 방식은, 다음의 Hessian Matrix를 이용하여 계산될 수 있다.For reference, the update method using the curvature in the embodiment of the present invention may be calculated using the following Hessian Matrix.
Figure PCTKR2020016107-appb-img-000001
Figure PCTKR2020016107-appb-img-000001
또한, 위 Hessian Matrix는 아래의 jacobian Matrix를 이용하여 계산될 수 있다.Also, the above Hessian Matrix can be calculated using the below Jacobian Matrix.
Figure PCTKR2020016107-appb-img-000002
Figure PCTKR2020016107-appb-img-000002
즉, Hessian Matrix와 jacobian Matrix의 관계는 아래 [수학식 1]과 같으며, 이에 기반한 곡률 방식의 갱신 기준은 예컨대, 아래 [수학식 2]에서와 같이 정의될 수 있다.That is, the relationship between the Hessian Matrix and the jacobian Matrix is as shown in [Equation 1] below, and the update criterion of the curvature method based thereon may be defined, for example, as in [Equation 2] below.
Figure PCTKR2020016107-appb-img-000003
Figure PCTKR2020016107-appb-img-000003
Figure PCTKR2020016107-appb-img-000004
Figure PCTKR2020016107-appb-img-000004
여기서, λ(>0)은 DF(Damping Factor)로서 오차의 증감 상태에 따라 함께 증감되며 조절될 수 있다.Here, λ (>0) is a damping factor (DF) and may be increased or decreased together according to the increase/decrease state of the error and may be adjusted.
반면, 본 발명의 일 실시예에 따른 기울기 방식의 갱신 기준은 아래 [수학식 3]과 같이 정의될 수 있다.On the other hand, the update criterion of the gradient method according to an embodiment of the present invention may be defined as in [Equation 3] below.
Figure PCTKR2020016107-appb-img-000005
Figure PCTKR2020016107-appb-img-000005
여기서, F(x)는 미분 가능한 다 변수 함수를 나타내며,
Figure PCTKR2020016107-appb-img-000006
는 기울기 벡터를 그리고
Figure PCTKR2020016107-appb-img-000007
는 상수를 나타낸다.
where F(x) denotes a differentiable multivariable function,
Figure PCTKR2020016107-appb-img-000006
is the gradient vector and
Figure PCTKR2020016107-appb-img-000007
represents a constant.
추천부(40)는 분석 알고리즘의 실행을 위한 연산자를 추천하는 기능을 수행한다.The recommendation unit 40 performs a function of recommending an operator for executing the analysis algorithm.
보다 구체적으로, 추천부(40)는 계산 블록 간 연결 값 갱신을 통한 오차 보정이 완료되면, 기 등록된 행렬 연산자 각각을 통해 분석 알고리즘을 기 정의된 횟수만큼 반복 실행하며, 반복 실행 결과에 따라 특정 행렬 연산자를 순방향 연산을 위한 최적의 연산자로 추천하게 된다.More specifically, when the error correction by updating the connection value between the calculation blocks is completed, the recommendation unit 40 repeatedly executes the analysis algorithm a predetermined number of times through each of the previously registered matrix operators, and selects a specific value according to the repeated execution result. The matrix operator is recommended as the optimal operator for forward operation.
이때, 추천부(40)는 기 등록된 행렬 연산자 각각을 통해 분석 알고리즘을 기 정의된 횟수만큼 반복 실행하며, 이러한 반복 실행 결과, 서로 이웃한 순서인 두 실행 단계에서의 평균 실행 시간이 가장 짧으며, 평균 실행 시간 간의 차이가 임계치 미만으로 확인되는 특정 행렬 연산자를 순방향 연산을 위한 연산자로 추천할 수 있다.At this time, the recommendation unit 40 repeatedly executes the analysis algorithm a predefined number of times through each of the previously registered matrix operators, and as a result of such repeated execution, the average execution time in the two execution steps that are adjacent to each other is the shortest , a specific matrix operator whose difference between average execution times is found to be less than a threshold can be recommended as an operator for forward operation.
즉, 본 발명의 일 실시예에서는, 심층신경망을 비롯한 기계학습 알고리즘과 데이터 분석 알고리즘에서 행렬 연산이 필요한 경우 예컨대, GEMM(General Matrix Multiply), Strassen, Pan, Winograd, Coppersmith-Winograd, Stother, 및 Williams 등과 같은 다양한 유형의 행렬 연산자를 등록한 후 입력되는 행렬의 특징에 따라 자동으로 최적화된 연산자를 선택하여 성능을 최적화하는 하는 것을 지원하는 것이다.That is, in one embodiment of the present invention, when matrix operation is required in machine learning algorithms and data analysis algorithms including deep neural networks, for example, GEMM (General Matrix Multiply), Strassen, Pan, Winograd, Coppersmith-Winograd, Stother, and Williams After registering various types of matrix operators such as, etc., it supports to optimize performance by automatically selecting an optimized operator according to the characteristics of the input matrix.
이를 위해, 추천부(40)는 비교 대상이 되는 행렬 연산자 각각에 대해 이전 실행 단계(t-1)에서의 평균 실행 시간과 다음 실행 단계(t)에서의 평균 실행 시간 간의 확률적 차이를 계산하게 된다.To this end, the recommendation unit 40 calculates a probabilistic difference between the average execution time in the previous execution step (t-1) and the average execution time in the next execution step (t) for each of the matrix operators to be compared. do.
이러한, 확률적 차이는 자유도가 k 1, k 2인 두 확률변수 V 1, V 2 값으로 계산된 아래 [수학식 4]에 의한 확률변수 F를 기준으로 특정 확률 내에서 평균 실행 시간의 차이가 있는지를 누적확률분포의 값으로 계산될 수 있다.Such a stochastic difference is the difference in average execution time within a specific probability based on the random variable F by [Equation 4] below calculated with the values of two random variables V 1 and V 2 with k 1 , k 2 degrees of freedom. It can be calculated as the value of the cumulative probability distribution.
Figure PCTKR2020016107-appb-img-000008
Figure PCTKR2020016107-appb-img-000008
이와 관련하여, 확률변수 F의 값이 클수록 평균 실행 시간의 차이가 커지며 누적확률이 1에 가까워진다.In this regard, as the value of the random variable F increases, the difference in average execution time increases and the cumulative probability approaches 1.
이처럼, 최적 연산자 추천 기준이 되는 누적확률은 이용자가 상황에 따라 변경할 수 있는데, 예컨대, 기본적인 누적확률은 0.9를 기준으로 추천되며 상황에 따라 변경하여 입력될 수 있다.In this way, the cumulative probability serving as the optimal operator recommendation criterion can be changed by the user according to the situation. For example, the basic cumulative probability is recommended based on 0.9 and may be changed and input according to the situation.
또한, 반복 실행 횟수의 경우, 확률변수 F에 변화가 거의 없고 평균 실행 시간의 차이에 대한 결론에 변동이 없을 때까지의 이어질 수 있다.In addition, in the case of the number of iterations, the random variable F has little change and may continue until there is no change in the conclusion about the difference in average execution time.
즉, 비교 대상이 되는 행렬 연산자 각각에 대해 이전 실행 단계(t-1)에서의 평균 실행 시간과 다음 실행 단계(t)의 평균 실행 시간 간에 차이가 없을 때까지 반복되는 것으로 이해될 수 있다.That is, for each of the matrix operators to be compared, it can be understood that it is repeated until there is no difference between the average execution time in the previous execution step (t-1) and the average execution time of the next execution step (t).
한편, 본 발명의 일 실시예에서는 분석 알고리즘의 반복 실행 시마다 적용되는 행렬 연산자의 경우 사용자(개발자)가 사전에 정의한 고정 순서 또는 무작위로 선택되어 계산 과정에 적용될 수 있다.Meanwhile, in an embodiment of the present invention, in the case of a matrix operator applied every time the analysis algorithm is repeatedly executed, a user (developer) may be selected in a fixed order or randomly selected in advance and applied to the calculation process.
또한, 본 발명의 일 실시예에서는 특정한 목적의 연산을 수행하기 위해 행렬 연산의 기본 연산자를 이용하여 미리 특정한 연산을 수행하는 중간 단계의 연산자를 제공하고 사용자(개발자)가 새로운 연산자를 만들어 제공할 수 있음은 물론이다.In addition, in one embodiment of the present invention, in order to perform an operation for a specific purpose, an intermediate operator for performing a specific operation in advance using the basic operator of a matrix operation is provided, and a user (developer) can create and provide a new operator. of course there is
예를 들어, 심층신경망의 한 종류인 CNN(Convolutional Neural Network) 모델을 구축하는 경우, 합성곱(Convolutional) 연산을 사용하게 되는데, 이때 합성곱 연산의 성능 향상이 필요한 경우 필터의 크기와 모양에 따라 적절한 합성곱 연산 방식을 선택할 수 있다.For example, when constructing a Convolutional Neural Network (CNN) model, which is a type of deep neural network, a convolutional operation is used. An appropriate convolution operation method can be selected.
경우에 따라서 특정한 행렬 형태에 대해 최적의 연산 성능을 제공하는 연산자를 사전 경험을 통해 알고 있는 경우, 사용자(개발자)가 직접 행렬 연산자를 특정하여 사용을 강제할 수 있다.In some cases, if the operator that provides the optimal operation performance for a specific matrix type is known through prior experience, the user (developer) can directly specify the matrix operator and force its use.
또한, 본 발명의 일 실시예에서는 분석 알고리즘 전체에 동일한 행렬 연산자를 선택하거나 알고리즘이 여러 단계로 이루어진 경우 각 단계 별로 사용자(개발자)가 적절한 행렬 연산자를 임의 적용하여 분석 모델을 개발할 수 있다.In addition, in an embodiment of the present invention, if the same matrix operator is selected for the entire analysis algorithm, or when the algorithm consists of several steps, a user (developer) may develop an analysis model by randomly applying an appropriate matrix operator for each step.
또한, 본 발명의 일 실시예에서는 시스템에서 여러 차례의 행렬 연산이 수행된 후 행렬의 크기와 모양에 따른 연산 시간을 시스템 내에 파일이나 데이터베이스로 저장하고 추후 동일한 유형의 행렬이 입력될 경우 과거에 수행된 결과를 바탕으로 최적의 연산자를 시스템이 먼저 추천하는 방식으로도 구현될 수 있다.In addition, in an embodiment of the present invention, after multiple matrix operations are performed in the system, the calculation time according to the size and shape of the matrix is stored in a file or database in the system, and when a matrix of the same type is input later, it is performed in the past. It can also be implemented in such a way that the system first recommends the optimal operator based on the obtained results.
이상에서 살펴본 바와 같이, 본 발명의 일 실시예에 따른 분석알고리즘개발장치(100)의 구성에 따르면, 분석 알고리즘의 실행과 관련하여 독립적인 계산 처리가 이루어지는 각 계산 블록 간의 계산 흐름을 링크로 연결하고, 분석 알고리즘의 실행을 위한 최적의 연산자를 추천하는 방식을 통해서, 대규모 계산 자원을 활용한 고 난이도의 기계학습모델 개발(구축)을 효과적으로 지원할 수 있다.As described above, according to the configuration of the analysis algorithm development apparatus 100 according to an embodiment of the present invention, the calculation flow between each calculation block in which independent calculation processing is performed in relation to the execution of the analysis algorithm is connected by a link, and , it is possible to effectively support the development (construction) of high-level machine learning models using large-scale computational resources through the method of recommending the optimal operator for the execution of the analysis algorithm.
이하에서는 도 7을 참조하여 본 발명의 일 실시예에 따른 분석알고리즘개발장치(100)의 동작 방법에 대한 설명을 이어 가기로 한다.Hereinafter, a description of an operation method of the analysis algorithm development apparatus 100 according to an embodiment of the present invention will be continued with reference to FIG. 7 .
먼저, 블록연결부(10)는 분석 알고리즘의 실행과 관련하여 독립적인 계산 처리가 이루어지는 각 계산 블록 간의 계산 흐름을 링크로 연결한다(S11-S14).First, the block connection unit 10 connects the calculation flow between each calculation block in which independent calculation processing is performed in relation to the execution of the analysis algorithm by a link (S11-S14).
여기서, 계산 블록은, 분석과 데이터 처리 등 분석과정 전반에 필요한 필수 정보를 입력하거나 선택하는 객체이며, 링크는 계산 블록 간 연결의 특징을 정의하는 객체로 이해될 수 있다.Here, the calculation block is an object for inputting or selecting essential information necessary for the overall analysis process such as analysis and data processing, and the link may be understood as an object defining the characteristics of the connection between the calculation blocks.
즉, 본 발명의 일 실시예에서는 데이터 처리나 분석 흐름을 제어하는 방식과 같이 분석 알고리즘이나 모델의 개별 요소들을 독립적인 계산 블록으로 구현하고, 각 계산 블록 간 계산의 흐름을 링크로 연결하여 처리하고 있는 것이다.That is, in an embodiment of the present invention, individual elements of an analysis algorithm or model are implemented as independent calculation blocks, such as a method of controlling data processing or analysis flow, and the flow of calculation between each calculation block is connected and processed by a link. there will be
이와 관련하여, 본 발명의 일 실시예에 따라 신경망 모델과 같은 복잡한 단계로 이루어지는 알고리즘을 적용하는 경우에는 앞서 예시한, 도 3에 도시된 바와 같이, 계산 블록 그룹(계산 블록 그룹 A, 계산 블록 그룹 B)을 포함하는 상세 모델을 구현할 수 있다.In this regard, in the case of applying an algorithm consisting of complex steps such as a neural network model according to an embodiment of the present invention, as illustrated in FIG. 3 , a calculation block group (computation block group A, calculation block group) A detailed model including B) can be implemented.
여기서, 계산 블록 그룹(계산 블록 그룹 A, 계산 블록 그룹 B)은, 그룹 내에서의 링크 기반 연결과, 그룹과 그룹, 또는 그룹과 외부 단일 내지는 여러 계산 블록과의 연결을 모두 지원한다.Here, the computation block group (computation block group A, computation block group B) supports both the link-based connection within the group, the group and the group, or the group and the external single or multiple computation blocks.
이처럼, 계산 블록을 그룹 단위로 구현하는 것은, 복잡한 분석 과정 전체와 모델을 관리에 용이한 형태인 그룹 단위로 구획하여 관리하기 위함으로 이해될 수 있다.In this way, the implementation of the calculation block in a group unit can be understood to divide and manage the entire complex analysis process and model in a group unit, which is an easy-to-manage form.
한편, 블록연결부(10)는 단계 S12에서 특정 계산 블록으로부터의 출력 값에 대해 기 정의된 계산 규칙의 적용이 요구되는 경우에는, 단계 S13을 통해서 해당 계산 블록으로부터의 출력 값이 상기 계산 규칙 적용을 위한 집계 블록을 경유하여 임의의 계산 블록으로 전달될 수 있도록 링크로 연결할 수 있다.On the other hand, when the application of a predefined calculation rule is required for the output value from a specific calculation block in step S12, the block connection unit 10 determines that the output value from the corresponding calculation block is applied to the calculation rule through step S13. It can be linked by a link so that it can be delivered to any computational block via an aggregation block for
즉, 본 발명의 일 실시예에서는, 특정 계산 블록의 계산 결과가 인접 블록으로 직접 전달되지 않고 몇 가지 계산 절차를 거쳐 임의의 계산 블록과 연결되거나, 각 계산 블록의 계산 결과를 특정 알고리즘이나 수학식에 맞게 결합할 수 있는 집계 블록을 제공하고 있는 것이다.That is, in an embodiment of the present invention, the calculation result of a specific calculation block is not directly transferred to an adjacent block, but is connected to an arbitrary calculation block through several calculation procedures, or the calculation result of each calculation block is expressed by a specific algorithm or equation It provides aggregate blocks that can be combined according to
특히, 신경망 모형의 경우, 학습 단계에서 후진역전파(backpropagation) 할 때 기울기가 소실되지 않고 잘 전달될 수 있게 하거나, 또는 특정 계산 결과가 알고리즘 처리 과정에서 과소 혹은 과대 평가되는 등의 왜곡을 막거나, 내지는 특별한 계산 규칙을 적용하고 싶을 때 인접 계산 블록과의 순차 연결이 아닌 임의의 계산 블록과 자유롭게 연결하고 계산 규칙을 적용할 수 있는 방식이 요구된다.In particular, in the case of a neural network model, when performing backpropagation in the learning phase, the gradient is not lost and can be transmitted well, or it prevents distortion such as underestimating or overestimating a specific calculation result in the algorithm processing process. , or a method that can freely connect to arbitrary calculation blocks and apply calculation rules, rather than sequential connection with adjacent calculation blocks, is required when a special calculation rule is to be applied.
이에, 본 발명의 일 실시예에서는, 집계 블록을 활용하여 특정 계산 블록으로부터의 출력 값에 대해 기 정의된 계산 규칙을 적용하여 임의의 계산 블록으로의 연결을 지원하고 있는 것이다.Accordingly, in an embodiment of the present invention, a connection to an arbitrary calculation block is supported by applying a predefined calculation rule to an output value from a specific calculation block using the aggregation block.
이처럼 집계 블록을 통해 임의의 계산 블록을 연결하는 것은 사용자(개발자) 정의에 따라 이루어질 수 있지만, 본 발명의 일 실시예에서는 시스템에서 자동으로 임의의 계산 블록과의 연결을 지원하는 것을 전제하기로 한다.As such, the connection of arbitrary calculation blocks through the aggregation block can be made according to user (developer) definition, but in one embodiment of the present invention, it is assumed that the system automatically supports connection with arbitrary calculation blocks. .
이와 관련하여, 블록연결부(10)는 집계 블록을 통해 임의의 계산 블록을 연결하는 경우, 특정 계산 블록의 레이어(Layer)와는 설정 개수(예: 3 layer) 이상의 레이어 간격을 가지며, 레이어 간 가중치의 변화가 기준치 이하로 시작되는 레이어의 계산 블록을 임의의 계산 블록으로 연결하게 된다.In this regard, when the block connection unit 10 connects arbitrary calculation blocks through an aggregation block, it has a layer interval of a set number (eg, 3 layers) or more from the layer of a specific calculation block, and The calculation block of the layer whose change starts below the reference value is connected to an arbitrary calculation block.
이때, 블록연결부(10)는, 집계 블록을 경유하여 상기 특정 계산 블록과 연결되는 임의의 계산 블록(이하, 제1 계산 블록)에 대해 별도의 집계 블록을 통해 또 다른 임의의 계산 블록(이하, 제2 계산 블록)을 연결하고자 하는 경우에는 제1 계산 블록의 레이어와 상기 설정 개수(예: 3 layer) 이상의 간격을 가지는 레이어부터 이웃한 레이어 순서로 레이어 간 가중치 변화를 확인하여, 기준치 이상의 가중치 변화가 확인되는 레이어의 계산 블록을 제2 계산 블록으로 연결한다.At this time, the block connection unit 10, for any calculation block (hereinafter, first calculation block) connected to the specific calculation block via the aggregation block, another arbitrary calculation block (hereinafter, 2nd calculation block), check the weight change between the layers of the first calculation block and the layer having an interval greater than or equal to the set number (eg, 3 layers) in the order of neighboring layers, and change the weight greater than or equal to the reference value The calculation block of the layer in which α is confirmed is connected to the second calculation block.
앞서 예시한, 도 4를 참조하면, 시스템에서 갱신되는 가중치가 지나치게 작아 가중치의 갱신 폭에 변화가 없을 경우 중간층 간 3 단계(Layer) 이상의 간격을 두고 가중치의 변화가 사용자(개발자)가 입력한 기준치 이하(0에 가까운)로 이루어지기 시작하는 중간층(Layer A1)을 결정하고, 결정된 중간층(Layer A1)부터 입력층으로부터 멀어지는 3 단계(Layer) 이상의 간격을 가지는 또 다른 중간층(Layer B1)부터 갱신되는 값의 변화가 충분히 이루어질 때까지 중간층 간 간격을 1 단계(Layer)씩 넓혀가며 임의의 계산 블록을 구성할 수 있다(a-e).Referring to FIG. 4 , exemplified above, if the weights updated in the system are too small and there is no change in the update width of the weights, the weight change is the reference value input by the user (developer) with an interval of 3 layers or more between intermediate layers. Determines an intermediate layer (Layer A1) that starts to consist of less than (close to 0), and is updated from another intermediate layer (Layer B1) having an interval of 3 or more layers (Layer) away from the input layer from the determined intermediate layer (Layer A1) An arbitrary calculation block can be configured by increasing the interval between the intermediate layers by one layer (Layer) until the value is sufficiently changed (ae).
한편, 본 발명의 일 실시예에 따른 집계 블록은, 앞서 예시한, 도 5에서와 같이, 다수의 계산 블록과 동시 연결을 지원할 수 있다.Meanwhile, the aggregation block according to an embodiment of the present invention may support simultaneous connection with a plurality of calculation blocks, as illustrated in FIG. 5 .
이와 관련하여, 여러 계산 블록이 하나의 집계 블록으로 연결되는 경우, 사전에 정의한 계산 규칙을 적용할 수 있고 하나 또는 다수의 출력을 만들어 낼 수 있으며, 이러한 결과는 다시 하나 또는 다수의 계산 블록과의 연결을 통해서 전달될 수 있다.In this regard, if several calculation blocks are connected into one aggregation block, a predefined calculation rule can be applied and one or multiple outputs can be produced, and these results are in turn combined with one or multiple calculation blocks. It can be transmitted through a connection.
또한, 본 발명의 일 실시예에 따른 집계 블록은 인접한 계산 블록과 연결되거나 원격에 있는 계산 블록에 집계 블록을 관통하여 연결할 수 있으며, 이러한 블록 간 연결 방식을 통해서 복잡한 네트워크 구조를 갖는 모델에서도 정확한 학습을 가능하도록 할 수 있다.In addition, the aggregation block according to an embodiment of the present invention can be connected to an adjacent calculation block or connected to a remote calculation block through the aggregation block, and through this block-to-block connection method, accurate learning even in a model having a complex network structure can make it possible
그리고 나서, 오차확인부(20)는 계산 블록 간 링크 연결에 따라 기 정의된 연산자를 기준으로 입력 계산 블록으로부터 출력 계산 블록까지 순차적으로 계산되는 순방향 연산 결과의 오차 발생 여부를 확인한다(S15).Then, the error check unit 20 checks whether an error occurs in the forward calculation result sequentially calculated from the input calculation block to the output calculation block based on a predefined operator according to the link connection between the calculation blocks (S15).
이처럼, 순방향 연산 결과의 오차 발생 여부를 확인하는 것은, 순방향 연산 결과의 오차 발생 시 정확도 제고를 위해 역방향 연산을 통해 각 계산 블록 간 연결 값을 갱신하기 위함으로 이해될 수 있다.As such, checking whether an error occurs in the forward operation result may be understood as updating a connection value between each calculation block through a backward operation in order to improve accuracy when an error occurs in the forward operation result.
나아가, 연결값갱신부(30)는 입력 계산 블록으로부터 출력 계산 블록까지 순차적으로 계산되는 순방향 연산 결과의 오차 발생이 확인되는 경우, 순방향 연산 결과에 해당하는 출력 계산 블록의 출력 값이 기 정의된 최적 값이 되도록 각 계산 블록 간 연결 값을 갱신한다(S16-S17).Furthermore, when it is confirmed that an error occurs in the forward calculation result sequentially calculated from the input calculation block to the output calculation block, the connection value update unit 30 sets the output value of the output calculation block corresponding to the forward calculation result to a predefined optimal value. The connection value between each calculation block is updated so that it becomes a value (S16-S17).
이때, 연결값갱신부(30)는 곡률 및 기울기 중 적어도 하나를 기준으로 한 역방향 연산을 통해 각 계산 블록 간 연결 값을 반복하여 갱신함으로써, 출력 계산 블록의 출력 값이 기 정의된 최적 값에 도달할 수 있도록 할 수 있다.At this time, the connection value update unit 30 repeatedly updates the connection value between each calculation block through a reverse operation based on at least one of the curvature and the slope, so that the output value of the output calculation block reaches a predefined optimal value. can make it happen
앞서 예시한 도 6을 참조하면, 연결값갱신부(30)는, 순방향 연산 결과의 오차 발생이 확인되는 경우, 곡률을 기준으로 각 계산 블록 간 연결 값을 초기 갱신하며, 곡률을 이용한 오차 감소폭이 기준치 이하인 경우, 기울기를 기준으로 각 계산 블록 간 연결 값을 갱신하는 동작을 반복함으로써(a-d), 출력 계산 블록의 출력 값의 수렴 속도를 빠르게 하면서 반드시 기 정의된 최적 값에 도달할 수 있도록 구현하고 있는 것이다.Referring to FIG. 6 exemplified above, the connection value update unit 30 initially updates the connection value between each calculation block based on the curvature when it is confirmed that an error occurs in the forward operation result, and the error reduction width using the curvature is If it is less than the reference value, by repeating the operation of updating the connection value between each calculation block based on the slope (ad), the convergence speed of the output value of the output calculation block is accelerated, and the predefined optimal value is always reached. there will be
이후, 추천부(40)는 계산 블록 간 연결 값 갱신을 통한 오차 보정이 완료되면, 기 등록된 행렬 연산자 각각을 통해 분석 알고리즘을 기 정의된 횟수만큼 반복 실행하며, 반복 실행 결과에 따라 특정 행렬 연산자를 순방향 연산을 위한 최적의 연산자로 추천한다(S18-S21).Thereafter, when the error correction by updating the connection value between the calculation blocks is completed, the recommendation unit 40 repeatedly executes the analysis algorithm a predefined number of times through each of the previously registered matrix operators, and according to the results of the repeated execution, the specific matrix operator is recommended as an optimal operator for forward operation (S18-S21).
이때, 추천부(40)는 기 등록된 행렬 연산자 각각을 통해 분석 알고리즘을 기 정의된 횟수만큼 반복 실행하며, 이러한 반복 실행 결과, 서로 이웃한 순서인 두 실행 단계에서의 평균 실행 시간이 가장 짧으며, 평균 실행 시간 간의 차이가 임계치 미만으로 확인되는 특정 행렬 연산자를 순방향 연산을 위한 최적의 연산자로 추천할 수 있다.At this time, the recommendation unit 40 repeatedly executes the analysis algorithm a predefined number of times through each of the previously registered matrix operators, and as a result of such repeated execution, the average execution time in the two execution steps that are adjacent to each other is the shortest, , a specific matrix operator whose difference between average execution times is found to be less than a threshold can be recommended as an optimal operator for forward operation.
즉, 본 발명의 일 실시예에서는, 심층신경망을 비롯한 기계학습 알고리즘과 데이터 분석 알고리즘에서 행렬 연산이 필요한 경우 예컨대, GEMM(General Matrix Multiply), Strassen, Pan, Winograd, Coppersmith-Winograd, Stother, 및 Williams 등과 같은 다양한 유형의 행렬 연산자를 등록한 후 입력되는 행렬의 특징에 따라 자동으로 최적화된 연산자를 선택하여 성능을 최적화하는 하는 것을 지원하는 것이다.That is, in one embodiment of the present invention, when matrix operation is required in machine learning algorithms and data analysis algorithms including deep neural networks, for example, GEMM (General Matrix Multiply), Strassen, Pan, Winograd, Coppersmith-Winograd, Stother, and Williams After registering various types of matrix operators such as, etc., it supports to optimize performance by automatically selecting an optimized operator according to the characteristics of the input matrix.
이를 위해, 추천부(40)는 비교 대상이 되는 행렬 연산자 각각에 대해 이전 실행 단계(t-1)에서의 평균 실행 시간과 다음 실행 단계(t)에서의 평균 실행 시간 간의 확률적 차이를 계산하게 되며, 이러한, 확률적 차이는 앞서 언급한 [수학식 4]에서와 같이 자유도가 k 1, k 2인 두 확률변수 V 1, V 2 값으로 계산된 확률변수 F를 기준으로 특정 확률 내에서 평균 실행 시간의 차이가 있는지를 누적확률분포의 값으로 계산될 수 있다.To this end, the recommendation unit 40 calculates a probabilistic difference between the average execution time in the previous execution step (t-1) and the average execution time in the next execution step (t) for each of the matrix operators to be compared. This stochastic difference is averaged within a specific probability based on the random variable F calculated with the values of two random variables V 1 and V 2 having k 1 , k 2 degrees of freedom as in [Equation 4] mentioned above. Whether there is a difference in execution time can be calculated as a value of the cumulative probability distribution.
이와 관련하여, 확률변수 F의 값이 클수록 평균 실행 시간의 차이가 커지며 누적확률이 1에 가까워진다.In this regard, as the value of the random variable F increases, the difference in average execution time increases and the cumulative probability approaches 1.
이처럼, 최적 연산자 추천 기준이 되는 누적확률은 이용자가 상황에 따라 변경할 수 있는데, 예컨대, 기본적인 누적확률은 0.9를 기준으로 추천되며 상황에 따라 변경하여 입력될 수 있다.In this way, the cumulative probability serving as the optimal operator recommendation criterion can be changed by the user according to the situation. For example, the basic cumulative probability is recommended based on 0.9 and may be changed and input according to the situation.
또한, 반복 실행 횟수의 경우, 확률변수 F에 변화가 거의 없고 평균 실행 시간의 차이에 대한 결론에 변동이 없을 때까지의 이어질 수 있다.In addition, in the case of the number of iterations, the random variable F has little change and may continue until there is no change in the conclusion about the difference in average execution time.
즉, 비교 대상이 되는 행렬 연산자 각각에 대해 이전 실행 단계(t-1)에서의 평균 실행 시간과 다음 실행 단계(t)의 평균 실행 시간 간에 차이가 없을 때까지 반복되는 것으로 이해될 수 있다.That is, for each of the matrix operators to be compared, it can be understood that it is repeated until there is no difference between the average execution time in the previous execution step (t-1) and the average execution time of the next execution step (t).
이상에서 살펴본 바와 같이, 본 발명의 일 실시예에 따른 분석알고리즘개발장치(100)의 동작 방법에 따르면, 분석 알고리즘의 실행과 관련하여 독립적인 계산 처리가 이루어지는 각 계산 블록 간의 계산 흐름을 링크로 연결하고, 분석 알고리즘의 실행을 위한 최적의 연산자를 추천하는 방식을 통해서, 대규모 계산 자원을 활용한 고 난이도의 기계학습모델 개발(구축)을 효과적으로 지원할 수 있다.As described above, according to the method of operation of the analysis algorithm development apparatus 100 according to an embodiment of the present invention, the calculation flow between each calculation block in which independent calculation processing is performed in relation to the execution of the analysis algorithm is connected by a link. And, through the method of recommending the optimal operator for the execution of the analysis algorithm, it is possible to effectively support the development (construction) of high-level machine learning models using large-scale computational resources.
한편, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 처리 시스템의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다.On the other hand, the functional operations and implementations of the subject matter described in this specification are implemented as digital electronic circuits, computer software, firmware or hardware including the structures disclosed in this specification and structural equivalents thereof, or at least one of these It can be implemented by combining. Implementations of the subject matter described herein are one or more computer program products, ie one or more modules of computer program instructions encoded on a tangible program storage medium for controlling the operation of or for execution by a processing system. can be implemented.
컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.The computer readable medium may be a machine readable storage device, a machine readable storage substrate, a memory device, a composition of matter that affects a machine readable radio wave signal, or a combination of one or more thereof.
본 명세서에서 "시스템"이나 "장치"라 함은 예컨대 프로그래머블 프로세서, 컴퓨터 혹은 다중 프로세서나 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 기구, 장치 및 기계를 포괄한다. 처리 시스템은, 하드웨어에 부가하여, 예컨대 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 혹은 이들 중 하나 이상의 조합 등 요청 시 컴퓨터 프로그램에 대한 실행 환경을 형성하는 코드를 포함할 수 있다.As used herein, the term “system” or “device” encompasses all devices, devices and machines for processing data, including, for example, programmable processors, computers, or multiple processors or computers. A processing system may include, in addition to hardware, code that, upon request, forms an execution environment for a computer program, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of these. .
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다.A computer program (also known as a program, software, software application, script or code) may be written in any form of a programming language, including compiled or interpreted language or a priori or procedural language, and may be written as a stand-alone program or module; It can be deployed in any form, including components, subroutines, or other units suitable for use in a computer environment. A computer program does not necessarily correspond to a file in a file system. A program may be placed in a single file provided to the requested program, or in multiple interacting files (eg, files that store one or more modules, subprograms, or portions of code), or portions of files that hold other programs or data. (eg, one or more scripts stored within a markup language document). The computer program may be deployed to be executed on a single computer or multiple computers located at one site or distributed over a plurality of sites and interconnected by a communication network.
한편, 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 매체는, 예컨대 EPROM, EEPROM 및 플래시메모리 장치와 같은 반도체 메모리 장치, 예컨대 내부 하드디스크나 외장형 디스크와 같은 자기 디스크, 자기광학 디스크 및 CD-ROM과 DVD-ROM 디스크를 포함하여 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함할 수 있다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.On the other hand, computer-readable media suitable for storing computer program instructions and data include, for example, semiconductor memory devices such as EPROMs, EEPROMs and flash memory devices, such as magnetic disks such as internal hard disks or external disks, magneto-optical disks and CDs. -Can include all types of non-volatile memory, media and memory devices, including ROM and DVD-ROM disks. The processor and memory may be supplemented by, or integrated into, special purpose logic circuitry.
본 명세서에서 설명한 주제의 구현물은 예컨대 데이터 서버와 같은 백엔드 컴포넌트를 포함하거나, 예컨대 어플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하거나, 예컨대 사용자가 본 명세서에서 설명한 주제의 구현물과 상호 작용할 수 있는 웹 브라우저나 그래픽 유저 인터페이스를 갖는 클라이언트 컴퓨터와 같은 프론트엔드 컴포넌트 혹은 그러한 백엔드, 미들웨어 혹은 프론트엔드 컴포넌트의 하나 이상의 모든 조합을 포함하는 연산 시스템에서 구현될 수도 있다. 시스템의 컴포넌트는 예컨대 통신 네트워크와 같은 디지털 데이터 통신의 어떠한 형태나 매체에 의해서도 상호 접속 가능하다.Implementations of the subject matter described herein may include a backend component, such as a data server, or a middleware component, such as an application server, such as a web browser or graphical user that allows a user to interact with an implementation of the subject matter described herein, for example. It may be implemented in a front-end component, such as a client computer having an interface, or in a computing system including any combination of one or more of such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital data communication, such as, for example, a communication network.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 마찬가지로, 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.While this specification contains numerous specific implementation details, they should not be construed as limitations on the scope of any invention or claim, but rather as descriptions of features that may be specific to particular embodiments of particular inventions. should be understood Likewise, certain features that are described herein in the context of separate embodiments may be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment may also be implemented in multiple embodiments, either individually or in any suitable subcombination. Furthermore, although features operate in a particular combination and may be initially depicted as claimed as such, one or more features from a claimed combination may in some cases be excluded from the combination, the claimed combination being a sub-combination. or a variant of a subcombination.
또한, 본 명세서에서는 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다Also, although operations are depicted in the drawings in a specific order, it is not to be understood that such operations must be performed in the specific order or sequential order shown or that all illustrated operations must be performed in order to obtain a desirable result. Can not be done. In certain cases, multitasking and parallel processing may be advantageous. Further, the separation of the various system components of the above-described embodiments should not be construed as requiring such separation in all embodiments, and the program components and systems described may generally be integrated together into a single software product or packaged into multiple software products. It must be understood that
이와 같이, 본 명세서는 그 제시된 구체적인 용어에 본 발명을 제한하려는 의도가 아니다. 따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.As such, this specification is not intended to limit the invention to the specific terminology presented. Accordingly, although the present invention has been described in detail with reference to the above-described examples, those skilled in the art can make modifications, changes, and modifications to the examples without departing from the scope of the present invention. The scope of the present invention is indicated by the following claims rather than the above detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present invention. do.

Claims (14)

  1. 분석 알고리즘의 실행과 관련하여 독립적인 계산 처리가 이루어지는 각 계산 블록 간의 계산 흐름을 링크로 연결하는 블록연결부;a block connection unit for connecting a calculation flow between each calculation block in which independent calculation processing is performed in relation to the execution of the analysis algorithm by a link;
    상기 링크 연결에 따라 기 정의된 연산자를 기준으로 입력 계산 블록으로부터 출력 계산 블록까지 순차적으로 계산되는 순방향 연산 결과의 오차 발생 여부를 확인하는 오차확인부; 및an error checking unit for checking whether an error occurs in a result of a forward calculation sequentially calculated from an input calculation block to an output calculation block based on a predefined operator according to the link connection; and
    상기 순방향 연산 결과의 오차 발생이 확인되는 경우, 상기 순방향 연산 결과에 해당하는 상기 출력 계산 블록의 출력 값이 기 정의된 최적 값이 되도록 각 계산 블록 간 연결 값을 갱신하는 연결값갱신부를 포함하는 것을 특징으로 하는 분석알고리즘개발장치.When it is confirmed that an error in the forward operation result occurs, a connection value update unit for updating the connection value between each calculation block so that the output value of the output calculation block corresponding to the forward operation result becomes a predefined optimal value. Analysis algorithm development device characterized by.
  2. 제 1 항에 있어서,The method of claim 1,
    상기 블록연결부는,The block connection part,
    특정 계산 블록으로부터의 출력 값에 대해 기 정의된 계산 규칙을 적용하고자 하는 경우, 상기 특정 계산 블록으로부터의 출력 값이 상기 계산 규칙 적용을 위한 집계 블록을 경유하여 임의의 계산 블록으로 전달될 수 있도록 링크로 연결하는 것을 특징으로 하는 분석알고리즘개발장치.When a predefined calculation rule is to be applied to an output value from a specific calculation block, the link so that the output value from the specific calculation block can be transmitted to an arbitrary calculation block via the aggregation block for applying the calculation rule Analysis algorithm development device, characterized in that connected to.
  3. 제 2 항에 있어서,3. The method of claim 2,
    상기 블록연결부는,The block connection part,
    상기 특정 계산 블록의 레이어(Layer)와는 설정 개수 이상의 레이어 간격을 가지며, 레이어 간 가중치의 변화가 기준치 이하로 시작되는 레이어의 계산 블록을 상기 임의의 계산 블록으로 연결하는 것을 특징으로 하는 분석알고리즘개발장치.An apparatus for developing an analysis algorithm, characterized in that the calculation block of a layer having a layer interval greater than or equal to a set number of layers from the layer of the specific calculation block and whose weight change between layers starts less than or equal to a reference value is connected to the arbitrary calculation block .
  4. 제 2 항에 있어서,3. The method of claim 2,
    상기 블록연결부는,The block connection part,
    상기 집계 블록을 경유하여 상기 특정 계산 블록과 연결되는 임의의 계산 블록인 제1 계산 블록에 대해 별도의 집계 블록을 통해 또 다른 임의의 계산 블록인 제2 계산 블록을 연결하고자 하는 경우, 상기 제1 계산 블록의 레이어와 상기 설정 개수 이상의 간격을 가지는 레이어부터 이웃한 레이어 순서로 레이어 간 가중치 변화를 확인하여, 기준치 이상의 가중치 변화가 확인되는 레이어의 계산 블록을 상기 제2 계산 블록으로 연결하는 것을 특징으로 하는 분석알고리즘개발장치.When a second calculation block, which is another arbitrary calculation block, is connected through a separate aggregation block with respect to a first calculation block that is an arbitrary calculation block connected to the specific calculation block via the aggregation block, the first By checking the weight change between layers in the order of the layer of the calculation block and the layer having an interval greater than or equal to the set number, the calculation block of the layer in which the weight change greater than or equal to the reference value is confirmed is connected to the second calculation block. analysis algorithm development device.
  5. 제 1 항에 있어서,The method of claim 1,
    상기 연결값갱신부는,The connection value update unit,
    상기 순방향 연산 결과의 오차 발생이 확인되는 경우, 곡률 및 기울기 중 적어도 하나를 기준으로 한 역방향 연산을 통해 각 계산 블록 간 연결 값을 갱신하는 것을 특징으로 하는 분석알고리즘개발장치.The apparatus for developing an analysis algorithm, characterized in that when it is confirmed that an error occurs in the result of the forward operation, the connection value between each calculation block is updated through a backward operation based on at least one of a curvature and a slope.
  6. 제 5 항에 있어서,6. The method of claim 5,
    상기 연결값갱신부는,The connection value update unit,
    상기 순방향 연산 결과의 오차 발생이 확인되는 경우, 상기 곡률을 기준으로 각 계산 블록 간 연결 값을 초기 갱신하며, 상기 곡률을 이용한 오차 감소폭이 기준치 이하인 경우, 상기 기울기를 기준으로 각 계산 블록 간 연결 값을 갱신하는 것을 특징으로 하는 분석알고리즘개발장치.When it is confirmed that an error occurs in the forward calculation result, the connection value between each calculation block is initially updated based on the curvature, and when the error reduction width using the curvature is less than or equal to the reference value, the connection value between each calculation block based on the slope Analysis algorithm development apparatus, characterized in that for updating.
  7. 제 1 항에 있어서,The method of claim 1,
    상기 분석알고리즘개발장치는,The analysis algorithm development device,
    2 이상의 행렬 연산자 각각을 통해 상기 분석 알고리즘을 기 정의된 횟수만큼 반복 실행한 결과, 서로 이웃한 순서인 두 실행 단계에서의 평균 실행 시간이 가장 짧으며, 평균 실행 시간 간의 차이가 임계치 미만으로 확인되는 특정 행렬 연산자를 상기 순방향 연산을 위한 연산자로 추천하는 추천부를 더 포함하는 것을 특징으로 하는 분석알고리즘개발장치.As a result of repeatedly executing the analysis algorithm a predefined number of times through each of two or more matrix operators, the average execution time is the shortest in two execution steps that are adjacent to each other, and the difference between the average execution times is confirmed to be less than a threshold. Analysis algorithm development apparatus, characterized in that it further comprises a recommendation unit that recommends a specific matrix operator as an operator for the forward operation.
  8. 분석 알고리즘의 실행과 관련하여 독립적인 계산 처리가 이루어지는 각 계산 블록 간의 계산 흐름을 링크로 연결하는 블록연결단계;a block connection step of linking a calculation flow between each calculation block in which independent calculation processing is performed in relation to the execution of the analysis algorithm by a link;
    상기 링크 연결에 따라 기 정의된 연산자를 기준으로 입력 계산 블록으로부터 출력 계산 블록까지 순차적으로 계산되는 순방향 연산 결과의 오차 발생 여부를 확인하는 오차확인단계; 및an error checking step of checking whether an error occurs in a forward calculation result sequentially calculated from an input calculation block to an output calculation block based on a predefined operator according to the link connection; and
    상기 순방향 연산 결과의 오차 발생이 확인되는 경우, 상기 순방향 연산 결과에 해당하는 상기 출력 계산 블록의 출력 값이 기 정의된 최적 값이 되도록 각 계산 블록 간 연결 값을 갱신하는 연결값갱신단계를 포함하는 것을 특징으로 하는 분석알고리즘개발장치의 동작 방법.When it is confirmed that an error occurs in the forward operation result, the connection value updating step of updating the connection value between each calculation block so that the output value of the output calculation block corresponding to the forward operation result becomes a predefined optimal value; Method of operation of the analysis algorithm development apparatus, characterized in that.
  9. 제 8 항에 있어서,9. The method of claim 8,
    상기 블록연결단계는,The block connection step is
    특정 계산 블록으로부터의 출력 값에 대해 기 정의된 계산 규칙을 적용하고자 하는 경우, 상기 특정 계산 블록으로부터의 출력 값이 상기 계산 규칙 적용을 위한 집계 블록을 경유하여 임의의 계산 블록으로 전달될 수 있도록 링크로 연결하는 것을 특징으로 하는 분석알고리즘개발장치의 동작 방법.When a predefined calculation rule is to be applied to an output value from a specific calculation block, the link so that the output value from the specific calculation block can be transmitted to an arbitrary calculation block via the aggregation block for applying the calculation rule Method of operation of the analysis algorithm development device, characterized in that connected to.
  10. 제 9 항에 있어서,10. The method of claim 9,
    상기 블록연결단계는,The block connection step is
    상기 특정 계산 블록의 레이어(Layer)와는 설정 개수 이상의 레이어 간격을 가지며, 레이어 간 가중치의 변화가 기준치 이하로 시작되는 레이어의 계산 블록을 상기 임의의 계산 블록으로 연결하는 것을 특징으로 하는 분석알고리즘개발장치의 동작 방법.An apparatus for developing an analysis algorithm, characterized in that the calculation block of a layer having a layer interval greater than or equal to a set number of layers from the layer of the specific calculation block and whose weight change between layers starts less than or equal to a reference value is connected to the arbitrary calculation block how it works.
  11. 제 9 항에 있어서,10. The method of claim 9,
    상기 블록연결단계는,The block connection step is
    상기 집계 블록을 경유하여 상기 특정 계산 블록과 연결되는 임의의 계산 블록인 제1 계산 블록에 대해 별도의 집계 블록을 통해 또 다른 임의의 계산 블록인 제2 계산 블록을 연결하고자 하는 경우, 상기 제1 계산 블록의 레이어와 상기 설정 개수 이상의 간격을 가지는 레이어부터 이웃한 레이어 순서로 레이어 간 가중치 변화를 확인하여, 기준치 이상의 가중치 변화가 확인되는 레이어의 계산 블록을 상기 제2 계산 블록으로 연결하는 것을 특징으로 하는 분석알고리즘개발장치의 동작 방법.When a second calculation block, which is another arbitrary calculation block, is connected through a separate aggregation block with respect to a first calculation block that is an arbitrary calculation block connected to the specific calculation block via the aggregation block, the first By checking the weight change between layers in the order of the layer of the calculation block and the layer having an interval greater than or equal to the set number, the calculation block of the layer in which the weight change greater than or equal to the reference value is confirmed is connected to the second calculation block. operation method of the analysis algorithm development device.
  12. 제 8 항에 있어서,9. The method of claim 8,
    상기 연결값갱신단계는,In the connection value update step,
    상기 순방향 연산 결과의 오차 발생이 확인되는 경우, 곡률 및 기울기 중 적어도 하나를 기준으로 한 역방향 연산을 통해 각 계산 블록 간 연결 값을 갱신하는 것을 특징으로 하는 분석알고리즘개발장치의 동작 방법.When it is confirmed that an error occurs in the result of the forward operation, the connection value between each calculation block is updated through a backward operation based on at least one of a curvature and a slope.
  13. 제 12 항에 있어서,13. The method of claim 12,
    상기 연결값갱신단계는,In the connection value update step,
    상기 순방향 연산 결과의 오차 발생이 확인되는 경우, 상기 곡률을 기준으로 각 계산 블록 간 연결 값을 초기 갱신하며, 상기 곡률을 이용한 오차 감소폭이 기준치 이하인 경우, 상기 기울기를 기준으로 각 계산 블록 간 연결 값을 갱신하는 것을 특징으로 하는 분석알고리즘개발장치의 동작 방법.When it is confirmed that an error occurs in the forward calculation result, the connection value between each calculation block is initially updated based on the curvature, and when the error reduction width using the curvature is less than or equal to the reference value, the connection value between each calculation block based on the slope Method of operation of the analysis algorithm development apparatus, characterized in that for updating.
  14. 제 8 항에 있어서,9. The method of claim 8,
    상기 방법은,The method is
    2 이상의 행렬 연산자 각각을 통해 상기 분석 알고리즘을 기 정의된 횟수만큼 반복 실행한 결과, 서로 이웃한 순서인 두 실행 단계에서의 평균 실행 시간이 가장 짧으며, 평균 실행 시간 간의 차이가 임계치 미만으로 확인되는 특정 행렬 연산자를 상기 순방향 연산을 위한 연산자로 추천하는 추천부를 더 포함하는 것을 특징으로 하는 분석알고리즘개발장치의 동작 방법.As a result of repeatedly executing the analysis algorithm a predefined number of times through each of two or more matrix operators, the average execution time is the shortest in two execution steps that are adjacent to each other, and the difference between the average execution times is confirmed to be less than a threshold. The method of operating an analysis algorithm development apparatus, characterized in that it further comprises a recommendation unit that recommends a specific matrix operator as an operator for the forward operation.
PCT/KR2020/016107 2019-12-30 2020-11-16 Development apparatus for analysis algorithm and operation method therefor WO2021137420A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2019-0178384 2019-12-30
KR1020190178384A KR102113546B1 (en) 2019-12-30 2019-12-30 Development apparatus for analysis algorithms, and control method thereof

Publications (1)

Publication Number Publication Date
WO2021137420A1 true WO2021137420A1 (en) 2021-07-08

Family

ID=71090699

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2020/016107 WO2021137420A1 (en) 2019-12-30 2020-11-16 Development apparatus for analysis algorithm and operation method therefor

Country Status (2)

Country Link
KR (1) KR102113546B1 (en)
WO (1) WO2021137420A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102113546B1 (en) * 2019-12-30 2020-06-02 한국과학기술정보연구원 Development apparatus for analysis algorithms, and control method thereof

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000061371A (en) * 1999-03-25 2000-10-16 김기삼 Learning Method Of Multi-layer Neural Networks For Objection Recognition
US20150324690A1 (en) * 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
US20170228646A1 (en) * 2016-02-04 2017-08-10 Qualcomm Incorporated Spiking multi-layer perceptron
US20190114511A1 (en) * 2017-10-16 2019-04-18 Illumina, Inc. Deep Learning-Based Techniques for Training Deep Convolutional Neural Networks
KR102113546B1 (en) * 2019-12-30 2020-06-02 한국과학기술정보연구원 Development apparatus for analysis algorithms, and control method thereof

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20000061371A (en) * 1999-03-25 2000-10-16 김기삼 Learning Method Of Multi-layer Neural Networks For Objection Recognition
US20150324690A1 (en) * 2014-05-08 2015-11-12 Microsoft Corporation Deep Learning Training System
US20170228646A1 (en) * 2016-02-04 2017-08-10 Qualcomm Incorporated Spiking multi-layer perceptron
US20190114511A1 (en) * 2017-10-16 2019-04-18 Illumina, Inc. Deep Learning-Based Techniques for Training Deep Convolutional Neural Networks
KR102113546B1 (en) * 2019-12-30 2020-06-02 한국과학기술정보연구원 Development apparatus for analysis algorithms, and control method thereof

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MOON SANG-WOO, SEONG-GON KONG: "Pattern Classification using the Block-based Neural Network", JOURNAL OF KOREAN FUZZY LOGIC & INTELLIGENT SYSTEM SOCIETY, vol. 9, no. 4, 1 August 1999 (1999-08-01), pages 397 - 400, XP055826270 *

Also Published As

Publication number Publication date
KR102113546B1 (en) 2020-06-02

Similar Documents

Publication Publication Date Title
WO2019164251A1 (en) Method of performing learning of deep neural network and apparatus thereof
WO2019194465A1 (en) Neural network processor
WO2020256418A2 (en) Computing system for implementing virtual sensor by using digital twin, and real-time data collection method using same
WO2019209059A1 (en) Machine learning on a blockchain
WO2021137420A1 (en) Development apparatus for analysis algorithm and operation method therefor
US7257459B1 (en) Method and apparatus for scheduling pilot lots
WO2018030747A1 (en) Apparatus and method for generating delivery plan by learning delivery path
WO2020180084A1 (en) Method for completing coloring of target image, and device and computer program therefor
WO2019132299A1 (en) System, device, and method for priority-based resource scaling in cloud system
WO2022050541A1 (en) Method for adjusting allocation of computing resources for multiple vnf, and server therefor
WO2020159016A1 (en) Method for optimizing neural network parameter appropriate for hardware implementation, neural network operation method, and apparatus therefor
WO2019027247A1 (en) Integrated logistics management system using drone and method thereof
WO2022085958A1 (en) Electronic device and method for operating same
WO2022196945A1 (en) Apparatus for predicting population dispersion on basis of population dispersion simulation model, and method for predicting population dispersion by using same
WO2020114184A1 (en) Joint modeling method, apparatus and device, and computer-readable storage medium
WO2023214624A1 (en) Deep reinforcement learning-based integrated circuit design system and method using partitioning
EP3861443A1 (en) Service-aware serverless cloud computing system
WO2023171981A1 (en) Surveillance camera management device
WO2019088470A1 (en) Processor and control methods thereof
WO2020076056A1 (en) Device and method for controlling traffic offloading
WO2020222347A1 (en) Virtual machine arrangement method and virtual machine arrangement device implementing same
WO2021141441A1 (en) Method for providing scraping-based service and application for performing same
WO2021040192A1 (en) System and method for training artificial intelligence model
WO2023022321A1 (en) Distributed learning server and distributed learning method
WO2020159269A1 (en) Processing computational models in parallel

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: 20909424

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20909424

Country of ref document: EP

Kind code of ref document: A1