예전 공부하던 시절 시험에 쫓겨 벼락치기 공부를 일삼았던 기억이 납니다. 그로 인해 지금 책이나 논문을 보다보면 그 때 얼마나 날림 공부를 했는지 반성하게 되는 계기가 많이 생깁니다. 기초부족이 여실히 느껴지기도 하구요..

 

Maximum Likehihood Estimator

 

오늘은 신호처리쟁이들이라면 누구에게나 익숙한 Maximum Likelihood Estimator (MLE) 부분을 좀 보고 있는데.. 이게 또 예전에 보던 것과는 사뭇 다른 느낌으로 다가오는군요. (예전에 공부할 때 알고 있던 걸 나이가 들어 잊어버린건지.. 예전에 날림 공부를 해서 애초에 몰랐던 건지 헷갈립니다. ㅎㅎ) --> Estimation Theory 공부할 때 보던 Kay의 Fundamentals of Statistical Signal Processing 을 보니 예전에 다 메모하면서 공부했던 흔적이 .. ㅠㅠ 치매가 맞나봅니다 어흑.

 

여튼 MLE는 일단 estimator기 때문에 어떤 unknown parameter ( θ )의 값을 추정하는 것입니다. 이 때 어떤 observation y 의 probability density function (a.k.a Likelihood) 을 알고 있다고 가정합니다. 그렇다면 다음의 문제를 풀면 unknown parameter를 추정할 수 있겠지요.

"Unknown parameter 가 어떤 값을 가질 때 가장 observed data y가 나올 확률이 높겠느냐??? "

이것을 수식적으로 표현하면 다음과 같습니다.

y 가 bold로 표시된 것은 N 개의 observations 을 가정한 vector form이구요, 세미콜론은 그 뒷부분의 character가 unknown parameter임을 의미합니다. 그런데, 한가지 살펴보아야 할 중요한 점은 이 unknown parameter가 Deterministic 하다는 것이지요. 만약 이 unknown parameter가 random 하다면 그 때는 MLE가 아닌 Baysian Estimator를 사용해야 한다고 합니다. (뭐 자세한 내용은 차치하더라도 대충 그럴 듯 합니다. 하지만 과연 예전에 공부할 때 이 사실을 내가 알고 있었는지 -_-;;) 

 

Example of MLE

 

그러면 MLE를 single-channel speech enhancement 알고리즘에 적용을 해볼까요? [1]

마이크가 받아들인 신호(observation data)를 frequency domain에서 다음과 같이 모델링 해봅시다.

여기서 X는 Clean Speech, D는 Noise 를 나타냅니다. 윗 식을 Magnitude와 Phase로 나누어 생각해보면

로 다시 쓸 수 있지요.

여기서 Maximum Likelihood "Magnitude and Phase" Estimator

가 됩니다. 하나의 식으로 두 개의 unknown parameter를 추정하는 것은 어려우므로, 비교적 덜 중요한 phase는 없애주는데 [0,2pi]에 대해 intergral하여 out 시키면, 최종 식

를 얻을 수 있지요.

이것을 풀면 Maximum Likelihood "Magnitude" Estimator의 solution이 되겠네요. (여기서 Magnitude는 Complex Exponential 이 아님에 유의!)

이상은 Clean Speech가 Deterministic 하다고 보고 Speech Enhancement Algorithm을 유도한 식이 되겠습니다. 그럼 Speech가 Stochastic하다면??

 

References

 

[1] P. C. Loizou - Speech Enhancement – Theory and Applications.




