데이터는 일반적으로는 거의 맹목적일 정도로 가치 있는 재화처럼 여겨지지만 사실 의미가 부여될 수 없다면 그 자체로서는 객관적인 현상적 지표에 불과하다. 다만 당장은 가치가 없어보여도 데이터의 특성 상 어떤 것이 가치를 가지게 될 지 모르기 때문에 잠재적인 가치를 보는 것인데, 실제로는 데이터의 군집(Cluster), 상관관계(Correlation), 분류(Classification) 등을 통해 의미를 찾는 것이 중요하다. 이는 마치 흙 속에서 보물을 찾는 것과 비슷하며, 비유적으로 채굴(Mining)이라고 부른다. 우리가 흔하게 말하는 데이터 마이닝(Data Mining)이 그것이다.
그 중에서도 가장 전통적인 방법이 데이터 속에서 지식 찾기(KDD; Knowledge Discovery in Database)인데, 직관적인 이름 그대로 데이터 저장소 속에서 지식(Knowledge)을 찾는 것을 의미한다. 앞서 데이터는 자체로서는 현상적 지표에 불과하며 의미와 만나야 가치가 생긴다고 했는데, 의미와 만난 데이터가 여기서 말하는 '지식'이다.
이 데이터가 의미를 만나 가치를 생성하며 변화하는 과정을 도식화한 것이 'DIKW 피라미드'인데, 의미가 부여되지 않은 현상 그 자체인 데이터(D; Data)로부터 의미가 결합되면서 정보(I; Information) > 지식(K; Knowledge) > 지혜(W;Wisdom)으로 발전해감을 보여준다. KDD에서 말하는 지식도 이 K에 해당하는 내용인 것인데, 데이터에 의미를 부여하여 정보로 분석하고, 이 정보를 다시 지식으로 내재화 하는 것이 바로 데이터의 진흙 속에서 진주를 찾는 과정인 것이다.
어떤 물건을 구매할 때 두 스토어의 물건 가격이 다르다면 그 가격은 '데이터'이다. 그리고 둘의 비교를 통해 해당 물건을 구매할 때에는 S스토어가 D스토어보다 저렴하다는 '정보'를 얻게된다. 우리는 해당 물건에 대해서 S스토어에서 물건을 사는 것이 더 유리하다는 '지식'을 쌓게 되며, S스토어의 다른 물건이 저렴할 수 있겠다는 '지혜'를 통해 다음을 추측하게 된다.
실제로는 단순히 위의 예시처럼 한 가지 지표만을 분석하게 되지 않고, 여러 가지 복잡한 변수들이 다뤄지게 된다. 싼 스토어의 모델명이 어떠한지, 품질은 어떠한지, 가격 외의 결격 사유가 없는지, 배송비가 따로 붙지는 않는지 등이 될 것이다. 이러한 복잡한 데이터들은 종합되어 정보를 이루고 지식을 형성해야 가치를 얻을 수 있다. 인간은 데이터를 보자마자 이 모든 처리가 복합적으로 순식간에 발생하기 때문에 D-I-K-W의 네 가지를 분류하는 게 어렵고 의미가 없어보이지만, 기계는 어떤 처리가 더해지지 않으면 데이터 자체로서 가지고만 있을 뿐이기 때문에 이러한 절차와 처리에 대해서 알고 명령할 수 있어야 데이터에 가치를 더할 수 있는 것이다.
KDD의 절차는 크게 5가지의 단계로 이뤄지는데, 데이터셋을 선택하는 1단계 > 전처리하는 2단계 > 변환하는 3단계 > 알고리즘을 적용하는 4단계 > 해석하고 평가하는 5단계가 그것이다.
먼저 프로젝트의 목표를 명확하게 세우고 그 목표에 맞는 데이터를 선정한다. 선택된 데이터들은 전처리를 통해 노이즈를 제거하고 데이터의 성질이 균질하게 정리된다. 데이터 변환 과정에서 차원 축소와 특징량(Feature) 생성이 일어나며, 데이터를 학습용 데이터와 검증용 데이터로 나눈다. 이 때 학습용 데이터는 알고리즘을 거쳐 사용될 데이터이며, 검증 데이터는 추후 학습이 제대로 되었는지 테스트해보기 위한 시험 데이터이다. 학습이 이뤄진 정보는 특정한 분포를 보이게 되는데, 이 분포에 대해 분석을 더함으로써 데이터는 정보(Information)가 되고 나아가 지식(Knowledge)이 된다.
학습용 데이터와 검증용 데이터를 굳이 나누는 이유가 조금 모호한데, 이 부분은 전체를 학습시킨 뒤 일부를 검증용으로 썼을 때 어떤 문제가 발생하는지를 따로 공부해볼 예정이다.
중요한 것은 데이터가 알고리즘을 거쳐 변수와 특징량에 따라 분포된 이후에 보이는 패턴에 대한 분석인데, 이 분포 패턴과 그 분석이라는 부분이 데이터가 지식으로서 의미를 갖게하는 중요한 절차가 된다. 분포에 대한 분석 방법은 크게 아래의 다섯 가지로 나뉜다.
- 분류(Classification): 일정한 집단에 대한 특정 정의를 통해 분류 및 구분을 추론한다
- 군집화(Clustering): 구체적인 특성을 공유하는 군집을 찾는다.
- 연관성(Association): 동시에 발생한 사건간의 관계를 정의한다.
- 연속성(Sequencing): 특정 기간에 걸쳐 발생하는 관계를 규명한다.
- 예측(Forecasting): 대용량 데이터집합 내의 패턴을 기반으로 미래를 예측한다.
분류와 군집이 비슷하지만 차이가 있는데, 분류는 집단을 정의하여 분류하는 방법이지만, 군집은 가깝게 분포된 데이터를 묶어 그룹화하는 개념이다. 즉, 상하처리(Top-down)와 하상처리(Bottom-up)의 차이를 가진다고 볼 수 있다. 예컨대 지도학습과 같이 미리 라벨화된 데이터라면 분류에 의한 방법이 더 유용하겠지만, 라벨화되지 않은 비지도학습의 경우에는 군집으로 분포를 보고 그룹을 만드는 것이 더 맞을 것이다. 연관성은 상관관계와 유사한 것으로 두 데이터 간의 관계를 따지는 방법이고, 연속성은 연관성과 유사하지만 시간/절차적으로 연달아 일어나는 데이터에 집중하는 방법이라는 점에서 차이가 있다. 예측은 일정하게 반복되는 패턴 속에서 다음 데이터의 위치를 예견하는 것으로, 주로 글쓰기나 발화와 같이 일정하게 반복되는 경향성을 갖는 데이터의 해석에서 힘을 발휘할 수 있다.
'Artificial.Intelligence' 카테고리의 다른 글
[AI-10] 데이터에 따라 스스로를 조직하다: Self Organizing Map (0) | 2024.08.13 |
---|---|
[AI-09] 데이터에서 자라난 무작위의 숲, Random Forest (0) | 2024.07.30 |
[AI-07] 어떻게 학습시킬까? : 레이블과 강화 (3) | 2024.06.16 |
[AI-06] 신경망의 활동을 표현하다 : 시그모이드 함수 (0) | 2024.05.28 |
[AI-05] 수치화하여 방향성 찾기: 벡터와 텐서 (0) | 2024.05.12 |