본문 바로가기

데이터과학

데이터 마이닝, 머신러닝(기계학습)

머신러닝(기계 학습, Machine Learning)과 데이터 마이닝(Data Mining)은 종종 같은 방법을 사용하며 상당히 중첩된다. 머신러닝(기계 학습)은 훈련 데이터를 통해 학습된 알려진 속성을 기반으로 예측에 초점을 두고 있다. 데이터마이닝은 데이터의 미처 몰랐던 속성을 발견하는 것에 집중한다. 이는 데이터베이스의 지식발견 부분의 분석 절차에 해당한다.

 

데이터 마이닝

데이터 마이닝(data mining)은 대규모로 저장된 데이터 안에서 체계적이고 자동적으로 통계적 규칙이나 패턴을 찾아내는 것이다. 다른 말로는 KDD(데이터베이스 속의 지식 발견, knowledge-discovery in databases)라고도 일컫는다.

데이터 마이닝은 통계학에서 패턴 인식에 이르는 다양한 계량 기법을 사용한다. 데이터 마이닝 기법은 통계학 쪽에서 발전한 탐색적 자료분석, 가설 검정, 다변량 분석, 시계열 분석, 일반 선형모형 등의 방법론과 데이터베이스 쪽에서 발전한 OLAP (온라인 분석 처리:On-Line Analytic Processing), 인공지능 진영에서 발전한 SOM, 신경망, 전문가 시스템 등의 기술적인 방법론이 쓰인다.

데이터 마이닝의 응용 분야로 신용평점 시스템(Credit Scoring System)의 신용평가 모형 개발, 사기탐지시스템(Fraud Detection System), 장바구니 분석(Market Basket Analysis), 최적 포트폴리오 구축과 같이 다양한 산업 분야에서 광범위하게 사용되고 있다.

단점으로는, 자료에 의존하여 현상을 해석하고 개선하려고 하기 때문에 자료가 현실을 충분히 반영하지 못한 상태에서 정보를 추출한 모형을 개발할 경우 잘못된 모형을 구축하는 오류를 범할 수가 있다.

데이터마이닝은 데이터 분석을 통해 아래와 같은 분야에 적용하여 결과를 도출할 수 있다.

- 분류(Classification): 일정한 집단에 대한 특정 정의를 통해 분류 및 구분을 추론한다 (예: 경쟁자에게로 이탈한 고객)

- 군집화(Clustering): 구체적인 특성을 공유하는 군집을 찾는다. 군집화는 미리 정의된 특성에 대한 정보를 가지지 않는다는 점에서 분류와 다르다.(예 : 유사 행동 집단의 구분)

- 연관성(Association): 동시에 발생한 사건 간의 관계를 정의한다. (예: 장바구니 안의 동시에 들어가는 상품들의 관계 규명)

- 연속성(Sequencing): 특정 기간에 걸쳐 발생하는 관계를 규명한다. 기간의 특성을 제외하면 연관성 분석과 유사하다 (예: 슈퍼마켓과 금융상품 사용에 대한 반복 방문)

- 예측(Forecasting): 대용량 데이터집합 내의 패턴을 기반으로 미래를 예측한다 (예: 수요예측)

 

머신러닝

머신러닝의 유형으로는 지도학습과 비지도학습, 강화학습으로 나눌 수 있다. 머신러닝의 가장 큰단점은 데이터에 매우 의존적이라는 것, 즉 GIGO(Garbage In, Garbage Out) 좋은 품질의 데이터가 좋은 품질의 결과를 도출한다.

 

지도 학습(Supervised Learning)

사람이 교사로서 각각의 입력(x)에 대해 레이블(y)을 달아놓은 데이터를 컴퓨터에 주면 컴퓨터가 그것을 학습하는 것이다. 사람이 직접 개입하므로 정확도가 높은 데이터를 사용할 수 있다는 장점이 있다. 대신에 사람이 직접 레이블을 달아야 하므로 인건비 문제가 있고, 따라서 구할 수 있는 데이터양도 적다는 문제가 있다.

분류(Classification): 레이블 y가 이산적(Discrete)인 경우 즉, y가 가질 수 있는 값이 [0,1,2 ..]와 같이 유한한 경우 분류, 혹은 인식 문제라고 부른다. 일상에서 가장 접하기 쉬우며, 연구가 많이 되어있고, 기업들이 가장 관심을 가지는 문제 중 하나다. 이런 문제들을 해결하기 위한 대표적인 기법들로는 로지스틱 회귀법, KNN, 서포트 벡터 머신 (SVM), 의사 결정 트리 등이 있다.아래와 같은 예시가 있다.

◾ 주차게이트에서 번호판 인식: 요새 주차장들은 티켓을 뽑지 않고, 차량 번호판을 찍어서 글자를 인식하는데 정확도를 높인다. 번호판은 정형화 되어있으므로 전통적인 컴퓨터 비전으로도 처리는 가능하나, 오염 등에 대해 정확도를 높이자면 기계학습을 하면 더 좋다. 이미지 픽셀 값들에 따라 숫자 글자를 분류한다.

◾ 페이스북이나 구글 포토의 얼굴 인식: 역시 컴퓨터 비전을 이용하되 기계학습을 결합. 페이스북에 사진을 올리면 친구 얼굴 위에 이름이 자동으로 달리고는 하는데, 이것 역시 기계학습을 이용한 것. x가 이미지 픽셀, y가 사람 이름인 경우.

◾ 음성 인식: 음성 wav 파일에 대해서 해당 wav 부분이 어떤 음절인지를 인식하는 것. 애플 시리, 구글 보이스 등에서 사용된다(질문에 대해서 답해주는 부분 말고, 인식 부분만). x가 음성 파형, y가 음절.

