KR102190103B1 - Method of providing commercialization service of an artificial neural network - Google Patents

Method of providing commercialization service of an artificial neural network Download PDF

Info

Publication number
KR102190103B1
KR102190103B1 KR1020180170680A KR20180170680A KR102190103B1 KR 102190103 B1 KR102190103 B1 KR 102190103B1 KR 1020180170680 A KR1020180170680 A KR 1020180170680A KR 20180170680 A KR20180170680 A KR 20180170680A KR 102190103 B1 KR102190103 B1 KR 102190103B1
Authority
KR
South Korea
Prior art keywords
neural network
artificial neural
server
data
learning
Prior art date
Application number
KR1020180170680A
Other languages
Korean (ko)
Other versions
KR20200080819A (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 KR1020180170680A priority Critical patent/KR102190103B1/en
Publication of KR20200080819A publication Critical patent/KR20200080819A/en
Application granted granted Critical
Publication of KR102190103B1 publication Critical patent/KR102190103B1/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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

Landscapes

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

Abstract

본 발명의 일 실시예에 따른 사용자가 제공한 제1 학습 데이터에 기초하여 인공 신경망을 생성하고, 생성된 인공 신경망을 이용하여 서비스 제공을 위한 API를 생성하는 인공 신경망의 상용화 서비스 제공 방법은, 사용자 단말로부터 제1 학습 데이터를 수신하는 단계; 상기 제1 학습 데이터를 소정의 방식으로 전처리 하여 제2 학습 데이터를 생성하는 단계; 상기 제2 학습 데이터에 기초하여 복수의 파라미터 셋 각각에 대한 인공 신경망의 학습 결과를 산출하고, 상기 산출 결과에 기초하여 상기 복수의 파라미터 셋 중 어느 하나를 최적의 파라미터 셋으로 결정하는 단계; 상기 최적의 파라미터 셋이 적용된 배포 인공 신경망을 생성하는 단계; 및 상기 배포 인공 신경망을 이용하는 서비스 제공을 위한 API를 생성하는 단계;를 포함할 수 있다.According to an embodiment of the present invention, a method for providing an artificial neural network commercialization service for generating an artificial neural network based on first training data provided by a user and generating an API for providing a service using the generated artificial neural network includes: Receiving first learning data from a terminal; Generating second learning data by preprocessing the first learning data in a predetermined manner; Calculating a learning result of the artificial neural network for each of a plurality of parameter sets based on the second learning data, and determining any one of the plurality of parameter sets as an optimal parameter set based on the calculation result; Generating a distributed artificial neural network to which the optimal parameter set is applied; And generating an API for providing a service using the distributed artificial neural network.

Description

인공 신경망의 상용화 서비스 제공 방법{Method of providing commercialization service of an artificial neural network}Method of providing commercialization service of an artificial neural network}

본 발명의 실시예들은 인공 신경망의 상용화 서비스 제공 방법에 관한 것으로, 사용자가 제공한 제1 학습 데이터에 기초하여 인공 신경망을 생성하고, 생성된 인공 신경망을 이용하여 서비스 제공을 위한 API를 생성하는 인공 신경망의 상용화 서비스 제공 방법에 관한 것이다.Embodiments of the present invention relate to a method for providing a commercialization service of an artificial neural network. An artificial neural network is generated based on the first learning data provided by a user, and an API for providing a service is generated using the generated artificial neural network. It relates to a method of providing commercialization services of neural networks.

오늘날 인공 신경망은 다양한 분야의 다양한 어플리케이션(Application)에 사용이 확대되고 있는 추세이다.Today, artificial neural networks are being used in various applications in various fields.

특히 인공 신경망은 기존의 룰 베이스(Rule-based) 기반의 결정 모델과 비교했을 때, 룰(Rule)들을 개별적으로 설정하지 않아도 단지 다양한 경우의 학습 데이터를 학습시킴으로써 구축이 가능하고, 결과의 정확도 또한 높기에 사용 분야가 폭발적으로 증가하고 있는 추세이다.In particular, when compared to the existing rule-based decision model, the artificial neural network can be built by simply learning the training data in various cases without setting the rules individually. As it is high, the field of use is increasing explosively.

한편 이러한 인공 신경망을 이용한 어플리케이션은 기존의 룰 베이스 기반의 결정 모델을 이용하는 어플리케이션에 비해 구현이 복잡하여, 전문적인 지식을 갖지 않은 사람이 쉽게 구현하거나 접근할 수 없다는 문제점이 있었다.On the other hand, the application using such an artificial neural network is more complicated to implement than the application using the existing rule-based decision model, and there is a problem that a person without specialized knowledge cannot easily implement or access it.

특히 인공 신경망을 이용한 어플리케이션의 경우, 학습 데이터를 소정의 과정에 따라 수집하고, 전처리를 통하여 인공 신경망에 사용이 적합한 형태로 변환하는 등의 복잡한 과정을 거쳐야 하는 어려움이 있다.In particular, in the case of an application using an artificial neural network, it is difficult to undergo a complex process such as collecting training data according to a predetermined process and converting it into a form suitable for use in an artificial neural network through preprocessing.

또한 최적의 성능을 갖는 인공 신경망의 구현을 위해서, 장시간의 파라미터 튜닝 과정을 거쳐야 하고 튜닝된 파라미터를 이용하여 인공 신경망을 다시 구축하고, 이를 자신이 별도로 제작한 인터페이스와 연결하는 또 다른 번거롭고 복잡한 과정을 거쳐야 한다.In addition, in order to implement an artificial neural network with optimal performance, it is necessary to go through a long parameter tuning process, rebuild the artificial neural network using the tuned parameters, and take another cumbersome and complicated process of connecting it with an interface that has been separately produced. Must go through.

본 발명의 상술한 문제점을 해결하기 위한 것으로, 사용자가 인공 신경망을 이용한 어플리케이션의 일련의 제작 과정을 손쉽게 수행할 수 있도록 하고자 한다.In order to solve the above-described problem of the present invention, it is intended that a user can easily perform a series of manufacturing processes of an application using an artificial neural network.

또한 본 발명은 학습 데이터에 대한 다양한 전처리 옵션을 제공하여, 학습 데이터의 전처리에 소요되는 시간을 단축시키고자 한다.In addition, the present invention provides various pre-processing options for learning data, thereby reducing the time required for pre-processing of learning data.

또한 본 발명은 인공 신경망의 학습에 사용하고자 하는 복수의 파라미터 셋을 한 번에 결정하고, 순차적 및/또는 병렬적으로 학습을 수행함으로써 다양한 파라미터 셋에 대한 검증 시간을 단축시키고, 특히 사용자가 손쉽게 최적의 파라미터 셋을 결정할 수 있도록 하고자 한다.In addition, the present invention shortens the verification time for various parameter sets by determining a plurality of parameter sets to be used for learning of an artificial neural network at once, and performing learning sequentially and/or in parallel. We want to be able to determine the parameter set of.

또한 본 발명은 최적의 파라미터 셋을 이용한 인공 신경망을 간편하게 API화 하여 사용자가 어플리케이션에 손쉽게 인공 신경망을 사용할 수 있도록 하고자 한다.In addition, the present invention aims to make an artificial neural network using an optimal parameter set into an API so that a user can easily use the artificial neural network in an application.

본 발명의 일 실시예에 따른 사용자가 제공한 제1 학습 데이터에 기초하여 인공 신경망을 생성하고, 생성된 인공 신경망을 이용하여 서비스 제공을 위한 API를 생성하는 인공 신경망의 상용화 서비스 제공 방법은, 사용자 단말로부터 제1 학습 데이터를 수신하는 단계; 상기 제1 학습 데이터를 소정의 방식으로 전처리 하여 제2 학습 데이터를 생성하는 단계; 상기 제2 학습 데이터에 기초하여 복수의 파라미터 셋 각각에 대한 인공 신경망의 학습 결과를 산출하고, 상기 산출 결과에 기초하여 상기 복수의 파라미터 셋 중 어느 하나를 최적의 파라미터 셋으로 결정하는 단계; 상기 최적의 파라미터 셋이 적용된 배포 인공 신경망을 생성하는 단계; 및 상기 배포 인공 신경망을 이용하는 서비스 제공을 위한 API를 생성하는 단계;를 포함할 수 있다.According to an embodiment of the present invention, a method for providing an artificial neural network commercialization service for generating an artificial neural network based on first training data provided by a user and generating an API for providing a service using the generated artificial neural network includes: Receiving first learning data from a terminal; Generating second learning data by preprocessing the first learning data in a predetermined manner; Calculating a learning result of the artificial neural network for each of a plurality of parameter sets based on the second learning data, and determining any one of the plurality of parameter sets as an optimal parameter set based on the calculation result; Generating a distributed artificial neural network to which the optimal parameter set is applied; And generating an API for providing a service using the distributed artificial neural network.

상기 제2 학습 데이터를 생성하는 단계는 제1 학습 데이터의 처리가 가능한 적어도 하나의 전처리 방식의 식별 정보를 상기 사용자 단말에 제공하는 단계; 상기 사용자 단말로부터 상기 전처리 방식에 대한 선택정보를 수신하는 단계; 및 상기 선택정보에 대응되는 전처리 방식으로 상기 제1 학습 데이터를 전처리 하여 상기 제2 학습 데이터를 생성하는 단계;를 포함할 수 있다.The generating of the second learning data includes: providing identification information of at least one preprocessing method capable of processing the first learning data to the user terminal; Receiving selection information for the preprocessing method from the user terminal; And generating the second learning data by preprocessing the first learning data in a preprocessing method corresponding to the selection information.

상기 제2 학습 데이터를 생성하는 단계는 상기 선택정보에 대응되는 전처리 방식에 따른 제1 학습 데이터의 전처리 진행 정도에 관한 정보를 상기 사용자 단말에 제공하는 단계;를 더 포함할 수 있다.The generating of the second learning data may further include providing information on a degree of preprocessing of the first learning data according to a preprocessing method corresponding to the selection information to the user terminal.

상기 제1 학습 데이터는 텍스트 데이터, 이미지 데이터 및 음향 데이터 중 적어도 하나 이상이 결합된 형태의 데이터이고, 상기 제2 학습 데이터는 상기 제1 학습 데이터에 대응되는 벡터 형태의 데이터일 수 있다.The first training data may be data in a form in which at least one of text data, image data, and sound data is combined, and the second training data may be data in a vector form corresponding to the first training data.

상기 최적의 파라미터 셋은 상기 배포 인공 신경망의 구조에 대한 구조 파라미터 셋 및 배포 인공 신경망의 학습 조건에 관한 학습 파라미터 셋을 포함하고, 상기 배포 인공 신경망을 생성하는 단계는 상기 구조 파라미터 셋에 기초하여, 상기 배포 인공 신경망을 생성하는 단계; 및 상기 학습 파라미터 셋에 따라, 상기 생성된 배포 인공 신경망을 학습시키는 단계;를 포함할 수 있다.The optimal parameter set includes a structure parameter set for the structure of the distributed artificial neural network and a learning parameter set for a learning condition of the distributed artificial neural network, and the step of generating the distributed artificial neural network is based on the structure parameter set, Generating the distributed artificial neural network; And training the generated distributed artificial neural network according to the set of learning parameters.

상기 API를 생성하는 단계는 상기 제2 학습 데이터를 생성하는 단계에서 결정된 전처리 방식에 기초하여, 입력 데이터를 전처리 하는 입력 데이터 전처리 모듈을 생성하는 단계; 상기 생성된 배포 신경망을 이용하여 상기 입력 데이터에 대한 출력 데이터를 생성하는 신경망 모듈을 생성하는 단계; 상기 제1 학습 데이터에 포함된 출력 데이터의 포맷을 참조하여, 상기 신경망 모듈의 출력 데이터의 포맷을 변환하는 출력 데이터 변환 모듈을 생성하는 단계; 및 상기 전처리 모듈, 상기 신경망 모듈 및 상기 변환 모듈을 포함하는 API를 생성하는 단계;를 포함할 수 있다.The generating of the API includes: generating an input data preprocessing module for preprocessing input data based on the preprocessing method determined in the generating of the second learning data; Generating a neural network module that generates output data for the input data using the generated distribution neural network; Generating an output data conversion module for converting the format of the output data of the neural network module by referring to the format of the output data included in the first training data; And generating an API including the preprocessing module, the neural network module, and the transformation module.

본 발명에 따르면, 사용자가 인공 신경망을 이용한 어플리케이션의 일련의 제작 과정을 손쉽게 수행할 수 있도록 한다.According to the present invention, a user can easily perform a series of manufacturing processes of an application using an artificial neural network.

또한 본 발명은 학습 데이터에 대한 다양한 전처리 옵션을 제공하여, 학습 데이터의 전처리에 소요되는 시간을 단축시킬 수 있다.In addition, the present invention provides various pre-processing options for learning data, thereby reducing time required for pre-processing of learning data.

또한 본 발명은 인공 신경망의 학습에 사용하고자 하는 복수의 파라미터 셋을 한 번에 결정하고, 순차적 및/또는 병렬적으로 학습을 수행함으로써 다양한 파라미터 셋에 대한 검증 시간을 단축시키고, 특히 사용자가 손쉽게 최적의 파라미터 셋을 결정할 수 있도록 한다.In addition, the present invention shortens the verification time for various parameter sets by determining a plurality of parameter sets to be used for learning of an artificial neural network at once, and performing learning sequentially and/or in parallel. Allows you to determine the parameter set of.

또한 본 발명은 최적의 파라미터 셋을 이용한 인공 신경망을 간편하게 API화 하여 사용자가 어플리케이션에 손쉽게 인공 신경망을 사용할 수 있도록 한다.In addition, the present invention makes an artificial neural network using an optimal parameter set into an API so that a user can easily use the artificial neural network in an application.

도 1은 본 발명의 일 실시예에 따른 인공 신경망의 상용화 서비스 제공 시스템의 구성을 개략적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 리소스 서버(300A)의 구성을 개략적으로 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 서버(100)의 구성을 개략적으로 도시한 도면이다.
도 4 및 도 5는 본 발명의 서버(100) 및/또는 리소스 서버(300)에 의해 학습된 인공 신경망의 예시적인 구조를 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 서버(100)가 제1 학습 데이터(410)를 소정의 방식으로 전처리 하여 제2 학습 데이터(420)를 생성하는 과정을 설명하기 위한 도면이다.
도 7은 서버(100)에 의해 결정된 파라미터 셋의 예시이다.
도 8은 본 발명의 일 실시예에 따른 서버(100)가 복수의 리소스 서버에 대해서 서로 다른 파라미터 셋에 따른 학습의 수행을 요청하는 방법을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 서버(100)가 입력 값에 대한 결과값(610A, 610B, 610C)을 복수의 리소스 서버로부터 수신하는 방법을 설명하기 위한 도면이다.
도 10은 본 발명의 일 실시예에 따른 서버(100)가 배포 인공 신경망을 이용하여 생성한 API(720)의 구조를 설명하기 위한 도면이다.
도 11은 사용자가 제1 학습 데이터(410)를 등록하고 이에 대한 전처리 방식을 선택하기 위한 화면(1100)의 예시이다.
도 12는 학습 결과 및/또는 상태에 대한 정보를 제공하는 화면(1200)의 예시이다.
도 13은 생성된 API에 대한 정보를 제공하는 화면(1300)의 예시이다.
도 14은 본 발명의 일 실시예에 따른 서버(100)에 의해 수행되는 인공 신경망의 상용화 서비스 제공 방법을 설명하기 위한 흐름도이다.
1 is a diagram schematically showing the configuration of a system for providing a commercialization service of an artificial neural network 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 and/or the resource server 300 of the present invention.
6 is a diagram for explaining a process in which the server 100 generates the second training data 420 by preprocessing the first training data 410 in a predetermined manner according to an embodiment of the present invention.
7 is an example of a parameter set determined by the server 100.
FIG. 8 is a diagram for explaining a method of requesting a server 100 to perform learning according to different parameter sets for a plurality of resource servers according to an embodiment of the present invention.
9 is a diagram for explaining a method of receiving, by the server 100, result values 610A, 610B, and 610C for an input value from a plurality of resource servers according to an embodiment of the present invention.
10 is a diagram for explaining the structure of the API 720 generated by the server 100 using a distributed artificial neural network according to an embodiment of the present invention.
11 is an example of a screen 1100 for a user to register the first learning data 410 and select a preprocessing method for the first learning data 410.
12 is an example of a screen 1200 that provides information on a learning result and/or state.
13 is an example of a screen 1300 that provides information on a generated API.
14 is a flowchart illustrating a method of providing a commercialization service of an artificial neural network performed by the server 100 according to an embodiment of the present invention.

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

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

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

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

