4.1 머신 러닝의 네 가지 분류

이전 예제에서 세 가지 종류의 머신 러닝 문제를 다루었습니다. 이진 분류, 다중 분류, 스칼라 회귀입니다. 이 셋은 모두 지도 학습(supervised learning)의 예입니다. 지도 학습의 목표는 훈련 데이터의 입력과 타깃 사이에 있는 관계를 학습하는 것입니다.

지도 학습은 빙산의 일각일 뿐입니다. 전체 머신 러닝은 복잡한 하위 분류를 가진 방대한 분야입니다. 일반적으로 머신 러닝 알고리즘은 다음 절에서 소개하는 4개의 커다란 범주 안에 속합니다.1

4.1.1 지도 학습

지도 학습이 가장 흔한 경우입니다. (종종 사람이 레이블링한) 샘플 데이터가 주어지면 알고 있는 타깃(꼬리표(annotation)라고도 합니다)에 입력 데이터를 매핑하는 방법을 학습합니다. 지금까지 이 책에서 본 4개의 예제는 모두 지도 학습의 고전적인 예입니다. 요즘 스포트라이트를 받는 광학 문자 판독, 음성 인식, 이미지 분류, 언어 번역 같은 딥러닝의 거의 모든 애플리케이션이 일반적으로 이 범주에 속합니다.

지도 학습은 대부분 분류와 회귀로 구성되지만 다음과 같은 특이한 변종도 많습니다(예시 참고).

  • 시퀀스 생성(sequence generation): 사진이 주어지면 이를 설명하는 캡션을 생성합니다. 시퀀스 생성은 이따금 (시퀀스에 있는 단어나 토큰(token)을 반복적으로 예측하는 것처럼) 일련의 분류 문제로 재구성할 수 있습니다.
  • 구문 트리(syntax tree) 예측: 문장이 주어지면 분해된 구문 트리를 예측합니다.
  • 물체 감지(object detection): 사진이 주어지면 사진 안의 특정 물체 주위에 경계 상자(bounding box)를 그립니다. 이는 (많은 경계 상자 후보가 주어졌을 때 각 상자의 내용을 분류하는) 분류 문제로 표현되거나, 경계 상자의 좌표를 벡터 회귀로 예측하는 회귀와 분류가 결합된 문제로 표현할 수 있습니다.
  • 이미지 분할(image segmentation): 사진이 주어졌을 때 픽셀 단위로 특정 물체에 마스킹(masking)을 합니다.

4.1.2 비지도 학습

이 부류의 머신 러닝은 어떤 타깃도 사용하지 않고 입력 데이터에 대한 흥미로운 변환을 찾습니다. 데이터 시각화, 데이터 압축, 데이터의 노이즈 제거 또는 데이터에 있는 상관관계를 더 잘 이해하기 위해 사용합니다. 비지도 학습(unsupervised learning)은 데이터 분석에서 빼놓을 수 없는 요소이며, 종종 지도 학습 문제를 풀기 전에 데이터셋을 잘 이해하기 위해 필수적으로 거치는 단계입니다. 차원 축소(dimensionality reduction)와 군집(clustering)이 비지도 학습에서 잘 알려진 범주입니다.

4.1.3 자기 지도 학습

자기 지도 학습(self-supervised learning)은 지도 학습의 특별한 경우이지만 별도의 범주로 할 만큼 충분히 다릅니다. 자기 지도 학습은 지도 학습이지만 사람이 만든 레이블을 사용하지 않습니다. 즉 학습 과정에 사람이 개입하지 않는 지도 학습이라고 생각할 수 있습니다. (학습이 무언가에 지도되어야 하므로) 레이블이 여전히 필요하지만 보통 경험적인 알고리즘(heuristic algorithm)을 사용해서 입력 데이터로부터 생성합니다.

예를 들어 오토인코더(autoencoder)가 잘 알려진 자기 지도 학습의 예입니다. 여기에서 생성된 타깃은 수정하지 않은 원본 입력입니다. 같은 방식으로 지난 프레임이 주어졌을 때 비디오의 다음 프레임을 예측하는 것이나, 이전 단어가 주어졌을 때 다음 단어를 예측하는 것이 자기 지도 학습의 예입니다(이 경우에는 미래의 입력 데이터로부터 지도되기 때문에 시간에 따른 지도 학습(temporally supervised learning)입니다). 지도 학습, 자기 지도 학습, 비지도 학습의 구분은 가끔 모호할 수 있습니다. 이 범주들은 명확한 경계가 없고 연속적입니다. 자기 지도 학습은 학습 메커니즘과 애플리케이션 측면 중 어디에 중점을 두는지에 따라 지도 학습 또는 비지도 학습으로 재해석될 수 있습니다.2


Note

