AutoML Vision 초보자 가이드

소개

도시에서 일관성 있는 건축 스타일을 가진 지역을 파악하려고 하는 건축물 보존 위원회에서 일한다고 가정해 보겠습니다. 수십만 개에 달하는 주택 사진을 살펴볼 수 있지만, 이 많은 이미지를 수동으로 분류하려면 오랜 시간이 걸리고 오류가 발생하기 쉽습니다. 몇 달 전에 인턴 직원이 수백 개의 사진에 라벨을 붙였지만 그 후로 아무도 여기에 손댄 적이 없습니다. 컴퓨터가 이 일을 대신 하도록 가르칠 수 있다면 아주 유용할 것입니다.

4가지 유형의 건축 스타일에 대한 예시 이미지

머신러닝(ML)이 왜 이 문제에 적합한 도구일까요?

프로그래밍 표현 이미지 고전적인 프로그래밍에서는 컴퓨터가 수행해야 할 단계별 지침을 프로그래머가 지정해야 합니다. 이 방식은 광범위한 문제를 해결하는 데 효과적이지만, 주택을 원하는 방식으로 분류하는 작업은 처리할 수 없습니다. 구성, 색상, 각도, 스타일 세부정보에 수많은 변형이 존재하므로, 특정한 주택의 사진이 크래프트맨 스타일인지 모던 스타일인지 판단하는 방법을 컴퓨터에 알려주는 단계별 규칙 세트를 고안하기가 어렵습니다. 어디부터 시작해야 할지 생각하는 것조차 어렵습니다. 다행히 이러한 문제를 해결하는 데 머신러닝 시스템이 아주 유용합니다.

Vision API 또는 AutoML 중에서 무엇이 적합한 도구일까요?

Vision API는 이미지를 수천 개의 사전 정의된 카테고리로 분류하고 이미지 안의 개별 객체와 얼굴을 감지하며 이미지에서 인쇄된 단어를 찾아서 판독합니다. 데이터세트에서 개별 객체, 얼굴, 텍스트를 감지하려는 경우 또는 이미지 분류 요구사항이 아주 일반적인 경우 Vision API를 사용해 보고 적합한지 확인하세요. 하지만 그 대신 고유한 라벨을 사용하여 이미지를 분류해야 하는 사용 사례에서는 커스텀 분류 기준을 이용하여 특정한 요구사항에 적합한지 확인해보는 것이 좋습니다.

일반적인 Cloud Vision API 라벨과 AutoML 커스텀 라벨의 이미지

Vision API 사용해 보기AutoML 시작하기

AutoML에서 머신러닝은 어떤 역할을 하나요?

간단한 신경망의 그래픽 표현 머신러닝은 데이터를 사용해 알고리즘을 학습하고 원하는 결과를 얻는 것입니다. 세부적인 알고리즘과 학습 방법은 사용 사례에 따라 달라집니다. 머신러닝에는 여러 하위 카테고리가 있으며 각 하위 카테고리는 서로 다른 문제를 해결하고 서로 다른 제약조건하에서 작동합니다. AutoML Vision을 사용하면 지도 학습을 통해 라벨이 지정된 데이터의 패턴을 인식하도록 컴퓨터를 학습시킬 수 있습니다. 지도 학습을 이용하여 이미지에서 중요한 패턴과 콘텐츠를 인식하도록 모델을 학습시킬 수 있습니다.

데이터 준비

AutoML Vision으로 커스텀 모델을 학습시키려면 분류할 이미지(입력) 유형의 라벨이 지정된 예시와 ML 시스템을 통해 예측할 카테고리 또는 라벨(답변)을 제공해야 합니다.

사용 사례 평가

시작 및 종료 지점 그래픽

데이터세트를 구성할 때는 항상 사용 사례로 시작해야 합니다. 다음과 같은 질문으로 시작할 수 있습니다.

  • 달성하려는 결과가 무엇인가요?
  • 이 결과를 달성하기 위해 인식해야 하는 카테고리의 유형은 무엇인가요?
  • 인간도 그러한 카테고리를 인식할 수 있나요? AutoML Vision은 인간이 한 번에 기억하고 지정할 수 있는 것보다 훨씬 큰 규모의 카테고리를 처리할 수 있지만, 인간이 인식할 수 없는 카테고리라면 AutoML Vision도 마찬가지로 어려움을 겪습니다.
  • 시스템이 분류할 데이터의 유형과 범위를 가장 잘 보여주는 예시는 무엇인가요?