본 발명의 일 실시예에 따른 인공 신경망의 상용화 서비스 제공 시스템은 사용자가 제공한 제1 학습 데이터에 기초하여 인공 신경망을 생성하고, 생성된 인공 신경망을 이용하여 서비스 제공을 위한 API를 생성할 수 있다. The system for providing a commercialization service for an artificial neural network according to an embodiment of the present invention may generate an artificial neural network based on first learning data provided by a user, and generate an API for providing a service using the generated artificial neural network. .

또한 본 발명의 일 실시예에 따른 인공 신경망의 상용화 서비스 제공 시스템은 복수의 파라미터 셋 각각을 이용하여 인공 신경망을 학습시키고, 학습된 인공 신경망의 학습 결과를 산출하여 비교함으로써 최적의 파라미터 셋이 적용된 인공 신경망 생성하도록 할 수 있다. 이와 같은 본 발명의 일 실시예에 따른 인공 신경망의 상용화 서비스 제공 시스템은 서버(100), 사용자 단말(200), 리소스 서버(300) 및 통신망(400)을 포함할 수 있다.In addition, the system for providing a commercialization service of an artificial neural network according to an embodiment of the present invention trains an artificial neural network using each of a plurality of parameter sets, and calculates and compares the learning result of the learned artificial neural network. Neural network can be created. The system for providing a commercialized service for an artificial neural network according to an embodiment of the present invention 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 created by the server 100 and/or the resource server 300 according to a predetermined purpose, and is an artificial neural network that is learned by machine learning or deep learning. Can mean The structure of such a neural network will be described later with reference to FIGS. 4 and 5.

본 발명에서 '파라미터 셋'(Parameter Set)은 인공 신경망의 학습시에 학습 조건 및/또는 환경을 달리하기 위해 조절되는 값의 집합을 의미할 수 있다. 가령 파라미터 셋은 인공 신경망의 구조에 대한 구조 파라미터 셋과 인공 신경망의 학습 조건에 관한 학습 파라미터 셋을 포함할 수 있다.In the present invention, a'parameter set' may mean a set of values that are adjusted to change a learning condition and/or environment when learning an artificial neural network. For example, the parameter set may include a structure parameter set for a structure of an artificial neural network and a learning parameter set for a learning condition of the artificial neural network.

이때 '구조 파라미터 셋'은 인공 신경망 그 자체에 관한 파라미터 셋을 의미할 수 있다. 가령 인공 신경망의 종류가 도 5에서 설명하는 RNN 모델에 따른 인공 신경망인 경우, 구조 파라미터 셋은 인공 신경망의 히든 레이어의 수, 입력 노드의 수 및 각 히든 레이어에 포함되는 히든 노드의 수와 같이 인공 신경망의 구조에 관한 파라미터들을 포함할 수 있다. 이와 같은 구조 파라미터 셋에 포함되는 각각의 파라미터는 스칼라 형태의 값(예를 들어 3, 7, 0.1 등)일 수도 있고, 벡터 형태의 값(예를 들어 [1, 3, 0.7, 0.5])일 수도 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.In this case, the'structure parameter set' may mean a parameter set related to the artificial neural network itself. For example, if the type of artificial neural network is an artificial neural network according to the RNN model described in FIG. 5, the structure parameter set is artificial such as the number of hidden layers, the number of input nodes, and the number of hidden nodes included in each hidden layer. It may contain parameters related to the structure of a neural network. Each parameter included in such a structural parameter set may be a scalar value (eg 3, 7, 0.1, etc.) or a vector type value (eg [1, 3, 0.7, 0.5]). May be. However, this is merely an example and the spirit of the present invention is not limited thereto.

한편 '학습 파라미터 셋'는 전술한 '구조 파라미터 셋'에 의해 결정된 인공 신경망의 학습 조건에 관한 파라미터 셋을 의미할 수 있다. 가령 학습 파라미터 셋은 인공 신경망의 학습 반복 횟수(즉 동일한 학습 데이터를 이용한 학습의 반복 횟수(예를 들어 30회))에 대응되는 반복 파라미터 및 인공 신경망의 1회 학습에 사용되는 학습 데이터의 단위 수량(예를 들어 100개)에 대응되는 단위 수량 파라미터를 포함할 수 있다. 다만 이와 같은 반복 파라미터 및 단위 수량 파라미터는 학습 파라미터 셋에 포함되는 예시적인 파라미터로, 본 발명의 사상이 이에 한정되는 것은 아니다.Meanwhile, the'learning parameter set' may mean a parameter set related to the learning condition of the artificial neural network determined by the above-described'structure parameter set'. For example, the training parameter set is a repetition parameter corresponding to the number of iterations of learning of the artificial neural network (that is, the number of iterations of learning using the same training data (for example, 30 times)) and the unit quantity of training data used for one-time training of the artificial neural network A unit quantity parameter corresponding to (for example, 100) may be included. However, the repetition parameter and the unit quantity parameter are exemplary parameters included in the learning parameter set, and the inventive concept is not limited thereto.

본 발명의 일 실시예에 따른 사용자 단말(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 with the server 100.

본 발명의 일 실싱예에서, 사용자 단말(200)은 인공 신경망의 상용화 과정에 따른 적어도 하나의 인터페이스를 서버(100)로부터 수신하여 이를 표시하고, 인터페이스에 대한 사용자의 입력을 획득하여 서버(100)로 전송할 수 있다. In one embodiment of the present invention, the user terminal 200 receives at least one interface according to the commercialization process of the artificial neural network from the server 100 and displays it, and obtains the user's input for the interface to the server 100 Can be transferred to.

예를 들어 본 발명의 일 실시예에서, 사용자 단말(200)은 서버(100)로 제1 학습 데이터를 전송하여, 서버(100)가 전송된 제1 학습 데이터에 기초하여 인공 신경망을 생성하도록 할 수 있다. For example, in one embodiment of the present invention, the user terminal 200 transmits the first training data to the server 100 so that the server 100 generates an artificial neural network based on the transmitted first training data. I can.

또한 사용자 단말(200)은 서버(100)로 파라미터 셋을 전송하여, 서버(100)가 사용자에 의해 입력된 파라미터 셋에 따라 인공 신경망을 학습시키고 그 결과를 산출하도록 할 수 있다.In addition, the user terminal 200 may transmit a parameter set to the server 100 so that the server 100 trains the artificial neural network according to the parameter set input by the user and calculates the result.

또한 본 발명의 일 실시예에서, 사용자 단말(200)은 서버(100)로 파라미터 결정 조건을 전송하여, 서버(100)가 사용자에 의해 입력된 파라미터 결정 조건에 따라 파라미터 셋을 결정하고, 결정된 파라미터 셋을 이용하여 인공신경망을 학습시키고 그 결과를 산출하도록 할 수 있다. In addition, in an embodiment of the present invention, the user terminal 200 transmits a parameter determination condition to the server 100, so that the server 100 determines a parameter set according to the parameter determination condition input by the user, and the determined parameter The three can be used to train an artificial neural network and produce the result.

이와 같은 사용자 단말(200)은 도 1에 도시된 바와 같이, 휴대용 단말(201)을 의미할 수도 있고, 컴퓨터(202)를 의미할 수도 있다. As shown in FIG. 1, the user terminal 200 may refer to a portable terminal 201 or a computer 202.

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

본 발명의 일 실시예에 따른 리소스 서버(300)는 서버(100)의 제어에 따라 소정의 파라미터 셋을 이용하여 인공 신경망을 학습시키는 장치를 의미할 수 있다. 이와 같은 리소스 서버(300)는 도 1에 도시된 바와 같이 복수일 수 있다.The resource server 300 according to an embodiment of the present invention may mean an apparatus for training an artificial neural network using a predetermined parameter set under control of the server 100. As illustrated in FIG. 1, there may be a plurality of resource servers 300.

도 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)를 포함할 수 있다.Referring to FIG. 2, a 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 and 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 a signal such as a control signal or a data signal through a wired or wireless connection with another network device 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 the plurality of third processors 340A-1, 340A-2, and 340A-3 according to a learning command of the artificial neural network received by the server 100. In this case, the processor may refer to a data processing device embedded in hardware, which has a circuit physically structured to perform a function represented by a code or instruction included in a program. As an example of such a data processing device built into the hardware, a microprocessor, a central processing unit (CPU), a processor core, a multiprocessor, and an application-specific integrated (ASIC) Circuit) and processing devices such as a Field Programmable Gate Array (FPGA) may be covered, but the scope of the present invention is not limited thereto.

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

가령 메모리(330A)는 학습된 인공 신경망을 구성하는 데이터들(가령 계수들)을 일시적 및/또는 영구적으로 저장할 수 있다. 물론 메모리(330A)는 인공 신경망을 학습하기 위한 제2 학습 데이터(서버(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 second training data (received from the server 100) for training the artificial neural network. However, this is merely an example and the spirit of the present invention is not limited thereto.

복수의 제3 프로세서(340A-1, 340A-2, 340A-3)는 전술한 제2 프로세서(320A)의 제어에 따라 소정의 파라미터 셋을 이용하여 인공 신경망을 학습시키는 장치를 의미할 수 있다. 이때 복수의 제3 프로세서(340A-1, 340A-2, 340A-3) 각각은 전술한 제2 프로세서(320A)보다 높은 연산 능력을 갖는 장치일 수 있다. 가령 복수의 제3 프로세서(340A-1, 340A-2, 340A-3) 각각은 GPU(Graphics Processing Unit)로 구성될 수 있다. 다만 이는 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아니다.The plurality of third processors 340A-1, 340A-2, 340A-3 may refer to an apparatus for training an artificial neural network using a predetermined parameter set under control of the second processor 320A. In this case, 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 aforementioned second processor 320A. For example, each of the plurality of third processors 340A-1, 340A-2, and 340A-3 may be configured with a Graphics Processing Unit (GPU). However, this is merely an example and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에서 복수의 제3 프로세서(340A-1, 340A-2, 340A-3) 각각은 구분되는 장치로써, 서로 다른 테스크(Task)를 수행하는데 사용될 수 있다. 가령 첫 번째 제3 프로세서(340A-1)는 첫 번째 파라미터 셋에 따른 신경망을 학습하는데 사용될 수 있고, 이와 동시에 두 번째 제3 프로세서(340A-2)는 두 번째 파라미터 셋에 따른 신경망을 학습하는데 사용될 수 있다.In an embodiment of the present invention, each of the plurality of third processors 340A-1, 340A-2, and 340A-3 is a separate device and may be used to perform different tasks. For example, the first third processor 340A-1 may be used to learn a neural network according to the first parameter set, and at the same time, the second third processor 340A-2 may be used to learn a neural network according to the second parameter set. I can.

본 발명의 다른 실시예에서 복수의 제3 프로세서(340A-1, 340A-2, 340A-3)는 1개의 장치로 동작하여, 하나의 테스크를 수행하는데 사용될 수 있다. 가령 제3 프로세서(340A-1, 340A-2, 340A-3)는 가상의 1개의 장치로, 세 번째 파라미터 셋에 따른 신경망을 학습하는데 사용될 수 있다.In another embodiment of the present invention, the plurality of third processors 340A-1, 340A-2, and 340A-3 may operate as one device and may be used to perform one task. For example, the third processors 340A-1, 340A-2, and 340A-3 are one virtual device and may be used to learn a neural network according to a third parameter set.

한편 본 발명의 다른 실시예에 따라 복수의 제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, a plurality of third processors 340A-1, 340A-2, and 340A-3 operate as a single device, and a plurality of third processors 340A-1, 340A- 2, 340A-3) may be connected to each other through a separate physical bridge (Bridge) and/or an 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 separate devices or as one device may be electronically determined by the second processor 320A.

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

본 발명의 일 실시예에 따른 서버(100)는 사용자가 제공한 제1 학습 데이터에 기초하여 인공 신경망을 생성하고, 생성된 인공 신경망을 이용하여 서비스 제공을 위한 API를 생성할 수 있다. The server 100 according to an embodiment of the present invention may generate an artificial neural network based on the first learning data provided by a user, and generate an API for providing a service using the generated artificial neural network.

또한 서버(100)는 복수의 파라미터 셋 각각을 이용하여 인공 신경망을 학습시키고, 학습된 인공 신경망의 학습 결과를 산출하여 비교함으로써 인공 신경망의 최적의 파라미터 셋을 결정할 수 있다.In addition, the server 100 may learn an artificial neural network using each of the plurality of parameter sets, calculate and compare a learning result of the learned artificial neural network, thereby determining an optimal parameter set of the artificial neural network.

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

도 3을 참조하면, 본 발명의 일 실시예에 따른 서버(100)는 통신부(110), 제1 프로세서(120) 및 메모리(130)를 포함할 수 있다. 또한 도면에는 도시되지 않았으나, 본 실시예에 따른 서버(100)는 입/출력부, 프로그램 저장부 등을 더 포함할 수 있다. 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. Further, although not shown in the drawings, 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 containing device.

제1 프로세서(120)는 사용자 단말(200)로부터 제1 학습 데이터를 수신하고, 사용자가 선택한 전처리 방식에 따라 수신된 제1 학습 데이터로부터 제2 학습 데이터를 생성할 수 있다. 또한 제1 프로세서(120)는 사용자 단말(200)로부터 수신된 제어 데이터 등에 기초하여 인공 신경망의 학습에 사용될 파라미터 셋을 결정하고, 결정된 파라미터 셋에 따라 인공 신경망을 학습시킬 수 있도록 리소스 서버(300)를 제어하는 수단을 의미할 수 있다. 물론 제1 프로세서(120)는 리소스 서버(300)에 의해 학습된 인공 신경망의 학습 결과를 산출하여, 최적의 파라미터 셋을 결정할 수도 있다. The first processor 120 may receive first training data from the user terminal 200 and may generate second training data from the received first training data according to a preprocessing method selected by the user. In addition, the first processor 120 determines a parameter set to be used for learning an artificial neural network based on control data received from the user terminal 200, and the resource server 300 to train the artificial neural network according to the determined parameter set. It may mean a means of controlling. Of course, the first processor 120 may determine an optimal parameter set by calculating a learning result of the artificial neural network learned by the resource server 300.

이와 같은 제1 프로세서(120)는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(Microprocessor), 중앙처리장치(Central Processing Unit: CPU), 프로세서 코어(Processor Core), 멀티프로세서(Multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.Such a first processor 120 may refer to a data processing device embedded in hardware having a circuit physically structured to perform a function represented by a code or command included in a program. As an example of such a data processing device built into the hardware, a microprocessor, a central processing unit (CPU), a processor core, a multiprocessor, and an application-specific integrated (ASIC) Circuit) and processing devices such as a Field Programmable Gate Array (FPGA) may be covered, but the scope of the present invention is not limited thereto.

메모리(130)는 서버(100)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행한다. 메모리는 자기 저장 매체(Magnetic Storage Media) 또는 플래시 저장 매체(Flash Storage Media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 가령 메모리(130)는 리소스 서버(300)로부터 인공 신경망을 구성하는 데이터들을 수신하여 일시적 및/또는 영구적으로 저장할 수 있다. 물론 메모리(130)는 인공 신경망을 학습하기 위한 제1 학습 데이터 및/또는 제2 학습 데이터도 저장할 수 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.The memory 130 temporarily or permanently stores data processed by the server 100. The memory may include a magnetic storage medium or a flash storage medium, but the scope of the present invention is not limited thereto. For example, the memory 130 may receive data constituting an artificial neural network from the resource server 300 and temporarily and/or permanently store it. Of course, the memory 130 may also store first training data and/or second training data for training an artificial neural network. However, this is merely 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 mean a communication network that mediates data transmission/reception between components of a commercialized service providing system of an artificial neural network. For example, the communication network 400 is wired networks such as LANs (Local Area Networks), WANs (Wide Area Networks), MANs (Metropolitan Area Networks), ISDNs (Integrated Service Digital Networks), wireless LANs, CDMA, Bluetooth, satellite communication, etc. It may cover wireless networks of, but the scope of the present invention is not limited thereto.

이하에서는 도 4 및 도 5를 통하여 예시적인 인공 신경망의 구조에 대해 설명한다.Hereinafter, a structure of an exemplary artificial neural network will be described with reference to FIGS. 4 and 5.

도 4 및 도 5는 본 발명의 서버(100) 및/또는 리소스 서버(300)에 의해 학습된 인공 신경망의 예시적인 구조를 설명하기 위한 도면이다.4 and 5 are diagrams for explaining an exemplary structure of an artificial neural network learned by the server 100 and/or the resource server 300 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 illustrated in FIG. 4. At this time, the CNN model may be a hierarchical model used to finally extract features of input data by alternately performing a plurality of computational layers (Convolutional Layer, Pooling Layer). In this case, the server 100 and/or the resource server 300 according to an embodiment of the present invention may build or train an artificial neural network model by processing the training 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 the 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 the input data.

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

이와 같은 입력 데이터의 분할 크기, 컨볼루션 레이어에 사용되는 단위 블록의 크기, 풀링 레이어의 수, 풀링 레이어의 단위 블록의 크기 등은 전술한 파라미터 셋에 포함되는 항목일 수 있다. 바꾸어 말하면, 파라미터 셋은 상술한 항목들을 결정하기 위한 파라미터(즉 구조 파라미터)들을 포함할 수 있다. The split size of the input data, the size of the unit block used for the convolution layer, the number of pooling layers, the size of the unit block of the pooling layer, etc. may be items included in the above-described parameter set. In other words, the parameter set may include parameters (ie, structure parameters) for determining the above-described items.

따라서 파라미터 셋의 변경 및/또는 조절에 따라 인공 신경망의 구조가 변경될 수 있으며, 이에 따라 동일한 학습 데이터를 이용하더라고 학습 결과가 달라질 수 있다.Accordingly, the structure of the artificial neural network may be changed according to the change and/or adjustment of the parameter set, and accordingly, the learning result may be different even if the same training data is used.

한편 이와 같은 인공 신경망은 전술한 서버(100) 및/또는 리소스 서버(300)의 메모리에 인공 신경망을 구성하는 적어도 하나의 노드의 계수, 노드의 가중치 및 인공 신경망을 구성하는 복수의 레이어 간의 관계를 정의하는 함수의 계수들의 형태로 저장될 수 있다. 물론 인공 신경망의 구조 또한 메모리에 소스코드 및/또는 프로그램의 형태로 저장될 수 있다.On the other hand, such an artificial neural network has a relationship between the coefficients of at least one node constituting the artificial neural network, the weight of the node, and a plurality of layers 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 memory in the form of a source code and/or a program.

본 발명의 일 실시예에 따른 인공 신경망은 도 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 such a recurrent 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)가 복수의 레이어를 포함하는 경우, 인공 신경망은 각각의 히든 레이어 사이의 관계를 정의하는 함수(미도시)를 포함할 수 있다.As illustrated, the hidden layer L2 may include one or more layers that are fully connected. When the hidden layer L2 includes a plurality of layers, the artificial neural network may include a function (not shown) defining a relationship between each hidden layer.

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

한편 인공 신경망은 입력 레이어(L1)와 히든 레이어(L2)의 관계를 정의하는 제1 함수(F1) 및 히든 레이어(L2)와 출력 레이어(L3)의 관계를 정의하는 제2 함수(F2)를 포함할 수 있다. Meanwhile, the artificial neural network has 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). Can include.

