KR20180035073A - Dnn의 분산 훈련 시스템 및 분산 훈련 방법 - Google Patents

Dnn의 분산 훈련 시스템 및 분산 훈련 방법 Download PDF

Info

Publication number
KR20180035073A
KR20180035073A KR1020160125105A KR20160125105A KR20180035073A KR 20180035073 A KR20180035073 A KR 20180035073A KR 1020160125105 A KR1020160125105 A KR 1020160125105A KR 20160125105 A KR20160125105 A KR 20160125105A KR 20180035073 A KR20180035073 A KR 20180035073A
Authority
KR
South Korea
Prior art keywords
training
data
server
amount
dnn
Prior art date
Application number
KR1020160125105A
Other languages
English (en)
Other versions
KR102194280B1 (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 KR1020160125105A priority Critical patent/KR102194280B1/ko
Publication of KR20180035073A publication Critical patent/KR20180035073A/ko
Application granted granted Critical
Publication of KR102194280B1 publication Critical patent/KR102194280B1/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
    • G06N3/098Distributed learning, e.g. federated learning
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • G06N99/005

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)

Abstract

분산 훈련 시스템에 의한 DNN (Deep Neural Network)의 분산 훈련 방법에 있어서, 훈련 데이터를 복수의 데이터 그룹으로 클러스터링하는 단계; 복수의 데이터 그룹 각각에 포함된 데이터의 양에 기초하여, 복수의 데이터 그룹 각각에 대응하는 훈련 파라미터를 설정하는 단계; 복수의 훈련 서버를 통해 복수의 데이터 그룹 및 설정된 훈련 파라미터를 이용하여 복수의 서브 DNN을 훈련하는 단계; 및 훈련 결과에 따라 복수의 훈련 서버 각각에서 도출되는 복수의 서브 DNN의 웨이트 매트릭스를 통합하는 단계를 포함하는 것을 특징으로 하는 본 발명의 일 실시예에 따른 분산 훈련 방법이 개시된다.

Description

