1. 통계를 대하는 마인드셋
전통적인 통계 기법은 우리가 사는 세상의 법칙의
패턴을 파악하고 주어진 현상을 어떻게 이해하면 되는지에 대한 해석을 제공해왔다.
비록 통계의 철학은 다른 학문에 비해서 그리 깊진 않으나,
누군가를 설득하고 이해시키는데에는 파워가 있는 분야이다.
사회과학에선 아직도 회귀분석과, ANOVA와 같은 기법이,
의료분야 역시 회귀분석과 생존분석과 같은 기법을 쓰곤한다.
기타 다른 분야에도 널리 쓰이고 있는 통계학의 실용성은 이미 증명되었다고 봐도 무방하다.
그런데 세상에서 일어나는 불규칙한 현상들은
회귀선처럼 하나의 Line으로 Fitting되지 않는다.
모든 사람이 배고프다고 라면만 먹지 않듯이,
회귀식이 말해주는 오차만큼 우리는 그 세상을 이해하고 있지 못할 수도 있다는 것이다.
이러한 통계기법은 지금과 같이 데이터가 풍부하지 않은 상황에서 잘 작동했다.
그리고 데이터가 한정적이다보니 해결할 수 있는 문제도 제한적이었을 것이다.
가령, 중국집에 대한 만족도를 얻기 위한 방법으로,
지금은 온라인 리뷰로 rating을 수집할 수 있었지만,
옛날 같았다면 직접 배달원이 방문조사를 해야했을 것이다.
몇 차례의 혁명을 거듭하면서,
소비자들이 온라인 환경에 적응하기 시작했다.
그 곳에서 수 많은 파이프라인이 구축되고,
굳이 데이터를 힘들게 구할 필요가 없어졌다.
옛날엔 없어서 문제였지만,
지금은 많아서 문제가 생기는 상황이 된 것이다.
이 곳을 기점으로 전통 통계보다
더 파워풀하고 효과적으로 문제를 풀 수 있는 방법을 찾아 내야했고,
그것이 바로 머신러닝이다.
2. 머신러닝을 대하는 마인드셋
통계와 머신러닝의 가장 큰 차이점은 여러가지가 있겠지만,
가장 직관적으로 느끼는 차이점을 몇 개 말해보겠다.
기본적으로 통계는 해석의 영역에서 유의미한 모델을 구성하려고 한다.
머신러닝은 예측의 영역에서 효과적인 모델을 구성하려고 한다.
통계 기법은 샘플링부터 인간의 참견이 필요하다
애시당초의 목적 자체가 좋은 샘플에서 모수를 추정하는 결과를 내야하기 때문이다.
머신러닝은 통계에 비해 좋은 샘플을 세심히 고를 필요는 없다.
압도적인 볼륨을 이용해서 Generalization 하려는 특징이 있기 때문이다.
(좋은 모델을 만들기 위한 전처리는 이 후의 이야기이다)
어디까지나 머신러닝은 대용량의 데이터를 효과적으로 다루기 위한 대안으로 나온 것 뿐이지,
나중에 나왔다고 해서 통계 기법들이 전혀 쓸모 없어지는 것은 아니다.
발 잘 쓰는 친구가 축구하는 거랑, 키 큰 친구가 농구하는 것과 같은 차원이다.
머신러닝에도 한계점은 존재한다.
SVM으로 강아지와 고양이를 분류하는 문제를 풀게하고
어떻게 이 강아지 사진이 강아지로 분류되었는지 설명하라고 하면
그 누구도 설명할 수가 없을 것이다.
이미 복잡한 함수 f(x)로 이루어진 파라미터들을
논리적으로 해석할 수 없는 블랙박스 형태이기 때문이다.
그리고 인간이 기대하는 퍼포먼스의 Threshold를 넘어주지는 못한듯하다.
또 Feature Engineering의 영향이 너~무나 크게 미치게 된다.
나 역시 연봉 예측 Kaggle Competition을 한 적이 있는데,
모델은 뭐 sklearn 패키지를 이용해서 쉽게 만든다고 해도,
주어진 데이터를 해석하고 질 좋은 데이터로 가공하는 일은 분석가의 몫이다.
그래서 전체의 하루에 15시간 동안 feature를 만들고 모델에 넣어보고
제출해보는 고역같은 일을 반복했던 경험도 있다(~.~)
Kaggle 수준에서도 이런데, 실무에서는 중요도가 엄청나게 커지게 될 것이다.
특히 Finance 같은 경우, 내가 만든 feature가 누군가도 쓰고 있다면,
의미가 없어져버리는 현상이 생기기 때문에..
머신러닝을 투자 분야와 접목한다면 아마 domain knowledge를 많이 요하는
fearue engineering을 해야하지 않을까.. 라는 생각이 든다.
뭐 어쨌든 머신러닝의 대부분 연구들은 참으로 실증적이다.
이렇게 했더니 잘 나왔다, 두 모델을 앙상블 했더니 성능이 좋았다 등.
들은 바로는 이론을 기준으로 데이터를 해석하려는 통계 진영과
데이터를 기준으로 현상을 바라보려는 AI 진영은 그리 사이가 좋진 않다고 한다.
3. 딥러닝을 대하는 마인드셋
이러한 머신러닝의 한계를 극복해낸 것이 딥러닝이다.
지금은 그 뜨거웠던 열기가 조금은 식었는지, AI의 3번째 겨울이 오는거 아니냐 이러고 있지만
딥러닝이 풀 수 있는 문제는 세계 여러 기업과 분야에서도 증명되고 있다.
인공 신경망이라고 불릴 만큼 인간을 많이 따라했다.
"아이폰을 산 사람은 에어팟을 살까?"
이 가설이 정확히 맞다면 아이폰과 에어팟은 Linear한 관계일 것이다.
"아이폰을 산 사람은 에어팟을 살 수도 있고 안 살 수도 있다"
오히려 이 가설이 실제 현상을 설명하는데에 효율적이다.
위와 같은 가설은 아이폰과 에어팟에 대한 Linear한 관계를 설명해주진 않는다.
실제 우리도 그렇다. 소비자가 아이폰을 샀다고 꼭 에어팟을 사진 않는다.
그리고 이러한 현상은 non-linear 즉, 비선형 관계라고 한다.
인간은 이러한 일을 잘한다. 이 세상 자체가 비선형적으로 돌아가기 때문이다.
이제는 컴퓨터도 비선형 사고방식을 흉내낼 수 있게되었다.
바로 Activation Function 때문이다.
딥러닝의 근본적인 원리는 퍼셉트론으로 부터 출발하는데,
그저 선형 함수를 비선형 함수로 mapping하는 것 뿐이었다.
다시 말해서 직선으로 표현될 일차식을 0 아니면 1로 나타내는 것이다.
이러한 퍼셉트론이 많아지면서 심히 복잡한 연산이 일어나는 모델이 만들어졌고,
우리가 원하는 0 아니면 1의 결과값을 뽑는 모델이 된 것이다.
인간을 모방함으로 지능 수준을 높이니까,
모방하지 않은 녀석들보다 더 똑똑해진 느낌이 전부다.
그런 생각을 해보자,
인간만큼, 혹은 인간보다 똑똑해졌다고
이 세상의 모든 문제를 풀 수 있을까?
이는 문제에 따라서 다르게 접근해야한다.
비교적 불확실성이 적은 분야에선 DL이 정말 잘 작동한다.
메디컬에서 하는 암 진단이나, 이미지 분야에서 Detection과 Classification Task가 그 예이다.
암이 생기는 위치와 발병 양상은 주변 정보(정상조직)에 비해 두드러지는 특징이 있다.
혼종 동물이 아니라면 강아지와 고양이, 사람의 얼굴을 분류하는 일도 주어진 특징으로 잘 해석할 수 있다.
인간의 욕구와 충동이 개입된 분야는 어떨까?
하루 아침에 당신의 취향이 바뀌어 선호하는 제품이 바뀔 수도
내일 주식 가격이 군중 심리에 의해 곤두박질 칠 수도 있다.
이러한 분야에서는 DL이 꼭 효과적인 방법은 아니라고 느꼈다.
그럼에도 불구하고 가장 파워풀한 기술임은 틀림없다.
오히려 높은 자유도 탓에 너무 많은 기술이 나와서 어지러울 정도다.
딥러닝을 바라보는 가장 현실적인 자세는
수 많은 파라미터 중에서 우리 문제에 잘 fitting된 모델 하나를 [뽑기]하는 것이라고 생각한다.
그만큼 파라미터의 조합이나 구조에 따라 퍼포먼스의 편차가 클 가능성이 있다는 것이다.
결론적으로 우리가 딥러닝을 다룰 때는,
특정 분야의 문제를 잘 푸는 구조가 무엇인지 파악하고,
어떤 기술이 모델 구조의 핵심인지를 파악하고,
이 모델이 나의 데이터와 잘 맞는지를 파악하고,
직접 적용해보면서 성능의 기대값을 충족하는지를 봐야할 것이다.
쏟아지는 수 많은 알고리즘을 다 공부하기는 벅찰 것이다.
그럼에도 알고리즘의 핵심을 간파하고
응용할 수 있을 때 응용할 수 있는 능력을 가지는 것이
앞으로의 DL 시대에서 가져야 향 덕목이 되지 않을까?