기본 제공 선형 학습자 알고리즘을 사용하여 학습

AI Platform의 기본 제공 알고리즘을 사용하여 학습하면 학습 코드를 작성하지 않고도 데이터세트를 제출하고 모델을 학습시킬 수 있습니다. 이 페이지에서는 선형 학습자 기본 제공 알고리즘의 작동 방식과 사용 방법을 설명합니다.

개요

이 기본 제공 알고리즘은 다음과 같이 사전 처리 및 학습을 수행합니다.

  1. 사전 처리: AI Platform은 범주형 데이터와 수치 데이터의 조합을 모든 수치 데이터세트로 처리하여 학습에 사용할 수 있도록 준비합니다.
  2. 학습: AI Platform은 제공된 데이터세트 및 모델 매개변수와 함께 TensorFlow의 선형 에스티메이터를 사용하여 학습을 실행합니다.

제한사항

기본 제공 선형 학습자 알고리즘을 사용하는 학습에서는 다음 기능이 지원되지 않습니다.

  • 다중 GPU 학습. 기본 제공 알고리즘은 GPU를 한 번에 하나만 사용합니다. 머신 하나에서 GPU를 여러 개 사용하는 학습을 최대한 활용하려면 학습 애플리케이션을 만들어야 합니다. 자세한 내용은 머신 유형을 참조하세요.
  • TPU를 사용한 학습. TPU를 사용하여 학습하려면 학습 애플리케이션을 만들어야 합니다. 자세한 내용은 TPU를 사용한 학습 작업 실행 방법을 참조하세요.
  • 분산 학습. AI Platform에서 분산 학습 작업을 실행하려면 학습 애플리케이션을 만들어야 합니다.

지원되는 머신 유형

지원되는 AI Platform 확장 등급과 머신 유형은 다음과 같습니다.

  • BASIC
  • CUSTOM:
    • standard
    • large_model
    • complex_model_s
    • complex_model_m
    • complex_model_l
    • standard_gpu
    • standard_p100
    • standard_v100
    • large_model_v100

또한 Compute Engine 머신 유형(베타)도 사용할 수 있습니다. 자세한 내용은 머신 유형을 참조하세요.

입력 데이터 형식 지정

데이터세트의 각 행은 인스턴스 1개를 나타내며, 데이터세트의 각 열은 특성 값을 나타냅니다. 타겟 열은 예측할 값을 나타냅니다.

CSV 파일 준비

입력 데이터는 UTF-8로 인코딩된 CSV 파일이어야 합니다. 학습 데이터가 범주형 값과 숫자 값으로만 구성된 경우, Google의 사전 처리 모듈을 사용하여 누락된 숫자 값을 입력하고, 데이터세트를 분할하고, 누락 값이 10% 이상인 행을 삭제할 수 있습니다. 그렇지 않은 경우 자동 사전 처리를 사용 설정하지 않고 학습을 실행할 수 있습니다.

다음 요구사항을 충족하는 입력 CSV 파일을 준비해야 합니다.

  • 헤더 행을 삭제합니다. 헤더 행에는 각 열의 라벨이 있습니다. 학습 데이터의 일부인 나머지 데이터 인스턴스와 함께 제출되지 않도록 헤더 행을 삭제합니다.
  • 타겟 열이 첫 번째 열인지 확인합니다. 타겟 열에는 예측할 값이 포함됩니다. 분류 알고리즘의 경우, 타겟 열의 모든 값은 클래스 또는 카테고리입니다. 회귀 알고리즘의 경우, 타겟 열의 모든 값은 숫자 값입니다.

정수 값 처리

고유 값이 부족하면 기본적으로 정수 값의 열은 범주형 열로 해석됩니다. 예를 들어 데이터세트의 한 열에 {101, 102, 103}과 같은 정수 값이 포함된 경우, AI Platform은 이러한 값을 {'high', 'medium', 'low'}와 같은 범주로 해석합니다.

이러한 잘못된 해석을 방지하고 데이터를 수치 데이터로 해석하려면 정수를 {101.0, 102.0, 103.0}과 같은 부동 소수점 숫자로 변환해야 합니다. 정수를 범주형 데이터로 해석하려면 {code_101, code_102, code_103}과 같이 각 값의 앞 또는 뒤에 문자열을 추가합니다.

선형 학습자 학습 작업 제출

이 섹션에서는 기본 제공 선형 학습자 알고리즘을 사용하여 학습 작업을 제출하는 방법을 설명합니다.

