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