제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 first function F1, the second function F2, and the functions between the hidden layer may include a recurrent neural network model that outputs a result based on an input of a previous node.

서버(100) 및/또는 리소스 서버(300)에 의해 인공 신경망이 학습되는 과정에서, 복수의 학습 데이터에 기초하여 제1 함수(F1) 및 제2 함수(F2)가 학습될 수 있다. 물론 인공 신경망이 학습되는 과정에서 전술한 제1 함수(F1) 및 제2 함수(F2) 외에 복수의 히든 레이어 사이의 함수들 또한 학습될 수 있다.In a process of learning the artificial neural network 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 training data. Of course, while the artificial neural network is trained, 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 in a supervised learning method based on labeled learning data.

본 발명의 일 실시예에 따른 서버(100) 및/또는 리소스 서버(300)는 복수의 학습 데이터를 이용하여, 어느 하나의 입력 데이터를 인공 신경망에 입력하여 생성된 출력 값이 해당 학습 데이터에 표지된 값에 근접하도록 전술한 함수들(F1, F2, 히든 레이어 사이의 함수들 등)을 갱신하는 과정을 반복하여 수행함으로써 인공 신경망을 학습시킬 수 있다. The server 100 and/or the resource server 300 according to an embodiment of the present invention uses a plurality of training data to input any one input data into an artificial neural network, and the generated output value is marked on the corresponding training data. The artificial neural network can be trained by repeatedly performing the process of updating the above-described functions (F1, F2, functions between hidden layers, etc.) to approximate the value.

