지도 학습

지도 학습의 작업은 잘 정의되어 있으며 스팸 식별 또는 강수량 예측과 같은 다양한 시나리오에 적용할 수 있습니다.

기본 지도 학습 개념

지도 머신러닝은 다음과 같은 핵심 개념을 기반으로 합니다.

  • 데이터
  • 모델
  • 학습
  • 평가
  • 추론

데이터

데이터는 ML의 원동력입니다. 데이터는 테이블에 저장된 단어와 숫자의 형태 또는 이미지 및 오디오 파일에 캡처된 픽셀 및 파형의 값으로 제공됩니다. 관련 데이터는 데이터 세트에 저장됩니다. 예를 들어 다음과 같은 데이터 세트가 있을 수 있습니다.

  • 고양이 이미지
  • 주택 가격
  • 날씨 정보

데이터 세트는 특성라벨이 포함된 개별 예시로 구성됩니다. 예제는 스프레드시트의 단일 행과 유사하다고 생각할 수 있습니다. 특성은 지도 모델이 라벨을 예측하는 데 사용하는 값입니다. 라벨은 '답변' 또는 모델이 예측할 값입니다. 강우량을 예측하는 날씨 모델에서 특성은 위도, 경도, 온도, 습도, 구름 범위, 풍향, 기압이 될 수 있습니다. 라벨은 강우량이 됩니다.

특성과 라벨이 모두 포함된 예를 라벨이 있는 예라고 합니다.

라벨이 있는 두 가지 예

자리표시자 이미지입니다.

반대로 라벨이 없는 예에는 특성이 포함되지만 라벨은 없습니다. 모델을 만든 후에는 모델이 특성에서 라벨을 예측합니다.

라벨이 없는 2가지 예시

자리표시자 이미지입니다.

데이터 세트 특성

데이터 세트의 특징은 크기와 다양성입니다. 크기는 예의 수를 나타냅니다. 다양성은 이러한 예시가 포함하는 범위를 나타냅니다. 좋은 데이터 세트는 크고 매우 다양합니다.

일부 데이터 세트는 방대하고 다양합니다. 그러나 일부 데이터 세트는 크지만 다양성이 낮으며, 일부는 작지만 매우 다양합니다. 즉, 데이터 세트가 많다고 해서 충분한 다양성이 보장되지는 않으며, 데이터 세트가 매우 다양하다고 해서 충분한 예가 보장되지는 않습니다.

예를 들어 데이터 세트에 100년 치의 데이터가 포함될 수 있지만 7월 데이터만 포함될 수 있습니다. 이 데이터 세트를 사용하여 1월의 강우량을 예측하면 예측이 잘못될 수 있습니다. 반대로 데이터 세트는 몇 년만 포함할 수 있지만 매월 포함할 수 있습니다. 이 데이터 세트는 변동성을 고려하기에 충분한 기간이 포함되어 있지 않기 때문에 잘못된 예측을 생성할 수 있습니다.

이해도 확인

ML에 사용하기에 적합한 데이터 세트의 속성은 무엇인가요?
큰 크기 / 높은 다양성
머신러닝 시스템이 데이터의 기본 패턴을 이해하려면 다양한 사용 사례를 다루는 많은 예시가 필요합니다. 이 유형의 데이터 세트로 학습된 모델은 새 데이터에 대해 잘 예측할 가능성이 높습니다.
큰 크기 / 낮은 다양성
머신러닝 모델의 성능은 모델을 학습시키는 데 사용된 예시에 비례합니다. 모델은 학습하지 않은 새로운 데이터에 대해 더 낮은 예측을 생성합니다.
작은 크기 / 높은 다양성
대부분의 모델은 작은 데이터 세트에서 신뢰할 수 있는 패턴을 찾을 수 없습니다. 예측은 대규모 데이터 세트에서 제공하는 신뢰도가 부족합니다.
작은 크기 / 낮은 다양성
데이터 세트가 작고 변동이 많지 않으면 머신러닝의 이점을 누리지 못할 수 있습니다.

데이터 세트는 특성의 수로 특성이 지정될 수도 있습니다. 예를 들어 일부 날씨 데이터 세트에는 위성 이미지부터 구름에 이르는 범위 값에 이르기까지 수백 개의 특성이 포함될 수 있습니다. 다른 데이터 세트에는 습도, 기압, 온도와 같은 3~4개의 특성만 포함될 수 있습니다. 데이터 세트가 많을수록 모델이 추가 패턴을 발견하고 더 나은 예측을 수행할 수 있습니다. 그러나 일부 특성은 라벨과 인과적 관계가 없을 수 있으므로, 데이터 세트가 더 많다고 해서 항상 더 나은 예측을 제공하는 모델을 생성하는 것은 아닙니다.

모델

