모범 사례: 딥 러닝 신경망(네트워크) 교육하기

소개

딥 러닝 시스템 효능의 가장 중요한 결정 요인은 개발자들이 시스템을 교육하는 데 사용하는 데이터세트입니다. 고품질 교육 데이터세트는 인퍼런스의 정확성과 속도를 개선하는 동시에 시스템 리소스를 줄이고 러닝(배움) 프로세스를 가속화합니다.

If developers need to run deep learning inference on a system with highly limited resources, they can optimize the trained neural network accordingly and eliminate the need for a host system. Much smaller devices like the upcoming FLIR® Firefly® camera can run inference based on your deployed neural network on its integrated Movidius™ Myriad™ 2 processing unit.

This article describes how to develop a dataset for classifying and sorting images into categories, which is the best starting point for users new to deep learning.

 

교육 데이터는 얼마나 필요합니까?

 필요한 교육 데이터의 양은 다음 요인에 따라 달라집니다:

  1. 구분해야 하는 데이터 클래스의 수(예: "사과," "나뭇잎," "나뭇가지").
  2. 구분해야 하는 클래스 간의 유사성(예: "사과" vs. "배"는      "사과" vs. "나뭇잎"보다 더 복잡함).
  3. 각 클래스별 의도된 차이 (예: 다양한 색상과 모양의 사과로, 실제 적용 시나리오에서 발생할 수 있는 변동에 대한 견고성을 강화합니다.
  4. 이미지 데이터의 의도하지 않은 차이(예: 노이즈, 화이트 밸런스 차이, 밝기, 대비, 사물 크기, 시야각 등)

 

몇백 개의 이미지로 충분히 수용할 수 있는 결과를 산출할 수도 있으나, 더 복잡한 애플리케이션에는 수백만 개가 넘는 이미지가 필요할 수도 있습니다. 여러분의 교육 데이터 요구 사항을 판단하는 가장 좋은 방법은 데이터를 수집하고 여러분의 모델을 그 데이터로 테스트하는 것입니다. 여러분이 해결하고 있는 것과 같은   문제를 발견하는 것은 데이터세트 크기를 예측할 수 있는 좋은 시작점이 될 수 있습니다.

여러분의 네트워크는 결국 추가 데이터가 모델 정확도를 더 이상 개선할 수 없는 시점에 도달하게 될 것입니다. 여러분의 교육 데이터세트 크기에 상관 없이, 여러분의 모델이 100% 정확도를 달성할 가능성은 거의 없습니다. 여러분의 특정 애플리케이션이 요구하는 속도와 정확도의 밸런스를 이해하는 것은 추가 교육 데이터가 필요한지 아닌지를 판단할 수 있게 도울 것입니다.

 

 

검증 데이터로 테스트하기

여러분의 이미지 데이터세트는 교육된 대로 네트워크의 정확도와 속도를 평가하는 데 사용되는 검증 데이터를 제공할 수 있을 만큼 커야 합니다. 이러한 이미지들은 데이터세트에서 무작위로 선정되어 대표성을 최대한 유지할 수 있어야 합니다.

데이터세트 크기가 작거나, 충분한 시간 및 컴퓨터 전력이 구비된 경우, 인식 성능은 멀티 폴드 검증(다단계 검증)을 통해 결정될 수 있습니다. 여기서 데이터세트는 예로 5개의 랜덤한 부분으로 나뉘어집니다. 따라서 신경망은 4개 부분으로 교육되고 나머지 부분으로 검증됩니다. 이 교육과 검증 절차는 교육 및 검증 부분의 가능한 5가지 조합에서 모두 반복됩니다. 여기서 얻은 인식률의 중간값이 기대할 수 있는 성능을 나타냅니다. 또 표준 편차는 데이터세트의 대표성을 나타냅니다.

 

데이터세트 개선하기

딥 러닝은 반복적인 절차입니다. 네트워크는 교육 데이터에 대한 예측을 하며, 이는 네트워크 개선에 사용됩니다. 이 절차는 네트워크가 원하는 수준의 정확도를 달성할 때까지 계속됩니다. 데이터세트가 클 수록 대상 애플리케이션에서 발생할 수 있는 차이가 더 많이 딥 러닝 알고리즘에 제시됩니다. 아주 작은 데이터세트는 알고리즘이 제대로 작동하는 데 필요한 충분한 정보를 제공할 수 없습니다. 그 결과 교육 데이터에서는 좋은 인식 성과가 나타나지만 검증 데이터에 대한 유추 확률 정도밖에 되지 않는 인식률이 나타날 수 있습니다. 불필요한 변화를 최소화하면서 정확하게 라벨이 붙은 이미지를 만들어내는 잘 계획된 교육 데이터 획득 단계는 필요한 교육 데이터 양을 줄여주고, 교육을 더 빠르게 하며, 인퍼런스 정확도와 속도를 개선합니다.

 

교육 이미지 및 생산 이미지 간의 차이 최소화하기

미래의 생산 시스템과 같은 카메라, 광학 및 조명으로 이미지를 캡처하면 교육 이미지와 라이브 이미지 데이터 간의 지오메트리, 조도 및 분광 응답 간 차이를 보완 할 필요가 없습니다. Pregius® 센서, GenICam® 인터페이스, 그리고 풍부한 GPIO 기능성을 갖춘 고품질 카메라는 좋은 교육 데이터세트 획득 자동화를 더욱 더 쉽게 해 줍니다.

 

제어된 환경을 이용해 데이터세트 줄이기

 좋은 교육 데이터세트는 차이가 기대되는 부분에 대한 예제를 포함하고 시스템 디자인 상 차이를 없앨 수 있는 부분에서 차이를 최소화합니다. 예를 들어서 아직 나무에 달려 있는 사과를 검사하는 것은 컨베이어 벨트 위에 있는 똑같은 사과를 검사하는 것보다 훨씬 더 복잡합니다. 실외 시스템은 여러 가지 거리, 방향, 그리고 각도에서 사과를 인식할 수 있는 교육이 필요하며, 조명과 기후 변화를 감안할 수 있어야 합니다. 일관성 있는 성능을 보여주는 모델은 아주 큰 데이터세트를 필요로 합니다.

제어된 환경에서 사과의 사진을 찍는 것은 시스템 디자이너들이 차이의 여러 가지 근원을 제거하고 훨씬 작은 데이터세트를 사용해 고정밀 인퍼런스를 달성할 수 있게 합니다. 이러한 상황은 그에 따라 네트워크 크기를 줄이며 네트워크가 Intel Movidius Myriad 2를 사용한 FLIR Firefly와 같은 소형의 독립적 하드웨어에서 실행될 수 있게 합니다.

desc    

그림 1. 제어된 환경 아래에서 포착한 이미지(A)는 제어되지 않은 환경 아래에서 포착한 이미지(B)보다 이미지 간 차이가 덜합니다.

 

정확한 라벨이 붙은 데이터로 결과 개선하기

라벨은 교육 중의 예측을 테스트하는 데 사용됩니다. 라벨은 해당 라벨이 부착된 이미지를 대표해야 합니다. 정확하지 않거나 "시끄러운" 라벨은 인터넷 이미지 검색을 통해 수집된 데이터세트 간에 흔히 발생하는 문제입니다. 이미지 파일 이름에 라벨을 부착하는 것은 교육 데이터 관리 및 사용 중에 발생할 수 있는 혼란을 줄여주므로 좋은 아이디어입니다.

       

그림 2. "사과" 카테고리에 맞게 잘 선택된 (A) 이미지와 잘 선택되지 않은 (B) 이미지의 예제.분할을 위해 이미지에 라벨을 붙이는 것은 분류를 위해 이미지에 라벨을 붙이는 것보다 훨씬 더 복잡합니다.

그림. . 분할을 위해 이미지에 라벨을 붙이는 것은 분류를 위해 이미지에 라벨을 붙이는 것보다 훨씬 더 복잡합니다.

 

기존 데이터세트의 품질 및 수량 개선하기

데이터세트 확장

과일 검사에 사용되는 시스템과 같은 일부 시스템은 방향이 조정되지 않은 사물을 검사하게 됩니다. 데이터 확장은 이러한 시스템에서 아핀 및 사영적 변화를 사용하여 데이터세트를 빠르게 확장할 수 있는 유용한 방법입니다. 색상 변환은 또한 네트워크를 더 많은 종류의 이미지에 노출시킬 수 있습니다. 개발자들은 변화시킨 이미지를 크롭하여 신경망에 필요한 입력 치수를 유지해야 합니다.

그림. 5. 회전, 스케일링 및 자르기를 통한 변화의 예제.

개선된 정확도를 위한 정규화

데이터 정규화는 신경망 교육을 더 효율적으로 만들어 줍니다.  정규화된 이미지는 인간의 눈에는 부자연스러워 보이나, 더 정확한 신경망 교육에는 훨씬 더 효율적입니다. 개발자들은 픽셀과 수치를 동일한 방식으로 정규화할 수 있습니다.

          

그림 6. 기존 이미지 (A) vs. 일반적인 Y = (x - x.mean()) / x.std() 정규화 방식을 사용한 이미지

 

인조 데이터

인조 데이터는 데이터세트 확장 사용을 통해 생성할 수 없는, 많은 양의 교육 데이터를 필요로 하는 상황에서 강력한 도구가 되어줍니다. 인조 데이터는 인공적으로 생성된 이미지로, 이미 라벨이 붙었으며 완벽하게 분할된 많은 양의 데이터를 빠르게 생성하는 데 사용할 수 있습니다. 그러나 인조 데이터만으로는 정확한 실시간 결과를 불러오는 네트워크를 교육하는 데 충분하지 않습니다.  인조 데이터의 사실성을 향상하는 것은 포스트-프로세싱을 필요로 합니다.결론

고품질 교육 데이터세트는 인퍼런스의 정확성과 속도를 개선하는 동시에 시스템 자원을 줄이고 러닝(배움) 프로세스를 가속화합니다. 데이터세트의 수량과 품질을 모두 늘려주는 방법에는 몇 가지가 있습니다. FLIR Firefly 카메라는 시스템 사이즈를 최소화하고, 고정밀 인퍼런스와 교육 데이터세트를 획득하고, 신경망을 배치하고자 하는 디자이너들에게 아주 훌륭한 옵션입니다.

더 많은 정보는 www.flir.com/firefly에서 확인하시기 바랍니다.