기계학습(Machine Learning)이란? (지도학습, 비지도학습, 자기지도학습)

in KR 인공지능&데이터4 years ago (edited)
  • 이 글은 공부를 하며 정리해둔 내용입니다. 틀린 내용이나 설명이 부족한 부분이 있으면 댓글란에 피드백 부탁드립니다.

30212411048_2a1d7200e2_b.jpeg
이미지 출처 : flickr

이 글에서는 기계학습(Machine Learning, ML)에 대한 간단한 소개를 하겠습니다.

먼저 머신러닝은 빅테이터라는 키워드랑 많이 등장합니다. 빅데이터는 단어 자체가 설명하듯 사이즈가 큰 데이터를 뜻하는데, 데이터 사이즈뿐만 아니라 데이터 타입이 다양해진 것(unstructured data)도 포함하는 개념입니다. 이미지, 텍스트 등 비정형 데이터를 정형 데이터로 바꿔 분석할 수 있는 형태로 바꾼 게 빅데이터죠.

전통적인 통계학(Statistics)은 보통 3가지를 합니다.

  1. Data collection
  2. Data analysis
  3. Inference and a little bit of prediction

반면, a narrow field of Satistics인 머신러닝은 다음 2가지에 집중합니다.

  1. Data analysis
  2. Prediction

추론(inference)보다는 예측에 더 관심이 많습니다.

머신러닝

머신러닝. 우리 말로는 기계학습. 거창하게 들리지만 그렇게 거창하지 않습니다. 데이터에 기반해 기계(machine)이 어떤 태스크를 수행할 수 있도록 학습시키는 것을 뜻하죠.

기계를 학습시키는 방법은 크게 두 가지가 있습니다.

1. 지도 학습 (Supervied Learning)

학습 데이터(정답 레이블)이 있는 경우입니다. 예를 들어, 고양이와 강아지 이미지가 섞여 있는 이미지 데이터셋에서 분류 과제를 수행한다고 할 때 이 이미지는 '고양이', 저 이미지는 '강아지' 식으로 정답 레이블이 있는 학습 데이터가 있는 것이죠.

지도학습은 학습 데이터에 존재하는 독립변수(Independent Variables)와 종속변수(Dependent Variable, 위 경우 '고양이' 혹은 '강아지'라는 정답 레이블)간 관계를 가장 잘 설명하는 모델을 만드는 것입니다.

그렇다면, 이 모델을 왜 만드는 것일까요. 독립변수와 종속변수가 모두 있는 학습 데이터로 학습시킨 모델을 가지고 정답 레이블이 없는 데이터에서 종속 변수를 예측하기 위해서입니다. 독립변수(들)만 존재하는 데이터를 unseen data라고 합니다.

지도학습은 종속변수의 종류에 따라 회귀 문제분류 문제로 나눌 수 있습니다. 종속변수가 연속형이면 회귀 문제, 카테고리형 혹은 명목형이면 분류 문제에 속합니다.

2. 비지도 학습 (Unsupervised Learning)

비지도 학습은 정답이 없는 데이터셋을 군집(cluster)로 분리하는 모델을 학습하는 방법입니다.

비지도 학습 기법의 하위 기법으로 자기지도학습(Self-supervised Learning)이 있습니다.

현실적으로 정답 레이블이 있는 데이터셋을 구하기란 하늘의 별따기입니다. 예를 들어, 얼마 전에 기사의 정치 성향을 탐지(분류)해서, 현재 읽고 있는 기사와 정치 성향은 가장 다르지만 다루고 있는 소재는 비슷한 기사를 추천하는 모델을 개발하는 사이드 프로젝트(AI로 필터버블 문제를 해결할 순 없을까?)를 했었는데요, 이때 기사의 정치 성향 탐지 모델을 만들기 위해 정치 성향 레이블이 있는 학습 데이터를 구하느라 고생을 좀 했습니다. 많은 경우, 정답 레이블이 있는 학습 데이터를 얻기란 불가능한 경우가 많죠.

이럴 때 필요한 게 자기지도학습입니다.

자기지도 학습은 정답 레이블이 없는 raw data에서 데이터 조각조각들의 관계를 통해 레이블을 자동으로 생성하는 방법입니다.

자기지도 학습 방법은 자연어처리(NLP)에서도 많이 사용되는데, 최근 읽은 BART: Denoising Sequence-to-Sequence Pre-training for Natural Language Generation, Translation, and Comprehension 이란 논문은 아예 "Self-supervised methods have achieved remarkable success in a wide range of NLP tasks."라는 문장으로 시작하더라구요.

NLP 분야에서의 self-supervised learning에 대해 더 자세히 알고 싶으면, 이 글을 참고하세요.