분류 전체보기 127

DP-06. 질의 함수에 의해서만 결정되는 전역 민감도

전역 민감도(Global Sensitivity)는 데이터셋 자체와는 무관하게, 오직 질의(query) 함수에 의해서만 결정된다.1. 간단한 비유로 시작하기학교 선생님이 학생들의 키를 조사한다고 상상해 봅시다. 선생님은 두 가지 질문(질의)을 할 수 있습니다.질의 1(COUNT): "우리 반 학생은 총 몇 명인가요?"질의 2(SUM): "우리 반 학생들의 키(cm)를 모두 더하면 얼마인가요?"이때, '민감도'란 "학생 한 명이 전학을 오거나 갔을 때, 질문의 답이 얼마나 크게 변할 수 있는가?"를 의미합니다.질의 1(COUNT): 학생 한 명이 추가되거나 빠지면, '총 학생 수'는 언제나 정확히 1만큼 변합니다. 우리 반에 어떤 학생들이 있는지, 그들의 키가 몇인지는 전혀 중요하지 않습니다. 이 질의의 민..

DP-05. 차등 정보보호의 핵심 개념: 인접 데이터셋

차등 정보보호(Differential Privacy)는 "어떤 한 개인이 데이터셋에 포함되거나 포함되지 않더라도, 분석 결과는 거의 바뀌지 않아야 한다"는 강력한 개인정보보호 모델입니다. 여기서 '거의 바뀌지 않음'을 수학적으로 엄밀하게 정의하기 위해 사용되는 핵심 도구가 바로 인접 데이터셋(Adjacent Datasets)입니다. 간단히 말해, 인접 데이터셋이란 단 한 사람의 데이터만 다른 두 개의 데이터셋을 의미합니다.인접 데이터셋의 두 가지 주요 정의인접 데이터셋을 정의하는 방식은 크게 두 가지로 나뉩니다. 어떤 시나리오에서 개인정보를 보호하고 싶은지에 따라 적절한 정의를 사용합니다.1. 레코드 추가/삭제 (비제한적 인접성, Unbounded Adjacency)가장 일반적인 정의입니다. 두 데이터셋..

허깅 페이스 Transformers에서 DistilBERT 기반 작업 클래스들

허깅 페이스의 Transformers 라이브러리는 DistilBERT 모델을 기반으로 구체적인 작업을 수행하도록 구현한 클래스들을 제공합니다. 이 문서에서는 이들의 작업 유형, 출력층, 그리고 손실함수들을 표로 정리하였습니다.작업 구현 클래스1. DistilBertForMaskedLM작업 유형출력층손실함수빈 칸의 단어 맞추기vocab_transformactivationvocab_layer_normvocab_projectornn.CrossEntropyLoss2. DistilBertForSequenceClassification작업 유형출력층손실함수점수 매기기 (예: 호감도)pre_classiferdropoutclassifenn.MSELoss한 개의 라벨 할당 (예: 감정 분석)pre_classiferdrop..

DP-04. 데이터 처리 방식 및 구현 모델에 따른 분류

데이터 처리 방식에 따른 분류데이터에 직접 적용되어 프라이버시를 보장하는 핵심 알고리즘들입니다.노이즈 추가차등 정보보호에서 가장 보편적으로 사용되는 기법입니다. 핵심 원리는 데이터베이스에 대한 통계적 질의(Query)의 결과값에 수학적으로 생성된 '노이즈(noise)'라고 불리는 무작위 숫자를 더하여, 개별 데이터의 기여도를 모호하게 만드는 것입니다.작동 원리쿼리 실행: 데이터 분석가가 데이터베이스에 쿼리(예: "30대 사용자들의 평균 소득은 얼마인가?")를 실행하면, 시스템은 먼저 실제 결과값을 계산합니다.민감도(Sensitivity) 계산: 쿼리 결과가 데이터베이스 내의 단 한 사람의 데이터 변화에 의해 얼마나 크게 변할 수 있는지를 측정합니다. 예를 들어, 한 사람의 데이터를 추가하거나 제거했을 때..

DP-03. 차등의 의미 및 수학적 정의

차등의 의미차등 정보보호(Differential Privacy)에서 '차등(differential)'이라는 단어는 '차이(difference)'를 의미하며, 데이터베이스에 특정 개인의 데이터가 포함되거나 포함되지 않았을 때, 또는 변경되었을 때 발생하는 '결과의 차이를 제어'하는 기술의 핵심 개념을 직접적으로 나타냅니다.이 용어는 2006년 컴퓨터 과학자 신시아 드워크(Cynthia Dwork)가 발표한 논문 "Differential Privacy"에서 처음으로 공식화되었습니다. 이 개념의 핵심은 데이터베이스에 대한 질의(query) 결과가 특정 개인의 데이터 유무, 또는 변경에 따라 크게 달라지지 않도록 보장하는 것입니다. 즉, 데이터베이스에서 한 사람의 정보를 추가, 삭제, 또는 변경하더라도 분석 결..

SMPC-06. 연합학습에서 비밀 공유 적용 시 통신 부하

