KR102096737B1 - Distributed machine learning method with fault tolerance using LDPC codes and apparatus therefore - Google Patents

Distributed machine learning method with fault tolerance using LDPC codes and apparatus therefore Download PDF

Info

Publication number
KR102096737B1
KR102096737B1 KR1020190035590A KR20190035590A KR102096737B1 KR 102096737 B1 KR102096737 B1 KR 102096737B1 KR 1020190035590 A KR1020190035590 A KR 1020190035590A KR 20190035590 A KR20190035590 A KR 20190035590A KR 102096737 B1 KR102096737 B1 KR 102096737B1
Authority
KR
South Korea
Prior art keywords
node
error
variable
calculation result
nodes
Prior art date
Application number
KR1020190035590A
Other languages
Korean (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 KR1020190035590A priority Critical patent/KR102096737B1/en
Application granted granted Critical
Publication of KR102096737B1 publication Critical patent/KR102096737B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Abstract

Disclosed are a distributed machine learning method with a failure prevention ability using low density parity check (LDPC) codes and a device thereof. According to an embodiment of the present invention, a distributed machine learning error recovery method comprises the steps of: receiving calculation result values from workers; removing a variable node of an erasure and a check node connected to the variable node of the erasure among variable nodes; determining an error candidate among the variable nodes based on the calculation result value of the variable nodes connected to each of check nodes; and correcting the calculation result value of an error node connected to the corresponding check node based on the calculation result value of each of the variable nodes connected to the check node connected to the determined error candidate.

Description

저밀도 패리티 검사 부호를 활용한 고장 방지 능력을 갖춘 분산 기계 학습 방법 및 그 장치 {Distributed machine learning method with fault tolerance using LDPC codes and apparatus therefore}Distributed machine learning method with fault tolerance using LDPC codes and apparatus therefore}

본 발명은 고장이 발생하는 분산 기계 학습에서 오류를 복구하는 기술에 관한 것으로서, 보다 구체적으로 저밀도 패리티 검사(LDPC; low density parity check) 부호의 복호 특징을 이용하여 분산 기계 학습 환경에서 일꾼들이 마스터에게 잘못된 계산 결과 값을 보내는 경우에 잘못된 계산 결과를 감지하고 수정할 수 있는 방법 및 그 장치에 관한 것이다.The present invention relates to a technique for recovering an error from a distributed machine learning in which a failure occurs, and more specifically, to a master in a distributed machine learning environment by using a decoding feature of a low density parity check (LDPC) code. A method and apparatus for detecting and correcting an incorrect calculation result in the case of sending an incorrect calculation result value.

최근 몇 년간 대규모 기계 학습 및 데이터 분석을 위한 패러다임이 대형 분산 시스템으로 이동했다. 특히 현대 분산 시스템들과 계산 프리미티브(primitive) 시스템들은 많은 주목을 받고 있다. 최근 코딩 이론 기법을 이용하여 대규모 행렬 계산을 나누어 계산할 수 있는 방법이 소개되었으며, 소개된 시스템은 다음과 같다. In recent years, the paradigm for large-scale machine learning and data analysis has moved to large distributed systems. In particular, modern distributed systems and computational primitive systems have attracted much attention. Recently, a method for dividing and calculating a large-scale matrix calculation using a coding theory technique was introduced, and the introduced system is as follows.

먼저 시스템에서는 n개의 일꾼(worker)을 전제하고 있으며, 주어진 상황에서 얻고 싶은 결과 값은 Ax이다. 여기서 A는

Figure 112019031749435-pat00001
에 포함되는 충분히 큰 행렬이고, x는
Figure 112019031749435-pat00002
의 원소일 수 있다. 결과 값인 Ax를 얻기 위해서, 마스터는 행렬 A를 A1, ?, Ak로 나눈다. 여기서,
Figure 112019031749435-pat00003
와 (n, k) MDS(maximum distance separable) 부호를 이용하여 부분행렬(submatrix) Ai를 도 2에 도시된 바와 같이 B1, ?, Bn로 부호화(encoding)할 수 있으며,
Figure 112019031749435-pat00004
일 수 있다.First, the system presupposes n workers, and the desired value to get in a given situation is Ax. Where A is
Figure 112019031749435-pat00001
Is a sufficiently large matrix, x is
Figure 112019031749435-pat00002
It may be an element of. To obtain the result, Ax, the master divides matrix A by A 1 ,?, A k . here,
Figure 112019031749435-pat00003
And (n, k) sub-matrix A i using MDS (maximum distance separable) codes can be encoded into B 1 ,?, B n as shown in FIG. 2,
Figure 112019031749435-pat00004
Can be

이제 n개의 일꾼에게 Bi와 x를 전송하고, n개의 일꾼들은 Bix를 계산하고 계산이 끝나면 그 계산 결과인 길이 r/k인 벡터를 마스터에게 전송한다. MDS 부호의 성질로부터 n개의 일꾼 중 k개의 일꾼에게서 계산 결과를 받아도 원하는 값인 Ax를 복호할 수 있다. 즉 계산 속도가 느린 (n-k)개의 일꾼을 낙오자(straggler)로 규정하고 계산 결과값을 받지 못한 경우 받지 못한 정보를 이레이저(erasure)로 취급하여 복호를 수행한다.Now we send B i and x to n workers, and n workers calculate B i x and when the calculation is finished, we send a vector of length r / k which is the result of the calculation to the master. Even if a calculation result is received from k workers among n workers from the nature of the MDS code, Ax, a desired value, can be decoded. In other words, (nk) workers with a slow calculation rate are defined as a straggler, and when the calculation result is not received, the received information is treated as an erasure to perform decoding.

기존 분산 기계 학습 연구에서의 결과는 일꾼들이 단위 시간 동안 같은 양의 일을 할 수 있다는 전제를 하고 있다. 즉 행렬 A의 행의 개수를 동일한(homogeneous) 크기로 나누어 부호화를 하고 일꾼들에게 분배하여 작업을 수행한다. 그리고 일꾼들이 단위 시간 동안 이질적(heterogeneous)인 일의 양을 할 수 있다는 전제에서 일을 배분하여 작업을 수행하는 문제가 점근적(asymptotic)인 방법으로 해결되었다. 복호에 사용하는 오류정정부호는 저밀도 패리티 검사(LDPC; low density parity check)이고, (dv, dc)-LDPC 부호는 패리티 검사 행렬 H=[hmn]M×N

Figure 112019031749435-pat00005
의 영공간(null space)으로 정의된다. 여기서, dv와 dc는 각각 패리티 검사 행렬에서 각 열과 행의 0이 아닌 성분, 즉 1의 개수를 의미할 수 있다.The results in the existing distributed machine learning study presuppose that workers can do the same amount of work in unit hours. In other words, the number of rows of the matrix A is divided into the same (homogeneous) size, encoded, and distributed to workers to perform the work. And the problem of distributing work by assuming that workers can do a heterogeneous amount of work for a unit time is solved in an asymptotic way. The error correction code used for decoding is a low density parity check (LDPC), and the (d v , d c ) -LDPC code is a parity check matrix H = [h mn ] M × N
Figure 112019031749435-pat00005
It is defined as the null space of. Here, d v and d c may mean the number of non-zero components of each column and row in the parity check matrix, that is, 1, respectively.

하지만, 기존 분산 기계 학습에서는 일꾼이 마스터에게 악의적 또는 실수로 잘못된 정보를 보내는 경우 그리고 일꾼과 마스터 사이의 채널 노이즈가 큰 경우 등 많은 상황에서 마스터가 받은 모든 정보가 옳다고 판단하는 것은 문제가 될 수 있다.However, in the existing distributed machine learning, it can be a problem to judge that all information received by the master is correct in many situations, such as when a worker sends malicious or wrong information to the master and the channel noise between the worker and the master is large. .

