본문 바로가기
Machine Learning

딥러닝의 unsupervised learning 부분에 대한 제 이해..

by 임은천 2014. 12. 13.
쉬운 예를 하나 들어보면 좋겠네요. 가령, Hyunwoong Jang 님과 Hyunmin Kim 님께서 이동윤 님을 현실 세계에서 보고 그림을 그린다고 하죠. 그리고 현민님은 왼쪽에서 현웅님께서는 정면을 보고 그린다고 하구요.. 그럼 분명 같은 사람의 얼굴을 그리지만.. 다른 그림이 나오겠죠.. 그럼.. 같은 방향에서 그리면 같은 그림이 나올까요? 물론 그림 그리는 것은 그 사람의 그림 실력에 따라 달라진다고 하지만.. 어떤 사람은 세밀하게 그릴 수도 있고, 어떤 사람은 커리커쳐 형태로 그릴 수도 있죠.. 그것을 모델링이라고 부릅시다. 왜냐하면 모델링은 현실의 approximation이니까요..
자 똑같은 일을 딥러닝 알고리즘에게 시켜봅시다. 정면에서 그리기..
그럼, 아마 현민님이나 현웅님께서 그리는 것처럼 뭔가 저 사람을 표현하는 정보를 추출하려고 시도할 것입니다. 하지만, 동윤님의 얼굴은 유니크한 특성을 가지고 있고.. 그것을 함수로 표현하려면? 여러 함수를 조합할 수 있겠죠.
먼저 1차원에서 시작해 보죠.. 동윤님의 얼굴을 그릴려면 무슨 모델이 필요할까요? 동윤님의 얼굴이 어떻게 생겼던지.. 이 단계의 모델링에서는 무조건 선만 나옵니다. 1차원이 제약조건이므로.. 아쉽게도 아직 원은...

이제 2차원에서 생각해 보면.. 1차원 함수들의 특성을 표현하는 combined 함수를 만들 수 있습니다. 그래서 선을 한 0.01 mm 단위로 한 5882개 정도 합쳤더니 타원과 비스무리하게 되었습니다. 어 동윤님 얼굴 외곽선이 되었네요. 한 20개정도 붙이니 눈이 되고 그와 똑같은 것을 붙였습니다.

그리고 3차원에서 이용되는 각종 transformation 들을 구현하는 모델링 뉴런 집합을 만들었습니다.(가령 돌리기, 이동시키기, 잡아 늘이기, 줄이기, 키우기, 등등..) 그리고, 개별 뉴런 집합을 조합해서 동윤님 얼굴을 보고 있는 패턴에 맞게 그리도록, hierarchical하게 조합을 했습니다..(마치 functional programming하는 느낌..)

이제 이 단계에서 대략적인 원이나 타원, 혹은 코에 보이는 선이나 머리카락 등등 위치는 잡았다고 보죠.. 그런데.. 원래 눈으로 보이는 것보다1차원에서는 선의 길이가 제각각 조금씩 안맞으니깐.. 조금조금씩 줄였다 늘였다 각각 자기가 맞은 모델링 부분에 맞게 하면서 가중치를 조정해 주구요.. 2차원에서는 움직여 볼 수 있는 것 있으면 조금씩 더 맞게 조정해 보고.. 3차원에서는 움푹 페이거나 원근감을 준다거나.. 뭐 그런식으로 조금씩 명암 조절도 해보고.. 다양하게 해봅니다. 가중치 조절하면 영향을 받는 곳이 좀 더 많겠네요... 왜냐하면 히어라키니깐..

즉 마치 우리가 데셍할 때, 대략적인 윤곽 그리고 나서 점점 명확하게 그리는 것처럼.. 해당 위치에 적용해야 하는 하위 뉴럴 모델들의 위치가 점점 잡혀가게 되고.. 최종적으로 원래 동윤님 얼굴과 내가 그린 그림이 거의 유사하게보이는 경우(물론 현민님의 경우 현민님이 봤을 때는 현민님의 모델에서는 이정도면 동윤님 얼굴임을 인식 가능, 장현웅님 관점에서는 이 정도면 동윤님 얼굴임이 인식 가능)가 된다면 수렴한 것이지요.. 물론, 완전히 같지 않고.. 약간의 에러가 있을 것입니다. 물론 뭐 현민님이나 현웅님께서 엄청난 극사실 주의의 모델링 능력을(가령 수억만 화소의 시신경 레벨의 모델링 능력)을 가지고 있고.. 가지고 있는 도구(가령 펜슬이 아니라 파티클 레벨로 그릴 수 있는..) 다면 그냥 동윤님 얼굴이 진짜인지.. 모델이 진짜인지 모를 정도도 될 수있겠죠.. 우리의 꿈에서는요.. 다만.. 이건 현실세계나 학문 세계에는 없다는 거..

자 이제 개별 사람마다 동윤님의 얼굴을 어떻게 그리는 지 알게 되었고.. 어떤 요소가 어떤 단계로 구성되는지 알게 되었기 때문에, 동윤님의 얼굴을 보면 반가워요 동윤님 하고 반응할 수 있게되는 것이겠죠.

끝으로 정리하려면, 원래 그리고자 했던 실제에서 중요한 패턴 중에 해당 차원에서 가능한 모델링을 수행하고, 다음 차원에서 가능한 모델링을 수행하고.. 분명 단방에 모델링이 입력 패턴을 그대로 나타내지 못할 것이므로 가중치를 변화 시켜가면서 신호에 대한 반응성을 바꿔가다 보면, 원래 입력에 대비해서 얼마 정도의 entropy 감소가 있는지 알게 되겠죠..
쓰고 나니 제 얼굴 그리는 걸로 할 걸 그랬네요.. 그래도 비전 그룹 대장님이시니깐.. 이해가 쉬운 예제는.. 잘 알고 있는 분이면 좋으므로.. 부득이하게 동윤님 얼굴로 선택했으니.. 화내지 않으셨으면 좋겠습니당. ㅠㅠ 이 글은 원래 비전인식 커뮤니티에 올렸다가 너무 길어서.. 제가 나중에 찾아 보기에 어렵기 때문에 옮겼습니다.


댓글