20230411화-이과의 길
목차
고데분
오늘은 svm에 대해 배웠다. 이전에 이야기로만 알음알음 알고 있었던 개념이고 직접 사용해본 적은 한번도 없었던 그 개념. 생각보다 개념이 많이 어려워서 어제 예습할 때 조금 고생했다. 그리고 모르는 만치 교수님한테 질문 세례를 갈겼는데, 이제 알고리즘 자체는 이해가 가지만, 아직 수식을 풀어나가는 것이 잘 이해되지 않는다. 근데 교수님은 내가 정말 궁금한 그 부분을 시원하게 긁어주지 않는다.
도대체 라그랑주 승수법이 뭔데? kkt 조건은 언제 어떻게 적용하는 건데? 나는 이게 정말 궁금하다. 이런 것을 알고 있어야 나중에 이걸 사용하는 다른 개념이 나올 때 알아볼 것 아닌가. 그게 진짜 설계하고 기획하고 연구하는 사람이 가져야 할 역량 아닌가?
아무튼 교수님은 알려주실 생각이 없어보이고, 나는 내가 직접 알아내고 싶어졌다. 혁펜하임이란 분을 이전에도 알고만 있었는데, 이번에 관련 지식들을 검색해보다보니 이 분의 최적화 관련 재생목록을 발견하게 됐다. 짧게 봤는데, 왜 이 분을 다들 그리 좋아하는지 딱 알겠더라. 아무래도 나도 이 분 꺼 보면서 공부해야 할 듯.
끄적끄적
원래는 한번에 정리를 하고 싶은데, 내용이 점점 어려워지니까 한 개념 공부하는 데 들어가는 시간도 늘어나고, 어떻게 정리해야 할지도 점점 난감해지고 있다. 그래서 일단 공부하는 내용들을 조금 정리를 간단하게라도 해둬야겠다.
포아송 분포는 단위시간당 평균이 주어졌을 때 일어나는 횟수.
지수 분포는 단위시간당 평균이 주어졌을 때 첫번째로 사건이 일어날 때까지 걸리는 시간
감마 분포는 단위시간당 평균이 주어졌을 때 n번째 사건이 일어날 때까지 걸리는 시간.
감마분포의 경우 팩토리얼을 복소수로 확장한 감마 함수를 분포의 형태로 만든 것이다.
왜 그런 모양을 띄는지는 아직 잘 모르겠다. 하지만 그 식에 적분을 씌워주고 확률 총합은 1이어야 하니 감마 함수로 한번 나눠주면 그게 감마분포가 된다.
지수 분포는 감마 분포의 특수한 케이스인 듯하다. 정확하게 따지면 포아송의 분포의 반대는 감마 분포라는 듯. 지수 분포의 합으로 나오는 것이 감마 분포이기도 하댄다.
이런 모양을 가지는데, 되게 다양하게 생겼다.
감마 함수는 각종 특징을 가진다. x가 자연수면 값은 그냥 팩토리얼이 된다. 그리고 1/2를 넣으면 제곱근 파이가 나온다..!
내가 아는 파이는 원과 관련된 개념인데 정규분포도 그렇고 왜 이리 많이 쓰이는 걸까..?
감마함수와 관련한 다른 분포도 있다. 베타 분포. 이건 0과 1 사이에서 정의된다고 한다. 베이지안 추정에서 잘 사용된다고 함
적률생성함수. 적률을 만드는 함수. 확률분포 pdf에 자연상수에 대충 저런 식을 곱하고 적분한다. 기댓값을 표현하느 골이다. 이게 대단한 점은, 이걸 미분하고 t에 0을 넣으면 미분한 만치의 적률이 나온다. 적률이 나온다는 것은 이를 테일러 급수로 표현하면 알 수 있다. 내 기억상으로 정확히는 매클로린 전개라고 불러야 하는데 아무튼.
정말 좋은 놈이지만, 이 놈이 모든 확률 분포에 있는 것은 아니다. t분포나 기타 다른 무수한 분포들이 적률 생성 함수를 정의할 수 없다. 발산하는 경우가 많다는 것이다.
그래서 필요한 것이 바로 특성 함수이다. 이놈은 어떤 분포이든 항상 있다. 근데 이 놈은 대충 본 바로, 적률 생성함수에서 허수만 추가한 놈이다. 이 놈은 훨씬 더 많이 공부해야 할 것 같다.
라그랑주 승수법. kkt조건. 라그랑주 자체는 최적화 기법 중 하나이다. 다변수함수가 있을 때, 어떤 제한을 만족시키는 최댓값, 혹은 최솟값을 찾는 문제가 있다고 쳐보자. 그럼 그 제한도 대충 함수로 나타내고, 이 다변수함수와 제한 함수가 접하는 지점을 찾으면 그것이 곧 원하는 값이 된다는 것. 그림으로 보면 생각보다 어려운 개념은 아니다. 요지는 그 접하는 지점에서의 특성을 찾아 원하는 값을 도출하는 것인데, 접한다는 것은 둘의 직교 벡터의 방향이 같다는 것을 의미한다. 이걸 위해 편미분을 하고, 요리조리 해대서 값을 구하는 그 과정이 조금 어려운 것이다.
svm에서 도출되는 식은 아직 나는 봐도 잘 모르겠다. 라그랑주의 그 어렵다는 부분에 대한 심화적인 이해가 필요하다.
그리고 kkt조건. 이것은 부등식에 대해서 라그랑주를 쓸 때 만족해야 하는 조건이다. 이 조건을 만족할 때 비로소 라그랑주를 쓸 수 있게 된다고 한다. dual 문제로 바꾼다나, 뭐 그런 이야기가 있던데 무슨 소리인지는 아직 1도 모르겠다.
svm은 서포트 벡터 머신이다. 이진 분류를 할 때 사용하는데 비단 회귀, 비선형 분류에도 활용할 수 있다.
두 분류값에 대해 결정 경계를 긋는 것이 핵심 원리이다. 최대마진이 되게 하는 초평면을 구한다. 마진은 초평면과 서포트 벡터와의 거리를 말한다. 서포트 벡터는 초평면과 가장 가까이 있는 벡터를 말한다. 이 벡터가 무엇인지는 아직 모른다. 그러나 식을 세우다보면 특정 요건을 만족하는 서포트 벡터를 찾을 수 있게 된다. 그럼 그 서포트벡터와의 거리, 마진의 식을 구하고 그것이 최대가 되게 하는 초평면을 구하면 된다. 이 초평면은 방정식의 형태를 가지고 있으며, 필요한 계수들을 구하면 이 방정식의 미지수에 내가 구하고자 하는 벡터를 넣어 0보다 큰지 작은지를 판별해 분류를 할 수 있게 된다.
그리고 이제 마진을 최대가 하게 하는 초평면을 구할 때, 비로소 라그랑주 승수법이 사용되는 것이다. 뿅
회고 및 다짐
어제 저녁에 속이 불편하고 힘이 없었던 이유를 살짝 알 것 같다. 사실 밥을 먹기 이전에는 괜찮았는데 밥을 먹고 나니까 급 피곤했던 이유. 나도 조금은 유당불내증이 있는 듯하다. 현재 내 저녁은 요거트로 시작한다. 근데 이 요거트를 먹으면 속이 괜히 안 좋고 피곤한 것이다. 이전에는 점심의 후식으로 요거트를 먹었다. 그때는 괜찮았는데, 지금은 빈 속에 요거트부터 들어가니까 부담이 오는 게 아닌가 싶다. 이제 저녁의 후식으로 요거트를 먹어야 할 듯!
요즘은 바나나를 전자레인지에 돌려먹는다. 그게 당도가 더 올라간다고 하기도 하고, 영양가 있다고도 하는데 솔직히 나는 잘 모르겠다. 다만 바나나 냄새를 막기 위해 전부 까서 냉동고에 쳐박아뒀는데 이걸 그냥 언 채로 먹기는 힘든 것 같아서 전자레인지에 돌려먹어보는 것. 맛은 나는 그냥 그렇다. 식감은 그다지 좋지는 않은 것 같은데, 아침에 빨리 먹기에는 좋더라.
라그랑주 승수법, 적률생성함수, 정지 문제. 딱 이 개념들만 안다고 끝나는 게 아니라 그 관련 것들을 더 공부해야 한다. 근데 이것들 난이도가 만만치 않다. 이과 형님들은 확실히 공부해야 할 게 많겠구나. 사실 내가 한 학기에 과하게 따라잡으려고 해서 생기는 문제 같기도 한데.. 아무튼.
요즘에는 헬스하면서 계속 관련 영상들을 찾아보고 있다. 그래야 조금이라도 개념이 친숙해지지.
그러고 보니 이것들의 문제는 무엇보다 교수님이 제대로 가르쳐주지 않는다는 것이다. 내가 직접 알아가야만 하니 더더욱 힘들기만 하다.