본문 바로가기
Computer Science/Artificial Intelligence

[인공지능] SP05. Loss functions

by na1-4an 2023. 10. 21.

0. Review: Loss functions

: 우리는 목푯값과 실제 결과의 차이를 최소화하는 파라미터를 찾아야함!

  이때, loss function으로 불일치 정도를 하나의 숫자로 알 수 있음.

 

1. Task

  • Regression(회귀): y는 실수값.
  • Binary classification(이진 분류): y ∈ {0, 1}는 두 범주 중 하
  • Multiclass classification(다중 클래스 분류): y ∈ {1, 2, . . . , K}는 K개 범주 중 하나

우리는 우리 목적에 맞는 loss funtion을 만들어야한다!

5-1. Maximum likelihood

1. Maximtm likelihood

  - 과거: 에러를 많이 줄이자!

  - 현재: 답을 맞출 확률을 높이자!

 

2. 결과 분포 예측

- a) Regression task

  • 훈련 데이터(주황색 점)로 부터 입력 x로부터 결과 y를 예측하는 것.
  • x에 대해 머신러닝 모델은 결과 y에 대한 분포 Pr(y|x)를 예측함.
  • loss 함수는 해당 입력으로 예측된 분포 아래에서, 실제 결과의 확률최대화하려함.

- b) Classification task

  • 이산 클래스 y ∈ {1, 2, 3, 4}를 예측.
  • 이산 확률 분포
  • 모델은 입력에 대한, y 네가지 가능한 값에 대해 서로다른 히스토그램을 예측.

- c, d)

 

  • c: y ∈ {0, 1, 2, . . .}를 예측하기 위해 양의 정수에 대해 정의된 분포 사용
  • d:  y∈ (−π, π]를 예측하기 위해 circular domain(π~- π )에 대해 정의된 분포 사용

 

3. 출력 분포 계산

  - 모델  f[x, ϕ]가 확률 분포를 어떻게 계산할까?!(아래의 two step)

  • 우선 출력 도메인 y에 정의된 모수화(parametric)된 분포 Pr(y|θ)를 선택한다.
  • 그 뒤, 네트워크를 사용해 이 분포의 하나 이상의 모수 θ를 계산한다.

  - 예시

  • y ∈ R 
  • 정규분포
  • 평균(µ, mean)과 분산( σ ^2, variance)의해 정의됨. θ = {µ, σ^2}
  • 머신 러닝 모델은 평균을 예측할 수 있고, 분산은 알려지지 않은 상수로 취급이 가능함.

 

4. Maximum likelihood criterion

: 우도를 최대화하는 방향으로 모수를 추정하는 방법!

: 우리는 모델의 매개변수 ϕ를 선택하여, I개의 모든 확률을 곱했을 때 이를 최대화 해야함.

(Likelihood란 관측된 사건이 고정된 상태에서 확률 분포가 변화할 때의 확률을 표현하는 단어.)

모든 데이터들이 독립적이면 곱해줘도 무관하니까 데이터들의 높이를 모두 곱해주면

아래와 같은 likelihood 식을 얻을 수 있다.

likelihood의 표현식. 세타라는 파라미터를 갖는 분포.
데이터 x_n이 세타의 평균, 분산을 따르는 정규분포를 따를 확

우리는 이러한 combined된 확률을 likelihood라고 함!

<<최대우도법의 가정 2가지(iid) >>

  • 데이터는 동일하게 분포된다.(identically distribute)
  • 조건부 분포는 서로 독립적이다.(independents)

5. Maximizing log-likelihood

: 1보다 작은 값을 많이 곱하면 매우 작은 값으로 나올 것임.

 -> 해결: log를 사용하자!

로그 우도의 최대화

6. Minimizing log-likelihood

우리는 관례적으로 최소화하는 것에 익숙함.

지금은 최대화로 하는 거니까 헷갈림 ㅠㅠ

얘도 최소화로 만들어 버리자! -> 어떻게? -> -1을 곱하자!

NLL: Negative Log Likelihood

7. Inference

  • 이제 네트워크는 직접적으로 y를 예측하지 않고, y에 대한 확률 분포를 결정함.
  • 추론을 할 때 종종 점 추정을 원하므로 분포의 최댓값을 반환한다.

  • 모델에 의해 예측된 분포 모수 θ의 관점에서 표현할 수 있다.
  • 예를들어 정규분포의 경우 최댓값은 평균에서 발생한다.

5-2 Recipe for constructing loss fucntions

1. 최대 우도 접근법을 활용하여 손실함수 구하기

  • step1) y의 도메인에 대해 정의된 적절한 확률 분포를 선택. 이 확률 분포는 분포 모수 θ에 의해 정의됨.
  • step2) f[x, ϕ]를 이용해 매개변수 중 하나 이상을 예측. 즉, θ = f[x, ϕ],  Pr(y|θ) = Pr(y|f[x, ϕ])
  • step3) 모델을 훈련하기 위해 훈련 집합에 대한 손실함수를 최소화하는 네트워크 매개변수 ϕ를 찾음.
  • step4) 새로운 훈련 데이터에 대한 추론을 하려면 전체 분포 Pr(y|f[x, ϕˆ]) 나, 이 분포의 최댓값을 반환함.

5-3 Example1: univariate regression

1. 회귀

  • step1) y에 대한 확률 분포 선택. (우리는 단변량 정규분포 선택.)

  • step2) 머신 러닝 모델  f[x, ϕ]를 사용해 매개변수 중 하나 이상 계산. (우리는 평균만 계산함. µ = f[x, ϕ])

  • step3) 훈련 데이터{xi, yi}를 가장 가능성 높게 만드는 ϕ를 찾는다. (이를 위해 NLL에 기반한 손실함수 L[ϕ]를 선택)

    → 최소 제곱 손실 함수!!(the least squares loss function)

        (예측 오류가 독립적이고, 평균이 µ = f[x, ϕ]인 정규분포에서 추출된 가정으로부터 자연스럽게 나옴!)

c) 모델이 잘 맞아 데이터의 확률 Pr(yixi)이 높음     d) 모델이 맞지 않아 확률이 높음

 

2. Inference

  • 네트워크는 더이상 출력y를 직접 예측 않고, y에 대한 정규 분포의 평균 µ = f[x, ϕ]을 예측함.
  • 추론할 때 최선의 점 추정값을 원하기 때문에 예측 분포의 최댓값을 취함.

  • 정규 분포의 경우 최댓값의 위치는 µ에 의해 결정됨.
  • 그래서 y^ = f(x, ϕ) = µ

 

3. 분산 추정

분산 추정은 어떻게 해야할까...

  • mean (µ): 최적의 예측 값
  • variance (σ): 예측의 불확실성을 알려줌. ??

 

4. Heteroscedastic regression

  • Homoscedastic(동질적): 데이터의 분산은 어디서나 일정.
  • Heteroscedastic(이질적): 분산이 달라짐.

   Heteroscedastic 모델링? -> 평균과 분산을 모두 계산하는 신경망을 훈련하자!!

   ex. 출력 레이어에 노드가 2개인 shallow network를생각하자. 

        첫번째 출력을 평균 예측에 사용하고, 두번째 출력을 분산 예측에 사용한다.

 

5-4 Example2: binary classification

1. 이진 분류

: 데이터 x를 두 개의 이산 클래스 중 하나에 할당하는 것.

  ex. MRI 검사 결과 종양이 있냐(1) 없냐(2)

2. step1) 확률 분포

: 베르누이 분포 사용.

 

3. step2) 머신 러닝 모델 설정

: f[x, ϕ]을 설정하여 단일 분포 매개변수 λ를 예측.

  - λ는 [0, 1] 사이의 값을 가짐.

  - 따라서 출력을 실수 R에서 [0,1]로 매핑하는 함수를 통과한다!

  - 그 함수는 바로! 시그모이드 함수!

 

4. 이진 크로스 엔트로피 손실

  • 분포 매개변수 λ (람다)를 λ = sig[f[x, ϕ]]로 예측함.
  • 그러면 likelihood는 아래와 같게 됨.

  • 손실함수에 대입해주면

  • y의 포인트 추정: 람다가 0.5보다 크면 1로, 아니면 0으로 설정한다.

 

5-5 Example3: muliclass classification

1. 다중 클래스 분류

: 데이터 x는 K>2 클래스 중에 하나에 할당됨.

  ex. 손글씨, 불완전한 문장 x 뒤에 이어질 K가지 가능한 단어중 어느 것인지 y를 예측.

2. step1) 확률 분포

: 범주 분포(categorical distribution) 사용.

  이러한 분포는 K개의 파라미터를 가짐. ( λ1, λ2, . . . , λK)

  이러한 파라미터들은 각 범주의 확률을 결정함. Pr(y = k) = λk

K = 5

  • 각각의 매개변수들은 [0,1] 내에 있어야하고,
  • 모든 K개의 매개변수 들의 합은 1이어야 함.

3. Softmax function

: 입력 x에서 K개의 출력을 계산하는 네트워크 f[x, ϕ]를 사용해 이러한 K매개변수를 계산한다!

Softmax 함수!

→ 길이가 K인임의의 벡터를 가져와 길이는 같지만 요소가 [0,1] 범위에 있고(지수 함수 사용),

     합이 1이되도록 함(분모의 합을 사).

  * Softmax function의 k번째 출력:

a) 임의의 값을 가질 수 있는 3개의 분절 선형 출력.

b) softmax가 a에 적용되면서 a의 그래프들은 non negative하고, 합이 1이게 됨.

 

4. 다중 클래스 엔트로피 손실

negative log-likelihood

5. 점추정

: 점추정을 위해 가장 가능성이 높은 카테고리를 선택한다.

 

5-6 Multiple outputs

1. 다중 출력

: 동일한 모델로 다중 출력을 하기위해 벡터 y를 출력한다하자,

  - 일반적으로 각 예측을 독립적으로 처리함.

  - 독립성? -> yd ∈ y에 대한 단변량의 항을 곱으로 처리함을 의미!

  - fd[xi, ϕ]는 yd에 대한 분포의 매개변수를 설명하는, 신경망 출력의 d 번째 집합 .  

 

2. loss for multiple outputs

 

5-7 Cross-entroy loss

1. Cross-entropy

 = Negative log-likelihood =

2. Kullback-Leibler의 발산

: 두 확률분포 q(z)와 p(z) 간의 거리

q가 데이터, p는 데이터의 확률 분포. q의 값은 고정임. but p의 값은 바뀔 수 있음.

▪ 신경망은 출력 공간에 대한 확률 분포 Pr(y|θ)의 매개변수 θ계산합니다.
→ 손실 함수를 구성하는 원칙적인 접근 방식.
▪ 관측된 데이터의 likelihood을 최대화하는 모델 매개변수 ϕ를 선택했습니다.
→ 음의 로그-우도를 최소화하는 것과 동등합니다.
▪ 최소 제곱 기준
• y가 정규 분포를 따르며 평균을 예측하는 경우.
회귀 모델은 불확실성을 추정하기 위해 확장될 수 있습니다.
▪ 이진 분류
→ 이진 교차 엔트로피 손실
▪ 다중 클래스 분류
→ 다중 클래스 (범주) 크로스 엔트로피 손실
▪ 교차 엔트로피 = 음의 로그-우도.

인지 -> 괄호치기 문제, 계산 문제, 각각의 개념들, 과제(backpropa).