KR20200080813A - Method for training of an artificial neural network - Google Patents

Method for training of an artificial neural network Download PDF

Info

Publication number
KR20200080813A
KR20200080813A KR1020180170665A KR20180170665A KR20200080813A KR 20200080813 A KR20200080813 A KR 20200080813A KR 1020180170665 A KR1020180170665 A KR 1020180170665A KR 20180170665 A KR20180170665 A KR 20180170665A KR 20200080813 A KR20200080813 A KR 20200080813A
Authority
KR
South Korea
Prior art keywords
neural network
artificial neural
learning
error
server
Prior art date
Application number
KR1020180170665A
Other languages
Korean (ko)
Other versions
KR102190100B1 (en
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 (주)아크릴
Priority to KR1020180170665A priority Critical patent/KR102190100B1/en
Publication of KR20200080813A publication Critical patent/KR20200080813A/en
Application granted granted Critical
Publication of KR102190100B1 publication Critical patent/KR102190100B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/098Distributed learning, e.g. federated learning
    • G06N3/0454
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)

Abstract

According to one embodiment of the present invention, a method of learning an artificial neural network by using a plurality of physically classified operation resources includes the following steps of: determining the amount of operation resources to be used for the learning of a first artificial neural network; selecting at least one operation resource to be used for the first learning of the first artificial neural network based on the amount of operation resources; determining divisional learning data used by each of the at least one operation resource for the first learning by referring to the total amount of learning data used for the first learning; requesting the at least one operation resource to calculate an error of the first artificial neural network by using the divisional learning data, and return the calculated error; calculating a first error based on the error returned from the at least one operation resource; and creating a second artificial neural network by updating the first artificial neural network based on the first error. Therefore, the method is capable of reducing time for the learning of an artificial neural network.

Description

인공 신경망 학습 방법{Method for training of an artificial neural network}Method for training of an artificial neural network

본 발명의 실시예들은 인공 신경망의 학습 방법에 관한 것으로, 물리적으로 구분되는 복수의 연산 리소스를 이용하여 병렬적으로 인공 신경망을 학습하는 방법에 관한 것이다.Embodiments of the present invention relate to a method for learning an artificial neural network, and to a method for learning an artificial neural network in parallel using a plurality of physically separated computational resources.

인공 신경망을 이용한 다양한 어플리케이션(Application)에 있어서, 인공 신경망에 의해 도출되는 결과의 정확도가 어플리케이션의 성능을 결정하는 것이 일반적이다.In various applications using an artificial neural network, it is common for the accuracy of the results derived by the artificial neural network to determine the performance of the application.

이와 같은 인공 신경망에 의해 도출되는 결과의 정확도는 다양한 파라미터들에 의해서 좌우되므로, 어플리케이션의 제작자들은 다양한 파라미터 셋을 이용하여 인공 신경망을 학습 시키고, 그 학습 결과를 반복적으로 확인함으로써 해당 인공 신경망에 대한 최적의 파라미터 셋을 결정한다.Since the accuracy of the results derived by such an artificial neural network depends on various parameters, the creators of the application train the artificial neural network using various parameter sets, and repeatedly check the learning results to optimize the corresponding artificial neural network. Determine the parameter set of.

인공 신경망에 대한 파라미터들은 증가 및/또는 감소에 따라 성능 변화에 대한 명확한 경향성을 갖지 않기에, 어플리케이션의 제작자들은 다양한 조합의 파라미터 셋으로 인공 신경망의 성능을 확인한다.Since the parameters for the artificial neural network do not have a clear tendency to change in performance with increasing and/or decreasing, the authors of the application confirm the performance of the artificial neural network with a set of various combinations of parameters.

종래기술에 따르면 학습 데이터를 이용한 인공 신경망 학습에 있어서, 학습 데이터는 하나의 연산 리소스에 의해서만 사용되어 학습에 소요되는 시간을 단축시킬 수 없는 문제점이 있었고, 이에 따라 최적의 성능을 갖는 인공 신경망을 결정하기 까지 많은 시간이 소요되는 문제점이 있었다.According to the prior art, in learning an artificial neural network using learning data, there is a problem in that learning data is used only by one computational resource to shorten the time required for learning, and accordingly, an artificial neural network having optimal performance is determined. There was a problem that it took a long time to do so.

본 발명의 상술한 문제점을 해결하기 위한 것으로, 학습 데이터를 복수의 연산 리소스에 분배하여 학습 시키고, 그 결과를 다시 수집하여 종합함으로써, 인공 신경망의 학습에 소요되는 시간을 단축시키고자 한다.In order to solve the above-described problems of the present invention, it is intended to shorten the time required for learning an artificial neural network by distributing and training learning data among a plurality of computational resources, and collecting and synthesizing the results again.

또한 본 발명은 인공 신경망의 학습을 병렬적으로 수행함으로써 다양한 파라미터 셋에 대한 검증 시간을 단축시키고자 한다.In addition, the present invention is intended to shorten the verification time for various parameter sets by performing learning of an artificial neural network in parallel.

또한 본 발명은 사용자의 큰 노력 없이 단시간 내에 다양한 파라미터 셋에 대한 학습 결과를 확인해 볼 수 있도록 하고자 한다.In addition, the present invention is to be able to check the learning results for various parameter sets in a short time without user's great effort.

본 발명의 일 실시예에 따른 물리적으로 구분되는 복수의 연산 리소스를 이용하여 인공 신경망을 학습하는 방법은, 제1 인공 신경망의 학습에 사용할 연산 리소스의 수량을 결정하는 단계; 상기 연산 리소스의 수량에 기초하여, 상기 제1 인공 신경망의 제1 학습에 사용할 적어도 하나의 연산 리소스를 선택하는 단계; 상기 제1 학습에 사용하는 전체 학습 데이터의 수량을 참조하여, 상기 적어도 하나의 연산 리소스 각각이 상기 제1 학습에 사용하는 분할 학습 데이터를 결정하는 단계; 상기 적어도 하나의 연산 리소스가 상기 분할 학습 데이터를 사용하여 상기 제1 인공 신경망의 오차를 산출하고, 상기 산출된 오차를 반환하도록 요청하는 단계; 상기 적어도 하나의 연산 리소스로부터 반환된 오차에 기초하여 제1 오차를 산출하는 단계; 및 상기 제1 오차에 기초하여 상기 제1 인공 신경망을 갱신하여 제2 인공 신경망을 생성하는 단계;를 포함할 수 있다.A method of learning an artificial neural network using a plurality of physically separated computing resources according to an embodiment of the present invention includes: determining a quantity of computing resources to be used for learning a first artificial neural network; Selecting at least one computing resource to be used for the first learning of the first artificial neural network based on the quantity of the computing resource; Determining divided learning data that each of the at least one computational resource uses for the first learning by referring to the total number of learning data used for the first learning; Requesting the at least one computational resource to calculate an error of the first artificial neural network using the split learning data and return the calculated error; Calculating a first error based on the error returned from the at least one computational resource; And generating the second artificial neural network by updating the first artificial neural network based on the first error.

상기 리소스의 수량을 결정하는 단계는 사용자 단말로부터 수신된 데이터에 기초하여 상기 리소스의 수량을 결정하는 단계;를 포함할 수 있다.The determining of the quantity of the resource may include determining the quantity of the resource based on data received from the user terminal.

또한 상기 리소스의 수량을 결정하는 단계는 상기 적어도 하나의 연산 리소스의 작업 스케쥴(Schedule)을 참조하여, 상기 리소스의 수량을 결정하는 단계;를 포함할 수 있다.Also, the determining of the quantity of the resource may include determining the quantity of the resource by referring to a task schedule of the at least one computing resource.

상기 적어도 하나의 연산 리소스는 제1 연산 리소스 및 제2 연산 리소스를 포함하고, 상기 분할 학습 데이터를 결정하는 단계는 N(N은 자연수)개의 전체 학습 데이터 중, 상기 제1 연산 리소스가 N1(N1은 자연수)개의 분할 학습 데이터를 상기 제1 학습에 사용하도록 결정하는 단계; 및 상기 N개의 전체 학습 데이터 중, 상기 제2 연산 리소스가 N2(N2는 자연수)개의 분할 학습 데이터를 상기 제1 학습에 사용하도록 결정하는 단계;를 포함할 수 있다. 이때 상기 N1개의 분할 학습 데이터와 상기 N2개의 분할 학습 데이터는 중복되지 않을 수 있다.The at least one computational resource includes a first computational resource and a second computational resource, and the determining of the divided learning data comprises: N (N is a natural number) of the entire learning data, the first computational resource is N1 (N1 Is a natural number) determining to use the divided learning data for the first learning; And determining, among the N total learning data, that the second computational resource uses N2 (N2 is a natural number) divided learning data for the first learning. In this case, the N1 divided learning data and the N2 divided learning data may not overlap.

상기 오차를 반환하도록 요청하는 단계는 상기 제1 연산 리소스로부터 상기 N1개의 분할 학습 데이터 각각에 대한 N1개의 오차를 반환하도록 요청하는 단계; 및 상기 제2 연산 리소스로부터 상기 N2개의 분할 학습 데이터 각각에 대한 N2개의 오차를 반환하도록 요청하는 단계;를 포함할 수 있다.The requesting to return the error may include requesting to return N1 errors for each of the N1 divided learning data from the first computational resource; And requesting to return N2 errors for each of the N2 divided learning data from the second computational resource.

상기 제1 오차를 산출하는 단계는 소정의 방식에 따라 상기 적어도 하나의 연산 리소스로부터 반환된 오차의 대표값을 상기 제1 오차로 산출하는 단계;를 포함할 수 있다.The calculating of the first error may include calculating a representative value of the error returned from the at least one computing resource as the first error according to a predetermined method.

본 발명의 일 실시예에 따른 인공 신경망 학습 방법은, 상기 제2 인공 신경망을 생성하는 단계 이후에, 상기 갱신된 제2 인공 신경망을 상기 적어도 하나의 연산 리소스 각각에 전송하는 단계; 상기 적어도 하나의 연산 리소스가 상기 제1 학습 이후의 제2 학습에 따른 분할 학습 데이터를 사용하여 상기 제2 인공 신경망의 오차를 산출하고, 상기 산출된 오차를 반환하도록 요청하는 단계; 상기 적어도 하나의 연산 리소스로부터 반환된 오차에 기초하여 제2 오차를 산출하는 단계; 및 상기 제2 오차에 기초하여 상기 제2 인공 신경망을 갱신하여 제3 인공 신경망을 생성하는 단계;를 포함할 수 있다.An artificial neural network learning method according to an embodiment of the present invention includes: after the step of generating the second artificial neural network, transmitting the updated second artificial neural network to each of the at least one computing resource; Calculating, by the at least one computational resource, an error of the second artificial neural network using segmented learning data according to a second learning after the first learning, and requesting to return the calculated error; Calculating a second error based on the error returned from the at least one computational resource; And generating a third artificial neural network by updating the second artificial neural network based on the second error.

본 발명에 따르면, 학습 데이터를 복수의 연산 리소스에 분배하여 학습 시키고, 그 결과를 다시 수집하여 종합함으로써, 인공 신경망의 학습에 소요되는 시간을 단축시킬 수 있다.According to the present invention, it is possible to shorten the time required for learning an artificial neural network by distributing learning data to a plurality of computational resources, learning, and collecting and synthesizing the results again.

또한 본 발명은 인공 신경망의 학습을 병렬적으로 수행함으로써 다양한 파라미터 셋에 대한 검증 시간을 단축시킬 수 있다.In addition, the present invention can reduce the verification time for various parameter sets by performing learning of an artificial neural network in parallel.

또한 본 발명은 사용자의 큰 노력 없이 단시간 내에 다양한 파라미터 셋에 대한 학습 결과를 확인해 볼 수 있도록 한다.In addition, the present invention makes it possible to check the learning results for various parameter sets in a short time without user's great effort.