Google의 ML 제품을 뒷받침하는 핵심 원칙은 인간 중심의 머신러닝이며, 공정성을 포함하여 책임감 있는 AI 방침을 특히 중시하는 접근법입니다. ML에서 공정성의 목표는 알고리즘 시스템이나 알고리즘을 기초로 한 의사 결정 과정에서 인종, 소득, 성적 지향, 종교, 성별, 그리고 역사적으로 차별 및 소외와 연관된 기타 특성과 관련하여 사람들을 부당하거나 불리하게 대우하는 일이 나타날 경우, 이를 파악하고 이러한 일을 방지하는 것입니다. 자세한 내용은 가이드와 아래 가이드라인에 나와있는 '공정성 인식(fair-aware)' 주석 에서 확인하실 수 있습니다. 가이드라인을 따라 데이터세트를 구성하면서 사용 사례와 관련하여 머신러닝의 공정성을 고려하시기 바랍니다.

데이터 소싱

데이터 포인트 그래픽 필요한 데이터가 무엇인지 파악했으면 데이터를 구할 방법을 찾아야 합니다. 먼저 조직에서 수집하는 모든 데이터를 살펴보는 것으로 시작할 수 있습니다. 이렇게 하면 모델 학습에 필요한 데이터를 이미 수집하고 있었다는 것을 알게 될 수도 있습니다. 필요한 데이터를 가지고 있지 않으면 직접 가져오거나 타사 제공업체로 아웃소싱할 수 있습니다.

라벨이 지정된 예시를 각 카테고리에 충분히 포함시키기

모델 학습 그래픽 AutoML Vision 학습에 필요한 최소 요구사항은 카테고리/라벨당 100개의 이미지 예시입니다. 라벨을 제대로 인식할 가능성은 고품질 예시의 수가 많을수록 증가합니다. 일반적으로 학습 프로세스에 라벨이 지정된 데이터가 많이 제공될수록 모델이 향상됩니다. 라벨당 1,000개 이상의 예시를 목표로 하세요.

카테고리별로 예시를 균등하게 배분하기

각 카테고리에 대체로 비슷한 개수의 학습 예시를 수집하는 것이 중요합니다. 한 라벨에 많은 양의 데이터가 있더라도 각 라벨에 균등하게 배분하는 것이 가장 좋습니다. 그 이유를 알아보기 위해 모델을 만드는 데 사용하는 이미지의 80%가 현대적 스타일의 단독 주택 사진이라고 가정하겠습니다. 이렇게 라벨이 불균형하게 분포되어 있으면 모델은 훨씬 덜 일반적인 라벨을 예측하는 위험을 감수하는 대신 사진이 항상 현대적인 단독 주택이라고 답하는 것이 안전하다고 학습할 가능성이 높습니다. 이는 거의 모든 정답이 'C'인 객관식 시험을 보는 것과 같습니다. 예리한 응시자는 곧 문제를 보지 않고도 매번 'C'라고 답하면 된다는 점을 알아차립니다.

4가지 유형의 건축에 대한 학습 이미지 사진

각 라벨에 거의 동일한 수의 예시를 제공할 수 없는 경우도 있습니다. 일부 카테고리에서는 고품질의 비편향적인 예시를 제공하기가 더 어려울 수 있습니다. 이러한 경우에는 예시가 가장 적은 라벨의 예시 수가 예시가 가장 많은 라벨의 예시 수의 10% 이상이어야 한다는 일반적인 원칙을 따르세요. 따라서 예시가 가장 많은 라벨의 예시가 10,000개라면 예시가 가장 적은 라벨의 예시는 최소 1,000개여야 합니다.

문제 공간의 다양성 포착

비슷한 이유로 데이터가 문제 공간의 다양성과 상이성을 포착하도록 해야 합니다. 모델 학습 과정에서 더 광범위한 예시를 접할수록 새로운 예시를 더 쉽게 일반화할 수 있게 됩니다. 예를 들어 소비자 전자제품 사진을 카테고리로 분류하려는 경우, 모델이 학습 과정에서 더 다양한 소비자 전자제품에 노출될수록 태블릿, 휴대전화, 노트북의 새로운 모델을 이전에 접해본 적이 없어도 더 잘 구분할 가능성이 높아집니다.

다양한 소비자 전자제품 그래픽

데이터를 모델에 의도된 출력과 매칭

예상 출력 이미지와 일치하는 학습 이미지

