인공지능 정부과제의 문제점
몇년 전 정부 AI과제 수행중 중간평가 심사를 받을때 일어났던 일이다.
과제 심사위원님들이 딥러닝에서 데이타가 점점 더 중요해지고있다는 소리를 어서 들었는지, 학습에 사용된 클래스별 데이타의 원래 수량과 각각의 오그먼테이션(Augmentation, 데이타 증강) 방식별 수량을 테이블로 정리해서 알려달라고 요구하였다.
하지만 데이타 전처리 타임이 아닌 학습 타임(train time)에 오그먼테이션을 하기 때문에 수량을 산정하기가 어려웠다.
다시 말하면 학습타임에 확률적으로 오그먼테이션된 이미지를 메모리에서 임시로 발생시켜서 모델에 입력하고 바로 지워버리는 방식으로 반복적으로 진행하기때문에 정확한 오그먼테이션 이미지 수량을 집계하는 게 어려운 것이다.
이는 마치 양자역학에서 중첩상태를 설명할때 등장하는 "쉬뢰딩거의 고양이" 현상과 매우 닮아있다.
즉, 상자를 열기전에는 고양이가 죽어있는지 살아있는지의 상태가 중첩되어있어 알수 없고 상자를 연 후에야 비로소 상태가 결정된다는 신기방기한 양자역학적 현상 중 하나를 말한다.
그런데, 딥러닝의 학습타임 오그먼테이션 에서도 비슷한 현상이 발생한다.
양자역학에서 상자를 여는것처럼 매 에포크(epoch)마다 메모리를 열어서 저장된 이미지가 어떻게 오그먼테이션 됬는지를 들여다 보기 전에는 오그먼테이션이 최종적으로 어떻게 수행되었는지 카운트 하는게 매우 어려우며, 그렇게 했다가는 학습진행이 안될정도로 컴퓨터가 느려지게된다.
특히나 위 코드처럼 여러단계의 오그먼테이션 처리들이 다 다른확률로 발생되어 중첩되기 때문에 최종적인 오그먼테이션의 형태는 예측 및 집계하기가 거의 불가능에 가깝다.
따라서 학습타임 오그먼테이션이 이루어지는 딥러닝 프로젝트에다가 오그먼테이션 별 데이타 수량을 알려달라고 요청하는것은 좀 무지의 소치라고 생각되는데...
여러분들 생각응 어떤지 궁금하다.