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 식을 얻을 수 있다.
우리는 이러한 combined된 확률을 likelihood라고 함!
<<최대우도법의 가정 2가지(iid) >>
- 데이터는 동일하게 분포된다.(identically distribute)
- 조건부 분포는 서로 독립적이다.(independents)
5. Maximizing log-likelihood
: 1보다 작은 값을 많이 곱하면 매우 작은 값으로 나올 것임.
-> 해결: log를 사용하자!
6. Minimizing log-likelihood
우리는 관례적으로 최소화하는 것에 익숙함.
지금은 최대화로 하는 거니까 헷갈림 ㅠㅠ
얘도 최소화로 만들어 버리자! -> 어떻게? -> -1을 곱하자!
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, ϕ]인 정규분포에서 추출된 가정으로부터 자연스럽게 나옴!)
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
- 각각의 매개변수들은 [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. 다중 클래스 엔트로피 손실
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).
'Computer Science > Artificial Intelligence' 카테고리의 다른 글
[인공지능] SP09. Regularization (0) | 2023.12.09 |
---|---|
[인공지능] SP06. Fitting Models (0) | 2023.11.08 |
[인공지능] SP04. Deep neural networks (0) | 2023.10.18 |
[인공지능] SP03. Shallow neural networks (0) | 2023.10.18 |
[인공지능] 6장/ 7장/ 8장 (2) | 2023.10.17 |