도 1은 본 발명의 일 실시예에 따른 인공 신경망 학습 시스템의 구성을 개략적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 리소스 서버(300A)의 구성을 개략적으로 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 서버(100)의 구성을 개략적으로 도시한 도면이다.
도 4 및 도 5는 본 발명의 서버(100)에 의해 학습된 인공 신경망의 예시적인 구조를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 인공 신경망 학습 시스템에 포함되는 리소스 서버(300A, 300B, 300C)의 예시적인 구성을 도시한 도면이다.
도 7은 본 발명의 일 실시예에 따른 서버(100)가 전체 학습 데이터(510)로부터 분할 학습 데이터(511, 512, 513)를 결정하는 과정을 설명하기 위한 도면이다.
도 8은 각각의 연산 리소스가 서버(100)의 제어에 따라 분할 학습 데이터(511, 512, 513)로부터 오차(711, 712, 713)를 산출하는 과정을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 서버(100)가 제1 오차(710)를 산출하는 과정을 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른 서버(100)에 의해 수행되는 인공 신경망 학습 방법을 설명하기 위한 흐름도이다.
도 11은 본 발명의 일 실시예에 따른 사용자 단말(200)에 표시되는 연산 리소스의 수량을 결정하기 위한 인터페이스가 표시된 화면(1100)의 예시이다.
1 is a diagram schematically showing the configuration of an artificial neural network learning system according to an embodiment of the present invention.
2 is a diagram schematically showing the configuration of a resource server 300A according to an embodiment of the present invention.
3 is a diagram schematically showing the configuration of the server 100 according to an embodiment of the present invention.
4 and 5 are diagrams for explaining an exemplary structure of an artificial neural network learned by the server 100 of the present invention.
6 is a diagram illustrating an exemplary configuration of resource servers 300A, 300B, and 300C included in an artificial neural network learning system according to an embodiment of the present invention.
7 is a diagram for explaining a process in which the server 100 according to an embodiment of the present invention determines the divided learning data 511, 512, and 513 from the entire learning data 510.
8 is a diagram for explaining a process of calculating errors 711, 712, and 713 from the divided learning data 511, 512, and 513, according to the control of the server 100 by each computing resource.
9 is a view for explaining a process of calculating the first error 710 by the server 100 according to an embodiment of the present invention.
10 is a flowchart illustrating an artificial neural network learning method performed by the server 100 according to an embodiment of the present invention.
11 is an example of a screen 1100 on which an interface for determining a quantity of computational resources displayed on the user terminal 200 according to an embodiment of the present invention is displayed.

본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다. The present invention can be applied to various transformations and can have various embodiments, and specific embodiments will be illustrated in the drawings and described in detail in the detailed description. Effects and features of the present invention and methods for achieving them will be clarified with reference to embodiments described below in detail together with the drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various forms.

이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings, and the same or corresponding components will be given the same reference numerals when describing with reference to the drawings, and redundant description thereof will be omitted. .

이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 이하의 실시예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 이하의 실시예에서, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. 도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 형태는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다. In the following examples, terms such as first and second are not used in a limiting sense, but for the purpose of distinguishing one component from other components. In the following embodiments, the singular expression includes a plural expression unless the context clearly indicates otherwise. In the examples below, terms such as include or have are meant to mean that features or components described in the specification exist, and do not preclude the possibility of adding one or more other features or components. In the drawings, the size of components may be exaggerated or reduced for convenience of description. For example, since the size and shape of each component shown in the drawings are arbitrarily shown for convenience of description, the present invention is not necessarily limited to what is illustrated.

도 1은 본 발명의 일 실시예에 따른 인공 신경망 학습 시스템의 구성을 개략적으로 도시한 도면이다.1 is a diagram schematically showing the configuration of an artificial neural network learning system according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 인공 신경망 학습 시스템은 물리적으로 구분되는 복수의 연산 리소스를 동시에 이용하여 인공 신경망을 학습시킬 수 있다. 도 1을 참조하면, 이와 같은 인공 신경망 학습 시스템은 서버(100), 사용자 단말(200), 리소스 서버(300) 및 통신망(400)을 포함할 수 있다.The artificial neural network learning system according to an embodiment of the present invention may train an artificial neural network by simultaneously using a plurality of physically separated computational resources. Referring to FIG. 1, such an artificial neural network learning system may include a server 100, a user terminal 200, a resource server 300, and a communication network 400.

본 발명에서 '인공 신경망'은 서버(100) 및/또는 리소스 서버(300)가 소정의 목적에 따라 생성한 것으로, 머신 러닝(Machine Learning) 또는 딥러닝(Deep Learning) 기법에 의해 학습된 인공 신경망을 의미할 수 있다. 이와 같은 신경망의 구조에 대해서는 도 4 및 도 5를 참조하여 후술한다.In the present invention, the'artificial neural network' is generated by the server 100 and/or the resource server 300 according to a predetermined purpose, and an artificial neural network learned by a machine learning or deep learning technique. Can mean The structure of this neural network will be described later with reference to FIGS. 4 and 5.

본 발명에서 '물리적으로 구분'되는 것은 물리적으로 하나가 아닌 것을 의미할 수 있다. 따라서 '물리적으로 구분되는 복수의 연산 리소스'는 연산 리소스가 물리적으로 하나가 아닌 것을 의미할 수 있다. 이에 따라 복수의 연산 리소스는 리소스 서버(300) 내에서 물리적으로 하나가 아닌 상태로(즉 소정의 인터페이스를 통하여 연결된 상태로) 배치되거나, 서로 다른 리소스 서버(300) 내에 배치될 수 있다. 다만 이와 같은 배치 형태는 예시적인것으로, 본 발명의 사상이 이에 한정되는 것은 아니다.In the present invention,'physically distinguished' may mean not physically one. Therefore,'a plurality of physically divided computing resources' may mean that the computing resource is not physically one. Accordingly, the plurality of computational resources may be physically disposed in the resource server 300 in a non-one state (ie, connected through a predetermined interface) or in different resource servers 300. However, the arrangement form is exemplary, and the spirit of the present invention is not limited thereto.

본 발명에서 '연산 리소스'는 인공 신경망의 학습에 수반되는 연산을 수행하는 장치를 의미할 수 있다. 이와 같은 연산 리소스는 가령 리소스 서버(300)가 포함되는 각각의 제3 프로세서들을 의미할 수 있다. 리소스 서버(300) 및 제3 프로세서에 대한 상세한 설명은 후술한다.In the present invention, the term'computation resource' may mean a device that performs an operation involved in learning an artificial neural network. Such a computational resource may mean, for example, respective third processors in which the resource server 300 is included. The detailed description of the resource server 300 and the third processor will be described later.

본 발명의 일 실시예에 따른 사용자 단말(200)은 사용자가 서버(100)에 의해 제공되는 다양한 서비스를 이용할 수 있도록 사용자와 서버(100)를 매개하는 다양한 형태의 장치를 의미할 수 있다. 바꾸어 말하면, 본 발명의 일 실시예에 따른 사용자 단말(200)은 서버(100)와 데이터를 송수신 하는 다양한 장치를 의미할 수 있다. The user terminal 200 according to an embodiment of the present invention may refer to various types of devices that mediate the user and the server 100 so that the user can use various services provided by the server 100. In other words, the user terminal 200 according to an embodiment of the present invention may refer to various devices that transmit and receive data to and from the server 100.

본 발명의 일 실시예에서, 사용자 단말(200)은 서버(100)로 인공 신경망의 학습에 사용할 리소스의 수량을 전송하여 서버(100)가 해당 수량에 따라 인공 신경망을 학습시킬 수 있도록 할 수 있다. In one embodiment of the present invention, the user terminal 200 may transmit the quantity of resources to be used for learning the artificial neural network to the server 100 so that the server 100 can learn the artificial neural network according to the corresponding quantity. .

또한 본 발명의 일 실시예에서, 사용자 단말(200)은 서버(100)로부터 인공 신경망의 학습 진행 상황에 대한 정보를 수신하여 이를 표시할 수 있다. 이와 같은 사용자 단말(200)은 도 1에 도시된 바와 같이, 휴대용 단말(201)을 의미할 수도 있고, 컴퓨터(202)를 의미할 수도 있다. In addition, in one embodiment of the present invention, the user terminal 200 may receive and display information on the progress of the learning of the artificial neural network from the server 100. As illustrated in FIG. 1, the user terminal 200 may mean the portable terminal 201 or the computer 202.

한편 사용자 단말(200)은 상술한 기능을 수행하기 위해 콘텐츠 등을 표시하기 위한 표시수단, 이러한 콘텐츠에 대한 사용자의 입력을 획득하기 위한 입력수단을 구비할 수 있다. 이 때 입력수단 및 표시수단은 다양하게 구성될 수 있다. 가령 입력수단은 키보드, 마우스, 트랙볼, 마이크, 버튼, 터치패널 등을 포함할 수 있으나 이에 한정되지 않는다. Meanwhile, the user terminal 200 may include display means for displaying content or the like to perform the above-described functions, and input means for obtaining a user's input to the content. At this time, the input means and the display means may be variously configured. For example, the input means may include, but is not limited to, a keyboard, mouse, trackball, microphone, button, touch panel, and the like.

본 발명의 일 실시예에 따른 리소스 서버(300)는 서버(100)가 할당한 분할 학습 데이터를 이용하여 인공 신경망을 학습시키는 장치를 의미할 수 있다. 이와 같은 리소스 서버(300)는 도 1에 도시된 바와 같이 복수일 수 있다.The resource server 300 according to an embodiment of the present invention may refer to an apparatus for training an artificial neural network using the divided learning data allocated by the server 100. The resource server 300 may be a plurality as shown in FIG. 1.

도 2는 본 발명의 일 실시예에 따른 리소스 서버(300A)의 구성을 개략적으로 도시한 도면이다.2 is a diagram schematically showing the configuration of a resource server 300A according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 리소스 서버(300A)는 통신부(310A), 제2 프로세서(320A), 메모리(330A) 및 복수의 제3 프로세서(340A-1, 340A-2, 340A-3)를 포함할 수 있다.2, the resource server 300A according to an embodiment of the present invention includes a communication unit 310A, a second processor 320A, a memory 330A, and a plurality of third processors 340A-1, 340A-2 , 340A-3).

통신부(310A)는 리소스 서버(300A)가 서버(100)와 같은 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다. The communication unit 310A may be a device including hardware and software necessary for the resource server 300A to transmit and receive signals such as control signals or data signals through wired and wireless connections with other network devices such as the server 100.

제2 프로세서(320A)는 서버(100)로부터 수신된 인공 신경망의 학습 명령에 따라, 복수의 제3 프로세서(340A-1, 340A-2, 340A-3)를 제어하는 장치일 수 있다. 이때 프로세서(Processor)는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(Microprocessor), 중앙처리장치(Central Processing Unit: CPU), 프로세서 코어(Processor Core), 멀티프로세서(Multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.The second processor 320A may be a device that controls a plurality of third processors 340A-1, 340A-2, and 340A-3 according to a learning command of an artificial neural network received from the server 100. At this time, the processor (Processor), for example, may mean a data processing device embedded in hardware having physically structured circuits to perform functions represented by codes or instructions included in a program. As an example of such a data processing device embedded in hardware, a microprocessor, a central processing unit (CPU), a processor core, a multiprocessor, and an application-specific integrated (ASIC) Circuit), FPGA (Field Programmable Gate Array), and the like, but the scope of the present invention is not limited thereto.

메모리(330A)는 리소스 서버(300A)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행한다. 메모리는 자기 저장 매체(Magnetic Storage Media) 또는 플래시 저장 매체(Flash Storage Media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. The memory 330A temporarily or permanently stores data processed by the resource server 300A. The memory may include magnetic storage media or flash storage media, but the scope of the present invention is not limited thereto.

가령 메모리(330A)는 학습된 인공 신경망을 구성하는 데이터들(가령 계수들)을 일시적 및/또는 영구적으로 저장할 수 있다. 물론 메모리(330A)는 인공 신경망을 학습하기 위한 분할 학습 데이터(서버(100)로부터 수신된)도 저장할 수 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.For example, the memory 330A may temporarily and/or permanently store data (eg, coefficients) constituting the learned artificial neural network. Of course, the memory 330A may also store segmented learning data (received from the server 100) for training the artificial neural network. However, this is an example, and the spirit of the present invention is not limited thereto.

복수의 제3 프로세서(340A-1, 340A-2, 340A-3)는 전술한 제2 프로세서(320A)의 제어에 따라 소정의 파라미터 셋 및 분할 학습 데이터를 이용하여 인공 신경망을 학습시키는 장치를 의미할 수 있다. The plurality of third processors 340A-1, 340A-2, and 340A-3 means an apparatus for training an artificial neural network using a predetermined parameter set and divided learning data under the control of the second processor 320A described above. can do.

이때 복수의 제3 프로세서(340A-1, 340A-2, 340A-3) 각각은 전술한 제2 프로세서(320A)보다 높은 연산 능력을 갖는 장치일 수 있다. 가령 복수의 제3 프로세서(340A-1, 340A-2, 340A-3) 각각은 GPU(Graphics Processing Unit)로 구성될 수 있다. 다만 이와 같은 장치 구성 및 제3 프로세서의 수량은 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아니다.At this time, each of the plurality of third processors 340A-1, 340A-2, and 340A-3 may be a device having a higher computing power than the above-described second processor 320A. For example, each of the plurality of third processors 340A-1, 340A-2, and 340A-3 may be configured as a GPU (Graphics Processing Unit). However, such a device configuration and the number of third processors are exemplary and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에서 복수의 제3 프로세서(340A-1, 340A-2, 340A-3) 각각은 구분되는 '연산 리소스'를 제공하는 장치로써, 서로 다른 테스크(Task)를 수행하는데 사용될 수 있다. 가령 첫 번째 제3 프로세서(340A-1)는 제1 분할 학습 데이터를 이용하여 인공 신경망을 학습하는데 사용될 수 있고, 이와 동시에 두 번째 제3 프로세서(340A-2)는 제2 분할 학습 데이터를 이용하여 인공 신경망을 학습하는데 사용될 수 있다.In one embodiment of the present invention, each of the plurality of third processors 340A-1, 340A-2, and 340A-3 is a device that provides distinct'computation resources', and may be used to perform different tasks. have. For example, the first third processor 340A-1 may be used to train the artificial neural network using the first split learning data, and at the same time, the second third processor 340A-2 may use the second split learning data. It can be used to learn artificial neural networks.

본 발명의 다른 실시예에서 복수의 제3 프로세서(340A-1, 340A-2, 340A-3)는 1개의 장치로 동작하여, 하나의 연산 리소스로써 사용될 수도 있다. 가령 제3 프로세서(340A-1, 340A-2, 340A-3)는 가상의 1개의 연산 리소스로써, 제3 분할 학습 데이터를 이용하여 인공 신경망을 학습하는데 사용될 수도 있다.In another embodiment of the present invention, the plurality of third processors 340A-1, 340A-2, and 340A-3 operate as one device, and may be used as a single computing resource. For example, the third processors 340A-1, 340A-2, and 340A-3 are virtual one computational resources and may be used to train an artificial neural network using third divisional learning data.

한편 본 발명의 다른 실시예에 따라 복수의 제3 프로세서(340A-1, 340A-2, 340A-3)가 1개의 장치로써 동작하기 위한 전제로써, 복수의 제3 프로세서(340A-1, 340A-2, 340A-3)는 별도의 물리적 브릿지(Bridge) 및/또는 인터페이스를 통해 상호간에 연결될 수 있다.Meanwhile, according to another embodiment of the present invention, as a premise for the plurality of third processors 340A-1, 340A-2, and 340A-3 to operate as one device, the plurality of third processors 340A-1, 340A- 2, 340A-3) may be connected to each other through a separate physical bridge (Bridge) and / or interface.

