ML 수업과 논문에 Data Representation이라는 단어가 꽤 많이 등장한다.
Data Representation, 직역하면 데이터 표현이라는 뜻으로 해석이 된다. '데이터 표현'이라는 해석만 가지고는 어느정도 유추가 가능한데, 본격적인 논문 파훼 이전에 정확히 머릿속에 정의해놓아야 할 필요성을 느껴 이번 기회에 정리해보고자 한다.
Data Representation
Data Representation은 모델링 이전에 데이터를 어떻게 표현해야하는지에 대한 고찰이라고 할 수 있다.
컴퓨터는 사진과 영상, 그리고 자연어에 대한 의미를 파악하지 못하며 숫자만을 계산할 수 있다. 때문에 이미지 처리의 경우 사진의 특징을 잘 살리기 위해 어떻게 픽셀 데이터를 표현해야할지, 자연어처리의 경우에는 각 단어들을 어떻게 feature vector로 만들어 단어의 특징을 잘 표현할 수 있을까에 대한 고찰이 필요하며 이러한 Data Representation을 모델링 이전에 잘 수행할 경우 한 개의 층을 가지는 Neural Network를 가지고도 어려운 문제를 해결할 수 있게 된다.
그렇다면, "왜 Data Representation을 고려해야하는 걸까..."에 대해 한번 생각해보자.
과거 딥러닝의 접근 방법은 모든 경우의 수를 프로그램화 해서 만든 전문가 기반 시스템(Rule-based Expert Driven Approach)였다. 그러나 우리를 둘러싼 세계는 너무 복잡하고 많은 경우의 수와 예상치 못한 상황들이 존재한다. 이는 해당 전문가(Domain Expert)가 와도 해결할 수 없는 문제이다.
반면 현재의 딥러닝 접근 방법은 Input data를 넣어주면 인공지능 모델이 데이터의 특징을 잘 파악해서 Rule이 산출되는 방식의 데이터 기반 시스템(Data Driven Approach)를 이용한다. 때문에, Data Driven Approach system에서는 일관성이나 관련성이 없거나 노이즈가 많은 데이터를 넣으면 그대로 성능이 좋지 않은 모델이 완성될 가능성이 높다. (Garbage in Garbage out)
때문에 현대의 딥러닝에서는 Data의 Pattern을 잘 학습할 수 있도록 Data를 잘 정제하고 정형화 시켜주어야 한다.
(실제로 모델을 돌렸을 때, 파라미터들의 Overfitting 문제보다 Data Representation의 이슈로 인한 문제가 더 많다고 한다.)
Data Representation in Deep Learining
DNN을 예시로 들어보자.
linear classifier를 이용한 classification task가 주어졌다고 가정하자. 이때 우리는 DNN의 input 값들을 neural network로 가공하여 'learned h space'로 Representation 할 수 있다. 즉,이것은 DNN의 input 값들을 linear classifier가 올바르게 classification 할 수 있도록 'learned h space'로 Data를 Representaiton 해 준 것이라고 생각할 수 있다.
CNN의 classification의 경우도 동일하게 생각할 수 있다.
Supervised learning의 이미지 분류에서는 보통 softmax(linear classifier)를 이용하여 Data를 최종 분류한다. 그러나, 일반적으로 DNN 구조는 이미지 분류 성능이 좋지 않다고 알려져 있다. 여기서 "DNN 구조는 이미지 분류 성능이 좋지 않다."라고 언급한 부분을 "DNN 구조는 이미지 분류 task를수행하기 위해 input의 정보들을 부적절하게 Representation 해준다."라고 해석해 볼 수 있다.
때문에 DNN과 다르게 visual feature들을 잘 Representation 해줄 수 있는 CNN이 도입이 된다.
CNN은 convolution filter를 이용한 Feature extractor을 갖는데, 이러한 feature extracter을 이용하여 softamax linear classifier가 이미지를 잘 classification 해줄 수 있도록 최초의 input data를 잘 가공하여 Representation 해주는 것이라고 생각할 수 있다.
아무리 성능이 좋은 SOTA 모델이라도 모델에 맞게 Data Representation이 잘 되어 있지 않으면 성능이 좋지 않은 결과가 나올 수 밖에 없다. 현대의 Deep Learning엔 좋은 Data가 좋은 퍼포먼스를 내는 추세로 발전하고 있기 때문이다. 이러한 흐름에 맞게 모델링 이전에 자신의 Dataset을 잘 파악하고 정리했는가에 대한 고찰이 반드시 필요하다.
Reference
https://www.deeplearningbook.org/contents/representation.html
https://89douner.tistory.com/339
https://yunwoong.tistory.com/182
https://ebbnflow.tistory.com/276#google_vignette
'Analytics' 카테고리의 다른 글
[ML/DL] Activation function(활성화 함수)의 쓸모 (0) | 2024.05.05 |
---|---|
[ML/DL] Faiss(Faicbook AI Similarity Search) 사용법 (0) | 2024.05.03 |
[RecSys] 연관 규칙(Association Rule) (0) | 2024.04.30 |
[Data] 정규화(Normalization) / 표준화(Standardization) (0) | 2024.04.30 |
[ML/DL] Trade-Off(bias - variance) (1) | 2024.04.18 |