본 발명의 실시예들은, 저밀도 패리티 검사(LDPC; low density parity check) 부호의 복호 특징을 이용하여 분산 기계 학습 환경에서 일꾼들이 마스터에게 잘못된 계산 결과 값을 보내는 경우에 잘못된 계산 결과를 감지하고 수정할 수 있는 방법 및 그 장치를 제공한다.Embodiments of the present invention can detect and correct an incorrect calculation result when workers send an incorrect calculation result value to a master in a distributed machine learning environment by using a decoding feature of a low density parity check (LDPC) code. It provides a method and apparatus.

본 발명의 일 실시예에 따른 분산 기계 학습 오류 복구 방법은 일꾼들(workers)로부터 계산 결과 값들을 수신하는 단계; 변수 노드들(variable nodes) 중 이레이저(erasure)의 변수 노드 및 상기 이레이저의 변수 노드와 연결된 검사 노드(check node)를 제거하는 단계; 검사 노드들 각각에 연결된 변수 노드들의 계산 결과 값에 기초하여 변수 노드들 중 오류 후보를 결정하는 단계; 및 상기 결정된 오류 후보와 연결된 검사 노드에 연결된 변수 노드들 각각의 계산 결과 값에 기초하여 해당 검사 노드와 연결된 오류 노드의 계산 결과 값을 수정하는 단계를 포함한다.A distributed machine learning error recovery method according to an embodiment of the present invention comprises the steps of receiving calculation result values from workers; Removing a variable node of an erasure and a check node connected to the variable node of the erasure among variable nodes; Determining an error candidate among variable nodes based on a calculation result value of variable nodes connected to each of the inspection nodes; And correcting the calculation result value of the error node connected to the corresponding inspection node based on the calculation result value of each of the variable nodes connected to the inspection node connected to the determined error candidate.

상기 결정하는 단계는 상기 검사 노드들 각각에 연결된 변수 노드들의 계산 결과 값에 기초하여 상기 검사 노드들 각각에 대하여 상기 오류 후보를 감지하기 위한 제1 판정 값을 계산하고, 상기 검사 노드들 각각에 대해 계산된 제1 판정 값에 기초하여 상기 오류 노드를 결정할 수 있다.The determining step calculates a first determination value for detecting the error candidate for each of the check nodes based on a calculation result value of variable nodes connected to each of the check nodes, and for each of the check nodes The error node may be determined based on the calculated first determination value.

상기 결정하는 단계는 상기 변수 노드들 각각에 대하여, 해당 변수 노드와 연결된 모든 검사 노드의 제1 판정 값이 미리 설정된 값인 경우 상기 해당 변수 노드를 오류 후보로 결정할 수 있다.In the determining step, for each of the variable nodes, when the first determination values of all the inspection nodes connected to the variable node are a preset value, the variable node may be determined as an error candidate.

상기 수정하는 단계는 상기 결정된 오류 후보 중 하나의 오류 후보만을 포함하는 제1 검사 노드에 연결된 변수 노드들 각각의 계산 결과 값의 합이 미리 설정된 값이 되도록 상기 제1 검사 노드와 연결된 오류 노드의 계산 결과 값을 수정할 수 있다.In the correcting step, the error node connected to the first check node is calculated such that the sum of the calculation result values of each of the variable nodes connected to the first check node including only one of the determined error candidates is a preset value. The resulting value can be modified.

나아가, 본 발명의 일 실시예에 따른 분산 기계 학습 오류 복구 방법은 상기 제1 검사 노드와 연결된 오류 노드의 계산 결과 값을 수정한 후 상기 결정하는 단계 내지 상기 수정하는 단계를 미리 설정된 일정 횟수만큼 반복 수행하는 단계를 더 포함할 수 있다.Furthermore, in the distributed machine learning error recovery method according to an embodiment of the present invention, after the calculation result value of the error node connected to the first inspection node is corrected, the determining step or the correcting step is repeated a predetermined number of times. It may further include the step of performing.

더 나아가, 본 발명의 일 실시예에 따른 분산 기계 학습 오류 복구 방법은 상기 일정 횟수만큼 반복 수행한 후 상기 검사 노드들 각각에 연결된 변수 노드들의 계산 결과 값에 기초하여 이레이저 복호를 수행하는 단계를 더 포함할 수 있다.Furthermore, in the distributed machine learning error recovery method according to an embodiment of the present invention, after repeatedly performing the predetermined number of times, performing erasure decoding based on the calculation result values of variable nodes connected to each of the inspection nodes It may further include.

본 발명의 일 실시예에 따른 분산 기계 학습 오류 복구 장치는 일꾼들(workers)로부터 계산 결과 값들을 수신하는 수신부; 변수 노드들(variable nodes) 중 이레이저(erasure)의 변수 노드 및 상기 이레이저의 변수 노드와 연결된 검사 노드(check node)를 제거하고, 검사 노드들 각각에 연결된 변수 노드들의 계산 결과 값에 기초하여 변수 노드들 중 오류 후보를 결정하는 결정부; 및 상기 결정된 오류 후보와 연결된 검사 노드에 연결된 변수 노드들 각각의 계산 결과 값에 기초하여 해당 검사 노드와 연결된 오류 노드의 계산 결과 값을 수정하는 수정부를 포함한다.A distributed machine learning error recovery apparatus according to an embodiment of the present invention includes a receiver configured to receive calculation result values from workers; Among variable nodes, the variable node of erasure and the check node connected to the variable node of the eraser are removed, and the variable is based on the calculation result values of the variable nodes connected to each of the inspect nodes. A determination unit for determining error candidates among the nodes; And a correction unit for correcting the calculation result value of the error node connected to the corresponding inspection node based on the calculated result value of each of the variable nodes connected to the inspection node connected to the determined error candidate.

상기 결정부는 상기 검사 노드들 각각에 연결된 변수 노드들의 계산 결과 값에 기초하여 상기 검사 노드들 각각에 대하여 상기 오류 후보를 감지하기 위한 제1 판정 값을 계산하고, 상기 검사 노드들 각각에 대해 계산된 제1 판정 값에 기초하여 상기 오류 노드를 결정할 수 있다.The determination unit calculates a first determination value for detecting the error candidate for each of the check nodes based on the calculation result values of the variable nodes connected to each of the check nodes, and is calculated for each of the check nodes The error node may be determined based on a first determination value.

상기 결정부는 상기 변수 노드들 각각에 대하여, 해당 변수 노드와 연결된 모든 검사 노드의 제1 판정 값이 미리 설정된 값인 경우 상기 해당 변수 노드를 오류 후보로 결정할 수 있다.The determining unit may determine the variable node as an error candidate when the first determination values of all the inspection nodes connected to the variable node are preset values for each of the variable nodes.

상기 수정부는 상기 결정된 오류 후보 중 하나의 오류 후보만을 포함하는 제1 검사 노드에 연결된 변수 노드들 각각의 계산 결과 값의 합이 미리 설정된 값이 되도록 상기 제1 검사 노드와 연결된 오류 노드의 계산 결과 값을 수정할 수 있다.The correction unit calculates the result value of the error node connected to the first check node such that the sum of the calculation result values of each of the variable nodes connected to the first check node including only one of the determined error candidates is a preset value. Can be modified.

상기 결정부와 상기 수정부는 상기 제1 검사 노드와 연결된 오류 노드의 계산 결과 값을 수정한 후 오류 후보를 결정하고 오류 후보에 대한 계산 결과 값을 수정하는 과정을 미리 설정된 일정 횟수만큼 반복 수행할 수 있다.The determination unit and the correction unit may repeat the process of determining the error candidate and correcting the calculation result value for the error candidate a predetermined number of times after correcting the calculation result value of the error node connected to the first inspection node. have.

나아가, 본 발명의 일 실시예에 따른 분산 기계 학습 오류 복구 장치는 상기 일정 횟수만큼 반복 수행한 후 상기 검사 노드들 각각에 연결된 변수 노드들의 계산 결과 값에 기초하여 이레이저 복호를 수행하는 복호부를 더 포함할 수 있다.Furthermore, the distributed machine learning error recovery apparatus according to an embodiment of the present invention further repeats the predetermined number of times, and then further decodes the eraser decoding based on the calculation result values of the variable nodes connected to each of the inspection nodes. It can contain.