Google Cloud Platform Console에서 각 초매개변수의 간략한 설명을, 기본 제공 선형 학습자 알고리즘 참조에서는 보다 자세한 설명을 확인할 수 있습니다.

콘솔

  1. Google Cloud Platform Console의 AI Platform 작업 페이지로 이동합니다.

    AI Platform 작업 페이지

  2. 새 학습 작업 버튼을 클릭합니다. 아래 표시된 옵션 중에서 기본 제공 모델 학습을 클릭합니다.

  3. 새 학습 작업 만들기 페이지에서 기본 제공 선형 학습자를 선택하고 다음을 클릭합니다.

  4. Google Cloud Platform Console의 링크를 따라 이동하고 기본 제공 선형 학습자 참조를 확인하여 사용 가능한 모든 매개변수를 자세히 알아보세요.

gcloud

  1. 이 가이드를 사용하기 전에 gcloud를 설치한 경우에는 최신 버전의 gcloud beta로 업데이트합니다.

       gcloud components install beta
    
  2. [VALUES-IN-BRACKETS]에 고유 값을 입력하여 작업 환경 변수를 설정합니다.

       # Specify the name of the Cloud Storage bucket where you want your
       # training outputs to be stored, and the Docker container for
       # your built-in algorithm selection.
       BUCKET_NAME='[YOUR-BUCKET-NAME]'
       IMAGE_URI='gcr.io/cloud-ml-algos/linear_learner_cpu:latest'
    
       # Specify the Cloud Storage path to your training input data.
       TRAINING_DATA='gs://[YOUR_BUCKET_NAME]/[YOUR_FILE_NAME].csv'
    
       DATASET_NAME='census'
       ALGORITHM='linear'
       MODEL_TYPE='classification'
    
       DATE='date '+%Y%m%d_%H%M%S''
       MODEL_NAME="${DATASET_NAME}_${ALGORITHM}_${MODEL_TYPE}"
       JOB_ID="${MODEL_NAME}_${DATE}"
    
       JOB_DIR="gs://${BUCKET_NAME}/algorithm_training/${MODEL_NAME}/${DATE}"
    
  3. gcloud beta ai-platform jobs training submit을 사용하여 학습 작업을 제출합니다.

       gcloud beta ai-platform jobs submit training $JOB_ID \
          --master-image-uri=$IMAGE_URI --scale-tier=BASIC --job-dir=$JOB_DIR \
          -- \
          --preprocess --model_type=$MODEL_TYPE --batch_size=250 \
          --learning_rate=0.1 --max_steps=1000 \
          --training_data_path=$TRAINING_DATA
    
  4. gcloud로 로그를 확인하여 학습 작업 상태를 모니터링합니다. gcloud ai-platform jobs describegcloud ai-platform jobs stream-logs를 참조하세요.

       gcloud ai-platform jobs describe ${JOB_ID}
       gcloud ai-platform jobs stream-logs ${JOB_ID}
    

사전 처리 작동 방식

범주형 데이터 및 수치 데이터에 자동 사전 처리가 수행됩니다. 사전 처리 루틴은 먼저 데이터를 분석한 후 변환합니다.

분석

먼저 AI Platform이 각 열의 데이터 유형을 자동으로 감지하고, 각 열의 처리 방법을 식별하고, 열의 데이터 통계 일부를 계산합니다. 이 정보는 metadata.json 파일에 캡처됩니다.

