재형이의 성장통 일지
  • 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. 모두 더하면 1?
      그렇다
    2. 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)
    • 지금까지 살펴보면 결국 우리가 딥러닝에서 하고자 하는 것은 다음이 끝이다

     

     

     

     

     

     


     

     

     

     

     

     

     

    반응형
    댓글