본 발명의 실시예들에 따르면, LDPC 부호의 복호 특징을 이용하여 분산 기계 학습 환경에서 일꾼들이 마스터에게 잘못된 계산 결과 값을 보내는 경우에 잘못된 계산 결과를 감지하고 수정할 수 있다.According to embodiments of the present invention, in the distributed machine learning environment, by using the decoding feature of the LDPC code, it is possible to detect and correct an incorrect calculation result when workers send an incorrect calculation result value to the master.

본 발명의 실시예들에 따르면, 분산 기계 학습 환경에서 일꾼이 낙오자(straggler)인 경우와 잘못된 계산 결과 값을 전송하는 경우를 모두 고려하여 분산 기계 학습을 동작시킬 수 있다.According to embodiments of the present invention, in a distributed machine learning environment, distributed machine learning may be operated in consideration of both a case where a worker is a straggler and a case where an incorrect calculation result value is transmitted.

본 발명의 실시예들에 따르면, LDPC 부호와 부호의 이분 그래프(bipartite graph) 표현을 이용하여 분산 기계 학습에서 발생할 수 있는 오류를 효율적으로 감지 및 수정할 수 있다.According to embodiments of the present invention, errors that may occur in distributed machine learning can be efficiently detected and corrected using LDPC codes and bipartite graph representations of codes.

본 발명의 실시예들에 따르면, 엄청난 크기의 행렬 곱셈을 이용하는 기계 학습 분야에서 다양한 형태로 발생할 수 있는 오류를 수정할 수 있고, LDPC 부호를 사용하기 때문에 다른 부호에 비하여 낮은 복잡도를 갖고, 따라서 지연 속도 부분에서도 좋은 성능을 가질 수 있다.According to the embodiments of the present invention, errors that may occur in various forms in a machine learning field using a matrix multiplication of a tremendous size can be corrected, and since LDPC codes are used, they have lower complexity than other codes, and thus delay speed. It can also have good performance in parts.

이러한 본 발명은 분산 기계 학습에서 LDPC 부호의 구조를 통해서 오류를 수정하기 때문에 악의적 또는 실수로 잘못된 정보를 보내는 경우 분산된 컴퓨팅을 전송하는 과정에서 채널 노이즈가 큰 경우에도 유용하게 사용할 수 있으며, 분산 기계학습을 사용하는 여러 분야에서 다양한 형태로 사용될 수 있다.Since the present invention corrects errors through the structure of LDPC codes in distributed machine learning, it can be useful even when channel noise is large in the process of transmitting distributed computing when malicious or accidental wrong information is transmitted. It can be used in a variety of forms in different fields of learning.

도 1은 본 발명의 일 실시예에 따른 분산 기계 학습 오류 복구 방법에 대한 동작 흐름도를 나타낸 것이다.
도 2 내지 도 5는 본 발명의 방법을 설명하기 위한 예시도들을 나타낸 것이다.
도 6은 본 발명의 방법에 대한 성능을 평가한 일 예시도를 나타낸 것이다.
도 7은 본 발명의 일 실시예에 따른 분산 기계 학습 오류 복구 장치에 대한 구성을 나타낸 것이다.
1 is a flowchart illustrating an operation of a distributed machine learning error recovery method according to an embodiment of the present invention.
2 to 5 show exemplary views for explaining the method of the present invention.
6 shows an exemplary diagram for evaluating the performance of the method of the present invention.
7 illustrates a configuration of a distributed machine learning error recovery apparatus according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention, and methods for achieving them will be clarified with reference to embodiments described below in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in various different forms, and only the present embodiments allow the disclosure of the present invention to be complete, and common knowledge in the art to which the present invention pertains. It is provided to completely inform the person having the scope of the invention, and the present invention is only defined by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며, 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상 의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for describing the embodiments, and is not intended to limit the present invention. In this specification, the singular form also includes the plural form unless otherwise specified in the phrase. As used herein, “comprises” and / or “comprising” refers to the components, steps, operations, and / or elements mentioned above of one or more other components, steps, operations, and / or elements. Presence or addition is not excluded.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in the present specification may be used as meanings commonly understood by those skilled in the art to which the present invention pertains. In addition, terms defined in the commonly used dictionary are not ideally or excessively interpreted unless explicitly defined.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예들을 보다 상세하게 설명하고자 한다. 도면 상의 동일한 구성요소에 대해서는 동일한 참조 부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. The same reference numerals are used for the same components in the drawings, and duplicate descriptions for the same components are omitted.

본 발명의 실시예들은, LDPC 부호의 복호 특징을 이용하여 분산 기계 학습 환경에서 일꾼들이 마스터에게 잘못된 계산 결과 값을 보내는 경우에 잘못된 계산 결과를 감지하고 수정하는 것을 요지로 한다.In embodiments of the present invention, it is intended to detect and correct an incorrect calculation result when workers send an incorrect calculation result value to a master in a distributed machine learning environment using a decoding feature of an LDPC code.

이 때, 본 발명은 분산 기계 학습 환경에서 일꾼이 낙오자(straggler)인 경우와 잘못된 계산 결과 값을 전송하는 경우를 모두 고려하여 분산 기계 학습을 동작시킬 수 있다. 즉, 본 발명은 LDPC 부호의 구조적 특징을 바탕으로 straggler와 오류가 공존하는 상황에서 문제를 해결할 수 있다.In this case, the present invention can operate distributed machine learning in consideration of both a case where a worker is a straggler and a result of incorrect calculation in a distributed machine learning environment. That is, the present invention can solve the problem in a situation where the straggler and the error coexist based on the structural characteristics of the LDPC code.

이러한 본 발명은 분산 기계 학습에서 발생할 수 있는 오류를 효율적으로 감지 및 수정하기 위하여 LDPC 부호와 부호의 이분 그래프(bipartite graph) 표현을 이용하여 분산 기계 학습에서 발생할 수 있는 오류를 효율적으로 감지 및 수정할 수 있다.The present invention can efficiently detect and correct errors that may occur in distributed machine learning by using LDPC codes and bipartite graph representations of codes in order to efficiently detect and correct errors that may occur in distributed machine learning. have.

본 발명에 따른 방법은 비정규(irregular) LDPC 부호로 쉽게 확장할 수 있다. LDPC 부호의 복호기는 변수 노드(variable node), 검사 노드(check node) 그리고 선분(edge)으로 구성되는 테너(Tanner) 그래프로 표현이 가능하다.The method according to the present invention can be easily extended to an irregular LDPC code. The decoder of the LDPC code can be expressed by a Tanner graph composed of a variable node, a check node, and an edge.

여기서, 본 발명은 기존의 LDPC 부호의 복호 방법과 달리 불만족(unsatisfied) 검사 노드가 선정되는 방법에서 차이가 존재할 수 있으며, 이러한 특징을 활용한 수학적 기법으로 설명한다.Here, unlike the conventional LDPC code decoding method, a difference may exist in a method in which an unsatisfied test node is selected, and it will be described by a mathematical technique utilizing this feature.

도 1은 본 발명의 일 실시예에 따른 분산 기계 학습 오류 복구 방법에 대한 동작 흐름도를 나타낸 것으로, 분산 기계 학습 환경에서 마스터에서의 동작 흐름도를 나타낸 것이다.1 is a flowchart illustrating an operation of a distributed machine learning error recovery method according to an embodiment of the present invention, and shows an operation flowchart of a master in a distributed machine learning environment.