AI Platform은 타겟 열의 유형을 분석하여 제공된 데이터세트가 회귀용 또는 분류용인지 식별합니다. 이러한 분석이 사용자가 선택한 model_type과 충돌하면 오류가 발생합니다. 확실하지 않은 경우에는 데이터 형식을 명확하게 지정하여 타겟 열 처리 방법을 명시해야 합니다.

  • 유형: 열은 숫자형 또는 범주형일 수 있습니다.

  • 처리: AI Platform은 각 열의 처리 방법을 다음과 같이 식별합니다.

    • 열의 모든 행에 단일 값이 있으면 열은 상수로 처리됩니다.
    • 열이 범주형이고 모든 행에 고유 값이 있으면 열은 row_identifier로 처리됩니다.
    • 열이 부동 소수점 값이 있는 숫자형 또는 정수 값이 있는 숫자형이고 고유 값이 여러 개 있으면 열은 숫자로 처리됩니다.
    • 열이 정수 값이 있는 숫자형이고 열에 고유 값이 부족하면 열은 정수 값이 ID 또는 어휘인 범주형 열로 처리됩니다.
      • 열에 있는 고유 값 수가 입력 데이터세트에 있는 행 수의 20% 미만이면 열은 고유 값이 부족한 것으로 간주됩니다.
    • 열이 범주형이고 카디널리티가 높으면 열은 해싱으로 처리됩니다. 여기서 해시 버킷 수는 열에 있는 고유 값 수의 제곱근과 동일합니다.
      • 고유 값 수가 데이터세트에 있는 행 수의 제곱근보다 크면 범주형 열은 카디널리티가 높다고 간주됩니다.
    • 열이 범주형이고 고유 값 수가 데이터세트에 있는 행 수의 제곱근보다 작거나 같으면 열은 어휘가 있는 일반 범주형 열로 처리됩니다.
  • 통계: AI Platform은 식별된 열 유형 및 처리 방식을 토대로 이후 단계에서 열을 변환하는 데 사용되는 통계를 다음과 같이 계산합니다.

    • 열이 숫자형이면 평균 값과 분산 값을 계산합니다.
    • 열이 범주형이고 처리 방식이 ID 또는 어휘이면 열에서 고유 값을 추출합니다.
    • 열이 범주형이고 처리 방식이 해싱이면 열의 카디널리티에 대한 해시 버킷 수를 계산합니다.

변환

데이터세트의 초기 분석이 완료되면 AI Platform은 데이터세트에 적용된 유형, 처리 방식, 통계를 기준으로 데이터를 변환합니다. AI Platform은 다음 순서로 변환을 수행합니다.

  1. 분할률을 지정하는 경우, 학습 데이터세트를 검증 데이터세트와 테스트 데이터세트로 분할합니다.
  2. 특성이 10% 이상 누락된 행을 삭제합니다.
  3. 열 평균 값을 사용하여 누락된 숫자 값을 입력합니다.

변환 예

누락된 값이 10%인 행을 삭제합니다. 다음 예에서는 행에 값이 10개 있다고 가정합니다. 각 예시 행에는 간단한 설명을 위해 일부 내용만 표시되어 있습니다.

행 문제 원래 값 변환된 값 설명
예시 행에 누락 값 없음 [3, 0.45, ...,
'fruits', 0, 1]
[3, 0.45, ...,
1, 0, 0, 0, 1]
'fruits' 문자열이 원-핫 인코딩에서 '1, 0, 0' 값으로 변환됩니다. 이 작업은 나중에 TensorFlow 그래프에서 수행됩니다.
누락 값이 너무 많음 [3, 0.45, ...,
'fruits', __, __]
행이 삭제됨 행의 값이 10% 이상 누락되었습니다.
숫자 값 누락 [3, 0.45, ...,
'fruits', 0, __]
[3, 0.45, ...,
1, 0, 0, 0, 0.54]
  • 누락된 숫자 값이 열 평균 값으로 대체됩니다. 이 예에서 평균 값은 0.54입니다.
  • 'fruits' 문자열이 원-핫 인코딩에서 '1, 0, 0' 값으로 변환됩니다. 이 작업은 나중에 TensorFlow 그래프에서 수행됩니다.
범주형 값 누락 [3, 0.45, ...,
__, 0, 1]
[3, 0.45, ...,
0, 0, 0, 0, 1]
  • 누락된 범주형 값이 원-핫 인코딩에서 '0, 0, 0' 값으로 변환됩니다. 이 작업은 나중에 TensorFlow 그래프에서 수행됩니다.

특성 열

변환 중에는 열이 처리되지 않습니다. 대신 분석 중에 생성된 메타데이터가 AI Platform에 전달되어 특성 열이 생성됩니다.

열 유형 열 처리 결과 특성 열
숫자 (모든 열 처리 유형) tf.feature_column.numeric_column

값 표준화를 위해 평균 값과 분산 값이 사용됩니다.
new_value = (input_value - mean) / sqrt(variance)

범주형 ID tf.feature_column.categorical_column_with_identity
범주형 어휘 tf.feature_column.categorical_column_with_vocabulary_list
범주형 해싱 tf.feature_column.categorical_column_with_hash_bucket
범주형 상수 또는 행 식별자 무시됩니다. 특성 열이 생성되지 않습니다.

자동 사전 처리가 완료되면 AI Platform은 처리된 데이터세트를 작업 요청에서 지정된 디렉토리의 Cloud Storage 버킷으로 다시 업로드합니다.

추가 학습 자료

이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...