Random Cut Forest(RCF) 알고리즘 - 아마존 SageMaker

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Random Cut Forest(RCF) 알고리즘

Amazon SageMaker Random Cut Forest(RCF)는 데이터 세트 내에서 변칙적인 데이터 지점을 감지하는 비지도 알고리즘입니다. 이는 구조화 또는 패턴화된 데이터로부터 벗어난 관측치입니다. 변칙은 시계열 데이터에서 예기치 않은 급증, 주기성 내의 끊어짐 또는 분류할 수 있는 데이터 지점으로 나타날 수 있습니다. 평면적으로 봤을 때 "정규" 데이터로부터 쉽게 구분할 수 있습니다. 데이터 세트에 이러한 변칙이 포함되면 기계 학습 작업의 복잡성이 극적으로 증가할 수 있습니다. "정규" 데이터가 주로 단순한 모델로 설명될 수 있기 때문입니다.

각 데이터 지점을 통해 RCF는 변칙 점수를 연결합니다. 점수 값이 낮은 경우 데이터 지점이 "정상"으로 간주됩니다. 점수 값이 높은 경우 데이터 내에 변칙이 존재함을 나타냅니다. "낮음"과 "높음"의 정의는 애플리케이션에 따라 다릅니다. 하지만 일반적으로 평균 점수로부터 3의 표준편차를 초과하는 점수가 변칙으로 간주됩니다.

1차원 시계열 데이터에 대한 변칙 감지 알고리즘의 적용 사례가 많습니다(예: 트래픽 볼륨 분석 또는 음성 볼륨 급증 감지). RCF는 임의 차원 입력으로 작업하도록 설계되었습니다. Amazon SageMaker RCF는 특징의 수, 데이터 설정 크기 및 인스턴스 수에 따라 조정됩니다.

RCF 알고리즘의 입력/출력 인터페이스

Amazon SageMaker Random Cut Forest는 traintest 데이터 채널을 지원합니다. 레이블 지정된 데이터의 accuracy, precision, recall 및 F1-score 지표 컴퓨팅을 위해 선택 가능한 test 채널이 사용됩니다. train 및 test 데이터 콘텐츠 유형은 application/x-recordio-protobuf 또는 text/csv 형식일 수 있습니다. 테스트 데이터의 경우 텍스트/csv 형식을 사용할 때 콘텐츠는 text/csv;label_size=1로 지정되어야 합니다. 여기서 각 행의 첫 번째 열은 변칙 레이블 나타냅니다. "1"은 변칙 데이터 지점을, "0"은 정상 데이터 지점을 나타냅니다. 파일 모드 또는 파이프 모드를 사용하여 recordIO-wrapped-protobuf 또는 CSV로 형식이 지정된 데이터에 대해 RCF 모델을 훈련할 수 있습니다.

train 채널은 S3DataDistributionType=ShardedByS3Key만을 지원하고, test 채널은 S3DataDistributionType=FullyReplicated만을 지원합니다. 다음 예제에서는 Amazon SageMaker Python SDK를 사용하여 train 채널의 S3 배포 유형을 지정합니다.

참고

sagemaker.inputs.s3_input 메서드는 SageMaker Python SDK v2에서 sagemaker.inputs.TrainingInputdm로 이름이 변경되었습니다.

import sagemaker # specify Random Cut Forest training job information and hyperparameters rcf = sagemaker.estimator.Estimator(...) # explicitly specify "ShardedByS3Key" distribution type train_data = sagemaker.inputs.TrainingInput( s3_data=s3_training_data_location, content_type='text/csv;label_size=0', distribution='ShardedByS3Key') # run the training job on input data stored in S3 rcf.fit({'train': train_data})

실행 역할과 관련된 일반적인 오류를 방지하려면 필요한 실행 역할, AmazonSageMakerFullAccessAmazonEC2ContainerRegistryFullAccess가 있는지 확인하십시오. 이미지가 존재하지 않거나 잘못된 권한과 관련된 일반적인 오류를 방지하려면 ECR 이미지가 훈련 인스턴스에 할당된 디스크 공간보다 크지 않은지 확인하십시오. 이를 방지하려면 디스크 공간이 충분한 인스턴스에서 훈련 작업을 실행하십시오. 또한, ECR 이미지가 다른 AWS 계정의 Elastic Container Service(ECS) 리포지토리에서 가져온 것이고 액세스를 허용하도록 리포지토리 권한을 설정하지 않으면 오류가 발생합니다. 리포지토리 정책 설명 설정에 대한 자세한 내용은 ECR 리포지토리 권한을 참고하십시오.

S3 데이터 소스 속성을 사용자 지정하는 방법에 대한 자세한 내용은 S3DataSource을 참고하십시오. 마지막으로 여러 인스턴스를 활용하여 교육하려면 교육 데이터가 최소 인스턴스의 수만큼 여러 파일로 분할되어야 합니다.

추론의 경우 RCF는 application/x-recordio-protobuf, text/csvapplication/json 입력 데이터 콘텐츠 유형을 지원합니다. 자세한 정보는 기본 제공 알고리즘의 공통 데이터 형식 설명서를 참조하십시오. RCF 추론은 application/x-recordio-protobuf 또는 application/json 형식의 출력을 반환합니다. 출력 데이터의 각 레코드에는 각 입력 데이터 지점에 대한 해당 변칙 점수가 포함되어 있습니다. 자세한 정보는 공동 데이터 형식--추론 단원을 참조하십시오.

입력 및 출력 파일 형식에 대한 자세한 정보는 RCF 응답 형식(추론의 경우) 및 RCF 샘플 노트북 단원을 참조하십시오.

RCF 알고리즘에 대한 인스턴스 권장 사항

교육에 대해 ml.m4, ml.c4ml.c5 인스턴스 패밀리를 권장합니다. 추론에 대해 특히 최소의 사용 시간당 비용과 최대의 성능을 위해 ml.c5.xl 인스턴스 유형 사용을 권장합니다. 알고리즘은 GPU 인스턴스 유형에서 기술적으로 실행될 수 있지만 GPU 하드웨어를 활용하지는 않습니다.

RCF 샘플 노트북

RCF 모델을 훈련한 다음 해당 모델을 사용하여 추론을 수행하는 방법을 보여주는 예제는 SageMaker Random Cut Forests 소개 노트북을 참조하십시오. SageMaker에서 예제 실행에 사용할 수 있는 Jupyter 노트북 인스턴스를 생생하고 액세스하는 방법은 아마존 SageMaker 노트북 인스턴스을 참고하십시오. 노트북 인스턴스를 생성한 후 열면 SageMaker 예제 탭을 선택하여 모든 SageMaker 샘플 목록을 확인할 수 있습니다. 노트북을 열려면 사용 탭을 클릭하고 Create copy(사본 생성)를 선택합니다.