Pytorch

Loss and Optimizer

술임 2025. 5. 1. 20:21

Losses

Mean Square Error (MSE) : L2 Loss

-> Regression

CrossEntropyLoss

* Entropy

엔트로피는 정보의 불확실성을 의미

 

* CrossEntropy

q(x) *log p(x)

예측모델(q)는 실제 분포 p를 모르는 상태에서 구분 분포를 따라가고자함

entropy를 줄이는 쪽으로 minimize함 : 불확실성을 줄이겠다.

Loss 함수에서는 분포의 차이를 줄이는 것이 목표

pytorch에서는 crossentropyloss는 softmax가 포함되어 구현

 

Kullback-Leibler divergence loss

* KLDivLoss

서로 다른 두 분포의 차이를 측정하는 데 쓰이는 measure

cross-entropy는 entropy보다 항상 0보다 크거나 같은 값을 갖기 때문에 P의 entropy과 P,Q의 cross-entropy가 같을 때 최소값을 가짐

P를 실제분포라고 하고, Q를 예측분포라고 하면 H(P)는 항상 상수값을 가져서 convergence

 

TripletMargin loss

*Triplet Margin Loss

Anchor를 기준으로 positive 또는 negative하게 학습을 유도

Anchor에 positive한 샘플들은 가까이에, Anchor와 negative한 샘플은 멀리 embedding 되도록 유

 

Optimization Functions

오차가 가장 작은 점을 찾는 수학적 모델링

얼마만큼 이동할 것인지, 어느 방향으로 이동할 것인지 결정하는 것이 주요 문제

상황에 따라 다양한 Optimization 알고리즘 시도할 가치가 있음

웬만해서는 Adam이나 RMS Prop 알고리즘 추

learning rate

얼마만큼 움직일 것인지 결정하는 문제가 learning rate

학습율이 너무 크면 최저점을 찾지 못하고 발산하고, 너무 작으면 최저점을 찾는데 오래 걸림

Adam

Momentum + RMSProp Optimizer

local minima에 너무 쉽게 빠질 수 있음

 

 

 

 

 

 

 

'Pytorch' 카테고리의 다른 글

Backpropagation & Activations  (0) 2025.04.22
Model  (0) 2025.04.14
Transform  (0) 2025.04.14
DataLoader  (0) 2025.04.11
Tensors Operation  (0) 2025.04.09