복수의 제3 프로세서(340A-1, 340A-2, 340A-3)가 구분되는 장치로써 동작하는지 또는 1개의 장치로써 동작하는지는 제2 프로세서(320A)에 의해 전자적으로 결정될 수 있다.Whether the plurality of third processors 340A-1, 340A-2, and 340A-3 operate as distinct devices or may operate as one device may be determined electronically by the second processor 320A.

도 2에서는 예시적으로, 리소스 서버(300A)의 구성만을 설명하였지만 나머지 리소스 서버(300)도 이와 동일하거나 상응하는 구조일 수 있으므로, 나머지 리소스 서버(300)에 대한 상세한 설명은 생략한다.In FIG. 2, only the configuration of the resource server 300A is exemplarily described, but since the remaining resource server 300 may have the same or a corresponding structure, detailed description of the remaining resource server 300 is omitted.

본 발명의 일 실시예에 따른 서버(100)는 물리적으로 구분되는 복수의 연산 리소스를 동시에 이용하여 인공 신경망을 학습시키는 장치일 수 있다.The server 100 according to an embodiment of the present invention may be an apparatus for learning an artificial neural network by simultaneously using a plurality of physically separated computational resources.

도 3은 이와 같은 본 발명의 일 실시예에 따른 서버(100)의 구성을 개략적으로 도시한 도면이다. 도 3을 참조하면, 본 발명의 일 실시예에 따른 서버(100)는 통신부(110), 제1 프로세서(120) 및 메모리(130)를 포함할 수 있다. 또한 도면에는 도시되지 않았으나, 본 실시예에 따른 서버(100)는 입/출력부, 프로그램 저장부 등을 더 포함할 수 있다. 3 is a view schematically showing the configuration of the server 100 according to an embodiment of the present invention. Referring to FIG. 3, the server 100 according to an embodiment of the present invention may include a communication unit 110, a first processor 120, and a memory 130. In addition, although not shown in the drawing, the server 100 according to the present embodiment may further include an input/output unit, a program storage unit, and the like.

통신부(110)는 서버(100)가 사용자 단말(200) 및/또는 리소스 서버(300)와 같은 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다. The communication unit 110 provides hardware and software necessary for the server 100 to transmit and receive signals such as control signals or data signals through a wired or wireless connection with other network devices such as the user terminal 200 and/or the resource server 300. It may be a device that includes.

제1 프로세서(120)는 사용자 단말(200)로부터 수신된 리소스 수량에 기초하여, 인공 신경망의 학습에 사용될 리소스들을 결정하고, 각 리소스에 대해서 분할 학습 데이터를 전송하는 수단을 의미할 수 있다. 이와 같은 제1 프로세서(120)는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(Microprocessor), 중앙처리장치(Central Processing Unit: CPU), 프로세서 코어(Processor Core), 멀티프로세서(Multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.The first processor 120 may refer to means for determining resources to be used for learning of an artificial neural network and transmitting split learning data for each resource based on the number of resources received from the user terminal 200. The first processor 120 may refer to, for example, a data processing device embedded in hardware having physically structured circuits to perform functions represented by codes or instructions included in a program. As an example of such a data processing device embedded in hardware, a microprocessor, a central processing unit (CPU), a processor core, a multiprocessor, and an application-specific integrated (ASIC) Circuit), FPGA (Field Programmable Gate Array), and the like, but the scope of the present invention is not limited thereto.

메모리(130)는 서버(100)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행한다. 메모리는 자기 저장 매체(Magnetic Storage Media) 또는 플래시 저장 매체(Flash Storage Media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. The memory 130 functions to temporarily or permanently store data processed by the server 100. The memory may include magnetic storage media or flash storage media, but the scope of the present invention is not limited thereto.

가령 메모리(130)는 리소스 서버(300)로부터 인공 신경망을 구성하는 데이터들을 수신하여 일시적 및/또는 영구적으로 저장할 수 있다. 물론 메모리(130)는 인공 신경망을 학습하기 위한 학습 데이터도 저장할 수 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.For example, the memory 130 may receive data constituting an artificial neural network from the resource server 300 and temporarily and/or permanently store the data. Of course, the memory 130 may also store learning data for learning an artificial neural network. However, this is an example, and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 통신망(400)은 인공 신경망 학습 시스템의 각 구성 간의 데이터 송수신을 매개하는 통신망을 의미할 수 있다. 가령 통신망(400)은 LANs(Local Area Networks), WANs(Wide Area Networks), MANs(Metropolitan Area Networks), ISDNs(Integrated Service Digital Networks) 등의 유선 네트워크나, 무선 LANs, CDMA, 블루투스, 위성 통신 등의 무선 네트워크를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.The communication network 400 according to an embodiment of the present invention may refer to a communication network that mediates data transmission and reception between components of the artificial neural network learning system. For example, the communication network 400 includes wired networks such as Local Area Networks (LANs), Wide Area Networks (WANs), Metropolitan Area Networks (MANs), and Integrated Service Digital Networks (ISDNs), wireless LANs, CDMA, Bluetooth, and satellite communication. It may cover a wireless network, but the scope of the present invention is not limited thereto.

이하에서는 도 4 및 도 5를 통하여 예시적인 인공 신경망의 구조에 대해 먼저 설명하고, 서버(100)가 복수의 연산 리소스를 이용하여 인공 신경망을 학습하는 방법에 대해서 나중에 설명한다.Hereinafter, the structure of an exemplary artificial neural network will be described first with reference to FIGS. 4 and 5, and a method for the server 100 to learn the artificial neural network using a plurality of computational resources will be described later.

도 4 및 도 5는 본 발명의 서버(100)에 의해 학습된 인공 신경망의 예시적인 구조를 설명하기 위한 도면이다.4 and 5 are diagrams for explaining an exemplary structure of an artificial neural network learned by the server 100 of the present invention.

본 발명의 일 실시예에 따른 인공 신경망은 도 4에 도시된 바와 같은 합성 곱 신경망(CNN: Convolutional Neural Network) 모델에 따른 인공 신경망일 수 있다. 이때 CNN 모델은 복수의 연산 레이어(Convolutional Layer, Pooling Layer)를 번갈아 수행하여 최종적으로는 입력 데이터의 특징을 추출하는 데 사용되는 계층 모델일 수 있다. 이때 본 발명의 일 실시예에 따른 서버(100) 및/또는 리소스 서버(300)는 학습 데이터를 지도학습(Supervised Learning) 기법에 따라 처리하여 인공 신경망 모델을 구축하거나 학습시킬 수 있다.The artificial neural network according to an embodiment of the present invention may be an artificial neural network according to a convolutional neural network (CNN) model as shown in FIG. 4. At this time, the CNN model may be a hierarchical model used to alternately perform a plurality of computational layers (convolutional layer, pooling layer) and finally extract characteristics of input data. In this case, the server 100 and/or the resource server 300 according to an embodiment of the present invention may process or train an artificial neural network model by processing learning data according to a supervised learning technique.

본 발명의 일 실시예에 따른 서버(100) 및/또는 리소스 서버(300)는 입력 데이터의 특징 값을 추출하기 위한 컨볼루션 레이어(Convolution layer), 추출된 특징 값을 결합하여 특징 맵을 구성하는 풀링 레이어(pooling layer)를 생성할 수 있다. The server 100 and/or the resource server 300 according to an embodiment of the present invention configure a feature map by combining a convolution layer for extracting feature values of input data and extracted feature values A pooling layer can be created.

또한 본 발명의 일 실시예에 따른 서버(100) 및/또는 리소스 서버(300)는 생성된 특징 맵을 결합하여, 입력 데이터가 복수의 항목 각각에 해당할 확률을 결정할 준비를 하는 풀리 커넥티드 레이어(Fully Conected Layer)를 생성할 수 있다. In addition, the server 100 and/or the resource server 300 according to an embodiment of the present invention combines the generated feature maps and prepares to determine the probability that the input data corresponds to each of a plurality of items. (Fully Conected Layer) can be created.

마지막으로 서버(100) 및/또는 리소스 서버(300)는 입력 데이터에 대응되는 출력을 포함하는 아웃풋 레이어(Output Layer)를 산출할 수 있다.Finally, the server 100 and/or the resource server 300 may calculate an output layer including an output corresponding to input data.

도 4에 도시된 예시에서는, 입력 데이터가 5X7 형태의 블록으로 나누어지며, 컨볼루션 레이어의 생성에 5X3 형태의 단위 블록이 사용되고, 풀링 레이어의 생성에 1X4 또는 1X2 형태의 단위 블록이 사용되는 것으로 도시되었지만, 이는 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아니다.In the example shown in FIG. 4, the input data is divided into 5X7 type blocks, and a 5X3 type unit block is used to generate a convolution layer, and a 1X4 or 1X2 type unit block is used to generate a pooling layer. However, this is exemplary and the spirit of the present invention is not limited thereto.

한편 이와 같은 인공 신경망은 전술한 서버(100) 및/또는 리소스 서버(300)의 메모리에 인공 신경망을 구성하는 적어도 하나의 노드의 계수, 노드의 가중치 및 인공 신경망을 구성하는 복수의 레이어 간의 관계를 정의하는 함수의 계수들의 형태로 저장될 수 있다. 물론 인공 신경망의 구조 또한 서버(100) 및/또는 리소스 서버(300)의 메모리에 소스코드 및/또는 프로그램의 형태로 저장될 수 있다.On the other hand, such an artificial neural network has a relationship between a plurality of layers constituting an artificial neural network, a coefficient of at least one node constituting the artificial neural network in the memory of the server 100 and/or the resource server 300 described above. It can be stored in the form of coefficients of the defining function. Of course, the structure of the artificial neural network may also be stored in the form of source codes and/or programs in the memory of the server 100 and/or the resource server 300.

본 발명의 일 실시예에 따른 인공 신경망은 도 5에 도시된 바와 같은 순환 신경망(Recurrent Neural Network, RNN) 모델에 따른 인공 신경망일 수 있다.The artificial neural network according to an embodiment of the present invention may be an artificial neural network according to a Recurrent Neural Network (RNN) model as shown in FIG. 5.

도 5를 참조하면, 이와 같은 순환 신경망(RNN) 모델에 따른 인공 신경망은 적어도 하나의 입력 노드(N1)를 포함하는 입력 레이어(L1), 복수의 히든 노드(N2)를 포함하는 히든 레이어(L2) 및 적어도 하나의 출력 노드(N3)를 포함하는 출력 레이어(L3)를 포함할 수 있다.Referring to FIG. 5, the artificial neural network according to the cyclic neural network (RNN) model includes an input layer L1 including at least one input node N1 and a hidden layer L2 including a plurality of hidden nodes N2. ) And an output layer L3 including at least one output node N3.

