최근 수업 중 custom loss를 구현하는 과제에서 알게 된 trick인데 softmax 연산을 수행할 때 내부적으로 overflow나 underflow를 방지하기 위한 방법으로 이 방식을 사용한다고 한다. 이름에 나오듯 Log와 Summation 그리고 Exponential을 이용한 트릭이다. exp를 기존 방식대로 계산해보면 아래와 같이 overflow가 발생하게 된다. import numpy as npx = np.array([1000, 1000, 1000])print(np.exp(x))# [inf inf inf] x와 같은 logit(입력값)을 구해 softmax 연산을 위해 적용하였을 때 overflow가 발생하게 되고 이는 결국 loss가 발산하거나 backpropagation이 실패하는 결..
일반적으로 Softmax 함수는 일반적으로 모델의 최종 출력층(final layer) 에서 사용된다. Softmax를 통해 출력된 값은 각 클래스에 대한 확률 분포로 해석할 수 있으며, 이를 기반으로 Cross Entropy Loss를 계산하여 ground truth와 예측 결과 간의 차이를 측정한다. 이때, Backpropagation 과정에서 Softmax와 Cross-Entropy에 대한 Chain Rule을 적용하여, Loss를 입력(logit)에 대해 미분함으로써 역전파를 시작한다. 우리는 Softmax와 Cross Entropy를 각각 따로 처리하는 대신 결합하여 하나의 연산처럼 다루는 것이 일반적이다. 이렇게 하면 수치적으로 더 안정적이며, 계산이 간편해진다. 특히, Softmax의 출력이..
Cross EntropyCross Entropy는 확률 분포 간의 차이를 측정하는 지표로, 분류 문제에서 모델의 예측 성능을 평가하는 데 자주 사용된다. 이는 손실 함수의 한 종류이며, 손실 함수의 목표는 모델이 예측한 분포와 실제 분포 사이의 차이를 최소화하는 것이다. Cross Entropy를 이해하기 전 먼저 짚고 넘어가야 하는 개념이 있는데 바로 놀람도, 기대값, 엔트로피 이 세 가지이다. 먼저 놀람도에 대한 예를 들어보자.검은색 종이 999개와 흰색 종이가 1개 들어있는 상자가 있다고 가정하자. 이 상자에서 우리가 검은색 종이를 뽑았다면 우리는 당연하다고 생각할 것이다. 확률(\( p(x) \))이 훨씬 높기 때문이다. 하지만 흰색 종이가 나온다면 우리는 놀라게 될 것이다. 다시 말하면 이 놀람..
Softmax와 볼츠만 분포(Boltzmann Distribution)Softmax는 최근 딥러닝 모델 연구에서 아주 중요한 역할을 한다. 대표적으로 GPT의 근간이 되는 Transformer 모델과 Attention 메커니즘에서 매우 중요한 역할을 수행하고 있다. Softmax는 주로 다중 클래스 분류 문제에서 사용되며, 입력된 로짓(logits)을 기반으로 각 클래스에 대한 확률을 계산하는 데 활용된다. 여러 카테고리 간의 확률 분포를 부드럽게 만들어 주는 역할을 한다. 이 글에서는 Softmax의 특징과 이를 개선하기 위한 다양한 기법에 대해 정리해보려 한다. Softmax는 볼츠만 분포(Boltzmann Distribution)에 영감을 받아 고안되었다. 여기서 볼츠만 분포란 열역학적 시스템의 ..
활성화 함수(Activation Function)란? 활성화 함수(Activation Function)는 딥러닝의 가중치를 구하기 위해 사용되는 비선형 함수(Nonlinear Function)이다. 이 활성화 함수는 딥러닝 네트워크에서 노드에 입력된 값들을 비선형 함수에 통과시킨 후 다음 레이어로 전달한다. 일단 가장 단순하게 대표적인 활성화 함수들의 역할을 정리해 보자면 다음과 같다.Sigmoid: 이진 분류 모델의 마지막 출력 계층(Output Layer)에 사용Softmax: 다중 분류 모델의 마지막 출력 계층(Output Layer)에 사용ReLU: 은닉층(Hidden Layer)에 주로 사용 왜 이런 비선형 함수들을 활성화 함수로 사용할까? 만약 선형 함수를 활성화 함수로 사용하게 된다면 간단한..