DNN의 분산 훈련 시스템 및 분산 훈련 방법{DISTRIBUTE TRAINING SYSTEM AND METHOD FOR DEEP NEURAL NETWORK}
본 발명은 DNN(Deep Neural Network) 분야에 관한 것이다. 보다 구체적으로, 본 발명은 DNN을 분산 방식으로 훈련하는 방법 및 시스템에 관한 것이다.
대규모의 콜센터를 운영하고 있는 기업은 고객과의 상담 내용을 토대로 고객의 니즈를 파악하거나, 운영 측면에서 상담의 질(quality)를 고려하여 향후 운영에 반영하고 싶어한다. 이러한 기업 측면에서의 니즈때문에, 근래에 들어 상담 녹취 파일의 전사(transcription)는 매우 중요한 부분으로 떠오르고 있으며, 이에 따라 음성 인식이 이러한 분야에서 각광을 받고 있다.
상담 녹취의 전사 작업은 상담원 또는 전사를 담당하고 있는 전문 인력이 수기로 작성하기도 하는데, 일일이 듣고 타이핑을 해야 하는 번거로움 때문에 자동화된 음성인식 시스템이 도입되고 있다. 그러나 이러한 일련의 자동 전사를 진행하기 위해서는 고 품질의 음성인식 시스템을 필요로 하며, 그 중에서도 상당한 양의 데이터를 다루는 음향 모델의 훈련은 필수 요소이다.
음향 모델을 만드는 방법은, 그 성능상의 우수성 때문에 기존의 GMM-HMM(Gaussian Mixture Model-Hidden Markov Model) 방법을 벗어나 DNN-HMM (Deep Neural Network- Hidden Markov Model) 방법이 각광을 받으며 빠르게 그 자리를 대체하고 있다. 그러나, DNN 훈련은 그 데이터의 양에 따라 상당한 훈련 시간을 필요로 한다.
도 1은 일반적인 DNN 훈련 과정을 나타내는 도면으로서, 훈련 데이터(1)는 훈련 서버(10)로 입력되고, 훈련 서버(10)는 훈련 데이터(1)를 이용하여 DNN(3)을 훈련한다. DNN(3)은 기계학습 모델 중 하나로서 입력 계층, 은닉 계층 및 출력 계층의 총 세 부분으로 구성될 수 있으며, 각 계층은 다수의 노드를 포함할 수 있다. 각 계층 간의 노드들은 웨이트를 통해 연결될 수 있으며, 계층 내의 노드끼리는 연결선이 없는 구조를 가질 수 있다.
DNN(3)을 훈련한다는 것은, 입력과 출력이 정해지고 나면 각 계층 사이의 웨이트를 최적화하여 DNN의 구조가 입력과 출력 사이의 비선형적인 관계를 잘 나타낼 수 있도록 하는 것이다.
훈련 서버(10)는 전체 훈련 데이터(1)를 이용하여 DNN(3)을 반복 훈련하는데, 이 때, 전체 훈련 데이터(1)를 훈련 서버(10)에 입력하여 DNN(3)을 훈련하는 단위를 에포크(epoch)라 한다. 1회의 에포크라 하면, 전체 훈련 데이터(1)를 이용하여 훈련 서버(10)가 DNN(3)을 1회 훈련하는 것을 의미하며, 2회의 에포크라 하면, 전체 훈련 데이터(1)를 이용하여 훈련 서버(10)가 DNN(3)을 2회 반복 훈련하는 것을 의미한다.
또한, 훈련 서버(10)는 전체 훈련 데이터(1)를 이용할 때, 전체 훈련 데이터(1)를 복수의 배치(batch)(2a, 2b, 2c)로 나누고, 각 배치(2a, 2b, 2c) 별로 DNN(3)을 훈련할 수 있다. 예를 들어, 훈련 서버(10)는 전체 훈련 데이터(1) 중 제 1 배치(2a)를 이용하여 DNN(3)을 훈련하고, 다음으로, 제 2 배치(2b)를 이용하여 DNN(3)을 훈련한다. 모든 배치(2a, 2b, 2c)를 이용한 훈련이 완료되면 훈련 서버(10)는 1회의 에포크를 완료한 것이 되어 다음의 에포크를 수행한다.
앞서 설명한 바와 같이, 하나의 훈련 서버(10)를 이용하여 DNN(3)을 훈련하는 경우, 그 데이터의 양에 따라 상당한 훈련 시간을 필요로 하므로, DNN(3)의 훈련 시간을 감소시키는 방안이 요구된다.
본 발명의 일 실시예에 따른 DNN의 분산 훈련 시스템 및 분산 훈련 방법은 DNN의 훈련 시간을 단축시키는 것을 목적으로 한다.
또한, 본 발명의 일 실시예에 따른 DNN의 분산 훈련 시스템 및 분산 훈련 방법은 복수의 훈련 서버 각각에서의 훈련 시간을 일정하게 조절하여 어느 하나의 훈련 서버의 훈련 지연에 따라 다른 훈련 서버가 대기하여야 하는 문제점을 방지하는 것을 목적으로 한다.
본 발명의 일 실시예에 따른 분산 훈련 방법은,
분산 훈련 시스템에 의한 DNN (Deep Neural Network)의 분산 훈련 방법에 있어서, 훈련 데이터를 복수의 데이터 그룹으로 클러스터링하는 단계; 상기 복수의 데이터 그룹 각각에 포함된 데이터의 양에 기초하여, 상기 복수의 데이터 그룹 각각에 대응하는 훈련 파라미터를 설정하는 단계; 복수의 훈련 서버를 통해 상기 복수의 데이터 그룹 및 상기 설정된 훈련 파라미터를 이용하여 복수의 서브 DNN을 훈련하는 단계; 및 상기 훈련 결과에 따라 상기 복수의 훈련 서버 각각에서 도출되는 복수의 서브 DNN의 웨이트 매트릭스를 통합하는 단계를 포함할 수 있다.
상기 클러스터링하는 단계는, 상기 훈련 데이터의 특성에 따라 상기 훈련 데이터를 복수의 데이터 그룹으로 클러스터링하는 단계를 포함할 수 있다.
상기 클러스터링하는 단계는, 상기 데이터 그룹의 개수가 상기 훈련 서버의 개수와 동일하도록 상기 훈련 데이터를 클러스터링하는 단계를 포함할 수 있다.
상기 훈련 파라미터는, 데이터 그룹을 이용하여 서브 DNN을 훈련하는 동안의 웨이트 변화율 및 에포크(epoch) 횟수 중 적어도 하나를 포함할 수 있다.
상기 훈련 파라미터를 설정하는 단계는, 각 데이터 그룹에 포함된 데이터의 양이 많을수록 상기 웨이트 변화율을 크게 설정하고, 상기 에포크 횟수는 작게 설정하는 단계를 포함할 수 있다.
상기 훈련 파라미터를 설정하는 단계는, 상기 웨이트 변화율을 하기의 수학식 1에 따라 결정하되,
[수학식 1]
η[i] = L * softmaxN[i]
상기 i는 각 데이터 그룹의 인덱스, η은 웨이트 변화율, L은 기 설정된 초기 웨이트 변화율, softmaxN은 각 데이터 그룹에 포함된 데이터의 양을 나타낼 수 있다.
상기 훈련 파라미터를 설정하는 단계는, 상기 에포크 횟수를 하기의 수학식 2에 따라 결정하되,
[수학식 2]
E[i] = M / softmaxN[i]
상기 i는 각 데이터 그룹의 인덱스, E는 에포크 횟수, M은 기 설정된 초기 에포크 횟수, softmaxN은 각 데이터 그룹에 포함된 데이터의 양을 나타낼 수 있다.
상기 웨이트 매트릭스를 통합하는 단계는, 상기 복수의 훈련 서버 각각에서 도출되는 웨이트 매트릭스에 각 데이터 그룹에 포함된 데이터의 양에 기초하여 설정된 가중치를 적용한 후, 가중치가 적용된 웨이트 매트릭스를 통합하는 단계를 포함할 수 있다.
상기 통합된 웨이트 매트릭스는 하기의 수학식 3에 기초하여 계산되되,
[수학식 3]
Wt = (W[0]*a[o]+W[1]*a[1]+ … +W[N]*a[N]) / N
상기 Wt는 통합된 웨이트 매트릭스, W[i]는 i 데이터 그룹을 훈련한 훈련 서버에서 도출된 웨이트 매트릭스, a[i]는 i 데이터 그룹에 포함된 데이터의 양에 기초하여 설정된 가중치, N은 데이터 그룹의 개수를 나타낼 수 있다.
상기 분산 훈련 방법은, 다음 에포크를 위해 상기 통합된 웨이트 매트릭스를 상기 복수의 훈련 서버 각각에 설정하는 단계를 포함할 수 있다.
상기 분산 훈련 방법은, 전체 에포크가 완료됨으로써 최종적으로 도출되는 통합 웨이트 매트릭스를 최종 DNN에 설정하는 단계를 더 포함할 수 있다.
본 발명의 다른 실시예에 따른 분산 훈련 시스템은,
DNN (Deep Neural Network)의 분산 훈련 시스템에 있어서, 훈련 데이터를 복수의 데이터 그룹으로 클러스터링하는 분류 서버; 상기 복수의 데이터 그룹 각각에 포함된 데이터의 양에 기초하여, 상기 복수의 데이터 그룹 각각에 대응하는 훈련 파라미터를 설정하는 제어 서버; 상기 복수의 데이터 그룹 및 상기 설정된 훈련 파라미터를 이용하여 복수의 서브 DNN을 훈련하는 복수의 훈련 서버; 및 상기 훈련 결과에 따라 상기 복수의 훈련 서버 각각에서 도출되는 복수의 서브 DNN의 웨이트 매트릭스를 통합하는 통합 서버를 포함할 수 있다.
본 발명의 일 실시예에 따른 DNN의 분산 훈련 시스템 및 분산 훈련 방법이 달성할 수 있는 일부의 효과는 다음과 같다.
i) DNN의 훈련 시간을 단축시킬 수 있다.
ii) 복수의 훈련 서버 각각에서의 훈련 시간을 일정하게 조절하여 어느 하나의 훈련 서버의 훈련 지연에 따라 다른 훈련 서버가 대기하여야 하는 문제점을 해결할 수 있다.
다만, 본 발명의 일 실시예에 따른 DNN의 분산 훈련 시스템 및 분산 훈련 방법이 달성할 수 있는 효과는 이상에서 언급한 것들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 종래의 DNN 훈련 방법을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 분산 훈련 시스템을 도시하는 도면이다.
도 3은 분류 서버에 의해 수행되는 과정을 설명하기 위한 의사 코드를 나타내는 도면이다.
도 4는 제어 서버에 의해 수행되는 과정을 설명하기 위한 의사 코드를 나타내는 도면이다.
도 5는 통합 서버에 의해 수행되는 과정을 설명하기 위한 의사 코드를 나타내는 도면이다.
도 6은 본 발명의 일 실시예에 따른 분산 훈련 방법을 설명하기 위한 순서도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고, 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명은 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제 1, 제 2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 '~부(유닛)', '모듈' 등으로 표현되는 구성요소는 2개 이상의 구성요소가 하나의 구성요소로 합쳐지거나 또는 하나의 구성요소가 보다 세분화된 기능별로 2개 이상으로 분화될 수도 있다. 또한, 이하에서 설명할 구성요소 각각은 자신이 담당하는 주기능 이외에도 다른 구성요소가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성요소 각각이 담당하는 주기능 중 일부 기능이 다른 구성요소에 의해 전담되어 수행될 수도 있음은 물론이다.
이하에서는, 도면을 참조하여 본 발명의 기술적 사상에 따른 예시적인 실시예들에 대해 설명한다.
도 2는 본 발명의 일 실시예에 따른 분산 훈련 시스템(200)을 도시하는 도면이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 분산 훈련 시스템(200)은 분류 서버(210), 제어 서버(230), 복수의 훈련 서버(250) 및 통합 서버(270)를 포함한다. 도 2는 분류 서버(210), 제어 서버(230) 및 통합 서버(270)가 물리적으로 구분된 것으로 도시하고 있지만, 이들 분류 서버(210), 제어 서버(230) 및 통합 서버(270)는 하나의 서버로 구성될 수도 있다. 또한, 복수의 훈련 서버(250) 각각은 복수의 컴퓨터 시스템으로 구현될 수도 있다.
분류 서버(210)는 입력되는 훈련 데이터를 복수의 데이터 그룹으로 클러스터링(clustering)한다. 여기서, 훈련 데이터는 음성 데이터, 이미지 데이터 또는 텍스트 데이터 등을 포함할 수 있다. 분류 서버(210)는 훈련 데이터를 후술하는 훈련 서버(250)의 개수와 동일한 개수의 데이터 그룹으로 클러스터링할 수 있다.
상기 분류 서버(210)는 훈련 데이터를 훈련 데이터의 특성에 따라 복수의 데이터 그룹으로 클러스터링할 수 있다.
훈련 데이터의 특성은 훈련 데이터의 형식에 따라 달라질 수 있는데, 예를 들어, 훈련 데이터가 음성 데이터인 경우, 음성 데이터는 rate of speech, phone-time ratio, speech articulation rate 등의 특성에 따라 클러스터링될 수 있으며, 텍스트 데이터는 키워드, 키워드의 빈도, 키워드의 유사도 등의 특성에 따라 클러스터링될 수 있다. 또한, 이미지 데이터는 히스토그램, 텍스쳐, 기하학적 모양 등의 특성에 따라 클러스터링될 수 있다. 분류 서버(210)는 k-means 알고리즘, SVM(support vector machine) 알고리즘 등에 따라 훈련 데이터를 클러스터링할 수 있다.
음성 데이터, 텍스트 데이터 또는 이미지 데이터를 각 데이터의 특성에 따라 유사한 특성을 갖는 복수의 데이터 그룹으로 클러스터링하는 것은 당업계에서 자명하게 실시되고 있으므로, 본 명세서에서는 상세한 설명을 생략한다.
제어 서버(230)는 복수의 데이터 그룹 각각에 포함된 데이터의 양에 기초하여, 복수의 데이터 그룹 각각에 대응하는 훈련 파라미터를 설정한다.
훈련 데이터가 그 특성에 따라 복수의 데이터 그룹으로 클러스터링되는 경우, 각 데이터 그룹에 포함된 데이터의 양은 서로 간에 상이할 확률이 매우 크다. 즉, 예를 들어, 제 1 데이터 그룹에 포함된 데이터의 양은 제 2 데이터 그룹에 포함된 데이터의 양보다 많을 수 있는 것이다. 각각의 데이터 그룹은 서로 다른 훈련 서버(250)로 전달되어 서브 DNN을 훈련시키는데 이용될 수 있는데, 각 데이터 그룹에 포함된 데이터의 양이 서로 간에 상이하다면 각 훈련 서버(250)의 훈련 시간은 서로 간에 차이가 날 수밖에 없다. 따라서, 제어 서버(230)는 모든 훈련 서버(250)에서 훈련 시간이 일정하게 소요될 수 있도록 각 데이터 그룹에 포함된 데이터의 양에 기초하여 훈련 파라미터를 설정하는 것이다.
본 발명의 일 실시예에서 상기 훈련 파라미터는 서브 DNN을 훈련하는 동안의 웨이트 변화율 및 에포크 횟수 중 적어도 하나를 포함할 수 있다. 제어 서버(230)는 데이터 그룹에 포함된 데이터의 양이 많을수록 웨이트 변화율을 크게 설정하고, 에포크 횟수는 작게 설정하여 많은 데이터가 할당되는 훈련 서버(250)의 훈련 시간을 단축시킬 수 있다.
상기 웨이트 변화율은 훈련 서버(250)가 서브 DNN을 훈련하면서 가중치를 변화시키는 경우의 가중치의 변화량을 의미한다. 훈련 서버(250)는 특정 노드에 대응하는 가중치를 변경시키고자 하는 경우, 웨이트 변화율을 고려하여 가중치를 변경하여야 한다. 예를 들어, 가중치 변화율이 2이고, 특정 노드에 대응하는 가중치가 2인 경우, 훈련 서버(250)는 특정 노드의 가중치를 증가시키고자 하는 경우 해당 가중치를 2*(2*n)으로 변경하여야 하며, 예를 들어, 2를 3으로 변경할 수는 없다.
복수의 훈련 서버(250) 각각은 자신에게 할당된 데이터 그룹과 훈련 파라미터를 이용하여 자신의 서브 DNN을 훈련한다. 서브 DNN은 DBN(Deep Belief Network) 또는 이와 유사한 형태의 네트워크를 포함할 수 있는데, 복수의 훈련 서버(250) 각각은 입력되는 데이터 그룹을 이용하여 자신의 서브 DNN의 웨이트를 최적화할 수 있다. 이때, 복수의 훈련 서버(250) 각각은 제어 서버(230)에 의해 설정된 훈련 파라미터에 따라 서브 DNN을 훈련할 수 있다. 즉, 복수의 훈련 서버(250) 각각은 서브 DNN을 훈련할 때, 웨이트 변화율을 고려하여 웨이트 최적화를 하며, 에포크 횟수만큼 반복 훈련할 수 있다.
모든 훈련 서버(250)에 대해 훈련 파라미터가 동일한 값으로 설정된다면, 많은 데이터를 포함하는 데이터 그룹을 할당받는 훈련 서버(250)의 훈련 시간은 다른 훈련 서버(250)에 비해 증가될 것이 명백하다. 따라서, 전술한 바와 같이, 제어 서버(230)는 데이터 그룹에 포함된 데이터의 양이 많을수록 웨이트 변화율을 크게 설정하고, 에포크 횟수는 작게 설정하여 각 훈련 서버(250)에서의 훈련 시간을 일정하게 유지시킬 수 있다.
통합 서버(270)는 각 훈련 서버(250)로부터 도출되는 복수의 서브 DNN의 웨이트 매트릭스를 통합하여 통합된 웨이트 매트릭스를 획득한다. 통합 서버(270)가 복수의 서브 DNN의 웨이트 매트릭스를 통합하는 방법에 대해서는 후술한다.
본 발명의 일 실시예에 따르면, 훈련 데이터를 클러스터링하여 클러스터링된 데이터 그룹을 여러 훈련 서버(250)에 할당하여 서브 DNN을 분산 훈련하되, 각 훈련 서버(250)의 훈련 시간을 일정하게 유지함으로써, 훈련 데이터의 전체 훈련 시간을 대폭 단축시킬 수 있다.
이하에서는 도 3 내지 도 5를 참조하여, 분류 서버(210), 제어 서버(230) 및 통합 서버(270)의 구체적인 동작에 대해 살펴본다.
도 3은 분류 서버(210)에 의해 수행되는 과정을 설명하기 위한 의사 코드를 나타내는 도면이다.
도면부호 310, 320, 330, 340은 분류 서버(210)가 수행하는 기능에 대한 설명을 기재하고 있다. 도면부호 310은 데이터를 2개의 그룹으로 클러스터링하는 do_split 함수에 대한 설명이며, 도면부호 320은 데이터 그룹에 포함된 데이터의 개수를 도출하는 Num_of_data 함수에 대한 설명이다. 또한, 도면부호 330은 두 개의 데이터 그룹 중 더 많은 데이터를 포함하는 데이터 그룹을 반환하는 choice 함수에 대한 설명이며, 도면부호 340의 softmax는 N개의 데이터가 존재할 때, n번째 값의 중요도를 익스포넨셜(exponential)을 통해 지수적으로 증가시켜 각 값 사이의 편차를 늘인 다음 정규화하는 함수로서, N개의 후보군에서 가장 유력한 값을 선택하도록 도와주는 함수를 의미한다.
도면부호 350 내지 390은 분류 서버(210)가 수행하는 주요 기능을 나타내고 있는데, 여기서, N은 훈련 서버(250)의 개수, data는 훈련 데이터를 의미한다.
도면부호 350을 참조하면, 분류 서버(210)는 전체 훈련 데이터인 data를 2개의 그룹, 즉, dataA와 dataB로 분할한다. 다음으로, dataA와 dataB 중 더 많은 데이터를 포함하는 데이터 그룹을 data로 할당하고, 나머지 데이터 그룹은 subset[1]로 할당한다.
도면부호 360에서, 분류 서버(210)는 i가 N에 해당할 때까지, data를 계속적으로 분할하여, 총 N개의 데이터 그룹(subset[1], subset[2], … , subset[N])이 생성되도록 한다.
도면부호 370에서, 분류 서버(210)는 각 데이터 그룹에 포함된 데이터의 개수를 subsetN[i]로 할당한다.
도면부호 380에서, 분류 서버(210)는 각 데이터 그룹에 포함된 데이터의 개수에 익스포넨셜을 취한 값을 누적하여 B로 할당한다. 여기서, B는 각 데이터 그룹에 포함된 데이터의 양을 확률 분포로 표현하기 위해 이용된다.
도면부호 390에서, 각 데이터 그룹에 포함된 데이터의 개수와 B에 softmax 함수를 적용하여 각 데이터 그룹 별로 softmaxN을 계산한다. softmanN은 전체 훈련 데이터 중 각 데이터 그룹이 가지고 있는 데이터의 양의 확률 분포로서, 이 값이 크면 클수록 해당 데이터 그룹에는 많은 수의 데이터가 포함되어 있다는 것을 알 수 있다. 분류 서버(210)는 도면부호 390에서 도출된 softmaxN[i]를 제어 서버(230)로 전달한다.
구현예에 따라서는, 도면부호 370, 도면부호 380 및 도면부호 390은 제어 서버(230)에 의해 수행될 수도 있다.
또한, 도 3에서는 각 데이터 그룹의 데이터 양을 확률 분포로 표현하고 있지만, 이는 하나의 예시일 뿐이며, 각 데이터 그룹에 포함된 데이터의 개수가 어느 정도인지를 파악할 수 있는 다양한 수식이 이용될 수 있다. 예를 들어, 각 데이터 그룹의 데이터 양을 각 데이터 그룹의 데이터 개수와 전체 훈련 데이터의 개수 사이의 비율로 표현할 수도 있다.
도 4는 제어 서버(230)에 의해 수행되는 과정을 설명하기 위한 의사 코드를 나타내는 도면이다.
도 4에서 i는 각 데이터 그룹의 인덱스, η은 웨이트 변화율, L은 기 설정된 초기 웨이트 변화율, B는 분할된 배치(batch)의 개수, E는 에포크 횟수, M은 기 설정된 초기 에포크 횟수를 나타낸다.
앞서 설명한 바와 같이, 각 데이터 그룹에 어느 정도의 데이터가 포함되어 있는지에 따라 각 훈련 서버(250)에서의 훈련 시간이 달라질 수 있기 때문에, 제어 서버(230)는 각 데이터 그룹에 포함된 데이터의 양에 따라 훈련 파라미터인 η와 E를 각 데이터 그룹별로 설정하여 각 훈련 서버(250)에서의 훈련 시간이 일정하게 유지되도록 한다.
도 4의 수식에서 볼 수 있는 바와 같이, 제어 서버(230)는 η[i]를 L과 B와 softmaxN[i]의 곱으로 계산할 수 있다. 즉, 서브 DNN을 훈련하는 동안의 웨이트 변화율은 각 데이터 그룹에 포함된 데이터의 양과 비례 관계로서, 각 데이터 그룹에 포함된 데이터의 양이 많을수록 커지며, 각 데이터 그룹에 포함된 데이터의 양이 적을수록 작아진다. 웨이트 변화율이 커짐으로써 훈련 시간은 단축될 수 있다. 상기 B는 앞서 설명한 바와 같이, 각 데이터 그룹을 이용하여 서브 DNN을 훈련할 때, 각 데이터 그룹에 포함된 전체 데이터로부터 분할된 배치의 개수를 의미하며 관리자에 의해 미리 설정될 수 있다. 구현예에 따라서, η[i]를 도출하는데 있어, B는 고려되지 않을 수도 있다.
또한, 제어 서버(230)는 E[i]를 softmaxN[i]로 M을 나눈 값으로 계산할 수 있다. 즉, 각 훈련 서버(250)에서의 에포크 횟수는 각 데이터 그룹에 포함된 데이터의 양과 반비례 관계로서, 각 데이터 그룹에 포함된 데이터의 양이 많을수록 작아지며, 각 데이터 그룹에 포함된 데이터의 양이 적을수록 커진다. 에포크 횟수가 작아짐으로써 훈련 시간은 단축될 수 있다.
제어 서버(230)는 각 데이터 그룹에 대해 도출되는 훈련 파라미터들을 훈련 서버(250)로 전달하여, 훈련 서버(250)가 훈련 파라미터에 따라 서브 DNN을 훈련하게 한다.
복수의 훈련 서버(250) 각각은 어느 하나의 데이터 그룹을 상기 분류 서버(210) 또는 제어 서버(230)로부터 수신하고, 수신한 데이터 그룹에 대응하는 훈련 파라미터를 제어 서버(230)로부터 수신한다. 각 훈련 서버(250)는 수신된 데이터 그룹과 훈련 파라미터를 이용하여 자신의 서브 DNN을 훈련한다. 훈련 서버(250)는 전체 에포크가 완료되면, 훈련 결과 도출된 웨이트 매트릭스를 통합 서버(270)로 전달한다.
도 5는 통합 서버(270)에 의해 수행되는 과정을 설명하기 위한 의사 코드를 나타내는 도면이다.
도 5에서 W[i]는 각 훈련 서버(250)에서 도출되는 서브 DNN의 웨이트 매트릭스이며, Wt는 통합된 웨이트 매트릭스이다.
각 훈련 서버(250)에서 도출되는 웨이트 매트릭스를 통합하는데 있어, 통합 서버(270)는 간단히 이들 웨이트 매트릭스에 평균을 취하는 것도 가능하나, 본 발명의 일 실시예에서는 각 데이터 그룹에 포함된 데이터의 양이 상이하다는 것을 감안하여 각 웨이트 매트릭스에 가중치로서 각 데이터 그룹에 포함된 데이터의 양인 softmaxN을 곱한다. 가중치로서 softmaxN을 이용하는 것은 하나의 예시일 뿐이며, 각 데이터 그룹의 데이터의 양을 반영할 수 있는 다양한 값이 가중치로 적용될 수 있다.
도 5를 참조하면, 통합 서버(270)는 각 웨이트 매트릭스에 가중치인 softmaxN[i]를 곱한 후, 곱한 결과를 누적하여 Wt로 할당한다. 그리고, Wt를 훈련 서버(250)의 개수인 N으로 나눠 통합된 웨이트 매트릭스 Wt를 계산한다.
다음 에포크의 수행을 위해 상기 통합된 웨이트 매트릭스 Wt는 제어 서버(230)로 전달되고, 제어 서버(230)는 Wt를 각 훈련 서버(250)로 전달하여 각 훈련 서버(250)가 Wt를 자신의 서브 DNN의 초기 웨이트로 설정하게 한다.
다음 에포크 수행 시, 훈련 서버(250)는 자신에게 할당된 데이터 그룹과 훈련 파라미터를 기초로 자신의 서브 DNN을 다시 훈련하여 Wt로 설정된 초기 웨이트를 다시 변경시키며, 통합 서버(270)는 변경된 웨이트 매트릭스를 통합한다.
상기와 같은 반복 훈련을 통해 전체 에포크가 완료되면, 통합 서버(270)는 전체 에포크 완료 후 도출된 통합 웨이트 매트릭스를 최종 DNN의 웨이트 매트릭스로 설정하여 데이터 모델의 훈련을 종료하게 된다.
도 6은 본 발명의 일 실시예에 따른 분산 훈련 방법을 설명하기 위한 순서도이다. 도 6을 참조하면, 본 발명의 일 실시예에 따른 분산 훈련 방법은 도 2에 도시된 분산 훈련 시스템(200)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하에서 생략된 내용이라 하더라도 도 2에 도시된 분산 훈련 시스템(200)에 관하여 이상에서 기술된 내용은 도 6의 분산 훈련 방법에도 적용됨을 알 수 있다.
S610 단계에서, 분산 훈련 시스템(200)은 훈련 데이터를 복수의 데이터 그룹으로 클러스터링한다.
S620 단계에서, 분산 훈련 시스템(200)은 복수의 데이터 그룹 각각에 포함된 데이터의 양에 기초하여, 상기 복수의 데이터 그룹 각각에 대응하는 훈련 파라미터를 설정한다.
S630 단계에서, 분산 훈련 시스템(200)은 복수의 훈련 서버(250)를 통해 상기 복수의 데이터 그룹 및 상기 설정된 훈련 파라미터를 이용하여 복수의 서브 DNN을 훈련한다.
S640 단계에서, 분산 훈련 시스템(200)은 상기 훈련 결과에 따라 상기 복수의 훈련 서버(250) 각각에서 도출되는 복수의 서브 DNN의 웨이트 매트릭스를 통합한다.
분산 훈련 시스템(200)은 통합된 웨이트 매트릭스를 각 훈련 서버(250)에 설정하고, 다음 에포크를 수행하여 각 훈련 서버(250)에서 도출되는 복수의 서브 DNN의 웨이트 매트릭스를 다시 통합한다. 전체 에포크가 완료되면, 통합 서버(270)는 최종적으로 통합된 웨이트 매트릭스를 최종 DNN에 설정하여 데이터 모델의 구성을 완료한다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 작성된 프로그램은 매체에 저장될 수 있다.
상기 매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함할 수 있으나, 이에 한정되는 것은 아니다.
첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
200: 분산 훈련 시스템
210: 분류 서버
230: 제어 서버
250: 훈련 서버
270: 통합 서버