회귀(Regression): 레이블 y가 실수인 경우 회귀문제라고 부른다. 보통 엑셀에서 그래프 그릴 때 많이 접하는 바로 그것이다. 데이터들을 쭉 뿌려놓고 이것을 가장 잘 설명하는 직선 하나 혹은 이차함수 곡선 하나를 그리고 싶을 때 회귀기능을 사용한다. 잘 생각해보면 데이터는 입력(x)와 실수 레이블(y)의 짝으로 이루어져있고, 새로운 임의의 입력(x)에 대해 y를 맞추는 것이 바로 직선 혹은 곡선이므로 기계학습 문제가 맞다. 통계학의 회귀분석 기법 중 선형회귀 기법이 이에 해당하는 대표적인 예이다.

추천시스템

시각/음성 감지(인지)

텍스트분석, NLP

널리 사용되는 지도학습알고리즘은 다음과 같다.

· 신경망

· 선형회귀

· 로지스틱회귀

· 서포트 벡터 머신

· 의사 결정 트리

​○

비지도 학습(Unsupervised Learning)

사람 없이 컴퓨터가 스스로 레이블 되어 있지 않은 데이터에 대해 학습하는 것. 즉 y없이 x만 이용해서 학습하는 것이다. 정답이 없는 문제를 푸는 것이므로 학습이 맞게 됐는지 확인할 길은 없지만, 인터넷에 있는 거의 모든 데이터가 레이블이 없는 형태로 있으므로 앞으로 기계학습이 나아갈 방향으로 설정되어 있기도 하다. 통계학의 군집화와 분포 추정 등의 분야와 밀접한 관련이 있다.

군집화(Clustering): 데이터가 쭉 뿌려져 있을 때 레이블이 없다고 해도 데이터간 거리에 따라 대충 두 세개의 군집으로 나눌 수 있다. 이렇게 x만 가지고 군집을 학습하는 것이 군집화이다.

분포 추정(Underlying Probability Density Estimation): 군집화에서 더 나아가서, 데이터들이 쭉 뿌려져 있을 때 얘네들이 어떤 확률 분포에서 나온 샘플들인지 추정하는 문제이다.

차원축소

최근들어 GPT-2 같이 데이터 일부를 가지고 나머지를 추측하는 방식으로 데이터를 이해하고자 하는 연구가 많이 진행되어 있다. 예로 든 GPT-2는 텍스트를 읽고 바로 다음에 올 단어를 예측하는데, 인터넷에서 수집한 텍스트 30GB로 훈련했더니 특별한 지도학습 없이도 대부분의 일을 수행하고, 약간의 지도학습을 곁들이면 모든 분야에서 모든 기존 방식을 앞질렀다. 특히 일반 상식을 묻는 시험에서는 아무런 지도 학습 없이도 다른 기존 방식을 큰 폭으로 제치고 1위를 달성했다.

강화학습(Reinforcement Learning)

위의 두 문제의 분류는 지도의 여부에 따른 것이었는데, 강화학습은 조금 다르다. 강화학습은 현재의 상태(State)에서 어떤 행동(Action)을 취하는 것이 최적인지를 학습하는 것이다. 행동을 취할 때마다 외부 환경에서 보상(Reward)이 주어지는데, 이러한 보상을 최대화 하는 방향으로 학습이 진행된다. 그리고 이러한 보상은 행동을 취한 즉시 주어지지 않을 수도 있다(지연된 보상). 이 때문에 문제의 난이도가 앞의 두개에 비해 대폭 상승하며, 시스템을 제대로 보상하는 것과 관련된 신뢰 할당 문제 라는 난제가 여전히 연구원들을 괴롭히고 있다 . 대표적으로 게임 인공지능을 만드는 것을 생각해볼 수 있다. 체스에서 현재 나와 적의 말의 배치가 State가 되고 여기서 어떤 말을 어떻게 움직일지가 Action이 된다. 상대 말을 잡게 되면 보상이 주어지는데, 상대 말이 멀리 떨어져 이동할 때 까지의 시간이 필요할 수 있으므로, 상대 말을 잡는 보상은 당장 주어지지 않는 경우도 생길 수 있다. 심지어는 그 말을 잡은 것이 전술적으로는 이익이지만 판세로는 불이익이라 다 끝났을 때 게임을 질 수도 있다. (지연된 보상). 따라서 강화학습에서는 당장의 보상값이 조금은 적더라도, 나중에 얻을 값을 포함한 보상값의 총 합이 최대화되도록 Action을 선택해야 하며, 게다가 행동하는 플레이어는 어떤 행동을 해야 저 보상값의 합이 최대화되는지 모르기 때문에, 미래를 고려하면서 가장 좋은 선택이 뭔지 Action을 여러 방식으로 수행하며 고민해야 한다. 좋은 선택이 뭔지 Action을 찾는 것을 탐색, 지금까지 나온 지식을 기반으로 가장 좋은 Action을 찾아 그것을 수행하는 것을 활용한다고 하여, 강화학습을 푸는 알고리즘은 이 둘 사이의 균형을 어떻게 잡아야 할지에 초점을 맞춘다. 위 방법들과는 다르게 실시간으로 학습을 진행하는 게 일반적이다.

'데이터과학' 카테고리의 다른 글

k-최근접 이웃 알고리즘  (0) 2021.06.09
혼동 행렬, 분류성능평가지표  (0) 2021.04.22
RFM 분석  (0) 2021.04.21
몬테카를로 방법  (0) 2021.04.19
탐욕 알고리즘 (Greedy algorithm)  (0) 2021.04.19