이때 본 발명의 일 실시예에 따른 서버(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 merely an example and the spirit of the present invention is not limited thereto.

한편 순환 신경망 모델에 따른 인공 신경망의 경우 파라미터 셋(특히 구조 파라미터 셋)에는 전술한 히든 레이어의 수 및 입력 노드의 수 등이 포함될 수 있다. 따라서 파라미터 셋의 변경 및/또는 조절에 따라 인공 신경망의 구조가 변경될 수 있으며, 이에 따라 동일한 학습 데이터를 이용하더라고 학습 결과가 달라질 수 있다.Meanwhile, in the case of an artificial neural network according to a recurrent neural network model, a parameter set (especially a structure parameter set) may include the number of hidden layers and the number of input nodes described above. Accordingly, the structure of the artificial neural network may be changed according to the change and/or adjustment of the parameter set, and accordingly, the learning result may be different even if the same training data is used.

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

이하에서는 설명의 편의를 위하여, 인공 신경망이 도 5에서 설명한 순환신경망 모델에 따른 신경망임을 전제로, 서버(100)가 사용자가 제공한 제1 학습 데이터에 기초하여 인공 신경망을 생성하고, 생성된 인공 신경망을 이용하여 서비스 제공을 위한 API를 생성하는 방법을 중심으로 설명한다.Hereinafter, for convenience of explanation, assuming that the artificial neural network is a neural network according to the recurrent neural network model described in FIG. 5, the server 100 generates an artificial neural network based on the first training data provided by the user, and It will focus on the method of creating an API for service provision using a neural network.

본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 제1 학습 데이터를 수신할 수 있다.The server 100 according to an embodiment of the present invention may receive the first learning data from the user terminal 200.

본 발명에서 '제1 학습 데이터'는 인간이 식별할 수 있는 형태의 데이터로, 가령 텍스트 데이터, 이미지 데이터 및 음향 데이터 중 적어도 하나 이상이 결합된 형태의 데이터일 수 있다. 예를 들어 텍스트 콘텐츠로부터 작성자의 감정을 결정하는 시스템의 경우, 제1 학습 데이터는 작성자가 작성한 텍스트와 이에 대한 감정의 설명(예컨대 '기쁨' 등)을 포함할 수 있다.In the present invention, the'first learning data' is data in a form that can be identified by a human, and may be data in a form in which at least one or more of text data, image data, and sound data are combined. For example, in the case of a system for determining an author's emotion from text content, the first learning data may include a text created by the author and a description of the emotion (eg,'joy').

한편 본 발명에서 '제2 학습 데이터'는 서버(100) 및/또는 리소스 서버(300)가 식별할 수 있는 형태의 데이터로, 소정의 전처리 방식에 따라 변환된 제1 학습 데이터를 의미할 수 있다. 가령 제2 학습 데이터는 [0.1, 0.7, -2.5,??]와 같은 벡터 데이터를 의미할 수 있다. Meanwhile, in the present invention, the'second learning data' is data in a form that can be identified by the server 100 and/or the resource server 300, and may mean first learning data converted according to a predetermined preprocessing method. . For example, the second training data may mean vector data such as [0.1, 0.7, -2.5,??].

본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 제1 학습 데이터 그 자체(즉 제1 학습 데이터의 내용 그 자체)를 수신할 수도 있고, 제1 학습 데이터가 저장된 경로에 대한 정보를 수신할 수도 있다. 가령 사용자가 제1 학습 데이터를 서버(100)의 메모리(130)에 미리 업로드한 경우, 서버(100)는 사용자 단말(200)로부터 제1 학습 데이터의 저장 경로를 수신할 수도 있다. 다만 이와 같은 수신 방식은 예시적인것으로, 본 발명의 사상이 이에 한정되는 것은 아니다.The server 100 according to an embodiment of the present invention may receive the first training data itself (that is, the content of the first training data itself) from the user terminal 200, or in a path where the first training data is stored. You can also receive information about it. For example, when the user has previously uploaded the first learning data to the memory 130 of the server 100, the server 100 may receive a storage path of the first learning data from the user terminal 200. However, such a reception method is exemplary, and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 서버(100)는 전술한 과정에 따라 수신된 제1 학습 데이터를 소정의 방식으로 전처리 하여 제2 학습 데이터를 생성할 수 있다. The server 100 according to an embodiment of the present invention may generate second training data by preprocessing the first training data received according to the above-described process in a predetermined manner.

도 6은 본 발명의 일 실시예에 따른 서버(100)가 제1 학습 데이터(410)를 소정의 방식으로 전처리 하여 제2 학습 데이터(420)를 생성하는 과정을 설명하기 위한 도면이다.6 is a diagram for explaining a process in which the server 100 generates the second training data 420 by preprocessing the first training data 410 in a predetermined manner according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 서버(100)는 제1 학습 데이터(410)의 처리가 가능한 적어도 하나의 전처리 방식의 식별 정보를 사용자 단말(200)에 제공할 수 있다. 이때 본 발명의 일 실시예에 따른 서버(100)는 제1 학습 데이터(410)의 분석을 통하여 사용이 가능한 전처리 방식을 선별할 수 있다. The server 100 according to an embodiment of the present invention may provide identification information of at least one pre-processing method capable of processing the first learning data 410 to the user terminal 200. In this case, the server 100 according to an embodiment of the present invention may select an available preprocessing method through analysis of the first learning data 410.

가령 서버(100)는 제1 학습 데이터(410)에 텍스트 데이터가 포함되어 있는지 여부를 확인하고, 텍스트 데이터가 포함된 경우 '문자 벡터화' 전처리 방식을 사용 가능한 전처리 방식으로 선별할 수 있다. For example, the server 100 may check whether text data is included in the first training data 410, and if text data is included, the'character vectorization' pre-processing method may be selected as an available pre-processing method.

또한 서버(100)는 제1 학습 데이터(410)에 이미지 데이터가 포함된 경우, '이미지 전처리'와 같은 전처리 방식을 사용 가능한 전처리 방식으로 선별할 수도 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.In addition, when the image data is included in the first training data 410, the server 100 may select a preprocessing method such as'image preprocessing' as an available preprocessing method. However, this is merely an example and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 제공된 하나 이상의 전처리 방식에 대한 선택정보를 수신할 수 있다. 사용자는 제공된 하나 이상의 전처리 방식 중 자신이 원하는 전처리 방식을 선택할 수 있다.The server 100 according to an embodiment of the present invention may receive selection information for one or more preprocessing methods provided from the user terminal 200. The user may select a desired preprocessing method from among one or more provided preprocessing methods.

본 발명의 일 실시예에 따른 서버(100)는 사용자의 선택정보에 대응되는 전처리 방식으로 제1 학습 데이터(410)를 전처리 하여 제2 학습 데이터(420)를 생성할 수 있다. 대부분의 인공 신경망의 경우 입력 데이터와 출력 데이터의 포맷은 벡터이기에, 상술한 바와 같은 제1 학습 데이터(410)의 전처리는 제1 학습 데이터(410)의 벡터화를 의미할 수 있다.The server 100 according to an embodiment of the present invention may generate the second training data 420 by pre-processing the first training data 410 in a pre-processing method corresponding to the user's selection information. In most artificial neural networks, the format of the input data and the output data is a vector, so the preprocessing of the first training data 410 as described above may mean vectorization of the first training data 410.

선택적 실시예에서, 본 발명의 일 실시예에 따른 서버(100)는 제1 학습 데이터(410)를 전처리 하여 제2 학습 데이터(420)를 생성하는 과정에 있어서, 제1 학습 데이터(410)의 전처리 진행 정도에 관한 정보를 사용자 단말(200)에 제공할 수 있다. In an optional embodiment, in the process of generating the second training data 420 by preprocessing the first training data 410, the server 100 according to an embodiment of the present invention Information on the degree of pre-processing may be provided to the user terminal 200.

일반적으로 인공 신경망의 학습을 위한 제1 학습 데이터(410)는 많은 수의 데이터를 포함하므로, 이와 같이 전처리 진행 정도에 관한 정보를 사용자에게 제공함으로써 사용자가 작업의 진행 정도를 손쉽게 파악할 수 있도록 할 수 있다.In general, since the first training data 410 for learning an artificial neural network includes a large number of data, it is possible for the user to easily grasp the progress of the task by providing information on the preprocessing progress to the user. have.

이어서 본 발명의 일 실시예에 따른 서버(100)는 전술한 과정에 의해서 생성된 제2 학습 데이터(420)에 기초하여 복수의 파라미터 셋 각각에 대한 인공 신경망의 학습 결과를 산출할 수 있다. 또한 서버(100)는 산출 결과에 기초하여 복수의 파라미터 셋 중 어느 하나를 최적의 파라미터 셋으로 결정할 수 있다.Subsequently, the server 100 according to an embodiment of the present invention may calculate a learning result of the artificial neural network for each of the plurality of parameter sets based on the second training data 420 generated by the above-described process. In addition, the server 100 may determine any one of the plurality of parameter sets as the optimal parameter set based on the calculation result.

이를 보다 상세히 살펴보면, 본 발명의 일 실시예에 따른 서버(100)는 도 7에 도시된 바와 같이 학습에 사용하고자 하는 복수의 파라미터 셋을 결정할 수 있다. 이때 각각의 파라미터 셋은 가령 인공 신경망의 학습 조건에 관한 파라미터 셋인 학습 파라미터 셋과 인공 신경망의 구조에 관한 파라미터 셋인 구조 파라미터 셋을 포함할 수 있다. Looking at this in more detail, the server 100 according to an embodiment of the present invention may determine a plurality of parameter sets to be used for learning, as shown in FIG. 7. In this case, each parameter set may include a learning parameter set, which is a parameter set related to a learning condition of the artificial neural network, and a structure parameter set, which is a parameter set related to the structure of the artificial neural network.

이때 학습 파라미터 셋은 동일한 학습 데이터를 이용하여 학습을 반복하는 횟수인 반복 파라미터와 1회의 학습에 사용되는 데이터의 수량에 대응되는 단위 수량 파라미터를 포함할 수 있다. In this case, the learning parameter set may include a repetition parameter, which is a number of repetitions of learning using the same learning data, and a unit quantity parameter corresponding to a quantity of data used for one learning.

구조 파라미터의 경우 전술한 바와 같이 인공 신경망의 종류에 따라 인공 신경망의 구조를 결정하는 하나 이상의 파라미터를 포함할 수 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.As described above, the structure parameter may include one or more parameters that determine the structure of the artificial neural network according to the type of the artificial neural network. However, this is merely an example and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 수신된 파라미터 값에 기초하여 파라미터 셋을 결정할 수 있다. 가령 본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 제1 파라미터 셋(Param_Set 1)에 포함되는 반복 파라미터, 단위 파라미터, 입력 노드의 수 및 히든 레이어의 수를 수신하고, 수신된 파라미터 값에 기초하여 상기 제1 파라미터 셋(Param_Set 1)을 결정할 수 있다. The server 100 according to an embodiment of the present invention may determine a parameter set based on a parameter value received from the user terminal 200. For example, the server 100 according to an embodiment of the present invention receives a repetition parameter, a unit parameter, the number of input nodes, and the number of hidden layers included in the first parameter set (Param_Set 1) from the user terminal 200, The first parameter set (Param_Set 1) may be determined based on the received parameter value.

또한 이와 유사하게, 서버(100)는 사용자 단말(200)로부터 제2 파라미터 셋(Param_Set 2)에 포함되는 반복 파라미터, 단위 파라미터, 입력 노드의 수 및 히든 레이어의 수를 수신하고, 수신된 파라미터 값에 기초하여 상기 제2 파라미터 셋(Param_Set 2)을 결정할 수 있다.Also similarly, the server 100 receives a repetition parameter, a unit parameter, the number of input nodes, and the number of hidden layers included in the second parameter set (Param_Set 2) from the user terminal 200, and receives the received parameter value. The second parameter set (Param_Set 2) may be determined based on.

결정된 파라미터 셋들은 리소스 서버(300)가 인공 신경망을 동시에 및/또는 순차적으로 학습시키는데 사용될수 있다. 물론 이러한 인공 신경망의 학습은 서버(100)의 제어에 따른 것일 수 있다.The determined parameter sets may be used by the resource server 300 to simultaneously and/or sequentially learn the artificial neural network. Of course, the learning of the artificial neural network may be under the control of the server 100.

본 발명에서 인공 신경망을 '학습' 시키는 것은, 학습 데이터에 대한 인공 신경망의 오차율을 산출하고, 산출된 오차율을 이용하여 인공 신경망의 적어도 하나의 구성요소를 업데이트(예를 들어 인공 신경망을 구성하는 계수를 갱신) 하는 일련의 과정을 의미할 수 있다. In the present invention,'learning' an artificial neural network calculates an error rate of the artificial neural network for the training data, and updates at least one component of the artificial neural network using the calculated error rate (e.g., coefficients constituting the artificial neural network It may mean a series of processes to update).

이때 인공 신경망의 오차율을 산출하는 과정은 리소스 서버(300)에서 수행될 수 있고, 산출된 오차율에 기초하여 인공 신경망의 구성요소를 업데이트 하는 과정은 서버(100)에서 수행될 수 있다. In this case, the process of calculating the error rate of the artificial neural network may be performed by the resource server 300, and the process of updating the components of the artificial neural network based on the calculated error rate may be performed by the server 100.

선택적 실시예에서, 인공 신경망의 오차율을 산출하고, 산출된 오차율에 기초하여 인공 신경망의 구성요소를 업데이트 하는 일련의 과정은 리소스 서버(300)에서 수행될 수도 있다. 물론 이러한 경우에도 이와 같은 일련의 과정은 서버(100)의 제어에 따라 수행되는것일 수 있다.In an alternative embodiment, a series of processes of calculating the error rate of the artificial neural network and updating the components of the artificial neural network based on the calculated error rate may be performed by the resource server 300. Of course, even in this case, such a series of processes may be performed under the control of the server 100.

본 발명의 다른 실시예에 따른 서버(100)는 사용자 단말(200)로부터 파라미터의 결정 조건을 수신하고, 이에 따라 다양한 파라미터 셋을 생성할 수도 있다. 가령 본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 복수의 파라미터의 범위를 포함하는 파라미터 결정 조건을 수신할 수 있다. 예를 들어 서버(100)는 사용자 단말(200)로부터 반복 파라미터가 20 내지 40 이고, 단위 수량 파라미터가 50 내지 100인 파라미터 결정 조건을 수신할 수 있다.The server 100 according to another embodiment of the present invention may receive a parameter determination condition from the user terminal 200 and generate various parameter sets accordingly. For example, the server 100 according to an embodiment of the present invention may receive a parameter determination condition including a range of a plurality of parameters from the user terminal 200. For example, the server 100 may receive a parameter determination condition in which the repetition parameter is 20 to 40 and the unit quantity parameter is 50 to 100 from the user terminal 200.

본 발명의 일 실시예에 따른 서버(100)는 수신된 파라미터의 범위 내에서, 적어도 하나의 파라미터 셋을 결정할 수 있다. 가령 서버(100)는 수신된 파라미터 결정 조건에 기초하여 제3 파라미터 셋 및 제4 파라미터 셋을 결정할 수 있다. 이때 제3 파라미터 셋과 제4 파라미터 셋은 각각의 파라미터 셋을 구성하는 적어도 하나의 파라미터의 값이 상이할 수 있다. The server 100 according to an embodiment of the present invention may determine at least one parameter set within the range of the received parameter. For example, the server 100 may determine a third parameter set and a fourth parameter set based on the received parameter determination condition. In this case, the third parameter set and the fourth parameter set may have different values of at least one parameter constituting each parameter set.

선택적 실시예에서, 본 발명의 일 실시예에 따른 서버(100)는 수신된 파라미터의 범위 내에서, 소정의 규칙에 따라 적어도 하나의 파라미터 셋을 결정할 수 있다. 가령 본 발명의 일 실시예에 따른 서버(100)는 범위를 수신한 각각의 파라미터에 대해서, 수신된 범위 내에서 파라미터를 무작위(또는 랜덤)로 추출하는 방식으로 파라미터 셋을 결정할 수 있다.In an optional embodiment, the server 100 according to an embodiment of the present invention may determine at least one parameter set according to a predetermined rule within the range of the received parameter. For example, the server 100 according to an embodiment of the present invention may determine a parameter set by randomly (or randomly) extracting a parameter from within the received range for each parameter that has received a range.

또 다른 선택적 실시예에서, 본 발명의 일 실시예에 따른 서버(100)는 수신된 파라미터의 범위 내에서, 생성 가능한 모든 조합의 파라미터 셋을 생성하는 방식으로 파라미터 셋을 결정할 수 있다. In another optional embodiment, the server 100 according to an embodiment of the present invention may determine a parameter set by generating a parameter set of all possible combinations within the range of the received parameter.

가령 파라미터 셋에 포함되는 제1 파라미터의 선택 가능한 가지수가 5가지이고, 제2 파라미터의 선택 가능한 가지수가 10가지인 경우, 서버(100)는 총 50 가지의 파라미터 셋을 생성할 수 있다.For example, when the number of selectable branches of the first parameter included in the parameter set is 5 and the number of selectable branches of the second parameter is 10, the server 100 may generate a total of 50 parameter sets.

본 발명의 일 실시예에 따른 서버(100)는 상술한 과정에 의해 결정된 파라미터셋 각각에 대한 인공 신경망의 학습 결과를 산출할 수 있다.The server 100 according to an embodiment of the present invention may calculate a learning result of an artificial neural network for each parameter set determined by the above-described process.

이를 보다 상세히 살펴보면, 본 발명의 일 실시예에 따른 서버(100)는 리소스 서버(300)의 가용 상태를 참조하여, 특정 파라미터 셋의 학습 결과를 산출할 제3 프로세서(또는 리소스 서버)를 결정할 수 있다. 가령 서버(100)는 첫 번째 리소스 서버(300A)의 제3-2 프로세서(340A-2)에 대해, 첫 번째 파라미터 셋(도 6의 Param_Set 1)을 이용하여 인공 신경망의 학습 결과를 산출할 것을 요청할 수 있다. Looking at this in more detail, the server 100 according to an embodiment of the present invention may determine a third processor (or resource server) to calculate a learning result of a specific parameter set by referring to the available state of the resource server 300. have. For example, the server 100 asks for the 3-2 processor 340A-2 of the first resource server 300A to calculate the training result of the artificial neural network using the first parameter set (Param_Set 1 in FIG. 6). Can be requested.

본 발명의 일 실시예에 따른 서버(100)는 해당 파라미터 셋(즉 학습을 수행하고자 하는 파라미터 셋)에 포함되는 구조 파라미터 셋을 참조하여 인공 신경망을 생성할 수 있다. 전술한 바와 같이 구조 파라미터 셋은 인공 신경망의 구조에 관한 정보를 포함하므로, 서버(100)는 파라미터 셋을 참조하여 인공 신경망을 생성할 수 있다. The server 100 according to an embodiment of the present invention may generate an artificial neural network by referring to a structure parameter set included in a corresponding parameter set (ie, a parameter set to be trained). As described above, since the structure parameter set includes information on the structure of the artificial neural network, the server 100 may generate the artificial neural network by referring to the parameter set.

본 발명의 일 실시예에 따른 서버(100)는 생성된 인공 신경망을 결정된 리소스 서버(전술한 과정에 의해 결정된 리소스 서버)에 전송하고, 리소스 서버가 생성된 인공신경망을 학습 파라미터 셋에 따라 학습하도록 요청할 수 있다.The server 100 according to an embodiment of the present invention transmits the generated artificial neural network to the determined resource server (resource server determined by the above-described process), and the resource server learns the generated artificial neural network according to a set of learning parameters. Can be requested.

도 8은 본 발명의 일 실시예에 따른 서버(100)가 복수의 리소스 서버에 대해서 서로 다른 파라미터 셋에 따른 학습의 수행을 요청하는 방법을 설명하기 위한 도면이다.FIG. 8 is a diagram for explaining a method of requesting a server 100 to perform learning according to different parameter sets for a plurality of resource servers according to an embodiment of the present invention.

가령 본 발명의 일 실시예에 따른 서버(100)는 첫 번째 리소스 서버에 대해서 도 7의 첫 번째 파라미터 셋(Param_Set 1)에 따라 제2 학습 데이터(420)를 100개씩 나누어 학습하되, 제2 학습 데이터(420)를 20번 반복하여 학습하는 요청(510A)을 전송할 수 있다. 예를 들어 제2 학습 데이터(420)가 총 1000개의 데이터로 구성된 경우, 서버(100)는 첫 번째 리소스 서버에 대해서 1000개의 데이터 중 1회의 학습에 100개씩만 사용하되, 1000개의 데이터를 20번 사용하여 반복학습할 것을 요청할 수 있다. 이때 서버(100)는 첫 번째 파라미터 셋(Param_Set 1)에 포함된 구조 파라미터에 따라 생성된 인공 신경망(500A)을 이용하여 학습할 것을 요청할 수 있다. 한편 제2 학습 데이터(420)에 포함되는 개별 데이터 각각은 입력 데이터와 이에 대응되는 출력 데이터를 포함할 수 있다.For example, the server 100 according to an embodiment of the present invention divides and learns the second training data 420 by 100 according to the first parameter set (Param_Set 1) of FIG. 7 for the first resource server, but the second learning A request 510A for learning by repeating the data 420 20 times may be transmitted. For example, if the second training data 420 consists of a total of 1000 pieces of data, the server 100 uses only 100 for one training out of 1000 pieces of data for the first resource server, but uses 1000 pieces of data 20 times. Can be used to request iterative learning. At this time, the server 100 may request to learn using the artificial neural network 500A generated according to the structure parameter included in the first parameter set (Param_Set 1). Meanwhile, each of the individual data included in the second training data 420 may include input data and output data corresponding thereto.

또한 서버(100)는 이와 유사하게, 두 번째 리소스 서버에 대해서 도 7의 두 번째 파라미터 셋(Param_Set 2)에 따라 제2 학습 데이터(420)를 100개씩 나누어 학습하되, 제2 학습 데이터(420)를 30번 반복하여 학습하는 요청(510B)을 전송할 수 있다. 이때 서버(100)는 두 번째 파라미터 셋(Param_Set 2)에 포함된 구조 파라미터에 따라 생성된 인공 신경망(500B)을 이용하여 학습할 것을 요청할 수 있다.In addition, similarly, the server 100 divides 100 pieces of the second training data 420 by 100 according to the second parameter set (Param_Set 2) of FIG. 7 for the second resource server, but the second training data 420 It is possible to transmit a request (510B) for learning by repeating 30 times. At this time, the server 100 may request to learn using the artificial neural network 500B generated according to the structure parameter included in the second parameter set (Param_Set 2).

물론 서버(100)는 두 번째 리소스 서버에 대해서(두 번째 리소스 서버에 가용 리소스가 충분하다는 전제 하에) 도 7의 세 번째 파라미터 셋(Param_Set 3)에 따라 제2 학습 데이터(420)를 50개씩 나누어 학습하되, 제2 학습 데이터(420)를 40번 반복하여 학습하는 요청(510C)을 전송할 수 있다. 이때 서버(100)는 세 번째 파라미터 셋(Param_Set 3)에 포함된 구조 파라미터에 따라 생성된 인공 신경망(500C)을 이용하여 학습할 것을 요청할 수 있다. Of course, the server 100 divides the second training data 420 by 50 pieces according to the third parameter set (Param_Set 3) of FIG. 7 for the second resource server (assuming that the second resource server has sufficient available resources). Although learning, a request 510C for learning by repeating the second learning data 420 40 times may be transmitted. In this case, the server 100 may request to learn by using the artificial neural network 500C generated according to the structure parameter included in the third parameter set (Param_Set 3).

본 발명의 일 실시예에 따른 서버(100)는 전술한 요청(510A, 510B, 510C)들을 동시에 전송할 수 있다. 바꾸어 말하면, 본 발명의 일 실시예에 따른 서버(100)는 전술한 요청(510A, 510B, 510C)에 따른 인공 신경망 학습 과정의 적어도 일부가 병렬적으로 수행되도록 리소스 서버(300)에게 요청할 수 있다.The server 100 according to an embodiment of the present invention may simultaneously transmit the aforementioned requests 510A, 510B, and 510C. In other words, the server 100 according to an embodiment of the present invention may request the resource server 300 to perform at least a part of the artificial neural network training process according to the above-described requests 510A, 510B, and 510C in parallel. .

본 발명의 일 실시예에 따른 서버(100)는 도 9에 도시된 바와 같이, 소정의 입력 값(600)을 리소스 서버(300)(신경망을 학습한 리소스 서버)에 전송하고, 리소스 서버(300)로부터 입력 값에 대한 결과값(610A, 610B, 610C)을 수신할 수 있다. 또한 서버(100)는 수신된 결과값을 평가함으로써, 인공 신경망의 학습 결과를 산출할 수 있다.As shown in FIG. 9, the server 100 according to an embodiment of the present invention transmits a predetermined input value 600 to the resource server 300 (a resource server that has learned a neural network), and the resource server 300 ), the result values 610A, 610B, and 610C for the input value may be received. In addition, the server 100 may calculate the learning result of the artificial neural network by evaluating the received result value.