예측을 수행할 이미지와 시각적으로 비슷한 이미지를 찾으세요. 눈덮인 겨울에 촬영한 집의 이미지를 분류하려는 경우, 화창한 날씨에 촬영한 집의 이미지로만 학습한 모델에서는 만족스러운 결과를 얻을 수 없습니다. 화창한 날씨의 이미지에 원하는 클래스의 태그를 지정했더라도 조명과 배경이 결과에 영향을 미칠 만큼 다르기 때문입니다. 학습 예시는 모델을 사용하여 분류하려는 데이터세트에서 실제 데이터를 그대로 가져오는 것이 가장 좋습니다.

커스텀 모델 생성 시 AutoML Vision에서 데이터 세트를 사용하는 방법 고려

데이터세트에는 학습, 검증, 테스트 세트가 있습니다. 분할 비율을 지정하지 않으면(데이터 준비 참조) AutoML Vision에서 자동으로 이미지의 80%를 학습에, 10%를 검증에, 10%를 테스트에 사용합니다.

학습, 테스트, 검증 분할의 그래픽 표현

학습 세트

쌍안경 그래픽 데이터의 대부분은 학습 세트에 있어야 합니다. 이러한 데이터는 모델이 학습 중에 '보는' 데이터이며 모델의 매개변수, 즉 신경망 노드 간의 연결 가중치를 학습하는 데 사용됩니다.

검증 세트

청사진 그래픽 '개발' 세트라고도 하는 검증 세트가 학습 프로세스에 사용됩니다. 모델 학습 프레임워크는 학습 프로세스가 반복될 때마다 학습 데이터를 반영한 후, 검증 세트에 대한 모델의 성능을 사용하여 모델의 초매개변수, 즉 모델의 구조를 지정하는 변수를 조정합니다. 학습 세트를 사용하여 초매개변수를 조정하려고 시도하면 모델이 학습 데이터에 지나치게 집중하고, 정확하게 일치하지 않는 예시를 일반화하는 데 어려움을 겪을 가능성이 높습니다. 모델 구조를 세부 조정할 때 어느 정도 새로운 데이터세트를 사용하면 모델이 일반화를 더 잘하게 됩니다.

테스트 세트

플라스크 비커 이미지 테스트 세트는 학습 프로세스에 전혀 관여하지 않습니다. 모델이 학습을 모두 완료하면 테스트 세트를 모델을 위한 완전히 새로운 도전과제로 사용합니다. 테스트 세트에서 측정된 모델 성능을 통해 모델이 실제 데이터에서 어떤 성능을 보일지 가늠할 수 있습니다.

수동 분할

시험관 그래픽 데이터세트를 직접 분할할 수도 있습니다. 데이터 수동 분할은 프로세스를 더욱 세분화하여 제어해야 하는 경우 또는 모델 학습 주기의 특정 부분에 포함하려는 특정 예시가 있는 경우 적절한 선택입니다.

 

가져올 데이터 준비하기

데이터의 수동 또는 자동 분할 중에서 적합한 방식을 결정한 후에는 다음의 세 가지 방법 중 하나로 AutoML Vision에 데이터를 추가할 수 있습니다.

  • 라벨에 해당하는 폴더에 분류되고 저장된 이미지를 사용하여 데이터를 가져올 수 있습니다.
  • Google Cloud Storage에서 데이터를 인라인 라벨이 있는 CSV 형식으로 가져올 수 있습니다. 자세한 내용은 문서 사이트를 방문하세요.
  • 데이터에 아직 라벨이 지정되지 않았으면 라벨이 지정되지 않은 이미지 예제를 업로드하고 AutoML Vision UI를 사용하여 라벨을 각 예제에 적용할 수도 있습니다.

평가

모델 학습이 끝나면 모델 성능에 대한 요약을 받습니다. '평가' 또는 '전체 평가 보기'를 클릭하여 자세한 분석을 보세요.

모델을 평가하기 전에 기억해야 할 사항은 무엇인가요?

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

AutoML Vision에서 어떤 종류의 분석을 수행할 수 있나요?

AutoML Vision 평가 섹션에서 테스트 예시에 대한 모델의 출력과 일반적인 머신러닝 측정항목을 사용하여 커스텀 모델의 성능을 평가할 수 있습니다. 이 섹션에서는 각 개념의 의미를 설명합니다.

  1. 모델 출력
  2. 점수 임계값
  3. 참양성, 참음성, 거짓양성, 거짓음성
  4. 정밀도와 재현율
  5. 정밀도/재현율 곡선
  6. 평균 정밀도

모델 출력은 어떻게 해석하나요?

