권장사항

이 페이지에서는 데이터 준비, 모델 평가, 모델 성능 향상과 관련한 권장사항을 설명합니다.

데이터 준비

  • 학습에 사용하는 데이터는 예측을 수행할 데이터와 최대한 유사해야 합니다. 예를 들어 사용 사례에 흐릿한 저해상도 동영상(예: 보안 카메라 영상)이 포함된다면 학습 데이터도 흐릿한 저해상도 동영상이 포함되어야 합니다. 또한 일반적으로 다양한 각도, 해상도, 배경으로 촬영한 학습 동영상을 제공하는 것이 좋습니다.
  • 학습 데이터는 다음과 같은 최소한의 요구사항을 충족해야 합니다.

    • 라벨당 최소 경계 상자 수는 10개입니다.
    • 라벨은 유효한 문자열이어야 합니다(쉼표 없음).
    • 모든 동영상 프레임에는 유효한 타임스탬프가 있어야 합니다.
    • CSV의 모든 동영상 URI는 액세스 가능한 Cloud Storage 버킷에 저장해야 합니다.
  • 학습 및 테스트 데이터는 많을수록 좋습니다. 모델이 강력할수록 더 많은 데이터가 필요합니다.

  • 좋은 모델을 학습하는 데 필요한 데이터의 양은 다음과 같은 다양한 요소에 따라 달라집니다.

    • 클래스의 수. 고유한 클래스가 많을수록 클래스당 필요한 샘플이 증가합니다.

    • 라벨당 약 100개의 학습 동영상 프레임이 있어야 합니다. 각 프레임에서 관심 있는 라벨의 모든 객체에 라벨을 지정해야 합니다.

    • 클래스의 복잡성 또는 다양성. 신경망은 고양이와 새를 빠르게 구분할 수 있지만 30가지의 서로 다른 새의 종을 정확하게 분류하려면 훨씬 더 많은 샘플이 필요합니다.

    • 1024x1024 픽셀보다 큰 동영상 프레임 해상도의 프레임 정규화 프로세스 중에 일부 이미지 품질이 손실될 수 있습니다.

  • 불균형이 심한 데이터로 모델 학습을 하지 않아야 합니다. 클래스별 샘플 수가 동일하지 않은 경우가 많습니다. 차이가 크지 않을 때는 그다지 문제가 되지 않습니다. 하지만 불균형이 큰 경우, 예를 들어 일부 클래스에 다른 클래스보다 10배 이상 더 많은 샘플이 있는 경우 문제가 됩니다.

자세한 내용은 데이터 준비에 대한 정보를 참조하세요.

데이터 분할

머신러닝에서 데이터세트는 일반적으로 학습 데이터세트, 검증 데이터세트, 테스트 데이터세트라는 3개의 하위 집합으로 나뉩니다. 학습 데이터세트는 모델을 빌드하는 데 사용됩니다. 모델은 여러 알고리즘과 매개변수를 시도하면서 학습 데이터의 패턴을 찾습니다. 모델은 패턴이 발견되면 검증 데이터세트를 사용하여 알고리즘과 패턴을 테스트합니다. 학습 단계에서 발견된 것 중에서 성능이 가장 우수한 알고리즘과 패턴이 선택됩니다.

성능이 가장 우수한 알고리즘과 패턴이 발견되었으면 테스트 데이터세트를 사용하여 오류율, 품질, 정확성을 테스트합니다. 모델을 독립적으로 테스트하는 데 사용할 수 있는 별도의 테스트 데이터세트가 있어야 합니다.

모델의 편향을 방지하기 위해 검증 데이터세트와 테스트 데이터세트가 모두 사용됩니다. 검증 단계에서는 최적 모델 매개변수가 사용되므로 측정항목이 편향될 수 있습니다. 검증 단계 후에 테스트 데이터세트를 사용하여 모델의 품질을 평가하면 모델의 품질이 편향 없이 평가됩니다.

데이터를 분할할 때 다음 권장사항을 따르세요.

  • 모든 데이터세트(데이터세트 분할이라고도 함)는 동일한 인구를 나타내고 유사한 동영상을 보유하며 유사한 라벨 배분을 유지하는 것이 좋습니다.

    데이터를 제공하면 AutoML Video Object Tracking이 데이터를 학습, 검증, 테스트 데이터 세트로 자동 분할할 수 있습니다. 학습 분할 라벨을 직접 할당할 수도 있습니다. AutoML Video Object Tracking은 CSV 파일에서 학습, 검증, 테스트 분할을 생성할 때 동영상 수준에서 작동합니다. 한 동영상의 모든 라벨은 세 가지 데이터 세트 중 하나에 속할 수 있습니다. 따라서 동영상이 다르거나 라벨 분포가 동영상 간에 동일하지 않은 경우 동영상을 몇 개만 사용하는 것이 좋습니다.

    예를 들어 내부에 주석이 달린 동영상 세그먼트가 수천 개 포함된 동영상이 3개뿐이지만 일부 클래스가 개별 동영상에만 있는 경우, 모델이 라벨을 학습하지 않으므로 예측 중에 해당 라벨이 누락될 수 있습니다.

  • 데이터 유출을 방지하세요. 데이터 유출은 알고리즘이 모델 학습 중에 사용하지 않아야 하는 정보를 사용할 수 있는 경우 발생하며, 해당 정보는 향후 예측 수행 시 사용할 수 없게 됩니다. 이 경우 학습, 검증, 테스트 데이터세트에 대해 과도하게 낙관적인 결과로 이어질 수 있으며, 향후 보이지 않는 데이터를 예측해야 할 경우에도 제대로 실시되지 않을 수 있습니다.

    유출 예에는 카메라 시야각 또는 조명 조건(오전/오후)에 따른 편향, 해설이 없는 동영상에 비해 해설이 있는 동영상에 대한 편향, 특정 지역, 언어 그룹, 해설에서 가져오거나 동일한 로고가 있는 특정 라벨이 있는 동영상에 따른 편향이 있습니다.

    데이터 유출을 방지하려면 다음을 수행하세요.

    • 다양한 동영상과 동영상 프레임 샘플을 확보합니다.
    • 동영상에 숨겨진 힌트가 없는지 검토합니다(예: 포지티브 샘플이 있는 동영상은 오후에 촬영한 반면, 네거티브 샘플이 있는 동영상은 오전에 촬영).

자세한 내용은 데이터 준비에 대한 정보를 참조하세요.

데이터 소스 예

데이터 소스의 예는 다음의 공개적으로 사용 가능한 동영상 감지 데이터 세트를 참조하세요.

  • YouTube-BB: 동영상 객체 감지 데이터 세트(560만 경계 상자, 동영상 240,000개, 객체 유형 23개)
  • ImageNet-VID: Imagenet 동영상 객체 감지 챌린지(기본 수준 카테고리 30개)

모델 학습

동일한 데이터를 사용하면 필요 사항에 따라 다양한 모델을 학습하고 다양한 예측 유형을 생성할 수 있습니다. 또한 동일한 데이터로 동일한 모델을 학습하면 약간 다른 결과로 이어질 수 있습니다. 신경망 모델 학습에는 작업이 무작위 순서로 이루어지므로, 동일한 입력으로 완전히 동일한 모델을 학습할 수 있는 것은 아니며, 예측이 약간 다를 수 있습니다.

자세한 내용은 모델 관리에 대한 정보를 참조하세요.

모델 평가

모델이 학습을 마치면 검증 및 테스트 데이터세트 또는 새로운 데이터세트에 대해 성능을 평가할 수 있습니다.

일반적인 객체 추적 평가 개념과 측정항목은 다음과 같습니다.

  • Intersection over union(IOU)은 일반적으로 정답과 예측 사이에 있는 두 경계 상자 간의 중복을 측정합니다. 이를 사용하여 예측 경계 상자가 정답과 겹치는 정도를 측정할 수 있습니다.
  • 평균 정밀도(AP)라고도 하는 정밀도/재현율 곡선 아래의 면적(AuPRC). 이는 재현율 값 범위에 대한 정밀도 값의 적분입니다. 이진 문제에서 가장 잘 해석됩니다.
  • 평균 정밀도의 평균(mAP 또는 MAP)은 여러 클래스 또는 라벨에 대한 평균 정밀도(AP) 측정항목의 평균값으로 간주할 수 있습니다. mAP와 AP를 서로 바꿔서 사용할 수도 있습니다.
  • 이진 클래스 문제와 다중 클래스 문제의 경우 다양한 신뢰도 점수 임계값에서 정밀도와 재현율을 개별적으로 확인할 수도 있습니다.
  • 다중 클래스 라벨이 많지 않은 경우 예측에 대해 누락된 라벨을 보여주는 혼동 행렬을 검사할 수 있습니다.

다양한 동영상 객체 추적 문제에 모든 측정항목을 사용할 수 있는 것은 아닙니다. 예를 들어 객체 추적 문제의 정밀도와 재현율을 직관적으로 이해하면 여러 클래스(멀티 클래스 문제)를 고려하거나 샘플당 유효한 라벨이 여러 개 있는 경우(멀티 라벨 문제)를 고려할 때 더욱 모호해집니다. 특히 후자의 경우 제대로 수용된 단일 측정항목이 없습니다. 그러나 평가 결정에 평균 정밀도 측정항목을 고려할 수 있습니다.

그러나 단일 숫자 또는 단일 측정항목을 기준으로 모델 성능을 평가하는 것은 지나치게 단순합니다. 다양한 측정항목을 살펴보고 각 객체 클래스의 정밀도-재현율 곡선을 살펴보세요.

다음은 모델을 평가할 때 기타 유용한 팁입니다.

  • 학습 및 테스트 데이터세트에서 라벨의 배분에 유의하세요. 데이터세트가 불균형하게 배분된 경우 높은 정확성 측정항목이 잘못된 결과로 이끌 수 있습니다. 기본적으로 평가 중에는 모든 샘플의 가중치가 동일하므로 더 자주 사용되는 라벨에 높은 가중치가 적용될 수 있습니다. 예를 들어 네거티브 라벨보다 포지티브 라벨이 10배 이상 많고 네트워크에서 모든 샘플을 포지티브 라벨에 할당하기로 결정하는 경우에도 91%의 정확성을 달성할 수 있지만, 그렇다고 해서 학습된 모델이 크게 유용한 것은 아닙니다.

  • scikit-learn을 사용하여 Python 스크립트에서 실측 정보 및 예측 라벨을 분석할 수 있습니다. 평가 중에 다양한 방법으로 라벨에 가중치를 부여할 수 있습니다. 일반적인 접근 방식에는 매크로 평균화(측정항목을 클래스당 계산한 후 평균을 구함), 가중치 적용(측정항목을 클래스당 계산한 후 개별 클래스의 실행 빈도를 기준으로 가중치에 따라 평균을 구함), 마이크로(잠재적 불균형에 관계없이 각 샘플의 가중치가 동일함)가 포함됩니다.

  • 모델 디버깅은 모델 자체보다 데이터 디버깅에 관한 것입니다. 프로덕션으로 진행하기 전후에 성능을 평가할 때 어느 시점에서 모델이 예상하지 못한 방식으로 작동하기 시작하면 되돌아가서 데이터를 점검하여 어느 부분을 개선할 수 있는지 확인해야 합니다.

  • 종종 테스트 동영상에 맥락적 연관성이 너무 많지 않으면서 새로운 장면이 나오는 몇 가지 장면 컷 케이스가 있습니다. 예를 들어 실시간 축구 경기 방송에서는 카메라 뷰가 하향식 보기에서 사이드뷰로 전환됩니다. 이러한 시나리오에서는 일반적으로 모델이 변경사항을 포착하는 데 약 2~3 프레임이 소요됩니다.

자세한 내용은 모델 평가에 대한 정보를 참조하세요.

모델 테스트

AutoML Video Object Tracking은 자동으로 데이터의 20% 를 사용하거나, 데이터를 직접 분할하기로 선택한 경우 선택한 비율의 데이터를 사용해 모델을 테스트합니다.

모델 성능 향상

초기 모델 성능을 파악한 후 계속해서 개선하려면 다음과 같은 방법을 시도할 수 있습니다.

  • 라벨이 지정된 샘플의 수를 증가시킵니다(특히 과소 표시된 클래스의 경우).
  • 더 의미 있는 프레임 라벨 지정:
    • 단일 개체 대신 여러 개체가 표시되거나 개체가 없는 위치에 라벨을 지정할 프레임을 선택합니다.
    • 움직이는 객체가 더 많이 포함된 프레임을 선택합니다. 이를 통해 학습 중에 모델이 학습할 수 있는 더 많은 시간 정보를 제공할 수 있습니다.
    • 선택한 모든 프레임에 라벨이 완전히 지정되었는지 확인합니다. 예를 들어 차량 감지 모델을 학습시키는 경우 프레임에서 시각적으로 관찰할 수 있는 모든 차량에 라벨을 지정해야 합니다.
    • 동영상 시작 부분의 프레임을 선택하지 마세요. 이 알고리즘은 모션 컨텍스트를 캡처하기 위해 학습에 사용할 프레임을 가져올 수 있습니다. 선택한 프레임 이전에 프레임이 없거나 적은 경우 이러한 정보가 손실될 수 있습니다.
  • 모델이 제대로 작동하지 않는 지점을 정밀하게 확인합니다.

    • 어쩌면 클래스가 너무 광범위하여 2개 이상의 클래스로 분할하는 것이 합리적인가요?
    • 일부 클래스가 너무 구체적이어서 프로젝트의 최종 목표에 영향을 주지 않고 병합할 수 있나요?
    • 특히 성능이 좋지 않은 클래스의 경우 더 많은 샘플의 라벨을 지정하는 것이 좋습니다.
  • 데이터 불균형을 줄입니다. 특히 1대 100과 같이 불균형이 큰 클래스의 경우 더 많은 샘플을 추가하거나 실행 빈도가 높은 클래스의 샘플 수를 줄여봅니다.

  • 잠재적인 데이터 유출을 신중하게 확인하고 방지합니다.

  • 소수의 중요한 클래스에 집중할 수 있도록 중요성이 떨어지는 클래스를 삭제합니다.

  • 지원 페이지에서 제공되는 다른 옵션을 검토합니다.