Claims (12)

  1. 분산 훈련 시스템에 의한 DNN (Deep Neural Network)의 분산 훈련 방법에 있어서,
    훈련 데이터를 복수의 데이터 그룹으로 클러스터링하는 단계;
    상기 복수의 데이터 그룹 각각에 포함된 데이터의 양에 기초하여, 상기 복수의 데이터 그룹 각각에 대응하는 훈련 파라미터를 설정하는 단계;
    복수의 훈련 서버를 통해 상기 복수의 데이터 그룹 및 상기 설정된 훈련 파라미터를 이용하여 복수의 서브 DNN을 훈련하는 단계; 및
    상기 훈련 결과에 따라 상기 복수의 훈련 서버 각각에서 도출되는 복수의 서브 DNN의 웨이트 매트릭스를 통합하는 단계를 포함하는 것을 특징으로 하는 분산 훈련 방법.
  2. 제1항에 있어서,
    상기 클러스터링하는 단계는,
    상기 훈련 데이터의 특성에 따라 상기 훈련 데이터를 복수의 데이터 그룹으로 클러스터링하는 단계를 포함하는 것을 특징으로 하는 분산 훈련 방법.
  3. 제1항에 있어서,
    상기 클러스터링하는 단계는,
    상기 데이터 그룹의 개수가 상기 훈련 서버의 개수와 동일하도록 상기 훈련 데이터를 클러스터링하는 단계를 포함하는 것을 특징으로 하는 분산 훈련 방법.
  4. 제1항에 있어서,
    상기 훈련 파라미터는,
    데이터 그룹을 이용하여 서브 DNN을 훈련하는 동안의 웨이트 변화율 및 에포크(epoch) 횟수 중 적어도 하나를 포함하는 것을 특징으로 하는 분산 훈련 방법.
  5. 제4항에 있어서,
    상기 훈련 파라미터를 설정하는 단계는,
    각 데이터 그룹에 포함된 데이터의 양이 많을수록 상기 웨이트 변화율을 크게 설정하고, 상기 에포크 횟수는 작게 설정하는 단계를 포함하는 것을 특징으로 하는 분산 훈련 방법.
  6. 제4항에 있어서,
    상기 훈련 파라미터를 설정하는 단계는,
    상기 웨이트 변화율을 하기의 수학식 1에 따라 결정하되,

    [수학식 1]
    η[i] = L * softmaxN[i]

    상기 i는 각 데이터 그룹의 인덱스, η은 웨이트 변화율, L은 기 설정된 초기 웨이트 변화율, softmaxN은 각 데이터 그룹에 포함된 데이터의 양을 나타내는 것을 특징으로 하는 분산 훈련 방법.
  7. 제4항에 있어서,
    상기 훈련 파라미터를 설정하는 단계는,
    상기 에포크 횟수를 하기의 수학식 2에 따라 결정하되,

    [수학식 2]
    E[i] = M / softmaxN[i]

    상기 i는 각 데이터 그룹의 인덱스, E는 에포크 횟수, M은 기 설정된 초기 에포크 횟수, softmaxN은 각 데이터 그룹에 포함된 데이터의 양을 나타내는 것을 특징으로 하는 분산 훈련 방법.
  8. 제1항에 있어서,
    상기 웨이트 매트릭스를 통합하는 단계는,
    상기 복수의 훈련 서버 각각에서 도출되는 웨이트 매트릭스에 각 데이터 그룹에 포함된 데이터의 양에 기초하여 설정된 가중치를 적용한 후, 가중치가 적용된 웨이트 매트릭스를 통합하는 단계를 포함하는 것을 특징으로 하는 분산 훈련 방법.
  9. 제8항에 있어서,
    상기 통합된 웨이트 매트릭스는 하기의 수학식 3에 기초하여 계산되되,

    [수학식 3]
    Wt = (W[0]*a[o]+W[1]*a[1]+ … +W[N]*a[N]) / N

    상기 Wt는 통합된 웨이트 매트릭스, W[i]는 i 데이터 그룹을 훈련한 훈련 서버에서 도출된 웨이트 매트릭스, a[i]는 i 데이터 그룹에 포함된 데이터의 양에 기초하여 설정된 가중치, N은 데이터 그룹의 개수를 의미하는 것을 특징으로 하는 분산 훈련 방법.
  10. 제1항에 있어서,
    상기 분산 훈련 방법은,
    다음 에포크를 위해 상기 통합된 웨이트 매트릭스를 상기 복수의 훈련 서버 각각에 설정하는 단계를 포함하는 것을 특징으로 하는 분산 훈련 방법.
  11. 제1항에 있어서,
    상기 분산 훈련 방법은,
    전체 에포크가 완료됨으로써 최종적으로 도출되는 통합 웨이트 매트릭스를 최종 DNN에 설정하는 단계를 더 포함하는 것을 특징으로 하는 분산 훈련 방법.
  12. DNN (Deep Neural Network)의 분산 훈련 시스템에 있어서,
    훈련 데이터를 복수의 데이터 그룹으로 클러스터링하는 분류 서버;
    상기 복수의 데이터 그룹 각각에 포함된 데이터의 양에 기초하여, 상기 복수의 데이터 그룹 각각에 대응하는 훈련 파라미터를 설정하는 제어 서버;
    상기 복수의 데이터 그룹 및 상기 설정된 훈련 파라미터를 이용하여 복수의 서브 DNN을 훈련하는 복수의 훈련 서버; 및
    상기 훈련 결과에 따라 상기 복수의 훈련 서버 각각에서 도출되는 복수의 서브 DNN의 웨이트 매트릭스를 통합하는 통합 서버를 포함하는 것을 특징으로 하는 분산 훈련 시스템.