연합학습(Federated Learning)에서 보안 다자간 계산(Secure Multi-Party Computation, SMPC)의 한 기법인 덧셈 기반 비밀 공유를 적용할 때 발생하는 통신 오버헤드 증가에 대해 살펴보겠습니다.결론부터 말씀드리면, 통신 오버헤드는 참여하는 클라이언트(사용자) 수에 따라 이차적($O(N^2)$)으로 매우 크게 증가합니다.기본 연합학습 vs. 비밀 공유 적용 연합학습먼저 두 시나리오의 통신 방식을 비교해 보면 오버헤드 증가를 명확히 이해할 수 있습니다.기본 연합학습 (Federated Averaging):서버가 글로벌 모델을 클라이언트들에게 전송합니다.각 클라이언트는 자신의 로컬 데이터로 모델을 학습시킨 후, 업데이트된 모델 파라미터(또는 그래디언트)를 서버에만 전송합니..

SMPC-05. 다차원 벡터를 위한 덧셈 기반 비밀 공유 기법

보안 다자간 계산(Secure Multi-Party Computation, SMPC)에서 덧셈 기반 비밀 공유 기법을 다차원 벡터나 행렬에 적용하는 것은 기본적으로 벡터의 개별 요소 각각에 독립적으로 비밀 공유 기법을 적용하는 방식입니다.하나의 비밀 값을 여러 조각(share)으로 나누어 서로 다른 참여자에게 분배하는 것처럼, 다차원 벡터의 각 요소를 별개의 비밀 값으로 간주하고 각각에 대해 동일한 비밀 공유 절차를 진행하는 것입니다.작동 방식: 2x2 행렬 예시2차원 벡터 (행렬) $M$을 예로 들어보겠습니다.$$M = \begin{pmatrix} m_{11} & m_{12} \\ m_{21} & m_{22} \end{pmatrix} $$이 행렬 $M$을 세 명의 참여자(P1, P2, P3)에게 덧셈 ..

SMPC-04. 샤미르 비밀 공유(Shamir's Secret Sharing)를 이용한 평균 연봉 계산 방법

보안 다자간 계산(SMPC)은 여러 참여자가 각자 가진 비밀 정보를 노출하지 않으면서, 그 정보들을 종합하여 특정 함수(예: 합산, 평균)의 결과만을 얻고자 할 때 사용하는 암호 기술입니다.핵심 원리: 다항식의 덧셈 속성 활용각자의 비밀(연봉)을 $y$절편으로 하는 다항식을 만듭니다. 이 다항식들을 모두 더하면, 새로운 합계 다항식이 만들어지는데, 이 다항식의 $y$절편은 모든 비밀(연봉)의 합과 같습니다.계산 과정3명의 직원(철수, 영희, 민수)이 평균 연봉을 계산하는 상황을 예시로 들어보겠습니다.참여자($N$): 3명비밀 복원에 필요한 최소 인원($t$): 3명 (모두의 정보가 합산되어야 하므로)비밀 정보:철수 연봉: 5,000만 원영희 연봉: 6,000만 원민수 연봉: 7,000만 원1단계: 비밀 ..

BERT, GPT-2, XLNet 학습 방식 비교: 양방향, 단방향, 순열

주요 언어 모델 특징 비교: BERT, GPT-2, XLNet이 세 모델은 현대 자연어 처리(NLP) 분야에 혁명을 일으킨 대표적인 언어 모델들입니다. 모두 트랜스포머(Transformer)라는 강력한 아키텍처를 공유하지만, 마치 각기 다른 철학을 가진 라이벌처럼 언어를 학습하는 방식에서 뚜렷한 차이를 보입니다. 이 차이점을 이해하는 것은 NLP 기술을 올바르게 활용하는 데 매우 중요합니다.1. BERT (Bidirectional Encoder Representations from Transformers)BERT는 문장의 양쪽 문맥을 동시에 고려하여 단어의 의미를 파악하는 양방향(Bidirectional) 모델입니다. 이는 마치 우리가 문장을 읽을 때 특정 단어의 의미를 파악하기 위해 앞뒤 단어를 모두 ..

TR-03. 멀티-헤드 마스크드 셀프 어텐션(Multi-head Masked Self Attention)

멀티-헤드 마스크드 셀프 어텐션은 트랜스포머 디코더의 첫 번째 하위 계층에서 사용되는 메커니즘입니다. 핵심 기능은 문장을 생성할 때, 모델이 "미래의" 정답 단어를 미리 훔쳐보지 못하도록(cheating) 방지하는 것입니다.1. 왜 "Masked"가 필요한가?트랜스포머의 디코더는 자기회귀적(Autoregressive) 방식으로 작동합니다. 즉, 한 단어씩 순차적으로 문장을 생성합니다.예: "나는" $\rightarrow$ (다음 단어 예측) $\rightarrow$ "학생" $\rightarrow$ (다음 단어 예측) $\rightarrow$ "이다""학생"이라는 단어를 예측해야 하는 시점(Time Step 2)에서, 모델이 정답인 "학생"이나 그 뒤에 올 "이다"라는 정보를 미리 본다면, 그건 예측이 ..