지도 학습에서 모델은 특정 입력 특성 패턴에서 특정 출력 라벨 값으로의 수학적 관계를 정의하는 복잡한 숫자 모음입니다. 모델은 학습을 통해 이러한 패턴을 발견합니다.

학습

지도 모델은 예측을 위해 학습해야 합니다. 모델을 학습시키기 위해 라벨이 지정된 예가 포함된 데이터 세트를 모델에 제공합니다. 모델의 목표는 특성에서 라벨을 예측하는 최상의 솔루션을 찾는 것입니다. 이 모델은 예측 값을 라벨의 실제 값과 비교하여 최적의 해를 구합니다. 예측 값과 실제 값의 차이(손실로 정의됨)에 따라 모델이 점진적으로 솔루션을 업데이트합니다. 즉, 모델이 보이지 않는 데이터에 대해 최적의 예측을 할 수 있도록 특성과 라벨 간의 수학적 관계를 학습합니다.

예를 들어 모델이 1.15 inches의 비가 내릴 것으로 예측했지만 실제 값이 .75 inches인 경우, 모델은 예측이 .75 inches에 더 가도록 해를 수정합니다. 모델이 데이터 세트의 각 예를(경우에 따라 여러 번) 살펴본 후 각 예시에 대해 평균적으로 최고의 예측을 하는 솔루션에 도달합니다.

다음은 모델 학습을 보여줍니다.

  1. 모델은 라벨이 지정된 단일 예를 가져와 예측을 제공합니다.

    예측을 수행하는 모델의 이미지입니다.

    그림 1. 라벨이 지정된 예시에서 예측을 수행하는 ML 모델입니다.

     

  2. 모델은 예측 값을 실제 값과 비교하고 솔루션을 업데이트합니다.

    예측을 실제 값과 비교하는 모델의 이미지입니다.

    그림 2. 예측 값을 업데이트하는 ML 모델

     

  3. 모델은 데이터 세트의 라벨이 지정된 각 예에 대해 이 프로세스를 반복합니다.

    실제 값과 예측 프로세스를 반복하는 모델의 이미지입니다.

    그림 3. 학습 데이터 세트의 라벨이 지정된 각 예에 대한 예측을 업데이트하는 ML 모델

     

이러한 방식으로 모델은 특성과 라벨 간의 올바른 관계를 점차적으로 학습합니다. 이 점진적인 이해가 크고 다양한 데이터 세트를 통해 더 나은 모델을 만드는 이유이기도 합니다. 모델이 더 넓은 범위의 값에서 더 많은 데이터를 확인하고 특성과 라벨 간의 관계에 대한 이해를 개선했습니다.

학습 중에 ML 실무자는 모델이 예측하는 데 사용하는 구성과 특성을 미묘하게 조정할 수 있습니다. 예를 들어 특정 특성은 다른 특성보다 예측 성능이 뛰어납니다. 따라서 ML 실무자는 학습 중에 모델이 사용할 특성을 선택할 수 있습니다. 예를 들어 날씨 데이터 세트에 특성으로 time_of_day가 포함되어 있다고 가정해 보겠습니다. 이 경우 ML 실무자는 학습 중에 time_of_day를 추가하거나 삭제하여 모델이 사용 여부에 관계없이 더 나은 예측을 수행하는지 확인할 수 있습니다.

평가

Google에서는 학습된 모델을 평가하여 얼마나 잘 학습했는지 확인합니다. 모델을 평가할 때는 라벨이 지정된 데이터 세트를 사용하지만 모델에는 데이터 세트의 특성만 제공됩니다. 그런 다음 모델의 예측을 라벨의 실제 값과 비교합니다.

학습된 모델을 실제 값과 비교하여 예측하는 모습을 보여주는 이미지입니다.

그림 4. 예측을 실제 값과 비교하여 ML 모델 평가

 

모델의 예측에 따라 실제 애플리케이션에 모델을 배포하기 전에 더 많은 학습과 평가를 수행할 수 있습니다.

이해도 확인

예측을 하기 전에 모델을 학습시켜야 하는 이유는 무엇일까요?
데이터 세트의 특성과 라벨 간의 수학적 관계를 학습하도록 모델을 학습시켜야 합니다.
모델을 학습시킬 필요가 없습니다. 모델은 대부분의 컴퓨터에서 사용할 수 있습니다.
예측을 수행하기 위해 데이터가 필요하지 않도록 모델을 학습시켜야 합니다.

추론

모델 평가 결과가 만족스러우면 이 모델을 이용해 라벨이 없는 예를 추론이라고 하는 예측을 할 수 있습니다. 날씨 앱 예에서는 모델에 온도, 기압, 상대 습도와 같은 현재 기상 조건을 제공하여 강수량을 예측합니다.