데이터 준비에서 HW 선택까지··· '머신러닝 트레이닝' 안내서

CIO
머신러닝(ML)을 제대로 활용하기 위한 기본 전제는 모델을 적절히 훈련시키는 것이다. 데이터로부터 신뢰할 만한 결과를 도출해내는데 참고할 만한 12가지 조언을 정리했다. 
 
Image Credit : Getty Images Bank


ML은 오늘날 가장 실용적인 AI 응용 기술이라고 말할 수 있다. ML시스템은 명시적인 프로그래밍 없이, 데이터에 알고리즘을 적용해 인사이트를 도출한다. 즉, 데이터를 활용해 질문에 답을 찾아낼 수 있다. 오늘날 많은 기업들이 고객 구매 패턴에서 유지보수 및 관리에 대한 예측까지 다양한 문제에 ML을 적용해 활용하고 있다.

그러나 ML 시스템이 질문에 제대로 대답하기 위해서는 데이터와 결과에 대한 트레이닝이 실시되어야 한다. 여기에는 이유가 있다. ML 시스템은 질문에 대답을 할 때 사용할 데이터와 같은 종류의 데이터를 ‘체험’하는 방법을 통해 데이터에서 예측을 할 수 있는 능력을 키울 수 있기 때문이다.

이를테면 구성요소에 장애가 발생할지 여부를 예측하는 경우, 먼저 기능을 하는 구성요소와 장애가 발생한 구성요소 모두에서 센서 판독 데이터를 수집 공급하는 방법으로 ML 시스템을 트레이닝해야 한다.

지루한 단계이지만, ML을 정확히 구현하는데 아주 중요한 단계이다. 이 단계가 잘못되면, 시스템이 원하는 결과를 만들어내지 못한다. ML을 트레이닝 하면서 자주 저지르는 실수들이 있다. 또 ML 시스템을 배포하기 훨씬 전에 내려야 할 결정들이 있다. 이를 나중에 다루려 할 경우 대가를 치를 수 있다. 머신러닝을 훈련시킬 때 알아야 할 사항들을 정리했다. 

데이터 품질 확보
일단 데이터가 제대로 준비해야 ML 시스템 트레이닝을 시작할 수 있다. 인텔 AI 제품 그룹의 세일즈 강화 디렉터인 에릭 가드너는 “데이터를 올바르게 준비하는데 많은 시간이 소요되지만, 이 부분이 간과되는 경우가 많다. 현대적인 데이터 인프라 구축, 수집 및 생성할 데이터 파악, 클린업에 많은 시간이 소요될 수 있다”라고 말했다.

여기에는 중복 데이터, 손상 데이터, 누락 데이터 문제를 해결, 시스템에 품질이 좋고 목적에 부합하는 데이터를 공급하도록 만드는 시도 등이 해당된다.

마이크로소프트 AI 플랫폼 CVP(Corporate Vice President)인 에릭 보이드는 “시작하기 전, CIO와 IT 리더들은 해결할 비즈니스 문제를 결정하기 위해 비즈니스 이해관계자를 조기에 참여시켜야 한다”라고 강조했다. 이렇게 해야, 데이터 사이언티스트가 적합하게 실험을 설계하고, 이 실험에 필요한 데이터에 집중할 수 있다.

그는 “반대 방향으로 접근하는 경우, 즉, 많은 데이터에서 시작해 ML을 적용했을 때의 새로운 인사이트가 무엇인지 보는 경우에는 가시적인 성과를 얻기 힘들다. 중요한 것은 ‘빅데이터’가 아닌 ‘올바른 종류의 데이터’이다”라고 강조했다.

잠재적인 편향에 대해 조정
데이터 전처리에 더해, 데이터에 이상치(Outliers)나 편향(Biases)이 존재하는지 여부, 실제 데이터가 트레이닝 데이터와 다를 수 있는지 등을 파악해야 한다. 시스템을 잘 못 훈련시키는 편향을 조기에 고려하는 것이 특히 중요하다. ML은 트레이닝 데이터 세트에 존재하는 편향을 증폭시키거나, 심지어 편향을 발생시킬 수 있기 때문이다.

보이드는 “품질과 편향, 위험/무결성 위협에는 시작부터 데이터를 이용하는 방법에 대한 지식과 거버넌스가 필요하다. 페어런(Fairlearn)과 LIME 같은 모델 해석용이성 및 공정성 도구들, 확립된 기업 거버넌스 프랙티스는 IT 리더들이 ML 트레이닝 프로젝트를 관리하는데 도움을 준다. 또 모델 검증 프로세스를 단축하는데 도움을 줘 시간을 절약시켜 주고, 잠재적인 편향에 대해 조정을 할 수 있도록 도와준다”라고 설명했다. 여기에 아주 중요한 것이 데이터를 가져온 장소를 아는 것이다.
 


