Mirrored Feed : http://hugman.re.kr/blog/ai_as_data_transformation/
인공지능의 이론, 구현등의 복잡한 내용을 떠나 큰 그림을 다시 한번 생각해보도록 하겠습니다.
인공지능 혹은 머신러닝이라는 이름으로 우리가 하는 행위들을 큰 틀에서 살펴보면 결국 "주어진 상황에 맞는 적절한 대답"을 구하는 것입니다.
예를 들어, 얼굴인식같은 인공지능 문제라면 주어진 상황은 '이미지' 일 것이고, 적절한 대답은 얼굴인식 후보중 하나가 되겠지요
자연어 처리도 마찬가지입니다. 번역같은 복잡한 문제도, 결국 '주어진 문장'을 적절히 가공해서 '번역된 문장'으로 바꾸는 일일 뿐입니다.
다시 말해 우리가 하는 일은 가장 높은 수준으로 추상화해보면 "데이터의 변형" 이라고 할 수 있습니다. 제가 바라보는 인공지능 또는 머신러닝은 "Data Transformation" 입니다. 이를 잘 할 수 있고, 풀고자 하는 문제에 적합한 도구를 찾는 것이 중요한 문제입니다.
그리고 현재 시점에서는 Deep Neural Network 이 가장 직관적이면서도 범용적인 도구입니다.
직관적이라는 것은 데이터의 변형과정이 모델의 설계 과정과 거의 동일하게 설계될 수 있습니다. 아래 그림으로 예를 들어보겠습니다.
위 그림 처럼 이미지 인식 문제는
- 입력 : 100 x 100 pixel data
- 출력 : 100 image class
의 데이터 변형을 다루는 문제입니다. DNN 에서는 이를 아주 직관적으로 다룹니다. 입력에서의 pixel 하나 하나를 실수값 하나로 모델링 합니다. 즉 입력의 차원수 혹은 데이터 사이즈가 10000개가 되게 됩니다. 출력은 100개가 되게되죠. 이것을 다루는 네트웍을 추상화하면 아래 그림처럼됩니다.
정말 직관적이죠? 앞으로 다루게 될 DNN 의 주요 network 들(RNN, CNN, Attention, ....)도 먼가 대단하거나 엄청난 것들이 아니라, 데이터 변형을 하는데 있어서 자주 사용되거나 효과적인 변형 Pattern을 naming 한 것들입니다.
범용적이라는 것은 DNN 의 방법론이 결국 Tensor (숫자의 나열) 에 기반하기 때문에, 어떤 영역의 문제든지 '숫자'로만 바뀌어서 입력/출력이 모델링되게 되면, 그 풀이방법은 동일하다는 것입니다. 즉 이미지든, 자연어든, 음성문제든, 혹은 공장데이터 처리 문제든, 바둑문제든 어떤 문제에도 사용할 수 있는 범용성을 DNN 이 가지고 있다는 것입니다.
앞으로 제가 올릴 글들은 데이터변형으로서의 인공지능을 어덯게 풀어나갈 것인가의 관점에서 다루겠습니다.
다시한번 강조하자면, 딥러닝은 결국 아래의 2가지를 하는 것입니다.
- 표현학습
- 데이터 변형