모델: 손실 마스킹 – Loss Masking

ㅁ 손실 마스킹

ㅇ 정의:
모델 학습 시 특정 토큰이나 위치에 대해 손실(loss)을 계산하지 않도록 마스크를 적용하는 기법. 주로 패딩 토큰이나 예측이 불필요한 구간을 제외하기 위해 사용됨.

ㅇ 특징:
– 입력 시퀀스 길이가 다를 때 패딩으로 채워진 부분의 손실을 0으로 처리하여 모델이 불필요한 학습을 하지 않도록 함.
– 마스크는 보통 0/1 값의 텐서로 구성되며, 손실 계산 시 곱해져 적용됨.
– Transformer, RNN 등 시퀀스 모델에서 빈번히 사용됨.

ㅇ 적합한 경우:
– NLP에서 문장 길이가 다를 때 미니배치 학습을 위해 패딩을 추가한 경우.
– 시계열 데이터에서 특정 구간의 값이 결측치이거나 학습에 포함하면 안 되는 경우.

ㅇ 시험 함정:
– 손실 마스킹은 모델 출력값을 숨기는 것이 아니라, 손실 계산 시 특정 위치를 무시하는 것임.
– Attention Masking과 혼동하기 쉬움. Attention Masking은 입력 토큰 간의 주의를 제한하는 것이고, Loss Masking은 손실 계산 대상에서 제외하는 것.

ㅇ 시험 대비 “패턴 보기” 예시:
O: “Loss Masking은 패딩 토큰의 손실 계산을 방지하는 데 사용된다.”
X: “Loss Masking은 모델이 특정 토큰을 전혀 생성하지 않도록 한다.”

ㅁ 추가 학습 내용

Loss Masking, Label Smoothing, Attention Masking 비교표를 만들어 학습
– Loss Masking: 손실 계산 시 특정 토큰(예: 패딩 토큰)의 손실을 제외하거나 줄이는 기법
– Label Smoothing: 정답 레이블의 원-핫 벡터를 부드럽게 하여 모델이 과도하게 확신하지 않도록 하는 기법
– Attention Masking: 어텐션 연산에서 특정 위치를 보지 않도록 마스킹하는 기법(미래 토큰 차단, 패딩 무시 등)

구현 시 손실 함수에서 마스크 적용 방법 이해
– CrossEntropyLoss의 ignore_index 옵션 사용: 지정한 인덱스의 토큰 손실을 계산에서 제외
– 손실 값에 마스크를 곱하는 방식: 마스크 값이 0이면 해당 위치 손실 완전 제외, 0~1 사이 값이면 가중치 적용 가능

마스크 값의 형태
– 0/1 마스크: 완전 제외 또는 포함
– 가중치 마스크: 특정 토큰의 손실 비중을 줄이는 방식

시퀀스-투-시퀀스 모델에서 디코더 출력 길이와 마스크 적용 관계
– 디코더 출력 길이에 따라 마스크 범위와 적용 위치가 달라짐
– 패딩 토큰 이후의 위치는 손실 계산에서 제외하거나 가중치 낮춤
– 어텐션 마스크는 미래 토큰을 가리지 않도록 causal mask를 적용

답글 남기기

Your email address will not be published. Required fields are marked *.

*
*