도 1을 참조하면, 본 발명의 일 실시예에 따른 분산 기계 학습 오류 복구 방법은 도 2에 도시된 바와 같이 부분 행렬 각각에 대하여 LDPC 부호로 전송한 후 일꾼들로부터 이에 대한 계산 결과 값을 수신하면, 검사 노드들과 변수 노드들 중 이레이저에 해당하는 변수 노드와 그 변수 노드와 연결된 검사 노드를 모두 제거한다(S110, S120).Referring to FIG. 1, in the distributed machine learning error recovery method according to an embodiment of the present invention, as shown in FIG. 2, after transmitting the LDPC codes for each of the sub-matrices, if a calculation result value is received from workers, , Among the inspection nodes and the variable nodes, both the variable node corresponding to the erasure and the inspection node connected to the variable node are removed (S110, S120).

단계 S120에 의해 이레이저에 해당하는 변수 노드와 그 변수 노드와 연결된 검사 노드를 모두 제거된 후 나머지 검사 노드들 각각에 대하여 연결된 변수 노드들에 저장된 계산 결과 값에 기초하여 해당 검사 노드에 연결된 변수 노드들에 오류가 있는지를 판단하기 위한 제1 판정 값을 결정하고, 검사 노드들 각각에 대해 결정된 제1 판정 값에 기초하여 변수 노드들 중 오류를 포함할 것으로 판단되는 오류 후보 즉, 오류 후보 노드를 결정한다(S130, S140).After removing all of the variable nodes corresponding to the erasers and the test nodes connected to the variable nodes in step S120, the variable nodes connected to the corresponding test nodes based on the calculation result values stored in the connected variable nodes for each of the remaining test nodes. The first determination value for determining whether there is an error in the field is determined, and an error candidate, that is, an error candidate node, determined to include an error among the variable nodes is determined based on the first determination value determined for each of the inspection nodes. Determine (S130, S140).

단계 S140에 의해 오류 후보가 결정되면 오류 후보와 연결되는 검사 노드들 중 하나의 오류 후보를 포함하는 검사 노드와 연결된 변수 노드들(오류 후보도 포함)에 저장된 계산 결과 값에 기초하여 해당 검사 노드에 연결된 오류 후보의 계산 결과 값을 수정한다(S150).If an error candidate is determined by step S140, the error node is determined based on a calculation result value stored in variable nodes (including error candidates) connected to the inspection node including one error candidate among the inspection nodes connected to the error candidate. The calculation result value of the connected error candidate is corrected (S150).

여기서, 단계 S150은 검사 노드에 연결된 모든 변수 노드들의 계산 결과 값의 합이 0이라는 것에 기초하여 오류 후보의 계산 결과 값을 수정할 수 있다.Here, in step S150, the calculation result value of the error candidate may be corrected based on the sum of the calculation result values of all variable nodes connected to the inspection node.

상기 단계 S130 내지 단계 S150의 과정을 미리 설정된 횟수만큼 반복 수행하거나 모든 오류 후보의 계산 결과 값이 수정되는 경우 반복 과정을 종료하고, 오류 후보의 계산 결과 값이 수정된 변수 노드들의 계산 결과 값에 기초하여 이레이저 복호를 수행한다(S160).The process of steps S130 to S150 is repeatedly performed a predetermined number of times or when the calculation result values of all error candidates are corrected, the iterative process is terminated, and the calculation result values of the error candidates are based on the calculated result values of the modified variable nodes. To perform erasure decoding (S160).

이러한 본 발명에 대하여, 도 2 내지 도 5를 참조하여 상세하게 설명한다.The present invention will be described in detail with reference to FIGS. 2 to 5.

본 발명은 분산 기계 학습에서 잘못된 계산 결과 또는 악의적인 정보가 주어지는 경우 이를 감지 및 수정하는 기술에 대한 것으로, 비정규 LDPC 부호가 주어지는 경우 정규 LDPC 부호에서 사용한 알고리즘을 쉽게 확장해서 사용할 수 있기 때문에 설명의 편의를 위하여 제안된 부호가 (dv, dc)-LDPC 부호라는 전제로 본 발명을 설명한다.The present invention relates to a technique for detecting and correcting an incorrect calculation result or malicious information given in distributed machine learning. When an irregular LDPC code is given, the algorithm used in the regular LDPC code can be easily extended and used for convenience of explanation. The present invention will be described on the premise that the proposed code is (d v , d c ) -LDPC code.

초기화 단계: 변수 노드에는 계산이 끝난 경우 일꾼으로부터 계산된 계산 결과 값

Figure 112019031749435-pat00006
가 저장되어 있으며, 계산이 끝나지 않은 변수 노드에는 이레이저(erasure)로 표시한다. 변수 노드가 이레이저인 경우 H=[hmn]M×N
Figure 112019031749435-pat00007
에서 이레이저인 변수 노드와 그 변수 노드와 연결된 검사 노드를 모두 제거하여 H'=[h'mn]M'×N'을 만든다.Initialization steps: In the variable node, the calculation result value calculated by the worker when the calculation is finished
Figure 112019031749435-pat00006
Is stored, and the variable node that has not been calculated is marked with erasure. H = [h mn ] M × N when the variable node is an erasure
Figure 112019031749435-pat00007
In this example, H '= [ h'mn ] M' × N 'is created by removing both the variable node which is an erasure and the check node connected to the variable node.

예를 들어, 도 2에서 변수 노드들 중 Bn-2와 Bn-1의 변수 노드가 이레이저인 경우 즉, 낙오자(stragglers)를 이레이저로 처리함으로써, 이레이저의 변수 노드인 Bn-2와 Bn-1 그리고 Bn-2와 Bn-1 각각에 연결된 검사 노드(네모 모양)를 모두 제거한다.For example, in FIG. 2, when the variable nodes of B n-2 and B n-1 among the variable nodes are erasures, that is, by processing straglers as erasures, the variable nodes of the erasure B B -2 And B n-1 and B n-2 and B n-1, respectively, are removed from the check node (square shape).

H'이 주어진 경우 반복 횟수 l은 0으로, 각 변수 노드에 일꾼의 계산 결과 Vi 값은

Figure 112019031749435-pat00008
,
Figure 112019031749435-pat00009
그리고 복호에 올바른 변수 노드의 집합 B를
Figure 112019031749435-pat00010
φ로 초기화 한다. 각 변수 노드에 대한 판정 값 Ei와 검사 노드에 대한 판정 값 Fi, Gi를 각각 0으로 초기화 한다. If H 'is given, the number of repetitions l is 0, and the value of V i is calculated by the worker's calculation for each variable node
Figure 112019031749435-pat00008
,
Figure 112019031749435-pat00009
And the correct set of variable nodes B for decoding
Figure 112019031749435-pat00010
Initialize with φ. The determination values E i for each variable node and the determination values F i and G i for the inspection node are initialized to 0, respectively.

여기서, 검사 노드 판정 값 Fi는 변수 노드들 중 오류가 있을 것이라고 판단되는 후보를 감지하기 위한 값이며, 검사 노드 판정값 Gi는 오류를 수정하기 위한 값일 수 있다. 초기화 단계에서는 아래 <수학식 1>과 같이 초기화시킬 수 있다.Here, the check node determination value F i is a value for detecting a candidate determined to have an error among the variable nodes, and the check node determination value G i may be a value for correcting an error. In the initialization step, it can be initialized as shown in <Equation 1> below.

[수학식 1] [Equation 1]

Figure 112019031749435-pat00011
Figure 112019031749435-pat00011

1단계: 모든 검사 노드 ci에 대하여 아래 <수학식 2>를 만족하면 Fi를 0으로 표시하고, 만족하지 않으면 1로 표시한다. 즉, 검사 노드 판정 값 Fi는 해당 검사 노드와 연결된 변수 노드들에 저장된 계산 결과 값(리얼 벡터)의 합에 따라서 결정되는 값으로, 계산 결과 값의 합이 0 벡터인 경우 변수 노드들이 모두 정상적인 계산 결과 값을 저장하고 있는 것으로 볼 수 있고, 계산 결과 값의 합이 0 벡터가 아닌 경우 변수 노드들 중 적어도 하나 이상의 변수 노드가 잘못된 계산 결과 값을 저장하고 있는 것으로 볼 수 있다.Step 1: If you for all the check nodes c i satisfies the following <Equation 2>, and displays the F i to zero, is not satisfied denoted by 1. That is, the inspection node determination value F i is a value determined according to the sum of the calculation result values (real vector) stored in the variable nodes connected to the corresponding inspection node. When the sum of the calculation result values is 0 vector, all the variable nodes are normal. It can be seen that the calculation result value is stored, and if the sum of the calculation result values is not a vector, at least one variable node among the variable nodes may be regarded as storing an incorrect calculation result value.