이때 '소정의 입력값'은 리소스 서버(300)가 학습에 사용된 제2 학습 데이터(420)에 '입력 값'으로 포함된 데이터와 같은 종류의 데이터를 의미할 수 있다. 즉 '소정의 입력 값'은 인공 신경망의 학습의 정확도를 판단하기 위한 테스트 값으로, 대응되는 출력 값을 미리 알고 있는 값을 의미할 수 있다. 한편 이와 같은 소정의 입력값은 복수일 수 있다.In this case, the'predetermined input value' may mean data of the same type as the data included as the'input value' in the second training data 420 used for training by the resource server 300. That is, the'predetermined input value' is a test value for determining the learning accuracy of the artificial neural network, and may mean a value in which a corresponding output value is known in advance. Meanwhile, there may be a plurality of such predetermined input values.

본 발명의 일 실시예에 따른 서버(100)는 리소스 서버(300)로부터 수신된 결과값(610A, 610B, 610C)과 미리 알고 있는 출력 값을 비교하여, 학습된 인공 신경망의 정확도를 산출할 수 있다. 이때 '정확도'은 인공 신경망의 출력 값과 정답이 차이가 있는 정도를 의미할 수 있다. The server 100 according to an embodiment of the present invention may calculate the accuracy of the learned artificial neural network by comparing result values 610A, 610B, 610C received from the resource server 300 with a known output value. have. In this case,'accuracy' may mean the degree to which the output value of the artificial neural network and the correct answer are different.

한편 본 발명의 일 실시예에 따른 서버(100)는 리소스 서버로부터 전술한 요청(510A, 510B, 510C)에 따른 학습 수행 과정 중 산출되는 오차율을 수신할 수 있다. 이때 '오차율'은 전술한 제2 학습 데이터(420)에 포함된 입력값에 대한 인공 신경망의 출력값과 제2 학습 데이터(420)에 포함된 출력값(즉 입력값에 대응되는 출력값) 간의 차이가 발생하는 정도를 의미할 수 있다. 리소스 서버(300)는 이러한 오차율이 감소하도록 인공 신경망을 구성하는 적어도 하나의 계수들을 적절히 갱신함으로써 학습이 이루어 지도록 할 수 있다.Meanwhile, the server 100 according to an embodiment of the present invention may receive an error rate calculated during the learning process according to the aforementioned requests 510A, 510B, and 510C from the resource server. At this time, the'error rate' is a difference between the output value of the artificial neural network for the input value included in the above-described second training data 420 and the output value included in the second training data 420 (that is, the output value corresponding to the input value). It can mean the degree to which it is done. The resource server 300 may perform learning by appropriately updating at least one coefficient constituting the artificial neural network to reduce such an error rate.

본 발명의 일 실시예에 따른 서버(100)는 이와 같은 오차율 및 정확도를 포함하는 학습 결과를 산출할 수 있다. 이때 본 발명의 일 실시예에 따른 서버(100)는 학습 결과의 산출에 있어서 복수의 오차율 중 최종 오차율을 사용할 수 있다. 학습 과정에 있어서 오차율은 점차적으로 감소하는 경향을 보이므로, 최종 오차율은 제2 학습 데이터(420)를 이용한 학습 과정의 가장 마지막에 산출되는 오차율을 의미할 수 있다. The server 100 according to an embodiment of the present invention may calculate a learning result including such an error rate and accuracy. In this case, the server 100 according to an embodiment of the present invention may use a final error rate among a plurality of error rates in calculating a learning result. Since the error rate tends to gradually decrease in the learning process, the final error rate may mean an error rate calculated at the end of the learning process using the second training data 420.

또한 본 발명의 일 실시예에 따른 서버(100)는 복수의 파라미터 셋 각각에 대한 학습 결과 중 소정의 조건을 만족하는 파라미터 셋을 최적의 파라미터 셋으로 결정할 수 있다. In addition, the server 100 according to an embodiment of the present invention may determine a parameter set that satisfies a predetermined condition among learning results for each of a plurality of parameter sets as an optimal parameter set.

가령 본 발명의 일 실시예에 따른 서버(100)는 제1 가중치를 오차율로 나눈 값과 정확도와 제2 가중치가 곱해진 값의 합이 가장 큰 파라미터 셋을 최적의 파라미터 셋으로 결정할 수 있다. 이때 제1 가중치 및 제2 가중치는 사용자에 의해 미리 결정되는 상수일 수 있다.For example, the server 100 according to an embodiment of the present invention may determine a parameter set in which a value obtained by dividing a first weight by an error rate and a sum of a value obtained by multiplying the accuracy and the second weight is the largest parameter set as the optimal parameter set. In this case, the first weight and the second weight may be constants previously determined by the user.

선택적 실시예에서, 서버(100)는 정확도가 가장 높은 파라미터 셋을 최적의 파라미터 셋으로 결정할 수도 있고, 오차율이 가장 낮은 파라미터 셋을 최적의 파라미터 셋으로 결정할 수도 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.In an optional embodiment, the server 100 may determine the parameter set with the highest accuracy as the optimal parameter set, or may determine the parameter set with the lowest error rate as the optimal parameter set. However, this is merely an example and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 서버(100)는 전술한 과정에 따라 결정된 최적의 파라미터 셋이 적용된 배포 인공 신경망을 생성할 수 있다.The server 100 according to an embodiment of the present invention may generate a distributed artificial neural network to which an optimal parameter set determined according to the above-described process is applied.

가령 전술한 바와 같이 파라미터 셋이 인공 신경망의 구조 파라미터 셋 및 인공 신경망의 학습 조건에 관한 파라미터 셋을 포함하는 경우, 본 발명의 일 실시예에 따른 서버(100)는 최적의 파라미터 셋에 포함된 구조 파라미터 셋에 기초하여 배포 인공 신경망을 생성할 수 있다.For example, as described above, when the parameter set includes a structure parameter set of an artificial neural network and a parameter set related to a learning condition of the artificial neural network, the server 100 according to an embodiment of the present invention has a structure included in the optimal parameter set. A distributed artificial neural network can be created based on the parameter set.

또한 서버(100)는 최적의 파라미터 셋에 포함된 학습 파라미터 셋에 따라, 제2 학습 데이터(420)를 이용하여 생성된 배포 인공 신경망을 학습시킬 수 있다. 이와 같이 본 발명은 최적의 성능을 갖는 배포 인공 신경망을 생성할 수 있다.In addition, the server 100 may train the distributed artificial neural network generated by using the second training data 420 according to the training parameter set included in the optimal parameter set. As described above, the present invention can create a distributed artificial neural network with optimal performance.

본 발명의 일 실시예에 따른 서버(100)는 배포 인공 신경망을 이용하는 서비스 제공을 위한 API를 생성할 수 있다.The server 100 according to an embodiment of the present invention may generate an API for providing a service using a distributed artificial neural network.

도 10은 본 발명의 일 실시예에 따른 서버(100)가 배포 인공 신경망을 이용하여 생성한 API(720)의 구조를 설명하기 위한 도면이다.10 is a diagram for explaining the structure of the API 720 generated by the server 100 using a distributed artificial neural network according to an embodiment of the present invention.

본 발명에서 API(Application Programming Interface)(720)는 사용자가 제작한 어플리케이션에서 인공 신경망을 사용할 수 있도록 서버(100)에 생성된 인터페이스를 의미할 수 있다.In the present invention, the API (Application Programming Interface) 720 may mean an interface created in the server 100 so that an artificial neural network can be used in an application produced by a user.

본 발명의 일 실시예에 따른 서버(100)는 제2 학습 데이터(420)를 생성하는 과정에서 결정된 전처리 방식에 기초하여, 입력 데이터(710)를 전처리 하는 입력 데이터 전처리 모듈(721)을 생성할 수 있다. 이때 생성된 입력 데이터 전처리 모듈(721)은 입력 데이터를 벡터화 하는 모듈을 의미할 수 있다.The server 100 according to an embodiment of the present invention generates an input data preprocessing module 721 that preprocesses the input data 710 based on the preprocessing method determined in the process of generating the second learning data 420. I can. At this time, the generated input data preprocessing module 721 may mean a module that vectorizes input data.

본 발명의 일 실시예에 따른 서버(100)는 전술한 과정에 따라 생성된 배포 신경망을 이용하여, 입력 데이터(710)에 대한 출력 데이터를 생성하는 신경망 모듈(722)을 생성할 수 있다. 가령 서버(100)는 배포 신경망의 입력 레이어에 입력 데이터(710)가 입력될 수 있도록 처리하고, 배포 신경망의 출력 레이어에 출력되는 값이 출력 데이터가 될 수 있도록 처리(및/또는 정의)하는 방식으로 신경망 모듈(722)을 생성할 수 있다.The server 100 according to an embodiment of the present invention may generate the neural network module 722 that generates output data for the input data 710 by using the distribution neural network generated according to the above-described process. For example, the server 100 processes (and/or defines) the input data 710 to be input to the input layer of the distribution neural network, and the value output to the output layer of the distribution neural network becomes output data. As a result, the neural network module 722 may be generated.

본 발명의 일 실시예에 따른 서버(100)는 제1 학습 데이터(410)에 포함된 출력 데이터의 포맷을 참조하여, 신경망 모듈(722)의 출력 데이터의 포맷을 변환하는 출력 데이터 변환 모듈(723)을 생성할 수 있다. 가령 출력 데이터 변환 모듈(723)은 벡터 형태의 출력 데이터를 이미지 형태의 데이터 및/또는 텍스트 형태의 출력 데이터(730)로 변환할 수 있다.The server 100 according to an embodiment of the present invention refers to the format of the output data included in the first training data 410, and converts the format of the output data of the neural network module 722 into an output data conversion module 723. ) Can be created. For example, the output data conversion module 723 may convert the vector output data into image data and/or text output data 730.

본 발명의 일 실시예에 따른 서버(100)는 전처리 모듈(721), 신경망 모듈(722) 및 출력 데이터 변환 모듈(723)을 포함하는 API(720)를 생성할 수 있다. 바꾸어 말하면 본 발명의 일 실시예에 따른 서버(100)는 전술한 세 모듈(721, 722, 723)을 패키지(Package)화 할 수 있다.The server 100 according to an embodiment of the present invention may generate an API 720 including a preprocessing module 721, a neural network module 722, and an output data conversion module 723. In other words, the server 100 according to an embodiment of the present invention may package the three modules 721, 722, and 723 described above.

본 발명의 일 실시예에 따른 서버(100)는 생성된 API(720)에 대한 정보를 사용자 단말(200)에 제공할 수 있다. 가령 서버(100)는 API의 접속 주소, API의 사용 포맷에 관한 정보를 사용자 단말(200)에 제공할 수 있다. 사용자는 제공된 API(720)에 대한 정보를 참조하여, API(720)에 기반한 자신의 서비스를 손쉽게 구현할 수 있다.The server 100 according to an embodiment of the present invention may provide information on the generated API 720 to the user terminal 200. For example, the server 100 may provide the user terminal 200 with information on the access address of the API and the format of using the API. A user can easily implement his/her service based on the API 720 by referring to the information on the provided API 720.

도 11 내지 도 13은 본 발명의 일 실시예에 따른 사용자 단말(200)에 표시되는 화면(1100, 1200, 1300)의 예시이다.11 to 13 are examples of screens 1100, 1200, and 1300 displayed on the user terminal 200 according to an embodiment of the present invention.

도 11은 사용자가 제1 학습 데이터를 등록하고 이에 대한 전처리 방식을 선택하기 위한 화면(1100)의 예시이다.11 is an example of a screen 1100 for a user to register first learning data and select a preprocessing method for it.

도 11을 참조하면, 화면(1100)은 제1 학습 데이터를 입력하기 위한 영역(1110) 및 전처리 방식을 선택하기 위한 영역(1120)을 포함할 수 있다.Referring to FIG. 11, the screen 1100 may include an area 1110 for inputting first learning data and an area 1120 for selecting a preprocessing method.

도시된 바와 같이 사용자는 영역(1110) 상에 데이터의 저장 경로(즉 서버(100) 내의 저장 경로)를 입력하는 방식으로 제1 학습 데이터를 서버(100)에 전달할 수 있다. 물론 이와 같은 방식은 사용자가 제1 학습 데이터를 미리 업로드 하였음을 전제로 한다.As illustrated, the user may transmit the first learning data to the server 100 by inputting a data storage path (ie, a storage path in the server 100) on the area 1110. Of course, this method assumes that the user has previously uploaded the first learning data.

한편 사용자는 영역(1120)상에 표시되는 복수의 전처리 방식 중 어느 하나를 선택하여 제1 학습 데이터를 제2 학습 데이터로 변환할 수 있다. 사용자는 자신이 입력한 제1 학습 데이터의 포맷에 따라 단지 전처리 방식을 선택함으로써, 복잡한 설정 없이 손쉽게 전처리를 수행할 수 있다.Meanwhile, the user may convert the first learning data into second learning data by selecting any one of a plurality of preprocessing methods displayed on the area 1120. The user can easily perform the preprocessing without complicated settings by simply selecting the preprocessing method according to the format of the first learning data input by the user.

도 12는 학습 결과 및/또는 상태에 대한 정보를 제공하는 화면(1200)의 예시이다. 12 is an example of a screen 1200 that provides information on a learning result and/or state.

도 12를 참조하면, 본 발명의 일 실시예에 따른 서버(100)는 학습 결과 및/또는 상태에 대한 정보를 제공하는 화면(1200)을 사용자 단말(200)에 제공할 수 있다. 이때 화면(1200)은 학습(즉 파라미터 셋)의 식별 정보가 표시되는 영역(1210), 학습 상태가 표시되는 영역(1220), 학습 결과가 표시되는 영역(1230) 및 선택된 학습을 API화 하기 위한 버튼이 표시되는 영역(1240)을 포함할 수 있다.Referring to FIG. 12, the server 100 according to an embodiment of the present invention may provide a screen 1200 for providing information on a learning result and/or status to the user terminal 200. At this time, the screen 1200 is an area 1210 in which identification information of learning (that is, a parameter set) is displayed, an area 1220 in which the learning status is displayed, an area 1230 in which the learning result is displayed, and the selected learning are API. An area 1240 in which a button is displayed may be included.

본 발명의 일 실시예에서, 사용자는 학습 결과가 표시되는 영역(1230)에 표시되는 학습 결과(즉 복수의 파라미터 셋 각각에 대한 학습 결과)를 참조하여, 최적의 파라미터 셋을 결정하고, 영역(1240)에 표시되는 버튼('배포' 버튼)에 대한 입력을 수행함으로써 해당 파라미터 셋을 이용한 API를 생성할 수 있다.In an embodiment of the present invention, the user determines an optimal parameter set by referring to the learning result (that is, the learning result for each of the plurality of parameter sets) displayed in the region 1230 in which the learning result is displayed, and the region ( By performing an input to a button ('distribution' button) displayed on 1240), an API using a corresponding parameter set can be created.