히든 레이어(L2)는 도시된 바와 같이 전체적으로 연결된(Fully Connected) 하나 이상의 레이어를 포함할 수 있다. 히든 레이어(L2)가 복수의 레이어를 포함하는 경우, 인공 신경망은 각각의 히든 레이어 사이의 관계를 정의하는 함수(미도시)를 포함할 수 있다.The hidden layer L2 may include one or more layers that are fully connected as illustrated. When the hidden layer L2 includes a plurality of layers, the artificial neural network may include a function (not shown) that defines a relationship between each hidden layer.

각 레이어의 각 노드에 포함되는 값은 벡터일 수 있다. 또한 각 노드는 해당 노드의 중요도에 대응되는 가중치를 포함할 수도 있다.The value included in each node of each layer may be a vector. Also, each node may include a weight corresponding to the importance of the corresponding node.

한편 인공 신경망은 입력 레이어(L1)와 히든 레이어(L2)의 관계를 정의하는 제1 함수(F1) 및 히든 레이어(L2)와 출력 레이어(L3)의 관계를 정의하는 제2 함수(F2)를 포함할 수 있다. Meanwhile, the artificial neural network includes a first function F1 that defines the relationship between the input layer L1 and the hidden layer L2 and a second function F2 that defines the relationship between the hidden layer L2 and the output layer L3. It can contain.

제1 함수(F1)는 입력 레이어(L1)에 포함되는 입력 노드(N1)와 히든 레이어(L2)에 포함되는 히든 노드(N2)간의 연결관계를 정의할 수 있다. 이와 유사하게, 제2 함수(F2)는 히든 레이어(L2)에 포함되는 히든 노드(N2)와 출력 레이어(L2)에 포함되는 출력 노드(N2)간의 연결관계를 정의할 수 있다.The first function F1 may define a connection relationship between the input node N1 included in the input layer L1 and the hidden node N2 included in the hidden layer L2. Similarly, the second function F2 may define a connection relationship between the hidden node N2 included in the hidden layer L2 and the output node N2 included in the output layer L2.

이와 같은 제1 함수(F1), 제2 함수(F2) 및 히든 레이어 사이의 함수들은 이전 노드의 입력에 기초하여 결과물을 출력하는 순환 신경망 모델을 포함할 수 있다.The functions between the first function F1, the second function F2, and the hidden layer may include a cyclic neural network model that outputs a result based on the input of the previous node.

서버(100) 및/또는 리소스 서버(300)에 의해 인공 신경망이 학습되는 과정에서, 복수의 학습 데이터에 기초하여 제1 함수(F1) 및 제2 함수(F2)가 학습될 수 있다. 물론 인공 신경망이 학습되는 과정에서 전술한 제1 함수(F1) 및 제2 함수(F2) 외에 복수의 히든 레이어 사이의 함수들 또한 학습될 수 있다.In the process of the artificial neural network being trained by the server 100 and/or the resource server 300, the first function F1 and the second function F2 may be learned based on a plurality of learning data. Of course, in the process of learning an artificial neural network, functions between a plurality of hidden layers may also be learned in addition to the first function F1 and the second function F2 described above.

본 발명의 일 실시예에 따른 인공 신경망은 표지(Labeled)된 학습 데이터를 기반으로 지도학습(Supervised Learning) 방식으로 학습될 수 있다. The artificial neural network according to an embodiment of the present invention may be learned by a supervised learning method based on labeled learning data.

본 발명의 일 실시예에 따른 서버(100) 및/또는 리소스 서버(300)는 복수의 학습 데이터를 이용하여, 어느 하나의 입력 데이터를 인공 신경망에 입력하여 생성된 출력 값이 해당 학습 데이터에 표지된 값에 근접하도록 전술한 함수들(F1, F2, 히든 레이어 사이의 함수들 등)을 갱신하는 과정을 반복하여 수행함으로써 인공 신경망을 학습시킬 수 있다. 가령 본 발명의 일 실시예에 따른 서버(100)는 복수의 리소스 서버(300) 각각이 각각에 대한 분할 학습 데이터로부터 산출한 오차에 기초하여 전술한 함수들을 갱신하는 과정을 반복하여 수행함으로써 인공 신경망을 학습시킬 수 있다.The server 100 and/or the resource server 300 according to an embodiment of the present invention uses a plurality of learning data to input any one input data into an artificial neural network, and an output value generated is displayed on the corresponding learning data The artificial neural network can be trained by repeating the process of updating the above-described functions (F1, F2, functions between hidden layers, etc.) to approximate the obtained values. For example, the server 100 according to an embodiment of the present invention may perform an artificial neural network by repeatedly performing a process of updating the functions described above based on an error calculated by each of the plurality of resource servers 300 from the divided learning data for each. Can be learned.

이때 본 발명의 일 실시예에 따른 서버(100) 및/또는 리소스 서버(300)는 역전파(Back Propagation) 알고리즘에 따라 전술한 함수들(F1, F2, 히든 레이어 사이의 함수들 등)을 갱신할 수 있다. 다만 이는 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아니다.At this time, the server 100 and/or the resource server 300 according to an embodiment of the present invention updates the above-described functions (F1, F2, functions between hidden layers, etc.) according to a back propagation algorithm. can do. However, this is exemplary and the spirit of the present invention is not limited thereto.

도 4 및 도 5에서 설명한 인공 신경망의 종류 및/또는 구조는 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아니다. 따라서 다양한 종류의 모델의 인공 신경망이 명세서를 통하여 설명하는 '인공 신경망'에 해당할 수 있다. The types and/or structures of the artificial neural networks described in FIGS. 4 and 5 are exemplary and the spirit of the present invention is not limited thereto. Accordingly, artificial neural networks of various types of models may correspond to'artificial neural networks' described through the specification.

도 6은 본 발명의 일 실시예에 따른 인공 신경망 학습 시스템의 리소스 서버(300A, 300B, 300C)의 예시적인 구성을 도시한 도면이다.6 is a diagram illustrating an exemplary configuration of resource servers 300A, 300B, and 300C of an artificial neural network learning system according to an embodiment of the present invention.

도 6을 참조하면, 본 발명의 일 실시예에 따른 인공 신경망 학습 시스템은 세 개의 리소스 서버(300A, 300B, 300C)를 포함할 수 있으며, 각각의 리소스 서버(300A, 300B, 300C)는 세 개의 제3 프로세서를 포함할 수 있다. 가령 첫 번째 리소스 서버(300A)는 세 개의 제3 프로세서(340A-1, 340A-2, 340A-3)를 포함할 수 있고, 두 번째 리소스 서버(300B)도 세 개의 제3 프로세서(340B-1, 340B-2, 340B-3)를 포함할 수 있다. 물론 세 번째 리소스 서버(300C) 또한 세 개의 제3 프로세서(340C-1, 340C-2, 340C-3)를 포함할 수 있다.Referring to Figure 6, the artificial neural network learning system according to an embodiment of the present invention may include three resource servers (300A, 300B, 300C), each resource server (300A, 300B, 300C) is three It may include a third processor. For example, the first resource server 300A may include three third processors 340A-1, 340A-2, and 340A-3, and the second resource server 300B also includes three third processors 340B-1 , 340B-2, 340B-3). Of course, the third resource server 300C may also include three third processors 340C-1, 340C-2, and 340C-3.

이하에서는 설명의 편의를 위하여, 인공 신경망 학습 시스템이 도 6에 도시된 바와 같은 리소스 서버(300A, 300B, 300C)들을 포함하는 것을 전제로, 서버(100)가 복수의 연산 리소스를 이용하여 인공 신경망을 학습하는 방법을 설명한다. 또한 리소스 서버(300A, 300B, 300C) 각각에 구비되는 제3 프로세서들 각각이 구분되는 '연산 리소스'로써 사용됨을 전제로 설명한다. 즉 본 발명의 일 실시예에 따른 인공 신경망 학습 시스템이 총 9개의 연산 리소스를 포함하는 것을 전제로 설명한다.Hereinafter, for convenience of explanation, the artificial neural network learning system uses a plurality of computational resources on the assumption that the artificial neural network learning system includes resource servers 300A, 300B, and 300C as shown in FIG. 6. Explains how to learn. In addition, it is assumed that each of the third processors provided in each of the resource servers 300A, 300B, and 300C is used as a distinct'computation resource'. That is, it will be described on the premise that the artificial neural network learning system according to an embodiment of the present invention includes a total of nine computational resources.

전술한 가정 하에, 본 발명의 일 실시예에 따른 서버(100)는 제1 인공 신경망의 학습에 사용할 연산 리소스의 수량을 결정할 수 있다.Under the assumptions described above, the server 100 according to an embodiment of the present invention may determine the number of computational resources to be used for learning the first artificial neural network.

가령 본 발명의 일 실시예에 따른 서버(100)는 전술한 사용자 단말(200)에 리소스의 수량을 선택하기 위한 인터페이스를 제공하고, 사용자 단말(200)로부터 인터페이스에 대한 선택 데이터(예를 들어 '3개')를 수신하여 제1 인공 신경망의 학습에 사용되는 연산 리소스의 수량을 결정할 수 있다. 이때 본 발명의 일 실시예에 따른 서버(100)는 전체 리소스의 수량에 관한 정보 및/또는 가용 리소스의 수량에 관한 정보를 사용자 단말(200)에 함께 제공할 수 있다.For example, the server 100 according to an embodiment of the present invention provides an interface for selecting the quantity of resources to the aforementioned user terminal 200, and selection data for the interface from the user terminal 200 (for example, ' 3') to determine the number of computational resources used to train the first artificial neural network. At this time, the server 100 according to an embodiment of the present invention may provide information on the quantity of all resources and/or information on the quantity of available resources to the user terminal 200.

또한 본 발명의 일 실시예에 따른 서버(100)는 복수의 연산 리소스의 작업 스케쥴(Schedule)을 참조하여 제1 인공 신경망의 학습에 사용되는 연산 리소스의 수량을 결정할 수도 있다. 예를 들어, 본 발명의 일 실시예에 따른 서버(100)는 도 6에 도시된 바와 같은 9개의 제3 프로세서(340A-1, 340A-2, 340A-3, 340B-1, 340B-2, 340B-3, 340C-1, 340C-2, 340C-3)의 작업 스케쥴을 참조하여 제1 인공 신경망의 학습에 사용되는 연산 리소스의 수량을 결정할 수 있다.In addition, the server 100 according to an embodiment of the present invention may determine the number of computational resources used for the learning of the first artificial neural network by referring to a schedule of a plurality of computational resources. For example, the server 100 according to an embodiment of the present invention includes nine third processors 340A-1, 340A-2, 340A-3, 340B-1, 340B-2, as shown in FIG. 340B-3, 340C-1, 340C-2, and 340C-3) may be used to determine the number of computational resources used to train the first artificial neural network.

또한 본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 수신된 선택 데이터 및 복수의 연산 리소스의 작업 스케쥴 모두를 참조하여 제1 인공 신경망의 학습에 사용되는 연산 리소스의 수량을 결정할 수도 있다.In addition, the server 100 according to an embodiment of the present invention refers to both the selection data received from the user terminal 200 and the work schedules of the plurality of computational resources to determine the number of computational resources used for learning the first artificial neural network. You can also decide.

한편 본 발명에서 '제1 인공 신경망' 및 '제2 인공 신경망'은 동일한 신경망을 시간의 흐름에 따른 갱신 정도에 따라 단지 구분되도록 명명한 것일 수 있다. 가령 제1 인공 신경망은 제1 시점에서의 인공 신경망을 의미하고, 제2 인공 신경망은 제1 시점 이후의 제2 시점에서의 인공 신경망을 의미할 수 있다.Meanwhile, in the present invention, the'first artificial neural network' and the'second artificial neural network' may be named so that the same neural network is only classified according to the degree of update over time. For example, the first artificial neural network may mean an artificial neural network at a first time point, and the second artificial neural network may mean an artificial neural network at a second time point after the first time point.

본 발명의 일 실시예에 따른 서버(100)는 전술한 과정에 의해서 결정된 연산 리소스의 수량에 기초하여, 제1 인공 신경망의 제1 학습에 사용할 적어도 하나의 연산 리소스를 선택할 수 있다. 가령 전술한 과정에 의해서 결정된 연산 리소스의 수량이 3개인 경우, 서버(100)는 첫 번째 리소스 서버(300A)의 두 개의 제3 프로세서(340A-1, 340A-2) 및 세 번째 리소스 서버(300C)의 한 개의 제3 프로세서(340C-1)를 연산 리소스로써 선택할 수 있다. 이 때에도 본 발명의 일 실시예에 따른 서버(100)는 복수의 연산 리소스의 작업 스케쥴(Schedule)을 참조하여 제1 인공 신경망의 제1 학습에 사용할 적어도 하나의 연산 리소스를 선택할 수 있다.The server 100 according to an embodiment of the present invention may select at least one computing resource to be used for the first learning of the first artificial neural network based on the number of computing resources determined by the above-described process. For example, when the number of computational resources determined by the above-described process is three, the server 100 includes two third processors 340A-1 and 340A-2 of the first resource server 300A and a third resource server 300C. ) Can select one third processor 340C-1 as a computational resource. At this time, the server 100 according to an embodiment of the present invention may select at least one computational resource to be used for the first learning of the first artificial neural network by referring to a schedule of a plurality of computational resources.

이와 같이 본 발명에서 연산 리소스를 선택하는 것은, 연산을 수행할 구체적인 하드웨어를 선택하는 것을 의미할 수 있다.In this way, selecting the computing resource in the present invention may mean selecting specific hardware to perform the calculation.

본 발명의 일 실시예에 따른 서버(100)는 전술한 과정에 의해 선택된 연산 리소스 각각이 제1 인공 신경망의 제1 학습에 사용하는 분할 학습 데이터를 결정할 수 있다. 이때 서버(100)는 제1 학습에 사용되는 전체 학습 데이터의 수량을 참조하여 분할 학습 데이터를 결정할 수 있다.The server 100 according to an embodiment of the present invention may determine split learning data used by each of the computational resources selected by the above-described process for the first learning of the first artificial neural network. At this time, the server 100 may determine the divided learning data by referring to the total number of learning data used for the first learning.

도 7은 본 발명의 일 실시예에 따른 서버(100)가 전체 학습 데이터(510)로부터 분할 학습 데이터(511, 512, 513)를 결정하는 과정을 설명하기 위한 도면이다.7 is a diagram for explaining a process in which the server 100 according to an embodiment of the present invention determines the divided learning data 511, 512, and 513 from the entire learning data 510.

설명의 편의를 위하여, 서버(100)가 N 개의 학습 데이터를 포함하는 전체 학습 데이터(510)로부터 3개의 연산 리소스(예를 들어 첫 번째 리소스 서버(300A)의 두 개의 제3 프로세서(340A-1, 340A-2) 및 세 번째 리소스 서버(300C)의 한 개의 제3 프로세서(340C-1))를 위한 분할 학습 데이터(511, 512, 513)를 결정하는 것을 전제로 설명한다.For convenience of explanation, the server 100 may include two third processors 340A-1 of three computational resources (for example, the first resource server 300A) from the entire training data 510 including N training data. , 340A-2) and split learning data 511, 512, 513 for one third processor 340C-1 of the third resource server 300C.

전술한 가정 하에, 본 발명의 일 실시예에 따른 서버(100)는 제1 연산 리소스(예를 들어 첫 번째 리소스 서버(300A)의 제3 프로세서(340A-1))가 N 개의 전체 학습 데이터(510)중 N1개의 제1 분할 학습 데이터(511)를 제1 학습에 사용하도록 결정할 수 있다. 바꾸어 말하면, 서버(100)는 제1 연산 리소스가 N 개의 전체 학습 데이터(510)중 N1개의 학습 데이터만을 제1 학습에 사용하도록 결정할 수 있다.Under the assumptions described above, the server 100 according to an embodiment of the present invention includes the first computational resource (for example, the third processor 340A-1 of the first resource server 300A) N total learning data ( 510), it may be determined to use N1 first divided learning data 511 for the first learning. In other words, the server 100 may determine that the first computational resource uses only N1 learning data among the N total learning data 510 for the first learning.

이와 유사하게, 본 발명의 일 실시예에 따른 서버(100)는 제2 연산 리소스(예를 들어 첫 번째 리소스 서버(300A)의 제3 프로세서(340A-2))가 N 개의 전체 학습 데이터(510)중 N2개의 제2 분할 학습 데이터(512)를 제1 학습에 사용하도록 결정할 수 있다. Similarly, the server 100 according to an embodiment of the present invention includes a second computational resource (eg, a third processor 340A-2 of the first resource server 300A) having N total learning data 510. ), it may be determined to use N2 second divided learning data 512 for the first learning.

물론 본 발명의 일 실시예에 따른 서버(100)는 제3 연산 리소스(예를 들어 세 번째 리소스 서버(300A)의 제3 프로세서(340C-1))가 N 개의 전체 학습 데이터(510)중 N3개의 제3 분할 학습 데이터(513)를 제1 학습에 사용하도록 결정할 수 있다. Of course, the server 100 according to an embodiment of the present invention includes a third computational resource (for example, a third processor 340C-1 of the third resource server 300A) N3 of the N total learning data 510 It may be determined to use the 3rd divided learning data 513 for the first learning.

이때 제1 분할 학습 데이터(511), 제2 분할 학습 데이터(512) 및 제3 분할 학습 데이터(513)는 서로 중복되지 않는 학습 데이터일 수 있다. 바꾸어 말하면, 제1 분할 학습 데이터(511), 제2 분할 학습 데이터(512) 및 제3 분할 학습 데이터(513) 각각은 전체 학습 데이터(510)의 일부분으로, 서로 중복되지 않는 데이터 일 수 있다.In this case, the first divided learning data 511, the second divided learning data 512, and the third divided learning data 513 may be learning data that does not overlap with each other. In other words, each of the first divided learning data 511, the second divided learning data 512, and the third divided learning data 513 may be data that are not overlapped with each other as part of the entire learning data 510.

본 발명의 일 실시예에 따른 서버(100)는 상술한 과정에 의해서 결정된 적어도 하나의 연산 리소스가, 각각의 연산 리소스에 대한 분할 학습 데이터를 사용하여 제1 인공 신경망의 오차를 산출하고, 산출된 오차를 반환하도록 요청할 수 있다. The server 100 according to an embodiment of the present invention calculates an error of the first artificial neural network using at least one computational resource determined by the above-described process, using split learning data for each computational resource, and calculating You can request to return the error.

이때 각각의 연산 리소스가 오차의 산출에 사용하는 '제1 인공 신경망'은 서버(100)가 전술한 과정에 의해 결정된 분할 학습 데이터와 함께 각각의 연산 리소스에 전달한 것이거나, 분할 학습 데이터의 전달 이전에 별도로 전달한 것일 수 있다.At this time, the'first artificial neural network' that each computational resource uses to calculate the error is that the server 100 delivers to each computational resource together with the divided learning data determined by the above-described process, or before the transmission of the divided learning data. It may be delivered separately.

도 8은 각각의 연산 리소스가 서버(100)의 제어에 따라 분할 학습 데이터(511, 512, 513)로부터 오차(711, 712, 713)를 산출하는 과정을 설명하기 위한 도면이다.8 is a diagram for explaining a process of calculating errors 711, 712, and 713 from each of the divided learning data 511, 512, and 513 under the control of the server 100.

설명의 편의를 위하여, 도 7에서 설명한 과정에 따라 3개의 연산 리소스에 대한 분할 학습 데이터(511, 512, 513)의 결정이 완료된 상태이며, 제1 인공 신경망(610A, 610B, 610C)이 서버(100)로부터 각각의 연산 리소스로 전달된 상태라고 가정하여 설명한다.For convenience of explanation, the determination of the split learning data 511, 512, 513 for the three computational resources is completed according to the process described in FIG. 7, and the first artificial neural networks 610A, 610B, 610C are the server ( It will be described on the assumption that it is a state transferred from 100) to each computational resource.

전술한 가정 하에, 본 발명의 일 실시예에 따른 3개의 연산 리소스는 서버(100)의 제어에 따라 각각의 분할 학습 데이터에 대한 오차를 산출할 수 있다. 이를 보다 상세히 살펴보면, 본 발명의 일 실시예에 따른 연산 리소스는 분할 학습 데이터에 포함된 입력 데이터를 제1 인공 신경망(610A, 610B, 610C)에 입력하여 출력 데이터를 생성하고, 생성된 출력 데이터와 분할 학습 데이터에 포함된 출력 데이터를 비교하여 오차를 산출할 수 있다. Under the assumptions described above, three computational resources according to an embodiment of the present invention may calculate an error for each divided learning data under the control of the server 100. Looking at this in more detail, the computational resource according to an embodiment of the present invention generates input data by inputting the input data included in the split learning data to the first artificial neural networks 610A, 610B, and 610C, and the generated output data and The error can be calculated by comparing the output data included in the divided learning data.

가령 분할 학습 데이터가 N1개의 학습 데이터를 포함하는 경우, 연산 리소스는 총 N1개의 오차를 산출할 수 있다. (즉 각각의 학습 데이터에 대한 오차를 산출할 수 있다.)For example, when the divided learning data includes N1 learning data, the computational resource may calculate a total of N1 errors. (In other words, the error for each learning data can be calculated.)

한편 생성된 출력 데이터 및 학습 데이터에 포함된 출력 데이터가 벡터 형태의 데이터인 경우, 연산 리소스는 벡터의 차이(또는 거리)에 기초하여 학습 데이터의 오차를 산출할 수 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.On the other hand, when the generated output data and the output data included in the training data are vector data, the calculation resource may calculate an error of the training data based on the difference (or distance) of the vector. However, this is an example, and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 연산 리소스는 산출된 오차를 서버(100)로 반환할 수 있다. 바꾸어 말하면, 본 발명의 일 실시예에 따른 서버(100)는 연산 리소스로부터 오차를 수신할 수 있다.The computational resource according to an embodiment of the present invention may return the calculated error to the server 100. In other words, the server 100 according to an embodiment of the present invention may receive an error from a computational resource.

한편 각각의 연산 리소스에 의한 오차의 산출은 병렬적으로 수행될 수 있다. 가령 3개의 연산 리소스 각각이 분할 학습 데이터(511, 512, 513)를 이용하여 오차를 산출하는 과정은 병렬적으로 수행될 수 있다.On the other hand, the calculation of the error by each computational resource can be performed in parallel. For example, a process in which each of the three computational resources calculates an error using the divided learning data 511, 512, or 513 may be performed in parallel.

이어서 본 발명의 일 실시예에 따른 서버(100)는 적어도 하나의 연산 리소스로부터 반환된 오차에 기초하여 제1 오차를 산출할 수 있다. Subsequently, the server 100 according to an embodiment of the present invention may calculate a first error based on an error returned from at least one computing resource.

도 9는 본 발명의 일 실시예에 따른 서버(100)가 제1 오차(710)를 산출하고, 산출된 제1 오차(710)에 기초하여 제1 인공 신경망(610)을 갱신하여 제2 인공 신경망(620)을 생성 하는 과정을 설명하기 위한 도면이다.9 is a server 100 according to an embodiment of the present invention calculates the first error 710, and updates the first artificial neural network 610 based on the calculated first error 710, the second artificial A diagram for explaining the process of generating the neural network 620.

설명의 편의를 위해서, 도 8에서 설명한 과정에 따라 3개의 연산 리소스 각각이 오차(711, 712, 713)를 산출하여 반환한 상태라고 가정하여 설명한다.For convenience of description, it will be described on the assumption that each of the three computational resources is calculated and returned with errors 711, 712, and 713 according to the process described in FIG.

전술한 가정 하에, 본 발명의 일 실시예에 따른 서버(100)는 소정의 방식에 따라 적어도 하나의 연산 리소스로부터 반환된 오차(711, 712, 713)의 대표값 제1 오차(710)로 산출할 수 있다. 가령 서버(100)는 오차(711, 712, 713)의 평균값을 제1 오차(710)로 결정할 수 있다. 이때 오차(711)는 N1개의 학습 데이터에 대한 N1개의 오차를 포함하고, 오차(712)는 N2개의 학습 데이터에 대한 N2개의 오차를 포함하고, 오차(713)는 N3개의 학습 데이터에 대한 N3개의 오차를 포함할 수 있다. 따라서 제1 오차(710)는 N(N=N1+N2+N3)개의 학습 데이터의 오차의 평균값일 수 있다. 다만 이와 같은 제1 오차 결정 방식은 예시적인것으로, 본 발명의 사상이 이에 한정되는 것은 아니다.Under the assumptions described above, the server 100 according to an embodiment of the present invention calculates the first error 710 as the representative value of the errors 711, 712, and 713 returned from at least one computing resource according to a predetermined method. can do. For example, the server 100 may determine the average value of the errors 711, 712, and 713 as the first error 710. At this time, the error 711 includes N1 errors for the N1 learning data, the error 712 includes N2 errors for the N2 training data, and the error 713 N3 for the N3 training data Error. Therefore, the first error 710 may be an average value of errors of N (N=N1+N2+N3) learning data. However, the first error determination method is exemplary, and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 서버(100)는 상술한 과정에 의해서 산출된 제1 오차에 기초하여, 제1 인공 신경망(610)을 갱신하여 제2 인공 신경망(620)을 생성 할 수 있다. 가령 서버(100)는 오차 역전파(Back Propagation) 알고리즘에 따라 인공 신경망을 구성하는 적어도 하나의 계수들을 업데이트 하는 방식으로 제1 인공 신경망(610)을 갱신하여 제2 인공 신경망(620)을 생성할 수 있다.The server 100 according to an embodiment of the present invention may generate the second artificial neural network 620 by updating the first artificial neural network 610 based on the first error calculated by the above-described process. For example, the server 100 updates the first artificial neural network 610 in a manner of updating at least one coefficient constituting the artificial neural network according to an error back propagation algorithm to generate the second artificial neural network 620. Can.