[수학식 2][Equation 2]

Figure 112019031749435-pat00012
Figure 112019031749435-pat00012

예를 들어, 도 3에 도시된 바와 같이, 검사 노드들 c1 내지 c4에 변수 노드들 v1 내지 v8이 연결되고, 변수 노드 v3에 저장된 계산 결과 값에 오류가 있다고 가정하면, 도 4에 도시된 바와 같이 변수 노드 v3와 연결된 검사 노드 c1 과 c3의 검사 노드 판정 값 Fi는 1이 되고, 나머지 검사 노드의 검사 노드 판정 값 Fi는 0이 된다. 여기서, 검사 노드 판정 값 Fi가 1인 검사 노드를 불만족 검사 노드(unsatisfied check nodes)라 할 수 있다. 즉, 불만족 검사 노드를 확인하여 검사 노드의 검사 노드 판정 값 Fi을 업데이트한다. For example, as shown in FIG. 3, assuming that the variable nodes v 1 to v 8 are connected to the check nodes c 1 to c 4 , and there is an error in the calculation result value stored in the variable node v 3 , 4, a variable node v 3 and connected to the check nodes c 1 and c 3 check nodes determination value F i, as shown in is a 1, a check node is determined the other check node value F i is zero. Here, a test node having a check node determination value F i of 1 may be referred to as unsatisfied check nodes. That is, the dissatisfaction check node is checked and the check node determination value F i of the check node is updated.

2단계: 아래 <수학식 3>을 만족하는 변수 노드 vj를 오류 후보로 지정하고, Ei=1로 표시한다. 이 때, 오류 후보에 들어가는 변수 노드들은 실제로 오류를 갖는 변수 노드일 수도 있고 그렇지 않을 수도 있다.Step 2: The variable node v j that satisfies <Equation 3> below is designated as an error candidate, and E i = 1. At this time, the variable nodes entering the error candidate may or may not be variable nodes that actually have errors.

즉, 본 발명은 변수 노드들 각각에 연결된 검사 노드들 각각에 대한 검사 노드 판정 값 Fi가 모두 1인 경우에 해당 변수 노드를 오류 후보로 결정한다. 예컨대, 도 4에 도시된 바와 같이, 변수 노드 각각에 연결된 검사 노드들 각각에 대한 검사 노드 판정 값 Fi를 확인함으로써, 연결된 검사 노드들의 검사 노드 판정 값 Fi가 모두 1인 변수 노드 v3를 오류 후보로 결정하고, 변수 노드 판정 값 Ej는 1이 된다. 즉, 오류 후보를 결정하고, 이렇게 결정된 후보 노드의 변수 노드 판정 값 Ej를 업데이트한다.That is, the present invention determines the variable node as an error candidate when the check node determination value F i for each of the check nodes connected to each of the variable nodes is all 1. For example, as illustrated in FIG. 4, by checking the check node determination value F i for each of the check nodes connected to each of the variable nodes, the variable node v 3 in which the check node determination values F i of the connected check nodes are all 1 is determined. It is determined as an error candidate, and the variable node determination value E j is 1. That is, an error candidate is determined, and the variable node determination value E j of the thus determined candidate node is updated.

[수학식 3][Equation 3]

Figure 112019031749435-pat00013
Figure 112019031749435-pat00013

여기서,

Figure 112019031749435-pat00014
일 수 있다.here,
Figure 112019031749435-pat00014
Can be

|B| = N'이면 4 단계로 진행하고, 그렇지 않은 경우 다음 단계인 3 단계로 진행한다. 즉, 오류 후보가 존재하지 않는 경우 4 단계의 이레이저 복호 단계를 수행하고, 오류 후보가 존재하는 경우 남은 오류 후보를 수정하기 위한 과정 즉, 3단계의 과정을 수행한다.| B | = N ', proceed to step 4, otherwise proceed to the next step, step 3. That is, if the error candidate does not exist, the erasure decoding step of step 4 is performed, and when the error candidate exists, a process for correcting the remaining error candidate, that is, the step of step 3 is performed.

3단계: 각 검사 노드 ci에 대하여 아래 <수학식 4>를 이용하여 Gi값을 계산한다. Step 3: Calculate the value of G i for each test node c i using <Equation 4> below.

[수학식 4] [Equation 4]

Figure 112019031749435-pat00015
Figure 112019031749435-pat00015

즉, 상기 수학식 4는 검사 노드 판정 값 Gi를 검사 노드들 각각에 대하여 변수 노드 판정 값 Ej를 모두 더한 값으로 계산한다. 예를 들어, 도 5에 도시된 바와 같이, 검사 노드 c1의 검사 노드 판정 값 Gi는 연결된 변수 노드들의 Ej 값이 0과 1이기 때문에 1이 되고, 검사 노드 c2의 검사 노드 판정 값 Gi는 연결된 변수 노드들의 Ej 값이 0, 0, 0, 0이기 때문에 0이 되며, 검사 노드 c3의 검사 노드 판정 값 Gi는 연결된 변수 노드들의 Ej 값이 1, 0, 0이기 때문에 1이 되고, 검사 노드 c4의 검사 노드 판정 값 Gi는 연결된 변수 노드들의 Ej 값이 0, 0, 0이기 때문에 0이 된다. That is, Equation (4) calculates the check node decision value G i as the sum of all of the variable node decision values E j for each of the check nodes. For example, as illustrated in Figure 5, a check node c 1 of check node determination value G i is the first since the E j values of the variable nodes connected to be 0 and 1, and the check node the check node determines the value of c 2 G i becomes 0 because the E j values of the connected variable nodes are 0, 0, 0, 0, and the check node judgment value of the inspection node c 3 G i is the E j values of the connected variable nodes is 1, 0, 0 Therefore, it becomes 1, and the inspection node determination value G i of the inspection node c 4 becomes 0 because the E j values of the connected variable nodes are 0, 0, and 0.

검사 노드 각각에 대한 검사 노드 판정 값 Gi가 계산되면 Gi = 1인 i를 찾고, i에 대하여 ci에 연결된 변수 노드들 중 B에 포함되지 않은 인덱스 η를 찾아서 zη를 아래 <수학식 5>와 같이 변경하고, 아래 <수학식 6>을 이용하여 B를 업데이트 한다.If the check node judgment value G i for each check node is calculated, find i with G i = 1, find the index η not included in B among the variable nodes connected to c i with respect to i , and find z η below. Change as in 5>, and update B using <Equation 6> below.

여기서, Gi = 1이 의미하는 것은 ci에 연결된 변수 노드들 중 오직 한 개의 변수 노드가 잘못될 가능성이 있다는 것을 의미하는 것으로, 오류 후보에 들어가는 변수 노드들이 모두 오류가 있는 것은 아니다.Here, G i = 1 means that there is a possibility that only one of the variable nodes connected to c i may be wrong, and not all variable nodes in the error candidate are in error.

