KR102190105B1 - 인공 신경망의 파라미터 셋을 결정하는 방법 - Google Patents

인공 신경망의 파라미터 셋을 결정하는 방법 Download PDF

Info

Publication number
KR102190105B1
KR102190105B1 KR1020180170956A KR20180170956A KR102190105B1 KR 102190105 B1 KR102190105 B1 KR 102190105B1 KR 1020180170956 A KR1020180170956 A KR 1020180170956A KR 20180170956 A KR20180170956 A KR 20180170956A KR 102190105 B1 KR102190105 B1 KR 102190105B1
Authority
KR
South Korea
Prior art keywords
parameter
parameter set
neural network
artificial neural
learning
Prior art date
Application number
KR1020180170956A
Other languages
English (en)
Other versions
KR20200080947A (ko
Inventor
박외진
김종희
이경준
Original Assignee
(주)아크릴
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)아크릴 filed Critical (주)아크릴
Priority to KR1020180170956A priority Critical patent/KR102190105B1/ko
Publication of KR20200080947A publication Critical patent/KR20200080947A/ko
Application granted granted Critical
Publication of KR102190105B1 publication Critical patent/KR102190105B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Landscapes

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

Abstract

본 발명의 일 실시예에 따른 복수의 파라미터 셋(Parameter Set) 각각에 대한 인공 신경망의 학습 결과를 산출하고, 상기 산출 결과에 기초하여 상기 인공 신경망의 최적의 파라미터 셋을 결정하는 방법은, 상기 인공 신경망의 학습에 사용되는 상기 복수의 파라미터 셋을 결정하는 단계; 상기 복수의 파라미터 셋 각각에 대한 상기 인공 신경망의 학습 결과를 산출하는 단계로써, 상기 학습 결과는 상기 인공 신경망의 오차율과 정확도를 포함하고; 및 상기 복수의 파라미터 셋 각각에 대한 학습 결과 중 소정의 조건을 만족하는 파라미터 셋을 상기 최적의 파라미터 셋으로 결정하는 단계;를 포함할 수 있다.

Description