AutoML Vision은 테스트 데이터의 예시를 가져와서 모델에 완전히 새로운 과제를 제시합니다. 각 예시에서 모델은 각 라벨이 해당 예시와 얼마나 강한 연관성이 있는지 나타내는 일련의 숫자를 출력합니다. 출력된 숫자가 높을수록 해당 라벨이 문서에 적용되어야 하는 것으로 모델이 확신한다는 뜻입니다.

예측 값의 예시가 있는 이미지

점수 임곗값이란 무엇인가요?

점수 임곗값을 설정하여 이러한 확률을 'on'/'off'라는 이진값으로 변환할 수 있습니다. 점수 임곗값은 테스트 항목에 카테고리를 지정하기 위해 모델이 가져야 하는 신뢰도 수준을 의미합니다. UI에 있는 점수 임곗값 슬라이더는 데이터세트의 모든 카테고리와 개별 카테고리에서 다양한 임곗값의 영향을 테스트하기 위한 시각적 도구입니다. 점수 임곗값이 낮으면 모델이 더 많은 이미지를 분류하지만 프로세스에서 일부 이미지를 잘못 분류할 위험이 있습니다. 점수 임곗값이 높으면 모델이 분류하는 이미지 수는 적지만 이미지를 잘못 분류할 위험이 더 낮아집니다. UI에서 카테고리별로 임곗값을 조정하면서 시험해볼 수 있습니다. 하지만 프로덕션에서 모델을 사용할 때는 자신이 최적이라고 판단한 임곗값을 적용해야 합니다.

높은 임곗값 및 적게 분류된 이미지와 낮은 임곗값 및 많이 분류된 이미지를 나타내는 이미지

참양성, 참음성, 거짓 양성, 거짓 음성이란 무엇인가요?

점수 임곗값을 적용한 후에 모델에서 실행한 예측 결과는 다음 네 가지 카테고리 중 하나에 해당합니다.

4개의 신뢰도 카테고리 설명이 있는 이미지

이러한 카테고리를 사용해 모델의 효과를 평가할 수 있는 측정항목인 정밀도와 재현율을 계산할 수 있습니다.

정밀도와 재현율이란 무엇인가요?

정밀도와 재현율은 모델이 정보를 얼마나 잘 포착하고 있는지와 정보를 얼마나 놓치고 있는지를 이해하는 데 도움을 줍니다. 정밀도는 라벨이 지정된 전체 테스트 예시 중에서 실제로 해당 라벨로 카테고리가 지정되어야 했던 예시가 몇 개인지를 알려줍니다. 재현율은 라벨이 지정되어야 했던 전체 테스트 예시 중에서 실제로 해당 라벨이 지정된 예시가 몇 개인지를 알려줍니다.

높은 정밀도, 낮은 재현율 이미지

높은 재현율, 낮은 정밀도 이미지

정밀도나 재현율 중에서 무엇을 기준으로 최적화해야 하나요?

정밀도나 재현율 중에서 무엇을 기준으로 최적화할지는 사용 사례에 따라 달라집니다. 이러한 결정을 내리는 방법을 다음 두 가지 사용 사례를 통해 알아봅니다.

사용 사례: 이미지의 개인정보 보호

예를 들어 민감한 정보를 자동으로 감지하여 흐리게 처리하는 시스템을 만든다고 가정해 보겠습니다.

흐리게 처리된 날짜 그래픽

이 경우 거짓 양성은 흐리게 처리될 필요가 없는 대상이 흐리게 처리되는 것으로, 성가시기는 하지만 문제가 되지는 않습니다.

신용카드 번호 그래픽

이 경우 거짓음성은 신용카드와 같이 흐리게 처리되어야 하는 대상이 흐리게 처리되지 않는 것으로, 신원 도용으로 이어질 수 있습니다.

이러한 경우 재현율을 기준으로 최적화하는 것이 좋습니다. 이 측정항목은 예측 전체에서 얼마나 누락되었는지를 측정합니다. 고재현율 모델은 관련성이 적은 예시에 라벨을 지정할 가능성이 높으므로 카테고리에 학습 데이터가 별로 없는 경우에 유용합니다.

특정 키워드에 가장 적합한 스톡 사진을 검색하는 시스템을 만들려는 경우를 가정해 보겠습니다.

기타 검색과 일치하는 기타 이미지

이 경우 거짓 양성은 관련이 없는 이미지를 반환하는 것입니다. 가장 일치하는 이미지만 반환하는 제품을 만들려고 하므로 이는 심각한 오류입니다.

기타 검색과 일치하는 관련 없는 이미지

