KR20200088767A - 비밀 공유를 사용한 로지스틱 회귀 모델링 방법 - Google Patents

비밀 공유를 사용한 로지스틱 회귀 모델링 방법 Download PDF

Info

Publication number
KR20200088767A
KR20200088767A KR1020197032395A KR20197032395A KR20200088767A KR 20200088767 A KR20200088767 A KR 20200088767A KR 1020197032395 A KR1020197032395 A KR 1020197032395A KR 20197032395 A KR20197032395 A KR 20197032395A KR 20200088767 A KR20200088767 A KR 20200088767A
Authority
KR
South Korea
Prior art keywords
scn
data
slrm
distribution
sample
Prior art date
Application number
KR1020197032395A
Other languages
English (en)
Other versions
KR102337168B1 (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 알리바바 그룹 홀딩 리미티드
Publication of KR20200088767A publication Critical patent/KR20200088767A/ko
Application granted granted Critical
Publication of KR102337168B1 publication Critical patent/KR102337168B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

비밀 공유(secret sharing) 기법들을 사용함으로써 다자간 보안 로지스틱 회귀 모델(SLRM)을 훈련시키기 위한, 컴퓨터 저장 매체 상에 인코딩된 컴퓨터 프로그램들을 포함하는 방법들, 시스템들, 및 장치들이다. 방법들 중 하나의 방법은, 비밀 공유(secret sharing, SS)를 사용하여 보안 로지스틱 회귀 모델(SLRM)을 위한 샘플 훈련데이터를 복수의 분배분들 ― 각각의 분배분은 보안 컴퓨테이션 노드(SCN)에 배포됨 ― 로 나누는 단계; 상기 샘플 훈련 데이터의 각각의 분배분을 사용하여 SLRM에 연관된 파라미터들을 반복적으로 업데이트 ― 반복적 업데이트는 미리 결정된 조건의 발생까지 계속함 ― 하는 단계; 및 SLRM에 연관된 파라미터들을 반복적으로 업데이트한 후, 각각의 SCN에 의한 사용을 위해 구성된 훈련 결과를 출력하는 단계를 포함한다.

Description

비밀 공유를 사용한 로지스틱 회귀 모델링 방법
머신 러닝이 통찰을 이끌어내고 예측을 하기 위해 통계적 모델들을 사용하는 데이터 과학의 하위집합이다. 데이터 교환 및 협력(cooperation)을 용이하게 하기 위해, 상이한 당사자들이 머신 러닝 모델을 확립하도록 함께 작업할 수도 있다. 전통적인 머신 러닝 프로젝트들은 다수의 당사자들로부터 획득된 훈련 데이터를 하나의 장소에 집성한다. 그 다음에, 머신 러닝 프로세스의 훈련 단계에서, 훈련 모델이 집성된 데이터에 기초하여 머신 러닝 도구들을 사용하여 구축되며, 그래서 그 모델은 균일하게 훈련될 수 있다. 훈련 데이터는 임의의 참여 당사자에 의해, 또는 모든 참여 당사자들에 의해 신뢰되고 선택되는 서드 파티에서 집성될 수도 있다.
본 명세서는 비밀 공유(secret sharing) 기법들을 사용하여 다자간(multi-party) 보안 로지스틱 회귀 모델(secure logistic regression model, SLRM)을 훈련하는 것을 설명한다.
일반적으로, 본 명세서에서 설명되는 발명의 주제의 하나의 혁신적 양태는, 비밀 공유(SS)를 사용하여 보안 로지스틱 회귀 모델(SLRM)을 위한 샘플 훈련데이터를 복수의 분배분(share)들 ― 각각의 분배분은 보안 컴퓨테이션 노드(secure computation node, SCN)에 배포됨 ― 로 나누는 액션; 샘플 훈련 데이터의 각각의 분배분을 사용하여 SLRM에 연관된 파라미터들을 반복적으로 업데이트 ― 반복적 업데이트는 미리 결정된 조건의 발생까지 계속함 ― 하는 액션; 및 SLRM에 연관된 파라미터들을 반복적으로 업데이트한 후, 각각의 SCN에 의한 사용을 위해 구성된 훈련 결과를 출력하는 액션을 포함하는 방법들로 실시될 수 있다. 이 양태의 다른 실시형태들은, 각각이 방법들의 액션들을 수행하도록 구성되는, 대응하는 컴퓨터 시스템들, 장치, 및 하나 이상의 컴퓨터 저장 디바이스들 상에 기록된 컴퓨터 프로그램들을 포함한다.
전술한 및 다른 실시형태들은 다음의 특징들 중 하나 이상을 각각이 옵션적으로 단독으로 또는 조합하여 포함한다. 특히, 하나의 실시형태는 모든 다음의 특징들을 조합하여 포함한다.
본 명세서는 하나 이상의 프로세서들에 결합되고 하나 이상의 프로세서들에 의해 실행될 때 하나 이상의 프로세서들로 하여금 본 명세서에서 제공되는 방법들의 구현예들에 따라 동작들을 수행하게 하는 명령어들을 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체를 또한 제공한다.
본 명세서는 추가로 본 명세서에서 제공되는 방법들을 구현하는 시스템을 제공한다. 그 시스템은 하나 이상의 프로세서들과, 하나 이상의 프로세서들에 결합되어 하나 이상의 프로세서들에 의해 실행될 때 하나 이상의 프로세서들로 하여금 본 명세서에서 제공되는 방법들의 구현예들에 따라 동작들을 수행하게 하는 명령어들을 저장하는 컴퓨터 판독가능 저장 매체를 포함한다.
본 명세서에 따른 방법들은 본 명세서에서 설명되는 양태들 및 특징들의 임의의 조합을 포함할 수도 있다는 것이 이해된다. 다시 말하면, 본 명세서에 따른 방법들은 본 명세서에서 구체적으로 설명되는 양태들 및 특징들의 조합들로 제한되지 않고, 제공된 양태들 및 특징들의 임의의 조합 또한 포함한다.
본 명세서의 하나 이상의 구현예들의 세부사항들은 첨부 도면들 및 아래의 상세한 설명에서 언급된다. 본 명세서의 다른 특징들 및 장점들은 상세한 설명 및 도면으로부터, 그리고 청구범위로부터 명확하게 될 것이다.
도 1은 본 명세서의 구현예들에 따라 비밀 공유를 사용하여 다자간 머신 러닝 보안 로지스틱 회귀 모델(SLRM)을 훈련하는 환경의 일 예를 묘사한다.
도 2a는 본 명세서의 구현예들에 따라 SLRM의 파라미터들을 반복적으로 업데이트하는 하위 프로세스의 일 예를 묘사한다.
도 2b는 본 명세서의 구현예들에 따라 SLRM의 파라미터들을 반복적으로 업데이트하는 하위 프로세스의 일 예를 묘사한다.
도 3은 본 명세서의 구현예들에 따라 SLRM의 파라미터들을 반복적으로 업데이트하는 하위 프로세스의 일 예를 묘사한다.
도 4a는 본 명세서의 구현예들에 따라 SLRM의 파라미터들을 반복적으로 업데이트하는 하위 프로세스의 일 예를 묘사한다.
도 4b는 본 명세서의 구현예들에 따라 SLRM의 파라미터들을 반복적으로 업데이트하는 하위 프로세스의 일 예를 묘사한다.
도 5는 본 명세서의 구현예들에 따라 SLRM의 파라미터들을 업데이트하는 반복들을 종료할지의 여부를 결정하는 프로세스의 일 예를 묘사한다.
도 6은 본 명세서의 구현예들에 따라 이벤트 중심 상호작용 보안 모델링 절차를 사용하여 다자간 SLRM을 훈련하는 프로세스의 일 예를 묘사한다.
도 7은 본 명세서의 구현예들에 따라 실행될 수 있는 프로세스의 일 예를 묘사한다.
도 8은 본 명세서의 구현예들에 따라 실행될 수 있는 프로세스의 일 예를 묘사한다.
도 9는 본 명세서의 구현예들에 따라 장치의 모듈들을 예시하는 도면의 일 예를 묘사한다.
여러 도면들에서의 유사한 참조 번호들 및 지정들은 유사한 엘리먼트들을 나타낸다.
다음의 상세한 설명은 비밀 공유에 기초하여 보안 로지스틱 회귀 모델(SLRM)을 훈련하는 것을 설명하고, 본 기술분야의 통상의 기술자가 하나 이상의 특정 구현예들의 맥락에서 개시된 발명의 주제를 만들고 사용하는 것을 가능하게 하도록 제시된다. 개시된 구현예들의 다양한 수정들, 변경들, 그리고 순열들은 당해 기술분야의 통상의 지식을 가진 자들에게 만들어질 수 있고 쉽사리 명백하게 될 것이고, 정의된 일반 원리들은, 명세서의 범위로부터 벗어나는 일 없이, 다른 구현예들 및 응용분야들에 적용될 수도 있다. 일부 사례들에서, 설명된 발명의 주제의 이해를 얻는데 불필요한 세부사항들은 하나 이상의 설명된 구현예들을 불필요한 세부사항으로 모호하게 하지 않기 위해서 그리고 그러한 세부사항들이 본 기술분야의 통상의 기술자의 기술 내에 있는 한 생략될 수도 있다. 본 명세서는 설명되거나 또는 예시되는 구현예들을 제한할 의도는 아니고, 설명된 원리들 및 특징들에 일치하는 가장 넓은 범위가 부여되는 것으로 의도된다.
로지스틱 회귀는 일반화된 선형 회귀이고 분류 및 예측 알고리즘들 중 하나의 유형이다. 로지스틱 회귀 알고리즘이 일련의 알려진 종속변수들로부터 이산 값들을 추정하고 데이터를 논리 함수에 맞춤(fitting)으로써 이벤트의 발생의 확률을 추정한다. 로지스틱 회귀는 분류(예컨대, 스팸 이메일 분류), 신용 위험 컴퓨테이션, 및 다른 응용들에 사용될 수 있다.
소비자들에 관한 정보를 포함하는 큰 데이터 세트들은 소비자 습관들, 마케팅 캠패인들에 대한 타겟들, 그리고 다른 응용들의 이해를 제공하는데 활용될 수 있다. 일부 조직들은 보안 데이터 훈련 모델을 구축하기 위해 그리고 조직들 사이의 데이터 교환을 용이하게 하기 위해 협력 데이터 랩들을 설립하였다. 데이터 협력 프로세스 동안, 머신 러닝 모델이 상이한 참여 조직들로부터 획득된 데이터에 기초하여 구축된다.
소비자 데이터의 공유에 관련된 프라이버시 문제들을 해결하기 위해, 협력 조직들은 자신들의 개인 소비자 데이터가 모델의 훈련 동안 다른 협력 조직들에 노출되지 않는 것을 보장하기 위해 다양한 방법들을 사용할 수도 있다. 예를 들어, 소비자 데이터는 준동형(homomorphic) 암호화 기법들을 사용하여 암호화될 수 있다. 암호화가 준동형이기 때문에, 모델 훈련은, 암호해독될 때, 암호화되지 않은 훈련 데이터를 이용한 훈련으로부터 얻어질 훈련 결과들과 일치할 암호화된 결과들을 생성할 것이다. 모델 훈련의 출력 결과들은 참여 당사자들에게 반환되어서 참여 당사자들은 암호해독하고 최종 결과들을 획득한다.
다양한 문제들이 현재의 데이터 협력 기술들에 존재한다. 예를 들어, 현재의 접근법 하에서, 각각의 당사자는 자신 소유의 (아마도 매우 민감한) 데이터를 다른 당사자들에게 노출할 필요가 있어, 데이터 누설의 위험을 야기할 수도 있다. 또한, 비록 많은 데이터 랩들이 데이터 프라이버시를 보장하기 위해 클라우드 컴퓨팅, 멀티-테넌트 분리(tenant separation), 데이터 불감지화(desensitization), 데이터 감사(auditing), 및 다른 기법들과 같은 기법들을 구현하였지만, 당사자들은 자신들의 데이터가 보안이 유지되고 있다는 것을 여전히 보장하지 못한다. 이와 같이, 데이터를 집성하고 집성된 데이터를 프로세싱하는 참여 당사자 또는 중립적인 서드 파티의 선택은 당사자들 사이의 신뢰의 부족으로 인해 어려울 수 있다. 게다가, 데이터 협력을 위해 일반적으로 용인되는 표준들 또는 가이드라인들이 없기 때문에, 각각의 당사자는 자신 소유의 표준들을 개발해야 할 수도 있으며, 이는 시간이 많이 걸리고 비쌀 수도 있다. 덧붙여서, 준동형 암호화 또는 미분적 프라이버시(differential privacy)에 기초한 머신 러닝 방법(machine learning scheme)이 컴퓨테이션적으로 비효율적이고 따라서 다량의 프로세싱 능력들을 요구하여서, 비용 증가로 이어질 수도 있다. 게다가, 전통적인 모델링 도구들 및 프로세스들은, 강력함에도 불구하고, 모델러들에게 부담이 되고 훈련 모델들을 구축하는데 상당한 시간 및 노력을 요구한다.
본 명세서의 구현예들은 비밀 공유 및 이벤트 중심 상호작용 보안 모델링 절차를 사용함으로써 SLRM들을 훈련시키는 새로운 접근법을 도입한다. 설명된 구현예들은 SLRM이 양 당사자들로부터 수신된 훈련 데이터를 피드함으로써 반복적으로 업데이트될 수 있는 기법들을 설명한다.
SLRM은 훈련 데이터를 그 모델에 제공함으로써 훈련된다. 훈련 데이터의 소스들은 독립적인 보안 컴퓨테이션 노드들(SCN들)이고, 각각의 SCN은 비밀 공유 방법을 사용하여 자신의 훈련 데이터를 다른 노드들로부터 비밀로 유지한다. 이전에 설명된 바와 같이, 훈련 데이터는 상이한 엔티티들에 의해 제어되는 상이한 SCN들에 의해 공급될 수도 있기 때문에, SCN들 사이에 공유하기 위해 훈련 데이터를 보안화하는 것은 중요하게 되고 그래서 훈련 데이터에서의 임의의 민감한 정보는 훈련 데이터를 제공하는 엔티티 외의 엔티티에 드러내어지지 않는다. 구체적으로는, 이러한 협력을 통합하기 위해, 설명된 기법들은 각각의 SCN이 자신의 개인 훈련 데이터를 다른 SCN들로부터 보호하는 것을 가능하게 하기 위해 난수(random number)들을 도입한다.
덧붙여서, SCN들 사이의 훈련 데이터의 공유는 이벤트 중심 통합 보안 모델링 절차에 의해 제어될 수 있다. 일부 구현예들에서, 이벤트 중심 상호작용 보안 모델링 절차는 이벤트 중심 모델(또는 이른바 "게시-구독(publish-subscribe)" 모델)에 기초한다. 이 모델은 서로 의존하는 당사자들을 분리하여 자체의 태스크를 완료할 수 있다. 이 모델을 사용함으로써, 양 당사자들은 자신 소유의 서비스 프로세스에 집중할 수 있다. 하나의 당사자("게시자")는 자신의 서비스 프로세스가 완료될 때 통지를 전송한다. 다른 당사자("가입자")는 통지를 모니터링하고, 일단 통지가 수신되면, 자신의 서비스 프로세스는 그에 따라 트리거된다. 훈련 프로세스 동안, 각각의 SCN은 다른 당사자로부터 데이터를 수신하기 위해 메시지 큐를 유지하고 응답하여, SLRM 상에서 수행할 대응하는 모델링 단계들을 트리거한다.
설명된 기법들은 다양한 응용들을 가질 수 있다. 예를 들어, 그 기법들은 금융 기관들, 금융 기관들 및 정부 기관, 또는 다른 조직들 간의 데이터 협력에 적용될 수 있다.
일부 구현예들에서, 개시된 프레임워크는 SLRM과 비밀 공유 방법을 사용한다. 비밀 공유 방법은 다자간 협업(collaboration)을 수반하는 시나리오들에서 사용되는 암호화 유형이다. 비밀 공유 방법에서, 비밀(예컨대, 암호화 키 또는 데이터 세트)이 여러 상이한 분배분들로 미리 결정된 방식으로 나누어지고, 각각의 분배분은 상이한 참여 당사자에게 제공된다. 그 비밀은 단일 참여 당사자에 의해 복구되거나 또는 복원될 수 없으며, 이런 식으로, 비밀유지(secrecy)와 비밀의 보안은 보장된다. 본 명세서의 목적을 위해, SLRM에 의해 사용되는 훈련을 보호하는데 사용되는 알고리즘은 비밀 공유로 제한되지 않는다. 준동형 암호화와 비교하여, 전체 컴퓨테이션 효율은 비밀 공유를 사용함으로써 크게 개선된다. 게다가 원시 훈련 데이터가 변환되지 않기 때문에, 훈련 프로세스는 원시 훈련 데이터에 기초한 정확한 컴퓨테이션이고, 훈련의 출력 모델 결과는 원시 훈련 데이터에 기초한 정확하게 훈련된 모델이다.
일부 구현예들에서, 분산형 모델 훈련 프레임워크가 구현되고 그 프레임워크는 독립적인 서드 파티 난수 서비스를 도입한다. 이들 구현예들에서, 임의의 원시 데이터는 훈련 모델에 입력되기 전에, 서드 파티 난수 서비스에 의해 생성되고 배포되는 난수들과 연계하여 컴퓨테이션 프로세스를 거친다. 이러한 구현예들에서, 이벤트 중심 상호작용 보안 절차가 분산형 모델의 효율을 개선하기 위해 추가로 채택된다. 이런 식으로, 원시 데이터의 정보 누출(leakage)은 방지될 수 있고, 모델링 결과의 무결성과 모델의 정밀도는 보장된다.
도 1은 본 명세서의 구현예들에 따라 비밀 공유를 사용하여 다자간 머신 러닝 보안 로지스틱 회귀 모델(SLRM)을 훈련하는 환경(100)의 일 예를 묘사한다. 데이터 협력 서비스는 조직들에게 데이터 협력을 위한 플랫폼/환경을 제공하는 하나 이상의 서버들에 의해 수행될 수 있다. 예시적인 환경(100)은 사용자(102), 보안 관리 에이전트(104), 노드 관리 에이전트(106), 난수 제공기(108), 네트워크(110), 그리고 적어도 두 개의 보안 컴퓨테이션 노드들(SCN)인 SCN A(112) 및 SCN B(114)를 포함한다. 예시적인 환경(100)은 추가적인 사용자들, 보안 컴퓨테이션 노드 컴퓨터들, 네트워크들, 시스템들, 또는 다른 컴포넌트들을 포함할 수 있다. 환경(100)은 일부 구현예들에서 다른 방식으로 구성될 수 있다.
일부 구현예들에서, 네트워크(110)는 로컬 영역 네트워크(local area network, LAN), 광역 네트워크(wide area network, WAN), 인터넷, 또는 이들 또는 다른 네트워크들의 조합을 포함한다. 네트워크(110)는 무선 네트워크 또는 유선 네트워크들 중 하나 이상을 포함할 수 있다. 네트워크(110)는 컴퓨팅 디바이스들(예컨대, 서버들(104~108) 및 보안 컴퓨테이션 노드들(예컨대, SCN들)(112, 114)을 접속시킨다. 일부 구현예들에서, 네트워크(110)는 유선 및/또는 무선 통신들의 링크를 통해 액세스될 수 있다.
일부 경우들에서, 훈련 프로세스의 시작에 앞서, 사용자(102)가 SLRM에 연관된 다양한 파라미터들 및 설정들을 미리 결정할 수 있다. 이들 파라미터들은, 예를 들어, 훈련 데이터의 사이즈, 훈련 데이터의 특징들 및 대응하는 데이터 프로세싱 설정들, 또는 모델의 하이퍼파라미터(즉, 사전 배포의 파라미터)를 포함할 수도 있다. 모델 설정들을 초기화한 후, 그 모델에 연관된 정보는 보안 관리 에이전트(104)에 전송되며, 보안 관리 에이전트는 모델링 로직을 완료하기 위해 SCN들과 후속하여 조정할 수 있다.
일부 구현예들에서, 보안 관리 에이전트(104)와 노드 관리 에이전트(106)는 프로세스에 참여하는 SCN들(예컨대, 112, 114)뿐만 아니라 모델링 프로세스를 관리 및 제어하기 위해 단일 컴포넌트로서 통합될 수 있다. 보안 관리 에이전트(104)와 노드 관리 에이전트(106)는, 도 1에 도시된 바와 같이, 또한 별개의 컴포넌트들일 수도 있다.
일부 구현예들에서, 보안 관리 에이전트(104)는 훈련 모델의 구성, 모델링, 반복 컴퓨테이션, 및 프로세스 관리를 포함한 SLRM의 훈련을 관리하도록 구성될 수도 있다. 구체적으로는, 보안 관리 에이전트(104)는, 예를 들어 각각의 반복 사이클을 초기화하는 것과, 훈련 모델이 다수의 반복 사이클들 후 수렴되는지의 여부를 결정하는 것을 포함한, SCN들(112, 114)에 의해 공동으로 수행되는 모델링 프로세스를 용이하게 할 수 있다. 덧붙여서, 보안 관리 에이전트(104)는 각각의 SCN으로부터 특정 데이터 구조 및 훈련 데이터에 연관된 다른 정보를 또한 획득할 수 있다. 예를 들어, 훈련 데이터의 소스, 훈련 데이터의 특징들(예컨대, 각각의 훈련 데이터 세트의 행들 및 열들의 수)과 같은 정보를 획득한다.
일부 구현예들에서, 노드 관리 에이전트(106)는 노드 선택, 노드 관리, 프로젝트 데이터 관리 등을 수행하도록 구성될 수 있다. 예를 들어, 일단 보안 관리 에이전트(104)가 SCN A(112) 및 SCN B(114)로부터 모델링 요청들을 수신하였고 SCN A 및 SCN B의 대응하는 데이터 정보를 수집하였다면, 노드 관리 에이전트(106)는, 보안 관리 에이전트(104)를 통해, 각각의 SCN에게, 함께 작업할 필요가 있는 다른 SCN(들)의 아이덴티티, 추가적인 훈련 데이터를 획득하기 위한 로케이션을 알려줄 수 있고, 훈련 프로세스에 참여한 각각의 SCN에 대응하는 파라미터들을 배포할 수 있다. 덧붙여서, 노드 관리 에이전트(106)는 SCN A 및 SCN B에게 난수 제공기(108)의 로케이션을 또한 통지한다.
묘사된 예에서, SCN A(112) 및 SCN B(114)는 서로 간의 데이터 교환 또는 데이터 협력을 용이하게 하려고 하는 자신들의 별개의 사용자들에 관한 데이터 세트들을 프로세싱하는 별개의 조직들에 의해 운영될 수 있다. 예를 들어, SCN A(112) 및 SCN B(114)를 운영하는 조직들은 훈련 데이터 세트들(P0 및 P1)이 머신 러닝 모델에의 입력들인, P0 및 P1을 각각 소유할 수도 있다. 훈련 모델의 출력 결과는, 예를 들어, SCN A(112) 또는 SCN B(114)의 고객에게 대출을 발행할 위험의 예측과 같은 특정한 서비스를 수행하기 위한 SCN A(112) 및 SCN B(114) 둘 다에 의해 사용될 수 있는 예측 결과일 수 있다. SCN A(112) 및 SCN B(114)는 모델 파라미터들 및 설정들을 보안 관리 에이전트(104)로부터 수신한 후, 서로 간의 네트워크 통신들을 통해 모델링 태스크를 완료할 필요가 있다. 보안 목적으로, 특히 각각의 SCN에 의해 소유된 훈련 데이터가 대단히 민감한 프라이버시 데이터인 경우들에, SCN A(112) 및 SCN B(114)는 서로로부터 훈련 데이터의 부분들을 숨기거나 또는 난독화(obfuscation)할 수 있다. 훈련 데이터를 난독화하기 위해, SCN A(112) 및 SCN B(114)는 난수 제공기(108)로부터 난수들을 요청하고, 자신 소유의 훈련 데이터와 수신된 난수들을 사용한 컴퓨테이션들(예를 들어, 난수들 및 데이터의 부분들의 덧셈 또는 곱셈)을 수행할 수 있다. 난수들은 훈련 데이터의 데이터 난독화 또는 암호화를 제공하는데 사용될 수 있다. 일부 경우들에서, 대단히 민감한 프라이버시 데이터(예컨대, 사용자들의 개인 정보)를 포함하는 훈련 데이터의 부분들만이 난독화되거나 또는 암호화됨으로써, 다른 당사자가 훈련을 위해 데이터의 비민감한 부분들을 사용하는 것을 허용면서도 고도로 민감한 프라이버시 데이터에 대한 다른 당사자의 액세스를 허용하지 않을 수 있다. RSA, DES/트리플DES, 및 다른 널리 공지된 암호화 방법들과 같은 임의의 적합한 암호화 방법이 사용될 수 있다. 일부 구현예들에서, 난수는 숫자, 벡터, 또는 행렬 등일 수 있다. 일부 구현예들에서, 난수는 SCN(112, 114) 중 어느 하나에 의해 생성될 수 있다. 일부 구현예들에서, 난수들은 공유 및 훈련 동안 개인 데이터가 다른 SCN에 의해 누설(reveal)되지 않을 수 있는 것을 보장하기 위해 독립적인 서드 파티에 의해 제공될 수 있다. 일부 구현예들에서, 난수 제공기(108), 보안 관리 에이전트(104), 및 노드 관리 에이전트(106)에 관련된 서비스들은 상호 선택되고 신뢰되는 서드 파티 에이전트에 의해 제공되고 수행될 수 있다.
각각의 SCN에 대해, 데이터가 난수들을 사용하여 암호화된 후, 암호화된 데이터는 다른 SCN에 전송될 수 있다. SCN들(112, 114) 사이에서 송신되는 데이터가 암호화되기 때문에, 데이터의 민감한 정보는 노출되지 않는다. 일부 구현예들에서, SCN A 및 SCN B(112, 114)로부터의 컴퓨테이션들 결과들은 머신 러닝 모델 훈련을 위해 사용된다. 구체적으로는, 각각의 SCN은 수신된 암호화된 데이터를 SLRM에 대한 입력들로서 사용하여, SLRM이 기초로 하는 로지스틱 회귀 함수의 파라미터를 반복적으로 업데이트시킨다. 다수의 반복들 후, 훈련은 미리 결정된 조건에 기초하여 종료할 수도 있다. 일부 구현예들에서, 국부 데이터 관리는 각각의 SCN(112, 114)에 의해 수행되고, 데이터베이스 내의 데이터의 스토리지, 객체 저장소, 메모리 내(in-memory) 데이터 저장소(예컨대, Redis), 또는 다른 유형의 스토리지를 포함할 수도 있다.
도 2a는 본 명세서의 구현예들에 따라 SLRM의 파라미터들을 반복적으로 업데이트하는 하위 프로세스(200a)의 일 예를 묘사한다.
묘사된 예에서, SLRM의 목적 함수를 최적화하기 위해, 미니 배치 확률적 경사 하강(mini batch Stochastic Gradient Descent, SGD) 법이 사용된다. SGD는 경사 하강 최적화의 확률적 근사에 기초하여 미분가능 목적 함수를 최적화하는 반복 방법이다. 본 명세서에서, 목적 함수를 최적화하기 위해, SGD 법은 다음의 반복들을 수행할 것이다:
Figure pct00001
수학식 1
여기서 m은 미니 배치 SGD의 샘플 사이즈를 나타낸다. 이 예에서, X는 m*k 샘플 행렬이다. 행렬 X의 각각의 행은 샘플을 나타내고, Xi는 행렬 X의 i번째 행을 나타내고, [j]는 벡터 X ij번째 원소를 나타내며 θ는 파라미터 열 벡터를 나타낸다. Yi는 미니 배치 샘플들의 i번째 샘플의 레이블을 나타내며, 여기서 Yi는 0 또는 1일 수 있다. α 및 λ는 머신 러닝 네트워크 구조와 네트워크가 훈련되는 방법을 결정하는 하이퍼파라미터들이다. 그것들은 훈련 전에 그리고 사용자에 의해 설정될 수 있다.
이 묘사된 예에서, 비밀 공유를 사용함으로써, 수학식 (1)에서 사용되는 모든 샘플 훈련 데이터 세트들은 두 개의 분배분들로 나누어진다. 다시 말하면, SLRM에 대한 샘플 훈련 데이터는 두 개의 소스들인 SCN P0 및 SCN P1로부터 나온다. 특히, 샘플 데이터 행렬(X)은 X L X R 로 나누어지며, 그래서 샘플 데이터 X L 은 SCN P 0에 속하는 한편, X R 은 SCN P 1에 속한다. SCN P 0 및 SCN P 1에서의 데이터 샘플이 특징들 k0 및 k 1을 각각 가지고, k = k 0 + k 1이라고 가정한다. 샘플 데이터 세트 X i 에 대해, SCN P 0X i ,[1], X i,[2], ... X i,[k 0]로서 표현되는 Xi,의 원소들을 포함하는 한편, SCN P 1X i ,[k 0+1], X i ,[k 0+2], ... X i ,[k]로서 표현되는 X i,의 원소들을 포함한다. 비슷하게, 파라미터 열 벡터(θ)는 θ L 및 θ R 로 또한 나누어질 수 있다. 이와 같이, 이들 재정의된 파라미터들을 사용하여, 수직 데이터 분할 하에서, 수학식 (1)은 다음과 같이 표현될 수 있다:
Figure pct00002
수학식 2
여기서 X 및 Y는 보호될 입력 데이터이다. X는 특징 데이터를 나타내고 Y는 특징 데이터에 기초하여 이루어진 예측을 나타낸다. 예를 들어, 대출 차입 시나리오에서, X는 수입, 교육 이력, 신용 이력 등일 수 있다. 그 정보에 기초하여, 은행은 예측 Y를 만들 수 있는데, 이는 대출 차입자의 위험이 대출을 발행할 만큼 충분히 낮은지의 여부이다. θ는 보호될 것이 필요한 중간 결과이고, 훈련 프로세스가 종료된 후, θ는 또한 훈련 결과의 최종 출력이다. 수학식 (2)에서 열거된 다른 파라미터들은 일상적으로 사용되는 널리 공지된 파라미터들이다.
SLRM에서 사용되는 보안 로지스틱 회귀 훈련 알고리즘은 2차 정규화(second order regularization)를 갖는 미니 배치 SGD에 기초하고, 양자간(two-party) ABY 보안화된 컴퓨테이션 프레임워크의 수학 회로(mathematic circuit, A) 및 가블레드 회로(Garbled Circuit)(Yao)에 적용된다. 수학 회로(A)는 곱셈 삼중 및 비밀 공유(multiplication triple and secret sharing)에 기초하고, 덧셈, 뺄셈, 및 곱셈을 계산하는데 사용될 수 있고, 그러므로 그 알고리즘에서 사용되는 다항식, 내적(dot product), 및 행렬 곱셈들을 컴퓨팅할 수 있다. 한편, 가블레드 회로(Yao)는 다른 유형들의 컴퓨테이션들을 수행하는데 사용될 수 있다. 이 컴퓨테이션 프레임워크에서, 각각의 SCN은 보안 컴퓨테이션에 비밀 공유를 사용한다. 각각의 컴퓨테이션 단계 후, 중간 컴퓨테이션 결과가 생성되고 분배분들(이것들은 동일하거나 또는 동일하지 않을 수도 있음)로 나누어지는 한편, 각각의 SCN은 중간 컴퓨테이션 결과의 하나의 분배분을 획득한다. 각각의 단계 후, 양 SCN들은 획득된 분배분들을 사용하여 다음의 단계에 진입하고, 결과적으로 반복이 종료될 때 최종 생성된 분배분들을 결합시킨다.
반복 루프가 시작되기 전, 모델을 업데이트하는데 사용되는 모든 파라미터들이 먼저 초기화된다. 초기화 프로세스 동안, 양 SCN들은 랜덤 열 벡터를 초기화된 파라미터 열 벡터(θ)의 분배분으로서 생성하며, 여기서 dim(θ) = (k0+k1+1, 1), dim(θ L ) = (k0+1, 1), dim(θ R ) = (k1, 1)이다. 초기화된 파라미터 열 벡터(θ)는 그것의 분배분들에 의해 다음과 같이 표현될 수 있으며:
θ L = <θ L >0 + <θ L >1 수학식 3
θ R = <θ R >0 + <θ R >1 수학식 4
여기서 < >는 분배분을 나타내고, [i]는 벡터의 i번째 원소를 나타낸다(다시 말하면, θ[i] = <θ[i]>0 + <θ[i]>1 이다). 따라서, SCN P 0에서의 생성된 랜덤 열 벡터는 다음의 수학식으로서 표현될 수 있다:
<θ>0= (<θ[1]>0, <θ[2]>0, <θ[3]>0...<θ[k]>0) 수학식 5
각각의 샘플 데이터 세트가 수직으로 나누어지기 때문에, <θ>0는 다음의 두 개의 열 벡터들에 의해 더 나누어질 수 있으며:
L >0= (<θ L [1]>0, <θ L [2]>0, <θ L [3]>0...<θ L [k0]>0) 수학식 6
R >0= (<θ R [1]>0, <θ R [2]>0, <θ R [3]>0...<θ R [k1]>0) 수학식 7
여기서 <θ>0 = <θ L >0||<θ R >0이고, ||는 연결 관계를 나타낸다.
비슷하게, SCN P 1에서의 생성된 랜덤 열 벡터는 다음의 수학식으로서 표현될 수 있다:
= (<θ[1]>1, <θ[2]>1, <θ[3]>1...<θ[k]>1) 수학식 8
각각의 샘플 데이터 세트가 수직으로 나누어지기 때문에, <θ>1은 다음의 두 개의 열 벡터들에 의해 더 나누어질 수 있으며:
L >1= (<θ L [1]>1, <θ L [2]>1, <θ L [3]>1...<θ L [k0]>1) 수학식 9
R >1= (<θ R [1]>1, <θ R [2]>1, <θ R [3]>1...<θ R [k1]>1) 수학식 10
여기서 <θ>1=<θ L >1||<θ R >1이고, ||는 연결 관계를 나타낸다.
반복들의 프로세스는 도 2 내지 도 6에 의해 예시된다. 이전에 설명된 바와 같이, 반복들의 목적은 수학식 (2)에 도시된 파라미터(θ)를 업데이트하는 것이다.
도 2a는 하나의 반복 동안 반복 사이클의 제1 단계(본 명세서에서의 "단계 1")의 제1 하위단계(sub-step)(본 명세서에서의 "단계 1.1")를 예시한다. 단계 1에서, 각각의 SCN은 다음의 수학식에 기초하여 A의 분배분을 먼저 계산하며:
A= Xθ =X L θ L +X R θ R 수학식 11
여기서 A는 파라미터(θ)의 열 벡터가 곱해진 미니 배치 샘플 벡터(X)를 사용하여 계산된다.
일부 구현예들에서, X L X R 은 반복 사이클의 단계 3에서 파라미터들을 업데이트하는데 또한 사용될 것이다. 일부 구현예들에서, 동일한 미니 배치 샘플 데이터는 나중의 반복에서 컴퓨테이션을 위해 사용될 수 있다.
도 2a(단계 1.1)는 곱셈 삼중 및 비밀 공유를 사용한 X L θ L 의 값의 계산을 예시한다. 도 2a에 도시된 바와 같이, SCN P 0는 원본 데이터를 제공하는 당사자이다. 원본 데이터를 숨기기 위해, SCN P 0 및 SCN P 1은 난수들을 먼저 획득한다. 일부 구현예들에서, 난수는 숫자, 벡터, 또는 행렬일 수 있다. 어떤 구현예에서, 난수들은 SCN들에 의해 생성될 수 있다. 일부 구현예들에서, 난수는 서드 파티 기관, 예를 들어, 도 1에 도시된 난수 제공기(108)에 요청되고 수신될 수 있다.
도 2a에 도시된 바와 같이, 획득된 난수들은 랜덤 행렬(u), 랜덤 벡터(v), 및 난수(z)를 포함한다. 획득된 난수들은 SCN P 0 및 SCN P 1 사이에 배포된다. 일부 구현예들에서, SCN P 0는 랜덤 행렬(u), v0로서 표현되는 v의 분배분, z0로서 표현되는 z의 분배분을 획득한다. SCN P 1은 v1로서 표현되는 v의 분배분과, z1로서 표현되는 z의 분배분을 획득한다. 일부 구현예들에서, z의 분배분들은 준동형 컴퓨테이션에 의해 생성될 수 있다. 일부 구현예들에서, 랜덤 벡터(u)는 SCN P 0에 의해 생성되는 반면, 랜덤 벡터(v)의 분배분들(v0 및 v1)은 SCN P 0 및 SCN P 1에 의해 각각 생성된다. 일부 구현예들에서, u, v, 및 z와 그것들의 대응하는 분배분들은 신뢰성 있는 서드 파티 상용 서버에 의해 모두 생성된다. 난수들의 각각과, 대응하는 난수의 분배분은 상호 관련되고 그것들 사이의 관계는 다음과 같이 표현될 수 있다:
z0 + z1 = u*v=u* (v 0 + v 1) 수학식 12
a= X L , and b 0 = <θ L >0를 가정한다. SCN P 0의 데이터를 숨기기 위하여, u를 사용함으로써, 예를 들어, a 및 u의 덧셈, 뺄셈 또는 곱셈을 수행함으로써 a를 암호화한다. 어떤 구현예에서, 랜덤 행렬(u)은 나중의 반복에서 동일한 X L 을 숨길 때 동일할 수 있다. 비슷하게, <θ L >0는 랜덤 벡터(v0)를 사용함으로써 암호화된다. 도 2a에 도시된 바와 같이, SCN P 0는 암호화된 X L (이는 e= a-u로서 표현됨) 및 암호화된 <θ L >0(이는 (b 0-v 0)로서 표현됨)를 SCN P 1에 전송한다. 일부 구현예들에서, 동일한 랜덤 행렬(u)이 나중의 반복에서 동일한 X L 을 숨기는데 사용되면, 암호화된 X L (e= a-u)는 재전송될 필요가 없다. SCN P 1 측에서, b 1= <θ L >1이라고 가정한다. 이 경우, 랜덤 벡터 분배분(v1)은 <θ L >1의 값을 숨기는데 사용되고, (b 1-v 1)은 SCN P 1에서부터 SCN P 0로 전송된다.
SCN P 0와 SCN P 1 사이의 데이터 교환 후, SCN P 0에서의 단계 1.1 데이터 큐는 다음과 같이 업데이트되며:
c0 = u*f + e*b 0 + z0 수학식 13
여기서 f= b-v이다.
그리고 SCN P 1에서의 단계 1.1 데이터 큐는 다음과 같이 업데이트되며:
c1 = e*b 1 + z1 수학식 14
여기서 c0 및 c1의 각각은 X L θ L 의 분배분이다.
위의 수학식들에 기초하여, X L θ L 은 다음과 같이 계산될 수 있다:
X L θ L = c0 + c1 수학식 15
c0 + c1 = u*f + e*b + u*v 수학식 16
c0 + c1= u*b - u*v + a*b - u*b + u*v 수학식 17
도 2b는 본 명세서의 구현예들에 따라 SLRM의 파라미터들을 반복적으로 업데이트하는 하위 프로세스(200b)의 일 예를 묘사한다.
구체적으로는, 도 2b는 반복 사이클의 단계 1의 제2 하위단계(본 명세서에서의 단계 1.2)를 도시한다. 단계 1.2에서, X R θ R 의 값은 곱셈 삼중 및 비밀 공유를 사용하여 계산된다. 도 2b에 도시된 바와 같이, SCN P 1는 원본 데이터를 제공하는 당사자이다. 원본 데이터를 숨기기 위해, SCN P 1 및 SCN P 0는 난수들을 먼저 획득한다.
도 2b에 도시된 바와 같이, 획득된 난수들은 랜덤 행렬(u), 랜덤 벡터(v), 및 난수(z)를 포함한다. 획득된 난수들은 SCN P 1 및 SCN P 0 사이에 배포된다. SCN P 0는 랜덤 행렬(u), v0로서 표현되는 v의 분배분, z0로서 표현되는 z의 분배분을 획득한다. SCN P 0는 v1으로서 표현되는 v의 분배분, z1으로서 표현되는 z의 분배분을 획득한다. 일부 구현예들에서, z의 분배분들은 준동형 컴퓨테이션에 의해 생성될 수 있다. 일부 구현예들에서, 랜덤 벡터(u)는 SCN P 1에 의해 생성되는 반면, 랜덤 벡터(v)의 분배분들(v0 및 v1)은 SCN P 1 및 SCN P 0에 의해 각각 생성된다. 일부 구현예들에서, u, v, 및 z 그리고 그것들의 분배분들은 신뢰성 있는 서드 파티 상용 서버에 의해 모두가 생성된다. 난수들의 각각과, 대응하는 난수의 분배분은 상호 관련되고 수학식 (12)에 도시된 바와 같은 관계를 충족시킨다.
a= X R b 0= <θ R >0를 가정하면, a의 데이터 정보를 숨기기 위해, SCN P 1은 a를 u에 의해 먼저 암호화하며, 예를 들어, a 및 u 사이의 덧셈, 뺄셈 또는 곱셈을 수행한다. 어떤 구현예에서, 랜덤 행렬(u)은 나중의 반복에서 동일한 X R 을 숨길 때 동일할 수 있다. 비슷하게, <θ R >0는 랜덤 벡터(v 0)를 사용하여 먼저 암호화된다. 도 2b에 도시된 바와 같이, SCN P 1은 암호화된 X R (이는 e= a-u로서 표현됨) 및 암호화된 <θ R >0(이는 (b 0-v0)로서 표현됨)를 SCN P 0에 전송한다. 일부 구현예들에서, 동일한 랜덤 행렬(u)이 나중의 반복에서 동일한 X L 을 숨기는데 사용되면, 암호화된 X L (e= a-u)는 재전송할 필요가 없다. SCN P 0 측에서, b 1= <θ R >1이라고 가정한다. 이 경우, 랜덤 벡터 분배분(v1)은 <θ R >1의 값을 숨기는데 사용되고, (b1-v1)은 SCN P 0에서부터 SCN P 1으로 전송된다.
SCN P 1과 SCN P 0 사이의 데이터 교환 후, SCN P 1에서의 단계 1.2 데이터 큐는 수학식 (13)에 의해 업데이트되고, SCN P 0에서의 단계 1.2 데이터 큐는 수학식 (14)에 의해 업데이트된다. 위의 수학식들에 기초하여, X L θ L 은 수학식 (16) 및 (17)뿐만 아니라 다음 수학식에 의해 계산될 수 있다:
X R θ R = c0 + c1 수학식 18
이와 같이, 하나의 반복 사이클의 단계 1은 완료되고, 수학식 (11)은 수학식 (15) 및 (18)의 결과들을 조합함으로써 계산될 수 있다.
도 3은 본 명세서의 구현예들에 따라 SLRM의 파라미터들을 반복적으로 업데이트하는 하위 프로세스(300)의 일 예를 묘사한다. 구체적으로는, 도 3은 반복 사이클에서의 제2 단계(본 명세서에서 "단계 2"라고 지칭됨)를 예시한다.
단계 2에서, 예측 에러의 열 벡터가 다음의 수학식을 사용하여 계산된다:
E = g(A) -Y i 수학식 19
여기서 A는 단계 1에서 설명된 수학식 (11)에서와 동일한 값이다. g는 다항식 함수 피팅일 수 있는 시그모이드(sigmoid) 함수의 피팅 함수이다. 다시 말하면, g()는 다항식 함수일 수 있고 그것의 최고 차수는 d이다. 본 명세서에서 묘사된 예에서, 세트 d=7이고, g(x)는 다음의 수학식에 의해 표현될 수 있으며:
g(x) = 0.5 + 1.73496*(x/8) -4.19407 * + (x/8)3 5.43402 * (x/8)5 -2.50739 * (x/8)7 수학식 20
여기서 g(A)는 g(A[1]), g(A[2]), ... g(A[m])로 구성된 열 벡터를 나타낸다.
곱셈 삼중 및 비밀 공유를 사용하여, SCN P 0 및 SCN P 1의 각각은 g(<A[i]0> + A[i]1>)를 계산할 필요가 있다. p= <A[i]0>, 및 q=<A[i]1>를 가정한다. 다항식 함수 g(p+q)는 다음의 함수로서 확장될 수 있다:
g(p+q) =h 0(q) + h 1(q)p + h 2(q)p 2 + ... + h d (q)p d 수학식 21
여기서 h 0, h 1, ... h d의 각각은 q의 다항식 함수이고, SCN P 1에 의해 계산될 수 있는 한편, p, p2, p3... pd는 SCN P 0에 의해 계산될 수 있다.
벡터 a = (p, p2, p3... pd)와, 벡터 b = (h1(q), h2(q), ... hd(q))를 가정하면, g(p+q) = a·b + h0(q)이며, 여기서 내적 (a·b)는 최적화된 곱셈 삼중 및 비밀 공유를 포함하는 도 3에 예시된 프로세스에 의해 계산될 수 있다. E의 최종 결과가 비밀 공유에 기초하여 덧셈을 수행함으로써 계산될 수 있다.
도 3에 도시된 바와 같이, 획득된 난수들은 랜덤 행렬(u), 랜덤 벡터(v), 및 난수(z)를 포함한다. 획득된 난수들은 SCN P 0 및 SCN P 1 사이에 배포된다. SCN P 0는 랜덤 행렬(u), z0로서 표현되는 z의 분배분을 획득한다. SCN P 1은 랜덤 벡터(v)와, z1으로서 표현되는 z의 분배분을 획득한다. 난수들의 각각과, 대응하는 난수의 분배분은 상호 관련되고 그것들 사이의 관계는 다음과 같이 표현될 수 있다:
z0 + z1 = u*v 수학식 22
그 다음에, 도 3에 예시된 바와 같이, SCN P 0는 암호화된 데이터 e= a-u를 SCN P 1에 먼저 전송하고, SCN P 1은 암호화된 데이터 f= b-v를 SCN P 0에 전송한다. 단계들 및 컴퓨테이션들은 단계 1에서의 것들과 유사하며, 세부사항들에 대해서는 도 2a 및 도 2b의 이전의 설명들을 참조한다.
SCN P 0와 SCN P 1 사이의 데이터 교환 후, SCN P 0에서의 단계 2 데이터 큐는 다음과 같이 업데이트되며:
c0 = u*f +z0 수학식 23
그리고 SCN P 1에서의 단계 2 데이터 큐는 다음과 같이 업데이트된다:
c1 = e*b + z1 수학식 24
위의 수학식들에 기초하여, (a·b)는 다음과 같이 계산될 수 있다:
(a·b) = c0 + c1 수학식 25
c0 + c1 = u*f + e *b + u*v 수학식 26
c0 + c1= u*b - u*v + a*b - u*b + u*v 수학식 27
도 4a는 본 명세서의 구현예들에 따라 SLRM의 파라미터들을 반복적으로 업데이트하는 하위 프로세스(400a)의 일 예를 묘사한다. 도 4b는 본 명세서의 구현예들에 따라 SLRM의 파라미터들을 반복적으로 업데이트하는 하위 프로세스(400b)의 일 예를 묘사한다.
구체적으로는, 도 4a 및 도 4b는 하나의 반복 사이클의 제3 단계(본 명세서에서의 "단계 3")를 수행하기 위한 프로세스를 예시한다.
단계 3에서, 열 벡터(θ)와, SCN P 0 및 SCN P 1의 각각은 업데이트된 θ의 분배분을 획득할 수 있다. 이 단계에서, 업데이트된 θ는 다음과 같이 표현될 수 있다:
Figure pct00003
수학식 28
여기서 E는 단계 2의 수학식 (19)에서와 동일한 E이고, 여기서
XTE= (X L ) T E||(X R ) T E 수학식 29
(X L ) T E를 계산하는 방법은 X L θ L 을 계산하는 방법과 동일한 반면, (X R ) T E를 계산하는 방법은 X R θ R 을 계산하는 방법과 동일하고, 여기서 반복되지 않을 것이다. 수학식 (29)에서, X는 다수의 샘플들의 특징 데이터를 포함하는 행렬을 나타내고, E는 에러 벡터를 나타낸다.
단계 3 후, 하나의 반복 사이클이 완료되고, 훈련 프로세스는 다음의 반복 사이클에의 진입 및 단계 1 내지 단계 3의 반복 중 어느 하나를 하거나, 또는 아래에서 더 상세히 설명되는 바와 같이, 훈련 프로세스는 조건이 충족되면 종료된다.
도 5는 본 명세서의 구현예들에 따라 SLRM의 파라미터들을 업데이트하는 반복들을 종료할지의 여부를 결정하는 프로세스(500)의 일 예를 묘사한다.
일부 구현예들에서, 반복들은 완료된 반복 사이클들의 수가 미리 결정된 수에 도달할 때 종료될 수 있다. 일부 구현예들에서, 문턱값이 결정되고, 두 개의 연속적인 반복 결과들 사이의 차이가 해당 문턱값 미만일 때, 반복은 종료된다.
구체적으로는, 예를 들어, 하나의 반복 사이클 전 및 후의 파라미터들이 θ 및 θ'이라고 가정하여, 비밀 공유를 사용하여 차이 D= (θ'-θ)를 계산한다. a 0 = <D T >0, a 1 = <D T >1, b 0 = <D>0, 및 b 1 = <D>1. SCN P 0 및 SCN P 1의 각각은 곱셈 삼중 및 비밀 공유를 사용하여 D T D의 분배분을 계산하고, 각각의 결과를 결합하여 D를 획득한다.
도 5에 도시된 바와 같이, 일부 구현예들에서, SCN P 0는 랜덤 행렬들(u0v 0)을 생성하고, SCN P 0는 랜덤 행렬들(u1 및 v1)을 생성한다. 후속 컴퓨테이션의 방법은 이전에 도 2 및 도 4에서 설명된 방법들과 유사하고, 여기서 반복되지 않을 것이다. SCN P 0 및 SCN P 1 사이에 데이터가 교환된 후, SCN P 0에서의 컴퓨테이션 결과는 다음이 되며:
c0 =-e*f + a 0*f + eb 0 + z0 수학식 30
여기서 f= b-v이다.
SCN P 1에서의 컴퓨테이션 결과는 다음이 되며:
c1 = a1*f+eb1+z1 수학식 31
여기서 c0 및 c1의 각각은 D T D의 분배분이다.
위의 수학식들에 기초하여, D T D는 다음과 같이 계산될 수 있다:
D T D = c0 + c1 수학식 32
c0 + c1 = e*f + a *f + e*b + u*v 수학식 33
c0 + c1 = u*f + a*b - u*b + u*v 수학식 34
c0 + c1 = u*b - u*v + a*b - u*b + u*v 수학식 35
도 6은 본 명세서의 구현예들에 따라 이벤트 중심 상호작용 보안 모델링 절차를 사용하여 다자간 SLRM을 훈련하는 프로세스(600)의 일 예를 묘사한다.
일부 구현예들에서, 방법(600)의 다양한 단계들이 병렬로, 조합하여, 루프들로, 또는 임의의 순서로 실행될 수 있다. 표현의 명료화를 위해, 뒤따르는 설명은 이 설명에서 다른 도면들의 맥락에서 방법(600)을 일반적으로 설명한다. 그러나, 방법(600)은, 예를 들어, 적절한 대로, 임의의 적합한 시스템, 환경, 소프트웨어, 및 하드웨어, 또는 시스템들, 환경들, 소프트웨어, 및 하드웨어의 조합에 의해, 수행될 수 있다는 것이 이해될 것이다. 예를 들어, 방법(600)은 비밀 공유를 사용하여 머신 러닝 알고리즘들을 실행하도록 구성되는 하나 이상의 데이터 프로세싱 장치에 의해 수행될 수 있다. 데이터 프로세싱 장치는, 예를 들어, 범용 CPU들 또는 하드웨어 가속기들 이를테면 GPU들, FPGA들, 및 심지어 맞춤형 ASIC 프로세서들 중 하나 이상을 포함하거나 또는 그러한 것들의 하나 이상에 의해 구현될 수 있다.
일부 구현예들에서, 도 6에 예시된 바와 같이, 프로세스(600a)(단계 602a 내지 622a를 포함함)가 데이터베이스와 연계하여 노드 A에 의해 수행되는 한편, 프로세스(600b)(단계 602b 내지 624b를 포함함)는 데이터베이스와 연계하여 노드 B에 의해 수행된다. 데이터베이스는 원격 사전 서버(Redis)일 수 있고 노드 A 및 B에 대한 날짜의 송신 및 임시 저장을 지원한다. 일부 구현예들에서, 데이터는 데이터베이스를 거치지 않고 SCN A 및 SCN B(112, 114) 사이에서 송신될 수 있고 가입 큐들은 노드 A 및 노드 B의 각각에서 국부적으로 저장되고 업데이트될 수도 있다. 반복 프로세스가 시작되기 전에, 노드 A 및 노드 B의 각각은 독립적인 모델링 프로세스에 진입하고 하나의 배치 반복을 개시한다. 노드 A 및 노드 B의 각각은 데이터를 게시하고 구독할 수 있으며, 그러므로 노드 A 및 노드 B의 각각은 게시자(또는 "생산자")이고 또한 가입자(또는 "소비자")이다. 이 예에서의 이벤트 중심 모델 하에서, 심지어 노드 A 및 노드 B가 서로 응답하더라도, 그들의 모델링 프로세스(600a 및 600b)는 독립적이고 따로따로 프로세싱된다.
602a 및 602b에서, 노드 A 및 노드 B 각각은 하나의 독립적인 배치 반복으로 진입한다. 602a 및 602b는 동시에 또는 연속하여 일어날 수 있다. 602a 후, 프로세스(600a)는 604a로 진행한다. 602b 후, 프로세스(600b)는 604b로 진행한다.
604a에서, 노드 A는 단계 1 데이터를 Node B에 게시한다. 일부 구현예들에서, 단계 1 데이터는 암호화된 샘플 데이터를 데이터베이스에 전송함으로써 게시되며, 그래서 데이터베이스는 가입자 큐를 저장하고 업데이트할 수 있다. 일단 노드 A가 이 단계를 완료하면, 노드 B에게 노드 A로부터의 단계 1 데이터를 게시하는 것이 완료되었음을 알리기 위해 통지가 노드 B로 전송될 수 있다. 604a 후, 프로세스(600a)는 606a로 진행한다.
606a에서, 노드 A는 노드 B로부터의 단계 1 데이터를 구독한다. 일부 경우들에서, SLRM이 비밀 공유에 기초하여 훈련되기 때문에, 노드 A는 훈련 자체를 완료할 수 없고 노드 A 및 노드 B로부터의 양 데이터는 모델에 대한 입력으로서 사용된다. 일부 구현예들에서, 노드 A는 노드 B로부터의 단계 1 데이터를 노드 B에게 요청함으로써 이러한 구독을 행한다. 데이터베이스에서의 데이터 큐가 노드 B로부터의 단계 1 데이터에 의해 업데이트되면, 노드 A는 통지를 수신할 것이다. 이때 노드 A가 노드 B로부터 통지를 수신하지 못하였기 때문에, 600a의 다음의 단계는 트리거될 수 없고 프로세스(600a)는 일시적으로 중지된다.
한편, 604b에서, 노드 B는 단계 1 데이터를 노드 A에 게시한다. 일부 구현예들에서, 단계 1 데이터는 암호화된 샘플 데이터를 데이터베이스에 전송함으로써 게시되며, 그래서 데이터베이스는 가입자 큐를 저장하고 업데이트할 수 있다. 일단 노드 B가 이 단계를 완료하면, 노드 A에게 노드 B로부터의 단계 1 데이터 게시가 완료되었음을 알리기 위해 통지가 노드 A에 전송될 수 있다. 604b 후, 프로세스(600b)는 606b로 진행한다.
606b에서, 노드 B는 노드 A로부터의 단계 1 데이터를 구독한다. 이때 노드 A는 단계 1 데이터를 이미 게시하였고 노드 B는 노드 A로부터의 통지를 이미 수신하였기 때문에, 다음의 단계는 트리거되고 606b 후, 프로세스(600b)는 608b로 진행한다.
608b에서, 노드 B는 자신 소유의 데이터와 노드 A로부터 수신된 단계 1 데이터를 사용하여 단계 1 결과를 국부적으로 컴퓨팅한다. 이 단계의 수학식들 및 세부 단계들에는 이전에 설명된 도 2b가 참조될 수 있다. 608b 후, 프로세스(600b)는 610b로 진행한다.
양 단계들(610b 및 612b)이 노드 B에 의해 독립적으로 수행될 수 있기 때문에, 노드 B는 노드 A의 액션에 의존하는 일 없이 이들 두 단계들을 함께 또는 연속하여 수행할 수 있다. 단계들(610b 및 612b) 후, 데이터베이스에서의 가입자 큐는 노드 B에 의해 게시된 단계 2 데이터를 사용함으로써 업데이트되고, 게시의 통지가 노드 A에 전송된다. 단계 612b 후, 노드 B가 노드 A로부터 수신되지 않았기 때문에, 다음의 단계는 트리거되지 않을 수 있고 프로세스(600b)는 일시적으로 중지된다.
프로세스(600a)의 단계 606a로 복귀한다. 이때 노드 B가 단계 604b를 이미 수행하였고, 노드 A가 노드 B로부터의 통지들을 이미 수신하였다면, 프로세스(600a)의 다음의 단계는 트리거되고 606a 후, 프로세스(600a)는 608a로 진행한다.
단계들(608a~612a)이 노드 B로부터의 데이터 없이 노드 A에 의해 독립적으로 수행될 수 있기 때문에, 노드 A는 이들 단계들을 연속하여 수행할 수 있다. 단계 610a 후, 데이터베이스에서의 가입자 큐는 노드 A에 의해 게시된 단계 2 데이터를 사용하여 업데이트되고, 게시의 통지가 노드 B로 전송된다. 단계 612a 후, 노드 B가 단계 610b를 이미 수행하였고 노드 A가 대응하는 통지를 수신하였다면, 600a의 다음의 단계는 트리거되고 프로세스(600a)는 614a로 진행한다. 그렇지 않으면, 프로세스(600a)는 단계 610b가 수행되기까지 일시적으로 중지된다.
단계들(614a~618a)이 노드 A에 의해 독립적으로 수행될 수 있기 때문에, 노드 A는 이들 단계들을 연속하여 수행할 수 있다. 단계들(614a 및 616a) 후, 데이터베이스에서의 가입자 큐는 노드 A에 의해 게시된 단계 3 데이터를 사용하여 업데이트되고, 게시의 통지가 노드 B로 전송된다. 단계 618a 후, 노드 A가 노드 B로부터 통지를 수신하지 않았기 때문에, 프로세스(600a)는 노드 B로부터의 통지가 수신되기까지 일시적으로 중지된다.
프로세스(600b)로 복귀한다. 노드 A가 자신의 단계 2 데이터를 게시하고 대응하는 통지를 전송한 단계 610a 후, 프로세스(600b)의 다음의 단계는 트리거되고 프로세스(600b)는 614b로 진행할 수 있다. 614b에서, 노드 B는 자신 소유의 데이터와 노드 A로부터 수신된 단계 2 데이터를 사용하여 단계 2 결과를 국부적으로 컴퓨팅한다. 컴퓨테이션 단계의 수학식들 및 세부 단계들에는 이전에 설명된 도 3이 참조될 수 있다. 614b 후, 프로세스(600b)는 616b로 진행한다.
616b~620b의 각각의 단계가 노드 B에 의해 독립적으로 수행될 수 있기 때문에, 노드 B는 이들 세 개의 단계들을 연속하여 수행할 수 있다. 616b에서, 시그모이드 (wx)-y의 값은 수학식 (20)을 사용하여 컴퓨팅된다. 단계들(618b 및 620b) 후, 데이터베이스에서의 가입자 큐는 노드 B에 의해 게시된 단계 3 데이터를 사용함으로써 업데이트되고, 게시의 통지가 노드 A에 전송된다. 단계 620b 후, 그때 노드 A가 616a를 이미 수행하였고 Node B가 노드 A로부터 통지를 수신하였다면, 600b의 다음의 단계는 트리거되고 프로세스(600b)는 622b로 진행한다.
622b에서, 노드 B는 자신 소유의 데이터 및 노드 A로부터 수신된 단계 3 데이터를 사용하여 단계 3 결과들을 국부적으로 컴퓨팅한다. 컴퓨테이션의 수학식들 및 세부 단계들 미리 설명된 도 4b에서 설명되었다. 622b 후, 다음의 반복에 진입할지의 여부가 노드 A 및 노드 B에 의해 공동으로 결정되기 때문에, 그리고 노드 B가 노드 B로부터의 통지를 수신하지 않았기 때문에, 프로세스(600b)는 일시적으로 중지된다.
프로세스(600a)로 복귀하여, 노드 B가 자신의 단계 3 데이터를 게시하고 대응하는 통지를 전송한 단계 618b 후, 프로세스(600a)의 다음의 단계는 트리거되고 프로세스(600a)는 620a로 진행할 수 있다. 620a에서, 노드 A는 자신 소유의 데이터와 노드 A로부터 수신된 단계 3 데이터를 사용하여 단계 3 결과를 국부적으로 컴퓨팅한다. 컴퓨테이션 단계의 수학식들 및 세부 단계들에는 이전에 설명된 도 3이 참조될 수 있다. 620a 후, 노드 A 및 노드 B 둘 다는 반복 사이클을 완료하였다.
도 4에서 이전에 설명된 바와 같이, 반복 사이클을 종료할지의 여부는 미리 결정된 조건이 충족되는지의 여부에 달려있다. 그렇다면, 양 프로세스들(600a 및 600b)은 622a 및 624a로 진행하고, 602a~620a와, 602b~622b로부터의 단계들을 다시 반복한다. 그렇지 않다면, 반복은 종료되고 양 프로세스들(600a 및 600b)은 618a 및 622b에서 각각 중단된다.
도 7은 본 명세서의 구현예들에 따라 실행될 수 있는 프로세스(700)의 일 예를 묘사한다. 일부 구현예들에서, 방법(700)의 다양한 단계들이 병렬로, 조합하여, 루프들로, 또는 임의의 순서로 실행될 수 있다. 표현의 명료화를 위해, 뒤따르는 설명은 이 설명에서 다른 도면들의 맥락에서 방법(700)을 일반적으로 설명한다. 그러나, 방법(700)은, 예를 들어, 적절한 대로, 임의의 적합한 시스템, 환경, 소프트웨어, 및 하드웨어, 또는 시스템들, 환경들, 소프트웨어, 및 하드웨어의 조합에 의해, 수행될 수 있다는 것이 이해될 것이다. 예를 들어, 방법(700)은 비밀 공유를 사용하여 머신 러닝 알고리즘들을 실행하도록 구성되는 하나 이상의 데이터 프로세싱 장치에 의해 수행될 수 있다. 데이터 프로세싱 장치는, 예를 들어, 범용 CPU들 또는 하드웨어 가속기들 이를테면 GPU들, FPGA들, 및 심지어 맞춤형 ASIC 프로세서들 중 하나 이상을 포함하거나 또는 그러한 것들의 하나 이상에 의해 구현될 수 있다.
702에서, SLRM을 위한 샘플 훈련 데이터는 비밀 공유를 사용하여 두 개의 분배분들로 나누어지고, 각각의 분배분은 SCN에 배포된다. 일부 구현예들에서, 샘플 데이터 행렬(X)이 X L X R 로 나누어지고, 샘플 데이터 행렬(X L )은 SCN 1에 속하고, 샘플 데이터 행렬(X R )은 SCN 2에 속한다. 702 후, 프로세스(700)는 704로 진행한다.
704에서, SLRM의 파라미터들은 샘플 훈련 데이터의 각각의 분배분을 사용하여 반복적으로 업데이트된다. 일부 구현예들에서, SLRM의 목적 함수가 미니 배치 확률적 경사 하강(SGD) 법을 사용하여 최적화된다.
일부 구현예들에서, SLRM은 다음과 같이 표현될 수 있는 로지스틱 회귀 함수에 기초하며:
Figure pct00004
여기서 m은 미니 배치 SGD의 샘플 사이즈를 나타낸다. X는 m*k 샘플 행렬을 나타낸다. 행렬 X의 각각의 행은 샘플을 나타내고, X i 는 행렬 X의 i번째 행을 나타내며, [j]는 벡터 X i j번째 원소를 나타낸다. 샘플 데이터 행렬(X)은 X L X R 로 나누어지고, 샘플 데이터(X L )는 SCN P 0에 속하는 한편, X R 은 SCN P 1에 속한다. θ는 파라미터 열 벡터를 나타내고, 열 벡터 θ는 θ L 및 θ R 로 수직으로 나누어질 수 있다.
일부 구현예들에서, SLRM을 훈련하는 것은 이벤트 중심 모델을 사용하는 것을 포함한다. 704 후, 프로세스(700)는 706으로 진행한다.
706에서, 각각의 SCN에 대해, A의 분배분이 다음에 기초하여 계산된다:
A= Xθ =X L θ L +X R θ R
일부 구현예들에서, X L θ L 및 X R θ R 을 계산하는 것은, 난수들을 사용함으로써 각각의 SCN으로부터 제공된 원본 데이터를 숨기는 것과, 숨겨진 데이를 SCN들 사이에서 교환하는 것을 포함한다. 일부 구현예들에서, 원본 데이터를 숨기기 전에, 난수들이 각각의 SCN에 의해 획득된다. 일부 구현예들에서, 난수는 숫자, 벡터, 또는 행렬일 수 있다. 일부 구현예들에서, 난수들은 SCN에 의해 생성될 수 있다. 일부 구현예들에서, 난수는 서드 파티 기관에 요청되고 수신될 수 있다. 706 후, 프로세스(700)는 708로 진행한다.
708에서, 예측 에러의 열 벡터가 다음에 기초하여 계산되며:
E = g(A) -Y i
여기서 g는 다항식 함수 피팅일 수 있는 시그모이드 함수의 피팅 함수이다. 일부 구현예들에서, 차수 또는 g(x)가 7이면, g(x)는 다음의 수학식에 의해 표현될 수 있으며:
g(x) = 0.5 + 1.73496* (x/8) - 4.19407 * + (x/8)3 5.43402 * (x/8)5 -2.50739 * (x/8)7
여기서 g(A)는 g(A[1]), g(A[2]), ... g(A[m])로 구성된 열 벡터를 나타낸다. 708 후, 프로세스(700)는 710으로 진행한다.
710에서, 업데이트된 열 벡터(θ)는 다음과 같이 표현될 수 있으며:
Figure pct00005
여기서 X T E= (X L ) T E||(X R ) T E
710 후, 프로세스(700)는 712로 진행한다.
712에서, 반복은 미리 결정된 조건이 충족되면 종료된다. 일부 구현예들에서, 반복들은 완료된 반복 사이클들의 수가 미리 결정된 수에 도달할 때 종료될 수 있다.
일부 구현예들에서, 문턱값이 결정되고, 두 개의 연속적인 반복 결과들 사이의 차이가 해당 문턱값 미만일 때, 반복은 종료된다. 712 후, 프로세스(700)는 중단될 수 있다.
도 8은 본 명세서의 구현예들에 따라 실행될 수 있는 프로세스(800)의 일 예를 묘사한다. 일부 구현예들에서, 프로세스(800)의 다양한 단계들이 병렬로, 조합하여, 루프들로, 또는 임의의 순서로 실행될 수 있다. 표현의 명료화를 위해, 뒤따르는 설명은 이 설명에서 다른 도면들의 맥락에서 프로세스(800)를 일반적으로 설명한다. 그러나, 프로세스(800)는, 예를 들어, 적절한 대로, 임의의 적합한 시스템, 환경, 소프트웨어, 및 하드웨어, 또는 시스템들, 환경들, 소프트웨어, 및 하드웨어의 조합에 의해, 수행될 수 있다는 것이 이해될 것이다. 예를 들어, 프로세스(800)는 비밀 공유를 사용하여 머신 러닝 알고리즘들을 실행하도록 구성되는 하나 이상의 데이터 프로세싱 장치에 의해 수행될 수 있다. 데이터 프로세싱 장치는, 예를 들어, 범용 CPU들 또는 하드웨어 가속기들 이를테면 GPU들, FPGA들, 및 심지어 맞춤형 ASIC 프로세서들 중 하나 이상을 포함하거나 또는 그러한 것들의 하나 이상에 의해 구현될 수 있다.
802에서, SLRM은 SLRM에 연관된 파라미터들의 수를 결정함으로써 사용자에 의해 초기화된다. 일부 구현예들에서, 그 파라미터들은 훈련 데이터의 사이즈, SLRM의 설정들에 대응하는 훈련 데이터에 연관된 특징들, SLRM의 하이퍼파라미터들을 포함할 수 있다.
일부 구현예들에서, 사용자가 SLRM을 초기화한 후, SLRM에 연관된 정보는 보안 관리 에이전트에 전송된다. 일부 구현예들에서, 보안 관리 에이전트는 그 모델에 피드된 SLRM 및 훈련 데이터를 프로세싱한다. 일부 구현예들에서, 노드 관리 에이전트가 훈련에 참여하는 SCN들을 선택하고 관리하도록 구성된다. 일부 구현예들에서, 보안 관리 에이전트 및 노드 관리 에이전트의 양쪽 모두는 서드 파티 에이전트로서 구성될 수 있다. 802 후, 프로세스(800)는 804로 진행한다.
804에서, 난수들이 난수 제공기로부터 적어도 두 개의 SCN들에 의해 요청되고, 요청된 난수들은 각각의 SCN에 저장된 데이터를 암호화하는데 사용된다. 일부 구현예들에서, 난수는 숫자, 벡터, 또는 행렬 등일 수 있다. 일부 구현예들에서, 난수들은 적어도 하나의 SCN에 의해 생성될 수 있다. 일부 구현예들에서, 난수들은 독립적인 서드 파티에 의해 제공될 수 있다.
일부 구현예들에서, 데이터를 암호화하는 것은 데이터 및 수신된 난수들을 사용하여 컴퓨테이션들을 수행하는 것을 포함한다. 일부 구현예들에서, 수행되는 컴퓨테이션들은 덧셈, 뺄셈, 및 곱셈 중 적어도 하나이다. 802 후, 프로세스(800)는 804로 진행한다.
806에서, 암호화된 데이터는 비밀 공유에 기초하여 SLRM의 파라미터들을 반복적으로 업데이트하기 위한 입력으로서 사용된다. 이 단계의 세부사항들은 도 7에서 더 설명될 것이다. 806 후, 프로세스(800)는 808로 진행한다.
808에서, 훈련된 SLRM의 출력은 각각의 SCN에 대한 서비스를 수행하는데 사용된다. 일부 구현예들에서, 서비스는 예측 서비스 또는 분류 서비스일 수 있다. 808 후, 프로세스(800)는 중단된다.
도 9는 본 명세서의 구현예들에 따라 장치(900)의 모듈들을 예시하는 도면의 일 예를 묘사한다. 장치(900)는 다자간 보안 로지스틱 회귀 모델들을 훈련시키기 위한 장치의 예시적인 구현예일 수 있다. 장치(900)는 위에서 설명된 구현예들에 대응할 수 있고, 장치(900)는, 비밀 공유(SS)를 사용하여 보안 로지스틱 회귀 모델(SLRM)을 위한 샘플 훈련데이터를 복수의 분배분들 ― 각각의 분배분은 보안 컴퓨테이션 노드(SCN)에 배포됨 ― 로 나누는 디바이더 또는 나누는 유닛(902); 샘플 훈련 데이터의 각각의 분배분을 사용하여 SLRM에 연관된 파라미터들을 반복적으로 업데이트 ― 반복적 업데이트는 미리 결정된 조건의 발생까지 계속함 ― 하는 업데이터 또는 업데이팅 유닛(904); 및 SLRM에 연관된 파라미터들을 반복적으로 업데이트 한 후, 각각의 SCN에 의한 사용을 위해 구성된 훈련 결과를 출력하는 출력기 또는 출력 유닛(906)을 포함한다.
옵션적 구현예에서, SLRM의 목적 함수는 미니 배치 확률적 경사 하강(SGD) 법을 사용하여 최적화되는 로지스틱 회귀 함수이고, 로지스틱 회귀 함수는 수학식 (2)로서 표현된다.
옵션적 구현예에서, 업데이터 또는 업데이팅 유닛(904)은 이벤트 중심 모델에 따라 SLRM에 연관된 파라미터들을 반복적으로 업데이트하는 것을 수행하는데 사용된다.
옵션적 구현예에서, 업데이터 또는 업데이팅 유닛(904)은 각각의 SCN에 대해, 열 벡터를 나타내는 A의 값을 컴퓨테이션하는 것 ― 컴퓨테이션하는 것은 수학식 (11)에 기초하여 수행됨; 수학식 (19)에 기초하여 예측 에러의 열 벡터를 결정하는 것; 및 수학식 (28) 및 (29)에 기초하여 업데이트된 열 벡터를 결정하는 것에 사용된다.
옵션적 구현예에서, 열 벡터를 나타내는 A의 분배분을 계산하는 것은, 난수들을 사용하여 각각의 SCN에 의해 제공된 원본 데이터를 암호화하는 것과, SCN들 사이에 암호화된 데이터를 교환하는 것을 포함한다.
옵션적 구현예에서, 난수들의 각각은 숫자, 벡터, 또는 행렬 중 적어도 하나이다.
옵션적 구현예에서, 미리 결정된 조건은 미리 결정된 문턱값 미만인, 두 개의 연속적인 반복 결과들 사이의 차이의 발생이다.
이전의 구현예들에서 예시되는 시스템, 장치, 모듈, 또는 유닛은 컴퓨터 칩 또는 엔티티를 사용하여 구현될 수 있거나, 또는 특정한 함수를 갖는 제품을 사용하여 구현될 수 있다. 전형적인 구현 디바이스가 컴퓨터이고, 컴퓨터는 개인용 컴퓨터, 랩톱 컴퓨터, 셀룰러 폰, 카메라 폰, 스마트폰, 개인 정보 단말기, 미디어 플레이어, 내비게이션 디바이스, 이메일 수신 및 전송 디바이스, 게임 콘솔, 태블릿 컴퓨터, 착용가능 디바이스, 또는 이들 디바이스들의 임의의 조합일 수 있다.
그 장치에서의 각각의 유닛의 기능들 및 역할들의 구현 프로세스에 대해, 이전의 방법에서의 대응하는 단계들의 구현 프로세스가 참조될 수 있다. 세부사항들은 단순화를 위해 여기서 생략된다.
장치 구현예가 방법 구현예에 기본적으로 대응하기 때문에, 관련된 부분들에 대해, 방법 구현예에서의 관련된 설명들이 참조될 수 있다. 이전에 설명된 장치 구현예는 단지 일 예일뿐이다. 별개의 부분들로서 설명되는 유닛들은 물리적으로 별개일 수도 있거나 또는 아닐 수도 있고, 유닛들로서 디스플레이되는 부분들은 물리적 유닛들일 수 있거나 또는 아닐 수도 있으며, 하나의 포지션에 위치될 수도 있거나, 또는 다수의 네트워크 유닛들 상에 분산될 수도 있다. 그 모듈들의 일부 또는 전부는 명세서의 해법들의 목적들을 성취하기 위한 실제 요구들에 기초하여 선택될 수 있다. 당해 기술분야의 통상의 지식을 가진 자가 창조적 노력 없이 본 출원의 구현예들을 이해하고 구현할 수 있다.
다시 도 9를 참조하면, 그것은 다자간 보안 로지스틱 회귀 모델들을 훈련시키는 장치의 내부 기능 모듈 및 구조를 예시하는 것으로서 해석될 수 있다. 실행 장치는 훈련을 모델링하는 것을 가능하게 하도록 구성되는 장치의 일 예일 수 있다.
발명의 주제의 구현예들과 본 명세서에서 설명되는 액션들 및 동작들은 디지털 전자 회로부로, 유형으로 구현되는 컴퓨터 소프트웨어 또는 펌웨어로, 본 명세서에서 개시되는 구조들과 그것들의 구조적 동등물들을 포함하는 컴퓨터 하드웨어로, 또는 그것들의 하나 이상의 조합들로 구현될 수 있다. 본 명세서에서 설명되는 발명의 주제의 구현예들은 데이터 프로세싱 장치에 의한 실행을 위해, 또는 데이터 프로세싱 장치의 동작을 제어하기 위해, 컴퓨터 프로그램 캐리어 상에 인코딩되는 하나 이상의 컴퓨터 프로그램들, 예컨대, 컴퓨터 프로그램 명령어들의 하나 이상의 모듈들로서 구현될 수 있다. 캐리어는 유형의 비일시적 컴퓨터 저장 매체일 수도 있다. 대안적으로, 또는 덧붙여서, 캐리어는 데이터 프로세싱 장치에 의한 실행을 위해 적합한 수신기 장치로의 송신을 위한 정보를 인코딩하도록 생성되는 인위적으로 생성된 전파되는 신호, 예컨대, 머신 생성된 전기, 광학적, 또는 전자기 신호일 수도 있다. 컴퓨터 저장 매체는 머신 판독가능 저장 디바이스, 머신 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스이거나 또는 그 일부, 또는 그것들 중 하나 이상의 조합일 수 있다. 컴퓨터 저장 매체는 전파되는 신호가 아니다.
"데이터 프로세싱 장치"라는 용어는, 예로서 프로그램가능 프로세서, 컴퓨터, 또는 다수의 프로세서들 또는 컴퓨터들을 포함하는, 데이터를 프로세싱하는 장치, 디바이스들, 및 머신들의 모든 종류들을 포괄한다. 데이터 프로세싱 장치는 특수 목적 로직 회로부, 예컨대, FPGA(field programmable gate array), ASI (application-specific integrated circuit), 또는 GPU(graphics processing unit)를 포함할 수 있다. 장치는, 하드웨어 외에도, 컴퓨터 프로그램들을 위한 실행 환경을 만드는 코드, 예컨대, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 그것들 중 하나 이상의 조합을 구성하는 코드를 또한 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 모듈, 소프트웨어 모듈, 엔진, 스크립트, 또는 코드라고 또한 지칭되거나 또는 설명될 수도 있는 컴퓨터 프로그램이, 컴파일형 또는 인터프리트형 언어들, 또는 선언적 또는 절차적 언어들을 포함하는, 임의의 형태의 프로그래밍 언어로 기입될 수 있으며; 그리고 독립실행형 프로그램으로서 또는 모듈로서, 컴포넌트, 엔진, 서브루틴, 또는 하나 이상의 로케이션들에서 데이터 통신 네트워크에 의해 상호접속되는 하나 이상의 컴퓨터들을 포함할 수도 있는 컴퓨터 환경에서 실행하기에 적합한 다른 유닛을 포함하는, 임의의 형태로 전개될 수 있다.
컴퓨터 프로그램이 파일 시스템에서의 파일에 대응할 수도 있지만, 반드시 그런 것은 아니다. 컴퓨터 프로그램은 다른 프로그램들 또는 데이터, 예컨대, 마크업 언어 문서에 저장된 하나 이상의 스크립트들을 보유하는 파일의 부분에, 해당 프로그램에 전용되는 단일 파일에, 또는 다수의 조정된 파일들, 예컨대, 코드의 하나 이상의 모듈들, 서브-프로그램들, 또는 부분들을 저장하는 파일들에 저장될 수 있다.
본 명세서에서 설명되는 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 동작들을 수행하는 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 컴퓨터들에 의해 수행될 수 있다. 그 프로세스들 및 로직 흐름들은 특수 목적 로직 회로부, 예컨대, FPGA, ASIC, 또는 GPU에 의해, 또는 특수 목적 로직 회로부 및 하나 이상의 프로그래밍된 컴퓨터들의 조합에 의해 또한 수행될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터들은 일반 또는 특수 목적 마이크로프로세서들 또는 양쪽 모두, 또는 임의의 다른 종류의 중앙 프로세싱 유닛에 기초할 수 있다. 일반적으로, 중앙 프로세싱 유닛이 판독전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 엘리먼트들은 명령어들을 실행하는 중앙 프로세싱 유닛과 명령어들 및 데이터를 저장하는 하나 이상의 메모리 디바이스들을 포함할 수 있다. 중앙 프로세싱 유닛과 메모리는 특수 목적 로직 회로부에 의해 보완되거나, 또는 특수 목적 로직 회로부에 의해 통합될 수 있다.
일반적으로, 컴퓨터가 하나 이상의 대용량 저장 디바이스들을 또한 포함하거나, 또는 그러한 디바이스들로부터 데이터를 수신하거나 또는 그러한 디바이스들에 데이터를 전송하도록 동작적으로 결합될 것이다. 대용량 저장 디바이스들은, 예를 들어, 자기, 광-자기, 또는 광학적 디스크들, 또는 고체 상태 드라이브들일 수 있다. 그러나, 컴퓨터가 이러한 디바이스들을 가질 필요는 없다. 더구나, 컴퓨터가 다른 디바이스, 예컨대, 단지 몇몇 이름을 들면, 모바일 전화기, 개인 정보 단말기(personal digital assistant, PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 글로벌 포지셔닝 시스템(Global Positioning System, GPS) 수신기, 또는 휴대용 저장 디바이스, 예컨대, 유니버설 직렬 버스(universal serial bus, USB) 플래시 드라이브에 내장될 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에서 설명되는 발명의 주제의 구현예들은 정보를 사용자에게 디스플레이하기 위한 디바이스, 예컨대, LCD(liquid crystal display) 모니터와, 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 입력 디바이스, 예컨대, 키보드, 및 포인팅 디바이스, 예컨대, 마우스, 트랙볼 또는 터치패드를 갖는 컴퓨터 상에 구현되거나 또는 그러한 컴퓨터와 통신하도록 구성될 수 있다. 다른 종류들의 디바이스들이 사용자와의 상호작용을 또한 제공하기 위해 사용될 수 있으며; 예를 들어, 사용자에게 제공된 피드백은 임의의 형태의 감지 피드백, 예컨대, 시각적 피드백, 청각적 피드백, 또는 촉각 피드백일 수 있고; 사용자로부터의 입력은, 음향, 음성, 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 덧붙여서, 컴퓨터가, 사용자에 의해 사용되는 디바이스에 문서들을 전송하고 그 디바이스로부터 문서들을 수신함으로써; 예를 들어, 웹 브라우저로부터 수신된 요청들에 응답하여 사용자의 디바이스 상의 웹 브라우저에 웹 페이지들을 전송함으로써, 또는 사용자 디바이스, 예컨대, 스마트폰 또는 전자 태블릿 상에서 실행중인 앱과 상호작용함으로써 사용자와 상호작용할 수 있다. 또한, 텍스트 메시지들 또는 다른 형태들의 메시지를 개인용 디바이스, 예컨대, 메시징 애플리케이션을 실행하고 있는 스마트폰에 전송하고, 답신으로 응답 메시지들을 사용자로부터 수신함으로써 컴퓨터가 사용자와 상호작용할 수 있다.
본 명세서는 많은 특정 구현 세부사항들을 포함하며, 이것들은 청구항들 자체에 의해 한정되는 청구된 발명의 범위에 대한 제한으로서 해석되지 않아야 하며, 오히려 특정 구현예들에 특정될 수도 있는 특징들의 설명들로서 해석되어야 한다. 개별 구현예들의 맥락에서 본 명세서에서 설명되는 특정한 특징들은 단일 구현예에서 조합하여 실현될 수 있다. 반대로, 단일 구현예들의 맥락에서 설명되는 다양한 특징들은 다수의 구현예들에서 따로따로 또는 임의의 적합한 서브컴비네이션으로 또한 실현될 수 있다. 더구나, 비록 특징들이 특정한 조합들로 작용하는 것으로 위에서 설명될 수도 있고 그와 같이 처음에 청구된 경우에도, 청구된 조합들로부터의 하나 이상의 특징들은 일부 경우들에서 조합으로부터 삭제될 수 있고, 청구항은 서브컴비네이션 또는 서브컴비네이션의 변형예를 위한 것일 수도 있다.
마찬가지로, 동작들이 도면들에서 그리고 청구항들에서 특정 순서로 묘사되었지만, 이는, 소망의 결과들을 획득하기 위해, 그런 동작들이 도시된 특정 순서로 또는 순차적 순서로 수행되는 것, 또는 모든 예시된 동작들이 수행될 것을 요구하는 것으로서 이해하지 않아야 한다. 특정한 환경들에서, 멀티태스킹 및 병렬 프로세싱이 유익할 수도 있다. 더구나, 위에서 설명된 구현예들에서 다양한 시스템 모듈들 및 컴포넌트들의 구분은 모든 구현예들에서 그러한 구분을 요구한다고 이해되지 않아야 하고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품에 함께 통합될 수 있거나 또는 다수의 소프트웨어 제품들로 패키징될 수 있다는 것이 이해되어야 한다.
발명의 주제의 특정 구현예들이 설명되었다. 다른 구현예들은 다음의 청구항들의 범위 내에 있다. 예를 들어, 청구범위에서 언급되는 액션들은 상이한 순서로 수행되고 여전히 바람직한 결과들을 성취할 수 있다. 하나의 예로서, 첨부 도면들에 묘사된 프로세스들은 바람직한 결과들을 성취하기 위해 도시된 특정 순서, 또는 순차적 순서를 필요로 하지 않는다. 일부 경우들에서, 멀티태스킹 및 병렬 프로세싱이 유익할 수도 있다.

Claims (20)

  1. 다자간 보안 로지스틱 회귀 모델들(multi-party secure logistic regression model)을 훈련시키기 위한 컴퓨터 구현 방법에 있어서,
    비밀 공유(secret sharing; SS)를 사용하여 보안 로지스틱 회귀 모델(secure logistic regression model; SLRM)을 위한 샘플 훈련 데이터를 복수의 분배분(share)들 ― 각각의 분배분은 보안 컴퓨테이션 노드(secure computation node; SCN)에 배포됨 ― 로 나누는 단계;
    상기 샘플 훈련 데이터의 각각의 분배분을 사용하여 상기 SLRM과 연관된 파라미터들을 반복적으로 업데이트 ― 상기 반복적 업데이트는 미리 결정된 조건의 발생까지 계속됨 ― 하는 단계; 및
    상기 SLRM과 연관된 상기 파라미터들을 반복적으로 업데이트한 후, 각각의 SCN에 의한 사용을 위해 구성된 훈련 결과를 출력하는 단계
    를 포함하는, 다자간 보안 로지스틱 회귀 모델들을 훈련시키기 위한 컴퓨터 구현 방법.
  2. 제1항에 있어서, 상기 SLRM의 목적 함수는, 미니 배치 확률적 경사 하강(mini batch Stochastic Gradient Descent; SGD) 법을 사용하여 최적화되는 로지스틱 회귀 함수이고, 상기 로지스틱 회귀 함수는
    Figure pct00006
    로 표현되며,
    m은 상기 미니 배치 SGD의 샘플 사이즈를 나타내고;
    X는 m*k 샘플 행렬을 나타내고;
    상기 행렬 X의 각각의 행은 샘플을 나타내고;
    X i 는 상기 행렬 X의 i번째 행을 나타내고;
    [j]는 벡터 Xij번째 원소를 나타내고;
    X L 은 상기 SCN에 속하는 샘플 데이터 X의 분배분을 나타내고;
    X R 은 SCN에 속하는 샘플 데이터 X의 분배분을 나타내고;
    θ는 파라미터 열 벡터를 나타내며, 상기 열 벡터 θ는 θ L 및 θ R 로 수직으로 나누어질 수 있는 것인, 다자간 보안 로지스틱 회귀 모델들을 훈련시키기 위한 컴퓨터 구현 방법.
  3. 제1항에 있어서, 상기 SLRM과 연관된 파라미터들을 반복적으로 업데이트하는 단계는 이벤트 중심 모델(event-driven model)에 따라 수행되는 것인, 다자간 보안 로지스틱 회귀 모델들을 훈련시키기 위한 컴퓨터 구현 방법.
  4. 제1항에 있어서, 상기 SLRM과 연관된 파라미터들을 반복적으로 업데이트하는 단계는:
    각각의 SCN에 대해, 열 벡터를 나타내는 A의 값을 계산하는 단계 - 상기 계산은 수학식 A = Xθ = X L θ L +X R θ R 에 기초하여 수행되며, X L θ L 및 X R θ R 각각은 SCN에 대한 A의 분배분을 나타냄 -;
    수학식 E = g(A) -Y i에 기초하여 예측 에러의 열 벡터를 결정하는 단계 - g는 다항식 함수 피팅(fitting)일 수 있는 시그모이드(sigmoid) 함수의 피팅 함수를 나타냄 -; 및
    수학식
    Figure pct00007
    에 기초하여 업데이트된 열 벡터를 결정하는 단계 - X T E= (X L ) T E||(X R ) T E -
    를 포함하는 것인, 다자간 보안 로지스틱 회귀 모델들을 훈련시키기 위한 컴퓨터 구현 방법.
  5. 제4항에 있어서, 열 벡터를 나타내는 A의 분배분을 계산하는 단계는,
    난수들을 사용하여 각각의 SCN에 의해 제공되는 원본 데이터를 암호화하는 단계, 및
    상기 SCN들 사이에서 상기 암호화된 데이터를 교환하는 단계를 포함하는 것인, 다자간 보안 로지스틱 회귀 모델들을 훈련시키기 위한 컴퓨터 구현 방법.
  6. 제5항에 있어서, 상기 난수들 각각은 숫자, 벡터, 또는 행렬 중 적어도 하나인 것인, 다자간 보안 로지스틱 회귀 모델들을 훈련시키기 위한 컴퓨터 구현 방법.
  7. 제6항에 있어서, 상기 미리 결정된 조건은 미리 결정된 문턱값보다 작은 두 개의 연속적인 반복 결과들 사이의 차이의 발생인 것인, 다자간 보안 로지스틱 회귀 모델들을 훈련시키기 위한 컴퓨터 구현 방법.
  8. 하나 이상의 컴퓨터들에 결합되고 명령어들을 저장한 비일시적 컴퓨터 판독가능 저장 매체에 있어서,
    상기 명령어들은:
    비밀 공유(secret sharing; SS)를 사용하여 보안 로지스틱 회귀 모델(secure logistic regression model; SLRM)을 위한 샘플 훈련데이터를 복수의 분배분들 ― 각각의 분배분은 보안 컴퓨테이션 노드(secure computation node; SCN)에 배포됨 ― 로 나누며;
    상기 샘플 훈련 데이터의 각각의 분배분을 사용하여 상기 SLRM과 연관된 파라미터들을 반복적으로 업데이트 ― 상기 반복적 업데이트는 미리 결정된 조건의 발생까지 계속됨 ― 하며; 그리고
    상기 SLRM과 연관된 상기 파라미터들을 반복적으로 업데이트한 후, 각각의 SCN에 의한 사용을 위해 구성된 훈련 결과를 출력하도록
    상기 하나 이상의 컴퓨터들에 의해 실행 가능한 것인, 비일시적 컴퓨터 판독가능 저장 매체.
  9. 제8항에 있어서, 상기 SLRM의 목적 함수는, 미니 배치 확률적 경사 하강(mini batch Stochastic Gradient Descent; SGD) 법을 사용하여 최적화되는 로지스틱 회귀 함수이고, 상기 로지스틱 회귀 함수는
    Figure pct00008
    로 표현되며:
    m은 상기 미니 배치 SGD의 샘플 사이즈를 나타내고;
    X는 m*k 샘플 행렬을 나타내고;
    상기 행렬 X의 각각의 행은 샘플을 나타내고;
    Xi는 상기 행렬 X의 i번째 행을 나타내고;
    [j]는 벡터 Xij번째 원소를 나타내고;
    X L 은 SCN에 속하는 샘플 데이터 X의 분배분을 나타내고;
    X R 은 SCN에 속하는 샘플 데이터 X의 분배분을 나타내고;
    θ는 파라미터 열 벡터를 나타내며, 상기 열 벡터 θ는 θ L 및 θ R 로 수직으로 나누어질 수 있는 것인, 비일시적 컴퓨터 판독가능 저장 매체.
  10. 제8항에 있어서, 상기 SLRM과 연관된 파라미터들을 반복적으로 업데이트하는 것은 이벤트 중심 모델에 따라 수행되는 것인, 비일시적 컴퓨터 판독가능 저장 매체.
  11. 제8항에 있어서, 상기 SLRM과 연관된 파라미터들을 반복적으로 업데이트하는 것은,
    각각의 SCN에 대해, 열 벡터를 나타내는 A의 값을 계산하는 것 - 상기 계산은 수학식 A= Xθ =X L θ L +X R θ R 에 기초하여 수행되며, X L θ L 및 X R θ R 각각은 SCN에 대한 A의 분배분을 나타냄 -;
    수학식 E = g(A) -Y i 에 기초하여 예측 에러의 열 벡터를 결정하는 것 - g는 다항식 함수 피팅일 수 있는 시그모이드 함수의 피팅 함수를 나타냄 -; 및
    수학식
    Figure pct00009
    에 기초하여 업데이트된 열 벡터를 결정하는 것 - X T E= (X L ) T E||(X R ) T E -
    을 포함하는 것인, 비일시적 컴퓨터 판독가능 저장 매체.
  12. 제11항에 있어서, 열 벡터를 나타내는 A의 분배분을 계산하는 것은,
    난수들을 사용하여 각각의 SCN에 의해 제공된 원본 데이터를 암호화하는 것, 및
    상기 SCN들 사이에서 상기 암호화된 데이터를 교환하는 것을 포함하는 것인, 비일시적 컴퓨터 판독가능 저장 매체.
  13. 제12항에 있어서, 상기 난수들 각각은 숫자, 벡터, 또는 행렬 중 적어도 하나인 것인, 비일시적 컴퓨터 판독가능 저장 매체.
  14. 제13항에 있어서, 상기 미리 결정된 조건은 미리 결정된 문턱값 보다 작은 두 개의 연속적인 반복 결과들 사이의 차이의 발생인 것인, 비일시적 컴퓨터 판독가능 저장 매체.
  15. 시스템에 있어서,
    하나 이상의 컴퓨터들; 및
    하나 이상의 컴퓨터들에 결합되고 그리고 명령어들을 저장한 하나 이상의 컴퓨터 판독가능 메모리들을 포함하며,
    상기 명령어들은,
    비밀 공유(secret sharing; SS)를 사용하여 보안 로지스틱 회귀 모델(secure logistic regression model; SLRM)을 위한 샘플 훈련 데이터를 복수의 분배분들 ― 각각의 분배분은 보안 컴퓨테이션 노드(secure computation node; SCN)에 배포됨 ― 로 나누며;
    상기 샘플 훈련 데이터의 각각의 분배분을 사용하여 상기 SLRM과 연관된 파라미터들을 반복적으로 업데이트 ― 상기 반복적 업데이트는 미리 결정된 조건의 발생까지 계속됨 ― 하며; 그리고
    상기 SLRM과 연관된 상기 파라미터들을 반복적으로 업데이트한 후, 각각의 SCN에 의한 사용을 위해 구성된 훈련 결과를 출력하도록
    상기 하나 이상의 컴퓨터들에 의해 실행 가능한 것인, 시스템.
  16. 제15항에 있어서, 상기 SLRM의 목적 함수는 미니 배치 확률적 경사 하강(mini batch Stochastic Gradient Descent; SGD) 법을 사용하여 최적화되는 로지스틱 회귀 함수이고, 상기 로지스틱 회귀 함수는 수학식
    Figure pct00010
    로 표현되며:
    m은 상기 미니 배치 SGD의 샘플 사이즈를 나타내고;
    X는 m*k 샘플 행렬을 나타내고;
    상기 행렬 X의 각각의 행은 샘플을 나타내고;
    Xi는 상기 행렬 X의 i번째 행을 나타내고;
    [j]는 벡터 Xij번째 원소를 나타내고;
    X L 은 SCN에 속하는 샘플 데이터 X의 분배분을 나타내고;
    X R 은 SCN에 속하는 샘플 데이터 X의 분배분을 나타내고;
    θ는 파라미터 열 벡터를 나타내며, 상기 열 벡터 θ는 θ L 및 θ R 로 수직으로 나누어질 수 있는 것인, 시스템.
  17. 제15항에 있어서, 상기 SLRM과 연관된 파라미터들을 반복적으로 업데이트하는 것은 이벤트 중심 모델에 따라 수행되는, 시스템.
  18. 제15항에 있어서, 상기 SLRM과 연관된 파라미터들을 반복적으로 업데이트하는 것은,
    각각의 SCN에 대해, 열 벡터를 나타내는 A의 값을 계산하는 것 - 상기 계산은 수학식 A= Xθ =X L θ L +X R θ R 에 기초하여 수행되며, X L θ L 및 X R θ R 각각은 SCN에 대한 A의 분배분을 나타냄 -;
    수학식 E = g(A) - Y i 에 기초하여 예측 에러의 열 벡터를 결정하는 것 - g는 다항식 함수 피팅일 수 있는 시그모이드 함수의 피팅 함수를 나타냄 -; 및
    수학식
    Figure pct00011
    에 기초하여 업데이트된 열 벡터를 결정하는 것 - X T E= (X L ) T E||(X R ) T E 임 -
    을 포함하는 것인, 시스템
  19. 제18항에 있어서, 열 벡터를 나타내는 A의 분배분을 계산하는 것은,
    난수들을 사용하여 각각의 SCN에 의해 제공되는 원본 데이터를 암호화하는 단계, 및
    상기 SCN들 사이에서 암호화된 데이터를 교환하는 것을 포함하는 것인, 시스템.
  20. 제19항에 있어서, 상기 난수들 중 각각의 난수는 숫자, 벡터, 또는 행렬 중 적어도 하나인 것인, 시스템.
KR1020197032395A 2019-01-11 2019-01-11 비밀 공유를 사용한 로지스틱 회귀 모델링 방법 KR102337168B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/071394 WO2019072315A2 (en) 2019-01-11 2019-01-11 LOGISTIC REGRESSION MODELING SCHEME USING SECRET SHARING

Publications (2)

Publication Number Publication Date
KR20200088767A true KR20200088767A (ko) 2020-07-23
KR102337168B1 KR102337168B1 (ko) 2021-12-08

Family

ID=66100025

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197032395A KR102337168B1 (ko) 2019-01-11 2019-01-11 비밀 공유를 사용한 로지스틱 회귀 모델링 방법

Country Status (8)

Country Link
US (1) US10600006B1 (ko)
EP (1) EP3602410B1 (ko)
JP (1) JP6921233B2 (ko)
KR (1) KR102337168B1 (ko)
CN (1) CN110709863B (ko)
PH (1) PH12019502457A1 (ko)
SG (1) SG11201909946UA (ko)
WO (1) WO2019072315A2 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3070858B1 (fr) 2017-09-14 2020-02-21 Capsum Dispersion avec phase grasse dispersee a teneur elevee en pigments
CN110084068B (zh) * 2018-01-26 2023-09-29 阿里巴巴集团控股有限公司 区块链系统及用于区块链系统的数据处理方法
WO2020071441A1 (ja) * 2018-10-04 2020-04-09 日本電信電話株式会社 秘密シグモイド関数計算システム、秘密ロジスティック回帰計算システム、秘密シグモイド関数計算装置、秘密ロジスティック回帰計算装置、秘密シグモイド関数計算方法、秘密ロジスティック回帰計算方法、プログラム
CN112183757B (zh) * 2019-07-04 2023-10-27 创新先进技术有限公司 模型训练方法、装置及系统
CN112183565B (zh) * 2019-07-04 2023-07-14 创新先进技术有限公司 模型训练方法、装置及系统
CN112183759B (zh) * 2019-07-04 2024-02-13 创新先进技术有限公司 模型训练方法、装置及系统
CN112183566B (zh) * 2019-07-04 2024-02-09 创新先进技术有限公司 模型训练方法、装置及系统
CN110580410B (zh) * 2019-08-09 2023-07-28 创新先进技术有限公司 模型参数确定方法、装置和电子设备
US10803184B2 (en) 2019-08-09 2020-10-13 Alibaba Group Holding Limited Generation of a model parameter
CN110569228B (zh) * 2019-08-09 2020-08-04 阿里巴巴集团控股有限公司 模型参数确定方法、装置和电子设备
CN110851869B (zh) * 2019-11-14 2023-09-19 深圳前海微众银行股份有限公司 敏感信息处理方法、设备及可读存储介质
WO2021149103A1 (ja) 2020-01-20 2021-07-29 日本電信電話株式会社 秘密計算装置、秘密計算方法、およびプログラム
US11682095B2 (en) 2020-02-25 2023-06-20 Mark Coast Methods and apparatus for performing agricultural transactions
CN111368336B (zh) * 2020-05-27 2020-09-04 支付宝(杭州)信息技术有限公司 基于秘密共享的训练方法、装置、电子设备及存储介质
CN111859267B (zh) * 2020-06-22 2024-04-26 复旦大学 基于bgw协议的隐私保护机器学习激活函数的运算方法
CN112836868A (zh) * 2021-01-22 2021-05-25 支付宝(杭州)信息技术有限公司 一种链接预测模型的联合训练方法和装置
CN113128700A (zh) * 2021-03-23 2021-07-16 同盾控股有限公司 安全多方计算的联邦模型训练加速的方法和系统
CN113065145B (zh) * 2021-03-25 2023-11-24 上海海洋大学 一种基于秘密共享和随机扰动的隐私保护线性回归方法
KR102557639B1 (ko) * 2021-04-20 2023-07-19 성신여자대학교 연구 산학협력단 인공지능 학습장치 및 인공지능 학습장치의 동작방법
CN113037489B (zh) * 2021-05-25 2021-08-27 北京百度网讯科技有限公司 数据处理方法、装置、设备和存储介质
CN113342915A (zh) * 2021-06-22 2021-09-03 深圳壹账通智能科技有限公司 地址脱敏方法、装置、电子设备及存储介质
CN113837764B (zh) * 2021-09-22 2023-07-25 平安科技(深圳)有限公司 风险预警方法、装置、电子设备和存储介质
CN116187433B (zh) * 2023-04-28 2023-09-29 蓝象智联(杭州)科技有限公司 基于秘密分享的联邦拟牛顿训练方法、装置及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017119211A1 (ja) * 2016-01-07 2017-07-13 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
WO2018017467A1 (en) * 2016-07-18 2018-01-25 NantOmics, Inc. Distributed machine learning systems, apparatus, and methods
CN108712260A (zh) * 2018-05-09 2018-10-26 曲阜师范大学 云环境下保护隐私的多方深度学习计算代理方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5542075B2 (ja) * 2011-03-01 2014-07-09 日本放送協会 認証サーバ、認証プログラムおよび認証システム
JP2014164126A (ja) * 2013-02-25 2014-09-08 Nippon Telegr & Teleph Corp <Ntt> 音響信号分析方法、装置、及びプログラム
US9705913B2 (en) * 2015-10-29 2017-07-11 Intel Corporation Wireless hotspot attack detection
CN106909886B (zh) * 2017-01-20 2019-05-03 中国石油大学(华东) 一种基于深度学习的高精度交通标志检测方法及系统
US10565524B2 (en) * 2017-01-31 2020-02-18 Hewlett Packard Enterprise Development Lp Performing privacy-preserving multi-party analytics on horizontally partitioned local data
US10536437B2 (en) * 2017-01-31 2020-01-14 Hewlett Packard Enterprise Development Lp Performing privacy-preserving multi-party analytics on vertically partitioned local data
CN107220217A (zh) * 2017-05-31 2017-09-29 北京京东尚科信息技术有限公司 基于逻辑回归的特征系数训练方法和装置
WO2019048390A1 (en) * 2017-09-07 2019-03-14 Koninklijke Philips N.V. MULTI-PART CALCULATION SYSTEM FOR LEARNING A CLASSIFIER
CN108519981B (zh) * 2018-02-01 2022-04-12 四川大学 一种跨链智能合约合作可能性评估方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017119211A1 (ja) * 2016-01-07 2017-07-13 ソニー株式会社 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
WO2018017467A1 (en) * 2016-07-18 2018-01-25 NantOmics, Inc. Distributed machine learning systems, apparatus, and methods
CN108712260A (zh) * 2018-05-09 2018-10-26 曲阜师范大学 云环境下保护隐私的多方深度学习计算代理方法

Also Published As

Publication number Publication date
KR102337168B1 (ko) 2021-12-08
EP3602410A4 (en) 2020-03-11
WO2019072315A3 (en) 2019-11-07
CN110709863B (zh) 2024-02-06
US10600006B1 (en) 2020-03-24
CN110709863A (zh) 2020-01-17
EP3602410B1 (en) 2021-09-29
JP6921233B2 (ja) 2021-08-18
PH12019502457A1 (en) 2020-07-20
WO2019072315A2 (en) 2019-04-18
EP3602410A2 (en) 2020-02-05
SG11201909946UA (en) 2019-11-28
JP2020525814A (ja) 2020-08-27

Similar Documents

Publication Publication Date Title
KR102337168B1 (ko) 비밀 공유를 사용한 로지스틱 회귀 모델링 방법
EP3825887B1 (en) A distributed multi-party security model training framework for privacy protection
US20230023520A1 (en) Training Method, Apparatus, and Device for Federated Neural Network Model, Computer Program Product, and Computer-Readable Storage Medium
AU2019257397B2 (en) Secure multi-party computation with no trusted initializer
CN110245510B (zh) 用于预测信息的方法和装置
CN111125735B (zh) 一种基于隐私数据进行模型训练的方法及系统
Li et al. Markov processes in blockchain systems
CN111931950A (zh) 一种基于联邦学习进行模型参数更新的方法及系统
US11410081B2 (en) Machine learning with differently masked data in secure multi-party computing
CN111310204B (zh) 数据处理的方法及装置
Miao et al. Federated deep reinforcement learning based secure data sharing for Internet of Things
CN113221153B (zh) 图神经网络训练方法、装置、计算设备及存储介质
CN114186256B (zh) 神经网络模型的训练方法、装置、设备和存储介质
CN112598127A (zh) 联邦学习模型训练方法和装置、电子设备、介质和产品
US20210117829A1 (en) Learning pattern dictionary from noisy numerical data in distributed networks
CN116248332A (zh) 对象数据处理方法、系统、计算机设备和存储介质
CN116933268A (zh) 纵向安全联邦模型构建方法、装置、设备及存储介质
CN116628498A (zh) 资源对象交互预测模型的训练、资源对象信息处理方法
CN117240497A (zh) 用户账户异常评估方法、装置、计算机设备、存储介质

Legal Events

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