신고
  1. 수식 폰트를 키웠더니 좀 보기 좋네요.. 굳~! 나날이 발전하는 SpeechEnhancement.org!!!

  2. DrK007 2010.10.31 14:23 신고

    P.C.Loizou 교수님 랩에서 Ph.D.학생과 PostDoc을 뽑으려고 하던데 혹시 관심있으신분계시면 지원해보세요

  3. ML Estimator를 다시 볼일이 좀 생겨서 읽다보니 글 참 못썼군요 ㅡㅡ; 뭔말인지 나도 잘 모르겠네요.

    짧게 표현하자면 ML Estimator는 결국
    "내가 어떤 data를 받아봤는데, 그 data가 나올 확률이 제일 높도록 만들어주는 unknown parameter를 찾는 방법"
    입니다.
    물론 unknown parameter와 내가 받아본 data간에는 어떤 상관관계는 있어야 겠지요??

    이것도 나중에 보면 무슨 말인지 모르게 되는 것 아닌가 몰라 ^^;

    • 공돌이 2015.05.16 22:40 신고

      안녕하세요? 음파선생님 만약에 동전 100개를 던졌는데 앞면이 12번나왔을경우 12번이 나오게된 UNKNOWN PARAMETOR를 찾는 방법이 MLE인것이라면 뭐 많은 변수가 12번을 나오게 했을것 같습니다. 제가 궁금한것은 이런경우 MLE를 찾는 방법? 은 어떻게 해야 하나요? 개념을 이해하려고보니 이해가 가질 않아서요. 알지못하는 파라미터는 예를들어 온도, 그날의 기분, 동전 무게 등등 수많은 파라미터가 될텐데.. 어떤 기준으로 어떻게 MLE를 구하는것인지 설명 부탁드립니다.

    • 그 수많은 unknown parameter를 모두 고려할 수 있겠지만, 실제로는 쉽지 않을 것 같습니다.
      그 이유는
      1. 그 모든 parameter에 대해 likelihood가 볼록 함수 형태여야 mle를 적용할 수 있을 것 같고
      2. 그 모든 parameter를 고려한 likelihood를 구해야 하기 때문일 것 같아요.

      제가 본 것들은 1~3개 정도의 파라미터만 사용했던 것 같습니다.

      제가 생각해도 이거 답이 이상하네요. 단순히 참고만 하세요 ㅡㅡ

  4. 공돌이 2015.05.16 22:26 신고

    안녕하세요?

  5. 공돌이 2015.05.16 22:29 신고

    안녕하세요? 음파선생님 MLE에.댜한 포스팅 잘 보았습니다. 사실 MLE에.대한 개념을 찾던중에 댓글로 표현된 부분을 보고서야 드디어 알게 된것? 같습니다 다름이아니라 ML에대한 개념에대해서도 설명을 부탁드려도 될까요? 다른 글들을 보아도 도무지. 수식적인 글들만 있고 개념을 이해하기에는 수식적인 백그라운드가 부족하여 이해가 안되서요.

    • likelihood 라는 것은
      어떤 관찰 값들 (observations) 이 있다고 할 때 해당 관찰 값들이 나올 확률 값으로 보면 되지 않을까 싶습니다.

      Maximum likelihood 는
      커피를 몇잔 먹은 사람이 제일 암에 잘 걸릴까?
      이런 문제를 푸는 tool이죠.

      즉 암에 걸린 사람들의 평균 커피 먹는 양을 관찰 합니다.
      그러면 해당 관찰 값들에 해당하는 likelihood를 구하구요.
      가장 암에 잘걸릴(maximum) 확률에 해당하는 커피 양을 구해보는 거죠...

  6. 공돌이 2015.05.21 15:35 신고

    음파선생님 감사합니다. 말씀해주신 내용에서 궁금한점이 있습니다.
    우도를 이용하여 관츤된값이 나오기위한 확률을 구할수 있다고 하셨는데요 이거 PDF랑 똑같은거 아닌가요? 각가의 우도값은 각각의 관찰된 어떤 값과 같은 내용일꺼란 생각이 들어서요 즉 그냥 우도라고 표현한것뿐이지 각각의 관찰된값으로 치환해도 문제가 없어보여서요.(물론 스케일은 0과1사이로 하겠지만요)

    그리고 또하나 궁금한것이 있습니다. 각가의 우도값을 구한후에 가장 큰 우도값이 다른 우도들을 대신하나요? 예를 들어서 월요일에 2번 수요일에 4번 기차를 타는 사람에게서 가장 큰 우도값은 4일것인데요 그럼 최대우도값으로 우리가 내릴수 있는 결론은 이사람은 수요일에 기차를 탄다 가 되나요? 나머지 월요일은 무시되구요?

    • 안녕하세요 ^^

      일단 우도와 pdf의 경우, 사실 저도 얼추 비슷해 보입니다만..
      다들 틀리다고 하더라구요 ^^
      그래서 요즘 머릿속으로 개념을 정리 중에 있습니다.
      책마다 약간씩 표현하는 방식이 달라서 저만의 것으로 만들지는 못했다고 할까요??
      나중에 정리가 다 되면 자세히 글을 한번 올릴께요.
      (일단은 대충 비스무레 하다라고 넘어가도 문헌들 보기에는 큰 무리는 없더라구요)

      누군가가 기차를 탔는데, 그 사람이 무슨 요일에 탔을까요??
      라는 질문에 대한 답은 말씀하신대로 MLE 관점에서보면 수요일이다. 가 정답이 될 것 같습니다.

      댓글을 읽어보니 잘 이해하고 계신 것 같습니다.
      이 정도만 아셔도 앞으로 쭉쭉 진도나가시면서 어느날 뒤를 돌아보면
      개념을 완벽히 이해되실 것으로 생각되네요 ^^

      그럼 좋은 연구활동 되세요~!

+ Recent posts