KR1020160125105A 2016-09-28 2016-09-28 Dnn의 분산 훈련 시스템 및 분산 훈련 방법 KR102194280B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160125105A KR102194280B1 (ko) 2016-09-28 2016-09-28 Dnn의 분산 훈련 시스템 및 분산 훈련 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160125105A KR102194280B1 (ko) 2016-09-28 2016-09-28 Dnn의 분산 훈련 시스템 및 분산 훈련 방법

Publications (2)

Publication Number Publication Date
KR20180035073A true KR20180035073A (ko) 2018-04-05
KR102194280B1 KR102194280B1 (ko) 2020-12-22

Family

ID=61977432

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160125105A KR102194280B1 (ko) 2016-09-28 2016-09-28 Dnn의 분산 훈련 시스템 및 분산 훈련 방법

Country Status (1)

Country Link
KR (1) KR102194280B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111105006A (zh) * 2018-10-26 2020-05-05 杭州海康威视数字技术股份有限公司 一种深度学习网络训练系统及方法
WO2022136977A1 (en) * 2020-12-26 2022-06-30 International Business Machines Corporation Filtering hidden matrix training dnn
US11521066B2 (en) 2019-03-26 2022-12-06 Electronics And Telecommunications Research Institute Method and apparatus for partitioning deep neural networks

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007299059A (ja) * 2006-04-27 2007-11-15 Matsushita Electric Works Ltd 信号識別方法
JP2012022558A (ja) * 2010-07-15 2012-02-02 Hitachi Ltd 分散計算システム
JP2013073301A (ja) * 2011-09-27 2013-04-22 Hitachi Ltd 分散計算機システム及び分散計算機システムの制御方法
US20150193695A1 (en) * 2014-01-06 2015-07-09 Cisco Technology, Inc. Distributed model training
US20160125316A1 (en) * 2014-10-08 2016-05-05 Nec Laboratories America, Inc. MALT: Distributed Data-Parallelism for Existing ML Applications

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007299059A (ja) * 2006-04-27 2007-11-15 Matsushita Electric Works Ltd 信号識別方法
JP2012022558A (ja) * 2010-07-15 2012-02-02 Hitachi Ltd 分散計算システム
JP2013073301A (ja) * 2011-09-27 2013-04-22 Hitachi Ltd 分散計算機システム及び分散計算機システムの制御方法
US20150193695A1 (en) * 2014-01-06 2015-07-09 Cisco Technology, Inc. Distributed model training
US20160125316A1 (en) * 2014-10-08 2016-05-05 Nec Laboratories America, Inc. MALT: Distributed Data-Parallelism for Existing ML Applications

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111105006A (zh) * 2018-10-26 2020-05-05 杭州海康威视数字技术股份有限公司 一种深度学习网络训练系统及方法
CN111105006B (zh) * 2018-10-26 2023-08-04 杭州海康威视数字技术股份有限公司 一种深度学习网络训练系统及方法
US11521066B2 (en) 2019-03-26 2022-12-06 Electronics And Telecommunications Research Institute Method and apparatus for partitioning deep neural networks
WO2022136977A1 (en) * 2020-12-26 2022-06-30 International Business Machines Corporation Filtering hidden matrix training dnn
GB2621692A (en) * 2020-12-26 2024-02-21 Ibm Filtering hidden matrix training DNN

Also Published As

Publication number Publication date
KR102194280B1 (ko) 2020-12-22

Similar Documents

Publication Publication Date Title
US20210011941A1 (en) Multimedia file categorizing, information processing, and model training method, system, and device
CN110728317A (zh) 决策树模型的训练方法、系统、存储介质及预测方法
US11763084B2 (en) Automatic formulation of data science problem statements
CN110807527A (zh) 一种基于客群筛选的额度调整方法、装置和电子设备
CN104331442A (zh) 视频分类方法和装置
CN112580814B (zh) 可伸缩的动态转移学习机制
CN112232439B (zh) 非监督ReID中的伪标签更新方法及系统
WO2014035738A1 (en) Computer-implemented deep tensor neural network
CN108108743A (zh) 异常用户识别方法和用于识别异常用户的装置
KR20180035073A (ko) Dnn의 분산 훈련 시스템 및 분산 훈련 방법
KR20180107940A (ko) 음성 인식을 위한 학습 방법 및 장치
US20200293906A1 (en) Deep forest model development and training
CN111783873A (zh) 基于增量朴素贝叶斯模型的用户画像方法及装置
CN111309966A (zh) 音频匹配方法、装置、设备及存储介质
GB2607133A (en) Knowledge distillation using deep clustering
CN111461225A (zh) 聚类系统及其方法
CN111582341A (zh) 用户异常操作预测方法及装置
AU2020364386A1 (en) Rare topic detection using hierarchical clustering
CN116129888A (zh) 一种音频数据分类方法、装置、设备及介质
Jamail et al. Current state-of-the-art of clustering methods for gene expression data with RNA-Seq
CN117056018A (zh) 资源调度方法、装置、设备、程序产品和存储介质
Wang et al. Federated probability memory recall for federated continual learning
CN118095410A (zh) 神经网络架构搜索的联邦学习参数高效微调方法及装置
JP7361121B2 (ja) デュアル・ネットワークと共に訓練された主ネットワークを介した多目的タスクの実行
TWI844931B (zh) 利用維度減少提升分類及回歸樹表現

Legal Events

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