즉, 검사 노드들 중 연결된 변수 노드들에 하나의 오류 후보만이 포함된 검사 노드들 찾고, 해당 검사 노드와 연결된 하나의 오류 후보에 대한 계산 결과 값을 상기 수학식 2를 이용하여 수정하는 것으로, 해당 검사 노드에 연결된 변수 노드들 중 하나의 변수 노드만 오류 값을 저장하고 있고, 나머지 변수 노드들에 저장된 계산 결과 값을 정상적인 결과 값이기 때문에 연결된 변수 노드들의 계산 결과 값의 합이 0이 되는 수학식 2를 이용하여 오류 값을 저장하고 있는 오류 후보의 계산 결과 값을 수정할 수 있다.That is, among the check nodes, it is to find the check nodes including only one error candidate in the connected variable nodes, and correct the calculation result value for one error candidate connected to the check node using Equation (2). Mathematics where the sum of the calculated result values of the connected variable nodes is 0 because only one of the variable nodes connected to the corresponding inspection node stores the error value and the calculated result value stored in the remaining variable nodes is a normal result value. Equation 2 can be used to modify the calculation result value of an error candidate storing an error value.

[수학식 5][Equation 5]

Figure 112019031749435-pat00016
Figure 112019031749435-pat00016

[수학식 6][Equation 6]

Figure 112019031749435-pat00017
Figure 112019031749435-pat00017

이러한 과정을 통해 오류 후보의 계산 결과 값이 수정되면, 계산 결과 값이 수정된 변수 노드의 인덱스를 B에 추가함으로써, B를 업데이트한다.When the calculation result value of the error candidate is modified through this process, B is updated by adding the index of the variable node whose calculation result value is modified to B.

|B| = N'(모든 변수 노드가 전부가 정상적인 계산 결과 값을 저장 또는 수정되었다는 것)이거나 또는 l이 반복 임계점(iteration threshold) 보다 큰 경우 4 단계로 진행하고 그렇지 않은 경우 l을 l+1로 업데이트 하고 1 단계로 피드백한다.| B | = N '(all variable nodes are all storing or modifying the result of a normal calculation) or if l is greater than the iteration threshold, proceed to step 4, otherwise update l to l + 1 and Feedback to step 1.

4단계: |B| = N'인 경우 모든 변수 노드는 올바른 변수 노드인 것을 의미한다. 수정된(corrected) 변수 노드와 초기화 단계에서 이레이저로 설정된 낙오자(straggler) 노드를 가지고 H=[hmn]M×N

Figure 112019031749435-pat00018
에서 이레이저 복호를 수행한다.Step 4: | B | = N 'means that all variable nodes are valid variable nodes. H = [h mn ] M × N with a corrected variable node and a straggler node set to erasure in the initialization phase
Figure 112019031749435-pat00018
Eraser decoding is performed.

|B| < N'인 경우 즉, l이 반복 임게점보다 큰 경우 복호 실패를 선언한다.| B | If <N ', i.e., l is greater than the repetition threshold, the decoding failure is declared.

이와 같이, 본 발명의 실시예에 따른 방법은 LDPC 부호의 복호 특징을 이용하여 분산 기계 학습 환경에서 일꾼들이 마스터에게 잘못된 계산 결과 값을 보내는 경우에 잘못된 계산 결과를 감지하고 수정할 수 있고, 분산 기계 학습 환경에서 일꾼이 낙오자(straggler)인 경우와 잘못된 계산 결과 값을 전송하는 경우를 모두 고려하여 분산 기계 학습을 동작시킬 수 있다.As described above, the method according to an embodiment of the present invention can detect and correct an incorrect calculation result when workers send an incorrect calculation result value to a master in a distributed machine learning environment using a decoding feature of an LDPC code, and distributed machine learning In an environment, distributed machine learning can be operated by considering both a worker as a straggler and a case in which an incorrect calculation result is transmitted.

또한, 본 발명의 실시예에 따른 방법은 LDPC 부호와 부호의 이분 그래프(bipartite graph) 표현을 이용하여 분산 기계 학습에서 발생할 수 있는 오류를 효율적으로 감지 및 수정할 수 있다.In addition, the method according to an embodiment of the present invention can efficiently detect and correct errors that may occur in distributed machine learning using LDPC codes and bipartite graph representations of codes.

도 6은 본 발명의 방법에 대한 성능을 평가한 일 예시도를 나타낸 것으로, (dv, dc)가 (6, 12)인 QC LDPC 부호에서 본 발명의 성능을 평가한 그래프를 나타낸 것이다.6 shows an exemplary diagram for evaluating the performance of the method of the present invention, and shows a graph evaluating the performance of the present invention in the QC LDPC code with (d v , d c ) of (6, 12).

여기서, X축은 변수 노드들 중 잘못된 계산 결과 값을 가지는 변수 노드의 개수 비율(probability)을 의미하고, Y축은 WER(word error rate)를 의미한다.Here, the X-axis refers to the number of variable nodes (probability) having an incorrect calculation result value among the variable nodes, and the Y-axis refers to the word error rate (WER).

도 6에 도시된 바와 같이, 본 발명에 따른 방법은 probability가 0.115인 경우 잘못된 계산 결과 값을 모두 수정할 수 있고, probability가 0.12인 경우 잘못된 계산 결과 값을 모두 수정할 수는 없지만 대부분의 오류 후보에 대한 계산 결과 값을 수정할 수 있는 것을 알 수 있다. As shown in FIG. 6, the method according to the present invention can correct all of the incorrect calculation result values when the probability is 0.115, and cannot correct all of the incorrect calculation result values when the probability is 0.12, but for most error candidates It can be seen that the calculation result value can be modified.

도 7은 본 발명의 일 실시예에 따른 분산 기계 학습 오류 복구 장치에 대한 구성을 나타낸 것으로, 도 1 내지 도 6의 방법을 수행하는 장치에 대한 개념적인 구성을 나타낸 것이다.7 illustrates a configuration of a distributed machine learning error recovery apparatus according to an embodiment of the present invention, and shows a conceptual configuration of an apparatus performing the method of FIGS. 1 to 6.

도 7을 참조하면, 본 발명의 실시예에 따른 장치(700)는 수신부(710), 결정부(720), 수정부(730) 및 복호부(740)를 포함한다.Referring to FIG. 7, the apparatus 700 according to an embodiment of the present invention includes a receiver 710, a decision unit 720, a correction unit 730, and a decoding unit 740.

수신부(710)는 일꾼들에 의해 수행된 계산 결과 값을 일꾼들로부터 수신한다.The receiving unit 710 receives a calculation result value performed by workers from workers.

결정부(720)는 검사 노드들 각각에 대하여 연결된 변수 노드들에 저장된 계산 결과 값에 기초하여 해당 검사 노드에 연결된 변수 노드들에 오류가 있는지를 판단하기 위한 제1 판정 값을 결정하고, 검사 노드들 각각에 대해 결정된 제1 판정 값에 기초하여 변수 노드들 중 오류를 포함할 것으로 판단되는 오류 후보 즉, 오류 후보 노드를 결정한다The determination unit 720 determines a first determination value for determining whether there are errors in the variable nodes connected to the corresponding inspection node based on the calculation result values stored in the variable nodes connected to each of the inspection nodes, and the inspection node An error candidate, that is, an error candidate node, which is determined to include an error among the variable nodes is determined based on the first determination value determined for each of them.

이 때, 결정부(720)는 검사 노드들과 변수 노드들 중 이레이저에 해당하는 변수 노드와 그 변수 노드와 연결된 검사 노드를 모두 제거한 후 제1 판정 값에 대한 결정 및 오류 후보 노드를 결정할 수 있다.At this time, the determination unit 720 may remove the variable node corresponding to the eraser and the inspection node connected to the variable node from among the inspection nodes and the variable nodes, and then determine the first determination value and the error candidate node. have.

수정부(730)는 오류 후보가 결정되면 오류 후보와 연결되는 검사 노드들 중 하나의 오류 후보를 포함하는 검사 노드와 연결된 변수 노드들(오류 후보도 포함)에 저장된 계산 결과 값에 기초하여 해당 검사 노드에 연결된 오류 후보의 계산 결과 값을 수정한다.When the error candidate is determined, the correction unit 730 checks the error based on the calculation result value stored in the variable nodes (including error candidates) connected to the test node including one of the error candidates connected to the error candidate. Correct the calculation result value of the error candidate connected to the node.

