자동차를 인식하기 위한 컴퓨터 비전 시스템

한 가지 더 예를 들어, 여러분이 자동차를 인식하기 위한 컴퓨터 비전 시스템을 만들고 있다고 가정해보자. 여러 자동차의 컴퓨터 그래픽 모델을 가지고 있는 비디오 게임 회사와 파트너 관계를 맺고 있다고 가정해 보십시오. 알고리즘을 훈련시키기 위해 모델을 사용하여 자동차의 합성 이미지를 생성합니다.

합성된 이미지가 매우 사실적으로 보일지라도, (많은 사람들이 독립적으로 제안한) 이 접근 방식은 아마도 잘 작동하지 않을 것이다. 이 비디오 게임은 전체 비디오 게임에서 약 20대의 자동차 디자인을 가지고 있을 것이다. 3D 자동차 모델을 만드는 것은 매우 비용이 많이 듭니다. 만약 여러분이 게임을 하고 있다면, 여러분은 아마도 같은 자동차들이 계속해서 보고 있다는 것을 알아차리지 못할 것입니다. 아마도 다르게 칠했을 뿐입니다. 즉, 이 데이터는 매우 사실적으로 보입니다.

그러나 도로에 나와 있는 모든 자동차들, 즉 개발/테스트 세트에서 볼 수 있는 것과 비교하면 이 20대의 합성 자동차는 전 세계 자동차 유통량의 극히 일부만을 포착할 수 있습니다. 따라서 10만 개의 교육 예제가 모두 이 20대의 자동차에서 나온다면, 시스템은 이 20개의 특정 자동차 설계에 “오버핏”될 것이며, 다른 자동차 설계를 포함하는 개발/테스트 세트에는 잘 일반화되지 않을 것입니다. 데이터를 합성할 때, 여러분이 정말 대표적인 예들을 합성하고 있는지 생각해 보세요. 모든 합성 데이터가 20개의 자동차 설계 중 하나에서 나오거나 모든 합성 오디오가 1시간 동안의 자동차 소음에서 나오는 경우와 같이 학습 알고리듬이 합성되지 않은 예와 구별할 수 있도록 하는 합성 데이터 속성을 제공하는 것을 피하십시오.

이 충고는 따르기 어려울 수 있다. 데이터 합성에 대한 작업을 수행할 때, 우리 팀은 때때로 합성된 데이터가 상당한 영향을 미칠 수 있을 만큼 실제 분포에 가까운 세부 정보를 가진 데이터를 생성하는 데 몇 주가 걸렸다. 그러나 세부 사항을 정확하게 파악할 수 있다면, 이전보다 훨씬 더 큰 교육 세트에 갑자기 액세스할 수 있습니다. 학습 알고리듬에서 오류 분석을 수행하는 것은 데이터 과학을 사용하여 ML 시스템의 실수를 분석하는 것과 같다. 기본적으로 부품별 오류 분석은 어떤 구성 요소 성능이 개선해야 할 가장 큰 가치가 있는지 알려줍니다.

웹 사이트에서 물건을 구매하는 고객에 대한 데이터 세트가 있다고 가정해 보십시오. 데이터 과학자는 데이터를 분석하는 여러 가지 방법을 사용할 수 있습니다. 그녀는 웹 사이트가 가격을 올려야 하는지 여부, 다양한 마케팅 캠페인을 통해 획득한 고객의 평생 가치에 대해 많은 다른 결론을 도출할 수 있다. 데이터 세트를 “올바른” 방식으로 분석할 수 있는 방법은 없으며, 유용한 통찰력을 많이 얻을 수 있다. 마찬가지로 오류 분석을 수행할 수 있는 “올바른” 방법은 없습니다. 이 장을 통해 ML 시스템에 대한 유용한 통찰력을 도출하기 위한 가장 일반적인 설계 패턴을 많이 배웠지만, 오류를 분석하는 다른 방법들도 자유롭게 실험해 볼 수 있습니다.

자가운전 애플리케이션으로 돌아가 봅시다. 여기서 자동차 감지 알고리즘은 근처 자동차의 위치(그리고 아마도 속도)를 출력하고, 보행자 감지 알고리즘은 근처 보행자의 위치를 출력하며, 이 두 출력은 마침내 자동차의 경로를 계획하는 데 사용됩니다. 구성 요소 중 하나가 인간 수준의 성능과 거리가 먼 경우, 이제 해당 구성 요소의 성능을 개선하는 데 집중할 수 있는 좋은 사례가 있습니다.

많은 오류 분석 프로세스는 인간이 할 수 있는 작업을 자동화하려고 할 때 가장 잘 작동하며 따라서 인간 수준의 성능에 대해 벤치마킹할 수 있다. 앞의 예들 중 대부분은 이러한 암묵적인 가정을 가지고 있었다. 최종 출력물이나 중간 구성 요소 중 일부가 인간도 잘 할 수 없는 일을 하는 ML 시스템을 구축한다면, 이러한 절차 중 일부는 적용되지 않을 것이다. 이는 인간이 해결할 수 있는 문제에 대한 작업의 또 다른 이점입니다. 보다 강력한 오류 분석 도구가 있기 때문에 팀의 작업에 보다 효율적으로 우선순위를 부여할 수 있습니다.