머신 러닝 엔지니어의 학습 – 2 부 : 데이터 세트
1 부에서는 좋은 이미지 데이터를 수집하고 이미지 분류 프로젝트에 성공할 수있는 적절한 레이블을 할당하는 것의 중요성에 대해 논의했습니다. 또한 데이터의 수업과 하위 클래스에 대해 이야기했습니다. 이것들은 매우 간단한 개념처럼 보일지 모르지만 앞으로 견고한 이해를 얻는 것이 중요합니다. 따라서 그렇지 않은 경우 확인하십시오.
이제 다양한 데이터 세트를 구축하는 방법과 응용 프로그램에 적합한 기술을 논의 할 것입니다. 그런 다음 다음 부분에서는 단순한 정확도를 넘어 모델의 평가에 뛰어들 것입니다.
예제 Zoo Animals Image Classification 앱을 다시 사용하겠습니다.
데이터 세트
머신 러닝 엔지니어로서 우리는 모두 열차 검증 테스트 세트에 익숙하지만 파트 1에서 논의 된 하위 클래스의 개념을 포함시키고 아래에서 논의 된 개념에 통합하여 클래스 당 최소 및 최대 이미지 수를 설정하십시오. 믹스에 대한 무대와 합성 데이터뿐만 아니라 프로세스가 조금 더 복잡해집니다. 이 옵션을 처리하기 위해 사용자 정의 스크립트를 만들어야했습니다.
교육용 데이터를 분할하기 전에이 개념을 안내해 드리겠습니다.
- 이미지 컷오프 – 이미지가 너무 적고 모델 성능이 어려워집니다. 너무 많아서 당신은 가치보다 더 많은 시간을 훈련합니다.
- 신뢰 임계 값 – 모델은 예측에 얼마나 자신감이 있는지 나타냅니다. 이를 사용하여 사용자에게 결과를 제시 할시기를 결정하겠습니다.
- 벤치 마크 세트 -실제 데이터는 지저분하고 벤치 마크 세트는이를 반영해야합니다. 모델을 한계까지 늘리고 생산 준비가 언제인지 결정하는 데 도움이됩니다.
- 무대 및 합성 데이터 -실제 데이터는 왕이지만 때로는 자신의 것을 생산하거나 데이터를 생성해야합니다. 성능을 해치지 않도록주의하십시오.
- 중복 이미지 – 반복 데이터는 결과를 왜곡하고 잘못된 성능 감각을 줄 수 있습니다. 귀하의 데이터가 다양 할 수 있는지 확인하십시오.
- 데이터 세트 구축 -하위 클래스를 결합하고 컷오프를 적용하며 열차 검증 테스트 세트를 만듭니다. 이제 우리는 쇼를 시작할 준비가되었습니다.
이미지 컷오프
내 경험상 수업 당 최소 40 개의 이미지를 사용하면 하강 성능을 제공합니다. 테스트 세트 및 검증 세트에 각각 10%를 사용하기를 좋아하기 때문에 최소 4 개의 이미지가 교육 세트를 확인하는 데 사용되며, 이는 거의 적절하지 않습니다. 수업 당 40 개 미만의 이미지를 사용하면 모델 평가가 어려움을 겪는 경향이 있습니다.
다른 한편으로, 나는 수업 당 최대 약 125 개의 이미지를 설정했습니다. 나는 성과 이익이 이것을 넘어서 고원하는 경향이 있다는 것을 알았으므로 더 많은 데이터를 보유하면 훈련 실행 속도가 느려질 것입니다. 최대 값 이상을 갖는 것은 괜찮으며 이러한 “오버플로”는 테스트 세트에 추가 할 수 있으므로 낭비되지 않습니다.
훈련 된 모델을 생산으로 옮길 의도없이 최소 컷오프를 35로 떨어 뜨릴 때가 있습니다. 대신, 목적은이 던지기 모델을 활용하여 내 표지되지 않은 세트에서 더 많은 이미지를 찾는 것입니다. 이것은 파트 3에서 더 자세히 설명 할 기술입니다.
신뢰 임계 값
SoftMax 점수에 익숙 할 것입니다. 알림으로, SoftMax는 각 레이블에 할당 된 확률입니다. 나는 그것을 자신감 점수로 생각하고 싶고, 우리는 가장 높은 신뢰를받는 수업에 관심이 있습니다. SoftMax는 0과 1 사이의 값이지만 비율과 같이 0에서 100 사이의 신뢰 점수를 해석하는 것이 더 쉽다는 것을 알게됩니다.
모델이 예측에 충분히 자신감이 있는지 결정하기 위해 95의 임계 값을 선택했습니다. 사용자에게 결과를 제시할지 여부를 결정할 때이 임계 값을 사용합니다.
임계 값 이상의 점수는 옳은 변화의 더 나은 변화가 있으므로 결과를 자신있게 제공 할 수 있습니다. 임계 값 미만의 점수는 옳지 않을 수 있습니다. 실제로는 “범위 외”일 수 있습니다. 즉, 모델이 식별하는 방법을 모르는 것입니다. 따라서 잘못된 결과를 제시 할 위험을 감수하는 대신 사용자에게 다시 시도하고 “좋은”사진을 찍는 방법에 대한 제안을 제공하도록 자극합니다.
틀림없이 이것은 다소 임의의 컷오프이며, 사용 사례에 적합한 것을 결정해야합니다. 실제로이 점수는 각 훈련 된 모델에 대해 조정될 수 있지만 모델 전체의 성능을 비교하기가 더 어려워집니다.
나는이 신뢰 점수를 파트 3의 평가 섹션에서 자주 언급 할 것입니다.
벤치 마크 세트
내가 벤치 마크 세트를 부르는 것을 소개하겠습니다. 이는 연장 테스트 세트로 생각할 수 있습니다. 이들은 모델의 한계를 확장하고 특정 데이터 클래스에 대한 측정 값을 제공하도록 설계된 손으로 고른 이미지입니다. 이 벤치 마크를 사용하여 모델을 생산으로 옮기는 것을 정당화하고 관리자에게 보여줄 객관적인 측정을 정당화하십시오.
- 어려운 벤치 마크 – 이것은 교수가 퀴즈에 추가 할 수있는 보너스 질문과 같이“추가 크레딧”이미지입니다. 지상 진실과 비슷한 수업의 차이를 발견하려면 예리한 눈이 필요합니다. 예를 들어, 치타는 그늘에서 자고 있는데 면밀히 보지 않으면 표범으로 지나갈 수 있습니다.
- 범위 외 벤치 마크 – 이것은 “트릭 질문”이미지입니다. 우리의 모델은 동물원 동물에 대한 훈련을 받았지만 사람들은 규칙을 따르지 않는 것으로 알려져 있습니다. 예를 들어, 동물원 손님은 Cheetah Face Paint를 착용 한 아이의 사진을 찍습니다.
- 대부분의 공통 벤치 마크 – 이들은 거의 완벽한 점수와 제로 오류를 얻어야하는 “빵과 버터”클래스입니다. 이것은 프로덕션으로 이동하기위한 벤치 마크가 될 것입니다.
- 최소 공통 벤치 마크 – 이들은 다시 정확해야하지만 자신감 임계 값과 같은 최소 점수에 도달하는 “드문이지만 탁월한”클래스입니다.
벤치 마크에 추가 할 이미지를 찾을 때 배포 된 모델의 실제 이미지에서 찾을 수 있습니다. 파트 3의 평가를 참조하십시오.
각 벤치 마크에 대해 최소, 최대, 중앙값 및 평균 점수를 계산하고 신뢰 임계 값 위와 아래에 점수를 얻는 이미지 수를 계산하십시오. 이제 이러한 측정 값을 현재 생산중인 내용과 최소 요구 사항과 비교하여 새로운 모델이 생산 가치가 있는지 결정하는 데 도움이됩니다.
무대 또는 합성 데이터
아마도 감독 된 기계 학습 애플리케이션에 대한 가장 큰 장애물은 모델을 훈련시키기위한 데이터가있는 것입니다. 분명히, 응용 프로그램의 실제 사용자가 제공하는 “실제”데이터가 이상적입니다. 그러나 모델이 배포 될 때까지 실제로 수집 할 수 없습니다. 닭고기와 계란 문제.
시작하는 한 가지 방법은 자원 봉사자가 실제 사용자처럼 행동하려고 노력하면서 자원 봉사자가 당신을 위해“무대”이미지를 수집하도록하는 것입니다. 그래서 동물원 직원이 동물 사진을 찍도록합시다. 이것은 좋은 시작이지만,이 이미지에 일정 수준의 편향이 도입 될 것입니다. 예를 들어, 직원은 며칠에 걸쳐 사진을 찍을 수 있으므로 일년 내내 기상 조건을 얻지 못할 수 있습니다.
사진을 얻는 또 다른 방법은 컴퓨터로 생성 된 “합성”이미지를 사용하는 것입니다. 솔직히 말하면 모든 비용을 피할 것입니다. 내 경험을 바탕으로, 모델은 그들이 다르게 보이기 때문에 이것들과 어려움을 겪고 있습니다. 조명은 자연스럽지 않으며 피사체는 배경에 겹쳐져있을 수 있으므로 가장자리가 너무 날카 로워 보입니다. 모델의 신경 네트워크에이를 알 수 있으므로주의하십시오.