도메인 전문가의 참여
여러 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 결과를 설명할 때 아주 중요한 역할을 한다. 그는 다음과 같이 설명했다. 

“모델을 설명하고 싶을 수 있다. 편향이나 완전히 다른 데이터에 대해 테스트를 하고 싶을 수 있다. 또는 다시 트레이닝을 하지 않고, 제기능을 하는지 확인하기 위해 실제 프로덕션 데이터에 대해 테스트를 하고 싶을 수 있다. 이런 설명 용이성, 설명 가능성을 결정하는 것이 트레이닝에 관한 메타데이터이다. 데이터를 트레이닝한 방법, 제외시킨 이상치, 통계에서 ‘역사적’인 이유로 무시한 특정 모집단 등을 알아야 한다. 단순히 트레이닝 했는지 여부, 모집단을 분석했는지 여부도 알아야 한다.”


트레이닝 데이터를 데이터 포이즈닝(data poisoning)으로부터 보호
‘기본’을 잊어서는 안 된다. ML의 경우에도 트레이닝 동안 보안과 위협 모델링에 대해 생각해야 한다. 트레이닝 데이터도 다른 중요한 데이터처럼 안전하게 보관 및 저장해야 한다. 개인 노트북 컴퓨터에 저장해서는 안 된다. 또한, 데이터를 가져온 장소, 보내는 장소, 여기에 액세스할 수 있는 사람을 추적할 수 있어야 한다.

알고리즈미아(Algorithmia)를 공동 창업한 케니 다니엘 CTO는 “어려울 수 있지만, 가능한 여러 소스에서 데이터를 수집해야 한다. 모델이 과적합 상태가 되면, 악의적인 공격에 취약해질 수 있다. 예를 들어, 픽셀이 흐리게 처리된 이미지, 고양이에 대한 예측치 제시 같은 문제가 발생할 수 있다”라고 말했다.

이는 단순히 ‘이론적’인 문제가 아니다. 2013년 공격자들이 온라인 바이러스 스캐닝 사이트에 업로드한 감염되지 않은 파일에 바이러스 서명을 주입한 일이 있었다. 이를 훈련시켜 악성 파일을 무시하도록 만들었다. ‘클린’하다고 선언된 파일과 일치한다는 것을 근거로 하는 트레이닝이었다. 

2017년에는 마이크로소프트에서 디지털 인증서의 평판을 조작하는 수많은 가짜 트래픽이 발생하는 문제가 있었다. 공격자들이 마이크로소프트 ML 시스템이 인증서의 평판을 계산하는 방법을 알아낸 후, 악성 코드를 신뢰하도록 만든 것이다.

비지도형(Unsupervised) ML이 데이터 포이즈닝에 더 취약하다. 스마트폰에서 사용하는 필터 같은 것으로 이미지를 조작하는 방법만으로도 사람의 눈에는 이상이 없는 이미지로 보이지만, 모델에 영향을 주는 이미지를 만들 수 있기 때문이다. 

마이크로소프트에 따르면, 트레이닝 데이터의 3%만 손상시켜도 모델의 정확도가 11% 하락한다. 이런 공격을 방어하기란 어렵다. 그러나 공격자는 트레이닝 표본의 일부만 통제할 수 있다. 따라서 데이터를 검증 및 ‘클리닝’하고, 트레이닝 루프에서 이상치를 감시해 찾고, 매일 ‘피처 드리프트(Feature drift)’를 찾고, 여러 모델을 사용하고, 자동화된 방법으로, 그리고 사람이 새로 트레이닝한 모델의 품질을 평가한 후 모델을 배포하는 방법을 활용할 수 있다. 

악성 ML과 보안이 전문인 오픈 AI(Open AI)의 에이리얼 허베트-로스 연구원은 “현재는 물론 미래의 위협에도 견고한 ML 시스템과 제품을 원할 경우, 데이터 처리 파이프라인을 안전하게 만드는데 초점을 맞출 필요가 있다”라고 강조했다.

데이터 세트의 균형
적은 수의 이미지가 트레이닝에서 훨씬 더 큰 비중을 대표하지 않도록 만들어야 한다. 이는 데이터 포이즈닝 방지에 도움을 준다. 또 처음부터 유용한 ML 모델을 구현하는데 중요한 역할을 한다.

코스토풀로스는 “트레이닝을 한 알고리즘은 데이터 지향적이다. 나쁜 데이터가 나쁜 학습을 초래한다는 의미이다. 성공적인 트레이닝을 위해서는 균형 잡힌 데이터 세트가 필요하다. 분류를 할 경우, 한 예제는 1%, 다른 예제는 99% 식으로 트레이닝 세트를 구성해서는 안 된다. 균형이 잡히도록 데이터를 수집해야 한다. 여기에 각별히 주의를 기울여야 한다”라고 설명했다.