이 경우 거짓음성은 키워드 검색과 관련 있는 이미지를 반환하지 못하는 것입니다. 일치 가능성이 높은 사진이 수천 장에 달하는 검색어가 많으므로, 이러한 문제는 괜찮습니다.

이 경우에는 정밀도를 기준으로 최적화하는 것이 좋습니다. 이 측정항목은 예측이 전체적으로 얼마나 정확한지를 측정합니다. 고정밀도 모델은 가장 관련성이 높은 예시만 라벨을 지정할 가능성이 높으므로, 해당 클래스가 학습 데이터에서 일반적인 경우에 유용합니다.

혼동 행렬은 어떻게 사용하나요?

혼동 행렬을 사용하여 각 라벨에서 모델의 성능을 비교할 수 있습니다. 이상적인 모델에서는 대각선상의 모든 값이 높고 다른 모든 값이 낮습니다. 이는 원하는 카테고리가 정확하게 식별되었음을 나타냅니다. 다른 값이 높으면 모델이 테스트 이미지를 어떻게 잘못 분류하고 있는지를 알 수 있습니다.

혼동 행렬을 설명하는 이미지

정밀도-재현율 곡선은 어떻게 해석하나요?

여러 정밀도-재현율 곡선의 이미지

점수 임곗값 도구를 사용하면 선택한 점수 임곗값이 정밀도와 재현율에 어떤 영향을 주는지 살펴볼 수 있습니다. 점수 임계값 표시줄의 슬라이더를 드래그하면 임계값에 따라 변하는 정밀도-재현율 절충 곡선 상의 위치뿐만 아니라 임계값이 정밀도와 재현율에 개별적으로 미치는 영향을 확인할 수 있습니다. 다중 클래스 모델의 경우, 이 그래프의 정밀도와 재현율은 반환되는 라벨 집합에서 점수가 가장 높은 라벨이 정밀도 및 재현율 측정항목 계산에 유일하게 사용되는 라벨임을 말해 줍니다. 이렇게 하면 거짓양성과 거짓음성의 균형을 잘 찾을 수 있습니다.

모델 전체에 적용할 수 있는 임계값을 선택한 후 각 라벨을 클릭하여 해당 임계값이 라벨별 정밀도-재현율 곡선에서 어느 위치에 있는지 확인할 수 있습니다. 몇몇 라벨에만 잘못된 예측을 많이 하도록 임계값이 정해지는 경우가 있습니다. 이럴 때 라벨별로 곡선을 보면 이런 라벨에 맞춰 클래스별 임계값을 선택하는 데 도움이 될 수 있습니다. 예를 들어 주택 데이터세트에서 임계값 0.5가 모든 이미지 유형에 대해 적정한 정밀도와 재현율을 나타내며 예외적으로 '튜더'는 아주 일반적인 카테고리이기 때문에 그렇지 않다고 가정해 보겠습니다. 이 카테고리에 거짓양성이 매우 많습니다. 이 경우 예측을 위한 분류 기준을 호출할 때 '튜더' 카테고리에만 임계값 0.8을 사용할 수 있습니다.

평균 정밀도란 무엇인가요?

모델 정확도를 측정하는 유용한 항목은 정밀도-재현율 곡선 아래에 있는 면적으로, 점수 임계값 전체에 대비한 모델 성능을 나타냅니다. AutoML Vision에서는 이러한 측정항목을 평균 정밀도라고 합니다. 이 점수가 1.0에 가까울수록 테스트 세트에 대한 모델의 성능이 높습니다. 각 라벨에 대해 무작위로 추측하는 모델의 평균 정밀도는 약 0.5 수준입니다.

모델 테스트

전구 그래픽 AutoML Vision은 모델을 테스트하는 데 자동으로 데이터의 10%(또는 수동 데이터 분할을 선택한 경우에는 사용자가 선택한 비율)를 사용하며, 이 테스트 데이터에 대한 모델의 결과는 '평가' 페이지에 나타납니다. 하지만 모델의 신뢰도를 확인하려면 여러 가지 방법으로 확인할 수 있습니다. 가장 쉬운 방법은 '예측' 페이지에 몇 개의 이미지를 업로드하고 모델이 예시에 선택하는 라벨을 살펴보는 것입니다. 그 결과가 예상과 같기를 바랍니다. 받을 것으로 예상되는 이미지의 각 유형별로 몇 가지 예시를 시도해 보세요.

자동화된 자체 테스트에서 모델을 사용하려는 경우에는 '예측' 페이지에 프로그래매틱 방식으로 모델을 호출하는 방법도 표시됩니다.