AI / How To / 로봇|자동화 / 머신러닝|딥러닝 / 빅데이터 | 애널리틱스
도메인 전문가의 참여
여러 ML 시스템을 트레이닝 하려면, 트레이닝 데이터를 라벨 분류해야 한다. 적합한 라벨, 이러한 라벨에 적합한 표본(예제)을 사람이 판단해 결정한다.
지도형(Supervised) ML은 트레이닝 데이터를 올바르게 라벨 분류하는 것이 아주 중요하기 때문에, 조기에 분야 전문가를 참여시켜야 한다. 또한, 인과 관계 추론 모델 같은 새로운 ML 도구에 대한 전문 지식이 필요하다. 이 모델의 경우 원인과 결과에 해당되는 변수를 판단하기 위해 베이즈 추론 기법(Bayesian techniques)을 사용한다.
퀀텀블랙(QuantumBlack)의 샘 버튼 CTO는 “전통적인 모델은 인과율을 고려하지 않은 상태에서 상관 관계에 초점을 맞추는 경향이 있다. 따라서, 변수 간 관계는 파악할 수 있을지 모르지만, 서로 얼마나 영향을 주는지 정의하지 못한다”라고 설명했다.
즉 그럴듯한 가짜 상관 관계가 아주 많다. 가뭄 경감에 목적을 둔 인과 관계 추론 모델이 아닌 모델을 예로 들자. 아이스크림 매출 증가와 가뭄 악화 사이의 관계를 설명하는 모델이다. 그런데 이 모델은 가뭄을 없애기 위해 아이스크림 판매를 금지해야 한다는 결론에 도달할 수 있다. 도메인 전문가들은 이 모델에 ‘힌트’를 주고, 트레이닝 단계에서는 변수 간 상관관계에 대한 해석이 타당한지 확인할 수 있다.
도메인 전문가가 ML 전문가가 아닐 수도 있다. 버튼은 이런 점을 감안, 이들이 모델을 더 확실히 이해할 수 있는 시각화를 이용하는 것이 좋다고 말했다. 가령 인과 관계 모델 구축에 이용할 수 있는 오픈소스 캐주얼넥스(CausalNex) 툴킷으로 모델의 변수 간 관계를 보여주는 그래프를 만들 수 있다.
트레이닝과 검증을 위해, 데이터를 올바르게 분리
트레이닝만으로 제대로 동작하는 ML을 만들 수 없다. 믿을 수 있는 결과가 나올 정도로 트레이닝이 충분한지 확인하기 위해 시스템을 테스트 및 검증해야 한다. 예상보다 더 많은 트레이닝 데이터가 필요할 수도 있다. 테스트에 필요한 데이터를 충분히 확보하기 위해서이다.
가드너는 트레이닝과 테스트에 각각 70%와 30%를 사용하는 것이 좋다고 말했다. 그는 “정확도가 우수하다는 판단이 들때까지 트레이닝을 한 후, 정기적으로 통제 데이터 세트를 대상으로 테스트를 실시해야 한다”라고 설명했다.
또 일부 데이터를 검증용으로 놔둬야 한다. 조정을 해서, 모델이 데이터에 부합하는지 확인하고, 모델이 트레이닝 데이터를 넘어서는 새로운 상황을 다루지 못할 정도로 과적합(OverFit) 상태가 되지 않도록 만드는 단계이다.
라이온브릿지(Lionbridge)의 AI 제품 솔루션 담당 VP인 아리스토텔리스 코스토풀로스는 각각 60-80%의 데이터를 트레이닝에 10-20%의 데이터를 트레이닝 및 검증에 사용하는 것이 좋다고 말했다. 그는 “검증 세트를 하이퍼패러미터 실행에 사용, 뉴런과 계층의 수, 학습 속도 같은 것들을 좁혀 파악해야 한다”라고 설명했다.
합성(인위적) 데이터 사용
트레이닝 데이터가 충분하지 않거나, 데이터 캡처 부담이 큰 이유 등으로 다양한 데이터를 충분히 수집하는 것이 불가능한 경우 합성(Synthetic) 데이터를 사용할 수 있다. 여러 예제로 도출되도록 보유한 데이터를 변환하는 방법(스노우 레오파드 트러스트는 눈표범의 방향과 상관 없이 눈표범을 포착하는 이미지 인식 기능을 트레이닝 시키기 위해 눈표범 이미지를 뒤집어 사용), 완전히 새로운 미가공 데이터를 생성하는 방법을 사용할 수 있다.
마이크로소프트는 키넥트 카메라 트레이닝에 필요한 다양한 포즈의 데이터를 확보해야 했다. 그런데 이 것이 가능할 정도로 (체형과 체격이 각기 다른)사람들에 대한 모션 캡처를 충분히 확보할 수 없었다. 이에 다양한 ‘심도(Depth)’ 포즈를 가진 이미지 수백 만 개를 합성했다.
코스토풀로스는 “합성 데이터는 실제 데이터가 없을 때 유용하다. 아주 좋은 품질의 데이터 세트를 만들 수 있다. 이미지 회전 등의 기법을 이용할 수도 있다. 그러나 편향이 발생하지 않도록 각별히 주의를 기울여야 한다”라고 충고했다.
선택한 ML 기법이 트레이닝에 필요한 데이터의 양에 영향을 준다. 따라서 데이터 세트의 크기가 작다면, 주석을 단 작은 데이터 세트를 이용할 수 있는 준-지도 액티브(Semi-supervised active) 학습을 선택한다.
데이터 세트와 ML 모델에 버전 적용
다시 트레이닝을 해야 할 가능성이 큰 모델이라면 지속적으로 재평가해야 한다. 가드너는 “모델을 트레이닝시켜 특정한 정확도에 도달했을 때 트레이닝을 끝낼 수 있는 사례들이 일부 존재한다. 그러나 많은 경우, 새로운 데이터를 가져와 모델을 다시 트레이닝 시켜 정확도를 조금 더 높여야 한다”라고 말했다.
ML 모델을 이해하고, 그 기능을 설명하기 위해서는 다양한 세트를 테스트 및 검증할 수 있어야 한다. 즉, ML 파이프라인의 재생산과 감사가 가능해지도록 만들어야 한다. 모델을 다시 훈련, 다시 테스트, 다시 배포시키기 위한 새로운 데이터를 효과적으로 가져오기 위해서는, 쿠베플로우(Kubeflow) 같은 도구를 사용하는 효과적이며, 일정 부분 자동화된 MLOps 프로세스가 필요하다.
다양한 트레이닝 세트를 프로버넌스 같은 디테일을 유지하면서 지속적으로 추적하는데 중요한 역할을 하는 것이 데이터 클리닝, 변환, 검증이다. 여기에 스프레드시트를 이용할 수 있다. 주피터 노트북을 이용하거나, 데이터 세트용으로 표준화된 데이터시트를 도입해 이용할 수 있다.
쿠베플로우를 공동 창업했으며, 지금은 마이크로소프트의 오픈소스 ML 전략 책임자로 일하고 있는 데이빗 애론칙에 따르면, 데이터세트와 트레이닝 메타 데이터는 나중에 ML 결과를 설명할 때 아주 중요한 역할을 한다. 그는 다음과 같이 설명했다.
“모델을 설명하고 싶을 수 있다. 편향이나 완전히 다른 데이터에 대해 테스트를 하고 싶을 수 있다. 또는 다시 트레이닝을 하지 않고, 제기능을 하는지 확인하기 위해 실제 프로덕션 데이터에 대해 테스트를 하고 싶을 수 있다. 이런 설명 용이성, 설명 가능성을 결정하는 것이 트레이닝에 관한 메타데이터이다. 데이터를 트레이닝한 방법, 제외시킨 이상치, 통계에서 ‘역사적’인 이유로 무시한 특정 모집단 등을 알아야 한다. 단순히 트레이닝 했는지 여부, 모집단을 분석했는지 여부도 알아야 한다.”