인공 신경망의 파라미터 셋을 결정하는 방법{Method for determining parameter sets of an artificial neural network}
본 발명의 실시예들은 인공 신경망의 파라미터 셋을 결정하는 방법에 관한 것으로, 보다 상세하게는 복수의 파라미터 셋 각각에 대한 인공 신경망의 학습 결과를 산출하고, 산출된 학습 결과에 기초하여 인공 신경망의 최적의 파라미터 셋을 결정하는 방법에 관한 것이다.
인공 신경망을 이용한 다양한 어플리케이션(Application)에 있어서, 인공 신경망이 제시하는 결과의 정확도가 어플리케이션의 성능을 결정하는 것이 일반적이다.
이와 같은 인공 신경망이 제시하는 결과의 정확도는 다양한 파라미터들에 의해서 좌우되므로, 어플리케이션의 제작자들은 다양한 파라미터 셋을 이용하여 인공 신경망을 학습 시키고, 그 학습 결과를 반복적으로 확인함으로써 해당 인공 신경망에 대한 최적의 파라미터 셋을 결정한다.
인공 신경망에 대한 파라미터들은 증가 및/또는 감소에 따라 성능 변화에 대한 명확한 경향성을 갖지 않기에, 어플리케이션의 제작자들은 주관적 판단이나 직관에 따라 파라미터를 설정하여 인공 신경망의 성능을 확인하였다.
따라서 인공 신경망의 최적의 파라미터 셋을 결정하기 까지 많은 시간이 소요될 뿐만 아니라, 결정된 파라미터 셋이 최적의 파라미터 셋이 아닐 가능성이 높았다.
한편 인공 신경망의 학습에는 많은 수량의 학습 데이터를 이용하기에, 학습에 많은 시간이 소요되는 것이 일반적이다. 따라서 어플리케이션의 제작자들은 하나의 파라미터 셋에 대한 학습이 종료될 때까지 대기하였다가 다른 파라미터 셋에 따른 학습을 수행해야 했고, 이로 인하여 다양한 파라미터 셋에 따른 인공 신경망의 성능을 확인하기 번거로운 문제점이 있었다.
본 발명의 상술한 문제점을 해결하기 위한 것으로, 인공 신경망의 학습에 사용하고자 하는 복수의 파라미터 셋을 한 번에 결정하고, 순차적 및/또는 병렬적으로 학습을 수행함으로써 다양한 파라미터 셋에 대한 검증 시간을 단축시키고자 한다.
또한 본 발명은 다양한 파라미터 셋에 대한 학습 결과를 상호 비교함으로써, 보다 손쉽게 최적의 파라미터 셋을 결정하고자 한다.
또한 본 발명은 사용자의 큰 노력 없이 다양한 파라미터 셋에 대한 학습 결과를 확인해 볼 수 있도록 하고자 한다.
본 발명의 일 실시예에 따른 복수의 파라미터 셋(Parameter Set) 각각에 대한 인공 신경망의 학습 결과를 산출하고, 상기 산출 결과에 기초하여 상기 인공 신경망의 최적의 파라미터 셋을 결정하는 방법은, 상기 인공 신경망의 학습에 사용되는 상기 복수의 파라미터 셋을 결정하는 단계; 상기 복수의 파라미터 셋 각각에 대한 상기 인공 신경망의 학습 결과를 산출하는 단계로써, 상기 학습 결과는 상기 인공 신경망의 오차율과 정확도를 포함하고; 및 상기 복수의 파라미터 셋 각각에 대한 학습 결과 중 소정의 조건을 만족하는 파라미터 셋을 상기 최적의 파라미터 셋으로 결정하는 단계;를 포함할 수 있다.
상기 복수의 파라미터 셋은 제1 파라미터 셋 및 제2 파라미터 셋을 포함하고, 상기 복수의 파라미터 셋을 결정하는 단계는 사용자 단말로부터 상기 제1 파라미터 셋에 포함되는 적어도 하나의 파라미터 값을 수신하고, 상기 수신된 파라미터 값에 기초하여 상기 제1 파라미터 셋을 결정하는 단계; 및 상기 사용자 단말로부터 제2 파라미터 셋에 포함되는 적어도 하나의 파라미터 값을 수신하고, 상기 수신된 파라미터 값에 기초하여 상기 제2 파라미터 셋을 결정하는 단계;를 포함할 수 있다.
상기 복수의 파라미터 셋은 제3 파라미터 셋 및 제4 파라미터 셋을 포함하고, 상기 복수의 파라미터 셋을 결정하는 단계는 사용자 단말로부터 상기 복수의 파라미터의 범위를 포함하는 파라미터 결정 조건을 수신하는 단계; 및 상기 파라미터 결정 조건에 기초하여, 상기 제3 파라미터 셋 및 상기 제4 파라미터 셋을 결정하는 단계;를 포함하고, 상기 제3 파라미터 셋과 상기 제4 파라미터 셋은 각각의 파라미터 셋을 구성하는 적어도 하나의 파라미터의 값이 상이할 수 있다.
상기 복수의 파라미터 셋은 상기 인공 신경망의 학습 반복 횟수에 대응되는 반복 파라미터 및 상기 인공 신경망의 학습에 사용되는 학습 데이터의 단위 수량에 대응되는 단위 수량 파라미터를 포함하고, 상기 복수의 파라미터의 범위는 상기 반복 파라미터 및 상기 단위 수량 파라미터 각각에 대한 범위를 포함하고, 상기 제3 파라미터 셋 및 상기 제4 파라미터 셋을 결정하는 단계는 상기 각각의 범위 내에서 소정의 규칙에 따라 상기 반복 파라미터 및 상기 단위 수량 파라미터를 결정하는 단계;를 포함할 수 있다.
상기 소정의 규칙은 상기 각각의 범위 내에서 랜덤으로 파라미터를 추출하는 규칙일 수 있다.
상기 복수의 파라미터 셋은 제5 파라미터 셋을 포함하고, 상기 제5 파라미터 셋은 제5 인공 신경망의 구조에 대한 구조 파라미터 셋 및 상기 제5 인공 신경망의 학습 조건에 관한 학습 파라미터 셋을 포함하고, 상기 인공 신경망의 학습 결과를 산출하는 단계는 상기 구조 파라미터 셋에 기초하여, 상기 제5 인공 신경망을 생성하는 단계; 상기 학습 파라미터 셋에 따라, 상기 생성된 제5 인공 신경망을 학습시키는 단계; 및 소정의 입력 값을 이용하여 상기 학습된 제5 인공 신경망의 상기 학습 결과를 산출하는 단계;를 포함할 수 있다.
상기 구조 파라미터 셋은 상기 제5 인공 신경망의 히든 레이어(Hidden Layer)의 수 및 입력 노드(Node)의 수 중 적어도 하나를 포함하고, 상기 학습 파라미터 셋은 상기 제5 인공 신경망의 학습 반복 횟수에 대응되는 반복 파라미터 및 상기 제5 인공 신경망의 학습에 사용되는 학습 데이터의 단위 수량에 대응되는 단위 수량 파라미터를 포함할 수 있다.
상기 소정의 조건은 제1 가중치를 상기 오차율로 나눈 값과 상기 정확도와 제2 가중치가 곱해진 값의 합이 가장 큰 조건일 수 있다.
본 발명에 따르면, 인공 신경망의 학습에 사용하고자 하는 복수의 파라미터 셋을 한번에 결정하고, 순차적 및/또는 병렬적으로 학습을 수행함으로써 다양한 파라미터 셋에 대한 검증 시간을 단축시킬 수 있다.
또한 다양한 파라미터 셋에 대한 학습 결과를 상호 비교함으로써, 보다 손쉽게 최적의 파라미터 셋을 결정할 수 있다.
또한 사용자의 큰 노력 없이 다양한 파라미터 셋에 대한 학습 결과를 확인해 볼 수 있도록 한다.
도 1은 본 발명의 일 실시예에 따른 인공 신경망 파라미터 셋 결정 시스템의 구성을 개략적으로 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 리소스 서버(300A)의 구성을 개략적으로 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 서버(100)의 구성을 개략적으로 도시한 도면이다.
도 4 및 도 5는 본 발명의 일 실시예에 따른 서버(100)에 의해 학습된 인공 신경망의 예시적인 구조를 설명하기 위한 도면이다.
도 6은 서버(100)에 의해 결정된 파라미터 셋의 예시이다.
도 7은 본 발명의 일 실시예에 따른 서버(100)가 복수의 리소스 서버에 대해서 서로 다른 파라미터 셋에 따른 학습의 수행을 요청하는 방법을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 서버(100)가 입력 값에 대한 결과값(610A, 610B, 610C)을 복수의 리소스 서버로부터 수신하는 방법을 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 사용자 단말(200)에 표시되는 화면(900)의 예시이다.
도 10은 본 발명의 일 실시예에 따른 서버(100)에 의해 수행되는 인공 신경망의 파라미터 셋을 결정하는 방법을 설명하기 위한 흐름도이다.
본 발명은 다양한 변환을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 본 발명의 효과 및 특징, 그리고 그것들을 달성하는 방법은 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예들을 상세히 설명하기로 하며, 도면을 참조하여 설명할 때 동일하거나 대응하는 구성 요소는 동일한 도면부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
이하의 실시예에서, 제1, 제2 등의 용어는 한정적인 의미가 아니라 하나의 구성 요소를 다른 구성 요소와 구별하는 목적으로 사용되었다. 이하의 실시예에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 이하의 실시예에서, 포함하다 또는 가지다 등의 용어는 명세서상에 기재된 특징, 또는 구성요소가 존재함을 의미하는 것이고, 하나 이상의 다른 특징들 또는 구성요소가 부가될 가능성을 미리 배제하는 것은 아니다. 도면에서는 설명의 편의를 위하여 구성 요소들이 그 크기가 과장 또는 축소될 수 있다. 예컨대, 도면에서 나타난 각 구성의 크기 및 형태는 설명의 편의를 위해 임의로 나타내었으므로, 본 발명이 반드시 도시된 바에 한정되지 않는다.
도 1은 본 발명의 일 실시예에 따른 인공 신경망 파라미터 셋 결정 시스템의 구성을 개략적으로 도시한 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 인공 신경망 파라미터 셋 결정 시스템은 서버(100), 사용자 단말(200), 리소스 서버(300) 및 통신망(800)을 포함할 수 있다.
본 발명의 일 실시예에 따른 인공 신경망 파라미터 셋 결정 시스템은 복수의 파라미터 셋 각각을 이용하여 인공 신경망을 학습시키고, 학습된 인공 신경망의 학습 결과를 산출하여 비교함으로써 인공 신경망의 최적의 파라미터 셋을 결정할 수 있다.
본 발명에서 '인공 신경망'은 서버(100) 및/또는 리소스 서버(300)가 소정의 목적에 따라 생성한 것으로, 머신 러닝(Machine Learning) 또는 딥러닝(Deep Learning) 기법에 의해 학습된 인공 신경망을 의미할 수 있다. 이와 같은 신경망의 구조에 대해서는 도 4 및 도 5를 참조하여 후술한다.
본 발명에서 '파라미터 셋'(Parameter Set)은 인공 신경망의 학습시에 학습 조건 및/또는 환경을 달리하기 위해 조절되는 값의 집합을 의미할 수 있다. 가령 파라미터 셋은 인공 신경망의 구조에 대한 구조 파라미터 셋과 인공 신경망의 학습 조건에 관한 학습 파라미터 셋을 포함할 수 있다.
이때 '구조 파라미터 셋'은 인공 신경망 그 자체에 관한 파라미터 셋을 의미할 수 있다. 가령 인공 신경망의 종류가 도 5에서 설명하는 RNN 모델에 따른 인공 신경망인 경우, 구조 파라미터 셋은 인공 신경망의 히든 레이어의 수, 입력 노드의 수 및 각 히든 레이어에 포함되는 히든 노드의 수와 같이 인공 신경망의 구조에 관한 파라미터들을 포함할 수 있다. 이와 같은 구조 파라미터 셋에 포함되는 각각의 파라미터는 스칼라 형태의 값(예를 들어 3, 7, 0.1 등)일 수도 있고, 벡터 형태의 값(예를 들어 [1, 3, 0.7, 0.5])일 수도 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.
한편 '학습 파라미터 셋'는 전술한 '구조 파라미터 셋'에 의해 결정된 인공 신경망의 학습 조건에 관한 파라미터 셋을 의미할 수 있다. 가령 학습 파라미터 셋은 인공 신경망의 학습 반복 횟수(즉 동일한 학습 데이터를 이용한 학습의 반복 횟수(예를 들어 30회))에 대응되는 반복 파라미터 및 인공 신경망의 1회 학습에 사용되는 학습 데이터의 단위 수량(예를 들어 100개)에 대응되는 단위 수량 파라미터를 포함할 수 있다. 다만 이와 같은 반복 파라미터 및 단위 수량 파라미터는 학습 파라미터 셋에 포함되는 예시적인 파라미터로, 본 발명의 사상이 이에 한정되는 것은 아니다.
본 발명의 일 실시예에 따른 사용자 단말(200)은 사용자가 서버(100)에 의해 제공되는 다양한 서비스를 이용할 수 있도록 사용자와 서버(100)를 매개하는 다양한 형태의 장치를 의미할 수 있다. 바꾸어 말하면, 본 발명의 일 실시예에 따른 사용자 단말(200)은 서버(100)와 데이터를 송수신 하는 다양한 장치를 의미할 수 있다.
본 발명의 일 실시예에서, 사용자 단말(200)은 서버(100)로 파라미터 셋을 전송하여, 서버(100)가 사용자에 의해 입력된 파라미터 셋에 따라 인공 신경망을 학습시키고 그 결과를 산출하도록 할 수 있다.
또한 본 발명의 일 실시예에서, 사용자 단말(200)은 서버(100)로 파라미터 결정 조건을 전송하여, 서버(100)가 사용자에 의해 입력된 파라미터 결정 조건에 따라 파라미터 셋을 결정하고, 결정된 파라미터 셋을 이용하여 인공신경망을 학습시키고 그 결과를 산출하도록 할 수 있다. 이와 같은 사용자 단말(200)은 도 1에 도시된 바와 같이, 휴대용 단말(201)을 의미할 수도 있고, 컴퓨터(202)를 의미할 수도 있다.
한편 사용자 단말(200)은 상술한 기능을 수행하기 위해 콘텐츠 등을 표시하기 위한 표시수단, 이러한 콘텐츠에 대한 사용자의 입력을 획득하기 위한 입력수단을 구비할 수 있다. 이 때 입력수단 및 표시수단은 다양하게 구성될 수 있다. 가령 입력수단은 키보드, 마우스, 트랙볼, 마이크, 버튼, 터치패널 등을 포함할 수 있으나 이에 한정되지 않는다.
본 발명의 일 실시예에 따른 리소스 서버(300)는 서버(100)의 제어에 따라 소정의 파라미터 셋을 이용하여 인공 신경망을 학습시키는 장치를 의미할 수 있다. 이와 같은 리소스 서버(300)는 도 1에 도시된 바와 같이 복수일 수 있다.
도 2는 본 발명의 일 실시예에 따른 리소스 서버(300A)의 구성을 개략적으로 도시한 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 리소스 서버(300A)는 통신부(310A), 제2 프로세서(320A), 메모리(330A) 및 복수의 제3 프로세서(340A-1, 340A-2, 340A-3)를 포함할 수 있다.
통신부(310A)는 리소스 서버(300A)가 서버(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) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
메모리(330A)는 리소스 서버(300A)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행한다. 메모리는 자기 저장 매체(Magnetic Storage Media) 또는 플래시 저장 매체(Flash Storage Media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 가령 메모리(330A)는 학습된 인공 신경망을 구성하는 데이터들(가령 계수들)을 일시적 및/또는 영구적으로 저장할 수 있다. 물론 메모리(330A)는 인공 신경망을 학습하기 위한 학습 데이터(서버(100)로부터 수신된)도 저장할 수 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.
복수의 제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)로 구성될 수 있다. 다만 이는 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아니다.
본 발명의 일 실시예에서 복수의 제3 프로세서(340A-1, 340A-2, 340A-3) 각각은 구분되는 장치로써, 서로 다른 테스크(Task)를 수행하는데 사용될 수 있다. 가령 첫 번째 제3 프로세서(340A-1)는 첫 번째 파라미터 셋에 따른 신경망을 학습하는데 사용될 수 있고, 이와 동시에 두 번째 제3 프로세서(340A-2)는 두 번째 파라미터 셋에 따른 신경망을 학습하는데 사용될 수 있다.
본 발명의 다른 실시예에서 복수의 제3 프로세서(340A-1, 340A-2, 340A-3)는 1개의 장치로 동작하여, 하나의 테스크를 수행하는데 사용될 수 있다. 가령 제3 프로세서(340A-1, 340A-2, 340A-3)는 가상의 1개의 장치로, 세 번째 파라미터 셋에 따른 신경망을 학습하는데 사용될 수 있다.
한편 본 발명의 다른 실시예에 따라 복수의 제3 프로세서(340A-1, 340A-2, 340A-3)가 1개의 장치로써 동작하기 위한 전제로써, 복수의 제3 프로세서(340A-1, 340A-2, 340A-3)는 별도의 물리적 브릿지(Bridge) 및/또는 인터페이스를 통해 상호간에 연결될 수 있다.
복수의 제3 프로세서(340A-1, 340A-2, 340A-3)가 구분되는 장치로써 동작하는지 또는 1개의 장치로써 동작하는지는 제2 프로세서(320A)에 의해 전자적으로 결정될 수 있다.
도 2에서는 예시적으로, 리소스 서버(300A)의 구성만을 설명하였지만 나머지 리소스 서버(300)도 이와 동일하거나 상응하는 구조일 수 있으므로, 나머지 리소스 서버(300)에 대한 상세한 설명은 생략한다.
본 발명의 일 실시예에 따른 서버(100)는 복수의 파라미터 셋 각각을 이용하여 인공 신경망을 학습시키고, 학습된 인공 신경망의 학습 결과를 산출하여 비교함으로써 인공 신경망의 최적의 파라미터 셋을 결정할 수 있다.
도 3은 본 발명의 일 실시예에 따른 서버(100)의 구성을 개략적으로 도시한 도면이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 서버(100)는 통신부(110), 제1 프로세서(120) 및 메모리(130)를 포함할 수 있다. 또한 도면에는 도시되지 않았으나, 본 실시예에 따른 서버(100)는 입/출력부, 프로그램 저장부 등을 더 포함할 수 있다.
통신부(110)는 서버(100)가 사용자 단말(200) 및/또는 리소스 서버(300)와 같은 다른 네트워크 장치와 유무선 연결을 통해 제어 신호 또는 데이터 신호와 같은 신호를 송수신하기 위해 필요한 하드웨어 및 소프트웨어를 포함하는 장치일 수 있다.
제1 프로세서(120)는 사용자 단말(200)로부터 수신된 제어 데이터 등에 기초하여 인공 신경망의 학습에 사용될 파라미터 셋을 결정하고, 결정된 파라미터 셋에 따라 인공 신경망을 학습시킬 수 있도록 리소스 서버(300)를 제어하는 수단을 의미할 수 있다. 물론 제1 프로세서(120)는 리소스 서버(300)에 의해 학습된 인공 신경망의 학습 결과를 산출하여, 최적의 파라미터 셋을 결정할 수도 있다.
이와 같은 제1 프로세서(120)는, 예를 들어 프로그램 내에 포함된 코드 또는 명령으로 표현된 기능을 수행하기 위해 물리적으로 구조화된 회로를 갖는, 하드웨어에 내장된 데이터 처리 장치를 의미할 수 있다. 이와 같이 하드웨어에 내장된 데이터 처리 장치의 일 예로써, 마이크로프로세서(Microprocessor), 중앙처리장치(Central Processing Unit: CPU), 프로세서 코어(Processor Core), 멀티프로세서(Multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array) 등의 처리 장치를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
메모리(130)는 서버(100)가 처리하는 데이터를 일시적 또는 영구적으로 저장하는 기능을 수행한다. 메모리는 자기 저장 매체(Magnetic Storage Media) 또는 플래시 저장 매체(Flash Storage Media)를 포함할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다. 가령 메모리(130)는 리소스 서버(300)로부터 인공 신경망을 구성하는 데이터들을 수신하여 일시적 및/또는 영구적으로 저장할 수 있다. 물론 메모리(130)는 인공 신경망을 학습하기 위한 학습 데이터도 저장할 수 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.
본 발명의 일 실시예에 따른 통신망(800)은 인공 신경망 파라미터 셋 결정 시스템의 각 구성 간의 데이터 송수신을 매개하는 통신망을 의미할 수 있다. 가령 통신망(800)은 LANs(Local Area Networks), WANs(Wide Area Networks), MANs(Metropolitan Area Networks), ISDNs(Integrated Service Digital Networks) 등의 유선 네트워크나, 무선 LANs, CDMA, 블루투스, 위성 통신 등의 무선 네트워크를 망라할 수 있으나, 본 발명의 범위가 이에 한정되는 것은 아니다.
이하에서는 도 4 및 도 5를 통하여 예시적인 인공 신경망의 구조에 대해 먼저 설명하고, 서버(100)가 인공 신경망의 파라미터 셋을 결정하는 방법에 대해서 나중에 설명한다.
도 4 및 도 5는 본 발명의 서버(100)에 의해 학습된 인공 신경망의 예시적인 구조를 설명하기 위한 도면이다.
본 발명의 일 실시예에 따른 인공 신경망은 도 4에 도시된 바와 같은 합성 곱 신경망(CNN: Convolutional Neural Network) 모델에 따른 인공 신경망일 수 있다. 이때 CNN 모델은 복수의 연산 레이어(Convolutional Layer, Pooling Layer)를 번갈아 수행하여 최종적으로는 입력 데이터의 특징을 추출하는 데 사용되는 계층 모델일 수 있다. 이때 본 발명의 일 실시예에 따른 서버(100)는 학습 데이터를 지도학습(Supervised Learning) 기법에 따라 처리하여 인공 신경망 모델을 구축하거나 학습시킬 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 입력 데이터의 특징 값을 추출하기 위한 컨볼루션 레이어(Convolution layer), 추출된 특징 값을 결합하여 특징 맵을 구성하는 풀링 레이어(pooling layer)를 생성할 수 있다.
또한 본 발명의 일 실시예에 따른 서버(100)는 생성된 특징 맵을 결합하여, 입력 데이터가 복수의 항목 각각에 해당할 확률을 결정할 준비를 하는 풀리 커넥티드 레이어(Fully Conected Layer)를 생성할 수 있다.
마지막으로 서버(100)는 입력 데이터에 대응되는 출력을 포함하는 아웃풋 레이어(Output Layer)를 산출할 수 있다.
도 4에 도시된 예시에서는, 입력 데이터가 5X7 형태의 블록으로 나누어지며, 컨볼루션 레이어의 생성에 5X3 형태의 단위 블록이 사용되고, 풀링 레이어의 생성에 1X4 또는 1X2 형태의 단위 블록이 사용되는 것으로 도시되었지만, 이는 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아니다.
이와 같은 입력 데이터의 분할 크기, 컨볼루션 레이어에 사용되는 단위 블록의 크기, 풀링 레이어의 수, 풀링 레이어의 단위 블록의 크기 등은 전술한 파라미터 셋에 포함되는 항목일 수 있다. 바꾸어 말하면, 파라미터 셋은 상술한 항목들을 결정하기 위한 파라미터(즉 구조 파라미터)들을 포함할 수 있다.
따라서 파라미터 셋의 변경 및/또는 조절에 따라 인공 신경망의 구조가 변경될 수 있으며, 이에 따라 동일한 학습 데이터를 이용하더라고 학습 결과가 달라질 수 있다.
한편 이와 같은 인공 신경망은 전술한 리소스 서버(300A)의 메모리(330A)에 인공 신경망을 구성하는 적어도 하나의 노드의 계수, 노드의 가중치 및 인공 신경망을 구성하는 복수의 레이어 간의 관계를 정의하는 함수의 계수들의 형태로 저장될 수 있다. 물론 인공 신경망의 구조 또한 메모리(330A)에 소스코드 및/또는 프로그램의 형태로 저장될 수 있다.
본 발명의 일 실시예에 따른 인공 신경망은 도 5에 도시된 바와 같은 순환 신경망(Recurrent Neural Network, RNN) 모델에 따른 인공 신경망일 수 있다.
도 5를 참조하면, 이와 같은 순환 신경망(RNN) 모델에 따른 인공 신경망은 적어도 하나의 입력 노드(N1)를 포함하는 입력 레이어(L1), 복수의 히든 노드(N2)를 포함하는 히든 레이어(L2) 및 적어도 하나의 출력 노드(N3)를 포함하는 출력 레이어(L3)를 포함할 수 있다.
히든 레이어(L2)는 도시된 바와 같이 전체적으로 연결된(Fully Connected) 하나 이상의 레이어를 포함할 수 있다. 히든 레이어(L2)가 복수의 레이어를 포함하는 경우, 인공 신경망은 각각의 히든 레이어 사이의 관계를 정의하는 함수(미도시)를 포함할 수 있다.
각 레이어의 각 노드에 포함되는 값은 벡터일 수 있다. 또한 각 노드는 해당 노드의 중요도에 대응되는 가중치를 포함할 수도 있다.
한편 인공 신경망은 입력 레이어(L1)와 히든 레이어(L2)의 관계를 정의하는 제1 함수(F1) 및 히든 레이어(L2)와 출력 레이어(L3)의 관계를 정의하는 제2 함수(F2)를 포함할 수 있다.
제1 함수(F1)는 입력 레이어(L1)에 포함되는 입력 노드(N1)와 히든 레이어(L2)에 포함되는 히든 노드(N2)간의 연결관계를 정의할 수 있다. 이와 유사하게, 제2 함수(F2)는 히든 레이어(L2)에 포함되는 히든 노드(N2)와 출력 레이어(L2)에 포함되는 출력 노드(N2)간의 연결관계를 정의할 수 있다.
이와 같은 제1 함수(F1), 제2 함수(F2) 및 히든 레이어 사이의 함수들은 이전 노드의 입력에 기초하여 결과물을 출력하는 순환 신경망 모델을 포함할 수 있다.
리소스 서버(300)에 의해 인공 신경망이 학습되는 과정에서, 복수의 학습 데이터에 기초하여 제1 함수(F1) 및 제2 함수(F2)가 학습될 수 있다. 물론 인공 신경망이 학습되는 과정에서 전술한 제1 함수(F1) 및 제2 함수(F2) 외에 복수의 히든 레이어 사이의 함수들 또한 학습될 수 있다.
본 발명의 일 실시예에 따른 인공 신경망은 표지(Labeled)된 학습 데이터를 기반으로 지도학습(Supervised Learning) 방식으로 학습될 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 복수의 학습 데이터를 이용하여, 어느 하나의 입력 데이터를 인공 신경망에 입력하여 생성된 출력 값이 해당 학습 데이터에 표지된 값에 근접하도록 전술한 함수들(F1, F2, 히든 레이어 사이의 함수들 등)을 갱신하는 과정을 반복하여 수행함으로써 인공 신경망을 학습시킬 수 있다.
이때 본 발명의 일 실시예에 따른 서버(100)는 역전파(Back Propagation) 알고리즘에 따라 전술한 함수들(F1, F2, 히든 레이어 사이의 함수들 등)을 갱신할 수 있다. 다만 이는 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아니다.
한편 순환 신경망 모델에 따른 인공 신경망의 경우 파라미터 셋(특히 구조 파라미터 셋)에는 전술한 히든 레이어의 수 및 입력 노드의 수 등이 포함될 수 있다. 따라서 파라미터 셋의 변경 및/또는 조절에 따라 인공 신경망의 구조가 변경될 수 있으며, 이에 따라 동일한 학습 데이터를 이용하더라고 학습 결과가 달라질 수 있다.
도 4 및 도 5에서 설명한 인공 신경망의 종류 및/또는 구조는 예시적인 것으로 본 발명의 사상이 이에 한정되는 것은 아니다. 따라서 다양한 종류의 모델의 인공 신경망이 명세서를 통하여 설명하는 '인공 신경망'에 해당할 수 있다.
이하에서는 설명의 편의를 위하여, 인공 신경망이 도 5에서 설명한 순환신경망 모델에 따른 신경망임을 전제로, 서버(100)가 다양한 파라미터 셋으로 인공 신경망을 학습 시켜 학습 결과를 산출하고, 이에 기초하여 최적의 파라미터 셋을 결정하는 방법을 중심으로 설명한다.
먼저 본 발명의 일 실시예에 따른 서버(100)는 인공망의 학습에 사용되는 복수의 파라미터 셋을 결정할 수 있다. 전술한 바와 같이 파라미터 셋은 인공 신경망의 구조에 관한 파라미터(즉 구조 파라미터)를 포함하고, 이러한 구조 파라미터의 변경에 따라 학습 결과가 달라질 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 도 6에 도시된 바와 같이 학습에 사용하고자 하는 복수의 파라미터 셋을 결정할 수 있다. 이때 각각의 파라미터 셋은 가령 인공 신경망의 학습 조건에 관한 파라미터 셋인 학습 파라미터 셋과 인공 신경망의 구조에 관한 파라미터 셋인 구조 파라미터 셋을 포함할 수 있다. 이때 학습 파라미터 셋은 동일한 학습 데이터를 이용하여 학습을 반복하는 횟수인 반복 파라미터와 1회의 학습에 사용되는 데이터의 수량에 대응되는 단위 수량 파라미터를 포함할 수 있다. 구조 파라미터의 경우 전술한 바와 같이 인공 신경망의 종류에 따라 인공 신경망의 구조를 결정하는 하나 이상의 파라미터를 포함할 수 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.
본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 수신된 파라미터 값에 기초하여 파라미터 셋을 결정할 수 있다. 가령 본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 제1 파라미터 셋(Param_Set 1)에 포함되는 반복 파라미터, 단위 파라미터, 입력 노드의 수 및 히든 레이어의 수를 수신하고, 수신된 파라미터 값에 기초하여 상기 제1 파라미터 셋(Param_Set 1)을 결정할 수 있다.
또한 이와 유사하게, 서버(100)는 사용자 단말(200)로부터 제2 파라미터 셋(Param_Set 2)에 포함되는 반복 파라미터, 단위 파라미터, 입력 노드의 수 및 히든 레이어의 수를 수신하고, 수신된 파라미터 값에 기초하여 상기 제2 파라미터 셋(Param_Set 2)을 결정할 수 있다.
결정된 파라미터 셋들은 리소스 서버(300)가 인공 신경망을 동시에 및/또는 순차적으로 학습시키는데 사용될수 있다. 물론 이러한 인공 신경망의 학습은 서버(100)의 제어에 따른 것일 수 있다.
본 발명의 다른 실시예에 따른 서버(100)는 사용자 단말(200)로부터 파라미터의 결정 조건을 수신하고, 이에 따라 다양한 파라미터 셋을 생성할 수도 있다. 가령 본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 복수의 파라미터의 범위를 포함하는 파라미터 결정 조건을 수신할 수 있다. 예를 들어 서버(100)는 사용자 단말(200)로부터 반복 파라미터가 20 내지 40 이고, 단위 수량 파라미터가 50 내지 100인 파라미터 결정 조건을 수신할 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 수신된 파라미터의 범위 내에서, 적어도 하나의 파라미터 셋을 결정할 수 있다. 가령 서버(100)는 수신된 파라미터 결정 조건에 기초하여 제3 파라미터 셋 및 제4 파라미터 셋을 결정할 수 있다. 이때 제3 파라미터 셋과 제4 파라미터 셋은 각각의 파라미터 셋을 구성하는 적어도 하나의 파라미터의 값이 상이할 수 있다.
선택적 실시예에서, 본 발명의 일 실시예에 따른 서버(100)는 수신된 파라미터의 범위 내에서, 소정의 규칙에 따라 적어도 하나의 파라미터 셋을 결정할 수 있다. 가령 본 발명의 일 실시예에 따른 서버(100)는 범위를 수신한 각각의 파라미터에 대해서, 수신된 범위 내에서 파라미터를 무작위(또는 랜덤)로 추출하는 방식으로 파라미터 셋을 결정할 수 있다.
또 다른 선택적 실시예에서, 본 발명의 일 실시예에 따른 서버(100)는 수신된 파라미터의 범위 내에서, 생성 가능한 모든 조합의 파라미터 셋을 생성하는 방식으로 파라미터 셋을 결정할 수 있다.
가령 파라미터 셋에 포함되는 제1 파라미터의 선택 가능한 가지수가 5가지이고, 제2 파라미터의 선택 가능한 가지수가 10가지인 경우, 서버(100)는 총 50 가지의 파라미터 셋을 생성할 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 상술한 과정에 의해 결정된 파라미터셋 각각에 대한 인공 신경망의 학습 결과를 산출할 수 있다.
이를 보다 상세히 살펴보면, 본 발명의 일 실시예에 따른 서버(100)는 리소스 서버(300)의 가용 상태를 참조하여, 특정 파라미터 셋의 학습 결과를 산출할 제3 프로세서(또는 리소스 서버)를 결정할 수 있다. 가령 서버(100)는 첫 번째 리소스 서버(300A)의 제3-2 프로세서(340A-2)에 대해, 첫 번째 파라미터 셋(도 6의 Param_Set 1)을 이용하여 인공 신경망의 학습 결과를 산출할 것을 요청할 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 해당 파라미터 셋(즉 학습을 수행하고자 하는 파라미터 셋)에 포함되는 구조 파라미터 셋을 참조하여 인공 신경망을 생성할 수 있다. 전술한 바와 같이 구조 파라미터 셋은 인공 신경망의 구조에 관한 정보를 포함하므로, 서버(100)는 파라미터 셋을 참조하여 인공 신경망을 생성할 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 생성된 인공 신경망을 결정된 리소스 서버(전술한 과정에 의해 결정된 리소스 서버)에 전송하고, 리소스 서버가 생성된 인공신경망을 학습 파라미터 셋에 따라 학습하도록 요청할 수 있다.
도 7은 본 발명의 일 실시예에 따른 서버(100)가 복수의 리소스 서버에 대해서 서로 다른 파라미터 셋에 따른 학습의 수행을 요청하는 방법을 설명하기 위한 도면이다.
가령 본 발명의 일 실시예에 따른 서버(100)는 첫 번째 리소스 서버에 대해서 도 6의 첫 번째 파라미터 셋(Param_Set 1)에 따라 전체 학습 데이터(400)를 100개씩 나누어 학습하되, 전체 학습 데이터(400)를 20번 반복하여 학습하는 요청(510A)을 전송할 수 있다. 예를 들어 전체 학습 데이터가 총 1000개의 데이터로 구성된 경우, 서버(100)는 첫 번째 리소스 서버에 대해서 1000개의 데이터 중 1회의 학습에 100개씩만 사용하되, 1000개의 데이터를 20번 사용하여 반복학습할 것을 요청할 수 있다. 이때 서버(100)는 첫 번째 파라미터 셋(Param_Set 1)에 포함된 구조 파라미터에 따라 생성된 인공 신경망(500A)을 이용하여 학습할 것을 요청할 수 있다. 한편 학습 데이터(400)에 포함되는 개별 데이터 각각은 입력 데이터와 이에 대응되는 출력 데이터를 포함할 수 있다.
또한 서버(100)는 이와 유사하게, 두 번째 리소스 서버에 대해서 도 6의 두 번째 파라미터 셋(Param_Set 2)에 따라 전체 학습 데이터(400)를 100개씩 나누어 학습하되, 전체 학습 데이터(400)를 30번 반복하여 학습하는 요청(510B)을 전송할 수 있다. 이때 서버(100)는 두 번째 파라미터 셋(Param_Set 2)에 포함된 구조 파라미터에 따라 생성된 인공 신경망(500B)을 이용하여 학습할 것을 요청할 수 있다.
물론 서버(100)는 두 번째 리소스 서버에 대해서(두 번째 리소스 서버에 가용 리소스가 충분하다는 전제 하에) 도 6의 세 번째 파라미터 셋(Param_Set 3)에 따라 전체 학습 데이터(400)를 50개씩 나누어 학습하되, 전체 학습 데이터(400)를 40번 반복하여 학습하는 요청(510C)을 전송할 수 있다. 이때 서버(100)는 세 번째 파라미터 셋(Param_Set 3)에 포함된 구조 파라미터에 따라 생성된 인공 신경망(500C)을 이용하여 학습할 것을 요청할 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 전술한 요청(510A, 510B, 510C)들을 동시에 전송할 수 있다. 바꾸어 말하면, 본 발명의 일 실시예에 따른 서버(100)는 전술한 요청(510A, 510B, 510C)에 따른 인공 신경망 학습 과정의 적어도 일부가 병렬적으로 수행되도록 리소스 서버(300)에게 요청할 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 도 8에 도시된 바와 같이, 소정의 입력 값(600)을 리소스 서버(300)(신경망을 학습시킨 리소스 서버)에 전송하고, 리소스 서버(300)로부터 입력 값에 대한 결과값(610A, 610B, 610C)을 수신할 수 있다. 또한 서버(100)는 수신된 결과값을 평가함으로써, 인공 신경망의 학습 결과를 산출할 수 있다.
이때 '소정의 입력값'은 리소스 서버(300)가 학습에 사용된 학습 데이터에 '입력 값'으로 포함된 데이터와 같은 종류의 데이터를 의미할 수 있다. 즉 '소정의 입력 값'은 인공 신경망의 학습의 정확도를 판단하기 위한 테스트 값으로, 대응되는 출력 값을 미리 알고 있는 값을 의미할 수 있다. 한편 이와 같은 소정의 입력값은 복수일 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 리소스 서버(300)로부터 수신된 결과값(610A, 610B, 610C)과 미리 알고 있는 출력 값을 비교하여, 학습된 인공 신경망의 정확도를 산출할 수 있다. 이때 '정확도'은 인공 신경망의 출력 값과 정답이 차이가 있는 정도를 의미할 수 있다.
한편 본 발명의 일 실시예에 따른 서버(100)는 리소스 서버로부터 전술한 요청(510A, 510B, 510C)에 따른 학습 수행 과정 중 산출되는 오차율을 수신할 수 있다. 이때 '오차율'은 전술한 학습 데이터(400)에 포함된 입력값에 대한 인공 신경망의 출력값과 학습 데이터(400)에 포함된 출력값(즉 입력값에 대응되는 출력값) 간의 차이가 발생하는 정도를 의미할 수 있다. 리소스 서버(300)는 이러한 오차율이 감소하도록 인공 신경망을 구성하는 적어도 하나의 계수들을 적절히 갱신함으로써 학습이 이루어 지도록 할 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 이와 같은 오차율 및 정확도를 포함하는 학습 결과를 산출할 수 있다. 이때 본 발명의 일 실시예에 따른 서버(100)는 학습 결과의 산출에 있어서 복수의 오차율 중 최종 오차율을 사용할 수 있다. 학습 과정에 있어서 오차율은 점차적으로 감소하는 경향을 보이므로, 최종 오차율은 학습 데이터(400)를 이용한 학습 과정의 가장 마지막에 산출되는 오차율을 의미할 수 있다.
또한 본 발명의 일 실시예에 따른 서버(100)는 복수의 파라미터 셋 각각에 대한 학습 결과 중 소정의 조건을 만족하는 파라미터 셋을 최적의 파라미터 셋으로 결정할 수 있다.
가령 본 발명의 일 실시예에 따른 서버(100)는 제1 가중치를 오차율로 나눈 값과 정확도와 제2 가중치가 곱해진 값의 합이 가장 큰 파라미터 셋을 최적의 파라미터 셋으로 결정할 수 있다. 이때 제1 가중치 및 제2 가중치는 사용자에 의해 미리 결정되는 상수일 수 있다.
선택적 실시예에서, 서버(100)는 정확도가 가장 높은 파라미터 셋을 최적의 파라미터 셋으로 결정할 수도 있고, 오차율이 가장 낮은 파라미터 셋을 최적의 파라미터 셋으로 결정할 수도 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.
도 9는 본 발명의 일 실시예에 따른 사용자 단말(200)에 표시되는 화면(900)의 예시이다.
본 발명의 일 실시예에 따른 서버(100)는 학습 결과 및/또는 상태에 대한 정보를 제공하는 화면(900)을 사용자 단말(200)에 제공할 수 있다. 이때 화면(900)은 학습(즉 파라미터 셋)의 식별 정보가 표시되는 영역(910), 학습 상태가 표시되는 영역(920) 및 학습 결과가 표시되는 영역(930)을 포함할 수 있다.
본 발명의 일 실시예에서, 사용자는 학습 결과가 표시되는 영역(930)에 표시되는 학습 결과(즉 복수의 파라미터 셋 각각에 대한 학습 결과)를 참조하여, 최적의 파라미터 셋을 결정할 수도 있다.
도 10은 본 발명의 일 실시예에 따른 서버(100)에 의해 수행되는 인공 신경망의 파라미터 셋을 결정하는 방법을 설명하기 위한 흐름도이다. 이하에서는 도 1 내지 도 9를 함께 참조하여 설명하되, 도 1 내지 도 9에서 설명한 내용과 중복하는 내용의 설명은 생략한다.
본 발명의 일 실시예에 따른 서버(100)는 인공망의 학습에 사용되는 복수의 파라미터 셋을 결정할 수 있다.(S101) 본 발명의 일 실시예에 따른 서버(100)는 도 6에 도시된 바와 같이 학습에 사용하고자 하는 복수의 파라미터 셋을 결정할 수 있다. 이때 각각의 파라미터 셋은 가령 인공 신경망의 학습 조건에 관한 파라미터 셋인 학습 파라미터 셋과 인공 신경망의 구조에 관한 파라미터 셋인 구조 파라미터 셋을 포함할 수 있다. 이때 학습 파라미터 셋은 동일한 학습 데이터를 이용하여 학습을 반복하는 횟수인 반복 파라미터와 1회의 학습에 사용되는 데이터의 수량에 대응되는 단위 수량 파라미터를 포함할 수 있다. 구조 파라미터의 경우 전술한 바와 같이 인공 신경망의 종류에 따라 인공 신경망의 구조를 결정하는 하나 이상의 파라미터를 포함할 수 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.
본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 수신된 파라미터 값에 기초하여 파라미터 셋을 결정할 수 있다. 가령 본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 제1 파라미터 셋(Param_Set 1)에 포함되는 반복 파라미터, 단위 파라미터, 입력 노드의 수 및 히든 레이어의 수를 수신하고, 수신된 파라미터 값에 기초하여 상기 제1 파라미터 셋(Param_Set 1)을 결정할 수 있다.
또한 이와 유사하게, 서버(100)는 사용자 단말(200)로부터 제2 파라미터 셋(Param_Set 2)에 포함되는 반복 파라미터, 단위 파라미터, 입력 노드의 수 및 히든 레이어의 수를 수신하고, 수신된 파라미터 값에 기초하여 상기 제2 파라미터 셋(Param_Set 2)을 결정할 수 있다.
결정된 파라미터 셋들은 리소스 서버(300)가 인공 신경망을 동시에 및/또는 순차적으로 학습시키는데 사용될수 있다. 물론 이러한 인공 신경망의 학습은 서버(100)의 제어에 따른 것일 수 있다.
본 발명의 다른 실시예에 따른 서버(100)는 사용자 단말(200)로부터 파라미터의 결정 조건을 수신하고, 이에 따라 다양한 파라미터 셋을 생성할 수도 있다. 가령 본 발명의 일 실시예에 따른 서버(100)는 사용자 단말(200)로부터 복수의 파라미터의 범위를 포함하는 파라미터 결정 조건을 수신할 수 있다. 예를 들어 서버(100)는 사용자 단말(200)로부터 반복 파라미터가 20 내지 40 이고, 단위 수량 파라미터가 50 내지 100인 파라미터 결정 조건을 수신할 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 수신된 파라미터의 범위 내에서, 적어도 하나의 파라미터 셋을 결정할 수 있다. 가령 서버(100)는 수신된 파라미터 결정 조건에 기초하여 제3 파라미터 셋 및 제4 파라미터 셋을 결정할 수 있다. 이때 제3 파라미터 셋과 제4 파라미터 셋은 각각의 파라미터 셋을 구성하는 적어도 하나의 파라미터의 값이 상이할 수 있다.
선택적 실시예에서, 본 발명의 일 실시예에 따른 서버(100)는 수신된 파라미터의 범위 내에서, 소정의 규칙에 따라 적어도 하나의 파라미터 셋을 결정할 수 있다. 가령 본 발명의 일 실시예에 따른 서버(100)는 범위를 수신한 각각의 파라미터에 대해서, 수신된 범위 내에서 파라미터를 무작위(또는 랜덤)로 추출하는 방식으로 파라미터 셋을 결정할 수 있다.
또 다른 선택적 실시예에서, 본 발명의 일 실시예에 따른 서버(100)는 수신된 파라미터의 범위 내에서, 생성 가능한 모든 조합의 파라미터 셋을 생성하는 방식으로 파라미터 셋을 결정할 수 있다.
가령 파라미터 셋에 포함되는 제1 파라미터의 선택 가능한 가지수가 5가지이고, 제2 파라미터의 선택 가능한 가지수가 10가지인 경우, 서버(100)는 총 50 가지의 파라미터 셋을 생성할 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 상술한 과정에 의해 결정된 파라미터셋 각각에 대한 인공 신경망의 학습 결과를 산출할 수 있다.(S102)
이를 보다 상세히 살펴보면, 본 발명의 일 실시예에 따른 서버(100)는 리소스 서버(300)의 가용 상태를 참조하여, 특정 파라미터 셋의 학습 결과를 산출할 제3 프로세서(또는 리소스 서버)를 결정할 수 있다. 가령 서버(100)는 첫 번째 리소스 서버(300A)의 제3-2 프로세서(340A-2)에 대해, 첫 번째 파라미터 셋(도 6의 Param_Set 1)을 이용하여 인공 신경망의 학습 결과를 산출할 것을 요청할 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 해당 파라미터 셋(즉 학습을 수행하고자 하는 파라미터 셋)에 포함되는 구조 파라미터 셋을 참조하여 인공 신경망을 생성할 수 있다. 전술한 바와 같이 구조 파라미터 셋은 인공 신경망의 구조에 관한 정보를 포함하므로, 서버(100)는 파라미터 셋을 참조하여 인공 신경망을 생성할 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 생성된 인공 신경망을 결정된 리소스 서버(전술한 과정에 의해 결정된 리소스 서버)에 전송하고, 리소스 서버가 생성된 인공신경망을 학습 파라미터 셋에 따라 학습하도록 요청할 수 있다.
다시 도 7을 참조하여, 본 발명의 일 실시예에 따른 서버(100)가 복수의 리소스 서버에 대해서 서로 다른 파라미터 셋에 따른 학습의 수행을 요청하는 방법을 설명한다. 가령 본 발명의 일 실시예에 따른 서버(100)는 첫 번째 리소스 서버에 대해서 도 6의 첫 번째 파라미터 셋(Param_Set 1)에 따라 전체 학습 데이터(400)를 100개씩 나누어 학습하되, 전체 학습 데이터(400)를 20번 반복하여 학습하는 요청(510A)을 전송할 수 있다. 예를 들어 전체 학습 데이터가 총 1000개의 데이터로 구성된 경우, 서버(100)는 첫 번째 리소스 서버에 대해서 1000개의 데이터 중 1회의 학습에 100개씩만 사용하되, 1000개의 데이터를 20번 사용하여 반복학습할 것을 요청할 수 있다. 이때 서버(100)는 첫 번째 파라미터 셋(Param_Set 1)에 포함된 구조 파라미터에 따라 생성된 인공 신경망(500A)을 이용하여 학습할 것을 요청할 수 있다. 한편 학습 데이터(400)에 포함되는 개별 데이터 각각은 입력 데이터와 이에 대응되는 출력 데이터를 포함할 수 있다.
또한 서버(100)는 이와 유사하게, 두 번째 리소스 서버에 대해서 도 6의 두 번째 파라미터 셋(Param_Set 2)에 따라 전체 학습 데이터(400)를 100개씩 나누어 학습하되, 전체 학습 데이터(400)를 30번 반복하여 학습하는 요청(510B)을 전송할 수 있다. 이때 서버(100)는 두 번째 파라미터 셋(Param_Set 2)에 포함된 구조 파라미터에 따라 생성된 인공 신경망(500B)을 이용하여 학습할 것을 요청할 수 있다.
물론 서버(100)는 두 번째 리소스 서버에 대해서(두 번째 리소스 서버에 가용 리소스가 충분하다는 전제 하에) 도 6의 세 번째 파라미터 셋(Param_Set 3)에 따라 전체 학습 데이터(400)를 50개씩 나누어 학습하되, 전체 학습 데이터(400)를 40번 반복하여 학습하는 요청(510C)을 전송할 수 있다. 이때 서버(100)는 세 번째 파라미터 셋(Param_Set 3)에 포함된 구조 파라미터에 따라 생성된 인공 신경망(500C)을 이용하여 학습할 것을 요청할 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 전술한 요청(510A, 510B, 510C)들을 동시에 전송할 수 있다. 바꾸어 말하면, 본 발명의 일 실시예에 따른 서버(100)는 전술한 요청(510A, 510B, 510C)에 따른 인공 신경망 학습 과정의 적어도 일부가 병렬적으로 수행되도록 리소스 서버(300)에게 요청할 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 도 8에 도시된 바와 같이, 소정의 입력 값(600)을 리소스 서버(300)(신경망을 학습시킨 리소스 서버)에 전송하고, 리소스 서버(300)로부터 입력 값에 대한 결과값(610A, 610B, 610C)을 수신할 수 있다. 또한 서버(100)는 수신된 결과값을 평가함으로써, 인공 신경망의 학습 결과를 산출할 수 있다.
이때 '소정의 입력값'은 리소스 서버(300)가 학습에 사용된 학습 데이터에 '입력 값'으로 포함된 데이터와 같은 종류의 데이터를 의미할 수 있다. 즉 '소정의 입력 값'은 인공 신경망의 학습의 정확도를 판단하기 위한 테스트 값으로, 대응되는 출력 값을 미리 알고 있는 값을 의미할 수 있다. 한편 이와 같은 소정의 입력값은 복수일 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 리소스 서버(300)로부터 수신된 결과값(610A, 610B, 610C)과 미리 알고 있는 출력 값을 비교하여, 학습된 인공 신경망의 정확도를 산출할 수 있다. 이때 '정확도'은 인공 신경망의 출력 값과 정답이 차이가 있는 정도를 의미할 수 있다.
한편 본 발명의 일 실시예에 따른 서버(100)는 리소스 서버로부터 전술한 요청(510A, 510B, 510C)에 따른 학습 수행 과정 중 산출되는 오차율을 수신할 수 있다. 이때 '오차율'은 전술한 학습 데이터(400)에 포함된 입력값에 대한 인공 신경망의 출력값과 학습 데이터(400)에 포함된 출력값(즉 입력값에 대응되는 출력값) 간의 차이가 발생하는 정도를 의미할 수 있다. 리소스 서버(300)는 이러한 오차율이 감소하도록 인공 신경망을 구성하는 적어도 하나의 계수들을 적절히 갱신함으로써 학습이 이루어 지도록 할 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 이와 같은 오차율 및 정확도를 포함하는 학습 결과를 산출할 수 있다. 이때 본 발명의 일 실시예에 따른 서버(100)는 학습 결과의 산출에 있어서 복수의 오차율 중 최종 오차율을 사용할 수 있다. 학습 과정에 있어서 오차율은 점차적으로 감소하는 경향을 보이므로, 최종 오차율은 학습 데이터(400)를 이용한 학습 과정의 가장 마지막에 산출되는 오차율을 의미할 수 있다.
본 발명의 일 실시예에 따른 서버(100)는 복수의 파라미터 셋 각각에 대한 학습 결과 중 소정의 조건을 만족하는 파라미터 셋을 최적의 파라미터 셋으로 결정할 수 있다. (S103) 가령 본 발명의 일 실시예에 따른 서버(100)는 제1 가중치를 오차율로 나눈 값과 정확도와 제2 가중치가 곱해진 값의 합이 가장 큰 파라미터 셋을 최적의 파라미터 셋으로 결정할 수 있다. 이때 제1 가중치 및 제2 가중치는 사용자에 의해 미리 결정되는 상수일 수 있다.
선택적 실시예에서, 서버(100)는 정확도가 가장 높은 파라미터 셋을 최적의 파라미터 셋으로 결정할 수도 있고, 오차율이 가장 낮은 파라미터 셋을 최적의 파라미터 셋으로 결정할 수도 있다. 다만 이는 예시적인것으로 본 발명의 사상이 이에 한정되는 것은 아니다.
이상 설명된 본 발명에 따른 실시예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 컴퓨터로 실행 가능한 프로그램을 저장하는 것일 수 있다. 매체의 예시로는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등을 포함하여 프로그램 명령어가 저장되도록 구성된 것이 있을 수 있다.
한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.
본 발명에서 설명하는 특정 실행들은 일 실시 예들로서, 어떠한 방법으로도 본 발명의 범위를 한정하는 것은 아니다. 명세서의 간결함을 위하여, 종래 전자적인 구성들, 제어 시스템들, 소프트웨어, 상기 시스템들의 다른 기능적인 측면들의 기재는 생략될 수 있다. 또한, 도면에 도시된 구성 요소들 간의 선들의 연결 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것으로서, 실제 장치에서는 대체 가능하거나 추가의 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들로서 나타내어질 수 있다. 또한, "필수적인", "중요하게" 등과 같이 구체적인 언급이 없다면 본 발명의 적용을 위하여 반드시 필요한 구성 요소가 아닐 수 있다.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.
100: 서버
110: 통신부
120: 제1 프로세서
130: 메모리
200: 사용자 단말
300: 리소스 서버
400: 통신망

