KR20240109014A - 전자 장치 및 이의 제어 방법 - Google Patents
전자 장치 및 이의 제어 방법 Download PDFInfo
- Publication number
- KR20240109014A KR20240109014A KR1020230000664A KR20230000664A KR20240109014A KR 20240109014 A KR20240109014 A KR 20240109014A KR 1020230000664 A KR1020230000664 A KR 1020230000664A KR 20230000664 A KR20230000664 A KR 20230000664A KR 20240109014 A KR20240109014 A KR 20240109014A
- Authority
- KR
- South Korea
- Prior art keywords
- neural network
- network model
- information
- version
- electronic device
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000011156 evaluation Methods 0.000 claims abstract description 103
- 238000003062 neural network model Methods 0.000 claims abstract description 102
- 238000004891 communication Methods 0.000 claims abstract description 26
- 238000010586 diagram Methods 0.000 description 9
- 238000013528 artificial neural network Methods 0.000 description 7
- 230000014509 gene expression Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/098—Distributed learning, e.g. federated learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
전자 장치 및 이의 제어 방법이 제공된다. 전자 장치는 통신 인터페이스, 적어도 하나의 인스트럭션을 저장하는 메모리 및 적어도 하나의 프로세서를 포함한다. 적어도 하나의 프로세서는 통신 인터페이스를 통해 서버로부터 글로벌 신경망 모델에 대한 정보 및 평가 데이터에 대한 정보를 수신한다. 적어도 하나의 프로세서는 글로벌 신경망 모델을 학습하기 위한 데이터 셋을 획득한다. 적어도 하나의 프로세서는 데이터 셋을 이용하여 글로벌 신경망 모델을 학습시킨다. 적어도 하나의 프로세서는 학습된 글로벌 신경망 모델에 평가 데이터를 입력하여 학습된 글로벌 신경망 모델을 평가한다. 적어도 하나의 프로세서는 평가 결과에 기초하여 학습된 글로벌 신경망 모델에 대한 정보를 서버로 전송할지 여부를 결정한다.
Description
본 개시는 전자 장치 및 이의 제어 방법에 관한 것으로, 더욱 상세하게는 서버와 연동하여 신경망 모델에 대한 연합 학습을 수행할 수 있는 전자 장치 및 이의 제어 방법에 관한 것이다.
근래에는 하나의 전자 장치에서 신경망 모델을 학습하는 기술뿐만 아니라 서버와 복수의 전자 장치가 연동하여 신경망 모델을 학습하는 연합 학습에 대한 기술이 개발되고 있다.
이때, 연합 학습(Federated Learning)은 복수의 로컬 전자 장치와 하나의 중앙 서버가 협력하여 데이터가 탈중앙화된 상황에서 글로벌 모델을 학습하는 기술이다. 이때, 로컬 전자 장치는 사물 인터넷 기기, 스마트 폰 등을 포함할 수 있다.
연합 학습은 데이터 프라이버시 향상과 커뮤니케이션 효율성, 이 두 가지 장점 때문에 유용하게 쓰일 수 있다. 연합 학습을 이용하면 병원의 임상 데이터와 같은 환자의 개인정보가 보호되어야 하는 상황에서 데이터 유출 없이 학습이 가능하다. 그리고, 수 만개의 로컬 전자 장치의 데이터를 모두 중앙 서버로 전송하게 되면 네트워크 트래픽과 스토리지 비용이 증가하는데 연합 학습을 사용하면 신경망 모델의 업데이트 정보만을 주고 받으므로 네크워크 비용이 상당히 줄어들게 되는 효과가 존재한다.
다만, 기존의 연합 학습의 경우, 글로벌 모델 학습에 대한 실패와 공격으로 인해 안정성이 떨어지는 문제점이 존재한다. 구체적으로, 글로벌 모델의 전송 과정에서 글로벌 모델의 파라미터를 수정하여 글로벌 모델의 정확도가 훼손될 수 있다. 또한, 학습 이전에 학습 데이터가 훼손되어 전자 장치에서 생성하는 로컬 신경망 모델이 훼손될 수 있으며, 중앙의 서버로 신경망 모델에 대한 정보(예로, 파라미터)를 전송할 때 전자 장치 내에서 학습된 신경망 모델에 대한 정보가 훼손될 수 있다. 이는 글로벌 신경망 모델의 정확도가 훼손되는 문제점이 발생한다. 뿐만 아니라, 중앙의 서버가 학습된 신경망 모델을 평가할 때, 평가 데이터의 훼손으로 인해 연합 학습의 정확도가 떨어지는 문제점이 발생할 수 있다.
즉, 글로벌 모델 학습의 실패와 공격에 따른 신경망 모델의 훼손을 최소화하면서, 연합 학습으로 인해 신경망 모델의 정확도를 유지할 수 있는 방안의 모색이 요청된다.
본 개시의 일 실시예에 따른, 전자 장치는, 통신 인터페이스; 적어도 하나의 인스트럭션을 저장하는 메모리; 및 적어도 하나의 프로세서;를 포함한다. 상기 적어도 하나의 프로세서는, 상기 통신 인터페이스를 통해 서버로부터 글로벌 신경망 모델에 대한 정보 및 평가 데이터에 대한 정보를 수신하고, 상기 글로벌 신경망 모델을 학습하기 위한 데이터 셋을 획득하고, 상기 데이터 셋을 이용하여 상기 글로벌 신경망 모델을 학습시키며, 상기 학습된 글로벌 신경망 모델에 상기 평가 데이터를 입력하여 상기 학습된 글로벌 신경망 모델을 평가하며, 상기 평가 결과에 기초하여 상기 학습된 글로벌 신경망 모델에 대한 정보를 상기 서버로 전송할지 여부를 결정한다.
본 개시의 일 실시예에 따른, 전자 장치의 제어 방법은, 서버로부터 글로벌 신경망 모델에 대한 정보 및 평가 데이터에 대한 정보를 수신하는 단계; 상기 글로벌 신경망 모델을 학습하기 위한 데이터 셋을 획득하는 단계; 상기 데이터 셋을 이용하여 상기 글로벌 신경망 모델을 학습시키는 단계; 상기 학습된 글로벌 신경망 모델에 상기 평가 데이터를 입력하여 상기 학습된 글로벌 신경망 모델을 평가하는 단계; 및 상기 평가 결과에 기초하여 상기 학습된 글로벌 신경망 모델에 대한 정보를 상기 서버로 전송할지 여부를 결정하는 단계;를 포함한다.
본 개시의 일 실시예에 따른, 전자 장치의 제어 방법을 실행시키기 위한 프로그램을 저장하는 컴퓨터 판독가능한 매체에 있어서, 상기 전자 장치의 제어 방법은, 서버로부터 글로벌 신경망 모델에 대한 정보 및 평가 데이터에 대한 정보를 수신하는 단계; 상기 글로벌 신경망 모델을 학습하기 위한 데이터 셋을 획득하는 단계; 상기 데이터 셋을 이용하여 상기 글로벌 신경망 모델을 학습시키는 단계; 상기 학습된 글로벌 신경망 모델에 상기 평가 데이터를 입력하여 상기 학습된 글로벌 신경망 모델을 평가하는 단계; 및 상기 평가 결과에 기초하여 상기 학습된 글로벌 신경망 모델에 대한 정보를 상기 서버로 전송할지 여부를 결정하는 단계;를 포함한다.
도 1은 본 개시의 일 실시예에 따른, 전자 장치와 서버가 연동하여 신경망 모델에 대한 연합 학습을 수행하는 방법을 설명하기 위한 도면,
도 2는 본 개시의 일 실시예에 따른, 전자 장치의 구성을 나타내는 블록도,
도 3은 본 개시의 일 실시예에 따른, 연합 학습을 수행하기 위한 전자 장치 및 서버의 구성을 포함하는 블록도,
도 4는 본 개시의 일 실시예에 따른, 버전 파일을 이용하여 연합 학습을 수행하는 전자 장치의 제어 방법을 설명하기 위한 흐름도,
도 5는 본 개시의 일 실시예에 따른, 버전 파일을 설명하기 위한 도면,
도 6 내지 도 9는 본 개시의 일 실시예에 따른, 전자 장치가 신경망 모델에 대한 학습을 수행하는 동안 버전 파일을 설명하기 위한 도면들,
도 10은 본 개시의 일 실시예에 따른, 버전 파일을 이용하여 연합 학습을 수행하는 서버의 제어 방법을 설명하기 위한 흐름도,
도 11은 본 개시의 일 실시예에 따른, 학습된 글로벌 모델의 버전에 기초하여 학습된 글로벌 모델을 이용할지 여부를 판단하는 방법을 설명하기 위한 흐름도,
도 12는 본 개시의 일 실시예에 따른, 새로운 버전의 버전 파일을 설명하기 위한 도면, 그리고,
도 13은 본 개시의 일 실시예에 따른, 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 2는 본 개시의 일 실시예에 따른, 전자 장치의 구성을 나타내는 블록도,
도 3은 본 개시의 일 실시예에 따른, 연합 학습을 수행하기 위한 전자 장치 및 서버의 구성을 포함하는 블록도,
도 4는 본 개시의 일 실시예에 따른, 버전 파일을 이용하여 연합 학습을 수행하는 전자 장치의 제어 방법을 설명하기 위한 흐름도,
도 5는 본 개시의 일 실시예에 따른, 버전 파일을 설명하기 위한 도면,
도 6 내지 도 9는 본 개시의 일 실시예에 따른, 전자 장치가 신경망 모델에 대한 학습을 수행하는 동안 버전 파일을 설명하기 위한 도면들,
도 10은 본 개시의 일 실시예에 따른, 버전 파일을 이용하여 연합 학습을 수행하는 서버의 제어 방법을 설명하기 위한 흐름도,
도 11은 본 개시의 일 실시예에 따른, 학습된 글로벌 모델의 버전에 기초하여 학습된 글로벌 모델을 이용할지 여부를 판단하는 방법을 설명하기 위한 흐름도,
도 12는 본 개시의 일 실시예에 따른, 새로운 버전의 버전 파일을 설명하기 위한 도면, 그리고,
도 13은 본 개시의 일 실시예에 따른, 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
이하, 본 개시의 다양한 실시 예가 기재된다. 그러나, 이는 본 개시의 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시 예들의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다.
본 문서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 문서에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 문서에서 사용된 "제 1," "제 2," "첫째," 또는 "둘째," 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제 1 사용자 기기와 제 2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 문서에 기재된 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 바꾸어 명명될 수 있다.
본 문서에서 사용된 "모듈", "유닛", "부(part)" 등과 같은 용어는 적어도 하나의 기능이나 동작을 수행하는 구성요소를 지칭하기 위한 용어이며, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈", "유닛", "부(part)" 등은 각각이 개별적인 특정한 하드웨어로 구현될 필요가 있는 경우를 제외하고는, 적어도 하나의 모듈이나 칩으로 일체화되어 프로세서로 구현될 수 있다.
어떤 구성요소(예: 제 1 구성요소)가 다른 구성요소(예: 제 2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제 1 구성요소)가 다른 구성요소(예: 제 2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 문서에서 사용된 용어들은 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 다른 실시예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시예들을 배제하도록 해석될 수 없다
이하에서는 도면을 참조하여 본 개시에 대해 더욱 상세히 설명하도록 한다. 다만, 본 개시를 설명함에 있어서, 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
이하에서는 도면을 참조하여 본 개시에 대해 더욱 상세히 설명하도록 한다.
도 1은 본 개시의 일 실시예에 따른, 전자 장치와 서버가 연동하여 신경망 모델에 대한 연합 학습을 수행하는 방법을 설명하기 위한 도면이다. 도 1에 도시된 바와 같이, 전자 장치(100)와 서버(50)는 연동하여 글로벌 신경망 모델에 대한 연합 학습을 수행할 수 있다. 이때, 글로벌 신경망 모델(이하에서는 "글로벌 모델"이라 함.)은 서버(50)에서 생성된 신경망 모델로서, 서버(50)와 연결된 복수의 전자 장치에 배포되는 신경망 모델일 수 있다. 전자 장치(100)는 기저장된 데이터 셋을 이용하여 글로벌 모델에 대한 학습을 수행할 수 있다. 이에 의해, 전자 장치(100)는 학습된 신경망 모델을 획득할 수 있다. 그리고, 전자 장치(100)는 학습된 글로벌 모델을 로컬 신경망 모델(이하에서는 "로컬 모델"이라고 함.)로 저장할 수 있다. 전자 장치(100)는 로컬 모델을 이용하여 추론 동작을 수행할 수 있다.
서버(50)는 전자 장치(100)로 글로벌 모델의 버전 파일을 전송할 수 있다. 이때, 글로벌 모델의 버전 파일은 글로벌 모델에 대한 정보 및 평가 데이터에 대한 정보를 포함하는 파일로서, 이에 대한 상세한 설명은 추후 도 5를 참조하여 설명하기로 한다.
전자 장치(100)는 버전 파일에 기초하여 글로벌 모델의 버전을 확인할 수 있다. 이때, 버전 파일에 기초하여 수신된 글로벌 모델이 최신 버전의 글로벌 모델이 아니라고 판단된 경우(즉, 전자 장치(100)에 저장된 로컬 모델에 비해 수신된 글로벌 모델의 버전이 같거나 낮다고 판단된 경우), 전자 장치(100)는 수신된 글로벌 모델의 버전 파일을 무시할 수 있다.
버전 파일에 기초하여 수신된 글로벌 모델이 최신 버전의 글로벌 모델이라고 판단된 경우, 전자 장치(100)는 버전 파일에 기초하여 서버(50)로부터 글로벌 모델을 다운로드할 수 있다.
전자 장치(100)는 다운로드한 글로벌 모델과 데이터 셋에 기초하여 글로벌 모델에 대한 학습을 수행할 수 있다. 이때, 데이터 셋은 전자 장치(100) 내에 저장된 개인 정보(예로, 건강 정보, 사용자가 촬영한 사진 정보 등)를 포함하는 데이터 셋일 수 있으나, 이는 일 실시예에 불과할 뿐, 전자 장치(100)와 연결된 외부 장치에 저장된 데이터 셋일 수 있다.
전자 장치(100)는 학습을 통해 학습된 글로벌 모델을 획득할 수 있다. 이때, 학습된 글로벌 모델은 업데이트된 파라미터(예로, 가중치)를 포함할 수 있다.
전자 장치(100)는 버전 파일에 기초하여 평가 데이터를 획득할 수 있다. 이때, 평가 데이터는 학습된 글로벌 모델을 평가하기 위한 데이터로서, 글로벌 모델 또는 학습된 글로벌 모델로부터 결과값을 획득하기 위한 입력 데이터 및 입력 데이터에 대응되는 정답 데이터 중 적어도 하나를 포함할 수 있다.
전자 장치(100)는 평가 데이터에 기초하여 학습된 글로벌 모델을 평가할 수 있다. 즉, 전자 장치(100)는 평가 데이터를 글로벌 모델에 입력하여 출력된 결과값에 대한 제1 정확도를 획득하고, 평가 데이터를 학습된 글로벌 모델에 입력하여 출력된 결과값에 대한 제2 정확도를 획득하며, 제1 정확도와 제2 정확도를 비교하여 학습된 글로벌 모델을 평가할 수 있다.
학습된 글로벌 모델에 대한 평가 후, 전자 장치(100)는 버전 파일을 업데이트할 수 있다. 구체적으로, 전자 장치(100)는 버전 파일에 업데이트된 파라미터에 대한 정보를 반영하여 버전 파일을 업데이트할 수 있다.
전자 장치(100)는 업데이트된 버전 파일을 서버(50)로 전송할 수 있다. 이때, 전자 장치(100)는 버전 파일의 보안성을 높이기 위해, 업데이트된 버전 파일을 SSL/TLS(Secured Sockets Layer/Transport Layer Security) 인코딩을 수행하여 업데이트된 버전 파일을 암호화하여 서버(50)로 전송할 수 있다.
서버(50)는 기 저장된 글로벌 모델과 복수의 전자 장치로부터 수신된 파라미터에 대한 정보에 기초하여 업데이트된 글로벌 모델을 획득할 수 있다. 즉, 서버(50)는 복수의 전자 장치에서 획득된 업데이트된 파라미터에 기초하여 업데이트된 글로벌 모델을 획득할 수 있다.
서버(50)는 업데이트된 글로벌 모델에 기초하여 업데이트된 버전 파일을 획득할 수 있다. 즉, 서버(50)는 새로운 버전의 글로벌 모델에 대한 버전 파일을 획득할 수 있다.
서버(50)는 새로운 버전의 글로벌 모델에 대한 버전 파일을 다시 복수의 전자 장치로 배포하여 글로벌 모델에 대한 연합 학습을 수행할 수 있다.
상술한 바와 같이, 전자 장치(100) 내에서 글로벌 모델을 직접 학습하고 평가하며 평가 결과에 기초하여 업데이트된 글로벌 모델에 대한 정보를 서버(50)로 전송함으로써, 서버(50)가 직접 글로벌 모델을 업데이트하는 과정에서 발생할 수 있는 데이터 훼손 문제를 극복할 수 있으며, 평가 결과가 낮은 경우 학습된 글로벌 모델에 대한 정보를 서버(50)로 전달하지 않을 수 있으며, 외부 공격자가 서버(50)의 평가 데이터 샘플을 조정하여 의도치 않는 결과를 발생시키는 문제를 극복할 수 있게 된다.
도 2는 본 개시의 일 실시예에 따른, 전자 장치의 구성을 나타내는 블록도이다. 도 2에 도시된 바와 같이, 전자 장치(100)는 통신 인터페이스(110), 메모리(120) 및 적어도 하나의 프로세서(130)를 포함할 수 있다. 이때, 한편, 도 1에 도시된 전자 장치(100)는 스마트 폰, 태블릿 PC, 노트북 PC 등과 같은 사용자 단말일 수 있으나 이는 일 실시예에 불과할 뿐, 스마트 TV, 가전 장치, IoT 장치 등과 같은 다양한 장치 등으로 구현될 수 있다. 또한, 도 2에 도시된 전자 장치(100)의 구성은 일 실시예에 불과할 뿐, 전자 장치(100)의 유형에 따라 일부 구성이 추가되거나 삭제될 수 있음은 물론이다.
통신 인터페이스(110)는 적어도 하나의 회로를 포함하며 다양한 유형의 외부 기기나 서버와 통신을 수행할 수 있다. 통신 인터페이스(110)는 BLE(Bluetooth Low Energy) 모듈, 와이파이 통신 모듈, 셀룰러 통신모듈, 3G(3세대) 이동통신 모듈, 4G(4세대) 이동통신 모듈, 4세대 LTE(Long Term Evolution) 통신 모듈, 5G(5세대) 이동통신 모듈 중 적어도 하나를 포함할 수 있다.
특히, 통신 인터페이스(110)는 외부 서버(50)로부터 글로벌 모델의 버전 파일을 수신할 수 있다. 또한, 통신 인터페이스(110)는 서버(50)로 학습된 글로벌 모델에 대한 정보를 포함하는 업데이트된 버전 파일을 전송할 수 있다.
또한, 통신 인터페이스(110)는 버전 파일에 기록된 정보에 기초하여 글로벌 모델을 다운로드하거나 평가 데이터를 다운로드할 수 있다.
메모리(120)는 전자 장치(100)의 구성요소들의 전반적인 동작을 제어하기 위한 운영체제(OS: Operating System) 및 전자 장치(100)의 구성요소와 관련된 인스트럭션 또는 데이터를 저장할 수 있다. 특히, 메모리(120)는 서버(50)와 연동하여 글로벌 모델에 대한 연합 학습을 수행하기 위해, 도 3에 도시된 바와 같이, 버전 파일 수신 모듈(310), 버전 체크 모듈(320), 글로벌 모델 다운로드 모듈(330), 데이터 셋 획득 모듈(340), 학습 모듈(350), 평가 모듈(360), 버전 파일 업데이트 모듈(340) 및 버전 파일 전송 모듈(345)을 포함할 수 있다. 특히, 글로벌 모델에 대한 연합 학습을 수행하기 위한 기능이 실행되면, 전자 장치(100)는 비휘발성 메모리에 저장되어 있는 서버(50)와 연동하여 글로벌 모델에 대한 연합 학습을 수행하기 위한 다양한 모듈에 대한 데이터를 휘발성 메모리로 로딩(loading)할 수 있다. 여기서, 로딩이란 적어도 하나의 프로세서(130)가 액세스할 수 있도록 비휘발성 메모리에 저장된 데이터를 휘발성 메모리에 불러들여 저장하는 동작을 의미한다.
한편, 메모리(120)는 비휘발성 메모리(ex: 하드 디스크, SSD(Solid state drive), 플래시 메모리), 휘발성 메모리(프로세서(111) 내의 메모리도 포함할 수 있음.) 등으로 구현될 수 있다.
또한, 메모리(120)는 로컬 모델에 대한 정보를 저장할 수 있다. 이때, 로컬 모델은 이전 버전의 글로벌 모델에 대해 전자 장치(100)가 학습을 수행하여 획득된 신경망 모델일 수 있다.
또한, 메모리(120)는 데이터 셋을 저장할 수 있다. 데이터 셋은 글로벌 모델을 학습시키기 위한 데이터 셋으로서, 개인 정보를 포함할 수 있다.
적어도 하나의 프로세서(130)는 메모리(120)에 저장된 적어도 하나의 인스트럭션에 따라 전자 장치(100)를 제어할 수 있다.
특히, 적어도 하나의 프로세서(130)는 하나 이상의 프로세서를 포함할 수 있다. 구체적으로, 하나 이상의 프로세서는 CPU (Central Processing Unit), GPU (Graphics Processing Unit), APU (Accelerated Processing Unit), MIC (Many Integrated Core), DSP (Digital Signal Processor), NPU (Neural Processing Unit), 하드웨어 가속기 또는 머신 러닝 가속기 중 하나 이상을 포함할 수 있다. 하나 이상의 프로세서는 전자 장치의 다른 구성요소 중 하나 또는 임의의 조합을 제어할 수 있으며, 통신에 관한 동작 또는 데이터 처리를 수행할 수 있다. 하나 이상의 프로세서는 메모리에 저장된 하나 이상의 프로그램 또는 명령어(instruction)을 실행할 수 있다. 예를 들어, 하나 이상의 프로세서는 메모리에 저장된 하나 이상의 명령어를 실행함으로써, 본 개시의 일 실시 예에 따른 방법을 수행할 수 있다.
본 개시의 일 실시예에 따른 방법이 복수의 동작을 포함하는 경우, 복수의 동작은 하나의 프로세서에 의해 수행될 수도 있고, 복수의 프로세서에 의해 수행될 수도 있다. 즉, 일 실시예에 따른 방법에 의해 제 1 동작, 제 2 동작, 제 3 동작이 수행될 때, 제 1 동작, 제 2 동작, 및 제 3 동작 모두 제 1 프로세서에 의해 수행될 수도 있고, 제 1 동작 및 제 2 동작은 제 1 프로세서(예를 들어, 범용 프로세서)에 의해 수행되고 제 3 동작은 제 2 프로세서(예를 들어, 인공지능 전용 프로세서)에 의해 수행될 수도 있다. 예를 들어, 글로벌 모델의 버전 확인 동작 및 학습된 글로벌 모델의 평가 동작은 제1 프로세서(예로, CPU)에 의해 수행될 수 있으며, 글로벌 모델에 대한 학습 동작은 제2 프로세서(예로, GPU 혹은 NPU)에 의해 수행될 수 있다.
하나 이상의 프로세서는 하나의 코어를 포함하는 단일 코어 프로세서(single core processor)로 구현될 수도 있고, 복수의 코어(예를 들어, 동종 멀티 코어 또는 이종 멀티 코어)를 포함하는 하나 이상의 멀티 코어 프로세서(multicore processor)로 구현될 수도 있다. 하나 이상의 프로세서가 멀티 코어 프로세서로 구현되는 경우, 멀티 코어 프로세서에 포함된 복수의 코어 각각은 캐시 메모리, 온 칩(On-chip) 메모리와 같은 프로세서 내부 메모리를 포함할 수 있으며, 복수의 코어에 의해 공유되는 공통 캐시가 멀티 코어 프로세서에 포함될 수 있다. 또한, 멀티 코어 프로세서에 포함된 복수의 코어 각각(또는 복수의 코어 중 일부)은 독립적으로 본 개시의 일 실시예에 따른 방법을 구현하기 위한 프로그램 명령을 판독하여 수행할 수도 있고, 복수의 코어 전체(또는 일부)가 연계되어 본 개시의 일 실시예에 따른 방법을 구현하기 위한 프로그램 명령을 판독하여 수행할 수도 있다.
본 개시의 일 실시예에 따른 방법이 복수의 동작을 포함하는 경우, 복수의 동작은 멀티 코어 프로세서에 포함된 복수의 코어 중 하나의 코어에 의해 수행될 수도 있고, 복수의 코어에 의해 수행될 수도 있다. 예를 들어, 일 실시예에 따른 방법에 의해 제 1 동작, 제 2 동작, 및 제 3 동작이 수행될 때, 제 1 동작, 제2 동작, 및 제3 동작 모두 멀티 코어 프로세서에 포함된 제 1 코어에 의해 수행될 수도 있고, 제 1 동작 및 제 2 동작은 멀티 코어 프로세서에 포함된 제 1 코어에 의해 수행되고 제 3 동작은 멀티 코어 프로세서에 포함된 제 2 코어에 의해 수행될 수도 있다.
본 개시의 실시예들에서, 프로세서는 하나 이상의 프로세서 및 기타 전자 부품들이 집적된 시스템 온 칩(SoC), 단일 코어 프로세서, 멀티 코어 프로세서, 또는 단일 코어 프로세서 또는 멀티 코어 프로세서에 포함된 코어를 의미할 수 있으며, 여기서 코어는 CPU, GPU, APU, MIC, DSP, NPU, 하드웨어 가속기 또는 기계 학습 가속기 등으로 구현될 수 있으나, 본 개시의 실시예들이 이에 한정되는 것은 아니다
특히, 적어도 하나의 프로세서(130)는 통신 인터페이스(110)를 통해 서버(50)로부터 글로벌 모델에 대한 정보 및 평가 데이터에 대한 정보를 수신한다. 그리고, 적어도 하나의 프로세서(130)는 글로벌 모델을 학습하기 위한 데이터 셋을 획득한다. 그리고, 적어도 하나의 프로세서(130)는 데이터 셋을 이용하여 글로벌 모델을 학습시킨다. 그리고, 적어도 하나의 프로세서(130)는 학습된 글로벌 모델에 평가 데이터를 입력하여 학습된 글로벌 모델을 평가한다. 그리고, 적어도 하나의 프로세서(130)는 평가 결과에 기초하여 학습된 글로벌 모델에 대한 정보를 서버(50)로 전송할지 여부를 결정한다.
특히, 적어도 하나의 프로세서(130)는 평가 데이터를 글로벌 모델에 입력하여 출력된 결과값에 대한 제1 정확도를 획득할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 평가 데이터를 학습된 글로벌 모델에 입력하여 출력된 결과값에 대한 제2 정확도를 획득할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 제1 정확도와 상기 제2 정확도를 비교하여 학습된 글로벌 모델을 평가할 수 있다. 즉, 제2 정확도가 제1 정확도보다 높은 것으로 판단되면, 적어도 하나의 프로세서(130)는 학습된 글로벌 모델에 대한 정보를 서버(50)로 전송할지 여부를 결정할 수 있다.
한편, 글로벌 모델에 대한 정보는, 글로벌 모델의 버전 정보 및 글로벌 모델을 다운로드할 수 있는 주소 정보를 포함할 수 있다. 이때, 적어도 하나의 프로세서(130)는 전자 장치(100)에 저장된 로컬 모델의 버전 정보와 글로벌 모델의 버전 정보를 비교할 수 있다. 글로벌 모델의 버전이 로컬 모델의 버전보다 높은 것으로 판단되면, 적어도 하나의 프로세서(130)는 글로벌 모델을 다운로드할 수 있는 주소 정보에 기초하여 통신 인터페이스(110)를 통해 글로벌 모델을 다운로드할 수 있다.
또한, 적어도 하나의 프로세서(130)는 통신 인터페이스(110)를 통해 서버(50)로부터 글로벌 모델에 대한 정보 및 평가 데이터에 대한 정보를 포함하는 버전 파일을 수신할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 전자 장치(100)에 기 저장된 데이터 셋에 대한 주소 정보를 획득할 수 있다. 이때, 적어도 하나의 프로세서(130)는 획득된 데이터 셋에 대한 주소 정보를 버전 파일에 반영할 수 있다.
또한, 적어도 하나의 프로세서(130)는 평가 결과에 기초하여 학습된 글로벌 모델에 대한 파라미터 정보를 포함하도록 버전 파일을 업데이트할 수 있다. 그리고, 적어도 하나의 프로세서(130)는 업데이트된 버전 파일을 서버(50)로 전송하도록 통신 인터페이스(110)를 제어할 수 있다.
또한, 적어도 하나의 프로세서(130)는 버전 파일에 반영된 데이터 셋에 대한 주소 정보를 삭제하여 서버(50)로 전송하도록 통신 인터페이스(110)를 제어할 수 있다.
또한, 적어도 하나의 프로세서(130)는 학습된 글로벌 모델에 대한 정보를 SSL/TLS(Secured Sockets Layer/Transport Layer Security) 인코딩을 수행하여 서버(50)로 전송할 수 있다.
또한, 적어도 하나의 프로세서(130)는 학습된 글로벌 모델을 로컬 모델로 메모리(120)에 저장할 수 있다.
도 3은 본 개시의 일 실시예에 따른, 연합 학습을 수행하기 위한 전자 장치 및 서버의 구성을 도시한 블럭도이다. 전자 장치(100)는 도 3에 도시된 바와 같이, 버전 파일 수신 모듈(310), 버전 체크 모듈(320), 글로벌 모델 다운로드 모듈(330), 데이터 셋 획득 모듈(340), 학습 모듈(350), 평가 모듈(360), 버전 파일 업데이트 모듈(340) 및 버전 파일 전송 모듈(345)을 포함할 수 있다. 또한, 서버(50)는 도 3에 도시된 바와 같이, 버전 파일 수신 모듈(350), 버전 체크 모듈(355), 글로벌 모델 업데이트 모듈(360), 버전 파일 생성 모듈(365) 및 버전 파일 전송 모듈(370)을 포함할 수 있다.
버전 파일 수신 모듈(310)은 서버(50)의 버전 파일 생성 모듈(365)에 의해 생성된 버전 파일을 수신할 수 있다. 이때, 버전 파일은 글로벌 모델에 대한 정보 및 평가 데이터에 대한 정보를 포함할 수 있다. 글로벌 모델에 대한 정보는 글로벌 모델의 버전 정보 및 글로벌 모델을 다운로드할 수 있는 주소 정보를 포함할 수 있다. 또한, 평가 데이터에 대한 정보는 평가 데이터를 다운로드할 수 있는 주소 정보를 포함할 수 있다. 이때, 글로벌 모델은 서버(50)에 의해 생성된(또는 업데이트된) 신경망 모델이며, 평가 데이터는 글로벌 모델의 정확도를 평가하기 위한 테스트 데이터를 의미할 수 있다. 구체적으로, 평가 데이터는 글로벌 모델 또는 학습된 글로벌 모델로부터 결과값을 획득하기 위한 입력 데이터 및 입력 데이터에 대응되는 정답 데이터 중 적어도 하나를 포함할 수 있다.
한편, 버전 파일은 JSON(JavaScript Object Notation) 형식으로 작성될 수 있으나, 이는 일 실시예에 불과할 뿐, DBMS(DataBase Management System), CSV(Creating Shared Value) 등과 같이 다양한 방법으로 구현될 수 있다.
버전 체크 모듈(315)은 버전 파일 수신 모듈(310)이 수신한 버전 파일에 포함된 글로벌 모델의 버전 정보를 식별할 수 있다. 그리고, 버전 체크 모듈(315)은 전자 장치(100)에 저장된 로컬 모델의 버전 정보와 버전 파일에 대응되는 글로벌 모델의 버전 정보를 비교할 수 있다.
구체적으로, 버전 체크 모듈(315)은 버전 파일에 대응되는 글로벌 모델의 버전이 전자 장치(100)에 저장된 로컬 모델의 버전보다 높은 것인지(혹은 최신 버전인지) 여부를 판단할 수 있다.
글로벌 모델의 버전이 로컬 모델의 버전보다 낮거나 같다면(즉, 글로벌 모델의 버전이 로컬 모델에 비해 최신이 아닌 경우), 버전 체크 모듈(315)은 수신된 버전 파일을 무시할 수 있다. 즉, 버전 체크 모듈(315)은 수신된 버전 파일을 삭제할 수 있다.
글로벌 모델의 버전이 로컬 모델의 버전보다 높으면(즉, 글로벌 모델의 버전이 로컬 모델보다 최신인 경우), 글로벌 모델 다운로드 모듈(320)은 서버(50)(혹은 서버(50)와 연결된 다른 데이터베이스)로부터 글로벌 모델을 다운로드할 수 있다. 특히, 글로벌 모델 다운로드 모듈(320)은 버전 파일에 포함된 글로벌 모델을 다운로드할 수 있는 주소 정보에 기초하여 글로벌 모델을 다운로드할 수 있다.
데이터 셋 획득 모듈(325)은 글로벌 모델을 학습하기 위한 데이터 셋을 획득할 수 있다. 이때, 데이터 셋은 전자 장치(100)에 저장된 데이터 셋일 수 있으나, 이는 일 실시예에 불과할 뿐, 전자 장치(100)와 연결된 외부 장치(예로, 사용자 계정으로 로그인할 수 있는 클라우드 서버 등)에 저장된 데이터 셋일 수 있다. 일 실시예로, 데이터 셋은 개인 정보를 포함하는 프라이빗 데이터들의 데이터 셋일 수 있다.
또한, 데이터 셋 획득 모듈(325)은 현재 글로벌 모델을 학습하기 위해 획득된 데이터 셋이 이전 버전을 학습할 때 이용된 데이터 셋에 비해 갱신된 데이터 셋인지 여부를 판단할 수 있다. 현재 글로벌 모델을 학습하기 위해 획득된 데이터 셋이 이전 버전을 학습할 때 이용된 데이터 셋에 비해 갱신된 데이터인 경우, 데이터 셋 획득 모듈(325)은 학습 모듈(330)로 데이터 셋을 출력할 수 있다. 그러나, 현재 글로벌 모델을 학습하기 위해 획득된 데이터 셋이 이전 버전을 학습할 때 이용된 데이터 셋과 동일한 데이터 셋인 경우, 데이터 셋 획득 모듈(325)은 학습 모듈(330)로 데이터 셋을 출력하지 않고, 다음 버전의 버전 파일을 수신되거나 갱신된 데이터 셋이 획득될 때까지 대기할 수 있다.
한편, 데이터 셋 획득 모듈(325)은 획득한 데이터 셋에 대한 정보를 버전 파일에 반영할 수 있다. 구체적으로, 데이터 셋 획득 모듈(325)은 버전 파일 상에 획득한 데이터 셋이 저장된 주소 정보를 반영할 수 있다.
학습 모듈(330)은 글로벌 모델 다운로드 모듈(320)이 다운로드한 글로벌 모델 및 데이터 셋 획득 모듈(325)이 획득한 데이터 셋을 이용하여 글로벌 모델을 학습시킬 수 있다. 이때, 학습 모듈(330)은 데이터 셋에 포함된 학습 데이터들에 학습 알고리즘을 적용함으로써, 원하는 특성의 기정의된 신경망 모델(또는 동작 규칙)을 생성하도록 신경망 모델을 학습시킬 수 있다.
이때, 신경망 모델은, 복수의 신경망 레이어들로 구성될 수 있다. 적어도 하나의 레이어는 적어도 하나의 가중치(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 적어도 하나의 정의된 연산을 통해 레이어의 연산을 수행한다. 신경망의 예로는, CNN (Convolutional Neural Network), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks), Transformer가 있으며, 본 개시에서의 신경망은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다. 또한, 학습 알고리즘은, 다수의 학습 데이터들을 이용하여 소정의 대상 기기(예컨대, 전자 장치)을 훈련시켜 소정의 대상 기기 스스로 결정을 내리거나 예측을 할 수 있도록 하는 방법이다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으며, 본 개시에서의 학습 알고리즘은 명시한 경우를 제외하고 전술한 예에 한정되지 않는다.
평가 모듈(335)은 학습 모듈(330)에 의해 학습된 글로벌 모델에 대해 평가를 수행할 수 있다. 구체적으로, 평가 모듈(335)은 버전 파일에 포함된 평가 데이터를 다운로드할 수 있는 주소 정보에 기초하여 평가 데이터를 획득할 수 있다. 이때, 평가 데이터는 글로벌 모델로부터 결과값을 획득하기 위하여 글로벌 모델에 입력하기 위한 입력 데이터와 입력 데이터에 대응되는 정답 데이터(또는 라벨 데이터)를 포함할 수 있다. 예를 들어, 글로벌 모델이 이미지 내의 오브젝트를 인식하기 위한 오브젝트 인식 모델인 경우, 평가 데이터는 입력 데이터로서 이미지와 함께 정답 데이터로서 이미지에 포함된 오브젝트에 대한 정보를 포함할 수 있다.
그리고, 평가 모듈(335)은 평가 데이터에 기초하여 (학습되기 전) 글로벌 모델 및 학습된 글로벌 모델의 정확도를 평가할 수 있다. 이때, 평가 모듈(335)은 평가 데이터 중 입력 데이터를 글로벌 모델 또는 학습된 글로벌 모델에 입력하여 획득된 결과값과 평가 데이터에 포함된 정답 데이터를 비교하여 글로벌 모델 및 학습된 글로벌 모델의 정확도를 산출할 수 있다.
구체적으로, 평가 모듈(335)은 평가 데이터를 글로벌 모델에 입력하여 출력된 결과값을 획득할 수 있다. 그리고, 평가 모듈(335)은 획득된 결과값과 정답 데이터를 비교하여 학습 전 글로벌 모델로부터 획득된 결과값에 대한 제1 정확도를 획득할 수 있다. 또한, 평가 모듈(335)은 평가 데이터를 학습된 글로벌 모델에 입력하여 출력된 결과값을 획득할 수 있다. 그리고, 평가 모듈(335)은 획득된 결과값과 정답 데이터를 비교하여 학습된 글로벌 모델로부터 획득된 결과값에 대한 제2 정확도를 획득할 수 있다. 그리고, 평가 모듈(335)은 제1 정확도와 제2 정확도를 비교하여 학습된 글로벌 모델을 평가할 수 있다. 평가 모듈(335)은 평가 결과를 기초로 학습된 글로벌 모델에 대한 정보를 서버(50)로 전송할지 여부를 결정할 수 있다. 구체적으로, 제2 정확도가 제1 정확도보다 높은 것으로 판단되면, 평가 모듈(335)은 학습된 글로벌 모델에 대한 정보를 서버(50)로 전송할 것을 결정할 수 있다. 그러나, 제2 정확도가 제1 정확도보다 낮거나 같은 것으로 판단되면, 평가 모듈(335)은 학습된 글로벌 모델에 대한 정보를 서버(50)로 전송하지 않을 것을 결정할 수 있다.
제2 정확도가 제1 정확도보다 높은 것으로 판단되면, 버전 파일 업데이트 모듈(340)은 학습된 글로벌 모델에 대한 정보를 버전 파일에 반영하여 버전 파일을 업데이트할 수 있다. 구체적으로, 버전 파일 업데이트 모듈(340)은 학습된 글로벌 모델에 포함된 파라미터(예로, 가중치 등)에 대한 정보를 버전 파일에 반영하여 버전 파일을 업데이트할 수 있다. 이때, 버전 파일 업데이트 모듈(340)은 글로벌 모델에 포함된 복수의 파라미터 중 업데이트된 파라미터에 대한 정보를 버전 파일에 반영할 수 있으나, 이는 일 실시예에 불과할 뿐, 학습된 글로벌 모델에 포함된 복수의 파라미터에 대한 정보를 모두 버전 파일에 반영할 수 있음은 물론이다.
또한, 본 개시의 일 실시예로, 버전 파일 업데이트 모듈(340)은 개인 정보를 보호하기 위하여 버전 파일에 반영된 데이터 셋을 삭제하도록 버전 파일을 업데이트할 수 있다.
한편, 전자 장치(100)는 학습된 글로벌 모델을 로컬 모델로 저장할 수 있다. 즉, 전자 장치(100)는 기 저장된 로컬 모델을 학습된 글로벌 모델로 업데이트할 수 있다. 따라서, 전자 장치(100)는 학습된 글로벌 모델을 로컬 모델로 이용하여 추론(inference) 동작을 수행할 수 있다.
버전 파일 전송 모듈(345)은 업데이트된 버전 파일을 서버(50)로 전송할 수 있다. 이때, 버전 파일 전송 모듈(345)은 SSL/TLS(Secured Sockets Layer/Transport Layer Security) 인코딩 과정을 통해 업데이트 버전 파일을 인코딩할 수 있다. 이때, SSL/TLS 인코딩은 암호화에 이용되는 프로토콜로서, 대칭 키 알고리즘 또는 비대칭 키 알고리즘을 통해 데이터를 암호화할 수 있다.
즉, 버전 파일 전송 모듈(345)은 SSL/TLS 인코딩 과정을 통해 업데이트된 버전 파일을 암호화할 수 있으며, 업데이트된 버전 파일을 압축할 수 있다. 이에 의해, 개인 정보가 포함된 업데이트된 버전 파일의 보안성이 향상될 수 있으며, 네트워크 비용을 낮추고 업데이트된 버전 파일의 빠른 전송이 가능해 질 수 있게 된다.
서버(50)의 버전 파일 수신 모듈(350)은 전자 장치(100)로부터 전송된 업데이트된 버전 파일을 수신할 수 있다. 이때, 업데이트 버전 파일은 앞서 설명한 바와 같이, SSL/TLS 인코딩을 통해 암호화될 수 있다. 버전 파일 수신 모듈(350)은 SSL/TLS 디코딩 과정을 통해 암호화된 업데이트된 버전 파일을 복호화할 수 있다.
버전 체크 모듈(355)은 업데이트된 버전 파일에 기록된 학습된 글로벌 모델에 대한 버전 정보를 식별할 수 있다. 이때, 버전 체크 모듈(355)은 기 전송된 버전 파일의 개수 및 학습된 글로벌 모델에 대한 버전 정보 중 적어도 하나에 기초하여 전자 장치(100)로부터 수신된 학습된 글로벌 모델을 이용할지 여부를 결정할 수 있다.
구체적으로, 서버(50)는 글로벌 모델의 연합학습을 수행하기 위하여 기설정된 개수의 전자 장치로 동일한 버전의 글로벌 모델에 대한 버전 파일을 전송할 수 있다. 즉, 서버(50) 기설정된 개수 중 임계 개수까지의 전자 장치로부터 수신된 업데이트된 버전 파일을 이용하여 연합학습을 수행할 수 있다. 따라서, 버전 체크 모듈(355)은 전자 장치(100)로부터 수신된 업데이트된 버전 파일이 임계 개수를 초과하였는지 여부를 판단할 수 있다. 예로, 100개의 전자 장치로 글로벌 모델에 대한 버전 파일을 전송한 경우, 버전 체크 모듈(355)은 전자 장치(100)로부터 수신된 업데이트된 버전 파일과 동일한 버전의 버전 파일이 임계 개수(예로, 80)를 초과하였는지 여부를 판단할 수 있다. 이미, 80개의 동일한 버전의 버전 파일이 이미 수신된 경우, 버전 체크 모듈(355)은 전자 장치(100)로부터 수신된 업데이트된 버전 파일을 탈락시키고, 업데이트된 버전 파일을 이용하여 연합학습을 수행하지 않을 수 있다. 그러나, 80개 미만의 동일한 버전의 버전 파일이 수신된 경우, 버전 체크 모듈(355)은 전자 장치(100)로부터 수신된 업데이트된 버전 파일을 이용하여 연합학습을 수행하기 위해 글로벌 모델 업데이트 모듈(360)에 버전 파일을 출력할 수 있다.
또한, 버전 체크 모듈(355)은 현재 수신된 버전 파일에 기록된 버전이 운영자가 지정한 버전 이전의 버전인지 여부를 판단할 수 있다. 예를 들어, 현재 수신된 버전 파일에 기록된 버전이 v13이고, 사용자가 설정한 버전이 v11인 경우, 버전 체크 모듈(355)은 전자 장치(100)로부터 수신된 업데이트된 버전 파일을 이용하여 연합학습을 수행하기 위해 글로벌 모델 업데이트 모듈(360)에 버전 파일을 출력할 수 있다. 그러나, 현재 수신된 버전 파일에 기록된 버전이 v10이고, 사용자가 설정한 버전이 v11인 경우, 버전 체크 모듈(355)은 전자 장치(100)로부터 수신된 업데이트된 버전 파일을 탈락시키고, 업데이트된 버전 파일을 이용하여 연합학습을 수행하지 않을 수 있다. 즉, 서버(50)는 운영자가 설정한 버전 이내의 버전에 대한 버전 파일만을 이용하여 연합학습을 수행할 수 있다.
글로벌 모델 업데이트 모듈(360)은 업데이트된 버전 파일에 기록된 학습된 글로벌 모델에 대한 정보에 기초하여 연합학습을 수행할 수 있다. 이때, 연합학습은 복수의 전자 장치로부터 수신된 학습된 글로벌 모델에 대한 정보에 기초하여 수행될 수 있다. 구체적으로, 글로벌 모델 업데이트 모듈(360)은 복수의 전자 장치로부터 수신된 학습된 글로벌 모델에 대한 파라미터 정보에 기초하여 파라미터 별로 대표값(예로, 평균값, 최빈값 등)을 획득할 수 있다. 그리고, 글로벌 모델 업데이트 모듈(360)은 파라미터 별 대표값을 이용하여 글로벌 모델을 업데이트할 수 있다. 그리고, 글로벌 모델 업데이트 모듈(360)은 업데이트된 글로벌 모델을 기설정된 저장 공간에 저장할 수 있다.
버전 파일 생성 모듈(365)은 업데이트된 글로벌 모델에 기초하여 새로운 버전 파일을 생성할 수 있다. 구체적으로, 버전 파일 생성 모듈(365)은 업데이트된 글로벌 모델의 버전에 대한 정보와 업데이트된 글로벌 모델을 다운로드할 수 있는 주소 정보를 포함하도록 새로운 버전 정보를 생성할 수 있다.
버전 파일 전송 모듈(370)은 업데이트된 글로벌 모델에 대한 버전 파일을 복수의 전자 장치로 전송할 수 있다. 일 실시예로, 버전 파일 전송 모듈(370)은 SSL/TLS(Secured Sockets Layer/Transport Layer Security) 인코딩 과정을 통해 업데이트된 글로벌 모델에 대한 버전 파일을 인코딩하여 복수의 전자 장치로 전송할 수 있다.
상술한 바와 같이, 전자 장치(100)가 직접 글로벌 모델을 학습하고 학습된 파라미터를 서버(50)에 전달함으로써, 글로벌 모델 업데이트 과정에 발생할 수 있는 글로벌 모델의 훼손을 방지할 수 있게 된다. 뿐만 아니라, 전자 장치(100) 내에서 데이터 셋을 직접 관리하고 직접 학습된 글로벌 모델에 대한 평가를 수행함으로써, 학습 데이터 및 평가 데이터의 훼손을 방지할 수 있게 된다. 또한, 서버(50)가 아닌 전자 장치(100) 내에서 글로벌 모델의 학습 및 평가가 이루어지므로, 서버 구축 비용을 낮출 수 있게 된다.
이하에서는 도 4 내지 도 12를 참조하여 전자 장치(100)와 서버(50)가 서로 연동하여 연합 학습을 수행하는 방법에 대해 더욱 구체적으로 설명하기로 한다.
도 4는 본 개시의 일 실시예에 따른, 버전 파일을 이용하여 연합 학습을 수행하는 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
전자 장치(100)는 서버(50)로부터 글로벌 모델에 대한 버전 파일을 수신할 수 잇다(S405). 이때, 전자 장치(100)는 서버(50)로부터 제1 버전의 글로벌 모델에 대한 버전 파일을 수신할 수 있다.
이때, 버전 파일은 글로벌 모델에 대한 정보 및 평가 데이터에 대한 정보를 포함하는 파일이다. 버전 파일에 대해서는 도 5를 참조하여 더욱 상세히 설명하기로 한다.
버전 파일에는 도 5에 도시된 바와 같이, 버전 파일의 포맷 정보(510), 글로벌 모델의 현재 버전 정보(520), 글로벌 모델을 다운로드할 수 있는 주소 정보(530), 평가 데이터를 다운로드할 수 있는 주소 정보(540), 데이터 셋을 저장하는 주소 정보(550), 학습된 글로벌 모델의 파라미터에 대한 정보(560)를 포함할 수 있다. 버전 파일의 포맷 정보(510)는 현재 파일의 포맷 명칭에 대한 정보를 포함할 수 있다. 글로벌 모델의 현재 버전 정보(520)는 현재 버전 파일에 대응되는 글로벌 모델의 현재 버전에 대한 정보를 포함할 수 있다. 글로벌 모델을 다운로드할 수 있는 주소 정보(530)는 서버(50) 혹은 서버(50)와 연결된 외부 데이터베이스에 저장된 글로벌 모델의 주소 정보를 포함할 수 있다. 평가 데이터를 다운로드할 수 있는 주소 정보(540)는 글로벌 모델을 평가할 수 있는 평가 데이터로서, 글로벌 모델의 정확도를 평가할 수 있는 데이터 셋을 저장하는 주소 정보를 포함할 수 있다. 데이터 셋을 저장하는 주소 정보(550)는 전자 장치에 저장된 글로벌 모델을 학습시키기 위한 데이터 셋의 주소 정보를 포함할 수 있다. 학습된 글로벌 모델의 파라미터에 대한 정보(560)는 데이터 셋에 의해 학습된 글로벌 모델의 파라미터에 대한 정보를 포함할 수 있으며, 이때, 파라미터의 포맷은 JSON,DBMS,CSV 등으로 작성될 수 있다.
한편, 전자 장치(100)가 서버(50)로부터 수신한 버전 파일에는 도 6에 도시된 바와 같이, 데이터 셋을 저장하는 주소 정보(550) 및 학습된 글로벌 모델의 파라미터에 대한 정보(560)를 포함하지 않고, 버전 파일의 포맷 정보(510), 글로벌 모델의 현재 버전 정보(520), 글로벌 모델을 다운로드할 수 있는 주소 정보(530) 및 평가 데이터를 다운로드할 수 있는 주소 정보(540)를 포함할 수 있다.
전자 장치(100)는 수신된 글로벌 모델의 버전이 로컬 모델의 버전보다 높은지 여부를 판단할 수 있다(S410). 즉, 전자 장치(100)는 버전 파일에 기록된 글로벌 모델의 현재 버전 정보(520)에 기초하여 서버(50)로부터 수신된 버전 파일에 대응되는 글로벌 모델의 버전이 전자 장치(100)에 저장된 로컬 모델의 버전보다 높은지 여부를 판단할 수 있다.
수신된 글로벌 모델의 버전이 로컬 모델의 버전보다 높지 않다고 판단되면(S415-N), 전자 장치(100)는 서버(50)로부터 새로운 버전의 버전 파일을 수신하도록 대기할 수 있다. 즉, 수신된 글로벌 모델의 버전이 최신 버전이 아닌 경우, 전자 장치(100)는 수신된 글로벌 모델에 대한 학습 동작을 수행하지 않고 새로운 버전의 버전 파일의 수신을 대기할 수 있다.
수신된 글로벌 모델의 버전이 로컬 모델의 버전보다 높다고 판단되면(S415-Y), 전자 장치(100)는 글로벌 모델을 다운로드할 수 있다(S415). 구체적으로, 전자 장치(100)는 버전 파일에 기록된 글로벌 모델을 다운로드할 수 있는 주소 정보(530)에 기초하여 글로벌 모델을 다운로드할 수 있다.
전자 장치(100)는 갱신된 데이터 셋이 존재하는지 여부를 판단할 수 있다(S420). 구체적으로, 전자 장치(100)는 이전 버전의 글로벌 모델(즉, 현재 전자 장치(100)에 저장된 로컬 모델)을 학습시키기 위한 데이터 셋에 비해 갱신된 데이터 셋이 존재하는지 여부를 판단할 수 있다.
갱신된 데이터 셋이 존재하지 않는 것으로 판단되면(S420-N), 전자 장치(100)는 수신된 글로벌 모델에 대한 학습 동작을 수행하지 않고 대기할 수 있다. 이때, 전자 장치(100)는 새로운 버전의 버전 파일이 수신되거나 데이터 셋이 갱신될 때까지 대기할 수 있다.
갱신된 데이터 셋이 존재하는 것으로 판단되면(S420-Y), 전자 장치(100)는 갱신된 데이터 셋을 획득할 수 있다(S425). 즉, 전자 장치(100)는 전자 장치(100)의 기설정된 영역에 저장되거나 전자 장치(100)와 연결된 외부 장치(예로, 사용자 계정으로 로그인 가능한 클라우드 서버 등)에 저장된 데이터 셋을 액세스하여 데이터 셋을 획득할 수 있다. 예로, 전자 장치(100)는 데이터 셋으로 이미지 폴더 내에 저장된 복수의 개별 이미지를 획득할 수 있다. 전자 장치(100)는 사용하는 ML 프레임워크에 기초하여 concatenation를 수행한 이후 이미지 파일을 로딩하거나 폴더명을 그대로 로딩할 수 있다.
이때, 전자 장치(100)는 도 7에 도시된 바와 같이, 버전 파일의 데이터 셋을 저장하는 주소 정보(550)에 데이터 셋이 저장된 주소에 대한 정보를 반영할 수 있다.
전자 장치(100)는 글로벌 모델 및 데이터 셋을 이용하여 글로벌 모델을 학습시킬 수 있다(S430). 이때, 전자 장치(100)는 다양한 학습 알고리즘을 이용하여 글로벌 모델을 학습시킬 수 있다. 예로, 학습 알고리즘은 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 이는 일 실시예에 불과할 뿐, 다른 방법의 학습 알고리즘을 이용하여 글로벌 모델을 학습시킬 수 있다.
한편, 전자 장치(100)는 학습 알고리즘을 통해 학습된 글로벌 모델을 로컬 모델로 저장할 수 있다. 즉, 전자 장치(100)는 기 저장된 로컬 모델 대신에 학습된 글로벌 모델을 로컬 모델로 저장할 수 있다.
전자 장치(100)는 평가 데이터를 획득할 수 있다(S435). 이때, 평가 데이터는 글로벌 모델로부터 결과값을 획득하기 위하여 글로벌 모델에 입력하기 위한 입력 데이터와 입력 데이터에 대응되는 정답 데이터(또는 라벨 데이터)를 포함할 수 있다.
구체적으로, 전자 장치(100)는 버전 파일의 평가 데이터를 다운로드할 수 있는 주소 정보(540)에 기초하여 서버(50) 혹은 서버(50)와 연결된 데이터베이스에 저장된 평가 데이터를 전자 장치(100)의 기설정된 영역으로 다운로드한 후 압축 해제를 수행할 수 있다. 예로, 사용하는 ML 프레임워크가 Keras의 경우, 전자 장치(100)는 전자 장치(100) 내의 메모리(120) 내의 특정 위치에 평가 데이터 셋을 저장할 수 있다. 압축 해제된 평가 데이터 셋은 데이터 배치 파일 내 기설정된 개수(예로, 10000개)의 이미지 파일(예로, 고양이 사진 등)과 이미지 파일의 라벨 데이터를 포함할 수 있다.
전자 장치(100)는 평가 데이터를 이용하여 학습 전 글로벌 모델의 제1 정확도 및 학습된 글로벌 모델의 제2 정확도를 획득할 수 있다(S440). 즉, 전자 장치(100)는 학습 전 글로벌 모델(즉, 서버(50)로부터 다운로드한 글로벌 모델)에 평가 데이터에 포함된 입력 데이터를 입력하여 획득된 결과값과 평가 데이터에 포함된 정답 데이터를 비교할 수 있다. 전자 장치(100)는 비교 결과에 기초하여 입력 데이터를 입력하여 획득된 결과값에 대한 제1 정확도를 획득할 수 있다.
또한, 전자 장치(100)는 학습된 글로벌 모델에 평가 데이터에 포함된 입력 데이터를 입력하여 획득된 결과값과 평가 데이터에 포함된 정답 데이터를 비교할 수 있다. 전자 장치(100)는 비교 결과에 기초하여 입력 데이터를 입력하여 획득된 결과값에 대한 제2 정확도를 획득할 수 있다.
전자 장치(100)는 제2 정확도가 제1 정확도보다 높은지 여부를 판단할 수 있다(S445). 즉, 전자 장치(100)는 제2 정확도와 제1 정확도를 비교하여 학습된 글로벌 모델을 평가할 수 있으며, 평가 결과를 기초로 학습된 신경망 모델에 대한 정보를 서버(50)로 전송할지 여부를 결정할 수 있다.
제2 정확도가 제1 정확도보다 낮거나 같다고 판단되면(S445-N), 전자 장치(100)는 학습된 글로벌 모델을 서버(50)로 전송하지 않고, 다음 버전의 버전 파일의 수신을 대기할 수 있다. 이때, 전자 장치(100)는 평가 결과와 무관하게 학습된 글로벌 모델을 로컬 모델로서 저장할 수 있으며, 학습된 글로벌 모델을 이용하여 추론 동작을 수행할 수 있다.
제2 정확도가 제1 정확도보다 높다고 판단되면(S445-Y), 전자 장치(100)는 버전 파일 내에 학습된 글로벌 모델에 대한 정보를 삽입하여 버전 파일을 업데이트할 수 있다(S450). 전자 장치(100)는 도 8에 도시된 바와 같이, 학습된 글로벌 모델의 파라미터에 대한 정보(560)에 업데이트된 파라미터에 대한 정보를 삽입하여 버전 파일을 업데이트할 수 있다. 이때, 전자 장치(100)는 업데이트된 파라미터에 대한 정보만을 포함할 수 있으나, 이는 일 실시예에 불과할 뿐, 학습된 글로벌 모델에 포함된 파라미터에 대한 정보를 모두 포함할 수 있다. 또한, 파라미터는 JSON 또는 DBMS, CSV 등과 같은 다양한 포맷으로 작성될 수 있다.
전자 장치(100)는 업데이트된 버전 파일을 암호화하여 서버(50)로 전송할 수 있다(S455). 이때, 전자 장치(100)는 업데이트된 버전 파일에 대해 SSL/TLS 인코딩을 수행하여 업데이트된 버전 파일을 암호화할 수 있다. 그리고, 전자 장치(100)는 암호화된 버전 파일을 서버(50)로 전송할 수 있다.
본 개시의 일 실시예에 따르면, 전자 장치(100)는 업데이트된 버전 파일을 암호화하기 전에 도 9에 도시된 바와 같이, 버전 파일에 기록된 데이터 셋을 저장하는 주소 정보(550)를 삭제할 수 있다. 데이터 셋을 저장하는 주소 정보(550)를 삭제함으로써, 전자 장치(100)는 데이터 셋에 포함된 개인 정보를 보호할 수 있게 된다.
도 10은 본 개시의 일 실시예에 따른, 버전 파일을 이용하여 연합 학습을 수행하는 서버(50)의 제어 방법을 설명하기 위한 흐름도이다.
서버(50)는 전자 장치(100)로부터 암호화된 버전 파일을 수신할 수 있다(S1010). 이때, 암호화된 버전 파일은 도 8 또는 도 9에 도시된 버전 파일을 암호화한 버전 파일일 수 있다. 즉, 암호화된 버전 파일은 학습된 글로벌 모델에 대한 정보를 포함할 수 있다.
서버(50)는 암호화된 버전 파일을 복호화할 수 있다(S1020). 즉, 서버(50)는 SSL/TLS 디코딩을 통해 암호화된 버전 파일을 복호화할 수 있다.
서버(50)는 버전 파일 내의 학습된 글로벌 모델의 버전을 확인할 수 있다(S1030). 즉, 서버(50)는 도 8 또는 도 9에 도시된 바와 같은 버전 파일 내에 글로벌 모델의 현재 버전 정보(520)에 기초하여 학습된 글로벌 모델의 버전을 확인할 수 있다.
서버(50)는 학습된 글로벌 모델의 버전에 기초하여 학습된 글로벌 모델을 이용할지 여부를 판단할 수 있다(S1040).
즉, 서버(50)는 복수의 전자 장치들로부터 수신된 학습된 글로벌 모델을 모두 이용하여 글로벌 모델에 대한 연합 학습을 수행하지 않고, 조건을 만족하는 학습된 글로벌 모델을 이용하여 글로벌 모델에 대한 연합 학습을 수행할 수 있다. 이에 대해서는 도 11을 참조하여 설명하기로 한다.
구체적으로, 서버(50)는 학습된 글로벌 모델의 버전이 운영자가 설정한 버전 이상인지 여부를 판단할 수 있다(S1110). 예를 들어, 운영자가 설정한 버전이 v.10인 경우, 서버(50)는 학습된 글로벌 모델의 버전이 v.10 이상인지 여부를 판단할 수 있다.
학습된 글로벌 모델의 버전이 운영자가 설정한 버전 미만인 경우(S1110-N), 서버(50)는 학습된 글로벌 모델을 탈락시킬 수 있다(S1140). 즉, 서버(50)는 운영자가 설정한 버전보다 낮은 오래된 버전의 학습된 글로벌 모델에 대해서는 연합 학습에 이용하지 않을 수 있다.
학습된 글로벌 모델의 버전이 운영자가 설정한 버전 이상인 경우(S1110-Y), 서버(50)는 기존에 수신된 버전 파일의 개수가 임계값을 초과하였는지 여부를 판단할 수 있다(S1120). 예를 들어, 서버(50)가 100개의 전자 장치로 버전 파일을 송부하고 80개의 학습된 글로벌 모델을 포함하는 버전 파일을 수신하도록 설정된 경우, 서버(50)는 기존에 수신된 버전 파일의 개수가 임계값인 80개를 초과하였는지 여부를 판단할 수 있다.
기존에 수신된 버전 파일의 개수가 임계값을 초과한 경우(S1120-Y), 서버(50)는 학습된 글로벌 모델을 탈락시킬 수 있다(S1150).
기존에 수신된 버전 파일의 개수가 임계값 이하인 경우(S1120-N), 서버(50)는 학습된 글로벌 모델을 이용할 수 있다(S1130). 즉, 서버(50)는 최신 버전의 학습된 글로벌 모델에 대한 정보만을 이용하여 연합 학습을 수행할 수 있다.
한편, 서버(50)는 학습된 글로벌 모델을 이용할지 여부에 대해 수집 기간을 설정할 수 있다. 즉, 서버(50)는 수집 기간(예로, 30일 등)을 벗어난 학습된 글로벌 모델을 연합 학습에 이용하지 않고 탈락시킬 수 있다.
다시 도 10에 대해 설명하면, 서버(50)는 학습된 글로벌 모델을 이용하여 글로벌 모델의 파라미터를 업데이트할 수 있다(S1050). 이때, 서버(50)는 복수의 전자 장치로부터 수신된 학습된 글로벌 모델의 파라미터에 대한 정보를 이용하여 서버(50)에 저장된 글로벌 모델의 파라미터를 업데이트할 수 있다. 이때, 서버(50)는 복수의 전자 장치로부터 수신된 학습된 글로벌 모델에 대한 파라미터 정보에 기초하여 파라미터 별로 대표값(예로, 평균값, 최빈값 등)을 획득할 수 있다. 그리고, 서버(50)는 파라미터 별 대표값을 이용하여 글로벌 모델을 업데이트할 수 있다. 서버(50)는 업데이트된 글로벌 모델을 기설정된 영역 혹은 서버(50)와 연결된 데이터베이스 내에 저장할 수 있다.
서버(50)는 새로운 버전 파일을 생성할 수 있다(S1060). 이때, 서버(50)는 도 12에 도시된 바와 같이, 글로벌 모델의 현재 버전 정보(520)에 기록된 버전을 다음 버전으로 업데이트하고, 글로벌 모델을 다운로드할 수 있는 주소 정보(530)를 업데이트된 글로벌 모델을 저장하는 주소 정보로 업데이트할 수 있다. 즉, 서버(50)는 제2 버전의 글로벌 모델에 대한 버전 파일을 생성할 수 있다.
서버(50)는 새로운 버전 파일을 배포할 수 있다(S1070). 이때, 서버(50)는 기등록된 복수의 전자 장치(100)로 새로운 버전 파일을 배포할 수 있다. 즉, 서버(50)는 제2 버전의 글로벌 모델에 대한 버전 파일을 복수의 전자 장치(100)로 전송할 수 있다.
이와 같은 방식으로, 서버(50)는 전자 장치(100)와 연동하여 글로벌 모델에 대한 연합 학습을 반복적으로 수행할 수 있다.
도 13은 본 개시의 일 실시예에 따른, 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
우선, 전자 장치(100)는 서버(50)로부터 글로벌 모델에 대한 정보 및 평가 데이터에 대한 정보를 수신한다(S1310). 이때, 전자 장치(100)는 서버(50)로부터 글로벌 모델에 대한 정보 및 평가 데이터에 대한 정보를 포함하는 버전 파일을 수신할 수 있다.
또한, 글로벌 모델에 대한 정보에는 글로벌 모델의 버전 정보 및 글로벌 모델을 다운로드할 수 있는 주소 정보를 포함할 수 있다. 이때, 전자 장치(100)는 전자 장치(100)에 저장된 로컬 모델의 버전 정보와 글로벌 모델의 버전 정보를 비교할 수 있다. 그리고, 글로벌 모델의 버전이 로컬 모델의 버전보다 높은 것으로 판단되면, 전자 장치(100)는 글로벌 모델을 다운로드할 수 있는 주소 정보에 기초하여 글로벌 모델을 다운로드할 수 있다.
전자 장치(100) 글로벌 모델을 학습하기 위한 데이터 셋을 획득한다(S1320). 전자 장치(100)는 전자 장치(100)에 기 저장된 데이터 셋에 대한 주소 정보를 획득할 수 있으며 획득된 데이터 셋에 대한 주소 정보를 버전 파일에 반영할 수 있다.
전자 장치(100)는 데이터 셋을 이용하여 글로벌 모델을 학습시킨다(S1330). 전자 장치(100)는 학습된 글로벌 모델을 로컬 모델로 메모리에 저장할 수 있다.
전자 장치(100)는 학습된 글로벌 모델에 평가 데이터를 입력하여 학습된 글로벌 모델을 평가한다(S1340). 이때, 전자 장치(100)는 평가 데이터를 글로벌 모델에 입력하여 출력된 결과값에 대한 제1 정확도를 획득할 수 있다. 그리고, 전자 장치(100)는 평가 데이터를 학습된 글로벌 모델에 입력하여 출력된 결과값에 대한 제2 정확도를 획득할 수 있다. 그리고, 전자 장치(100)는 제1 정확도와 상기 제2 정확도를 비교하여 학습된 글로벌 모델을 평가할 수 있다.
전자 장치(100)는 평가 결과에 기초하여 학습된 글로벌 모델에 대한 정보를 서버로 전송할지 여부를 결정한다(S1350). 구체적으로, 제2 정확도가 상기 제1 정확도보다 높은 것으로 판단되면, 전자 장치(100)는 학습된 글로벌 모델에 대한 정보를 서버(50)로 전송하는 것으로 결정할 수 있다.
또한, 전자 장치(100)는 평가 결과에 기초하여 학습된 글로벌 모델에 대한 파라미터 정보를 포함하도록 버전 파일을 업데이트할 수 있다. 그리고, 전자 장치(100)는 업데이트된 버전 파일을 서버(50)로 전송할 수 있다.
또한, 전자 장치(100)는 버전 파일에 반영된 데이터 셋에 대한 주소 정보를 삭제하여 서버(50)로 전송할 수 있다.
또한, 전자 장치(100)는 학습된 글로벌 모델에 대한 정보를 SSL/TLS(Secured Sockets Layer/Transport Layer Security) 인코딩을 수행하여 암호화한 후 서버(50)로 전송할 수 있다.
한편, 서버(50)는 전자 장치로부터 수신된 상기 학습된 글로벌 모델에 대한 정보에 기초하여 새로운 버전의 글로벌 모델을 생성할 수 있다.
한편, 본 개시의 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예: 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
본 개시의 다양한 실시 예에 따른 방법은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치를 포함할 수 있다.
한편, 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적 저장매체'는 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예로, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
상기 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접 또는 상기 프로세서의 제어 하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시가 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
110: 통신 인터페이스
120: 메모리
130: 적어도 하나의 프로세서
130: 적어도 하나의 프로세서
Claims (20)
- 전자 장치에 있어서,
통신 인터페이스;
적어도 하나의 인스트럭션을 저장하는 메모리; 및
적어도 하나의 프로세서;를 포함하며,
상기 적어도 하나의 프로세서는,
상기 통신 인터페이스를 통해 서버로부터 글로벌 신경망 모델에 대한 정보 및 평가 데이터에 대한 정보를 수신하고,
상기 글로벌 신경망 모델을 학습하기 위한 데이터 셋을 획득하고,
상기 데이터 셋을 이용하여 상기 글로벌 신경망 모델을 학습시키며,
상기 학습된 글로벌 신경망 모델에 상기 평가 데이터를 입력하여 상기 학습된 글로벌 신경망 모델을 평가하며,
상기 평가 결과에 기초하여 상기 학습된 글로벌 신경망 모델에 대한 정보를 상기 서버로 전송할지 여부를 결정하는 전자 장치. - 제1항에 있어서,
상기 적어도 하나의 프로세서는,
상기 평가 데이터를 상기 글로벌 신경망 모델에 입력하여 출력된 결과값에 대한 제1 정확도를 획득하고,
상기 평가 데이터를 상기 학습된 글로벌 신경망 모델에 입력하여 출력된 결과값에 대한 제2 정확도를 획득하고,
상기 제1 정확도와 상기 제2 정확도를 비교하여 상기 학습된 글로벌 신경망 모델을 평가하는 전자 장치. - 제2항에 있어서,
상기 적어도 하나의 프로세서는,
상기 제2 정확도가 상기 제1 정확도보다 높은 것으로 판단되면, 상기 학습된 글로벌 신경망 모델에 대한 정보를 상기 서버로 전송하도록 결정하는 전자 장치. - 제1항에 있어서,
상기 글로벌 신경망 모델에 대한 정보는,
상기 글로벌 신경망 모델의 버전 정보 및 상기 글로벌 신경망 모델을 다운로드할 수 있는 주소 정보를 포함하며,
상기 적어도 하나의 프로세서는,
상기 전자 장치에 저장된 로컬 신경망 모델의 버전 정보와 상기 글로벌 신경망 모델의 버전 정보를 비교하며,
상기 글로벌 신경망 모델의 버전이 상기 로컬 신경망 모델의 버전보다 높은 것으로 판단되면, 상기 글로벌 신경망 모델을 다운로드할 수 있는 주소 정보에 기초하여 상기 통신 인터페이스를 통해 상기 글로벌 신경망 모델을 다운로드하는 전자 장치. - 제1항에 있어서,
상기 적어도 하나의 프로세서는,
상기 통신 인터페이스를 통해 상기 서버로부터 상기 글로벌 신경망 모델에 대한 정보 및 평가 데이터에 대한 정보를 포함하는 버전 파일을 수신하며,
상기 전자 장치에 기 저장된 데이터 셋에 대한 주소 정보를 획득하며,
상기 획득된 데이터 셋에 대한 주소 정보를 상기 버전 파일에 반영하는 전자 장치. - 제5항에 있어서,
상기 적어도 하나의 프로세서는,
상기 평가 결과에 기초하여 상기 학습된 글로벌 신경망 모델에 대한 파라미터 정보를 포함하도록 상기 버전 파일을 업데이트하며,
상기 업데이트된 버전 파일을 상기 서버로 전송하도록 상기 통신 인터페이스를 제어하는 전자 장치. - 제6항에 있어서,
상기 적어도 하나의 프로세서는,
상기 버전 파일에 반영된 데이터 셋에 대한 주소 정보를 삭제하여 상기 서버로 전송하도록 상기 통신 인터페이스를 제어하는 전자 장치. - 제1항에 있어서,
상기 서버는,
상기 전자 장치로부터 수신된 상기 학습된 글로벌 신경망 모델에 대한 정보에 기초하여 새로운 버전의 글로벌 신경망 모델을 생성하는 전자 장치. - 제1항에 있어서,
상기 적어도 하나의 프로세서는,
상기 학습된 글로벌 신경망 모델에 대한 정보를 SSL/TLS(Secured Sockets Layer/Transport Layer Security) 인코딩을 수행하여 상기 서버로 전송하는 전자 장치. - 제1항에 있어서,
상기 적어도 하나의 프로세서는,
상기 학습된 글로벌 신경망 모델을 로컬 신경망 모델로 상기 메모리에 저장하는 전자 장치. - 전자 장치의 제어 방법에 있어서,
서버로부터 글로벌 신경망 모델에 대한 정보 및 평가 데이터에 대한 정보를 수신하는 단계;
상기 글로벌 신경망 모델을 학습하기 위한 데이터 셋을 획득하는 단계;
상기 데이터 셋을 이용하여 상기 글로벌 신경망 모델을 학습시키는 단계;
상기 학습된 글로벌 신경망 모델에 상기 평가 데이터를 입력하여 상기 학습된 글로벌 신경망 모델을 평가하는 단계; 및
상기 평가 결과에 기초하여 상기 학습된 글로벌 신경망 모델에 대한 정보를 상기 서버로 전송할지 여부를 결정하는 단계;를 포함하는 제어 방법. - 제11항에 있어서,
상기 평가하는 단계는,
상기 평가 데이터를 상기 글로벌 신경망 모델에 입력하여 출력된 결과값에 대한 제1 정확도를 획득하는 단계;
상기 평가 데이터를 상기 학습된 글로벌 신경망 모델에 입력하여 출력된 결과값에 대한 제2 정확도를 획득하는 단계; 및
상기 제1 정확도와 상기 제2 정확도를 비교하여 상기 학습된 글로벌 신경망 모델을 평가하는 단계;를 포함하는 제어 방법. - 제12항에 있어서,
상기 결정하는 단계는,
상기 제2 정확도가 상기 제1 정확도보다 높은 것으로 판단되면, 상기 학습된 글로벌 신경망 모델에 대한 정보를 상기 서버로 전송하도록 결정하는 제어 방법. - 제11항에 있어서,
상기 글로벌 신경망 모델에 대한 정보는,
상기 글로벌 신경망 모델의 버전 정보 및 상기 글로벌 신경망 모델을 다운로드할 수 있는 주소 정보를 포함하며,
상기 제어 방법은,
상기 전자 장치에 저장된 로컬 신경망 모델의 버전 정보와 상기 글로벌 신경망 모델의 버전 정보를 비교하는 단계;
상기 글로벌 신경망 모델의 버전이 상기 로컬 신경망 모델의 버전보다 높은 것으로 판단되면, 상기 글로벌 신경망 모델을 다운로드할 수 있는 주소 정보에 기초하여 상기 글로벌 신경망 모델을 다운로드하는 단계;를 포함하는 제어 방법. - 제11항에 있어서,
상기 수신하는 단계는,
상기 서버로부터 상기 글로벌 신경망 모델에 대한 정보 및 평가 데이터에 대한 정보를 포함하는 버전 파일을 수신하며,
상기 획득하는 단계는,
상기 전자 장치에 기 저장된 데이터 셋에 대한 주소 정보를 획득하며, 상기 획득된 데이터 셋에 대한 주소 정보를 상기 버전 파일에 반영하는 제어 방법. - 제15항에 있어서,
상기 제어 방법은,
상기 평가 결과에 기초하여 상기 학습된 글로벌 신경망 모델에 대한 파라미터 정보를 포함하도록 상기 버전 파일을 업데이트하는 단계; 및
상기 업데이트된 버전 파일을 상기 서버로 전송하는 단계;를 포함하는 제어 방법. - 제16항에 있어서,
상기 전송하는 단계는,
상기 버전 파일에 반영된 데이터 셋에 대한 주소 정보를 삭제하여 상기 서버로 전송하는 제어 방법. - 제11항에 있어서,
상기 서버는,
상기 전자 장치로부터 수신된 상기 학습된 글로벌 신경망 모델에 대한 정보에 기초하여 새로운 버전의 글로벌 신경망 모델을 생성하는 제어 방법. - 제11항에 있어서,
상기 제어 방법은,
상기 학습된 글로벌 신경망 모델에 대한 정보를 SSL/TLS(Secured Sockets Layer/Transport Layer Security) 인코딩을 수행하여 상기 서버로 전송하는 단계;를 포함하는 제어 방법. - 제11항에 있어서,
상기 제어 방법은,
상기 학습된 글로벌 신경망 모델을 로컬 신경망 모델로 상기 메모리에 저장하는 단계;를 포함하는 제어 방법.
,
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230000664A KR20240109014A (ko) | 2023-01-03 | 2023-01-03 | 전자 장치 및 이의 제어 방법 |
PCT/KR2023/015139 WO2024147440A1 (ko) | 2023-01-03 | 2023-09-27 | 전자 장치 및 이의 제어 방법 |
US18/526,818 US20240220818A1 (en) | 2023-01-03 | 2023-12-01 | Electronic apparatus and controlling method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230000664A KR20240109014A (ko) | 2023-01-03 | 2023-01-03 | 전자 장치 및 이의 제어 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240109014A true KR20240109014A (ko) | 2024-07-10 |
Family
ID=91803734
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020230000664A KR20240109014A (ko) | 2023-01-03 | 2023-01-03 | 전자 장치 및 이의 제어 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20240109014A (ko) |
WO (1) | WO2024147440A1 (ko) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018017467A1 (en) * | 2016-07-18 | 2018-01-25 | NantOmics, Inc. | Distributed machine learning systems, apparatus, and methods |
US20220121999A1 (en) * | 2020-10-17 | 2022-04-21 | International Business Machines Corporation | Federated ensemble learning from decentralized data with incremental and decremental updates |
KR20220067926A (ko) * | 2020-11-18 | 2022-05-25 | 성균관대학교산학협력단 | 연합학습 모델에서 이상 클라이언트를 제거하는 방법 |
CN114418380B (zh) * | 2022-01-17 | 2024-09-06 | 建信金融科技有限责任公司 | 基于联邦学习的用户评分方法、服务器及存储介质 |
CN114707657A (zh) * | 2022-03-01 | 2022-07-05 | 中国地质大学(北京) | 基于联邦机器学习算法的服务评估方法与系统 |
-
2023
- 2023-01-03 KR KR1020230000664A patent/KR20240109014A/ko unknown
- 2023-09-27 WO PCT/KR2023/015139 patent/WO2024147440A1/ko unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024147440A1 (ko) | 2024-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210342692A1 (en) | Technologies for scaling deep learning training | |
US8219575B2 (en) | Method and system for specifying, preparing and using parameterized database queries | |
US20240095538A1 (en) | Privacy-preserving graphical model training methods, apparatuses, and devices | |
JP7564416B2 (ja) | メタネットワークまたはニューラルネットワークを利用する損失画像およびビデオ圧縮ならびに/または伝送のためのシステムならびに方法 | |
CN109525624A (zh) | 一种容器登录方法、装置及存储介质 | |
US20120159099A1 (en) | Distributed Storage System | |
KR102283523B1 (ko) | 인공지능 서비스를 제공하기 위한 방법 | |
WO2023024844A1 (zh) | 模型训练方法、装置及系统 | |
US20200134508A1 (en) | Method, device, and computer program product for deep learning | |
US20230145452A1 (en) | Method and apparatus for training a model | |
EP4018386A1 (en) | Feature dictionary for bandwidth enhancement | |
AU2023200082A1 (en) | Method and apparatus for estimating classical capacity of quantum channel, electronic device, and medium | |
US20210365406A1 (en) | Method and apparatus for processing snapshot, device, medium and product | |
KR20240109014A (ko) | 전자 장치 및 이의 제어 방법 | |
US20240220818A1 (en) | Electronic apparatus and controlling method thereof | |
CN113487041B (zh) | 横向联邦学习方法、装置及存储介质 | |
KR20230086455A (ko) | 침입을 탐지하는 전자 장치 및 그 방법 | |
US11943294B1 (en) | Storage medium and compression for object stores | |
CN114780224A (zh) | 一种应用于元宇宙的资源调度方法及系统 | |
US20220215511A1 (en) | System and method for lossy image and video compression and/or transmission utilizing a metanetwork or neural networks | |
US20210011924A1 (en) | Active Data Executable | |
CN104216914B (zh) | 大容量数据传输 | |
CN112396100A (zh) | 一种细粒度分类模型的优化方法、系统及相关装置 | |
KR102587263B1 (ko) | 인공지능 기반의 모델의 벤치마크 결과를 제공하기 위한 방법 및 디바이스 | |
KR102586869B1 (ko) | 인공지능 기반의 모델의 벤치마크 결과를 제공하기 위한 방법 및 디바이스 |