기본 콘텐츠로 건너뛰기

라벨이 손실함수인 게시물 표시

[신경망 이해] 경사하강법에서 손실 값의 변화

[신경망 이해] 경사하강법에서 손실 값의 변화 모델 파라미터 변경에 따른 손실의 변화율 손실 함수 위의 한 지점(현재 파라미터)에서 손실 값의 변화가 가장 큰 방향을 계산할 수 있습니다. 이를 기울기(Gradient)라고 합니다. 즉, 기울기는 '특정 파라미터를 조금 변경했을 때, 손실 값이 얼마나 변하는가’를 나타내는 값입니다. 손실을 줄이는 방향으로 모델 파라미터 수정 기울기는 손실이 가장 크게 '증가’하는 방향을 가리킵니다. 우리의 목표는 손실을 '감소’시키는 것이므로, 기울기의 반대 방향으로 파라미터를 조금씩 이동시켜야 합니다. 경사하강법의 종류와 손실 값의 변화 경사하강법은 기울기를 계산할 때 사용하는 데이터의 양에 따라 크게 세 가지 방식으로 나뉩니다. 이 방식에 따라 손실 값의 변화 양상과 학습 효율성이 크게 달라집니다. 구분 설명 Batch Gradient Descent 데이터세트 전체를 대상으로 손실을 계산하고 모델 파라미터 조정 (데이터세트의 크기: N N N ) Stochastic Gradient Descent 데이터세트에서 임의로 선택한 한 개의 데이터를 대상으로 손실을 계산하고 모델 파라미터 조정 Mini-batch Gradient Descent 데이터세트에서 임의로 선택한 m m m 개의 데이터를 대상으로 손실을 계산하고 모델 파라미터 조정 ( 1 < m < N 1 < m < N 1 < m < N ) 배치 경사하강법(Batch Gradient Descent) 진짜 경사도를 계산해서 파라미터를 조정하기 때문에 이 과정을 반복함에 따라 손실 값은 줄어드는 방향으로 이동합니다. 미니배치 경사하강법(Mini-batch Gradient Descent) 진짜 경사도가 아니라 근사 경사도를 계산해서 파라미터를 조정하기 때문에 이 과정을 반복하는 과정에서 손실 값은 증가와 감소를 반복하면서 어떤 값...

[신경망 이해] 모델 학습 세 단계

 1. 모델 함수 정의 (Model Function Definition) 이 단계는 "가설을 세우는 단계"라고 할 수 있습니다. 데이터의 입력(X)과 출력(Y) 사이에 어떤 수학적 관계가 있을 것이라고 가정하고, 그 관계를 나타내는 함수를 정의합니다. 이 함수를 '모델' 또는 '가설(Hypothesis)'이라고 부릅니다. 역할: 입력 변수들을 사용해서 예측값을 어떻게 계산할지 구조를 결정합니다. 예시: 선형 회귀 (Linear Regression): 입력(x)과 출력(y) 사이에 직선 관계가 있다고 가정하고, 모델 함수를 H(x)=Wx+b 와 같이 정의합니다. 여기서 W(가중치)와 b(편향)가 우리가 찾아야 할 파라미터입니다. 신경망 (Neural Network): 여러 개의 뉴런과 활성화 함수를 복잡하게 연결하여 비선형 관계를 표현할 수 있는 매우 유연한 함수를 정의합니다. 2. 비용 함수 정의 (Cost Function Definition) 이 단계는 "모델의 예측이 얼마나 틀렸는지 측정하는 기준을 세우는 단계"입니다. 모델이 예측한 값(H(x))과 실제 정답(y) 사이의 차이(오차)를 계산하는 함수를 정의합니다. 이 함수를 '비용 함수(Cost Function)' 또는 '손실 함수(Loss Function)'라고 합니다. 역할: 모델의 성능을 정량적인 숫자로 평가합니다. 비용 함수의 값이 작을수록 모델의 예측이 더 정확하다는 의미입니다. 목표: 이 비용 함수의 값을 최소화하는 것이 학습의 목표가 됩니다. 예시: 평균 제곱 오차 (Mean Squared Error, MSE): 회귀 문제에서 주로 사용되며, (예측값 - 실제값)²의 평균을 계산합니다. 교차 엔트로피 (Cross-Entropy): 분류 문제에서 주로 사용되며, 모델의 예측 확률 분포와 실제 정답 분포의 차이를 측정합니다. 3. 모델 파라미터 찾기 (Finding Model Parameters) 이 단계...

DistilBERT 기반 클래스들의 작업 유형 정리

DistilBERT 기반 클래스들의 작업 유형 정리 허깅 페이스의 Transformers 라이브러리는 DistilBERT 모델을 기반으로 구체적인 작업을 수행하도록 구현한 클래스들을 제공합니다. 이 문서에서는 이들의 작업 유형, 출력층, 그리고 손실함수들을 표로 정리하였습니다. 작업 구현 클래스 1. DistilBertForMaskedLM 작업 유형 출력층 손실함수 빈 칸의 단어 맞추기 vocab_transform activation vocab_layer_norm vocab_projector nn.CrossEntropyLoss 2. DistilBertForSequenceClassification 작업 유형 출력층 손실함수 점수 매기기 (예: 호감도) pre_classifer dropout classifer nn.MSELoss 한 개의 라벨 할당 (예: 감정 분석) pre_classifer dropout classifer nn.CrossEntropyLoss 여러 개의 라벨 할당 (예: 문서 태깅) pre_classifer dropout classifer nn.BCEWithLogitsLoss 3. DistilBertForTokenClassification 작업 유형 출력층 손실함수 토큰 분류 (예: 품사 태깅) dropout classifier nn.CrossEntropyLoss 4. DistilBertForQuestionAnswering 작업 유형 출력층 손실함수 추출적 질의응답 (지문에서 답 찾기) dropout qa_outputs nn.CrossEntropyLoss 5. DistilBertForMultipleChoice 작업 유형 출력층 손실함수 객관식 문제 풀이 pre_classifer dropout classifer nn.CrossEntropyLos...