데이터 변환 소개

특성 추출은 모델을 학습시키는 데 유용한 특성을 결정한 후 로그 파일 및 기타 소스에서 발견된 원시 데이터를 변환하여 해당 특성을 만드는 프로세스입니다. 이 섹션에서는 숫자 및 범주 데이터를 변환하는 시점과 방법, 다양한 접근 방식의 장단점을 중점적으로 설명합니다.

데이터 변환 이유

Google에서는 주로 다음과 같은 이유로 특성을 변환합니다.

  1. 데이터 호환성을 위한 필수 변환 예를 들면 다음과 같습니다.

    • 숫자가 아닌 특성을 숫자로 변환합니다. 문자열에서 행렬 곱셈을 실행할 수 없으므로 문자열을 숫자로 표시된 표현으로 변환해야 합니다.
    • 입력 크기를 고정 크기로 조절 선형 모델과 피드 전달 신경망에는 입력 노드 수가 고정되어 있으므로 입력 데이터의 크기는 항상 동일해야 합니다. 예를 들어 이미지 모델은 데이터 세트의 이미지를 고정 크기로 조정해야 합니다.
  2. 모델 성능 개선에 도움이 될 수 있는 품질 변환(선택사항) 예를 들면 다음과 같습니다.

    • 텍스트 특성의 토큰화 또는 대소문자 표기
    • 정규화된 숫자 특성 (대부분의 모델은 이후 성능이 더 우수함)
    • 선형 모델이 특성 공간에 비선형성을 도입하도록 허용

엄밀히 말하면 품질 변환은 필요하지 않습니다. 모델은 변환 없이 실행할 수 있습니다. 그러나 이러한 기법을 사용하면 모델이 더 나은 결과를 제공할 수 있습니다.

혁신해야 할 분야

데이터를 디스크에 생성하는 동안 또는 모델 내에 변환을 적용할 수 있습니다.

학습 전에 혁신

이 접근 방식에서는 학습 전에 변환을 수행합니다. 이 코드는 머신러닝 모델과는 별도로 작동합니다.

장점

  • 계산은 한 번만 수행됩니다.
  • 컴퓨팅은 전체 데이터 세트를 보고 변환을 결정할 수 있습니다.

단점

  • 변환은 예측 시간에 재현되어야 합니다. 편향에 주의하세요.
  • 변환이 변경되면 데이터 생성을 다시 실행해야 하므로 반복 속도가 느려집니다.

온라인 서빙과 관련된 경우 편향이 더 위험합니다. 오프라인 서빙 시에는 학습 데이터를 생성하는 코드를 재사용할 수 있습니다. 온라인 서빙에서는 데이터 세트를 만드는 코드와 실시간 트래픽을 처리하는 데 사용되는 코드가 거의 다르기 때문에 편향을 쉽게 발생시킬 수 있습니다.

모델 내에서 변환

이 접근 방식에서 변환은 모델 코드의 일부입니다. 모델은 변환되지 않은 데이터를 입력으로 사용하고 모델 내에서 변환합니다.

장점

  • 쉬운 반복. 변환을 변경해도 같은 데이터 파일을 계속 사용할 수 있습니다.
  • 학습 및 예측 시간에 동일한 변환이 보장됩니다.

단점

  • 비용이 많이 드는 변환은 모델 지연 시간을 늘릴 수 있습니다.
  • 변환은 배치별로 이루어집니다.

일괄 변환에는 여러 가지 고려사항이 있습니다. 특성을 평균으로 정규화하려는 경우, 즉 특성값을 평균 0 및 표준 편차 1가 되도록 변경한다고 가정해 보겠습니다. 모델 내에서 변환하는 경우 이 정규화는 전체 데이터 세트가 아닌 하나의 배치 데이터에만 액세스할 수 있습니다. 배치 내의 평균 값으로 정규화하거나 (배치가 변형된 경우에는 위험함) 평균을 미리 계산하여 모델에서 상수로 수정할 수 있습니다. 정규화에 관해서는 다음 섹션에서 살펴보겠습니다.

데이터 탐색, 정리, 시각화

변환하기 전에 데이터를 탐색 및 정리합니다. 데이터 세트를 수집하고 구성할 때 다음 작업 중 일부를 수행했을 수 있습니다.

  • 여러 데이터 행을 살펴봅니다.
  • 기본 통계를 확인합니다.
  • 누락된 숫자 항목 수정

데이터를 자주 시각화합니다. 그래프를 통해 수치 통계에서 명확하지 않은 이상점이나 패턴을 찾을 수 있습니다. 따라서 너무 자세히 분석하기 전에 산점도 또는 히스토그램을 통해 그래픽으로 데이터를 확인하세요. 파이프라인을 시작할 뿐만 아니라 변환 전체에서 그래프를 확인합니다. 시각화 기능을 사용하면 내 가정을 지속적으로 점검하고 주요 변경사항이 미치는 영향을 확인할 수 있습니다.