Claims (5)

  1. 컴퓨팅 장치로 구현되는 인공 신경망 파라미터 셋 결정 시스템에 의해 각 단계가 수행되며, 복수의 파라미터 셋(Parameter Set) 각각에 대한 인공 신경망의 학습 결과를 산출하고, 상기 산출 결과에 기초하여 상기 인공 신경망의 최적의 파라미터 셋을 결정하는 방법에 있어서,
    상기 인공 신경망의 학습에 사용되는 상기 복수의 파라미터 셋을 결정하는 단계;
    상기 복수의 파라미터 셋 각각에 대한 상기 인공 신경망의 학습 결과를 산출하는 단계로써, 상기 학습 결과는 상기 인공 신경망의 오차율과 정확도를 포함하고; 및
    상기 복수의 파라미터 셋 각각에 대한 학습 결과 중 소정의 조건을 만족하는 파라미터 셋을 상기 최적의 파라미터 셋으로 결정하는 단계;를 포함하고,
    상기 소정의 조건은
    상기 복수의 파라미터 셋 중 제1 가중치를 상기 오차율로 나눈 값과 상기 정확도와 제2 가중치가 곱해진 값의 합이 가장 큰 파라미터 셋을 상기 최적의 파라미터 셋으로 결정하는 조건인, 인공 신경망의 파라미터 셋을 결정하는 방법.
  2. 청구항 1에 있어서
    상기 복수의 파라미터 셋은 제1 파라미터 셋 및 제2 파라미터 셋을 포함하고,
    상기 복수의 파라미터 셋을 결정하는 단계는
    사용자 단말로부터 상기 제1 파라미터 셋에 포함되는 적어도 하나의 파라미터 값을 수신하고, 상기 수신된 파라미터 값에 기초하여 상기 제1 파라미터 셋을 결정하는 단계; 및
    상기 사용자 단말로부터 제2 파라미터 셋에 포함되는 적어도 하나의 파라미터 값을 수신하고, 상기 수신된 파라미터 값에 기초하여 상기 제2 파라미터 셋을 결정하는 단계;를 포함하는, 인공 신경망의 파라미터 셋을 결정하는 방법.
  3. 청구항 1에 있어서
    상기 복수의 파라미터 셋은 제3 파라미터 셋 및 제4 파라미터 셋을 포함하고,
    상기 복수의 파라미터 셋을 결정하는 단계는
    사용자 단말로부터 상기 복수의 파라미터의 범위를 포함하는 파라미터 결정 조건을 수신하는 단계; 및
    상기 파라미터 결정 조건에 기초하여, 상기 제3 파라미터 셋 및 상기 제4 파라미터 셋을 결정하는 단계;를 포함하고,
    상기 제3 파라미터 셋과 상기 제4 파라미터 셋은 각각의 파라미터 셋을 구성하는 적어도 하나의 파라미터의 값이 상이한, 인공 신경망의 파라미터 셋을 결정하는 방법.
  4. 청구항 3에 있어서
    상기 복수의 파라미터 셋은
    상기 인공 신경망의 학습 반복 횟수에 대응되는 반복 파라미터 및 상기 인공 신경망의 학습에 사용되는 학습 데이터의 단위 수량에 대응되는 단위 수량 파라미터를 포함하고,
    상기 복수의 파라미터의 범위는
    상기 반복 파라미터 및 상기 단위 수량 파라미터 각각에 대한 범위를 포함하고,
    상기 제3 파라미터 셋 및 상기 제4 파라미터 셋을 결정하는 단계는
    상기 각각의 범위 내에서
    무작위로 상기 반복 파라미터 및 상기 단위 수량 파라미터를 결정하는 단계;를 포함하는, 인공 신경망의 파라미터 셋을 결정하는 방법.
  5. 청구항 1에 있어서
    상기 복수의 파라미터 셋은 제5 파라미터 셋을 포함하고,
    상기 제5 파라미터 셋은 제5 인공 신경망의 구조에 대한 구조 파라미터 셋 및 상기 제5 인공 신경망의 학습 조건에 관한 학습 파라미터 셋을 포함하고,
    상기 인공 신경망의 학습 결과를 산출하는 단계는
    상기 구조 파라미터 셋에 기초하여, 상기 제5 인공 신경망을 생성하는 단계;
    상기 학습 파라미터 셋에 따라, 상기 생성된 제5 인공 신경망을 학습시키는 단계; 및
    소정의 입력 값을 이용하여 상기 학습된 제5 인공 신경망의 상기 학습 결과를 산출하는 단계;를 포함하는, 인공 신경망의 파라미터 셋을 결정하는 방법.