인풋과 아웃풋 확인
ML 플랫폼에는 트레이닝과 모델 모니터링 도구가 포함된 경우가 많다. 예를 들어, 유아이패스 AI 패브릭(UiPath AI Fabric)는 모델 아웃풋과 데이터 인풋을 비교할 수 있는 기능을 제공한다. 애저ML과 여기에 토대를 둔 파워BI의 AI 빌더는 긍정 오류, 부정 오류, 정확도(정확한 분류의 수), 리콜(긍정으로 정확히 분류된 진짜 긍정(TP)의 수) 같은 매트릭스를 제공한다.

독자적인 ML 모델을 구현하는 경우, 텐소 워치(Tensor Watch) 같은 실시간 비주얼리제이션 도구를 사용한다. 그래야 트레이닝을 중단한 후 다시 시작하지 않고, 즉시 ML 모델의 트레이닝 손실과 오류를 확인할 수 있다. 이미지 인식용 50-레이어 ResNet을 이용한 ImageNet 데이터 세트 트레이닝에 14일이 소요될 수 있을 때 중요한 부분이다.

트레이닝에 부합하는 하드웨어를 선택
GPU는 심층 데이터 병렬성(Deep data parallelism)이 요구되는 딥러닝 시스템 트레이닝에 적합하다. 그러나 다른 워크로드에는 적합하지 않을 수도 있다.

가드너는 “엔터프라이즈 고객이 ML을 시작하는 상황 대부분에서 GPU나 전용 AI 가속 하드웨어를 선택할 이유는 거의 없다”라고 말했다. 그에 따르면 소수 레이어만 트레이닝 하는 경우, 영업 시간 동안 다른 워크로드에 사용했던 CPU를 밤 동안 트레이닝에 사용할 수 있다. 반면 레이어나 장소가 10개 이상인 모델이라면 하드웨어 가속을 검토할 수 있다. 더 빨리 트레이닝을 했을 때 실적에 영향이 미치는 분야라면 특히 그렇다. 추천 엔진을 더 정확하게 만드는 것을 예로 들 수 있다.

또한, CPU는 의료 이미지와 천문학, 석유 및 가스 탐사 등 HD 관련 모델에 더 적합하다. 그는 “픽셀이 아주 많은 이미지들이다. 메모리가 작은 GPU에는 적합하지 않다. CPU를 기반으로 트레이닝을 하면 이미지를 줄이지 않고 완전한 해상도로 트레이닝 할 수 있다”라고 말했다.

능률적으로 CPU 트레이닝을 하려면, GPU가 아닌 CPU에 최적화된 도구나 프레임워크를 찾아 이용해야 한다.

전이 학습(Transfer learning) 활용
별다른 이유가 있는 경우가 아니라면, 굳이 처음부터(from scratch) 혼자 트레이닝을 시도하지 않는 것이 좋다고 전문가들은 입을 모았다. 

다니엘은 “공개적으로 이용할 수 있는 모델이 있는지 알아보거나, 전이 학습을 이용한다. 훨씬 더 저렴한 방법이다. 동시에 훨씬 더 적합하며, 환경에도 더 잘 부합한다”라고 말했다.

이를테면 150-레이어 ResNet 이미지 인식 모델 같은 대용량의 트레이닝 된 모델을 가져와, 가장 위의 몇개 레이어를 잘라 자신의 데이터로 다시 훈련시키는 방법을 이용할 수 있다. 애저 코그니티브 서비스 커스텀 비전(Azure Cognitive Services Custom Vision)과 같은 것들을 이용할 수도 있다. 이는 몇 분만에 인식하고 싶은 각 객체의 50개 예제에 대해 마이크로소프트의 이미지 인식 서비스를 다시 트레이닝 시킨다. 클라우드 서비스의 편리함을 누리면서, 맞춤화 된 트레이닝을 할 수 있는 방법이다.

인내심을 가져라
ML은 다른 소프트웨어 개발 과정보다 예측성이 떨어진다. 트레이닝에 예상보다 더 많은 시간이 소요될 수 있다. 트레이닝이란 시스템 운영의 일부가 아닌 개발의 일부이기 때문이다.

가드너는 “예측이 어렵다는 문제가 있다. 문제 해결과 관련, 일정을 고정해서 수립할 수 없다. 6개월 이내에 솔루션을 구현하게 될 것이라고 말할 수 없다는 이야기이다. 시행착오가 많다. 미묘한 변화를 포착하는 트레이닝에 몇 시간, 며칠, 몇 주가 걸릴 수 있다. 이런 불확실성을 극복하려면 경영진의 동의와 수용이 요구된다. 갑자기 결과물이 나올 수도 있지만, 이보다는 예상보다 더 많은 시간이 걸리는 경우가 많기 때문이다. 일관된 프로세스가 아니다”라고 말했다. ciokr@idg.co.kr