도 13은 생성된 API에 대한 정보를 제공하는 화면(1300)의 예시이다.13 is an example of a screen 1300 that provides information on a generated API.

도 13을 참조하면, 화면(1300)은 API의 상태를 표시하는 영역(1310) 및 API의 사용 포맷에 관한 정보를 표시하는 영역(1320)을 포함할 수 있다.Referring to FIG. 13, the screen 1300 may include an area 1310 that displays an API status and an area 1320 that displays information about an API usage format.

사용자는 영역(1320)에 표시되는 사용 포맷을 참조하여, API에 기반한 자신의 서비스를 손쉽게 구현할 수 있다.The user can easily implement their own service based on the API by referring to the usage format displayed in the area 1320.

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

본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 제1 학습 데이터를 수신할 수 있다.(S1401) 전술한 바와 같이 본 발명에서 '제1 학습 데이터'는 인간이 식별할 수 있는 형태의 데이터로, 가령 텍스트 데이터, 이미지 데이터 및 음향 데이터 중 적어도 하나 이상이 결합된 형태의 데이터일 수 있다. 예를 들어 텍스트 콘텐츠로부터 작성자의 감정을 결정하는 시스템의 경우, 제1 학습 데이터는 작성자가 작성한 텍스트와 이에 대한 감정의 설명(예컨대 '기쁨' 등)을 포함할 수 있다.The server 100 according to an embodiment of the present invention may receive the first learning data from the user terminal 200. (S1401) As described above, the'first learning data' in the present invention is identified by humans. The data may be in the form of a combination of at least one of text data, image data, and sound data. For example, in the case of a system for determining an author's emotion from text content, the first learning data may include a text created by the author and a description of the emotion (eg,'joy').

한편 본 발명에서 '제2 학습 데이터'는 서버(100) 및/또는 리소스 서버(300)가 식별할 수 있는 형태의 데이터로, 소정의 전처리 방식에 따라 변환된 제1 학습 데이터를 의미할 수 있다. 가령 제2 학습 데이터는 [0.1, 0.7, -2.5,??]와 같은 벡터 데이터를 의미할 수 있다. Meanwhile, in the present invention, the'second learning data' is data in a form that can be identified by the server 100 and/or the resource server 300, and may mean first learning data converted according to a predetermined preprocessing method. . For example, the second training data may mean vector data such as [0.1, 0.7, -2.5,??].

본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 제1 학습 데이터 그 자체(즉 제1 학습 데이터의 내용 그 자체)를 수신할 수도 있고, 제1 학습 데이터가 저장된 경로에 대한 정보를 수신할 수도 있다. 가령 사용자가 제1 학습 데이터를 서버(100)의 메모리(130)에 미리 업로드한 경우, 서버(100)는 사용자 단말(200)로부터 제1 학습 데이터의 저장 경로를 수신할 수도 있다. 다만 이와 같은 수신 방식은 예시적인것으로, 본 발명의 사상이 이에 한정되는 것은 아니다.The server 100 according to an embodiment of the present invention may receive the first training data itself (that is, the content of the first training data itself) from the user terminal 200, or in a path where the first training data is stored. You can also receive information about it. For example, when the user has previously uploaded the first learning data to the memory 130 of the server 100, the server 100 may receive a storage path of the first learning data from the user terminal 200. However, such a reception method is exemplary, and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 서버(100)는 전술한 과정에 따라 수신된 제1 학습 데이터를 소정의 방식으로 전처리 하여 제2 학습 데이터를 생성할 수 있다.(S1402) The server 100 according to an embodiment of the present invention may generate second training data by preprocessing the first training data received according to the above-described process in a predetermined manner (S1402).

다시 도 6을 참조하여, 본 발명의 일 실시예에 따른 서버(100)가 제1 학습 데이터(410)를 소정의 방식으로 전처리 하여 제2 학습 데이터(420)를 생성하는 과정을 설명한다.Referring back to FIG. 6, a process of generating the second training data 420 by preprocessing the first training data 410 by the server 100 according to an embodiment of the present invention will be described.

본 발명의 일 실시예에 따른 서버(100)는 제1 학습 데이터(410)의 처리가 가능한 적어도 하나의 전처리 방식의 식별 정보를 사용자 단말(200)에 제공할 수 있다. 이때 본 발명의 일 실시예에 따른 서버(100)는 제1 학습 데이터(410)의 분석을 통하여 사용이 가능한 전처리 방식을 선별할 수 있다. The server 100 according to an embodiment of the present invention may provide identification information of at least one pre-processing method capable of processing the first learning data 410 to the user terminal 200. In this case, the server 100 according to an embodiment of the present invention may select an available preprocessing method through analysis of the first learning data 410.

가령 서버(100)는 제1 학습 데이터(410)에 텍스트 데이터가 포함되어 있는지 여부를 확인하고, 텍스트 데이터가 포함된 경우 '문자 벡터화' 전처리 방식을 사용 가능한 전처리 방식으로 선별할 수 있다. For example, the server 100 may check whether text data is included in the first training data 410, and if text data is included, the'character vectorization' pre-processing method may be selected as an available pre-processing method.

또한 서버(100)는 제1 학습 데이터(410)에 이미지 데이터가 포함된 경우, '이미지 전처리'와 같은 전처리 방식을 사용 가능한 전처리 방식으로 선별할 수도 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.In addition, when the image data is included in the first training data 410, the server 100 may select a preprocessing method such as'image preprocessing' as an available preprocessing method. However, this is merely an example and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 제공된 하나 이상의 전처리 방식에 대한 선택정보를 수신할 수 있다. 사용자는 제공된 하나 이상의 전처리 방식 중 자신이 원하는 전처리 방식을 선택할 수 있다.The server 100 according to an embodiment of the present invention may receive selection information for one or more preprocessing methods provided from the user terminal 200. The user may select a desired preprocessing method from among one or more provided preprocessing methods.

본 발명의 일 실시예에 따른 서버(100)는 사용자의 선택정보에 대응되는 전처리 방식으로 제1 학습 데이터(410)를 전처리 하여 제2 학습 데이터(420)를 생성할 수 있다. 대부분의 인공 신경망의 경우 입력 데이터와 출력 데이터의 포맷은 벡터이기에, 상술한 바와 같은 제1 학습 데이터(410)의 전처리는 제1 학습 데이터(410)의 벡터화를 의미할 수 있다.The server 100 according to an embodiment of the present invention may generate the second training data 420 by pre-processing the first training data 410 in a pre-processing method corresponding to the user's selection information. In most artificial neural networks, the format of the input data and the output data is a vector, so the preprocessing of the first training data 410 as described above may mean vectorization of the first training data 410.

선택적 실시예에서, 본 발명의 일 실시예에 따른 서버(100)는 제1 학습 데이터(410)를 전처리 하여 제2 학습 데이터(420)를 생성하는 과정에 있어서, 제1 학습 데이터(410)의 전처리 진행 정도에 관한 정보를 사용자 단말(200)에 제공할 수 있다. In an optional embodiment, in the process of generating the second training data 420 by preprocessing the first training data 410, the server 100 according to an embodiment of the present invention Information on the degree of pre-processing may be provided to the user terminal 200.

일반적으로 인공 신경망의 학습을 위한 제1 학습 데이터(410)는 많은 수의 데이터를 포함하므로, 이와 같이 전처리 진행 정도에 관한 정보를 사용자에게 제공함으로써 사용자가 작업의 진행 정도를 손쉽게 파악할 수 있도록 할 수 있다.In general, since the first training data 410 for learning an artificial neural network includes a large number of data, it is possible for the user to easily grasp the progress of the task by providing information on the preprocessing progress to the user. have.

본 발명의 일 실시예에 따른 서버(100)는 전술한 과정에 의해서 생성된 제2 학습 데이터(420)에 기초하여 복수의 파라미터 셋 각각에 대한 인공 신경망의 학습 결과를 산출할 수 있다. 또한 서버(100)는 산출 결과에 기초하여 복수의 파라미터 셋 중 어느 하나를 최적의 파라미터 셋으로 결정할 수 있다.(S1403)The server 100 according to an embodiment of the present invention may calculate a learning result of an artificial neural network for each of a plurality of parameter sets based on the second training data 420 generated by the above-described process. In addition, the server 100 may determine any one of the plurality of parameter sets as the optimal parameter set based on the calculation result (S1403).

이를 보다 상세히 살펴보면, 본 발명의 일 실시예에 따른 서버(100)는 도 7에 도시된 바와 같이 학습에 사용하고자 하는 복수의 파라미터 셋을 결정할 수 있다. 이때 각각의 파라미터 셋은 가령 인공 신경망의 학습 조건에 관한 파라미터 셋인 학습 파라미터 셋과 인공 신경망의 구조에 관한 파라미터 셋인 구조 파라미터 셋을 포함할 수 있다. Looking at this in more detail, the server 100 according to an embodiment of the present invention may determine a plurality of parameter sets to be used for learning, as shown in FIG. 7. In this case, each parameter set may include a learning parameter set, which is a parameter set related to a learning condition of the artificial neural network, and a structure parameter set, which is a parameter set related to the structure of the artificial neural network.

이때 학습 파라미터 셋은 동일한 학습 데이터를 이용하여 학습을 반복하는 횟수인 반복 파라미터와 1회의 학습에 사용되는 데이터의 수량에 대응되는 단위 수량 파라미터를 포함할 수 있다. In this case, the learning parameter set may include a repetition parameter, which is a number of repetitions of learning using the same learning data, and a unit quantity parameter corresponding to a quantity of data used for one learning.

구조 파라미터의 경우 전술한 바와 같이 인공 신경망의 종류에 따라 인공 신경망의 구조를 결정하는 하나 이상의 파라미터를 포함할 수 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.As described above, the structure parameter may include one or more parameters that determine the structure of the artificial neural network according to the type of the artificial neural network. However, this is merely an example and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 수신된 파라미터 값에 기초하여 파라미터 셋을 결정할 수 있다. 가령 본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 제1 파라미터 셋(Param_Set 1)에 포함되는 반복 파라미터, 단위 파라미터, 입력 노드의 수 및 히든 레이어의 수를 수신하고, 수신된 파라미터 값에 기초하여 상기 제1 파라미터 셋(Param_Set 1)을 결정할 수 있다. The server 100 according to an embodiment of the present invention may determine a parameter set based on a parameter value received from the user terminal 200. For example, the server 100 according to an embodiment of the present invention receives a repetition parameter, a unit parameter, the number of input nodes, and the number of hidden layers included in the first parameter set (Param_Set 1) from the user terminal 200, The first parameter set (Param_Set 1) may be determined based on the received parameter value.

또한 이와 유사하게, 서버(100)는 사용자 단말(200)로부터 제2 파라미터 셋(Param_Set 2)에 포함되는 반복 파라미터, 단위 파라미터, 입력 노드의 수 및 히든 레이어의 수를 수신하고, 수신된 파라미터 값에 기초하여 상기 제2 파라미터 셋(Param_Set 2)을 결정할 수 있다.Also similarly, the server 100 receives a repetition parameter, a unit parameter, the number of input nodes, and the number of hidden layers included in the second parameter set (Param_Set 2) from the user terminal 200, and receives the received parameter value. The second parameter set (Param_Set 2) may be determined based on.

결정된 파라미터 셋들은 리소스 서버(300)가 인공 신경망을 동시에 및/또는 순차적으로 학습시키는데 사용될수 있다. 물론 이러한 인공 신경망의 학습은 서버(100)의 제어에 따른 것일 수 있다.The determined parameter sets may be used by the resource server 300 to simultaneously and/or sequentially learn the artificial neural network. Of course, the learning of the artificial neural network may be under the control of the server 100.

본 발명에서 인공 신경망을 '학습' 시키는 것은, 학습 데이터에 대한 인공 신경망의 오차율을 산출하고, 산출된 오차율을 이용하여 인공 신경망의 적어도 하나의 구성요소를 업데이트(예를 들어 인공 신경망을 구성하는 계수를 갱신) 하는 일련의 과정을 의미할 수 있다. In the present invention,'learning' an artificial neural network calculates an error rate of the artificial neural network for the training data, and updates at least one component of the artificial neural network using the calculated error rate (e.g., coefficients constituting the artificial neural network It may mean a series of processes to update).

이때 인공 신경망의 오차율을 산출하는 과정은 리소스 서버(300)에서 수행될 수 있고, 산출된 오차율에 기초하여 인공 신경망의 구성요소를 업데이트 하는 과정은 서버(100)에서 수행될 수 있다. In this case, the process of calculating the error rate of the artificial neural network may be performed by the resource server 300, and the process of updating the components of the artificial neural network based on the calculated error rate may be performed by the server 100.

선택적 실시예에서, 인공 신경망의 오차율을 산출하고, 산출된 오차율에 기초하여 인공 신경망의 구성요소를 업데이트 하는 일련의 과정은 리소스 서버(300)에서 수행될 수도 있다. 물론 이러한 경우에도 이와 같은 일련의 과정은 서버(100)의 제어에 따라 수행되는것일 수 있다.In an alternative embodiment, a series of processes of calculating the error rate of the artificial neural network and updating the components of the artificial neural network based on the calculated error rate may be performed by the resource server 300. Of course, even in this case, such a series of processes may be performed under the control of the server 100.

본 발명의 다른 실시예에 따른 서버(100)는 사용자 단말(200)로부터 파라미터의 결정 조건을 수신하고, 이에 따라 다양한 파라미터 셋을 생성할 수도 있다. 가령 본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 복수의 파라미터의 범위를 포함하는 파라미터 결정 조건을 수신할 수 있다. 예를 들어 서버(100)는 사용자 단말(200)로부터 반복 파라미터가 20 내지 40 이고, 단위 수량 파라미터가 50 내지 100인 파라미터 결정 조건을 수신할 수 있다.The server 100 according to another embodiment of the present invention may receive a parameter determination condition from the user terminal 200 and generate various parameter sets accordingly. For example, the server 100 according to an embodiment of the present invention may receive a parameter determination condition including a range of a plurality of parameters from the user terminal 200. For example, the server 100 may receive a parameter determination condition in which the repetition parameter is 20 to 40 and the unit quantity parameter is 50 to 100 from the user terminal 200.

본 발명의 일 실시예에 따른 서버(100)는 수신된 파라미터의 범위 내에서, 적어도 하나의 파라미터 셋을 결정할 수 있다. 가령 서버(100)는 수신된 파라미터 결정 조건에 기초하여 제3 파라미터 셋 및 제4 파라미터 셋을 결정할 수 있다. 이때 제3 파라미터 셋과 제4 파라미터 셋은 각각의 파라미터 셋을 구성하는 적어도 하나의 파라미터의 값이 상이할 수 있다. The server 100 according to an embodiment of the present invention may determine at least one parameter set within the range of the received parameter. For example, the server 100 may determine a third parameter set and a fourth parameter set based on the received parameter determination condition. In this case, the third parameter set and the fourth parameter set may have different values of at least one parameter constituting each parameter set.

선택적 실시예에서, 본 발명의 일 실시예에 따른 서버(100)는 수신된 파라미터의 범위 내에서, 소정의 규칙에 따라 적어도 하나의 파라미터 셋을 결정할 수 있다. 가령 본 발명의 일 실시예에 따른 서버(100)는 범위를 수신한 각각의 파라미터에 대해서, 수신된 범위 내에서 파라미터를 무작위(또는 랜덤)로 추출하는 방식으로 파라미터 셋을 결정할 수 있다.In an optional embodiment, the server 100 according to an embodiment of the present invention may determine at least one parameter set according to a predetermined rule within the range of the received parameter. For example, the server 100 according to an embodiment of the present invention may determine a parameter set by randomly (or randomly) extracting a parameter from within the received range for each parameter that has received a range.