본 발명의 일 실시예에 따른 서버(100)는 생성된 제2 인공 신경망(620)에 대해서 전술한 일련의 과정을 반복하여 수행하여 보다 더 학습된 인공 신경망(미도시)들을 생성할 수 있다. The server 100 according to an embodiment of the present invention may generate more learned artificial neural networks (not shown) by repeatedly performing the above-described series of processes on the generated second artificial neural network 620.

바꾸어 말하면, 서버(100)는 제2 인공 신경망(620)을 적어도 하나의 연산 리소스 각각에 전송하고, 적어도 하나의 연산 리소스가 제1 학습 이후의 제2 학습에 따른 분할 학습 데이터를 사용하여 제2 인공 신경망(620)의 오차를 산출하고, 산출된 오차를 반환하도록 요청할 수 있다. In other words, the server 100 transmits the second artificial neural network 620 to each of the at least one computing resource, and the at least one computing resource uses the divided learning data according to the second learning after the first learning to the second It is possible to calculate the error of the artificial neural network 620 and request to return the calculated error.

또한 서버(100)는 적어도 하나의 연산 리소스로부터 반환된 오차에 기초하여 제2 오차를 산출하고, 산출된 제2 오차에 기초하여 제2 인공 신경망(620)을 갱신하여 제3 인공 신경망을 생성할 수 있다.In addition, the server 100 calculates a second error based on the error returned from at least one computing resource, and updates the second artificial neural network 620 based on the calculated second error to generate a third artificial neural network. Can.

종래기술에 따르면 학습 데이터를 이용한 인공 신경망의 학습에 있어서, 학습 데이터는 하나의 연산 리소스에 의해서만 사용되어 학습에 소요되는 시간을 단축시킬 수 없는 문제점이 있었다.According to the prior art, in learning an artificial neural network using learning data, there is a problem in that learning data is used only by one computational resource to shorten the time required for learning.

그러나 본 발명의 일 실시예에 따른 서버(100)는 소정의 양의 학습 데이터(즉 전체 학습 데이터)를 복수의 연산 리소스에 분배하여 학습 시키고, 그 결과를 다시 수집하여 오차를 산출함으로써 동일한 결과의 산출에 소요되는 시간을 비약적으로 단축시킬 수 있다. However, the server 100 according to an embodiment of the present invention distributes a predetermined amount of learning data (that is, all learning data) to a plurality of computational resources to learn, collects the results again, and calculates an error to obtain the same result. The time required for calculation can be drastically shortened.

도 10은 본 발명의 일 실시예에 따른 서버(100)에 의해 수행되는 인공 신경망 학습 방법을 설명하기 위한 흐름도이다. 이하에서는 도 1 내지 도 9를 함께 참조하여 설명하되, 도 1 내지 도 9에서 설명한 내용과 중복되는 내용의 설명은 생략한다.10 is a flowchart illustrating an artificial neural network learning method performed by the server 100 according to an embodiment of the present invention. Hereinafter, description will be given with reference to FIGS. 1 to 9, but descriptions of contents overlapping with those described in FIGS. 1 to 9 will be omitted.

본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 연산 리소스의 수량을 포함하는 인공 신경망의 학습 정보를 수신할 수 있다.(S101)The server 100 according to an embodiment of the present invention may receive learning information of an artificial neural network including a quantity of computational resources from the user terminal 200 (S101).

가령 본 발명의 일 실시예에 따른 서버(100)는 전술한 사용자 단말(200)에 리소스의 수량을 선택하기 위한 인터페이스를 제공하고, 사용자 단말(200)로부터 인터페이스에 대한 선택 데이터(예를 들어 '3개')를 수신할 수 있다. 이때 본 발명의 일 실시예에 따른 서버(100)는 전체 리소스의 수량에 관한 정보 및/또는 가용 리소스의 수량에 관한 정보를 사용자 단말(200)에 함께 제공할 수 있다.For example, the server 100 according to an embodiment of the present invention provides an interface for selecting the quantity of resources to the aforementioned user terminal 200, and selection data for the interface from the user terminal 200 (for example, ' 3'). At this time, the server 100 according to an embodiment of the present invention may provide information on the quantity of all resources and/or information on the quantity of available resources to the user terminal 200.

본 발명의 일 실시예에 따른 서버(100)는 단계 S101에서 수신한 인공 신경망의 학습 정보를 참조하여, 제1 인공 신경망을 생성할 수 있다.(S102) 가령 본 발명의 일 실시예에 따른 서버(100)는 인공 신경망의 학습 정보에 포함된 파라미터 셋을 참조하여, 제1 인공 신경망을 생성할 수 있다. 이때 파라미터 셋에는 인공신경망의 구조에 관한 정보가 포함되어있을 수 있다.The server 100 according to an embodiment of the present invention may generate a first artificial neural network by referring to the learning information of the artificial neural network received in step S101. (S102) For example, the server according to an embodiment of the present invention In operation 100, a first artificial neural network may be generated by referring to the parameter set included in the learning information of the artificial neural network. At this time, the parameter set may include information about the structure of the artificial neural network.

본 발명의 일 실시예에 따른 서버(100)는 단계 S101에서 수신한 인공 신경망의 학습 정보를 참조하여, 단계 S102에서 생성한 제1 인공 신경망의 학습에 사용되는 연산 리소스의 수량을 결정할 수 있다.(S103)The server 100 according to an embodiment of the present invention may determine the quantity of computational resources used for learning the first artificial neural network generated in step S102 by referring to the learning information of the artificial neural network received in step S101. (S103)

선택적 실시예에서, 본 발명의 일 실시예에 따른 서버(100)는 복수의 연산 리소스의 작업 스케쥴(Schedule)을 참조하여 제1 인공 신경망의 학습에 사용되는 연산 리소스의 수량을 결정할 수도 있다. In an optional embodiment, the server 100 according to an embodiment of the present invention may determine the number of computational resources used for learning of the first artificial neural network by referring to a schedule of a plurality of computational resources.

예를 들어, 본 발명의 일 실시예에 따른 서버(100)는 도 6에 도시된 바와 같은 9개의 제3 프로세서(340A-1, 340A-2, 340A-3, 340B-1, 340B-2, 340B-3, 340C-1, 340C-2, 340C-3)의 작업 스케쥴을 참조하여 제1 인공 신경망의 학습에 사용되는 연산 리소스의 수량을 결정할 수 있다.For example, the server 100 according to an embodiment of the present invention includes nine third processors 340A-1, 340A-2, 340A-3, 340B-1, 340B-2, as shown in FIG. 340B-3, 340C-1, 340C-2, and 340C-3) may be used to determine the number of computational resources used to train the first artificial neural network.

또한 본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 수신된 선택 데이터 및 복수의 연산 리소스의 작업 스케쥴 모두를 참조하여 제1 인공 신경망의 학습에 사용되는 연산 리소스의 수량을 결정할 수도 있다.In addition, the server 100 according to an embodiment of the present invention refers to both the selection data received from the user terminal 200 and the work schedules of the plurality of computational resources to determine the number of computational resources used for learning the first artificial neural network. You can also decide.

한편 본 발명에서 '제1 인공 신경망' 및 '제2 인공 신경망'은 동일한 신경망을 시간의 흐름에 따른 갱신 정도에 따라 단지 구분되도록 명명한 것일 수 있다. 가령 제1 인공 신경망은 제1 시점에서의 인공 신경망을 의미하고, 제2 인공 신경망은 제1 시점 이후의 제2 시점에서의 인공 신경망을 의미할 수 있다.Meanwhile, in the present invention, the'first artificial neural network' and the'second artificial neural network' may be named so that the same neural network is only classified according to the degree of update over time. For example, the first artificial neural network may mean an artificial neural network at a first time point, and the second artificial neural network may mean an artificial neural network at a second time point after the first time point.

본 발명의 일 실시예에 따른 서버(100)는 전술한 과정에 의해서 결정된 연산 리소스의 수량에 기초하여, 제1 인공 신경망의 제1 학습에 사용할 적어도 하나의 연산 리소스를 선택할 수 있다.(S104)The server 100 according to an embodiment of the present invention may select at least one computing resource to be used for the first learning of the first artificial neural network based on the number of computing resources determined by the above-described process. (S104)

가령 전술한 과정에 의해서 결정된 연산 리소스의 수량이 3개인 경우, 서버(100)는 첫 번째 리소스 서버(300A)의 두 개의 제3 프로세서(340A-1, 340A-2) 및 세 번째 리소스 서버(300C)의 한 개의 제3 프로세서(340C-1)를 연산 리소스로써 선택할 수 있다. 이 때에도 본 발명의 일 실시예에 따른 서버(100)는 복수의 연산 리소스의 작업 스케쥴(Schedule)을 참조하여 제1 인공 신경망의 제1 학습에 사용할 적어도 하나의 연산 리소스를 선택할 수 있다. For example, when the number of computational resources determined by the above-described process is three, the server 100 includes two third processors 340A-1 and 340A-2 of the first resource server 300A and a third resource server 300C. ) Can select one third processor 340C-1 as a computational resource. At this time, the server 100 according to an embodiment of the present invention may select at least one computational resource to be used for the first learning of the first artificial neural network by referring to a schedule of a plurality of computational resources.

이와 같이 본 발명에서 연산 리소스를 선택하는 것은, 연산을 수행할 구체적인 하드웨어를 선택하는 것을 의미할 수 있다.In this way, selecting the computing resource in the present invention may mean selecting specific hardware to perform the calculation.

본 발명의 일 실시예에 따른 서버(100)는 전술한 과정에 의해 선택된 연산 리소스 각각이 제1 인공 신경망의 제1 학습에 사용하는 분할 학습 데이터를 결정할 수 있다.(S105) 이때 서버(100)는 제1 학습에 사용되는 전체 학습 데이터의 수량을 참조하여 분할 학습 데이터를 결정할 수 있다.The server 100 according to an embodiment of the present invention may determine divided learning data used by each of the computational resources selected by the above-described process for the first learning of the first artificial neural network. (S105) At this time, the server 100 May determine divided learning data by referring to the total number of learning data used for the first learning.

다시 도 7을 참조하여, 본 발명의 일 실시예에 따른 서버(100)가 전체 학습 데이터(510)로부터 분할 학습 데이터(511, 512, 513)를 결정하는 과정을 설명한다.Referring again to FIG. 7, a process in which the server 100 according to an embodiment of the present invention determines the divided learning data 511, 512, and 513 from the entire learning data 510 will be described.

설명의 편의를 위하여, 서버(100)가 N 개의 학습 데이터를 포함하는 전체 학습 데이터(510)로부터 3개의 연산 리소스(예를 들어 첫 번째 리소스 서버(300A)의 두 개의 제3 프로세서(340A-1, 340A-2) 및 세 번째 리소스 서버(300C)의 한 개의 제3 프로세서(340C-1))를 위한 분할 학습 데이터(511, 512, 513)를 결정하는 것을 전제로 설명한다.For convenience of explanation, the server 100 may include two third processors 340A-1 of three computational resources (for example, the first resource server 300A) from the entire training data 510 including N training data. , 340A-2) and split learning data 511, 512, 513 for one third processor 340C-1 of the third resource server 300C.

전술한 가정 하에, 본 발명의 일 실시예에 따른 서버(100)는 제1 연산 리소스(예를 들어 첫 번째 리소스 서버(300A)의 제3 프로세서(340A-1))가 N 개의 전체 학습 데이터(510)중 N1개의 제1 분할 학습 데이터(511)를 제1 학습에 사용하도록 결정할 수 있다. 바꾸어 말하면, 서버(100)는 제1 연산 리소스가 N 개의 전체 학습 데이터(510)중 N1개의 학습 데이터만을 제1 학습에 사용하도록 결정할 수 있다.Under the assumptions described above, the server 100 according to an embodiment of the present invention includes the first computational resource (for example, the third processor 340A-1 of the first resource server 300A) N total learning data ( 510), it may be determined to use N1 first divided learning data 511 for the first learning. In other words, the server 100 may determine that the first computational resource uses only N1 learning data among the N total learning data 510 for the first learning.

이와 유사하게, 본 발명의 일 실시예에 따른 서버(100)는 제2 연산 리소스(예를 들어 첫 번째 리소스 서버(300A)의 제3 프로세서(340A-2))가 N 개의 전체 학습 데이터(510)중 N2개의 제2 분할 학습 데이터(512)를 제1 학습에 사용하도록 결정할 수 있다. Similarly, the server 100 according to an embodiment of the present invention includes a second computational resource (eg, a third processor 340A-2 of the first resource server 300A) having N total learning data 510. ), it may be determined to use N2 second divided learning data 512 for the first learning.