KR1020180170956A 2018-12-27 2018-12-27 인공 신경망의 파라미터 셋을 결정하는 방법 KR102190105B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180170956A KR102190105B1 (ko) 2018-12-27 2018-12-27 인공 신경망의 파라미터 셋을 결정하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180170956A KR102190105B1 (ko) 2018-12-27 2018-12-27 인공 신경망의 파라미터 셋을 결정하는 방법

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020200161078A Division KR20200139111A (ko) 2020-11-26 2020-11-26 인공 신경망의 파라미터 셋을 결정하는 방법

Publications (2)

Publication Number Publication Date
KR20200080947A KR20200080947A (ko) 2020-07-07
KR102190105B1 true KR102190105B1 (ko) 2020-12-11

Family

ID=71603324

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180170956A KR102190105B1 (ko) 2018-12-27 2018-12-27 인공 신경망의 파라미터 셋을 결정하는 방법

Country Status (1)

Country Link
KR (1) KR102190105B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102271736B1 (ko) * 2020-09-11 2021-07-02 주식회사 뉴로클 자동화된 기계 학습 방법 및 그 장치
KR102538350B1 (ko) * 2021-12-24 2023-05-30 한국항공대학교산학협력단 인공지능 문제 해결을 병행하는 작업증명 방법 및 시스템
KR102512102B1 (ko) * 2022-05-24 2023-03-21 주식회사 알세미 반도체 소자의 동작 영역 별로 특화된 다수의 인공 신경망을 이용한 컴팩트 모델링 방법 및 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017126260A (ja) * 2016-01-15 2017-07-20 クラリオン株式会社 機械学習方法および機械学習装置
KR101864286B1 (ko) 2017-11-10 2018-07-04 주식회사 한컴엠디에스 머신 러닝 알고리즘을 이용하는 방법 및 장치
JP2018173711A (ja) 2017-03-31 2018-11-08 三菱重工業株式会社 情報提供装置、情報提供システム、情報提供方法及びプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017126260A (ja) * 2016-01-15 2017-07-20 クラリオン株式会社 機械学習方法および機械学習装置
JP2018173711A (ja) 2017-03-31 2018-11-08 三菱重工業株式会社 情報提供装置、情報提供システム、情報提供方法及びプログラム
KR101864286B1 (ko) 2017-11-10 2018-07-04 주식회사 한컴엠디에스 머신 러닝 알고리즘을 이용하는 방법 및 장치