또 다른 선택적 실시예에서, 본 발명의 일 실시예에 따른 서버(100)는 수신된 파라미터의 범위 내에서, 생성 가능한 모든 조합의 파라미터 셋을 생성하는 방식으로 파라미터 셋을 결정할 수 있다. In another optional embodiment, the server 100 according to an embodiment of the present invention may determine a parameter set by generating a parameter set of all possible combinations within the range of the received parameter.

가령 파라미터 셋에 포함되는 제1 파라미터의 선택 가능한 가지수가 5가지이고, 제2 파라미터의 선택 가능한 가지수가 10가지인 경우, 서버(100)는 총 50 가지의 파라미터 셋을 생성할 수 있다.For example, when the number of selectable branches of the first parameter included in the parameter set is 5 and the number of selectable branches of the second parameter is 10, the server 100 may generate a total of 50 parameter sets.

본 발명의 일 실시예에 따른 서버(100)는 상술한 과정에 의해 결정된 파라미터셋 각각에 대한 인공 신경망의 학습 결과를 산출할 수 있다.The server 100 according to an embodiment of the present invention may calculate a learning result of an artificial neural network for each parameter set determined by the above-described process.

이를 보다 상세히 살펴보면, 본 발명의 일 실시예에 따른 서버(100)는 리소스 서버(300)의 가용 상태를 참조하여, 특정 파라미터 셋의 학습 결과를 산출할 제3 프로세서(또는 리소스 서버)를 결정할 수 있다. 가령 서버(100)는 첫 번째 리소스 서버(300A)의 제3-2 프로세서(340A-2)에 대해, 첫 번째 파라미터 셋(도 6의 Param_Set 1)을 이용하여 인공 신경망의 학습 결과를 산출할 것을 요청할 수 있다. Looking at this in more detail, the server 100 according to an embodiment of the present invention may determine a third processor (or resource server) to calculate a learning result of a specific parameter set by referring to the available state of the resource server 300. have. For example, the server 100 asks for the 3-2 processor 340A-2 of the first resource server 300A to calculate the training result of the artificial neural network using the first parameter set (Param_Set 1 in FIG. 6). Can be requested.

본 발명의 일 실시예에 따른 서버(100)는 해당 파라미터 셋(즉 학습을 수행하고자 하는 파라미터 셋)에 포함되는 구조 파라미터 셋을 참조하여 인공 신경망을 생성할 수 있다. 전술한 바와 같이 구조 파라미터 셋은 인공 신경망의 구조에 관한 정보를 포함하므로, 서버(100)는 파라미터 셋을 참조하여 인공 신경망을 생성할 수 있다. The server 100 according to an embodiment of the present invention may generate an artificial neural network by referring to a structure parameter set included in a corresponding parameter set (ie, a parameter set to be trained). As described above, since the structure parameter set includes information on the structure of the artificial neural network, the server 100 may generate the artificial neural network by referring to the parameter set.

본 발명의 일 실시예에 따른 서버(100)는 생성된 인공 신경망을 결정된 리소스 서버(전술한 과정에 의해 결정된 리소스 서버)에 전송하고, 리소스 서버가 생성된 인공신경망을 학습 파라미터 셋에 따라 학습하도록 요청할 수 있다.The server 100 according to an embodiment of the present invention transmits the generated artificial neural network to the determined resource server (resource server determined by the above-described process), and the resource server learns the generated artificial neural network according to a set of learning parameters. Can be requested.

다시 도 8을 참조하여, 본 발명의 일 실시예에 따른 서버(100)가 복수의 리소스 서버에 대해서 서로 다른 파라미터 셋에 따른 학습의 수행을 요청하는 방법을 설명한다.Referring again to FIG. 8, a method of requesting the server 100 to perform learning according to different parameter sets for a plurality of resource servers according to an embodiment of the present invention will be described.

가령 본 발명의 일 실시예에 따른 서버(100)는 첫 번째 리소스 서버에 대해서 도 7의 첫 번째 파라미터 셋(Param_Set 1)에 따라 제2 학습 데이터(420)를 100개씩 나누어 학습하되, 제2 학습 데이터(420)를 20번 반복하여 학습하는 요청(510A)을 전송할 수 있다. 예를 들어 제2 학습 데이터(420)가 총 1000개의 데이터로 구성된 경우, 서버(100)는 첫 번째 리소스 서버에 대해서 1000개의 데이터 중 1회의 학습에 100개씩만 사용하되, 1000개의 데이터를 20번 사용하여 반복학습할 것을 요청할 수 있다. 이때 서버(100)는 첫 번째 파라미터 셋(Param_Set 1)에 포함된 구조 파라미터에 따라 생성된 인공 신경망(500A)을 이용하여 학습할 것을 요청할 수 있다. 한편 제2 학습 데이터(420)에 포함되는 개별 데이터 각각은 입력 데이터와 이에 대응되는 출력 데이터를 포함할 수 있다.For example, the server 100 according to an embodiment of the present invention divides and learns the second training data 420 by 100 according to the first parameter set (Param_Set 1) of FIG. 7 for the first resource server, but the second learning A request 510A for learning by repeating the data 420 20 times may be transmitted. For example, if the second training data 420 consists of a total of 1000 pieces of data, the server 100 uses only 100 for one training out of 1000 pieces of data for the first resource server, but uses 1000 pieces of data 20 times. Can be used to request iterative learning. At this time, the server 100 may request to learn using the artificial neural network 500A generated according to the structure parameter included in the first parameter set (Param_Set 1). Meanwhile, each of the individual data included in the second training data 420 may include input data and output data corresponding thereto.

또한 서버(100)는 이와 유사하게, 두 번째 리소스 서버에 대해서 도 7의 두 번째 파라미터 셋(Param_Set 2)에 따라 제2 학습 데이터(420)를 100개씩 나누어 학습하되, 제2 학습 데이터(420)를 30번 반복하여 학습하는 요청(510B)을 전송할 수 있다. 이때 서버(100)는 두 번째 파라미터 셋(Param_Set 2)에 포함된 구조 파라미터에 따라 생성된 인공 신경망(500B)을 이용하여 학습할 것을 요청할 수 있다.In addition, similarly, the server 100 divides 100 pieces of the second training data 420 by 100 according to the second parameter set (Param_Set 2) of FIG. 7 for the second resource server, but the second training data 420 It is possible to transmit a request (510B) for learning by repeating 30 times. At this time, the server 100 may request to learn using the artificial neural network 500B generated according to the structure parameter included in the second parameter set (Param_Set 2).

물론 서버(100)는 두 번째 리소스 서버에 대해서(두 번째 리소스 서버에 가용 리소스가 충분하다는 전제 하에) 도 7의 세 번째 파라미터 셋(Param_Set 3)에 따라 제2 학습 데이터(420)를 50개씩 나누어 학습하되, 제2 학습 데이터(420)를 40번 반복하여 학습하는 요청(510C)을 전송할 수 있다. 이때 서버(100)는 세 번째 파라미터 셋(Param_Set 3)에 포함된 구조 파라미터에 따라 생성된 인공 신경망(500C)을 이용하여 학습할 것을 요청할 수 있다. Of course, the server 100 divides the second training data 420 by 50 pieces according to the third parameter set (Param_Set 3) of FIG. 7 for the second resource server (assuming that the second resource server has sufficient available resources). Although learning, a request 510C for learning by repeating the second learning data 420 40 times may be transmitted. In this case, the server 100 may request to learn by using the artificial neural network 500C generated according to the structure parameter included in the third parameter set (Param_Set 3).

본 발명의 일 실시예에 따른 서버(100)는 전술한 요청(510A, 510B, 510C)들을 동시에 전송할 수 있다. 바꾸어 말하면, 본 발명의 일 실시예에 따른 서버(100)는 전술한 요청(510A, 510B, 510C)에 따른 인공 신경망 학습 과정의 적어도 일부가 병렬적으로 수행되도록 리소스 서버(300)에게 요청할 수 있다.The server 100 according to an embodiment of the present invention may simultaneously transmit the aforementioned requests 510A, 510B, and 510C. In other words, the server 100 according to an embodiment of the present invention may request the resource server 300 to perform at least a part of the artificial neural network training process according to the above-described requests 510A, 510B, and 510C in parallel. .

본 발명의 일 실시예에 따른 서버(100)는 도 9에 도시된 바와 같이, 소정의 입력 값(600)을 리소스 서버(300)(신경망을 학습한 리소스 서버)에 전송하고, 리소스 서버(300)로부터 입력 값에 대한 결과값(610A, 610B, 610C)을 수신할 수 있다. 또한 서버(100)는 수신된 결과값을 평가함으로써, 인공 신경망의 학습 결과를 산출할 수 있다.As shown in FIG. 9, the server 100 according to an embodiment of the present invention transmits a predetermined input value 600 to the resource server 300 (a resource server that has learned a neural network), and the resource server 300 ), the result values 610A, 610B, and 610C for the input value may be received. In addition, the server 100 may calculate the learning result of the artificial neural network by evaluating the received result value.

이때 '소정의 입력값'은 리소스 서버(300)가 학습에 사용된 제2 학습 데이터(420)에 '입력 값'으로 포함된 데이터와 같은 종류의 데이터를 의미할 수 있다. 즉 '소정의 입력 값'은 인공 신경망의 학습의 정확도를 판단하기 위한 테스트 값으로, 대응되는 출력 값을 미리 알고 있는 값을 의미할 수 있다. 한편 이와 같은 소정의 입력값은 복수일 수 있다.In this case, the'predetermined input value' may mean data of the same type as the data included as the'input value' in the second training data 420 used for training by the resource server 300. That is, the'predetermined input value' is a test value for determining the learning accuracy of the artificial neural network, and may mean a value in which a corresponding output value is known in advance. Meanwhile, there may be a plurality of such predetermined input values.

본 발명의 일 실시예에 따른 서버(100)는 리소스 서버(300)로부터 수신된 결과값(610A, 610B, 610C)과 미리 알고 있는 출력 값을 비교하여, 학습된 인공 신경망의 정확도를 산출할 수 있다. 이때 '정확도'은 인공 신경망의 출력 값과 정답이 차이가 있는 정도를 의미할 수 있다. The server 100 according to an embodiment of the present invention may calculate the accuracy of the learned artificial neural network by comparing result values 610A, 610B, 610C received from the resource server 300 with a known output value. have. In this case,'accuracy' may mean the degree to which the output value of the artificial neural network and the correct answer are different.

한편 본 발명의 일 실시예에 따른 서버(100)는 리소스 서버로부터 전술한 요청(510A, 510B, 510C)에 따른 학습 수행 과정 중 산출되는 오차율을 수신할 수 있다. 이때 '오차율'은 전술한 제2 학습 데이터(420)에 포함된 입력값에 대한 인공 신경망의 출력값과 제2 학습 데이터(420)에 포함된 출력값(즉 입력값에 대응되는 출력값) 간의 차이가 발생하는 정도를 의미할 수 있다. 리소스 서버(300)는 이러한 오차율이 감소하도록 인공 신경망을 구성하는 적어도 하나의 계수들을 적절히 갱신함으로써 학습이 이루어 지도록 할 수 있다.Meanwhile, the server 100 according to an embodiment of the present invention may receive an error rate calculated during the learning process according to the aforementioned requests 510A, 510B, and 510C from the resource server. At this time, the'error rate' is a difference between the output value of the artificial neural network for the input value included in the above-described second training data 420 and the output value included in the second training data 420 (that is, the output value corresponding to the input value). It can mean the degree to which it is done. The resource server 300 may perform learning by appropriately updating at least one coefficient constituting the artificial neural network to reduce such an error rate.

본 발명의 일 실시예에 따른 서버(100)는 이와 같은 오차율 및 정확도를 포함하는 학습 결과를 산출할 수 있다. 이때 본 발명의 일 실시예에 따른 서버(100)는 학습 결과의 산출에 있어서 복수의 오차율 중 최종 오차율을 사용할 수 있다. 학습 과정에 있어서 오차율은 점차적으로 감소하는 경향을 보이므로, 최종 오차율은 제2 학습 데이터(420)를 이용한 학습 과정의 가장 마지막에 산출되는 오차율을 의미할 수 있다. The server 100 according to an embodiment of the present invention may calculate a learning result including such an error rate and accuracy. In this case, the server 100 according to an embodiment of the present invention may use a final error rate among a plurality of error rates in calculating a learning result. Since the error rate tends to gradually decrease in the learning process, the final error rate may mean an error rate calculated at the end of the learning process using the second training data 420.

또한 본 발명의 일 실시예에 따른 서버(100)는 복수의 파라미터 셋 각각에 대한 학습 결과 중 소정의 조건을 만족하는 파라미터 셋을 최적의 파라미터 셋으로 결정할 수 있다. In addition, the server 100 according to an embodiment of the present invention may determine a parameter set that satisfies a predetermined condition among learning results for each of a plurality of parameter sets as an optimal parameter set.

가령 본 발명의 일 실시예에 따른 서버(100)는 제1 가중치를 오차율로 나눈 값과 정확도와 제2 가중치가 곱해진 값의 합이 가장 큰 파라미터 셋을 최적의 파라미터 셋으로 결정할 수 있다. 이때 제1 가중치 및 제2 가중치는 사용자에 의해 미리 결정되는 상수일 수 있다.For example, the server 100 according to an embodiment of the present invention may determine a parameter set in which a value obtained by dividing a first weight by an error rate and a sum of a value obtained by multiplying the accuracy and the second weight is the largest parameter set as the optimal parameter set. In this case, the first weight and the second weight may be constants previously determined by the user.

선택적 실시예에서, 서버(100)는 정확도가 가장 높은 파라미터 셋을 최적의 파라미터 셋으로 결정할 수도 있고, 오차율이 가장 낮은 파라미터 셋을 최적의 파라미터 셋으로 결정할 수도 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.In an optional embodiment, the server 100 may determine the parameter set with the highest accuracy as the optimal parameter set, or may determine the parameter set with the lowest error rate as the optimal parameter set. However, this is merely an example and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 서버(100)는 전술한 과정에 따라 결정된 최적의 파라미터 셋이 적용된 배포 인공 신경망을 생성할 수 있다.(S1404)The server 100 according to an embodiment of the present invention may generate a distributed artificial neural network to which an optimal parameter set determined according to the above-described process is applied. (S1404)

가령 전술한 바와 같이 파라미터 셋이 인공 신경망의 구조 파라미터 셋 및 인공 신경망의 학습 조건에 관한 파라미터 셋을 포함하는 경우, 본 발명의 일 실시예에 따른 서버(100)는 최적의 파라미터 셋에 포함된 구조 파라미터 셋에 기초하여 배포 인공 신경망을 생성할 수 있다.For example, as described above, when the parameter set includes a structure parameter set of an artificial neural network and a parameter set related to a learning condition of the artificial neural network, the server 100 according to an embodiment of the present invention has a structure included in the optimal parameter set. A distributed artificial neural network can be created based on the parameter set.

또한 서버(100)는 최적의 파라미터 셋에 포함된 학습 파라미터 셋에 따라, 제2 학습 데이터(420)를 이용하여 생성된 배포 인공 신경망을 학습시킬 수 있다. 이와 같이 본 발명은 최적의 성능을 갖는 배포 인공 신경망을 생성할 수 있다.In addition, the server 100 may train the distributed artificial neural network generated by using the second training data 420 according to the training parameter set included in the optimal parameter set. As described above, the present invention can create a distributed artificial neural network with optimal performance.

