머신 러닝(ML)에서는 손실 함수를 사용해 모델의 예측과 정확한 '실제' 예측 간의 편차를 계산하여 모델 성능을 측정합니다. 모델을 최적화하려면 일부 손실 함수의 출력을 최소화하기 위해 모델 매개변수를 조정해야 합니다.
손실 함수는 목적 함수의 한 유형으로, 데이터 과학의 컨텍스트에서 최소화 또는 최대화가 모델 학습의 목표를 나타내는 모든 함수를 나타냅니다. 일반적으로 비용 함수 또는 오차 함수와 동의어로 사용되는 '손실 함수'라는 용어는 머신 러닝 모델의 학습 목표가 최소화인 상황을 구체적으로 지칭합니다.
간단히 말하면, 손실 함수는 인공지능(AI) 모델의 출력에서 오차의 정도를 추적합니다. 이는 주어진 입력에 대한 예측값, 즉 모델의 출력과 실측값 또는 기준값 사이의 차이('손실')를 정량화하여 계산합니다. 모델의 예측이 정확하면 손실이 적습니다. 예측이 정확하지 않으면 손실이 커집니다.
머신 러닝의 기본 목표는 모델을 학습시켜 정확한 예측 결과를 산출하는 것입니다. 손실 함수를 사용하면 이 목표를 수학적으로 정의하고 추구할 수 있습니다. 모델은 학습하는 동안 손실을 줄이는 방식으로 매개변수를 조정하여 더 나은 예측을 산출하도록 '학습'합니다. 미리 정해진 임계값 아래로 손실이 최소화되면 머신 러닝 모델이 충분히 학습된 것입니다.
일반적인 학습 설정에서 모델은 학습 데이터 세트에서 추출한 샘플 데이터 포인트 배치에 대해 예측을 수행하고, 손실 함수는 각 예에서 평균 오차를 측정합니다. 그런 다음 이 정보를 사용해 모델 매개변수를 최적화합니다.
손실 함수는 학습 과제에서 정답인 기준값이 존재한다고 가정하는 지도 학습에만 해당됩니다. 클러스터링 또는 연관과 같은 기존의 비지도 학습 알고리즘은 레이블이 지정되지 않은 데이터에서 고유한 패턴을 발견하는 것만을 목표로 하기 때문에 '정답' 또는 '오답'이 발생하지 않습니다.
지도 학습에는 레이블이 지정된 데이터 세트가 필요하며, 여기에서는 수동 주석이 각 학습 샘플에 대한 기준값을 제공합니다. 예를 들어, 이미지 분할 모델은 올바른 클래스에 따라 각 픽셀에 주석이 달린 학습 샘플이 필요합니다. 레이블이 지정되지 않은 데이터 샘플과 태스크 모델의 일부를 마스킹하거나 변환하여 재구성하는 자기 지도 학습에서는 원본 샘플 자체가 기준값으로 사용됩니다.
손실 함수는 단순한 평가 메트릭이 아닙니다. 명시적인 목적은 모델 성공을 측정할 뿐만 아니라, 모델의 매개변수를 최적화하여 손실을 최소화하는 알고리즘에 대한 입력 역할도 하는 것입니다.
경사 하강법(gradient descent)과 같은 최적화 알고리즘은 일반적으로 손실 함수의 그래디언트를 사용합니다. 그래디언트는 여러 변수를 갖는 함수의 도함수입니다. 기본적으로 도함수는 함수의 출력이 특정 포인트에서 변경되는 속도와 양을 설명합니다. 따라서 손실 함수가 미분 가능한 것, 즉 모든 포인트에서 도함수를 갖는 것이 중요합니다.
머신 러닝 모델은 특정 모델 매개변수를 조정하여 정확하게 예측하는 법을 배웁니다. 예를 들어, 간단한 선형 회귀 알고리즘은 y = wx+b 함수를 사용하여 데이터를 모델링합니다. 여기서 y는 모델 출력값, x는 입력값, w는 가중치, b는 편향입니다. 모델은 손실 함수가 충분히 최소화될 때까지 가중치와 편향 조건을 업데이트하며 학습합니다.
최적화 알고리즘은 손실 함수의 기울기를 사용하여 모델 매개변수를 '단계적'으로 이동시킬 방향을 결정하고, 이를 통해 기울기를 아래로 이동하여 손실을 줄입니다.
딥 러닝 모델은 단일 함수에 의존하지 않고, 각각이 고유한 비선형 활성화 함수를 갖는 상호 연결된 뉴런 계층으로 구성된 대규모 인공 신경망을 사용합니다. 전체 네트워크를 미분하기 위해서는 수백, 수천 또는 수백만 개의 개별 변수와 활성화 함수의 편도함수를 다른 변수 및 활성화 함수에 대해 계산해야 합니다.
이를 위해 신경망은 역전파를 사용하여, 훈련 데이터 세트의 데이터 포인트에 대한 예측으로 끝나는 정방향 패스 후의 손실 함수 기울기를 찾습니다. 역전파는 오차의 역방향 전파를 뜻하며 손실 함수의 출력에서 시작됩니다. 출력 계층에서 입력 계층으로의 네트워크를 통한 역방향 패스에서, 역전파는 연쇄 법칙을 사용하여 네트워크의 개별 가중치와 편향이 전체 손실에 어떻게 기여했는지 계산합니다.
그런 다음 전체 네트워크에 대한 편도함수의 결과 기울기를 경사 하강법 알고리즘에서 사용하여 손실이 충분히 최소화될 때까지 네트워크 가중치를 반복적으로 업데이트할 수 있습니다.
학습 데이터 세트에서 예측을 수행하여 모델을 학습하고 검증하지만, 학습 예제에서 좋은 성과를 내는 것이 궁극적인 목표는 아닙니다. 머신 러닝의 진정한 목표는 새로운 사례에 잘 일반화되는 모델을 학습시키는 것입니다.
단일 손실 함수의 최소화에만 의존하는 것을 '경험적 위험 최소화'라고 합니다. 이 방법은 단순하고 분명해 보이지만, 모델이 학습 데이터 에 과적합되어 일반화가 제대로 이루어지지 않을 위험이 있습니다. 이러한 위험을 줄이기 위해 많은 알고리즘과 아키텍처에서는 기본 손실 함수를 수정하는 정규화 조건을 도입합니다.
예를 들어, 평균 절대 오차(MAE, 여기서는 L1 정규화라고 함)는 신경망에서 활성화된 뉴런의 수 또는 활성화의 크기에 페널티를 부과하여 희소성을 강화하는 데 사용할 수 있습니다.
다양한 손실 함수가 존재하며, 손실 함수별로 각기 다른 목표, 데이터 유형 및 우선순위에 적합합니다. 가장 일반적으로 사용되는 손실 함수는 크게 회귀 손실 함수와 분류 손실 함수로 구분됩니다.
회귀 손실 함수는 연속값과 관련된 예측의 오차를 측정합니다. 회귀 손실은 가격, 나이, 크기, 시간처럼 정량화 가능한 개념을 직접 추정하는 모델에 가장 직관적으로 적용되지만, 그 외에도 광범위한 분야에 적용 가능합니다. 예를 들면, 개별 픽셀의 색상값을 추정하는 작업을 수행하는 이미지 모델을 최적화하기 위해 회귀 손실 함수를 사용할 수 있습니다.
분류 손실 함수는 데이터 포인트가 속한 카테고리 또는 이메일이 스팸인지 여부와 같은 불연속 값과 관련된 예측의 오류를 측정합니다. 분류 손실의 유형은 이진 분류에 적합한 유형과 다중 클래스 분류에 적합한 유형으로 더 세분화할 수 있습니다.
이 두 가지 범주 중에서 어떤 손실 기능을 선택할지는 사용 사례의 성격에 따라 결정해야 합니다. 일부 머신 러닝 알고리즘에는 수학적 구조에 맞는 특정 손실 함수가 필요하지만, 대부분의 모델 아키텍처에는 적어도 이론적으로는 여러 가지 옵션이 있습니다.
손실 함수마다 우선 순위를 두는 오차 유형이 다릅니다. 예를 들어, 어떤 함수는 이상값에 가혹하게 페널티를 주는 반면 다른 함수는 사소한 편향을 제어할 수 있습니다. 일부는 더 높은 정확도를 제공하는 대신, 계산이 더 복잡해져 더 많은 시간과 컴퓨팅 리소스가 계산이 소요되는 단점이 있습니다.
결국 손실 함수를 선택할 때는 특정 학습 작업, 모델이 분석하는 데이터의 특성, 비용이 가장 많이 드는 부정확성의 유형 및 사용 가능한 계산 리소스를 고려해야 합니다.
선형 회귀 또는 다항식 회귀와 같은 회귀 문제는 하나 이상의 독립 변수(x)와 종속 변수(y) 간의 관계를 결정하여 연속값을 출력합니다. x가 주어지면 y의값을 예측합니다. 따라서 회귀 손실은 출력이 잘못되었는지 여부뿐만 아니라 기준값에서 벗어나는 정도에 민감해야 합니다.
평균 제곱 오차 손실 함수(L2 손실 또는 2차 손실이라고도 함)는 일반적으로 대부분의 회귀 알고리즘에서 기본값으로 사용됩니다. 이름에서 알 수 있듯, MSE는 모든 학습 예제에서 예측값과 실제값의 차이 제곱의 평균으로 계산됩니다. n개의 데이터 포인트에 대한 MSE를 계산하는 공식은 1n∑i=1n(yi-yi^)2로 작성되며, 여기서 y는 실제 값이고 ŷ 는 예측 값입니다.
오차를 제곱하면 결과값이 항상 양수이므로 MSE는 오차의 크기만 평가하고 방향은 평가하지 않습니다. 오차를 제곱하면 큰 실수가 전체 손실에 불균형적으로 큰 영향을 미치므로 이상값에 강력한 불이익을 주고 모델이 이상값을 줄이도록 인센티브를 제공합니다. 따라서 MSE는 대상 출력이 정규(가우스) 분포를 갖는다고 가정할 때 적합합니다.
MSE는 항상 미분 가능하므로 경사 하강법을 통해 회귀 모델을 최적화하는 데 실용적입니다.
목표 출력이 매우 넓은 범위의 잠재적 값을 갖는 회귀 문제(예: 기하급수적 증가)에서 큰 오차에 엄격한 페널티를 적용하면 오히려 역효과를 낼 수 있습니다. 평균 제곱 로그 오차(MSLE)는 예측 값과 평균 값 간의 차이에 대한 자연 로그의 제곱을 평균화하여 이 문제를 상쇄합니다. 그러나 MSLE는 너무 높은 예측보다 너무 낮은 예측에 더 큰 페널티를 할당한다는 데 유의해야 합니다.
MSLE의 수식은 1n∑i=1n(loge(1+yi)-loge(1+yi^))2로 작성됩니다.
평균 제곱근 오차는 MSE의 제곱근이므로 표준 편차 공식과 밀접한 관련이 있습니다. 구체적으로 RMSE는 다음과 같이 계산됩니다.
.
따라서 RMSE는 이상값에 대한 민감도 측면에서 MSE의 품질을 크게 반영하지만 출력 값 자체와 동일한 단위로 손실을 표현하기 때문에 해석하기가 더 쉽습니다. 이러한 이점에도 불구하고 RSME 계산은 MSE 계산에 없는 다른 단계가 필요하므로 계산 비용이 증가합니다.
평균 절대 오차 또는 L1 손실은 예측값과 실제값 간의 평균 절대 차이를 측정합니다. MSE와 마찬가지로 MAE는 항상 양수이며, 너무 높거나 낮은 추정치를 구별하지 않습니다. 모든 오차의 절대값을 표본 크기로 나눈값의 합으로 계산됩니다.
MAE는 각 손실값을 제곱하지 않기 때문에 MSE보다 이상값에 더 강합니다. 따라서 MAE는 모델에 과도하게 영향을 미치지 않는 극단적인값이 데이터에 포함될 수 있는 경우에 적합합니다. 또한 L1 손실은 L2 손실보다 작은 오차에 더 많은 페널티를 적용합니다.
예측된 출력이 실제 출력과 일치하는 경우에는 MAE 손실 함수를 미분할 수 없습니다. 따라서 MAE는 최적화 과정에서 더 많은 해결 방법이 필요합니다.
후버 손실은 부드러운 L1 손실 이라고도 하며 MAE와 MSE의 장점을 균형 있게 유지하는 것을 목표로 합니다. 여기에는 전환점 역할을 하는 조정 가능한 하이퍼파라미터 δ가 통합되어 있습니다. 손실 값이 δ보다 작거나 같은 경우 후버 손실은 2차적입니다(예: MSE). 손실 값이 δ보다 큰 경우 후버 손실은 선형적입니다(예: MAE).
따라서 후버 손실은 이상값에 대한 MAE의 견고성과 경사 하강을 통한 MSE의 최적화 용이성으로 완전히 미분 가능한 기능을 제공합니다. 또한 δ에서 2차 동작에서 선형 동작으로의 전환은 MSE 손실과 비교할 때 그래디언트의 소실 또는 폭발과 같은 문제가 발생할 가능성이 적은 최적화를 제공합니다.
이러한 이점은 δ를 신중하게 정의해야 한다는 점 때문에 모델 개발에 복잡성을 더한다는 단점이 있습니다. 후버 손실은 모델이 이상값에 대해 강해야 하지만 특정 임계값을 초과하는 극단값에 대해 가혹하게 불이익을 주는 경우처럼 MSE과 MAE 모두 만족스러운 결과를 도출할 수 없는 경우에 가장 적합합니다.
분류 문제와 이를 해결하는 모델을 최적화하는 데 사용되는 손실 함수는 이진 분류(예: "스팸" 또는 "스팸 아님", "승인" 또는 "거부") 또는 다중 클래스 분류로 나뉩니다.
다중 클래스 분류 문제는 두 가지 방법으로 접근할 수 있습니다. 한 가지 방법은 각 잠재적 범주에 속하는 데이터 포인트의 상대 확률을 계산한 다음 가장 높은 확률이 할당된 범주를 선택하는 것입니다. 이 접근 방식은 일반적으로 출력 계층의 뉴런에 소프트맥스 활성화 함수를 사용하는 신경망에서 사용됩니다. 또 다른 방법은 문제를 일련의 이진 분류 문제로 나누는 것입니다.
대부분의 경우 분류 손실은 엔트로피 측면에서 계산됩니다. 엔트로피는 쉽게 말해 시스템 내의 불확실성을 측정하는 척도입니다. 직관적인 예를 들어보겠습니다. 동전 던지기와 주사위 굴리기를 비교해보면, 동전 던지기(2)에서 발생할 수 있는 결과는 주사위 던지기(6)보다 더 적기 때문에 전자의 엔트로피가 더 낮습니다.
지도 학습에서는 모델 예측을 데이터 레이블이 제공한 진실 값과 비교합니다. 이 진실 값은 틀림없기 때문에 엔트로피가 낮거나 전혀 없습니다. 그래서 모델이 예측한 레이블의 확실성과 실제 레이블을 사용하여 얻은 확실성의 차이에 따라 손실을 측정할 수 있습니다.
교차 엔트로피 손실(CEL) 공식은 두 확률 분포의 차이를 측정하는 쿨백-라이블러 발산(KL 발산)의 공식에서 파생됩니다. 손실을 최소화하려면 각 잠재적 레이블에 할당된 확률의 실측값 분포와 모델에서 예측한 각 레이블의 상대적 확률 사이의 차를 최소화해야 합니다.
로그 손실이라고도 하는 이진 교차 엔트로피 손실은 이진 분류에 사용됩니다. 이진 분류 알고리즘은 일반적으로 0과 1 사이의 우도값을 출력합니다. 예를 들어 이메일 스팸 탐지 모델에서 출력이 1에 가까운 이메일 입력은 "스팸"으로 분류될 수 있습니다. 0에 가까운 출력을 생성하는 입력은 "스팸 아님"으로 분류됩니다. 출력이 0.5이면 최대 불확실성 또는 엔트로피를 의미합니다.
알고리즘은 0과 1 사이의 값을 출력하지만, 정확한 예측에 대한 기준값은 정확히 “0” 아니면 “1”입니다. 따라서 이진 교차 엔트로피 손실을 최소화하려면 잘못된 예측에 불이익을 주는 것 뿐만 아니라 확실성이 낮은 예측에 대해서도 불이익을 줘야 합니다. 이렇게 하면 모델이 정확할 뿐만 아니라 신뢰할 수 있는 예측을 생성하는 매개변수를 학습하도록 인센티브를 부여할 수 있습니다. 또한 예측 우도값의 로그에 초점을 맞추면 알고리즘은 확실히 틀린 예측에 더 큰 불이익을 주게 됩니다.
손실값이 낮을수록 오차가 적다는 일반적인 규칙을 유지하기 위해 결과에 -1을 곱합니다. 따라서 단일 예제 i에 대한 로그 손실은 –(yi·log(p(yi))+(1-yi)·log(1-p(yi)))로 계산되며, 여기서 yi는 실제 가능성(0 또는 1)이고 p(yi)는 예측된 가능성입니다. 따라서 n개의 훈련 예제로 구성된 전체 세트의 평균 손실은 —1ni=1nyi·log (p (yi)) + (1-yi) ·log (1-p (yi))로 계산됩니다.
범주형 교차 엔트로피 손실(CCEL, Categorical Cross-Entropy Loss)은 다중 클래스 분류에 동일한 원칙을 적용합니다. 다중 클래스 분류 모델은 주로 잠재적 클래스 각각에 대한 값을 출력하며, 해당되는 범주 각각에 속하는 입력의 확률을 나타냅니다. 다시 말해 예측을 확률 분포로 출력합니다.
딥 러닝에서 신경망 분류기는 일반적으로 출력 계층의 뉴런에 소프트맥스 활성화 함수를 사용합니다. 각 출력 뉴런의 값은 0과 1 사이의 숫자로 매핑되며, 이 값을 모두 합치면 1이 됩니다.
예를 들어, 잠재적 범주가 하나만 포함된 데이터 포인트에서 각 예측에 대한 실측값은 올바른 클래스에 대해 “1", 잘못된 각 클래스에 대해 “0"으로 구성됩니다. CCEL을 최소화하려면 올바른 클래스의 출력값은 높이면서 동시에 잘못된 클래스의 출력값은 낮추어 확률 분포를 기준값에 가깝게 만들어야 합니다. 각 예에서 모델이 예측한 각 잠재적 분류에 대해 로그 손실을 계산해야 합니다.
힌지 손실은 이진 분류 문제에 대한 대체 손실 함수이며, 특히 서포트 벡터 머신(SVM) 모델을 최적화하는 데 적합합니다. 특히 두 클래스를 구분하는 결정 경계를 최적화하기 위한 효과적인 손실 함수입니다. 이후 포인트는 결정 경계의 어느 쪽에 속하는지에 따라 분류될 수 있습니다.
힌지 손실을 사용하는 알고리즘에서 각 이진 레이블의 실측값은 {0,1}이 아닌 {-1, 1}에 매핑됩니다. 힌지 손실 함수 ℓ은 ℓ(𝑦)=max(0,1−𝑡⋅𝑦)이며 여기서 t는 실제 레이블이고 y는 분류기의 출력입니다. 이 방정식의 결과는 항상 음수가 아닙니다. 1−𝑡⋅𝑦가 음수인 경우(모델이 올바른 클래스를 예측해서 t와 y가 같은 부호일 때만 가능) 손실은 대신 0으로 정의됩니다.
힌지 손실은 다양한 가능성과 인센티브를 제공합니다.
모델 예측이 정확하고 확실할 때, 즉 y가 올바른 부호이고 |y| ≥ 1일 때 1–t⋅𝑦의 값은 음수가 되므로 ℓ = 0이 됩니다.
모델 예측이 정확하지만 신뢰할 수 없는 경우, 즉 y의 부호가 정확하지만 |y| < 1인 경우 ℓ값은 0과 1 사이의 양수가 됩니다. 이렇게 하면 신뢰할 수 없는 예측이 억제됩니다.
모델 예측이 잘못된 경우, 즉 y가 잘못된 부호인 경우 ℓ의 값은 1보다 크고 |y| 값에 대해 선형적으로 증가합니다. 이렇게 하면 잘못된 예측이 크게 억제됩니다.
딥 러닝에 사용되는 모델 아키텍처 중 일부는 표면상으로 고유하고 특화된 손실 함수를 사용합니다. 이러한 목적 함수는 컨텍스트와 논리 측면에서 고유하긴 하지만, 일반적인 손실 함수를 특정 학습 목표에 특수하게 적용하는 경우가 많은 것 뿐입니다.
예시는 다음과 같습니다.
오토인코더는 입력 데이터의 압축된 표현을 '병목 현상'을 통해 압축한 다음 이 압축된 표현을 사용하여 원본 입력을 재구성함으로써 효율적으로 인코딩하는 방법을 학습하는 비지도 모델입니다. 오토인코더는 재구성 손실(원본 입력과 재구성된 입력 간의 차이, 일반적으로 평균 제곱 오차(MSE)를 통해 계산)을 최소화하여 학습합니다. 변형 오토인코더는 KL 발산을 정규화 조건으로 통합합니다.
객체 감지 모델은 경계 상자 회귀와 교차 엔트로피 손실의 두 가지 손실을 최소화합니다. 전자는 MSE, MAE 또는 IoU(Intersection over Union)와 같은 특수 손실을 사용하여 예측된 경계 상자의 좌표를 실측 좌표와 비교합니다. 후자는 객체 자체의 분류를 측정합니다.
대조 학습은 자기 지도 학습의 한 형태로, 모델이 유사한 데이터 포인트에 대해 유사한 벡터 임베딩을 출력하도록 학습시킵니다. 이 방법은 대조 손실이나 삼중 손실과 같은 특수 변형을 줄이는 것을 목표로 합니다.