KR102168541B1 - A method and computer program of learning a second neural network using a first neural network - Google Patents

A method and computer program of learning a second neural network using a first neural network Download PDF

Info

Publication number
KR102168541B1
KR102168541B1 KR1020180166402A KR20180166402A KR102168541B1 KR 102168541 B1 KR102168541 B1 KR 102168541B1 KR 1020180166402 A KR1020180166402 A KR 1020180166402A KR 20180166402 A KR20180166402 A KR 20180166402A KR 102168541 B1 KR102168541 B1 KR 102168541B1
Authority
KR
South Korea
Prior art keywords
neural network
input data
training
soft output
present
Prior art date
Application number
KR1020180166402A
Other languages
Korean (ko)
Other versions
KR20200077162A (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 KR1020180166402A priority Critical patent/KR102168541B1/en
Publication of KR20200077162A publication Critical patent/KR20200077162A/en
Application granted granted Critical
Publication of KR102168541B1 publication Critical patent/KR102168541B1/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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0454
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

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

Abstract

본 발명의 일 실시예에 따른 하드 타겟(Hard Target)으로 학습된 제1 신경망의 소프트 아웃풋(Soft output)을 이용하여, 상기 제1 신경망과 구별되는 제2 신경망을 학습시키는 방법은, 제1 신경망을 이용하여, 제1 입력 데이터에 대응되는 제1 소프트 아웃풋을 생성하는 단계로써, 상기 제1 신경망은 하드 타겟(Hard Target)으로 표지(Label)된 적어도 하나의 학습 데이터에 기반하여 상기 학습 데이터에 포함된 입력 데이터와 상기 입력 데이터에 대응되는 하드 타겟간의 상관관계를 학습한 신경망이고; 상기 제1 신경망이 생성한 상기 제1 소프트 아웃풋으로 표지된 상기 제1 입력 데이터를 포함하는 제1 학습 데이터를 생성하는 단계; 및 상기 제1 학습 데이터를 이용하여, 상기 제2 신경망이 상기 제1 소프트 아웃풋과 상기 제1 입력 데이터간의 상관관계를 학습하도록 학습시키는 단계;를 포함할 수 있다.A method of learning a second neural network differentiated from the first neural network by using a soft output of a first neural network trained with a hard target according to an embodiment of the present invention includes: a first neural network Using, as the step of generating a first soft output corresponding to the first input data, the first neural network is based on at least one training data labeled as a hard target (Hard Target) to the training data A neural network that has learned a correlation between the included input data and a hard target corresponding to the input data; Generating first training data including the first input data marked with the first soft output generated by the first neural network; And training the second neural network to learn a correlation between the first soft output and the first input data by using the first training data.

Description

제1 신경망을 이용한 제2 신경망 학습 방법 및 컴퓨터 프로그램{A METHOD AND COMPUTER PROGRAM OF LEARNING A SECOND NEURAL NETWORK USING A FIRST NEURAL NETWORK}The second neural network learning method and computer program using the first neural network {A METHOD AND COMPUTER PROGRAM OF LEARNING A SECOND NEURAL NETWORK USING A FIRST NEURAL NETWORK}

본 발명의 실시예들은 제1 신경망을 이용하여 제2 신경망을 학습하는 방법 및 컴퓨터 프로그램에 관한 것으로, 하드 타겟(Hard Target)으로 학습된 제1 신경망의 소프트 아웃풋(Soft output)을 이용하여, 제2 신경망을 학습시키는 방법 및 컴퓨터 프로그램에 관한 것이다.Embodiments of the present invention relate to a method and a computer program for learning a second neural network using a first neural network. Using a soft output of the first neural network learned with a hard target, 2 It relates to a method and a computer program for training neural networks.

인공 지능이라는 개념은 1956년 미국 다트머스 대학에 있던 존 매카시 교수가 개최한 다트머스 회의에서 처음 등장했으며, 최근 몇 년 사이 폭발적으로 성장하고 있는 중이다.The concept of artificial intelligence first appeared in 1956 at the Dartmouth Conference held by Professor John McCarthy at Dartmouth University in the United States, and has been growing explosively in recent years.

특히 2015년 이후 신속하고 강력한 병렬 처리 성능을 제공하는 GPU의 도입으로 더욱 가속화되고 있으며, 폭발적으로 늘어나고 있는 저장 용량과 이미지, 텍스트, 매핑 데이터 등 모든 영역의 데이터가 범람하게 된 '빅데이터' 시대의 도래도 이러한 성장세에 큰 영향을 미쳤다.In particular, since 2015, it is accelerating with the introduction of GPUs that provide fast and powerful parallel processing performance. The advent also had a great influence on this growth.

머신 러닝은 기본적으로 알고리즘을 이용해 데이터를 분석하고, 분석을 통해 학습하며, 학습한 내용을 기반으로 판단이나 예측을 한다. 따라서 궁극적으로는 의사 결정 기준에 대한 구체적인 지침을 소프트웨어에 직접 코딩해 넣는 것이 아닌, 대량의 데이터와 알고리즘을 통해 컴퓨터 그 자체를 '학습'시켜 작업 수행 방법을 익히는 것을 목표로 한다.Machine learning basically analyzes data using algorithms, learns through analysis, and makes judgments or predictions based on what is learned. Therefore, the goal is to learn how to perform tasks by'learning' the computer itself through a large amount of data and algorithms, rather than coding specific guidelines for decision-making criteria directly into software.

머신 러닝은 초기 인공 지능 연구자들이 직접 제창한 개념에서 나온 것이며, 알고리즘 방식에는 의사 결정 트리 학습, 귀납 논리 프로그래밍, 클러스터링, 강화 학습, 베이지안(Bayesian) 네트워크 등이 포함된다. Machine learning comes from concepts directly advocated by early artificial intelligence researchers, and algorithmic methods include decision tree learning, inductive logic programming, clustering, reinforcement learning, and Bayesian networks.

이와 같은 머신 러닝의 결과는 상용화하기에 충분한 성능을 구현하지만, 구현된 머신 러닝의 결과, 즉 인공 신경망의 크기가 방대하고 연산량이 많아 상용화에 어려운 문제점이 있다. The result of machine learning like this realizes sufficient performance for commercialization, but there is a problem in commercialization because the result of implemented machine learning, that is, the size of the artificial neural network is vast and the amount of computation is large.

즉 모바일 디바이스나 웨어러블 디바이스와 같은 작은 연산능력을 갖는 디바이스뿐만 아니라, 소형 서버 등에 인공 신경망을 탑재하기에는 장치들의 컴퓨팅 리소스가 부족하거나, 처리 능력이 부족한 문제점이 있었다. In other words, in order to mount an artificial neural network in a small server, as well as a device having a small computing power such as a mobile device or a wearable device, there is a problem in that the computing resources of the devices are insufficient or the processing capability is insufficient.

본 발명은 전술한 문제점을 해결하기 위한 것으로, 정확도가 높지만 응답 시간 및 리소스 사용 측면에서 상대적으로 효율성이 떨어지는 제1 신경망의 출력 결과를 이용하여 제2 신경망을 학습시킴으로써, 응답 속도가 빠르면서도 정확도가 향상된 제2 신경망을 구현하고자 한다.The present invention is to solve the above-described problem, and by learning the second neural network using the output result of the first neural network, which has high accuracy but is relatively inefficient in terms of response time and resource use, the response speed is fast and the accuracy is high. We intend to implement an improved second neural network.

또한 본 발명은 시스템의 상용화에 있어서, 보다 간소화된 구조의 신경망을 이용함으로써 시스템의 복잡도를 현저하게 감소시키고자 한다.In addition, the present invention is to significantly reduce the complexity of the system by using a neural network having a more simplified structure in the commercialization of the system.

또한 본 발명은 상대적으로 적은 리소스를 요구하는 제2 신경망을 생성함으로써 서비스의 제공에 있어서 리소스에 의한 제한 요건을 완화시키고자 한다.In addition, the present invention creates a second neural network that requires a relatively small amount of resources, thereby mitigating the resource restriction requirement in providing a service.

본 발명의 일 실시예에 따른 하드 타겟(Hard Target)으로 학습된 제1 신경망의 소프트 아웃풋(Soft output)을 이용하여, 상기 제1 신경망과 구별되는 제2 신경망을 학습시키는 방법은, 제1 신경망을 이용하여, 제1 입력 데이터에 대응되는 제1 소프트 아웃풋을 생성하는 단계; 상기 제1 신경망이 생성한 상기 제1 소프트 아웃풋으로 표지된 상기 제1 입력 데이터를 포함하는 제1 학습 데이터를 생성하는 단계; 및 상기 제1 학습 데이터를 이용하여, 상기 제2 신경망이 상기 제1 소프트 아웃풋과 상기 제1 입력 데이터간의 상관관계를 학습하도록 학습시키는 단계;를 포함할 수 있다. 이때 상기 제1 신경망은 하드 타겟(Hard Target)으로 표지(Label)된 적어도 하나의 학습 데이터에 기반하여 상기 학습 데이터에 포함된 입력 데이터와 상기 입력 데이터에 대응되는 하드 타겟간의 상관관계를 학습한 신경망일 수 있다.A method of learning a second neural network differentiated from the first neural network by using a soft output of a first neural network trained with a hard target according to an embodiment of the present invention includes: a first neural network Generating a first soft output corresponding to the first input data by using; Generating first training data including the first input data marked with the first soft output generated by the first neural network; And training the second neural network to learn a correlation between the first soft output and the first input data by using the first training data. At this time, the first neural network is a neural network that learns a correlation between input data included in the training data and a hard target corresponding to the input data based on at least one training data labeled as a hard target. Can be

본 발명의 일 실시예에 따른 제1 신경망을 이용한 제2 신경망 학습 방법은, 상기 제1 학습 데이터를 생성하는 단계 이전에, 상기 제1 소프트 아웃풋을 소정의 규칙에 따라 정규화하는 단계;를 더 포함할 수 있다.A second neural network training method using a first neural network according to an embodiment of the present invention further includes, before generating the first training data, normalizing the first soft output according to a predetermined rule; can do.

상기 제1 소프트 아웃풋은 상기 제1 입력 데이터에 대응되는 적어도 하나의 확률값을 포함하고, 상기 정규화하는 단계는 상기 적어도 하나의 확률값의 최대값과 상기 적어도 하나의 확률값의 최소값 간의 차이가 소정의 임계차이 이하가 되도록, 상기 적어도 하나의 확률값을 스케일링(Scaling)하는 단계;를 포함할 수 있다.The first soft output includes at least one probability value corresponding to the first input data, and in the normalizing step, a difference between a maximum value of the at least one probability value and a minimum value of the at least one probability value is a predetermined threshold difference. And scaling the at least one probability value to be less than or equal to the following.

상기 제1 입력 데이터는 복수이고, 상기 제1 학습 데이터를 생성하는 단계는 상기 복수의 제1 입력 데이터 각각에 대응되는 학습 데이터를 생성하고, 상기 제2 신경망을 학습시키는 단계는 상기 복수의 제1 입력 데이터 각각에 대응되는 학습 데이터를 이용하여 상기 제2 신경망을 학습시킬 수 있다.The first input data is plural, and the generating of the first training data generates training data corresponding to each of the plurality of first input data, and the training of the second neural network comprises the plurality of first input data. The second neural network may be trained using training data corresponding to each of the input data.

상기 제1 신경망을 이용한 제2 신경망 학습 방법은 상기 제2 신경망을 학습시키는 단계 이후에, 상기 학습된 제2 신경망을 이용하여, 제2 입력 데이터에 대응되는 제2 소프트 아웃풋을 생성하는 단계; 및 상기 제2 소프트 아웃풋에 기초하여, 상기 제2 입력 데이터에 대응되는 출력 결과를 결정하는 단계;를 더 포함할 수 있다.The second neural network learning method using the first neural network includes: after the step of training the second neural network, generating a second soft output corresponding to second input data by using the learned second neural network; And determining an output result corresponding to the second input data based on the second soft output.

상기 제1 신경망의 복잡도는 상기 제2 신경망의 복잡도 보다 클 수 있다. 이때 상기 제1 신경망 및 상기 제2 신경망 각각의 복잡도는 각각의 신경망의 노드(Node)의 수, 히든 레이어(Hidden Layer)의 수 및 전달 함수(Transfer Function)의 수 중 적어도 하나에 기초하여 결정될 수 있다.The complexity of the first neural network may be greater than that of the second neural network. In this case, the complexity of each of the first neural network and the second neural network may be determined based on at least one of the number of nodes, the number of hidden layers, and the number of transfer functions of each neural network. have.

상기 제1 신경망이 제3 입력 데이터에 대응되는 제3-1 소프트 아웃풋을 생성하는데 소요되는 제1 시간은 상기 제2 신경망이 상기 제3 입력 데이터에 대응되는 제3-2 소프트 아웃풋을 생성하는데 소요되는 시간보다 클 수 있다.The first time required for the first neural network to generate the 3-1 soft output corresponding to the third input data is for the second neural network to generate the 3-2 soft output corresponding to the third input data It can be greater than the time it becomes.

상기 제1 신경망이 제4 입력 데이터에 대응되는 제4-1 소프트 아웃풋을 생성하는데 요구되는 제4-1 리소스의 양은 상기 제2 신경망이 상기 제4 입력 데이터에 대응되는 제4-2 소프트 아웃풋을 생성하는데 요구되는 리소스의 양 보다 클 수 있다.The amount of the 4-1 resource required for the first neural network to generate the 4-1 soft output corresponding to the fourth input data is determined by the second neural network to the 4-2 soft output corresponding to the fourth input data. It can be larger than the amount of resources required to create it.

본 발명은 정확도가 높지만 응답 시간 및 리소스 사용 측면에서 상대적으로 효율성이 떨어지는 제1 신경망의 출력 결과를 이용하여 제2 신경망을 학습시킴으로써, 응답 속도가 빠르면서도 정확도가 향상된 제2 신경망을 구현할 수 있다.The present invention trains the second neural network using the output result of the first neural network, which has high accuracy but is relatively inefficient in terms of response time and resource use, thereby implementing a second neural network having a high response speed and improved accuracy.

또한 본 발명은 시스템의 상용화에 있어서, 보다 간소화된 구조의 신경망을 이용함으로써 시스템의 복잡도를 현저하게 감소시킬 수 있다.Further, in the commercialization of the system, the present invention can significantly reduce the complexity of the system by using a neural network having a more simplified structure.

또한 본 발명은 상대적으로 적은 리소스를 요구하는 제2 신경망을 생성함으로써 서비스의 제공에 있어서 리소스에 의한 제한 요건을 완화시킬 수 있다.In addition, according to the present invention, by creating a second neural network that requires relatively few resources, it is possible to alleviate the restriction requirements due to resources in providing a service.

도 1은 본 발명의 일 실시예에 따른 신경망 학습 시스템의 구성을 개략적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 신경망 학습 서버(100)에 구비되는 신경망 학습 장치(110)의 구성을 개략적으로 도시한 도면이다.
도 3 및 도 4는 본 발명의 신경망 학습 장치(110)에 의해 학습된 신경망의 예시적인 구조를 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 제어부(112)가 제1 신경망(520)을 학습시키는 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 제어부(112)가 제2 신경망(620)을 학습시키는 방법을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 제어부(112)가 학습된 제2 신경망(620)을 이용하여 제2 소프트 아웃풋(720)을 생성하는 과정을 설명하기 위한 도면이다.
도 8은 복수의 입력 데이터에 대한 하드 타겟, 소프트 아웃풋 및 정규화된 소프트 아웃풋의 예시이다.
도 9는 본 발명의 일 실시예에 따른 신경망 학습 장치(110)에 의해 수행되는 신경망 학습 방법을 설명하기 위한 흐름도이다.
1 is a diagram schematically showing the configuration of a neural network learning system according to an embodiment of the present invention.
2 is a diagram schematically showing the configuration of a neural network learning apparatus 110 provided in the neural network learning server 100 according to an embodiment of the present invention.
3 and 4 are diagrams for explaining an exemplary structure of a neural network learned by the neural network learning apparatus 110 of the present invention.
5 is a diagram for explaining a method for the controller 112 to learn the first neural network 520 according to an embodiment of the present invention.
6 is a diagram illustrating a method for the controller 112 to train the second neural network 620 according to an embodiment of the present invention.
7 is a diagram illustrating a process of generating a second soft output 720 by using the learned second neural network 620 by the controller 112 according to an embodiment of the present invention.
8 is an example of a hard target, a soft output, and a normalized soft output for a plurality of input data.
9 is a flowchart illustrating a neural network learning method performed by the neural network training apparatus 110 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 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 neural network learning system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 신경망 학습 시스템은 신경망 학습 서버(100), 사용자 단말(200), 서비스 서버(300) 및 통신망(400)을 포함할 수 있다.Referring to FIG. 1, a neural network learning system according to an embodiment of the present invention may include a neural network learning server 100, a user terminal 200, a service server 300, and a communication network 400.

본 발명의 일 실시예에 따른 신경망 학습 시스템은 하드 타겟(Hard Target)으로 학습된 제1 신경망의 소프트 아웃풋(Soft output)을 이용하여, 제1 신경망과 구별되는 제2 신경망을 학습시킬 수 있다. 이때 제1 신경망 및 제2 신경망은 신경망 학습 서버(100)에서 학습될 수 있다. 신경망 학습 서버(100)에서 학습된 제2 신경망은 다양한 방식으로 통신망(400)을 통하여 서비스 서버(300)로 전달될 수 있다. The neural network learning system according to an embodiment of the present invention may train a second neural network that is distinguished from the first neural network by using a soft output of the first neural network learned as a hard target. In this case, the first neural network and the second neural network may be learned by the neural network learning server 100. The second neural network learned by the neural network learning server 100 may be transmitted to the service server 300 through the communication network 400 in various ways.

한편 신경망 학습 서버(100) 및/또는 서비스 서버(300)는 후술하는 바와 같이 학습된 제2 신경망을 이용하여 다양한 서비스를 제공하는 장치를 의미할 수 있다.Meanwhile, the neural network learning server 100 and/or the service server 300 may refer to a device that provides various services using the learned second neural network as described later.

본 발명에서 제1 신경망 및 제2 신경망과 같은 '신경망'은 신경망 학습 서버(100) 및/또는 서비스 서버(300)가 수행하는 서비스에 적합하게 학습된 신경망으로, 머신 러닝(Machine Learning) 또는 딥러닝(Deep Learning) 기법에 의해 학습된 인공 신경망을 의미할 수 있다. 이와 같은 신경망의 구조에 대해서는 도 3 및 도 4를 참조하여 후술한다.In the present invention, a'neural network' such as a first neural network and a second neural network is a neural network that has been trained appropriately for a service performed by the neural network learning server 100 and/or the service server 300, and is machine learning or deep It may mean an artificial neural network learned by a deep learning technique. The structure of such a neural network will be described later with reference to FIGS. 3 and 4.

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

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

한편 사용자 단말(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.

본 발명의 일 실시예에 따른 통신망(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 neural network learning system. 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.

본 발명의 일 실시예에 따른 서비스 서버(300)는 신경망 학습 서버(100)에 의하 학습된 제2 신경망을 이용하여 서비스를 제공하는 장치를 의미할 수 있다. 이와 같은 서비스 서버(300)는 도 1에 도시된 바와 같이 신경망 학습 서버(100)와 구분되는 별개의 장치일 수도 있고, 신경망 학습 서버(100)와 일체로 구성되는(즉 신경망 학습 서버(100)에 포함되는)장치일 수도 있다.The service server 300 according to an embodiment of the present invention may refer to an apparatus that provides a service using a second neural network learned by the neural network learning server 100. As shown in FIG. 1, the service server 300 may be a separate device separated from the neural network learning server 100, or integrally configured with the neural network learning server 100 (that is, the neural network learning server 100 ). It may be a device included in).

이하에서는 설명의 편의를 위하여 학습된 제2 신경망을 이용한 서비스가 신경망 학습 서버(100)에 의해 제공됨을 전제로 설명한다. 다만 이는 전술한 바와 같이 설명의 편의를 위한 것으로, 본 발명의 사상이 이에 한정되는 것은 아니다.Hereinafter, for convenience of explanation, it is assumed that a service using the learned second neural network is provided by the neural network learning server 100. However, this is for convenience of description as described above, and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 신경망 학습 서버(100)는 하드 타겟(Hard Target)으로 학습된 제1 신경망의 소프트 아웃풋(Soft output)을 이용하여, 제1 신경망과 구별되는 제2 신경망을 학습시킬 수 있다. 이를 위하여 본 발명의 일 실시예에 따른 신경망 학습 서버(100)는 도 2에 도시된 신경망 학습 장치를 구비할 수 있다.The neural network learning server 100 according to an embodiment of the present invention uses the soft output of the first neural network learned as a hard target to train a second neural network that is distinguished from the first neural network. I can. To this end, the neural network training server 100 according to an embodiment of the present invention may include the neural network training apparatus shown in FIG. 2.

도 2는 본 발명의 일 실시예에 따른 신경망 학습 서버(100)에 구비되는 신경망 학습 장치(110)의 구성을 개략적으로 도시한 도면이다.2 is a diagram schematically showing the configuration of a neural network learning apparatus 110 provided in the neural network learning server 100 according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 신경망 학습 장치(110)는 통신부(111), 제어부(112) 및 메모리(113)를 포함할 수 있다. 또한 도면에는 도시되지 않았으나, 본 실시예에 따른 신경망 학습 장치(110)는 입/출력부, 프로그램 저장부 등을 더 포함할 수 있다. Referring to FIG. 2, the neural network learning apparatus 110 according to an embodiment of the present invention may include a communication unit 111, a control unit 112, and a memory 113. In addition, although not shown in the drawings, the neural network training apparatus 110 according to the present embodiment may further include an input/output unit, a program storage unit, and the like.

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

제어부(112)는 프로세서(Processor)와 같이 데이터를 처리할 수 있는 모든 종류의 장치를 포함할 수 있다. 여기서, '프로세서(Processor)'는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(Microprocessor), 중앙처리장치(Central Processing Unit: CPU), 프로세서 코어(Processor Core), 멀티프로세서(Multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.The controller 112 may include all types of devices capable of processing data, such as a processor. Here, the'processor' may refer to a data processing device embedded in hardware having a circuit physically structured to perform a function expressed by, for example, 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.

메모리(113)는 신경망 학습 장치(110)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행한다. 메모리는 자기 저장 매체(Magnetic Storage Media) 또는 플래시 저장 매체(Flash Storage Media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 가령 메모리(113)는 제1 신경망 및 제2 신경망을 구성하는 데이터들(가령 계수들)을 일시적 및/또는 영구적으로 저장할 수 있다. 물론 메모리(113)는 제1 신경망과 제2 신경망을 학습하기 위한 학습 데이터도 저장할 수 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.The memory 113 temporarily or permanently stores data processed by the neural network learning apparatus 110. 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 113 may temporarily and/or permanently store data (eg, coefficients) constituting the first neural network and the second neural network. Of course, the memory 113 may also store training data for learning the first neural network and the second neural network. However, this is merely an example and the spirit of the present invention is not limited thereto.

도 3 및 도 4는 본 발명의 신경망 학습 장치(110)에 의해 학습된 신경망의 예시적인 구조를 설명하기 위한 도면이다. 이하에서는 설명의 편의를 위하여 제1 신경망 및 제2 신경망을 '신경망'으로 통칭하여 설명한다.3 and 4 are diagrams for explaining an exemplary structure of a neural network learned by the neural network learning apparatus 110 of the present invention. Hereinafter, for convenience of explanation, a first neural network and a second neural network will be collectively referred to as a'neural network'.

본 발명의 일 실시예에 따른 신경망은 도 3에 도시된 바와 같은 합성 곱 신경망(CNN: Convolutional Neural Network) 모델에 따른 신경망일 수 있다. 이때 CNN 모델은 복수의 연산 레이어(Convolutional Layer, Pooling Layer)를 번갈아 수행하여 최종적으로는 입력 데이터의 특징을 추출하는 데 사용되는 계층 모델일 수 있다.The neural network according to an embodiment of the present invention may be a neural network according to a convolutional neural network (CNN) model as shown in FIG. 3. 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).

본 발명의 일 실시예에 따른 제어부(112)는 학습 데이터를 지도학습(Supervised Learning) 기법에 따라 처리하여 신경망 모델을 구축하거나 학습시킬 수 있다. The controller 112 according to an embodiment of the present invention may build or train a neural network model by processing training data according to a supervised learning technique.

본 발명의 일 실시예에 따른 제어부(112)는 입력 데이터의 특징 값을 추출하기 위한 컨볼루션 레이어(Convolution layer), 추출된 특징 값을 결합하여 특징 맵을 구성하는 풀링 레이어(pooling layer)를 생성할 수 있다. The control unit 112 according to an embodiment of the present invention creates a convolution layer for extracting a feature value of input data and a pooling layer constituting a feature map by combining the extracted feature values. can do.

또한 본 발명의 일 실시예에 따른 제어부(112)는 생성된 특징 맵을 결합하여, 입력 데이터가 복수의 항목 각각에 해당할 확률을 결정할 준비를 하는 풀리 커넥티드 레이어(Fully Conected Layer)를 생성할 수 있다. In addition, the control unit 112 according to an embodiment of the present invention combines the generated feature maps to generate a fully connected layer that prepares to determine the probability that the input data corresponds to each of a plurality of items. I can.

마지막으로 제어부(112)는 입력 데이터가 복수의 항목 각각에 해당할 확률을 포함하는 아웃풋 레이어(Output Layer)를 산출할 수 있다.Finally, the controller 112 may calculate an output layer including a probability that the input data corresponds to each of the plurality of items.

도 3에 도시된 예시에서는, 입력 데이터가 이미지 형태의 데이터로, 5X7 형태의 블록으로 나누어지며, 컨볼루션 레이어의 생성에 5X3 형태의 단위 블록이 사용되고, 풀링 레이어의 생성에 1X4 또는 1X2 형태의 단위 블록이 사용되는 것으로 도시되었지만, 이는 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아니다. 따라서 입력 데이터의 종류 및/또는 각 블록의 크기는 다양하게 구성될 수 있다.In the example shown in FIG. 3, the input data is image-type data, divided into 5X7-type blocks, a 5X3 type unit block is used to generate the convolution layer, and a 1X4 or 1X2 type unit is used to generate the pooling layer. Although the block is shown as being used, this is illustrative and the spirit of the invention is not limited thereto. Accordingly, the type of input data and/or the size of each block may be configured in various ways.

한편 이와 같은 신경망은 전술한 메모리(113)에 신경망을 구성하는 적어도 하나의 노드의 계수, 노드의 가중치 및 신경망을 구성하는 복수의 레이어 간의 관계를 정의하는 함수의 계수들의 형태로 저장될 수 있다. 물론 인경 신경망의 구조 또한 메모리(113)에 소스코드 및/또는 프로그램의 형태로 저장될 수 있다.Meanwhile, the neural network may be stored in the above-described memory 113 in the form of coefficients of at least one node constituting the neural network, a weight of the node, and coefficients of a function defining a relationship between a plurality of layers constituting the neural network. Of course, the structure of the neural network may also be stored in the memory 113 in the form of a source code and/or a program.

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

도 4를 참조하면, 이와 같은 순환 신경망(RNN) 모델에 따른 신경망은 적어도 하나의 입력 노드(N1)를 포함하는 입력 레이어(L1), 복수의 히든 노드(N2)를 포함하는 히든 레이어(L2) 및 적어도 하나의 출력 노드(N3)를 포함하는 출력 레이어(L3)를 포함할 수 있다. 이때 입력 레이어(L1)의 적어도 하나의 입력 노드(N1)에는 제어부(112)가 획득한 입력 데이터에 대응되는 값들이 입력될 수 있다.Referring to FIG. 4, a 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. In this case, values corresponding to the input data acquired by the controller 112 may be input to at least one input node N1 of the input layer L1.

히든 레이어(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 neural network may include a function (not shown) defining a relationship between each hidden layer.

출력 레이어(L3)의 적어도 하나의 출력 노드(N3)는 제어부(112)의 제어에 따라 신경망이 입력 레이어(L1)의 입력 값으로부터 생성한 출력 값을 포함할 수 있다.At least one output node N3 of the output layer L3 may include an output value generated by a neural network from an input value of the input layer L1 under the control of the controller 112.

각 레이어의 각 노드에 포함되는 값은 벡터일 수 있다. 또한 각 노드는 해당 노드의 중요도에 대응되는 가중치를 포함할 수도 있다.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 neural network includes a first function (F1) that defines the relationship between the input layer (L1) and the hidden layer (L2), and a second function (F2) that defines the relationship between the hidden layer (L2) and the output layer (L3). can do.

제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.

제어부(112)에 의해 신경망이 학습되는 과정에서, 복수의 학습 데이터에 기초하여 제1 함수(F1) 및 제2 함수(F2)가 학습될 수 있다. 물론 신경망이 학습되는 과정에서 전술한 제1 함수(F1) 및 제2 함수(F2) 외에 복수의 히든 레이어 사이의 함수들 또한 학습될 수 있다.In the process of learning the neural network by the control unit 112, the first function F1 and the second function F2 may be learned based on a plurality of training data. Of course, while the neural network is trained, functions between a plurality of hidden layers may also be learned in addition to the above-described first function F1 and second function F2.

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

본 발명의 일 실시예에 따른 제어부(112)는 복수의 학습 데이터를 이용하여, 어느 하나의 입력 데이터를 신경망에 입력하여 생성된 출력 값이 해당 학습 데이터에 표지된 값에 근접하도록 전술한 함수들(F1, F2, 히든 레이어 사이의 함수들 등)을 갱신하는 과정을 반복하여 수행함으로써 신경망을 학습시킬 수 있다. The control unit 112 according to an embodiment of the present invention uses a plurality of training data to input any one of the input data to the neural network, and the above-described functions so that the generated output value approaches the value marked in the corresponding training data. A neural network can be trained by repeatedly performing the process of updating (F1, F2, functions between hidden layers, etc.).

이때 본 발명의 일 실시예에 따른 제어부(112)는 역전파(Back Propagation) 알고리즘에 따라 전술한 함수들(F1, F2, 히든 레이어 사이의 함수들 등)을 갱신할 수 있다. 다만 이는 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아니다.At this time, the controller 112 according to an embodiment of the present invention may update the above-described functions (F1, F2, functions between hidden layers, etc.) according to a back propagation algorithm. However, this is merely an example and the spirit of the present invention is not limited thereto.

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

본 발명에서 제1 신경망은 제2 신경망 보다 복잡도가 큰 신경망일 수 있다. 이때 복잡도는 각각의 신경망의 노드(Node)의 수, 히든 레이어(Hidden Layer)의 수 및 전달 함수(Transfer Function)의 수 중 적어도 하나에 기초하여 결정되는 파라미터 일 수 있다.In the present invention, the first neural network may be a neural network having a greater complexity than the second neural network. In this case, the complexity may be a parameter determined based on at least one of the number of nodes of each neural network, the number of hidden layers, and the number of transfer functions.

또한 본 발명에서 제1 신경망은 제2 신경망 보다 아웃풋을 생성하는데 소요되는 시간이 더 긴(즉 속도가 느린) 신경망일 수 있다. 가령 제1 신경망이 제3 입력 데이터에 대응되는 제3-1 소프트 아웃풋을 생성하는데 소요되는 제1 시간은 제2 신경망이 동일한 제3 입력 데이터에 대응되는 제3-2 소프트 아웃풋을 생성하는데 소요되는 시간보다 클 수 있다.In addition, in the present invention, the first neural network may be a neural network that takes a longer time (that is, a slower speed) to generate an output than the second neural network. For example, the first time required for the first neural network to generate the 3-1 soft output corresponding to the third input data is the second time required for the second neural network to generate the 3-2 soft output corresponding to the same third input data. May be greater than time.

또한 본 발명에서 제1 신경망은 제2 신경망 보다 리소스를 더 많이 요구하는 신경망일 수 있다. 가령 제1 신경망이 제4 입력 데이터에 대응되는 제4-1 소프트 아웃풋을 생성하는데 요구되는 제4-1 리소스의 양은, 제2 신경망이 동일한 제4 입력 데이터에 대응되는 제4-2 소프트 아웃풋을 생성하는데 요구되는 리소스의 양 보다 클 수 있다.In addition, in the present invention, the first neural network may be a neural network that requires more resources than the second neural network. For example, the amount of the 4-1 resource required for the first neural network to generate the 4-1 soft output corresponding to the fourth input data is the 4-2 soft output corresponding to the same fourth input data by the second neural network. It can be larger than the amount of resources required to create it.

또한 본 발명에서 제1 신경망은 제2 신경망 보다 아웃풋의 정확도가 높은 신경망일 수 있다. 가령 제1 신경망이 제5 입력 데이터에 대응되도록 생성한 제5-1 소프트 아웃풋의 정확도는, 제2 신경망이 동일한 제5 입력 데이터에 대응되도록 생성한 제5-2 소프트 아웃풋의 정확도보다 높을 수 있다.In addition, in the present invention, the first neural network may be a neural network having higher output accuracy than the second neural network. For example, the accuracy of the 5-1 soft output generated by the first neural network to correspond to the fifth input data may be higher than the accuracy of the 5-2 soft output generated by the second neural network to correspond to the same fifth input data. .

따라서 제1 신경망은 제2 신경망과 비교했을 때, 높은 정확도를 요구하는 시스템에 사용되는 신경망일 수 있다. 또한 제2 신경망은 제1 신경망과 비교했을 때 빠른 응답속도, 낮은 리소스 사용을 요구하는 시스템에 사용되는 신경망일 수 있다.Therefore, when compared with the second neural network, the first neural network may be a neural network used in a system requiring high accuracy. In addition, the second neural network may be a neural network used in a system requiring a fast response speed and low resource usage compared to the first neural network.

본 발명의 일 실시예에서, 제1 신경망은 소정의 목적을 가진 시스템의 설계 및/또는 초기단계에서 시스템의 실험을 위해 사용되는 신경망일 수 있고, 제2 신경망은 해당 시스템의 상용화 단계에서 시스템의 통상적인 사용을 위해 사용되는 신경망일 수 있다.In an embodiment of the present invention, the first neural network may be a neural network used for designing and/or experimenting with a system in an initial stage of a system having a predetermined purpose, and the second neural network is a system in the commercialization stage of the corresponding system. It may be a neural network used for normal use.

한편 제1 신경망 및 제2 신경망 중 적어도 하나는 합성 곱 신경망(CNN) 모델에 따른 신경망이거나 순환 신경망(RNN) 모델에 따른 신경망일 수 있다. 물론 도 3 및 도 4에서 설명하는 신경망은 예시적인것으로, 제1 신경망 및 제2 신경망 모두 합성 곱 신경망(CNN) 모델에 따른 신경망 및 순환 신경망(RNN) 모델에 따른 신경망이 아닐 수도 있다.Meanwhile, at least one of the first neural network and the second neural network may be a neural network according to a synthetic product neural network (CNN) model or a neural network according to a cyclic neural network (RNN) model. Of course, the neural networks described in FIGS. 3 and 4 are exemplary, and both the first neural network and the second neural network may not be neural networks according to the composite product neural network (CNN) model and the neural network according to the RNN model.

이하에서는 제어부(112)가 제1 신경망을 학습시키고, 학습된 제1 신경망을 이용하여 제2 신경망을 학습하는 방법을 중심으로 설명한다.Hereinafter, a description will be given focusing on a method of learning the first neural network by the control unit 112 and learning the second neural network using the learned first neural network.

본 발명의 일 실시예에 따른 제어부(112)는 하드 타켓을 포함하는 학습 데이터를 이용하여 제1 신경망을 학습시킬 수 있다.The controller 112 according to an embodiment of the present invention may train the first neural network by using training data including a hard target.

도 5는 본 발명의 일 실시예에 따른 제어부(112)가 제1 신경망(520)을 학습시키는 방법을 설명하기 위한 도면이다.5 is a diagram for explaining a method for the controller 112 to learn the first neural network 520 according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 제어부(112)는 전술한 바와 같이 하드 타겟으로 표지된 학습 데이터(510)를 이용하여 제1 신경망(520)을 학습시킬 수 있다. The controller 112 according to an embodiment of the present invention may train the first neural network 520 by using the training data 510 marked as a hard target as described above.

본 발명에서 '하드 타겟'(Hard Target)(또는 하드 아웃풋)은 온-오프 방식(또는 바이너리 방식)으로 입력 데이터의 인식 결과를 나타낸 데이터를 의미할 수 있다. 가령 도 8에 도시된 예시에서와 같이, 입력 이미지를 인식하여 해당 이미지가 고양이, 강아지, 소 및 자동차 중 어떤 것에 관한 것인지를 인식하는 시스템에서, 하드 타켓은 고양이를 의미하는 "[1,0,0,0]", 소를 의미하는 "[0,0,1,0]"과 같은 형태의 데이터를 의미할 수 있다. 이와 같은 하드 타겟은 특정 항목의 유무에 대한 정보만을 포함하므로, 후술하는 '소프트 타겟'보다는 상대적으로 정보량이 적은 데이터를 의미할 수 있다.In the present invention, a'hard target' (or hard output) may mean data representing a recognition result of input data in an on-off method (or a binary method). For example, as in the example shown in FIG. 8, in a system that recognizes an input image and recognizes whether the image relates to a cat, a dog, a cow, or a car, the hard target is "[1,0," which means a cat. It may mean data in a form such as "0,0]" and "[0,0,1,0]" meaning cow. Since such a hard target includes only information on the presence or absence of a specific item, it may mean data with a relatively smaller amount of information than a'soft target' to be described later.

따라서 첫 번째 학습 데이터(511)는 가령 고양이 이미지와 함께 "[1,0,0,0]"과 같은 표지(512)를 포함할 수 있다. 학습 데이터가 복수인 경우, 학습 데이터(510) 각각은 도 5에 도시된 바와 같이 각각의 이미지 및 표지를 첫 번째 학습 데이터(511)와 마찬가지 방식으로 포함할 수 있다.Accordingly, the first training data 511 may include a marker 512 such as “[1,0,0,0]” together with the cat image. When there are a plurality of training data, each of the training data 510 may include a respective image and a mark as illustrated in FIG. 5 in the same manner as the first training data 511.

본 발명의 일 실시예에 따른 제어부(112)가 제1 신경망(520)을 학습시키는 과정을 보다 상세히 살펴보면, 제어부(112)는 제1 신경망(520)이 하나의 학습 데이터에 포함된 입력 데이터와 하드 타겟간의 상관관계를 학습하도록 할 수 있다. Looking in more detail at a process in which the control unit 112 trains the first neural network 520 according to an embodiment of the present invention, the control unit 112 includes input data included in the first neural network 520 and You can learn the correlation between hard targets.

바꾸어 말하면, 제어부(112)는 제1 신경망(520)에 입력 데이터를 입력하였을 때, 해당 입력에 대응되는 하드 타켓이 출력되도록 제1 신경망(520)을 학습시킬 수 있다.In other words, when input data is input to the first neural network 520, the controller 112 may train the first neural network 520 to output a hard target corresponding to the input.

본 발명에서 제1 신경망 및 제2 신경망과 같은 '신경망을 학습시키는 것'을 전술한 바와 같이 신경망을 구성하는 각 요소들의 계수를 적절히 업데이트 하는 것을 의미할 수 있다. 가령 신경망을 학습시키는 것은 신경망을 구성하는 적어도 하나의 노드의 계수, 노드의 가중치 및 신경망을 구성하는 복수의 레이어 간의 관계를 정의하는 함수의 계수들을 업데이트 하는 것을 의미할 수 있다.In the present invention, “training a neural network” such as a first neural network and a second neural network may mean appropriately updating the coefficients of each element constituting the neural network as described above. For example, training a neural network may mean updating coefficients of at least one node constituting the neural network, a weight of the node, and coefficients of a function defining a relationship between a plurality of layers constituting the neural network.

가령, 도 8의 예시에서와 같이 입력 이미지를 인식하여 해당 이미지가 고양이, 강아지, 소 및 자동차 중 어떤 것에 관한 것인지를 인식하는 시스템에서, 제어부(112)는 고양이 이미지를 입력 데이터로, 고양이를 의미하는 "[1,0,0,0]"을 하드 타겟으로 포함하는 학습 데이터에 기초하여 제1 신경망(520)을 학습시킬 수 있다.For example, as in the example of FIG. 8, in a system that recognizes an input image and recognizes whether the corresponding image relates to a cat, a dog, a cow, or a car, the controller 112 uses the cat image as input data, meaning a cat. The first neural network 520 may be trained on the basis of training data including “[1,0,0,0]” as a hard target.

본 발명의 일 실시예에 따른 제어부(112)는 복수의 학습 데이터를 이용하여 제1 신경망(520)을 학습시킬 수 있다. 이때 복수의 학습 데이터 각각은 서로 다른 입력 데이터 및 이에 대한 하드 타겟을 포함할 수 있다. The control unit 112 according to an embodiment of the present invention may train the first neural network 520 by using a plurality of training data. In this case, each of the plurality of training data may include different input data and a hard target therefor.

도 6은 본 발명의 일 실시예에 따른 제어부(112)가 제2 신경망(620)을 학습시키는 방법을 설명하기 위한 도면이다.6 is a diagram illustrating a method for the controller 112 to train the second neural network 620 according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 제어부(112)는 상술한 과정에 의해 학습된 제1 신경망(520)을 이용하여 제1 입력 데이터에 대한 소프트 아웃풋(630)을 생성할 수 있다. 가령 제어부(112)는 복수의 제1 입력 데이터 중 첫 번째 입력 데이터(611)에 대한 소프트 아웃풋(631)을 생성할 수 있다.The controller 112 according to an embodiment of the present invention may generate a soft output 630 for first input data using the first neural network 520 learned by the above-described process. For example, the controller 112 may generate a soft output 631 for the first input data 611 among a plurality of first input data.

본 발명의 일 실시예에 따른 제어부(112)는 제1 신경망(520)이 생성한 제1 소프트 아웃풋을 소정의 규칙(또는 softner(640)를 이용하여)에 따라 정규화할 수 있다. 가령 제1 소프트 아웃풋이 제1 입력 데이터에 대응되는 적어도 하나의 확률값을 포함하는 경우, 제어부(112)는 적어도 하나의 확률값의 최대값과 적어도 하나의 확률값의 최소값 간의 차이가 소정의 임계차이 이하가 되도록, 적어도 하나의 확률값을 스케일링(Scaling)할 수 있다. 예를들어 제어부(112)는 "[0.8, 0.3, 0.006 0.00000000001]"과 같은 제1 소프트 아웃풋을 "[0.3, 0.2, 0.1 0.05]"과 같이 스케일링 할 수 있다. 이때 본 발명의 일 실시예에 따른 제어부(112)는 다양한 방식으로 적어도 하나의 확률값을 스케일링(Scaling)할 수 있다. 가령 제어부(112)는 소정의 계수를 곱하는 방식으로 스케일링을 할 수도 있고, 수학적 함수(예를 들어 log 함수)를 이용하는 방식으로 스케일링을 할 수도 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.The controller 112 according to an embodiment of the present invention may normalize the first soft output generated by the first neural network 520 according to a predetermined rule (or using the softner 640). For example, when the first soft output includes at least one probability value corresponding to the first input data, the control unit 112 determines that the difference between the maximum value of at least one probability value and the minimum value of at least one probability value is less than or equal to a predetermined threshold difference. If possible, at least one probability value may be scaled. For example, the controller 112 may scale the first soft output such as "[0.8, 0.3, 0.006 0.00000000001]" as "[0.3, 0.2, 0.1 0.05]". In this case, the controller 112 according to an embodiment of the present invention may scale at least one probability value in various ways. For example, the control unit 112 may perform scaling by multiplying a predetermined coefficient, or by using a mathematical function (eg, a log function). However, this is merely an example and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 제어부(112)는 제1 신경망(520)이 생성한 제1 소프트 아웃풋(630) (또는 정규화된 소프트 아웃풋)으로 표지된 제1 입력 데이터를 포함하는, 제1 학습 데이터를 생성할 수 있다. 가령 제어부(112)는 첫 번째 입력 데이터(611)에 "[0.8, 0.3, 0.006 0.00000000001]"과 같은 제1 소프트 아웃풋 또는 "[0.3, 0.2, 0.1 0.05]"과 같은 스케일링된 제1 소프트 아웃풋으로 표지된 제1 학습 데이터를 생성할 수 있다.The control unit 112 according to an embodiment of the present invention includes first input data marked with the first soft output 630 (or normalized soft output) generated by the first neural network 520. Data can be created. For example, the control unit 112 uses a first soft output such as "[0.8, 0.3, 0.006 0.00000000001]" or a scaled first soft output such as "[0.3, 0.2, 0.1 0.05]" in the first input data 611. The labeled first learning data may be generated.

이와 같은 제1 학습 데이터는 제1 입력 데이터의 수에 따라 복수일 수 있다. 가령 제1 입력 데이터가 1000개 인 경우, 제1 학습 데이터도 1000개 일 수 있다. 다만 이와 같은 수량은 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.A plurality of such first learning data may be provided according to the number of first input data. For example, when there are 1000 first input data, there may be 1000 first training data. However, such quantities are exemplary, and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 제어부(112)는 생성된 제1 학습 데이터를 이용하여, 제2 신경망(620)이 제1 소프트 아웃풋과 제1 입력 데이터간의 상관관계를 학습하도록 학습시킬 수 있다.The controller 112 according to an embodiment of the present invention may train the second neural network 620 to learn a correlation between the first soft output and the first input data using the generated first training data.

바꾸어말하면, 본 발명의 일 실시예에 따른 제어부(112)는 제1 소프트 아웃풋과 제1 입력 데이터가 서로 관련이 있는 것으로 판단하도록 제2 신경망(620)을 학습시킬 수 있다. In other words, the control unit 112 according to an embodiment of the present invention may train the second neural network 620 to determine that the first soft output and the first input data are related to each other.

또 바꾸어말하면, 본 발명의 일 실시예에 따른 제어부(112)는 제2 신경망(620)에 제1 입력 데이터를 입력하였을 때, 제1 소프트 아웃풋이 출력될 수 있도록 제2 신경망(620)을 학습시킬 수 있다.In other words, the control unit 112 according to an embodiment of the present invention learns the second neural network 620 to output the first soft output when the first input data is input to the second neural network 620. I can make it.

신경망을 '학습'시키는 것의 의미에 관한 설명은 상술하였으므로, 이에 대한 상세한 설명은 생략한다.Since the description of the meaning of “learning” the neural network has been described above, a detailed description thereof will be omitted.

도 7은 본 발명의 일 실시예에 따른 제어부(112)가 학습된 제2 신경망(620)을 이용하여 제2 소프트 아웃풋(720)을 생성하는 과정을 설명하기 위한 도면이다.7 is a diagram illustrating a process of generating a second soft output 720 by using the learned second neural network 620 by the controller 112 according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 제어부(112)는 전술한 과정에 따라 학습된 제2 신경망(620)을 이용하여, 제2 입력 데이터(710)에 대응되는 제2 소프트 아웃풋(720)을 생성할 수 있다. 가령 도 7에 도시된 바와 같이 제2 입력 데이터(710)가 소의 이미지인 경우, 제어부(112)는 제2 신경망(760)을 이용하여 "[0.01, 0.2, 0.4, 0.002]"와 같은 소프트 아웃풋(720)을 생성할 수 있다. The control unit 112 according to an embodiment of the present invention can generate a second soft output 720 corresponding to the second input data 710 using the second neural network 620 learned according to the above-described process. I can. For example, as shown in FIG. 7, when the second input data 710 is an image of a cow, the controller 112 uses the second neural network 760 to provide a soft output such as "[0.01, 0.2, 0.4, 0.002]". (720) can be created.

본 발명의 일 실시예에 따른 제어부(112)는 상술한 과정에 의해 생성된 제2 소프트 아웃풋(720)에 기초하여, 제2 입력 데이터(710)에 대응되는 출력 결과(740)를 결정할 수 있다.The controller 112 according to an embodiment of the present invention may determine an output result 740 corresponding to the second input data 710 based on the second soft output 720 generated by the above-described process. .

가령 제어부(112)는 도 8에 도시된 바와 같은 테이블을 참조하여, 제2 소프트 아웃풋(720)에 가장 가까운 하드 타겟(730)을 결정하고, 결정된 하드 타겟(730)에 대응되는 값인 "소"를 출력 결과(740)로 결정할 수 있다. 이때 제어부(112)는 제2 소프트 아웃풋(720) 및 하드 타겟(730) 각각을 소정의 차원의 벡터로 간주하여, 양 벡터간의 거리에 기반하여 유사도를 판단할 수 있다. 다만 이와 같은 판단 방법은 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.For example, the controller 112 determines the hard target 730 closest to the second soft output 720 by referring to the table as shown in FIG. 8, and “small” which is a value corresponding to the determined hard target 730 May be determined as the output result 740. In this case, the controller 112 may consider each of the second soft output 720 and the hard target 730 as a vector of a predetermined dimension, and determine a similarity based on a distance between the vectors. However, such a determination method is exemplary, and the spirit of the present invention is not limited thereto.

이와 같이 본 발명은 정확도가 높지만, 응답 시간 및 리소스 사용 측면에서 상대적으로 효율성이 떨어지는 제1 신경망의 출력 결과를 이용하여 제2 신경망을 학습시킴으로써, 응답 속도가 빠르면서도 정확도가 향상된 제2 신경망을 구현할 수 있다.As described above, the present invention trains the second neural network using the output result of the first neural network, which has high accuracy, but is relatively inefficient in terms of response time and resource use, thereby implementing a second neural network with high response speed and improved accuracy. I can.

아울러 본 발명은 시스템의 상용화에 있어서, 보다 간소화된 구조의 신경망을 이용함으로써 시스템의 복잡도를 현저하게 감소시킬 수 있다.In addition, the present invention can significantly reduce the complexity of the system by using a neural network having a more simplified structure in commercialization of the system.

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

도 5를 참조하면, 본 발명의 일 실시예에 따른 신경망 학습 장치(110)는 하드 타겟으로 표지된 학습 데이터(510)를 이용하여 제1 신경망(520)을 학습시킬 수 있다.(S91)Referring to FIG. 5, the neural network training apparatus 110 according to an embodiment of the present invention may train a first neural network 520 using training data 510 labeled as a hard target (S91).

본 발명에서 '하드 타겟'(Hard Target)(또는 하드 아웃풋)은 온-오프 방식(또는 바이너리 방식)으로 입력 데이터의 인식 결과를 나타낸 데이터를 의미할 수 있다. 가령 도 8에 도시된 예시에서와 같이, 입력 이미지를 인식하여 해당 이미지가 고양이, 강아지, 소 및 자동차 중 어떤 것에 관한 것인지를 인식하는 시스템에서, 하드 타켓은 고양이를 의미하는 "[1,0,0,0]", 소를 의미하는 "[0,0,1,0]"과 같은 형태의 데이터를 의미할 수 있다. 이와 같은 하드 타겟은 특정 항목의 유무에 대한 정보만을 포함하므로, 후술하는 '소프트 타겟'보다는 상대적으로 정보량이 적은 데이터를 의미할 수 있다.In the present invention, a'hard target' (or hard output) may mean data representing a recognition result of input data in an on-off method (or a binary method). For example, as in the example shown in FIG. 8, in a system that recognizes an input image and recognizes whether the image relates to a cat, a dog, a cow, or a car, the hard target is "[1,0," which means a cat. It may mean data in a form such as "0,0]" and "[0,0,1,0]" meaning cow. Since such a hard target includes only information on the presence or absence of a specific item, it may mean data with a relatively smaller amount of information than a'soft target' to be described later.

따라서 첫 번째 학습 데이터(511)는 가령 고양이 이미지와 함께 "[1,0,0,0]"과 같은 표지(512)를 포함할 수 있다. 학습 데이터가 복수인 경우, 학습 데이터(510) 각각은 도 5에 도시된 바와 같이 각각의 이미지 및 표지를 첫 번째 학습 데이터(511)와 마찬가지 방식으로 포함할 수 있다.Accordingly, the first training data 511 may include a marker 512 such as “[1,0,0,0]” together with the cat image. When there are a plurality of training data, each of the training data 510 may include a respective image and a mark as illustrated in FIG. 5 in the same manner as the first training data 511.

본 발명의 일 실시예에 따른 신경망 학습 장치(110)가 제1 신경망(520)을 학습시키는 과정을 보다 상세히 살펴보면, 신경망 학습 장치(110)는 제1 신경망(520)이 하나의 학습 데이터에 포함된 입력 데이터와 하드 타겟간의 상관관계를 학습하도록 할 수 있다. Looking in more detail at the process in which the neural network training apparatus 110 according to an embodiment of the present invention learns the first neural network 520, the neural network training apparatus 110 includes the first neural network 520 in one training data. It is possible to learn the correlation between the input data and the hard target.

바꾸어 말하면, 신경망 학습 장치(110)는 제1 신경망(520)에 입력 데이터를 입력하였을 때, 해당 입력에 대응되는 하드 타켓이 출력되도록 제1 신경망(520)을 학습시킬 수 있다.In other words, when input data is input to the first neural network 520, the neural network training apparatus 110 may train the first neural network 520 to output a hard target corresponding to the input.

본 발명에서 제1 신경망 및 제2 신경망과 같은 '신경망을 학습시키는 것'을 전술한 바와 같이 신경망을 구성하는 각 요소들의 계수를 적절히 업데이트 하는 것을 의미할 수 있다. 가령 신경망을 학습시키는 것은 신경망을 구성하는 적어도 하나의 노드의 계수, 노드의 가중치 및 신경망을 구성하는 복수의 레이어 간의 관계를 정의하는 함수의 계수들을 업데이트 하는 것을 의미할 수 있다.In the present invention, “training a neural network” such as a first neural network and a second neural network may mean appropriately updating the coefficients of each element constituting the neural network as described above. For example, training a neural network may mean updating coefficients of at least one node constituting the neural network, a weight of the node, and coefficients of a function defining a relationship between a plurality of layers constituting the neural network.

가령, 도 8의 예시에서와 같이 입력 이미지를 인식하여 해당 이미지가 고양이, 강아지, 소 및 자동차 중 어떤 것에 관한 것인지를 인식하는 시스템에서, 신경망 학습 장치(110)는 고양이 이미지를 입력 데이터로, 고양이를 의미하는 "[1,0,0,0]"을 하드 타겟으로 포함하는 학습 데이터에 기초하여 제1 신경망(520)을 학습시킬 수 있다.For example, as in the example of FIG. 8, in a system that recognizes an input image and recognizes whether the corresponding image relates to a cat, a dog, a cow, or a car, the neural network learning apparatus 110 uses a cat image as input data, and The first neural network 520 may be trained on the basis of training data including “[1,0,0,0]” which means “[1,0,0,0]” as a hard target.

본 발명의 일 실시예에 따른 신경망 학습 장치(110)는 복수의 학습 데이터를 이용하여 제1 신경망(520)을 학습시킬 수 있다. 이때 복수의 학습 데이터 각각은 서로 다른 입력 데이터 및 이에 대한 하드 타겟을 포함할 수 있다. The neural network training apparatus 110 according to an embodiment of the present invention may train the first neural network 520 by using a plurality of training data. In this case, each of the plurality of training data may include different input data and a hard target therefor.

도 6을 참조하면, 본 발명의 일 실시예에 따른 신경망 학습 장치(110)는 상술한 과정에 의해 학습된 제1 신경망(520)을 이용하여 제1 입력 데이터에 대한 소프트 아웃풋(630)을 생성할 수 있다.(S92) 가령 신경망 학습 장치(110)는 복수의 제1 입력 데이터 중 첫 번째 입력 데이터(611)에 대한 소프트 아웃풋(631)을 생성할 수 있다.6, the neural network training apparatus 110 according to an embodiment of the present invention generates a soft output 630 for first input data using a first neural network 520 learned by the above-described process. (S92) For example, the neural network training apparatus 110 may generate a soft output 631 for the first input data 611 among a plurality of first input data.

본 발명의 일 실시예에 따른 신경망 학습 장치(110)는 제1 신경망(520)이 생성한 제1 소프트 아웃풋을 소정의 규칙(또는 softner(640)를 이용하여)에 따라 정규화할 수 있다.(S93) 가령 제1 소프트 아웃풋이 제1 입력 데이터에 대응되는 적어도 하나의 확률값을 포함하는 경우, 신경망 학습 장치(110)는 적어도 하나의 확률값의 최대값과 적어도 하나의 확률값의 최소값 간의 차이가 소정의 임계차이 이하가 되도록, 적어도 하나의 확률값을 스케일링(Scaling)할 수 있다. 예를들어 신경망 학습 장치(110)는 "[0.8, 0.3, 0.006 0.00000000001]"과 같은 제1 소프트 아웃풋을 "[0.3, 0.2, 0.1 0.05]"과 같이 스케일링 할 수 있다. 이때 본 발명의 일 실시예에 따른 신경망 학습 장치(110)는 다양한 방식으로 적어도 하나의 확률값을 스케일링(Scaling)할 수 있다. 가령 신경망 학습 장치(110)는 소정의 계수를 곱하는 방식으로 스케일링을 할 수도 있고, 수학적 함수(예를 들어 log 함수)를 이용하는 방식으로 스케일링을 할 수도 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.The neural network training apparatus 110 according to an embodiment of the present invention may normalize the first soft output generated by the first neural network 520 according to a predetermined rule (or using the softner 640). S93) For example, when the first soft output includes at least one probability value corresponding to the first input data, the neural network learning apparatus 110 may determine that the difference between the maximum value of at least one probability value and the minimum value of at least one probability value is a predetermined value. At least one probability value may be scaled to be less than or equal to the critical difference. For example, the neural network training apparatus 110 may scale a first soft output such as "[0.8, 0.3, 0.006 0.00000000001]" as "[0.3, 0.2, 0.1 0.05]". In this case, the neural network training apparatus 110 according to an embodiment of the present invention may scale at least one probability value in various ways. For example, the neural network learning apparatus 110 may perform scaling by multiplying a predetermined coefficient or by using a mathematical function (eg, a log function). However, this is merely an example and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 신경망 학습 장치(110)는 제1 신경망(520)이 생성한 제1 소프트 아웃풋(630) (또는 정규화된 소프트 아웃풋)으로 표지된 제1 입력 데이터를 포함하는, 제1 학습 데이터를 생성할 수 있다.(S94) 가령 신경망 학습 장치(110)는 첫 번째 입력 데이터(611)에 "[0.8, 0.3, 0.006 0.00000000001]"과 같은 제1 소프트 아웃풋 또는 "[0.3, 0.2, 0.1 0.05]"과 같은 스케일링된 제1 소프트 아웃풋으로 표지된 제1 학습 데이터를 생성할 수 있다.The neural network training apparatus 110 according to an embodiment of the present invention includes first input data marked with a first soft output 630 (or normalized soft output) generated by the first neural network 520. 1 The training data may be generated (S94). For example, the neural network training apparatus 110 may generate a first soft output such as "[0.8, 0.3, 0.006 0.00000000001]" or "[0.3, 0.2" in the first input data 611. , 0.1 0.05]", the first training data marked with a scaled first soft output may be generated.

이와 같은 제1 학습 데이터는 제1 입력 데이터의 수에 따라 복수일 수 있다. 가령 제1 입력 데이터가 1000개 인 경우, 제1 학습 데이터도 1000개 일 수 있다. 다만 이와 같은 수량은 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.A plurality of such first learning data may be provided according to the number of first input data. For example, when there are 1000 first input data, there may be 1000 first training data. However, such quantities are exemplary, and the spirit of the present invention is not limited thereto.

본 발명의 일 실시예에 따른 신경망 학습 장치(110)는 생성된 제1 학습 데이터를 이용하여, 제2 신경망(620)이 제1 소프트 아웃풋과 제1 입력 데이터간의 상관관계를 학습하도록 학습시킬 수 있다.(S95) 바꾸어말하면, 본 발명의 일 실시예에 따른 신경망 학습 장치(110)는 제1 소프트 아웃풋과 제1 입력 데이터가 서로 관련이 있는 것으로 판단하도록 제2 신경망(620)을 학습시킬 수 있다. The neural network training apparatus 110 according to an embodiment of the present invention may train the second neural network 620 to learn the correlation between the first soft output and the first input data using the generated first training data. In other words, the neural network training apparatus 110 according to an embodiment of the present invention may train the second neural network 620 to determine that the first soft output and the first input data are related to each other. have.

또 바꾸어말하면, 본 발명의 일 실시예에 따른 신경망 학습 장치(110)는 제2 신경망(620)에 제1 입력 데이터를 입력하였을 때, 제1 소프트 아웃풋이 출력될 수 있도록 제2 신경망(620)을 학습시킬 수 있다.In other words, when the first input data is input to the second neural network 620, the neural network training apparatus 110 according to an embodiment of the present invention provides the second neural network 620 to output the first soft output. Can learn.

신경망을 '학습'시키는 것의 의미에 관한 설명은 상술하였으므로, 이에 대한 상세한 설명은 생략한다.Since the description of the meaning of “learning” the neural network has been described above, a detailed description thereof will be omitted.

본 발명의 일 실시예에 따른 신경망 학습 장치(110)는 아웃풋 데이터를 생성하고자 하는 입력 데이터(후술하는 제2 입력 데이터)를 획득할 수 있다.(S96) 가령 도 8에 도시된 예시에서와 같이, 입력 이미지를 인식하여 해당 이미지가 고양이, 강아지, 소 및 자동차 중 어떤 것에 관한 것인지를 인식하는 시스템의 경우 입력 데이터로써 입력 이미지를 획득할 수 있다. 이때 입력 이미지는 고양이, 강아지, 소 및 자동차 중 어느 하나에 관한 것일 수 있다.The neural network training apparatus 110 according to an embodiment of the present invention may acquire input data (second input data to be described later) for generating output data (S96). For example, as in the example shown in FIG. , In the case of a system that recognizes an input image and recognizes whether the corresponding image relates to a cat, a dog, a cow, or a car, an input image may be obtained as input data. In this case, the input image may be about any one of a cat, a dog, a cow, and a car.

도 7을 참조하면, 본 발명의 일 실시예에 따른 신경망 학습 장치(110)는 전술한 과정에 따라 학습된 제2 신경망(620)을 이용하여, 제2 입력 데이터(710)에 대응되는 제2 소프트 아웃풋(720)을 생성할 수 있다.(S97) 가령 도 7에 도시된 바와 같이 제2 입력 데이터(710)가 소의 이미지인 경우, 신경망 학습 장치(110)는 제2 신경망(760)을 이용하여 "[0.01, 0.2, 0.4, 0.002]"와 같은 소프트 아웃풋(720)을 생성할 수 있다. Referring to FIG. 7, the neural network training apparatus 110 according to an embodiment of the present invention uses a second neural network 620 learned according to the above-described process, and uses a second neural network 620 corresponding to the second input data 710. A soft output 720 may be generated. (S97) For example, as shown in FIG. 7, when the second input data 710 is an image of a cow, the neural network training apparatus 110 uses the second neural network 760 Thus, a soft output 720 such as "[0.01, 0.2, 0.4, 0.002]" can be generated.

본 발명의 일 실시예에 따른 신경망 학습 장치(110)는 상술한 과정에 의해 생성된 제2 소프트 아웃풋(720)에 기초하여, 제2 입력 데이터(710)에 대응되는 출력 결과(740)를 결정할 수 있다.(S98) 가령 신경망 학습 장치(110)는 도 8에 도시된 바와 같은 테이블을 참조하여, 제2 소프트 아웃풋(720)에 가장 가까운 하드 타겟(730)을 결정하고, 결정된 하드 타겟(730)에 대응되는 값인 "소"를 출력 결과(740)로 결정할 수 있다. 이때 신경망 학습 장치(110)는 제2 소프트 아웃풋(720) 및 하드 타겟(730) 각각을 소정의 차원의 벡터로 간주하여, 양 벡터간의 거리에 기반하여 유사도를 판단할 수 있다. 다만 이와 같은 판단 방법은 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.The neural network training apparatus 110 according to an embodiment of the present invention determines an output result 740 corresponding to the second input data 710 based on the second soft output 720 generated by the above-described process. (S98) For example, the neural network training apparatus 110 determines the hard target 730 closest to the second soft output 720 by referring to the table as shown in FIG. 8, and determines the determined hard target 730. A value corresponding to) may be determined as the output result 740. In this case, the neural network training apparatus 110 may consider each of the second soft output 720 and the hard target 730 as vectors of a predetermined dimension, and determine a similarity based on a distance between the vectors. However, such a determination method is exemplary, and the spirit of the present invention is not limited thereto.

이와 같이 본 발명은 정확도가 높지만, 응답 시간 및 리소스 사용 측면에서 상대적으로 효율성이 떨어지는 제1 신경망의 출력 결과를 이용하여 제2 신경망을 학습시킴으로써, 응답 속도가 빠르면서도 정확도가 향상된 제2 신경망을 구현할 수 있다.As described above, the present invention trains the second neural network using the output result of the first neural network, which has high accuracy, but is relatively inefficient in terms of response time and resource use, thereby implementing a second neural network with high response speed and improved accuracy. I can.

아울러 본 발명은 시스템의 상용화에 있어서, 보다 간소화된 구조의 신경망을 이용함으로써 시스템의 복잡도를 현저하게 감소시킬 수 있다.In addition, the present invention can significantly reduce the complexity of the system by using a neural network having a more simplified structure in commercialization of the system.

이상 설명된 본 발명에 따른 실시예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 저장하는 것일 수 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, 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 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: 신경망 학습 장치
111: 통신부
112: 제어부
113: 메모리
200: 사용자 단말
300: 서비스 서버
400: 통신망
100: neural network training server
110: neural network learning device
111: communication department
112: control unit
113: memory
200: user terminal
300: service server
400: communication network

Claims (10)

컴퓨팅 시스템에 의해 각 단계가 수행되는, 하드 타겟(Hard Target)으로 학습된 제1 신경망의 소프트 아웃풋(Soft output)을 이용하여, 상기 제1 신경망과 구별되는 제2 신경망을 학습시키는 방법에 있어서,
제1 신경망을 이용하여, 제1 입력 데이터에 대응되는 적어도 하나의 확률값을 포함하는 제1 소프트 아웃풋을 생성하는 단계로써, 상기 제1 신경망은 하드 타겟(Hard Target)으로 표지(Label)된 적어도 하나의 학습 데이터에 기반하여 상기 학습 데이터에 포함된 입력 데이터와 상기 입력 데이터에 대응되는 하드 타겟간의 상관관계를 학습한 신경망이고;
상기 제1 소프트 아웃풋을 소정의 규칙에 따라 정규화하는 단계로써, 상기 적어도 하나의 확률값의 최대값과 상기 적어도 하나의 확률값의 최소값 간의 차이가 소정의 임계차이 이하가 되도록, 상기 적어도 하나의 확률값을 스케일링(Scaling)하고;
상기 정규화된 제1 소프트 아웃풋으로 표지된 상기 제1 입력 데이터를 포함하는 제1 학습 데이터를 생성하는 단계; 및
상기 제1 학습 데이터를 이용하여, 상기 제2 신경망이 상기 정규화된 제1 소프트 아웃풋과 상기 제1 입력 데이터간의 상관관계를 학습하도록 학습시키는 단계;를 포함하는, 제1 신경망을 이용한 제2 신경망 학습 방법.
In a method of learning a second neural network differentiated from the first neural network by using a soft output of a first neural network learned as a hard target, each step is performed by a computing system,
Generating a first soft output including at least one probability value corresponding to first input data using a first neural network, wherein the first neural network is at least one labeled as a hard target A neural network that learns a correlation between input data included in the training data and a hard target corresponding to the input data based on the training data of
Normalizing the first soft output according to a predetermined rule, wherein the at least one probability value is scaled so that a difference between the maximum value of the at least one probability value and the minimum value of the at least one probability value is less than or equal to a predetermined threshold difference. (Scaling);
Generating first training data including the first input data marked with the normalized first soft output; And
Training the second neural network to learn a correlation between the normalized first soft output and the first input data by using the first training data; including, training a second neural network using a first neural network Way.
삭제delete 삭제delete 청구항 1에 있어서
상기 제1 입력 데이터는 복수이고,
상기 제1 학습 데이터를 생성하는 단계는
상기 복수의 제1 입력 데이터 각각에 대응되는 학습 데이터를 생성하고,
상기 제2 신경망을 학습시키는 단계는
상기 복수의 제1 입력 데이터 각각에 대응되는 학습 데이터를 이용하여 상기 제2 신경망을 학습시키는, 제1 신경망을 이용한 제2 신경망 학습 방법.
The method according to claim 1
The first input data is plural,
Generating the first training data
Generating training data corresponding to each of the plurality of first input data,
The step of training the second neural network
A second neural network training method using a first neural network, wherein the second neural network is trained using training data corresponding to each of the plurality of first input data.
청구항 1에 있어서
상기 제1 신경망을 이용한 제2 신경망 학습 방법은
상기 제2 신경망을 학습시키는 단계 이후에,
상기 학습된 제2 신경망을 이용하여, 제2 입력 데이터에 대응되는 제2 소프트 아웃풋을 생성하는 단계; 및
상기 제2 소프트 아웃풋에 기초하여, 상기 제2 입력 데이터에 대응되는 출력 결과를 결정하는 단계;를 더 포함하는, 제1 신경망을 이용한 제2 신경망 학습 방법.
The method according to claim 1
The second neural network learning method using the first neural network
After the step of training the second neural network,
Generating a second soft output corresponding to second input data by using the learned second neural network; And
Determining an output result corresponding to the second input data based on the second soft output; further comprising, a second neural network training method using a first neural network.
청구항 1에 있어서
상기 제1 신경망의 복잡도는 상기 제2 신경망의 복잡도 보다 큰, 제1 신경망을 이용한 제2 신경망 학습 방법.
The method according to claim 1
The second neural network learning method using the first neural network, wherein the complexity of the first neural network is greater than that of the second neural network.
청구항 6에 있어서
상기 제1 신경망 및 상기 제2 신경망 각각의 복잡도는
각각의 신경망의 노드(Node)의 수, 히든 레이어(Hidden Layer)의 수 및 전달 함수(Transfer Function)의 수 중 적어도 하나에 기초하여 결정되는, 제1 신경망을 이용한 제2 신경망 학습 방법.
The method of claim 6
The complexity of each of the first and second neural networks is
A second neural network learning method using a first neural network, which is determined based on at least one of the number of nodes of each neural network, the number of hidden layers, and the number of transfer functions.
청구항 1에 있어서
상기 제1 신경망이 제3 입력 데이터에 대응되는 제3-1 소프트 아웃풋을 생성하는데 소요되는 제1 시간은 상기 제2 신경망이 상기 제3 입력 데이터에 대응되는 제3-2 소프트 아웃풋을 생성하는데 소요되는 시간보다 큰, 제1 신경망을 이용한 제2 신경망 학습 방법.
The method according to claim 1
The first time required for the first neural network to generate the 3-1 soft output corresponding to the third input data is for the second neural network to generate the 3-2 soft output corresponding to the third input data A method of learning a second neural network using a first neural network that is greater than the time that becomes.
청구항 1에 있어서
상기 제1 신경망이 제4 입력 데이터에 대응되는 제4-1 소프트 아웃풋을 생성하는데 요구되는 제4-1 리소스의 양은 상기 제2 신경망이 상기 제4 입력 데이터에 대응되는 제4-2 소프트 아웃풋을 생성하는데 요구되는 리소스의 양 보다 큰, 제1 신경망을 이용한 제2 신경망 학습 방법.
The method according to claim 1
The amount of the 4-1 resource required for the first neural network to generate the 4-1 soft output corresponding to the fourth input data is determined by the second neural network to the 4-2 soft output corresponding to the fourth input data. A second neural network learning method using a first neural network that is larger than the amount of resources required to generate it.
컴퓨터를 이용하여
청구항 1 및 청구항 4 내지 청구항 9 중 어느 한 항의 방법을 실행하기 위하여 컴퓨터로 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램.
Using a computer
A computer program stored in a computer-readable recording medium to execute the method of any one of claims 1 and 4 to 9.
KR1020180166402A 2018-12-20 2018-12-20 A method and computer program of learning a second neural network using a first neural network KR102168541B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180166402A KR102168541B1 (en) 2018-12-20 2018-12-20 A method and computer program of learning a second neural network using a first neural network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180166402A KR102168541B1 (en) 2018-12-20 2018-12-20 A method and computer program of learning a second neural network using a first neural network

Publications (2)

Publication Number Publication Date
KR20200077162A KR20200077162A (en) 2020-06-30
KR102168541B1 true KR102168541B1 (en) 2020-10-21

Family

ID=71120863

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180166402A KR102168541B1 (en) 2018-12-20 2018-12-20 A method and computer program of learning a second neural network using a first neural network

Country Status (1)

Country Link
KR (1) KR102168541B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102445226B1 (en) * 2021-10-20 2022-09-20 (주)뤼이드 Method to reduce the size of model for knowledge tracing

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101828215B1 (en) 2017-08-01 2018-02-12 건국대학교 산학협력단 A method and apparatus for learning cyclic state transition model on long short term memory network

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102492318B1 (en) * 2015-09-18 2023-01-26 삼성전자주식회사 Model training method and apparatus, and data recognizing method
US11205120B2 (en) * 2016-12-22 2021-12-21 Samsung Electronics Co., Ltd System and method for training deep learning classification networks
KR102061935B1 (en) * 2017-02-21 2020-01-02 한국과학기술원 Knowledge Transfer Method Using Deep Neural Network and Apparatus Therefor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101828215B1 (en) 2017-08-01 2018-02-12 건국대학교 산학협력단 A method and apparatus for learning cyclic state transition model on long short term memory network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102445226B1 (en) * 2021-10-20 2022-09-20 (주)뤼이드 Method to reduce the size of model for knowledge tracing

Also Published As

Publication number Publication date
KR20200077162A (en) 2020-06-30

Similar Documents

Publication Publication Date Title
CN109741736B (en) System and method for robust speech recognition using generative countermeasure networks
KR102400017B1 (en) Method and device for identifying an object
KR102532749B1 (en) Method and apparatus for hierarchical learning of neural networks based on weak supervised learning
US11640518B2 (en) Method and apparatus for training a neural network using modality signals of different domains
CN111373417B (en) Apparatus and method relating to data classification based on metric learning
KR102387305B1 (en) Method and device for learning multimodal data
KR102264232B1 (en) An explanation-added document classification method by an artificial neural network that learns the correlation between words, sentence feature values, and word weights
CN116664719B (en) Image redrawing model training method, image redrawing method and device
CN115223020B (en) Image processing method, apparatus, device, storage medium, and computer program product
KR20220073088A (en) A method and system of switching specialized lightweight neural networks for concept-drift adaptation in resource-constrained mobile devices
CN114329029A (en) Object retrieval method, device, equipment and computer storage medium
KR102168541B1 (en) A method and computer program of learning a second neural network using a first neural network
CN115587922A (en) Tensor blocking method and device and storage medium
JP2022091660A (en) Data processing method using neural network, data processing device and electronic device including the same
KR102234917B1 (en) Data processing apparatus through neural network learning, data processing method through the neural network learning, and recording medium recording the method
Julka et al. Conditional generative adversarial networks for speed control in trajectory simulation
KR102511225B1 (en) Method and system for lighting artificial intelligence model
CN116472560A (en) Utterance constraint tracking of visual objects
KR102408189B1 (en) Method for preprocessing tabular data for training of artificial neural network
CN113239077B (en) Searching method, system and computer readable storage medium based on neural network
KR102195188B1 (en) Method and computer program for image generation
Etefaghi et al. AdaInNet: an adaptive inference engine for distributed deep neural networks offloading in IoT-FOG applications based on reinforcement learning
US20240125605A1 (en) Map data compression methods implementing machine learning
KR20240043659A (en) Methods and apparatus for processing data
KR20220113089A (en) Data processing method, apparatus and computer program using distributed artificial neural network

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant