실제 환경에서 분석 알고리즘을 테스트하는 것의 중요성

Timo Sachse

이상적인 ‘랩’ 조건에서 개발되고 테스트된 모든 것은 실제 환경에서 성능이 저하될 수 있습니다. 풍동(비행기 등에 공기의 흐름이 미치는 영향을 시험하기 위한 터널형 인공 장치)에서의 완벽한 조건들은, 서류상으로 볼 때 디자이너가 세계 최고의 포뮬러 원 경주용 자동차를 설계했다고 믿게 할 수도 있습니다. 하지만 포르투갈 해안에서 4월의 바람이 부는 날에는 말 그대로 테스트 모델들이 창문 밖으로 날아갈 수 있습니다.

이는 비디오 분석에서도 마찬가지이며, 실제 사용자 환경에서 테스트하는 것이 머신러닝 알고리즘이 특정 사용 사례 및 시나리오에 효과적인지 확인하는 데 필수적인 이유이기도 합니다.

테스트 전, 훈련이 필요

실제 환경에서 테스트하기 전에, 비디오 분석에서 객체 감지 및 인식에 사용되는 것과 같은 머신러닝 알고리즘을 개발하고 교육해야 합니다.

딥러닝 또는 머신러닝 기반 분석 애플리케이션을 개발하려면 대량의 데이터를 수집해야 합니다. 비디오 보안 감시에서 이 데이터는 일반적으로 인간과 차량 또는 기타 관심 객체의 이미지와 비디오 클립으로 구성됩니다. 비디오 분석에 있어 관심 객체의 폭을 고려할 때, 필요한 데이터 세트는 엄청날 수 있습니다.

기계나 컴퓨터에서 데이터를 인식할 수 있도록 하려면, 관련 개체를 분류하고 레이블을 지정하는 데이터 주석 프로세스가 필요합니다. 주석이 달린 데이터에는 분석 애플리케이션이 사용될 컨텍스트에 적합한 충분히 다양한 샘플이 포함되어야 합니다. 안타깝게도 데이터 주석 작업은 대부분 수동적이고 노동 집약적인 작업입니다.

알고리즘 모델에는 주석이 달린 데이터가 공급되고 원하는 품질에 도달할 때까지 모델을 반복적으로 수정하고 개선하기 위한 교육 프레임워크가 사용됩니다. 즉, 정의된 작업을 해결하도록 모델이 최적화됩니다.

머신러닝 훈련 방법

머신러닝 기반 알고리즘의 훈련은 크게 세 가지 방법으로 수행할 수 있습니다.

  1. 감독 학습: 모델은 정확한 예측 방법을 학습합니다
  2. 감독되지 않은 학습: 이 모델은 클러스터를 식별하는 방법을 배웁니다
  3. 강화 학습: 모델은 실수에서 배웁니다

감독 학습은 오늘날 머신러닝에서 가장 일반적인 방법이며, 일반적으로 ‘예에 의한 학습(learning by example)’이라고 할 수 있습니다. 훈련 데이터에는 명확하게 주석이 달렸는데, 이는 입력 데이터가 이미 원하는 출력 결과와 쌍을 이루고 있음을 의미합니다. 감독된 학습에는 일반적으로 매우 많은 양의 주석이 달린 데이터가 필요하며, 훈련된 알고리즘의 성능은 해당 훈련 데이터의 품질에 직접적으로 좌우됩니다.

감독 학습에서 가장 중요한 측면은 실제 구현 상황에서 모든 잠재적 입력 데이터를 나타내는 데이터 세트를 사용하는 것입니다. 객체 디텍터의 경우, 개발자는 다양한 개체 인스턴스, 방향, 축척, 조명 상황, 배경 및 집중 방해요소가 포함된 다양한 이미지로 알고리즘을 훈련해야 합니다. 훈련 데이터가 계획된 사용 사례를 대표하는 경우에만 최종 분석 애플리케이션은 새로운 데이터를 처리할 때 정확한 예측을 할 수 있습니다.

감독되지 않은 학습은 알고리즘을 사용하여 레이블이 지정되지 않은 데이터 세트를 분석하고 그룹화합니다. 이 모델은 보안 감시 업계에서는 일반적인 교육 방법이 아닌데, 품질을 예측할 수 없으면서 많은 보정과 테스트가 필요하기 때문입니다. 데이터 세트는 분석 애플리케이션과 관련되어야 하지만 레이블을 명확히 지정하거나 표시할 필요는 없습니다.

감독되지 않는 학습에서는 수동 주석 작업을 하지 않아도 되지만, 훈련에 필요한 이미지 또는 비디오 수가 몇 배 더 많아야 합니다. 훈련 단계 중, 훈련 대상 모델은 훈련 프레임워크에서 지원하는 데이터 세트의 공통 특징을 식별합니다. 배포 단계 중에는, 모델은 데이터를 패턴에 따라 그룹화하는 동시에 학습된 그룹에 맞지 않는 이상 징후를 감지할 수 있습니다.