물론 본 발명의 일 실시예에 따른 서버(100)는 제3 연산 리소스(예를 들어 세 번째 리소스 서버(300A)의 제3 프로세서(340C-1))가 N 개의 전체 학습 데이터(510)중 N3개의 제3 분할 학습 데이터(513)를 제1 학습에 사용하도록 결정할 수 있다. Of course, the server 100 according to an embodiment of the present invention includes a third computational resource (for example, a third processor 340C-1 of the third resource server 300A) N3 of the N total learning data 510 It may be determined to use the 3rd divided learning data 513 for the first learning.

이때 제1 분할 학습 데이터(511), 제2 분할 학습 데이터(512) 및 제3 분할 학습 데이터(513)는 서로 중복되지 않는 학습 데이터일 수 있다. 바꾸어 말하면, 제1 분할 학습 데이터(511), 제2 분할 학습 데이터(512) 및 제3 분할 학습 데이터(513) 각각은 전체 학습 데이터(510)의 일부분으로, 서로 중복되지 않는 데이터 일 수 있다.In this case, the first divided learning data 511, the second divided learning data 512, and the third divided learning data 513 may be learning data that does not overlap with each other. In other words, each of the first divided learning data 511, the second divided learning data 512, and the third divided learning data 513 may be data that are not overlapped with each other as part of the entire learning data 510.

본 발명의 일 실시예에 따른 서버(100)는 단계 S105에서 결정된 적어도 하나의 연산 리소스를 포함하는 복수의 리소스 서버(300A, 300B, 300C)에게 각각의 분할 학습 데이터 및 제1 인공 신경망을 전송할 수 있다.(S106) 연산 리소스는 수신된 분할 학습 데이터를 사용하여 제1 인공 신경망의 오차를 산출하고(S107), 산출된 오차를 서버(100)로 반환할 수 있다.(S108)The server 100 according to an embodiment of the present invention may transmit the divided learning data and the first artificial neural network to a plurality of resource servers 300A, 300B, and 300C including at least one computing resource determined in step S105. (S106) The computational resource may calculate the error of the first artificial neural network using the received divided learning data (S107), and return the calculated error to the server 100 (S108).

다시 도 8을 참조하여, 각각의 연산 리소스가 서버(100)의 제어에 따라 분할 학습 데이터(511, 512, 513)로부터 오차(711, 712, 713)를 산출하는 과정을 설명한다.Referring again to FIG. 8, a process in which each computing resource calculates errors 711, 712, and 713 from the divided learning data 511, 512, 513 under the control of the server 100 will be described.

설명의 편의를 위하여, 도 7에서 설명한 과정에 따라 3개의 연산 리소스에 대한 분할 학습 데이터(511, 512, 513)의 결정이 완료된 상태이며, 제1 인공 신경망(610A, 610B, 610C)이 서버(100)로부터 각각의 연산 리소스로 전달된 상태라고 가정하여 설명한다.For convenience of explanation, the determination of the split learning data 511, 512, 513 for the three computational resources is completed according to the process described in FIG. 7, and the first artificial neural networks 610A, 610B, 610C are the server ( It will be described on the assumption that it is a state transferred from 100) to each computational resource.

전술한 가정 하에, 본 발명의 일 실시예에 따른 3개의 연산 리소스는 서버(100)의 제어에 따라 각각의 분할 학습 데이터에 대한 오차를 산출할 수 있다. 이를 보다 상세히 살펴보면, 본 발명의 일 실시예에 따른 연산 리소스는 분할 학습 데이터에 포함된 입력 데이터를 제1 인공 신경망(610A, 610B, 610C)에 입력하여 출력 데이터를 생성하고, 생성된 출력 데이터와 분할 학습 데이터에 포함된 출력 데이터를 비교하여 오차를 산출할 수 있다. Under the assumptions described above, three computational resources according to an embodiment of the present invention may calculate an error for each divided learning data under the control of the server 100. Looking at this in more detail, the computational resource according to an embodiment of the present invention generates input data by inputting the input data included in the split learning data to the first artificial neural networks 610A, 610B, and 610C, and the generated output data and The error can be calculated by comparing the output data included in the divided learning data.

가령 분할 학습 데이터가 N1개의 학습 데이터를 포함하는 경우, 연산 리소스는 총 N1개의 오차를 산출할 수 있다. (즉 각각의 학습 데이터에 대한 오차를 산출할 수 있다.)For example, when the divided learning data includes N1 learning data, the computational resource may calculate a total of N1 errors. (In other words, the error for each learning data can be calculated.)

한편 생성된 출력 데이터 및 학습 데이터에 포함된 출력 데이터가 벡터 형태의 데이터인 경우, 연산 리소스는 벡터의 차이(또는 거리)에 기초하여 학습 데이터의 오차를 산출할 수 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.On the other hand, when the generated output data and the output data included in the training data are vector data, the calculation resource may calculate an error of the training data based on the difference (or distance) of the vector. However, this is an example, and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 연산 리소스는 산출된 오차를 서버(100)로 반환할 수 있다. 바꾸어 말하면, 본 발명의 일 실시예에 따른 서버(100)는 연산 리소스로부터 오차를 수신할 수 있다.The computational resource according to an embodiment of the present invention may return the calculated error to the server 100. In other words, the server 100 according to an embodiment of the present invention may receive an error from a computational resource.

한편 각각의 연산 리소스에 의한 오차의 산출은 병렬적으로 수행될 수 있다. 가령 3개의 연산 리소스 각각이 분할 학습 데이터(511, 512, 513)를 이용하여 오차를 산출하는 과정은 병렬적으로 수행될 수 있다.On the other hand, the calculation of the error by each computational resource can be performed in parallel. For example, a process in which each of the three computational resources calculates an error using the divided learning data 511, 512, or 513 may be performed in parallel.

본 발명의 일 실시예에 따른 서버(100)는 적어도 하나의 연산 리소스로부터 반환된 오차에 기초하여 제1 오차를 산출할 수 있다.(S109) 다시 도 9를 참조하여, 본 발명의 일 실시예에 따른 서버(100)가 제1 오차(710)를 산출하고, 산출된 제1 오차(710)에 기초하여 제1 인공 신경망(610)을 갱신하여 제2 인공 신경망(620)을 생성 하는 과정을 설명한다. 설명의 편의를 위해서, 도 8에서 설명한 과정에 따라 3개의 연산 리소스 각각이 오차(711, 712, 713)를 산출하여 반환한 상태라고 가정하여 설명한다.The server 100 according to an embodiment of the present invention may calculate a first error based on an error returned from at least one computational resource. (S109) Referring again to FIG. 9, an embodiment of the present invention The process of generating a second artificial neural network 620 by updating the first artificial neural network 610 based on the calculated first error 710 by the server 100 according to the first error 710 Explain. For convenience of description, it will be described on the assumption that each of the three computational resources is calculated and returned with errors 711, 712, and 713 according to the process described in FIG.

전술한 가정 하에, 본 발명의 일 실시예에 따른 서버(100)는 소정의 방식에 따라 적어도 하나의 연산 리소스로부터 반환된 오차(711, 712, 713)의 대표값 제1 오차(710)로 산출할 수 있다. 가령 서버(100)는 오차(711, 712, 713)의 평균값을 제1 오차(710)로 결정할 수 있다. 이때 오차(711)는 N1개의 학습 데이터에 대한 N1개의 오차를 포함하고, 오차(712)는 N2개의 학습 데이터에 대한 N2개의 오차를 포함하고, 오차(713)는 N3개의 학습 데이터에 대한 N3개의 오차를 포함할 수 있다. 따라서 제1 오차(710)는 N(N=N1+N2+N3)개의 학습 데이터의 오차의 평균값일 수 있다. 다만 이와 같은 제1 오차 결정 방식은 예시적인것으로, 본 발명의 사상이 이에 한정되는 것은 아니다.Under the assumptions described above, the server 100 according to an embodiment of the present invention calculates the first error 710 as the representative value of the errors 711, 712, and 713 returned from at least one computing resource according to a predetermined method. can do. For example, the server 100 may determine the average value of the errors 711, 712, and 713 as the first error 710. At this time, the error 711 includes N1 errors for the N1 learning data, the error 712 includes N2 errors for the N2 training data, and the error 713 N3 for the N3 training data Error. Therefore, the first error 710 may be an average value of errors of N (N=N1+N2+N3) learning data. However, the first error determination method is exemplary, and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 서버(100)는 상술한 과정에 의해서 산출된 제1 오차에 기초하여, 제1 인공 신경망(610)을 갱신하여 제2 인공 신경망(620)을 생성 할 수 있다.(S110) 가령 서버(100)는 오차 역전파(Back Propagation) 알고리즘에 따라 인공 신경망을 구성하는 적어도 하나의 계수들을 업데이트 하는 방식으로 제1 인공 신경망(610)을 갱신하여 제2 인공 신경망(620)을 생성할 수 있다.The server 100 according to an embodiment of the present invention may generate the second artificial neural network 620 by updating the first artificial neural network 610 based on the first error calculated by the above-described process. (S110) For example, the server 100 updates the first artificial neural network 610 by updating at least one coefficient constituting the artificial neural network according to an error back propagation algorithm, so that the second artificial neural network 620 You can create

본 발명의 일 실시예에 따른 서버(100)는 생성된 제2 인공 신경망(620)에 대해서 전술한 일련의 과정을 반복하여 수행하여 보다 더 학습된 인공 신경망(미도시)들을 생성할 수 있다. The server 100 according to an embodiment of the present invention may generate more learned artificial neural networks (not shown) by repeatedly performing the above-described series of processes on the generated second artificial neural network 620.

바꾸어 말하면, 서버(100)는 제2 인공 신경망(620)을 적어도 하나의 연산 리소스 각각에 전송하고(S111), 적어도 하나의 연산 리소스가 제1 학습 이후의 제2 학습에 따른 분할 학습 데이터를 사용하여 제2 인공 신경망(620)의 오차를 산출하고(S112), 산출된 오차를 반환(S113)하도록 요청할 수 있다. In other words, the server 100 transmits the second artificial neural network 620 to each of the at least one computing resource (S111), and the at least one computing resource uses split learning data according to the second learning after the first learning. By calculating the error of the second artificial neural network 620 (S112), it can be requested to return the calculated error (S113).

또한 서버(100)는 적어도 하나의 연산 리소스로부터 반환된 오차에 기초하여 제2 오차를 산출하고, 산출된 제2 오차에 기초하여 제2 인공 신경망(620)을 갱신하여 제3 인공 신경망을 생성할 수 있다.In addition, the server 100 calculates a second error based on the error returned from at least one computing resource, and updates the second artificial neural network 620 based on the calculated second error to generate a third artificial neural network. Can.

종래기술에 따르면 학습 데이터를 이용한 인공 신경망의 학습에 있어서, 학습 데이터는 하나의 연산 리소스에 의해서만 사용되어 학습에 소요되는 시간을 단축시킬 수 없는 문제점이 있었다.According to the prior art, in learning an artificial neural network using learning data, there is a problem in that learning data is used only by one computational resource to shorten the time required for learning.

그러나 본 발명의 일 실시예에 따른 서버(100)는 소정의 양의 학습 데이터(즉 전체 학습 데이터)를 복수의 연산 리소스에 분배하여 학습 시키고, 그 결과를 다시 수집하여 오차를 산출함으로써 동일한 결과의 산출에 소요되는 시간을 비약적으로 단축시킬 수 있다. However, the server 100 according to an embodiment of the present invention distributes a predetermined amount of learning data (that is, all learning data) to a plurality of computational resources to learn, collects the results again, and calculates an error to obtain the same result. The time required for calculation can be drastically shortened.

도 11은 본 발명의 일 실시예에 따른 사용자 단말(200)에 표시되는 연산 리소스의 수량을 결정하기 위한 인터페이스가 표시된 화면(1100)의 예시이다.11 is an example of a screen 1100 on which an interface for determining a quantity of computational resources displayed on the user terminal 200 according to an embodiment of the present invention is displayed.

화면(1100)은 사용자가 연산 리소스의 수량을 입력할 수 있도록 하는 연산 리소스 수량 입력 영역(1110)과 학습과 관련된 파라미터 셋들을 입력할 수 있도록 하는 파라미터 세팅 영역(1120)을 포함할 수 있다.The screen 1100 may include a calculation resource quantity input area 1110 allowing a user to input a quantity of calculation resources and a parameter setting area 1120 allowing input of parameter sets related to learning.

본 발명의 일 실시예에 따른 연산 리소스 수량 입력 영역(1110)은 사용자가 사용하고자 하는 연산 리소스의 수량을 입력하기 위한 필드 외에, 현재 사용 가능한 연산 리소스의 수량이 표시되는 필드 및 전체 연산 리소스의 수량이 표시되는 필드를 포함할 수 있다. The calculation resource quantity input area 1110 according to an embodiment of the present invention includes a field for inputting the quantity of the calculation resource to be used by the user, a field in which the number of calculation resources currently available is displayed, and a total number of calculation resources It may include the displayed field.