이 단계적 또는 합성 이미지를 처리하는 방식은 훈련 세트에 병합되는 하위 클래스입니다. ~ 후에 실제 이미지를 선호합니다. 단계별 이미지의 수를 60으로 캡처하므로 10 개의 실제 세계가 있으면 이제 50 개의 무대 만 있으면됩니다. 결국,이 단계와 합성 이미지는 완전히 단계적으로 폐지되며, 나는 전적으로 실제 세계에 의존합니다.
중복 이미지
이미지 세트에 들어갈 수있는 한 가지 문제는 중복 이미지입니다. 이것들은 정확한 사진 사본이거나 매우 유사 할 수 있습니다. 당신은 이것이 무해하다고 생각할 수도 있지만, 정확히 같은 코끼리의 100 장의 사진을 가지고 있다고 상상해보십시오. 모델은 코끼리의 다른 각도로 무엇을 해야하는지 알지 못할 것입니다.
자, 당신만이 있다고 가정 해 봅시다 둘 거의 같은 사진. 그렇게 나쁘지 않아요? 글쎄, 여기 그들에게 일어날 수있는 일이 있습니다.
- 두 사진 모두 훈련 세트에 들어갑니다. 모델은 반복 된 이미지에서 아무것도 배우지 않으며 시간을 처리하는 시간을 낭비합니다.
- 하나는 훈련 세트에 들어가고 다른 하나는 테스트 세트에 들어갑니다. 테스트 점수는 높지만 정확한 평가는 아닙니다.
- 둘 다 테스트 세트에 있습니다. 테스트 점수는 그보다 높거나 낮아집니다.
이들 중 어느 것도 당신의 모델에 도움이되지 않습니다.
중복을 찾는 방법에는 몇 가지가 있습니다. 내가 취한 접근법은 모든 그림에서 해밍 거리를 계산하고 매우 가까운 사진을 식별하는 것입니다. 중복을 표시하는 인터페이스가 있고 내가 가장 좋아하는 것을 결정하고 다른 사람을 제거합니다.
또 다른 방법 (아직 시도하지 않았습니다)은 이미지의 벡터 표현을 만드는 것입니다. 이 벡터 데이터베이스를 저장하면 거의 동일한 이미지를 찾기 위해 유사성 검색을 수행 할 수 있습니다.
어떤 방법을 사용하든 중복을 정리하는 것이 중요합니다.
데이터 세트 구축
이제 우리는 전통적인 교육, 검증 및 테스트 세트를 구축 할 준비가되었습니다. 이것은 내가 원하기 때문에 더 이상 간단한 작업이 아닙니다.
- 하위 클래스를 메인 클래스로 병합합니다.
- 단계별 또는 합성 이미지보다 실제 이미지를 우선시합니다.
- 수업 당 최소 이미지 수를 적용하십시오.
- 클래스 당 최대 수의 이미지 수를 적용하여 “오버플로”를 테스트 세트로 보냅니다.
이 프로세스는 다소 복잡하며 이미지 라이브러리를 관리하는 방법에 따라 다릅니다. 먼저 서브 클래스 폴더가있는 폴더 구조에 이미지를 유지하는 것이 좋습니다. 스크립트를 사용하여 단순히 폴더를 읽음으로써 이미지 수를 얻을 수 있습니다. 두 번째는 하위 클래스가 병합되는 방식의 구성을 유지하는 것입니다. 실제로 성공을 위해 자신을 설정하려면 이러한 이미지 수를 넣고 규칙을 데이터베이스에 병합하여 더 빠른 조회를 수행하십시오.
내 열차 검증 테스트 세트 분할은 보통 90–10–0입니다. 나는 원래 80–10–10을 사용하여 시작했지만 전체 데이터 세트를 깨끗하게 유지하는 데 부지런히 노력하면서 검증과 테스트 점수가 균등 해졌다는 것을 알았습니다. 이를 통해 교육 세트 크기를 늘리고 “오버플로”를 사용하여 벤치 마크 세트를 사용할 수있을뿐만 아니라 테스트 세트가되었습니다.
다음에…
이 부분에서는 서브 클래스를 병합하고 이미지 수 컷오프를 사용하여 데이터 세트를 구축했습니다. 또한 우리는 무대와 합성 데이터를 처리하고 중복 이미지를 정리합니다. 또한 벤치 마크 세트와 정의 된 신뢰 임계 값을 만들어 모델을 생산으로 이동시킬시기를 결정하는 데 도움이됩니다.
파트 3에서는 다양한 모델 성능을 어떻게 평가할 것인지에 대해 논의 할 것입니다. 그리고 마지막으로 우리는 실제 모델 교육과 정확도를 향상시키는 기술에 도달 할 것입니다.
출처 참조
Post Comment