강화 학습은 예를 들어 로봇 공학, 산업 자동화, 비즈니스 전략 계획에서 사용되지만, 많은 양의 피드백이 필요하기 때문에 오늘날에는 보안 감시에서 제한적으로 사용됩니다. 강화 학습은 특정 상황에서 잠재적 보상을 극대화하기 위해 적절한 조치를 취하는 것으로, 모델이 올바른 선택을 했을 때 보상이 더 커집니다. 이 알고리즘은 훈련에 데이터/라벨 쌍을 사용하지 않고, 환경과의 상호작용을 통해 의사결정을 테스트하면서 보상을 측정함으로써 최적화됩니다. 알고리즘의 목표는 보상을 최대화하는 데 도움이 되는 행동에 대한 정책을 배우는 것입니다.

구현 전, 실제 환경에서 테스트해야

모델을 훈련한 후에는 철저히 테스트해야 하며, 일반적으로 실제 구현 상황에서 자동화된 파트와 광범위한 테스트를 결합해야 합니다. 자동화된 파트에서, 애플리케이션은 훈련 중에 모델에 의해 보이지 않는 새로운 데이터 세트로 벤치마크됩니다. 이러한 벤치마크가 예상한 위치에 있지 않으면 프로세스가 다시 시작됩니다. 즉, 새로운 훈련 데이터가 수집되고, 주석이 작성 또는 조정되며, 모델이 재훈련됩니다.

원하는 품질 수준에 도달하면 현장 테스트가 시작됩니다. 이 테스트에서 애플리케이션은 실제 시나리오에 노출됩니다. 그 양과 변동은 애플리케이션의 범위에 따라 달라집니다. 범위가 좁을수록 테스트해야 할 변동은 줄어들고 범위가 넓을수록 더 많은 테스트가 필요합니다. 결과를 다시 비교하고 평가하여 결과가 필요한 위치에 있지 않을 경우 프로세스를 다시 시작할 수 있습니다. 또 다른 잠재적 결과는 애플리케이션을 사용이 권장되지 않거나 부분적으로만 권장되는 알려진 시나리오를 설명하면서 전제 조건을 정의하는 것일 수 있습니다.

그러나 분석 애플리케이션을 실제 시나리오에 노출하는 것은 실제 환경에서 애플리케이션을 실행하는 것과는 다릅니다. 추론 또는 예측이라고도 하는 구현은, 실제 생활 장면을 모니터링하는 보안 감시 시스템에서 훈련된 머신러닝 모델을 실행하여 알고리즘이 훈련 단계에서 학습한 내용을 사용하여 원하는 결과를 생성하는지 테스트하는 프로세스입니다. 개발 및 테스트 전반에 걸쳐 사용된 ‘깨끗한’ 데이터를 품질 면에서 크게 벗어날 수 있는 실제 데이터로 대체하는 이 단계에서야, 알고리즘이 설계된 목적에 적합한지 여부를 확인할 수 있습니다.

분석 애플리케이션 테스트: 간과되기 쉬운

프로세서와 분석 애플리케이션의 ‘지능’이 향상된다는 인식은 고객이 분석 애플리케이션이 ‘즉각적으로’ 완벽하게 수행될 것이라고 믿는다는 것을 의미하지만, 이는 사실이 아닙니다. 실제 환경에서 테스트하는 것은 매우 중요하며, 분석 애플리케이션 배치 비용에도 고려해야 할 사항입니다.

영상 감시 분석 애플리케이션은 정확성과 효율성을 향상시키면서 계속 발전하겠지만, 종종 완벽한 조건에서 개발됩니다. 우리가 살고 있는 불완전한 세계는 어떠한 알고리즘도 훼손할 수 있으며, 이러한 불완전성에 대한 테스트는 필수적입니다.

애플리케이션 자체에 의해 결함이 자동으로 발생하는 것은 아니며, 기대의 불일치로 인해 발생하는 경우가 훨씬 더 많습니다. 이는 테스트가 결함이나 한계를 찾는 데 도움이 될 뿐만 아니라 분석 애플리케이션의 일반적인 기능에 대한 이해도 크게 향상됨을 의미합니다. 결과적으로, 가능한 한 최선의 방법으로 디텍터(카메라) 설치를 준비하는 데 도움이 되며, 심지어 장면 자체를 수정할 수도 있습니다(예: 조명).

 

비디오 분석 애플리케이션에서의 AI에 대한 자세한 내용은 백서를 참조하십시오.

백서 다운로드