Also Published As

Publication number Publication date
KR20200080947A (ko) 2020-07-07

Similar Documents

Publication Publication Date Title
KR102190103B1 (ko) 인공 신경망의 상용화 서비스 제공 방법
KR102086815B1 (ko) 인공 신경망을 구성하는 복수의 학습 모델 중 최적 학습 모델 선택 방법 및 장치
KR102386806B1 (ko) 신경 아키텍처 검색
US20230252327A1 (en) Neural architecture search for convolutional neural networks
US10956500B2 (en) Dynamic-length stateful tensor array
JP6636630B2 (ja) 計算グラフの修正
US11861474B2 (en) Dynamic placement of computation sub-graphs
US11521067B2 (en) Decentralized distributed deep learning
US10867083B2 (en) Technique for generating approximate design solutions
KR102190105B1 (ko) 인공 신경망의 파라미터 셋을 결정하는 방법
JP7043596B2 (ja) ニューラルアーキテクチャ検索
CN110114784A (zh) 递归神经网络
CN106708875B (zh) 一种特征筛选方法及系统
CN111931939A (zh) 一种单振幅量子计算模拟方法
KR102190100B1 (ko) 인공 신경망 학습 방법
KR20200139111A (ko) 인공 신경망의 파라미터 셋을 결정하는 방법
KR20200138688A (ko) 인공 신경망의 상용화 서비스 제공 방법
KR20200139110A (ko) 인공 신경망 학습 방법
US20220172025A1 (en) Method of training artificial neural network and method of evaluating pronunciation using the method
KR20230153097A (ko) 리소스 크기 추전 방법
KR20220076174A (ko) 인공 신경망 학습 방법과 이를 이용한 발음 평가 방법
CN115688893A (zh) 内存调度方法及装置、电子设备和存储介质
KR20220035254A (ko) 비대칭 신경망
KR20200131056A (ko) 강화 학습 기반의 시스템 검증 방법 및 장치

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