이 때, 수정부(730)는 검사 노드에 연결된 모든 변수 노드들의 계산 결과 값의 합이 0이라는 것에 기초하여 오류 후보의 계산 결과 값을 수정할 수 있다.At this time, the correction unit 730 may correct the calculation result value of the error candidate based on the sum of the calculation result values of all variable nodes connected to the inspection node being 0.

여기서, 결정부(720)와 수정부(730)는 검사 노드와 연결된 오류 노드의 계산 결과 값을 수정한 후 오류 후보를 결정하고 오류 후보에 대한 계산 결과 값을 수정하는 과정을 미리 설정된 횟수만큼 반복 수행할 수 있다.Here, the determination unit 720 and the correction unit 730 repeat the process of determining the error candidate and correcting the calculation result value for the error candidate a predetermined number of times after correcting the calculation result value of the error node connected to the inspection node. Can be done.

복호부(740)는 일정 횟수만큼 반복 수행에 의해 오류 후보의 계산 결과 값이 수정됨으로써, 검사 노드들 각각에 연결된 변수 노드들의 계산 결과 값에 기초하여 이레이저 복호를 수행한다.The decoding unit 740 performs erasure decoding based on the calculation result values of the variable nodes connected to each of the check nodes by correcting the error candidate calculation result value by repeating a predetermined number of times.

비록, 도 7 장치에서 그 설명이 생략되었더라도, 도 7의 장치는 상기 도 1 내지 도 6에서 설명한 내용을 모두 포함할 수 있으며, 이러한 사항은 본 발명의 기술 분야에 종사하는 당업자에게 있어서 자명하다.Although the description of the apparatus in FIG. 7 is omitted, the apparatus in FIG. 7 may include all of the contents described with reference to FIGS. 1 to 6, and these matters are obvious to those skilled in the art.

이상에서 설명된 시스템 또는 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 시스템, 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The system or device described above may be implemented with hardware components, software components, and / or combinations of hardware components and software components. For example, the systems, devices, and components described in embodiments include, for example, processors, controllers, arithmetic logic units (ALUs), digital signal processors (micro signal processors), microcomputers, field programmable arrays (FPAs). ), A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions, may be implemented using one or more general purpose computers or special purpose computers. The processing device may run an operating system (OS) and one or more software applications running on the operating system. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of the software. For convenience of understanding, a processing device may be described as one being used, but a person having ordinary skill in the art, the processing device may include a plurality of processing elements and / or a plurality of types of processing elements. It can be seen that may include. For example, the processing device may include a plurality of processors or a processor and a controller. In addition, other processing configurations, such as parallel processors, are possible.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instruction, or a combination of one or more of these, and configure the processing device to operate as desired, or process independently or collectively You can command the device. Software and / or data may be interpreted by a processing device, or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodied in the transmitted signal wave. The software may be distributed on networked computer systems, and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by a limited embodiment and drawings, those skilled in the art can make various modifications and variations from the above description. For example, the described techniques are performed in a different order than the described method, and / or the components of the described system, structure, device, circuit, etc. are combined or combined in a different form from the described method, or other components Alternatively, even if replaced or substituted by equivalents, appropriate results can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (12)

일꾼들(workers)로부터 계산 결과 값들을 수신하는 단계;
변수 노드들(variable nodes) 중 이레이저(erasure)의 변수 노드 및 상기 이레이저의 변수 노드와 연결된 검사 노드(check node)를 제거하는 단계;
검사 노드들 각각에 연결된 변수 노드들의 계산 결과 값에 기초하여 변수 노드들 중 오류 후보를 결정하는 단계; 및
상기 결정된 오류 후보와 연결된 검사 노드에 연결된 변수 노드들 각각의 계산 결과 값에 기초하여 해당 검사 노드와 연결된 오류 노드의 계산 결과 값을 수정하는 단계
를 포함하는 분산 기계 학습 오류 복구 방법.
Receiving calculation result values from workers;
Removing a variable node of an erasure and a check node connected to the variable node of the erasure among variable nodes;
Determining an error candidate among variable nodes based on a calculation result value of variable nodes connected to each of the inspection nodes; And
Correcting the calculated result value of the error node connected to the corresponding inspection node based on the calculated result value of each of the variable nodes connected to the determined error candidate and the connected inspection node.
Distributed machine learning error recovery method comprising a.
제1항에 있어서,
상기 결정하는 단계는
상기 검사 노드들 각각에 연결된 변수 노드들의 계산 결과 값에 기초하여 상기 검사 노드들 각각에 대하여 상기 오류 후보를 감지하기 위한 제1 판정 값을 계산하고, 상기 검사 노드들 각각에 대해 계산된 제1 판정 값에 기초하여 상기 오류 노드를 결정하는 것을 특징으로 하는 분산 기계 학습 오류 복구 방법.
According to claim 1,
The determining step
A first judgment value for detecting the error candidate is calculated for each of the inspection nodes based on a calculation result value of variable nodes connected to each of the inspection nodes, and a first judgment calculated for each of the inspection nodes A distributed machine learning error recovery method characterized by determining the error node based on a value.
제2항에 있어서,
상기 결정하는 단계는
상기 변수 노드들 각각에 대하여, 해당 변수 노드와 연결된 모든 검사 노드의 제1 판정 값이 미리 설정된 값인 경우 상기 해당 변수 노드를 오류 후보로 결정하는 것을 특징으로 하는 분산 기계 학습 오류 복구 방법.
According to claim 2,
The determining step
A distributed machine learning error recovery method for each of the variable nodes, wherein the variable node is determined as an error candidate when the first determination values of all the inspection nodes connected to the variable node are preset values.
제2항에 있어서,
상기 수정하는 단계는
상기 결정된 오류 후보 중 하나의 오류 후보만을 포함하는 제1 검사 노드에 연결된 변수 노드들 각각의 계산 결과 값의 합이 미리 설정된 값이 되도록 상기 제1 검사 노드와 연결된 오류 노드의 계산 결과 값을 수정하는 것을 특징으로 하는 분산 기계 학습 오류 복구 방법.
According to claim 2,
The step of correcting
Correcting the calculation result value of the error node connected to the first inspection node so that the sum of the calculation result values of each of the variable nodes connected to the first inspection node including only one of the determined error candidates is a preset value. Distributed machine learning error recovery method characterized in that.
제4항에 있어서,
상기 제1 검사 노드와 연결된 오류 노드의 계산 결과 값을 수정한 후 상기 결정하는 단계 내지 상기 수정하는 단계를 미리 설정된 일정 횟수만큼 반복 수행하는 단계
를 더 포함하는 것을 특징으로 하는 분산 기계 학습 오류 복구 방법.
According to claim 4,
After correcting the calculation result value of the error node connected to the first inspection node, repeating the determining step or the correcting step a predetermined number of times.
Distributed machine learning error recovery method further comprising a.
제5항에 있어서,
상기 일정 횟수만큼 반복 수행한 후 상기 검사 노드들 각각에 연결된 변수 노드들의 계산 결과 값에 기초하여 이레이저 복호를 수행하는 단계
를 더 포함하는 것을 특징으로 하는 분산 기계 학습 오류 복구 방법.
The method of claim 5,
After repeatedly performing the predetermined number of times, performing erasure decoding based on the calculation result values of the variable nodes connected to each of the check nodes.
Distributed machine learning error recovery method further comprising a.
일꾼들(workers)로부터 계산 결과 값들을 수신하는 수신부;
변수 노드들(variable nodes) 중 이레이저(erasure)의 변수 노드 및 상기 이레이저의 변수 노드와 연결된 검사 노드(check node)를 제거하고, 검사 노드들 각각에 연결된 변수 노드들의 계산 결과 값에 기초하여 변수 노드들 중 오류 후보를 결정하는 결정부; 및
상기 결정된 오류 후보와 연결된 검사 노드에 연결된 변수 노드들 각각의 계산 결과 값에 기초하여 해당 검사 노드와 연결된 오류 노드의 계산 결과 값을 수정하는 수정부
를 포함하는 분산 기계 학습 오류 복구 장치.
A receiver for receiving calculation result values from workers;
Among variable nodes, the variable node of erasure and the check node connected to the variable node of the eraser are removed, and the variable is based on the calculation result values of the variable nodes connected to each of the inspect nodes. A determination unit for determining error candidates among the nodes; And
Correction to correct the calculation result value of the error node connected to the corresponding inspection node based on the calculated result value of each of the variable nodes connected to the inspection node connected to the determined error candidate.
Distributed machine learning error recovery device comprising a.
제7항에 있어서,
상기 결정부는
상기 검사 노드들 각각에 연결된 변수 노드들의 계산 결과 값에 기초하여 상기 검사 노드들 각각에 대하여 상기 오류 후보를 감지하기 위한 제1 판정 값을 계산하고, 상기 검사 노드들 각각에 대해 계산된 제1 판정 값에 기초하여 상기 오류 노드를 결정하는 것을 특징으로 하는 분산 기계 학습 오류 복구 장치.
The method of claim 7,
The determining unit
A first judgment value for detecting the error candidate is calculated for each of the inspection nodes based on a calculation result value of variable nodes connected to each of the inspection nodes, and a first judgment calculated for each of the inspection nodes A distributed machine learning error recovery apparatus characterized by determining the error node based on a value.
제8항에 있어서,
상기 결정부는
상기 변수 노드들 각각에 대하여, 해당 변수 노드와 연결된 모든 검사 노드의 제1 판정 값이 미리 설정된 값인 경우 상기 해당 변수 노드를 오류 후보로 결정하는 것을 특징으로 하는 분산 기계 학습 오류 복구 장치.
The method of claim 8,
The determining unit
A distributed machine learning error recovery apparatus for each of the variable nodes, wherein the variable node is determined as an error candidate when the first determination values of all the inspection nodes connected to the variable node are preset values.
제8항에 있어서,
상기 수정부는
상기 결정된 오류 후보 중 하나의 오류 후보만을 포함하는 제1 검사 노드에 연결된 변수 노드들 각각의 계산 결과 값의 합이 미리 설정된 값이 되도록 상기 제1 검사 노드와 연결된 오류 노드의 계산 결과 값을 수정하는 것을 특징으로 하는 분산 기계 학습 오류 복구 장치.
The method of claim 8,
The correction unit
Correcting the calculation result value of the error node connected to the first inspection node so that the sum of the calculation result values of each of the variable nodes connected to the first inspection node including only one of the determined error candidates is a preset value. Distributed machine learning error recovery device, characterized in that.
제10항에 있어서,
상기 결정부와 상기 수정부는
상기 제1 검사 노드와 연결된 오류 노드의 계산 결과 값을 수정한 후 오류 후보를 결정하고 오류 후보에 대한 계산 결과 값을 수정하는 과정을 미리 설정된 일정 횟수만큼 반복 수행하는 것을 특징으로 하는 분산 기계 학습 오류 복구 장치.
The method of claim 10,
The determination unit and the correction unit
Distributed machine learning error characterized by repeating the process of determining the error candidate and correcting the calculation result value for the error candidate a predetermined number of times after correcting the calculation result value of the error node connected to the first inspection node. Recovery device.
제11항에 있어서,
상기 일정 횟수만큼 반복 수행한 후 상기 검사 노드들 각각에 연결된 변수 노드들의 계산 결과 값에 기초하여 이레이저 복호를 수행하는 복호부
를 더 포함하는 것을 특징으로 하는 분산 기계 학습 오류 복구 장치.
The method of claim 11,
After repeating the predetermined number of times, a decoding unit that performs erasure decoding based on the calculation result values of variable nodes connected to each of the check nodes
Distributed machine learning error recovery device further comprising a.
KR1020190035590A 2019-03-28 2019-03-28 Distributed machine learning method with fault tolerance using LDPC codes and apparatus therefore KR102096737B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190035590A KR102096737B1 (en) 2019-03-28 2019-03-28 Distributed machine learning method with fault tolerance using LDPC codes and apparatus therefore

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190035590A KR102096737B1 (en) 2019-03-28 2019-03-28 Distributed machine learning method with fault tolerance using LDPC codes and apparatus therefore