지도 학습이 광범위한 산업계의 애플리케이션에 적용되어 오늘날 딥러닝의 대부분을 차지하고 있기 때문에 이 책에서는 특히 지도 학습에 집중하겠습니다. 책의 후반부에서 자기 지도 학습에 대해 잠깐 살펴봅니다.


4.1.4 강화 학습

오랫동안 간과되었던 강화 학습(reinforcement learning)은 구글 딥마인드(DeepMind)가 아타리(Atari) 게임 플레이를 학습하는 데 성공적으로 적용하면서 최근에 많은 관심을 받기 시작했습니다(그 이후 최고 수준의 바둑 실력을 학습했습니다). 강화 학습에서 에이전트(agent)는 환경에 대한 정보를 받아 보상을 최대화하는 행동을 선택하도록 학습됩니다. 예를 들어 강화 학습으로 훈련된 신경망은 비디오 게임 화면을 입력으로 받고 게임 점수를 최대화하기 위한 게임 내의 행동을 출력할 수 있습니다.

현재 강화 학습은 대부분 연구 영역에 속해 있고 게임 이외에 실제적인 성공 사례는 아직 없습니다. 하지만 때가 되면 강화 학습이 실제 세상의 많은 애플리케이션을 대체할 것으로 기대하고 있습니다. 이런 애플리케이션에는 자율 주행 자동차, 자원 관리, 교육 등이 있습니다. 아마 그때가 왔거나 이제 곧 올 것입니다.


Note 분류와 회귀에서 사용하는 용어

분류와 회귀에는 특별한 용어가 많습니다. 이전 예제에서 일부 용어를 보았고 앞으로 이어지는 장들에서 더 많이 등장합니다. 이런 용어들은 머신 러닝에 특화된 구체적인 정의를 가지므로 친숙해져야 합니다.

  • 샘플 또는 입력: 모델에 주입될 하나의 데이터 포인트
  • 예측 또는 출력: 모델로부터 나오는 값
  • 타깃: 정답. 외부 데이터 소스에 근거하여 모델이 완벽하게 예측해야 하는 값
  • 예측 오차 또는 손실 값: 모델의 예측과 타깃 사이의 거리를 측정한 값
  • 클래스: 분류 문제에서 선택할 수 있는 가능한 레이블의 집합. 예를 들어 고양이와 강아지 사진을 분류할 때 클래스는 ‘고양이’와 ‘강아지’ 2개입니다.
  • 레이블: 분류 문제에서 클래스 할당의 구체적인 사례. 예를 들어 사진 #1234에 ‘강아지’ 클래스가 들어 있다고 표시한다면 ‘강아지’는 사진 #1234의 레이블이 됩니다.
  • 참 값(ground-truth) 또는 꼬리표(annotation): 데이터셋에 대한 모든 타깃. 일반적으로 사람에 의해 수집됩니다.
  • 이진 분류: 각 입력 샘플이 2개의 배타적인 범주로 구분되는 분류 작업
  • 다중 분류: 각 입력 샘플이 2개 이상의 범주로 구분되는 분류 작업. 예를 들어 손글씨 숫자 분류를 말합니다.
  • 다중 레이블 분류: 각 입력 샘플이 여러 개의 레이블에 할당될 수 있는 분류 작업. 예를 들어 하나의 이미지에 고양이와 강아지가 모두 들어 있을 때는 ‘고양이’ 레이블과 ‘강아지’ 레이블을 모두 할당해야 합니다. 보통 이미지마다 레이블의 개수는 다릅니다.
  • 스칼라 회귀: 타깃이 연속적인 스칼라 값인 작업. 주택 가격 예측이 좋은 예입니다. 각기 다른 타깃 가격이 연속적인 공간을 형성합니다.
  • 벡터 회귀: 타깃이 연속적인 값의 집합인 작업. 예를 들어 연속적인 값으로 이루어진 벡터입니다. (이미지에 있는 경계 상자의 좌표 같은) 여러 개의 값에 대한 회귀를 한다면 벡터 회귀입니다.
  • 미니 배치 또는 배치: 모델에 의해 동시에 처리되는 소량의 샘플 묶음(일반적으로 8개에서 128개 사이). 샘플 개수는 GPU의 메모리 할당이 용이하도록 2의 거듭제곱으로 하는 경우가 많습니다. 훈련할 때 미니 배치마다 한 번씩 모델의 가중치에 적용할 경사 하강법 업데이트 값을 계산합니다.

  1. 여기에 포함되지 않은 한 가지는 준지도 학습(semi-supervised learning)입니다. 전체 데이터 중에서 일부에만 레이블되어 있는 경우입니다. 대부분의 준지도 학습은 지도 학습과 비지도 학습의 조합으로 이루어집니다. 

  2. 예를 들어 오토인코더는 타깃이 있고 손실 함수를 최소화하도록 학습되기 때문에 지도 학습으로 보이지만, 입력 데이터의 차원 축소 용도로 사용될 때는 비지도 학습으로 볼 수 있습니다. 

댓글남기기