사용자는 전체 연산 리소스의 수량 및/또는 가용 리소스의 수량을 참조하여 사용하고자 하는 연산 리소스의 수량을 입력할 수 있다. 사용자가 입력한 연산 리소스의 수량은 서버(100)로 전송 되어, 인공 신경망의 학습에 사용할 연산 리소스를 결정하는데 사용될 수 있다.The user may enter the quantity of the computational resource to be used by referring to the quantity of the total computational resource and/or the quantity of the available resource. The number of computational resources input by the user is transmitted to the server 100, and may be used to determine computational resources to be used for learning of an artificial neural network.

본 발명의 일 실시예에 따른 파라미터 세팅 영역(1120)은 학습과 관련된 파라미터 각각을 입력할 수 있는 복수의 입력 필드를 포함할 수 있다. The parameter setting area 1120 according to an embodiment of the present invention may include a plurality of input fields through which parameters related to learning can be input.

이상 설명된 본 발명에 따른 실시예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 저장하는 것일 수 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다. The embodiment according to the present invention described above may be implemented in the form of a computer program that can be executed through various components on a computer, and such a computer program can be recorded on a computer-readable medium. At this time, the medium may be a computer executable program. Examples of the medium include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, and magneto-optical media such as floptical disks, And program instructions including ROM, RAM, flash memory, and the like.

한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.Meanwhile, the computer program may be specially designed and configured for the present invention or may be known and available to those skilled in the computer software field. Examples of computer programs may include not only machine language codes produced by a compiler, but also high-level language codes executable by a computer using an interpreter or the like.

본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, "필수적인", "중요하게" 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.The specific implementations described in the present invention are exemplary embodiments, and do not limit the scope of the present invention in any way. For brevity of the specification, descriptions of conventional electronic configurations, control systems, software, and other functional aspects of the systems may be omitted. In addition, the connection or connection members of the lines between the components shown in the drawings are illustrative examples of functional connections and/or physical or circuit connections, and in the actual device, alternative or additional various functional connections, physical Connections, or circuit connections. In addition, unless specifically mentioned, such as "essential", "important", etc., it may not be a necessary component for the application of the present invention.

따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.Accordingly, the spirit of the present invention is not limited to the above-described embodiments, and should not be determined, and the scope of the spirit of the present invention as well as the claims to be described later, as well as all ranges that are equivalent to or equivalently changed from the claims Would belong to

100: 서버
110: 통신부
120: 제1 프로세서
130: 메모리
200: 사용자 단말
300: 리소스 서버
300A, 300B, 300C: 리소스 서버
400: 통신망
100: server
110: communication department
120: first processor
130: memory
200: user terminal
300: resource server
300A, 300B, 300C: Resource Server
400: network

Claims (5)

물리적으로 구분되는 복수의 연산 리소스를 이용하여 인공 신경망을 학습하는 방법에 있어서,
제1 인공 신경망의 학습에 사용할 연산 리소스의 수량을 결정하는 단계;
상기 연산 리소스의 수량에 기초하여, 상기 제1 인공 신경망의 제1 학습에 사용할 적어도 하나의 연산 리소스를 선택하는 단계;
상기 제1 학습에 사용하는 전체 학습 데이터의 수량을 참조하여, 상기 적어도 하나의 연산 리소스 각각이 상기 제1 학습에 사용하는 분할 학습 데이터를 결정하는 단계;
상기 적어도 하나의 연산 리소스가 상기 분할 학습 데이터를 사용하여 상기 제1 인공 신경망의 오차를 산출하고, 상기 산출된 오차를 반환하도록 요청하는 단계;
상기 적어도 하나의 연산 리소스로부터 반환된 오차에 기초하여 제1 오차를 산출하는 단계; 및
상기 제1 오차에 기초하여 상기 제1 인공 신경망을 갱신하여 제2 인공 신경망을 생성하는 단계;를 포함하는, 인공 신경망 학습 방법.
In the method of learning an artificial neural network using a plurality of physically separated computational resources,
Determining a quantity of computational resources to be used for learning the first artificial neural network;
Selecting at least one computing resource to be used for the first learning of the first artificial neural network based on the quantity of the computing resource;
Determining divided learning data that each of the at least one computational resource uses for the first learning by referring to the total number of learning data used for the first learning;
Requesting the at least one computational resource to calculate an error of the first artificial neural network using the split learning data and return the calculated error;
Calculating a first error based on the error returned from the at least one computational resource; And
And generating a second artificial neural network by updating the first artificial neural network based on the first error.
청구항 1에 있어서
상기 적어도 하나의 연산 리소스는
제1 연산 리소스 및 제2 연산 리소스를 포함하고,
상기 분할 학습 데이터를 결정하는 단계는
N(N은 자연수)개의 전체 학습 데이터 중, 상기 제1 연산 리소스가 N1(N1은 자연수)개의 분할 학습 데이터를 상기 제1 학습에 사용하도록 결정하는 단계; 및
상기 N개의 전체 학습 데이터 중, 상기 제2 연산 리소스가 N2(N2는 자연수)개의 분할 학습 데이터를 상기 제1 학습에 사용하도록 결정하는 단계;를 포함하고,
상기 N1개의 분할 학습 데이터와 상기 N2개의 분할 학습 데이터는 중복되지 않는, 인공 신경망 학습 방법.
The method according to claim 1
The at least one computational resource
A first computational resource and a second computational resource,
The step of determining the divided learning data
Determining that the first computational resource uses N1 (N1 is a natural number) divided learning data among the N (N is a natural number) total learning data; And
And determining, among the N total learning data, that the second computational resource uses N2 (N2 is a natural number) divided learning data for the first learning.
The N1 split learning data and the N2 split learning data do not overlap, an artificial neural network learning method.
청구항 2에 있어서
상기 오차를 반환하도록 요청하는 단계는
상기 제1 연산 리소스로부터 상기 N1개의 분할 학습 데이터 각각에 대한 N1개의 오차를 반환하도록 요청하는 단계; 및
상기 제2 연산 리소스로부터 상기 N2개의 분할 학습 데이터 각각에 대한 N2개의 오차를 반환하도록 요청하는 단계;를 포함하는, 인공 신경망 학습 방법.
The method according to claim 2
The step of requesting to return the error is
Requesting to return N1 errors for each of the N1 divided learning data from the first computational resource; And
And requesting to return N2 errors for each of the N2 divided learning data from the second computational resource.
청구항 1에 있어서
상기 제1 오차를 산출하는 단계는
소정의 방식에 따라 상기 적어도 하나의 연산 리소스로부터 반환된 오차의 대표값을 상기 제1 오차로 산출하는 단계;를 포함하는, 인공 신경망 학습 방법.
The method according to claim 1
The step of calculating the first error is
And calculating a representative value of the error returned from the at least one computational resource as the first error according to a predetermined method.
청구항 1에 있어서
상기 인공 신경망 학습 방법은
상기 제2 인공 신경망을 생성하는 단계 이후에,
상기 갱신된 제2 인공 신경망을 상기 적어도 하나의 연산 리소스 각각에 전송하는 단계;
상기 적어도 하나의 연산 리소스가 상기 제1 학습 이후의 제2 학습에 따른 분할 학습 데이터를 사용하여 상기 제2 인공 신경망의 오차를 산출하고, 상기 산출된 오차를 반환하도록 요청하는 단계;
상기 적어도 하나의 연산 리소스로부터 반환된 오차에 기초하여 제2 오차를 산출하는 단계; 및
상기 제2 오차에 기초하여 상기 제2 인공 신경망을 갱신하여 제3 인공 신경망을 생성하는 단계;를 포함하는, 인공 신경망 학습 방법.
The method according to claim 1
The artificial neural network learning method
After the step of generating the second artificial neural network,
Transmitting the updated second artificial neural network to each of the at least one computational resource;
Calculating, by the at least one computational resource, an error of the second artificial neural network using segmented learning data according to a second learning after the first learning, and requesting to return the calculated error;
Calculating a second error based on the error returned from the at least one computational resource; And
And generating a third artificial neural network by updating the second artificial neural network based on the second error.
KR1020180170665A 2018-12-27 2018-12-27 Method for training of an artificial neural network KR102190100B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180170665A KR102190100B1 (en) 2018-12-27 2018-12-27 Method for training of an artificial neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180170665A KR102190100B1 (en) 2018-12-27 2018-12-27 Method for training of an artificial neural network

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020200160935A Division KR20200139110A (en) 2020-11-26 2020-11-26 Method for training of an artificial neural network

Publications (2)

Publication Number Publication Date
KR20200080813A true KR20200080813A (en) 2020-07-07
KR102190100B1 KR102190100B1 (en) 2020-12-11

Family

ID=71602611

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180170665A KR102190100B1 (en) 2018-12-27 2018-12-27 Method for training of an artificial neural network

Country Status (1)

Country Link
KR (1) KR102190100B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200217544A1 (en) * 2019-01-09 2020-07-09 Samsung Electronics Co., Ltd. Electronic device and control method thereof
KR102687021B1 (en) * 2023-07-13 2024-07-22 주식회사 마키나락스 Method for predicting causes of equipment abnormalities and providing prediction results through platform

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170136357A (en) * 2016-06-01 2017-12-11 서울대학교산학협력단 Apparatus and Method for Generating Prediction Model based on Artificial Neural Networks
JP6258560B2 (en) * 2015-05-27 2018-01-10 株式会社日立製作所 Neural network learning apparatus and learning method
KR20180134740A (en) * 2017-06-09 2018-12-19 한국과학기술원 Electronic apparatus and method for optimizing of trained model
JP6445055B2 (en) * 2014-06-30 2018-12-26 アマゾン・テクノロジーズ・インコーポレーテッド Feature processing recipe for machine learning

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6445055B2 (en) * 2014-06-30 2018-12-26 アマゾン・テクノロジーズ・インコーポレーテッド Feature processing recipe for machine learning
JP6258560B2 (en) * 2015-05-27 2018-01-10 株式会社日立製作所 Neural network learning apparatus and learning method
KR20170136357A (en) * 2016-06-01 2017-12-11 서울대학교산학협력단 Apparatus and Method for Generating Prediction Model based on Artificial Neural Networks
KR20180134740A (en) * 2017-06-09 2018-12-19 한국과학기술원 Electronic apparatus and method for optimizing of trained model

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200217544A1 (en) * 2019-01-09 2020-07-09 Samsung Electronics Co., Ltd. Electronic device and control method thereof
KR102687021B1 (en) * 2023-07-13 2024-07-22 주식회사 마키나락스 Method for predicting causes of equipment abnormalities and providing prediction results through platform

Also Published As

Publication number Publication date
KR102190100B1 (en) 2020-12-11

Similar Documents

Publication Publication Date Title
KR102327615B1 (en) Modifying computational graphs
US11798119B2 (en) Multi-dimensional 3D engine computing and virtualization-based dynamic load balancing of virtual or real worlds
KR20200080819A (en) Method of providing commercialization service of an artificial neural network
KR20210082210A (en) Creating an Integrated Circuit Floor Plan Using Neural Networks
KR20190086134A (en) Method and apparatus for selecting optiaml training model from various tarining models included in neural network
KR102190105B1 (en) Method for determining parameter sets of an artificial neural network
CN112784002B (en) Virtual scene generation method, device, equipment and storage medium
US12056801B2 (en) Method for coloring a target image, and device and computer program therefor
KR20200118677A (en) Method and system for updating map for pose estimation based on images
CN110114784A (en) Recurrent neural network
JP7328331B2 (en) Image coloring completion method, its device and its computer program, artificial neural network learning method, its device and its computer program
US20220276058A1 (en) Systems and methods for utilizing modeling to automatically generate paths for indoor navigation
CN114021330A (en) Simulated traffic scene building method and system and intelligent vehicle control method
KR102190100B1 (en) Method for training of an artificial neural network
CN107567641B (en) System and method for identifying replicas
US20190005169A1 (en) Dynamic Design of Complex System-of-Systems for Planning and Adaptation to Unplanned Scenarios
EP3907679B1 (en) Enhanced robot fleet navigation and sequencing
CN112394982B (en) Method, device, medium and electronic equipment for generating voice recognition system
CN114091589A (en) Model training method and device, electronic equipment and medium
KR20200139110A (en) Method for training of an artificial neural network
KR20200138688A (en) Method of providing commercialization service of an artificial neural network
CN110377769A (en) Modeling Platform system, method, server and medium based on graph data structure
KR20200077162A (en) A method and computer program of learning a second neural network using a first neural network
CN113570067B (en) Synchronization method and device of distributed system
KR20200139111A (en) Method for determining parameter sets of an artificial neural network

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant