방명록
- MSE, log-likelihood, MLE, 다중 분류2024년 02월 27일 07시 52분 14초에 업로드 된 글입니다.작성자: 재형이반응형
- 혁펜하임 선생님의 강의의 가장 좋은 점은 생각할 수 있는 방법을 기르게 한다는 점이다
- 이거 듣고 혁펜하임 커리큘럼에 맞게 수업들어야 겠다
지갑 열어 - 왜 이런식으로 나오고 어떻게 생각했는지가 중요하다
- 누구나 알고 있지만 가장 어려운 것...ㅎ
1. MSE vs Log-Likelihood
- 로스 함수 중에 MSE와 Log-Likelihood가 있다
- MSE는 선형회귀, Log-Likelihood는 이진 분류에 많이 사용한다
- Likelihood는 관측된 사건이 고정된 상태에서, 확률 분포가 변화될 때(=확률 분포를 모를 때 = 가정할 때), 확률을 표현하는 단어이다
2. 로스 함수를 결정하는 방법 : 해석의 차이
- 그럼 로스 함수는 어떤걸 기준으로 정하면 될까?
- 그냥 선형회귀에는 MSE를 사용하고, 이진 분류에는 Log-Likelihood를 사용해? 왜 쓰는건데? 왜? Why?
- 로스 함수를 결정하는 방법에는 여러가지 해석이 있을 수 있다
2-1. convex
- 그래프가 그라디언트를 사용하기 좋으면 convex, 나쁘면 non-convex라고 볼 수 있다
- Sigmoid에서 어떤 로스를 사용했을 때 convex하게 나타낼 수 있는지 확인해보자
(가중치 W가 하나 주었을 때만 간단하게 확인해보자)
- 그라디언트를 적용해보았을 때 괜찮아보이나요?
- 흠... 초기값을 잘못 잡으면 이상한 곳으로 빠지게 되는 local minimum에 빠질 수도 있을 것 같다
- 너무나 이쁜 그래프죠?
- 그라디언트 쓰기 딱 좋죠?
- 이처럼 그라디언트를 사용하기 좋은지 나쁜지란 관점에서 로스 함수를 결정할 수도 있다
2-2. 민감도
- 이진 분류를 생각해보자
- 우리가 원하는 1 값이 나오지 않고 0에 가까운 값이 나오게 될 경우를 생각해보자
- 왼쪽 그래프는 0으로 갈 수록 로스가 커지긴 하지만 1에서 멈춘다
- 하지만 오른쪽 그래프는 0에 가까이 갈 수록 미친듯이 로스가 커진다. 즉, 오차에 민감하다고 말할 수 있다
- log-likelihood 가 훨씬 더 오차에 민감하게 반응함
- 그렇기 때문에 이런 관점에서 오차에 더 민감하게 반응하는 log-likelihood를 이진 분류의 로스함수로 사용하면 더 적합해보인다
2-3. 가우시안에 해당할까?
- 강아지와 고양이를 분류하는 이진 분류가 가우시안 분포에 적합할까?
- 아니다 베르누이 분포에 더 적합해보인다
- 키와 몸무게의 상관 관계는 가우시안 분포로 적용해볼 수 있을 것 같다
- 근데 갑자기 왜 가우시안 분포냐고?
- 가우시안 분포의 공식에 -log를 취해주면 그게 MSE 공식이 나와버린다
- 결국 MSE나 log-likelihood나 결국 W에 대한 MLE (Maximum Likelihood Estimation) 라는 것을 알 수 있다
- 어쨌거나 저쨋거나 MLE를 적용하기 위해 log를 취해주었을 뿐인데 가우시안 분포에 적합한 경우면 MSE가 나오는 것이고 베르누이 분포에 적합하면 log-likelihood가 나오게 되는 것이다 (마이너스 취해주어야 하긴 함, 로스를 최소화해야하므로)
3. 다중 분류
- 그럼 이진 분류가 아니라 다중 분류일때는 어떻게 해야할까?
- 강아지와 고양이만 분류하는 것이 아니라, 강아지, 고양이, 소를 분류해야하는 경우라면 어떻게 해야할까?
- Sigmoid에서 어떻게 나눠야할까?
- 강아지면 q=1, 고양이면 q=1/2, 소면 q=0 이 나오도록?
- 그렇게 나누면 너무 불공평하지 않을까?
- 어느 부분은 완만하고 어디는 가파르고...
- 그리고 만약에 소처럼 생긴 강아지라면?
- 강아지인데 소처럼 생겼으니까... 강아지에서 소 방향으로 값이 치우치게 될 것이고... 그러면... 고양이...? 엥?
- 차라리 소가 나오면 몰라도 왜 뜬금없이 고양이가...
- 이게 만약에 3종류가 아니라 1000종류라면? 각 동물들의 과에 맞게 순서를 배열하고 어떻게 구분지을 것이며...;;;
- 그러면 어떻게 해야할까?
- 출력 노드의 수를 늘리자!!!
- 그럼 출력 나와야할 p는? [1,0,0] [0,1,0] [0,0,1] 그리고 이런 것을 one-hot encoding라고 부른다
- 근데 이진 분류에서는 1과 0이니까 베르누이 분포였는데 이거는 여러개가 나오므로 확률 분포로 표현을 해야한다
- 확률 분포는 0~1의 값이어야 하고 모두 더하면 1이 되어야 한다
- 어떻게 하면 실현시킬 수 있을까?
- softmax라는 것을 사용해보자
3-1. softmax
- softmax는 다음과 같은 모양이다
- 일단 Linear Activation으로 끝나고 그 다음에 Softmax로 들어간다
- 우리가 아는 일반적인 Activatino 모양과는 조금 다르지만 이런 것도 가능하다
(딥러닝에서는 우리가 상상하는 모든 것이 가능하다!!! 효과만 있다면!) - 여튼 softmax에 들어가면 저런 모양으로 나오게 된다
- 확률 분포의 조건을 모두 성립한다
- 모두 더하면 1?
그렇다 - 0~1 값?
x가 양수일 경우, 자신을 (자신 + 양수)로 나누었으니 항상 1보다 작다
x가 음수일 경우, 0~1 벗어날 수도 있지만...그렇다고 절댓값을 취해서 이런식으로 한다면 문제가 발생할 수 있다. 우리가 Weight Initialization에서 보았듯이 이 친구들은 특징이 전부 다 0 근처의 값으로 초기화해준다는 것이다. 그렇다면 분모가 0으로 가까워질 수도 있다는 건데 그러면 위의 절댓값을 씌운거는 너무 불안정해져 버린다. 그렇다면 익스포넨셜은 어떨까? x가 0으로 가까워진다고 할지라도 $e^{0}=1$이니까 $\frac{1}{3}$이 될 뿐이다. 그니까 저게 그나마 더 낫다 (음?)
3-2. 꼭 Softmax를 사용해야 하나?
- 안쓰고 그냥 sigmoid로 끝내면 안돼?
- 확률로 나타내면 되는거 아닌가? 거기서 확률이 가장 높은게 답이자나
- 그렇게 될 경우 back propagation에서 서로를 고려하지 않고 각각의 path만 고려하게 됨
- 하지만 softmax를 사용하게 될 경우에는
- 서로 영향을 주기 때문에 모두 고려해야함
- 하나만 보지 않고 모두 고려하며 답을 찾아낼 수 있으니까 더 좋은 모델이 아닐까?
→ Softmax 🎉Win🎊
3-3. 다중 분류에서의 로스 함수
- 다중 분류에서는 cross-entropy라는 것을 로스 함수로 사용한다
- cross-entropy의 minimum이 entropy이기 때문에
- 로스가 작아질 수록 q가 우리가 구하려는 p에 가까워진다
- 그래서 크로스 엔트로피를 로스 함수로 하는 것이다
- 그러면 이진 분류에도 크로스 엔트로피를 써버리면 되는거 아냐?
- 어차피 둘이 개념이 똑같다 CE = -log(likelihood)
- 지금까지 살펴보면 결국 우리가 딥러닝에서 하고자 하는 것은 다음이 끝이다
반응형'인공지능 > 인공지능 기초' 카테고리의 다른 글
Overfitting 방지, CNN과 이미지의 상관 관계 (2) 2024.02.29 Univeral Approximation Theorem, Vanishing Gradient 방지 (2) 2024.02.28 비선형 액티베이션, 역전파, 이진분류 (6) 2024.02.26 Momentum, Adam, Validation, DNN (2) 2024.02.25 선형 회귀, 경사 하강법, 가중치 초기화, SGD (2) 2024.02.24 다음글이 없습니다.이전글이 없습니다.댓글