본 발명의 일 실시예에 따른 서버(100)는 배포 인공 신경망을 이용하는 서비스 제공을 위한 API를 생성할 수 있다.(S1405)The server 100 according to an embodiment of the present invention may generate an API for providing a service using a distributed artificial neural network (S1405).

다시 도 10을 참조하여, 본 발명의 일 실시예에 따른 서버(100)가 배포 인공 신경망을 이용하여 생성한 API(720)의 구조를 설명한다.Referring back to FIG. 10, the structure of the API 720 generated by the server 100 using a distributed artificial neural network according to an embodiment of the present invention will be described.

본 발명에서 API(Application Programming Interface)(720)는 사용자가 제작한 어플리케이션에서 인공 신경망을 사용할 수 있도록 서버(100)에 생성된 인터페이스를 의미할 수 있다.In the present invention, the API (Application Programming Interface) 720 may mean an interface created in the server 100 so that an artificial neural network can be used in an application produced by a user.

본 발명의 일 실시예에 따른 서버(100)는 제2 학습 데이터(420)를 생성하는 과정에서 결정된 전처리 방식에 기초하여, 입력 데이터(710)를 전처리 하는 입력 데이터 전처리 모듈(721)을 생성할 수 있다. 이때 생성된 입력 데이터 전처리 모듈(721)은 입력 데이터를 벡터화 하는 모듈을 의미할 수 있다.The server 100 according to an embodiment of the present invention generates an input data preprocessing module 721 that preprocesses the input data 710 based on the preprocessing method determined in the process of generating the second learning data 420. I can. At this time, the generated input data preprocessing module 721 may refer to a module that vectorizes input data.

본 발명의 일 실시예에 따른 서버(100)는 전술한 과정에 따라 생성된 배포 신경망을 이용하여, 입력 데이터(710)에 대한 출력 데이터를 생성하는 신경망 모듈(722)을 생성할 수 있다. 가령 서버(100)는 배포 신경망의 입력 레이어에 입력 데이터(710)가 입력될 수 있도록 처리하고, 배포 신경망의 출력 레이어에 출력되는 값이 출력 데이터가 될 수 있도록 처리(및/또는 정의)하는 방식으로 신경망 모듈(722)을 생성할 수 있다.The server 100 according to an embodiment of the present invention may generate the neural network module 722 that generates output data for the input data 710 by using the distribution neural network generated according to the above-described process. For example, the server 100 processes (and/or defines) the input data 710 to be input to the input layer of the distribution neural network, and the value output to the output layer of the distribution neural network becomes output data. As a result, the neural network module 722 may be generated.

본 발명의 일 실시예에 따른 서버(100)는 제1 학습 데이터(410)에 포함된 출력 데이터의 포맷을 참조하여, 신경망 모듈(722)의 출력 데이터의 포맷을 변환하는 출력 데이터 변환 모듈(723)을 생성할 수 있다. 가령 출력 데이터 변환 모듈(723)은 벡터 형태의 출력 데이터를 이미지 형태의 데이터 및/또는 텍스트 형태의 출력 데이터(730)로 변환할 수 있다.The server 100 according to an embodiment of the present invention refers to the format of the output data included in the first training data 410, and converts the format of the output data of the neural network module 722 into an output data conversion module 723. ) Can be created. For example, the output data conversion module 723 may convert the vector output data into image data and/or text output data 730.

본 발명의 일 실시예에 따른 서버(100)는 전처리 모듈(721), 신경망 모듈(722) 및 출력 데이터 변환 모듈(723)을 포함하는 API(720)를 생성할 수 있다. 바꾸어 말하면 본 발명의 일 실시예에 따른 서버(100)는 전술한 세 모듈(721, 722, 723)을 패키지(Package)화 할 수 있다.The server 100 according to an embodiment of the present invention may generate an API 720 including a preprocessing module 721, a neural network module 722, and an output data conversion module 723. In other words, the server 100 according to an embodiment of the present invention may package the three modules 721, 722, and 723 described above.

본 발명의 일 실시예에 따른 서버(100)는 생성된 API(720)에 대한 정보를 사용자 단말(200)에 제공할 수 있다. 가령 서버(100)는 API의 접속 주소, API의 사용 포맷에 관한 정보를 사용자 단말(200)에 제공할 수 있다. 사용자는 제공된 API(720)에 대한 정보를 참조하여, API(720)에 기반한 자신의 서비스를 손쉽게 구현할 수 있다.The server 100 according to an embodiment of the present invention may provide information on the generated API 720 to the user terminal 200. For example, the server 100 may provide the user terminal 200 with information on the access address of the API and the format of using the API. A user can easily implement his/her service based on the API 720 by referring to the information on the provided API 720.

이상 설명된 본 발명에 따른 실시예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 저장하는 것일 수 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, 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 may be recorded in a computer-readable medium. In this case, the medium may store a program executable by a computer. Examples of media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magnetic-optical media such as floptical disks, and And a ROM, RAM, flash memory, and the like, and may be configured to store program instructions.

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

본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, "필수적인", "중요하게" 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.The specific implementations described in the present invention are examples 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 exemplarily represent functional connections and/or physical or circuit connections, and in an actual device, various functional connections that can be replaced or additionally It may be referred to as a connection, or circuit connections. In addition, if there is no specific mention such as "essential", "important", etc., it may not be an essential component for the application of the present invention.

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

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

Claims (5)

컴퓨팅 장치가 사용자가 제공한 제1 학습 데이터에 기초하여 인공 신경망을 생성하고, 생성된 인공 신경망을 이용하여 서비스 제공을 위한 API를 생성하는 인공 신경망의 상용화 서비스 제공 방법에 있어서,
사용자 단말로부터 제1 학습 데이터를 수신하는 단계;
상기 제1 학습 데이터를 소정의 방식으로 전처리 하여 제2 학습 데이터를 생성하는 단계;
상기 제2 학습 데이터에 기초하여 복수의 파라미터 셋 각각에 대한 인공 신경망의 학습 결과를 산출하고, 상기 산출 결과에 기초하여 상기 복수의 파라미터 셋 중 어느 하나를 최적의 파라미터 셋으로 결정하는 단계;
상기 최적의 파라미터 셋이 적용된 배포 인공 신경망을 생성하는 단계; 및
상기 배포 인공 신경망을 이용하는 서비스 제공을 위한 API를 생성하는 단계;를 포함하고,
상기 API를 생성하는 단계는
상기 제2 학습 데이터를 생성하는 단계에서 결정된 전처리 방식에 기초하여, 입력 데이터를 전처리 하는 입력 데이터 전처리 모듈을 생성하는 단계;
상기 생성된 배포 신경망을 이용하여 상기 입력 데이터에 대한 출력 데이터를 생성하는 신경망 모듈을 생성하는 단계;
상기 제1 학습 데이터에 포함된 출력 데이터의 포맷을 참조하여, 상기 신경망 모듈의 출력 데이터의 포맷을 변환하는 출력 데이터 변환 모듈을 생성하는 단계; 및
상기 전처리 모듈, 상기 신경망 모듈 및 상기 변환 모듈을 포함하는 API를 생성하는 단계;를 포함하는, 인공 신경망의 상용화 서비스 제공 방법.
In the method of providing a commercialization service of an artificial neural network in which a computing device generates an artificial neural network based on first learning data provided by a user, and generates an API for providing a service using the generated artificial neural network,
Receiving first learning data from a user terminal;
Generating second learning data by preprocessing the first learning data in a predetermined manner;
Calculating a learning result of the artificial neural network for each of a plurality of parameter sets based on the second learning data, and determining any one of the plurality of parameter sets as an optimal parameter set based on the calculation result;
Generating a distributed artificial neural network to which the optimal parameter set is applied; And
Generating an API for providing a service using the distributed artificial neural network; Including,
The step of creating the API
Creating an input data pre-processing module for pre-processing the input data based on the pre-processing method determined in the step of generating the second learning data;
Generating a neural network module that generates output data for the input data using the generated distribution neural network;
Generating an output data conversion module for converting the format of the output data of the neural network module by referring to the format of the output data included in the first training data; And
Generating an API including the preprocessing module, the neural network module, and the transformation module; Containing, a method for providing a commercialization service of an artificial neural network.
청구항 1에 있어서
상기 제2 학습 데이터를 생성하는 단계는
제1 학습 데이터의 처리가 가능한 적어도 하나의 전처리 방식의 식별 정보를 상기 사용자 단말에 제공하는 단계;
상기 사용자 단말로부터 상기 전처리 방식에 대한 선택정보를 수신하는 단계; 및
상기 선택정보에 대응되는 전처리 방식으로 상기 제1 학습 데이터를 전처리 하여 상기 제2 학습 데이터를 생성하는 단계;를 포함하는, 인공 신경망의 상용화 서비스 제공 방법.
The method according to claim 1
Generating the second training data
Providing identification information of at least one preprocessing method capable of processing the first learning data to the user terminal;
Receiving selection information for the preprocessing method from the user terminal; And
Generating the second training data by pre-processing the first training data in a pre-processing method corresponding to the selection information; comprising, a method for providing a commercialization service of an artificial neural network.
청구항 2에 있어서
상기 제2 학습 데이터를 생성하는 단계는
상기 선택정보에 대응되는 전처리 방식에 따른 제1 학습 데이터의 전처리 진행 정도에 관한 정보를 상기 사용자 단말에 제공하는 단계;를 더 포함하는, 인공 신경망의 상용화 서비스 제공 방법.
The method according to claim 2
Generating the second training data
The method of providing a commercialization service of an artificial neural network further comprising; providing information on a degree of preprocessing of the first learning data according to a preprocessing method corresponding to the selection information to the user terminal.
청구항 1에 있어서
상기 최적의 파라미터 셋은
상기 배포 인공 신경망의 구조에 대한 구조 파라미터 셋 및 배포 인공 신경망의 학습 조건에 관한 학습 파라미터 셋을 포함하고,
상기 배포 인공 신경망을 생성하는 단계는
상기 구조 파라미터 셋에 기초하여, 상기 배포 인공 신경망을 생성하는 단계; 및
상기 학습 파라미터 셋에 따라, 상기 생성된 배포 인공 신경망을 학습시키는 단계;를 포함하는, 인공 신경망의 상용화 서비스 제공 방법.
The method according to claim 1
The optimal parameter set is
A structure parameter set for the structure of the distributed artificial neural network and a learning parameter set for a learning condition of the distributed artificial neural network,
Generating the distributed artificial neural network
Generating the distributed artificial neural network based on the structure parameter set; And
A method for providing a commercialization service of an artificial neural network comprising; learning the generated distributed artificial neural network according to the learning parameter set.
삭제delete
KR1020180170680A 2018-12-27 2018-12-27 Method of providing commercialization service of an artificial neural network KR102190103B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180170680A KR102190103B1 (en) 2018-12-27 2018-12-27 Method of providing commercialization service of an artificial neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180170680A KR102190103B1 (en) 2018-12-27 2018-12-27 Method of providing commercialization service of an artificial neural network

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020200161040A Division KR20200138688A (en) 2020-11-26 2020-11-26 Method of providing commercialization service of an artificial neural network

Publications (2)

Publication Number Publication Date
KR20200080819A KR20200080819A (en) 2020-07-07
KR102190103B1 true KR102190103B1 (en) 2020-12-11

Family

ID=71602613

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180170680A KR102190103B1 (en) 2018-12-27 2018-12-27 Method of providing commercialization service of an artificial neural network

Country Status (1)

Country Link
KR (1) KR102190103B1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102564051B1 (en) * 2020-07-30 2023-08-04 성균관대학교산학협력단 Method for multi-level deep learning for robust learning and recognition and apparatus for performing the same
KR102298766B1 (en) * 2021-02-15 2021-09-07 주식회사 딥이티 Apparatus and method for converting deep learning model for target device
KR102393761B1 (en) * 2021-06-29 2022-05-04 주식회사 에너자이(ENERZAi) Method and system of learning artificial neural network model for image processing
KR20230002041A (en) * 2021-06-29 2023-01-05 주식회사 에너자이(ENERZAi) Method and system of learning artificial neural network model for image processing
KR102488620B1 (en) * 2021-12-17 2023-01-18 주식회사 텐 Method for distributing revenue related to assetized training data and assetized artificial neural network data
KR102488619B1 (en) * 2021-12-17 2023-01-18 주식회사 텐 Method to capitalize the learned artificial neural network
KR102488618B1 (en) * 2021-12-17 2023-01-18 주식회사 텐 Method to capitalize learning data for learning of artificial neural network
KR102592409B1 (en) * 2023-03-03 2023-10-20 이정윤 Learning platform for calculating memory rate using machine learning

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017138220A1 (en) * 2016-02-12 2017-08-17 ソニー株式会社 Information processing method and information processing device
KR101864286B1 (en) * 2017-11-10 2018-07-04 주식회사 한컴엠디에스 Method and apparatus for using machine learning algorithm
JP2018173711A (en) * 2017-03-31 2018-11-08 三菱重工業株式会社 Information provision device, information provision system, information provision method and program

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101899101B1 (en) * 2016-06-01 2018-09-14 서울대학교 산학협력단 Apparatus and Method for Generating Prediction Model based on Artificial Neural Networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017138220A1 (en) * 2016-02-12 2017-08-17 ソニー株式会社 Information processing method and information processing device
JP2018173711A (en) * 2017-03-31 2018-11-08 三菱重工業株式会社 Information provision device, information provision system, information provision method and program
KR101864286B1 (en) * 2017-11-10 2018-07-04 주식회사 한컴엠디에스 Method and apparatus for using machine learning algorithm

Also Published As

Publication number Publication date
KR20200080819A (en) 2020-07-07

Similar Documents

Publication Publication Date Title
KR102190103B1 (en) Method of providing commercialization service of an artificial neural network
CN113449857B (en) Data processing method and data processing equipment
KR102353284B1 (en) Generate audio using neural networks
KR102086815B1 (en) Method and apparatus for selecting optiaml training model from various tarining models included in neural network
US11295208B2 (en) Robust gradient weight compression schemes for deep learning applications
CN107766940B (en) Method and apparatus for generating a model
US11861474B2 (en) Dynamic placement of computation sub-graphs
KR102190105B1 (en) Method for determining parameter sets of an artificial neural network
CN109478254A (en) Neural network is trained using composition gradient
US20230196202A1 (en) System and method for automatic building of learning machines using learning machines
US20210064350A1 (en) Computer Architecture for Executing Quantum Programs
US20200125958A1 (en) Training apparatus, training method, inference apparatus, inference method, and non-transitory computer readable medium
WO2022173497A9 (en) Enhancing combinatorial optimization with quantum generative models
JP2020068000A (en) Training device, method for training, prediction device, method for prediction, and program
JP7068242B2 (en) Learning equipment, learning methods and programs
CN112101438A (en) Left and right eye classification method, device, server and storage medium
KR20210060146A (en) Method and apparatus for processing data using deep neural network model, method and apparatus for trining deep neural network model
KR102190100B1 (en) Method for training of an artificial neural network
KR20200138688A (en) Method of providing commercialization service of an artificial neural network
KR20200094639A (en) Method and device for calibrating physics engine of virtual world simulator to be used for learning of deep learning-based device, and a learning method and learning device for real state network used therefor
KR20200139111A (en) Method for determining parameter sets of an artificial neural network
KR102590540B1 (en) Artificial neural network learning method and pronunciation evaluation method using the same
KR20200139110A (en) Method for training of an artificial neural network
US20240028923A1 (en) Extracting enriched target-oriented common sense from grounded graphs to support next step decision making
US20240127045A1 (en) Optimizing algorithms for hardware devices

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