Publications (1)

Publication Number Publication Date
KR102096737B1 true KR102096737B1 (en) 2020-04-02

Family

ID=70281600

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190035590A KR102096737B1 (en) 2019-03-28 2019-03-28 Distributed machine learning method with fault tolerance using LDPC codes and apparatus therefore

Country Status (1)

Country Link
KR (1) KR102096737B1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100062801A (en) * 2008-12-01 2010-06-10 한국전자통신연구원 Method and apparatus of training data verication using machine learning
JP2016536690A (en) * 2013-11-11 2016-11-24 アマゾン・テクノロジーズ・インコーポレーテッド Partition-based data stream processing framework
WO2018196631A1 (en) * 2017-04-26 2018-11-01 Midea Group Co., Ltd. Training machine learning models on a large-scale distributed system using a job server
KR20180120056A (en) * 2017-04-26 2018-11-05 김정희 Method and system for pre-processing machine learning data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100062801A (en) * 2008-12-01 2010-06-10 한국전자통신연구원 Method and apparatus of training data verication using machine learning
JP2016536690A (en) * 2013-11-11 2016-11-24 アマゾン・テクノロジーズ・インコーポレーテッド Partition-based data stream processing framework
WO2018196631A1 (en) * 2017-04-26 2018-11-01 Midea Group Co., Ltd. Training machine learning models on a large-scale distributed system using a job server
KR20180120056A (en) * 2017-04-26 2018-11-05 김정희 Method and system for pre-processing machine learning data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
비특허문헌1(2014.10) *

Similar Documents

Publication Publication Date Title
US10491243B2 (en) Deep learning for low-density parity-check (LDPC) decoding
KR102223968B1 (en) Apparatus and method for parallelized successive cancellation decoding and successive cancellation list decoding of polar codes
EP2479897A2 (en) Decoding device and decoding method
TWI699977B (en) Method employed in ldpc decoder and the decoder
TW201703442A (en) Systems and methods for early exit of layered LDPC decoder
CN108932177B (en) Generalized low density parity check code with variable length components
US11381253B1 (en) Decoding codeword based on higher order information
WO2017113507A1 (en) Set decoding method and set decoder
US10084480B1 (en) Systems and methods for decoding cascade LDPC codes
Higgott et al. Improved decoding of circuit noise and fragile boundaries of tailored surface codes
US20170294923A1 (en) Optimization of low density parity-check code encoder based on a search for an independent set of nodes
Higgott et al. Fragile boundaries of tailored surface codes and improved decoding of circuit-level noise
Hatami et al. A threshold-based min-sum algorithm to lower the error floors of quantized LDPC decoders
KR102213345B1 (en) Method for constructing parity-check concatenated polar codes and apparatus therefor
Xiao et al. Estimation of bit and frame error rates of finite-length low-density parity-check codes on binary symmetric channels
US9281841B2 (en) Load balanced decoding of low-density parity-check codes
KR102096737B1 (en) Distributed machine learning method with fault tolerance using LDPC codes and apparatus therefore
Das et al. Random convolutional coding for robust and straggler resilient distributed matrix computation
CN101136639B (en) Systems and methods for reduced complexity ldpc decoding
US8650459B1 (en) Soft input, soft ouput mappers and demappers for block codes
KR101569637B1 (en) Method and Apparatus for Non-Iterative Soft-Decision BCH Decoding using Test Syndrome
US11664821B1 (en) Error floor performance of a bit flipping decoder through identifying unreliable check nodes
JP5310701B2 (en) Decoding device and decoding method
CN101777920A (en) Coding method and coding and decoding device of low-density parity check code
WO2017065628A1 (en) Optimizer for determining an optimal sequence of operations for matrix-vector multiplication

Legal Events

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