모든 형태와 규모의 엔터프라이즈 고객과 이야기를 나누면, 우리는 모두 같은 과제를 공유하고 있다는 것은 분명합니다. 즉, 비즈니스를 디지털화하고, 정체된 진보를 빈번한 혁신으로 전환하며, 데이터와 머신러닝을 활용하기 위해 경쟁하고 있습니다. 하지만 머신러닝의 성공과 효과에 있어 데이터가 얼마나 중요한지 이해하는 데는 차이가 있다고 생각합니다. 데이터를 사용하여 데이터 제품을 생성하거나 실행 가능한 비즈니스 통찰력을 표면화하는 데 중점을 두는 것 같습니다. 하지만 현실은, 머신러닝이 데이터 없이는 존재하지 않는다는 것입니다. 또한 표본 크기가 너무 작거나 데이터의 품질이 현실을 잘못 나타내면 머신 러닝 모델은 무용지물이 됩니다. 이 블로그 게시물에서는 교육 모델을 살펴보고 데이터 및 데이터 품질이 머신 러닝 모델에 어떤 영향을 미칠 수 있는지 몇 가지 예를 살펴보겠습니다.
머신 러닝이란 무엇입니까?
머신 러닝을 더 잘 이해하기 위해, 인간 학습에 대해 생각해 봅니다. 인간의 뇌가 성숙하는 데는 몇 년이 걸립니다. 우리가 배우는 많은 것들은 반복, 패턴 인식, 그리고 피드백의 긴 과정을 통해 가르치고 보존됩니다. 지식은 초등교육에서 얻은 기초적인 교훈에서 서서히 쌓입니다. 우리가 배운 것을 적용하고 지식을 실제 행동으로 활용하면 개념도 안정되고 의사결정 능력도 강화되는 것으로 나타났습니다. 다양한 지식, 경험 및 피드백을 통해 우리는 시간이 지남에 따라 서로 다르고 더 나은 결정을 내리는 법을 배웁니다.
기계학습은 인간의 두뇌보다 인지적 기능의 기능이 덜 정교하다는 점을 제외하면 인간의 학습과 매우 유사합니다. 예를 들어, 인간은 때때로 우리가 그 문제에 대해 부분적인 이해와 감사만을 가지고 있다는 것을 알고 있는 곳에서 본능적인 결정이나 결정을 내리도록 강요당합니다. 우리는 비슷한 것처럼 보이는 과거의 경험에서 얻은 정보로 누락된 데이터를 채우고, 추측을 하며, 위험에 대한 우리의 내성을 바탕으로 추측을 합니다. 반면에 기계는 직접 결정을 내리지 않습니다. 모든 결정은 수행된 교육과 제공된 데이터에 기초합니다. 그렇기 때문에 “기계를 가르치는 것”(교육 모델)에 대해 의도적이어야 하며 학습에 적합한 데이터를 제공해야 합니다. 그렇지 않으면, 적절한 훈련을 받지 않은 사람처럼, 모델은 올바른 결정을 내릴 준비가 되어 있지 않을 것입니다.
머신 러닝 실습
머신 러닝에는 여러 가지 유형이 있지만, 우리는 인기 있는 유형인 감독 학습(supervised learning)에 초점을 맞출 것입니다. 이러한 유형의 머신 러닝을 통해 우리는 입력 내용을 수용하고 출력으로 응답할 수 있는 모델을 교육합니다. 예를 들어, 우리는 그림을 입력으로 제공하고 특정 물체가 포함된 그림의 확률을 계산하는 모형을 만들 수 있습니다. 또 다른 예로는 오디오 녹음을 입력으로 사용하고 모델을 교육하여 오디오 조각을 단어에 매핑하여 텍스트 스크립트를 작성하는 것입니다. 우리는 이미지에서 개체 인식을 예시로 사용할 것입니다. 왜냐하면 그것은 좀 더 쉽게 설명될 수 있기 때문입니다.
머신 러닝 모델은 예를 들어 입력된 사진에 사과가 포함될 확률을 정확하게 예측할 수 있도록 충분한 데이터를 사용하여 교육되어야 합니다. 아래 사과 사진을 생각해보세요. 자, 어른들은 각각의 사진이 사과를 나타낸다고 말하기는 쉽지만, 머신 러닝에 있어서는, 만약 여러분이 빨간 사과 그림으로만 모델을 훈련시킨다면 어떨까요? 아니면 훈련할 때 사용한 사과가 모두 같은 모양이라면요? 모델이 어떻게 마지막 두 장의 사진이 사실 사과였다는 것을 알 수 있을까요?
이제, 블루베리 머핀과 치와와를 구별하는 것을 고려해 보세요. 이것은 두 이미지 간의 차이를 탐지하는 것이 얼마나 어려운지를 보여주는 사소한 예입니다. 분명히, 우리는 각각의 예시를 충분히 가지고 훈련해야 할 것이고, 우리는 모델들이 차이를 배울 수 있도록 각 이미지에 “블루베리 머핀” 또는 “치와와”라고 라벨을 붙여야 할 것입니다.
이러한 각 예제에서는 모형을 실수로 교육하여 부정확한 결과를 만들 수 있는 몇 가지 방법이 있습니다. 데이터가 너무 균일하고 다양성이 부족할 수 있습니다. 데이터 집합이 불완전하거나 중복 데이터가 포함되어 있을 수 있습니다. 또는 데이터 레이블이 잘못 표시될 수 있습니다(특히 치와와를 머핀으로 착각하거나 그 반대로 착각할 수 있음).
머신 러닝에서 피드백 사용
교육 모델의 또 다른 중요한 부분은 피드백입니다. 블루베리 머핀의 예를 올바르게 식별하는 것 외에도, 모델은 예측이 잘못된 시기를 알아야 합니다. 예측 확률을 높이는 방법 중 하나는 모델의 결과를 반복해서 감사하는 것입니다. 이것이 훈련이 일회성 활동이 아닌 이유 중 하나입니다. 최신 사례와 피드백을 통해 모델을 지속적으로 교육해야 합니다.
상상하실 수 있듯이 데이터 레이블과 모델 피드백은 번거로울 수 있습니다. 다행히도 Amazon Web Services Marketplace에서 사용할 수 있는 머신러닝 모델이 점점 더 많아지고 있으며, AWS Data Exchange는 데이터셋에 더욱 쉽게 액세스할 수 있도록 하고 있습니다. 또한 Amazon Mechanical Turk와 같은 서비스도 있습니다. 이 서비스는 데이터 레이블링과 같은 작업의 완료를 크라우드소싱할 수 있습니다. 하지만, 제가 머신러닝의 데이터 라벨링에 대해 가장 흥미롭게 생각하는 것은 몇몇 회사들은 인간이 자신의 데이터에 무료로 라벨을 붙이도록 하는 혁신적인 방법을 발견했다는 것입니다. Google reCAPTCHA가 한 예이다. 웹 사이트에 로그인할 때 reCAPTCHA와 상호 작용했을 수 있습니다. 이 프로그램은 봇으로부터 웹사이트를 보호하는 서비스를 제공하지만, 그것의 2차적인 목적은 인간을 머신 러닝을 위해 데이터에 라벨을 붙이는 것입니다. 왜 신호등이나 횡단보도를 포함하는 이미지의 사각형을 모두 선택해야 하는지 생각해 본 적 있나요? 지도를 개선하기 위한 것입니다.
머신 러닝을 위한 데이터 수집
비즈니스를 위한 데이터 레이크를 구축할 때는 데이터 제품 및 비즈니스 통찰력 외에도 머신러닝에 대해 처음부터 생각해야 합니다. 마스터 데이터 관리 부문은 균일성과 정확성의 중요성을 가르치지만 머신러닝은 원시 데이터의 중요성을 가르칩니다. 데이터 손실과 조작이 진실에 대한 우리의 관점에 어떤 영향을 미칠 수 있는지를 보여주는 전화 게임을 생각해보세요. 데이터를 수집하고 여러 용도에 맞게 반복적으로 변경할수록 중요하고 의미 있는 데이터가 손실될 위험이 커집니다. 우리는 데이터를 최대한 활용하고 그렇지 않을 경우 몰랐을 수도 있는 것들을 발견할 수 있기를 원하기 때문에, 우리는 특정한 용도를 염두에 두고 데이터 레이크를 만들어야 합니다. 이러한 용도로 사용할 수 있도록 데이터를 수집, 저장 및 조작해야 합니다. 예를 들어, Cox Automotive에서는 팀이 데이터를 신속하게 실험하고, 데이터 제품을 제작하고, 비즈니스 통찰력을 제공하고, 머신러닝(machine learning)을 할 수 있도록 원시에서 정제 및 인증으로 데이터를 계층화했습니다. 데이터 레이크는 우리가 제공하고자 하는 모든 것을 위한 데이터 기반 역할을 했습니다. 전체론적 데이터 전략을 통해 데이터 호수가 비즈니스에 필요한 강력한 기반을 제공할 수 있습니다.
여기서 데이터 레이크에 너무 깊이 파고들지 않는 한, 이러한 데이터 기반을 구축하는 것이 정치적으로나 기술적으로나 어려울 수 있다는 점을 주목할 필요가 있습니다. 내부적으로는 데이터 소유자에게 직접적인 이점이 없는 경우 다른 사람에게 데이터를 공유하도록 설득하는 것이 어려울 수 있습니다. 문제는 여기서 그치지 않습니다. 일단 허브를 통과하면 데이터를 깨끗이 청소하고, 적절한 수준의 세분화를 보장하고, 중복을 제거하고, 완전하고 정확한 데이터 세트나 샘플링을 만들어야 합니다. AWS는 AWS Lake Formation과 같은 서비스를 통해 머신러닝 알고리즘을 사용하여 데이터를 치료하고 분류할 수 있기 때문에 이러한 단계는 매우 어려울 수 있습니다. 머리가 폭발하지 않았기를 바랍니다. 네, 머신러닝(machine learning)을 통해 머신러닝(machine learning)을 위한 데이터를 준비할 수 있습니다! 이러한 과제를 고려해 소규모로 시작하는 것이 좋습니다. 구체적인 목표를 가지고, 패턴을 구체화하고, 빠르게 학습하고, 가치를 제공할 수 있는 작은 수직 슬라이스(종단 간 사용 사례)를 선택하는 것이 좋습니다.
머신 러닝에 대한 현재 제한 사항
여기 기계 학습의 쉬운 문제를 해결하려는 시도가 올바른 데이터 없이 어떻게 매우 어려워지는지를 보여주는 자동차 분야의 실제 예가 있습니다.
자동차를 사고 팔 때, 차량 상태는 매우 중요합니다. 자동차의 가치를 의미 있게 변화시키고 잠재 구매자들의 풀에 영향을 줄 수 있습니다. 사고 후 차량 손상을 평가할 때 보험 회사에게도 차량 상태는 중요합니다. 이론적으로 기계 학습을 사용하여 차량 상태 평가 및 수리(또는 재구성) 추정의 정확도를 높일 수 있습니다. 두 가지 문제에 모두 적합한 모델을 구축할 수 있다고 생각할 수 있습니다. 즉, 차량의 사진을 찍고 각 사진의 손상을 확인한 다음, 결정된 손상을 사전 수리 데이터에 매핑하여 견적을 생성할 수 있습니다. 문제가 해결됐죠?
아니요. 보험에서 우리는 일반적으로 사고를 다루고 있습니다. 즉, 자동차의 크거나 명백한 부분이 손상되었다는 뜻입니다. 전반적인 수리는 헤드라이트, 범퍼 또는 프론트 쿼터 패널을 교체하는 것과 같이 보다 전체적이며, 추정 범위에서는 공차가 더 큽니다. 하지만 자동차를 사고파는 경우에는 긁힌 자국이나 움푹 들어간 자국이나 기계 수리 등을 취급하는 경우가 많습니다. 이 시나리오에서 이미지에 필요한 세부 정보 수준은 크게 다릅니다. 우리가 알아낸 것은, 아무리 좋은 카메라라도, 사람의 눈에 특별히 작은 움푹 패이거나 긁힌 부분이 있는 것을 볼 수 있게 해주는 충분한 디테일을 가진 사진을 믿을 수 없다는 것입니다. 심지어 우리가 그 곳에 있는 것을 알더라도 말이죠. 정확히는 사실이 아니지만, 만약 여러분이 그것을 볼 수 없다면, 모델 또한 볼 수 없다고 주장할 수 있습니다. 따라서 (보험 솔루션이 현재 비슷한 방식으로 머신러닝을 사용하고 있기 때문에) 해결하기가 쉽지 않을 것으로 보이는 문제는 실제로 해결할 수 없습니다. 왜냐하면, 현재 보유하고 있거나 만들 수 있는 데이터는 모델이 결과를 정확하고 일관되게 예측할 수 없기 때문입니다.
머신 러닝에 대한 몇 가지 최종 생각
보시다시피, 올바른 데이터를 갖는 것은 머신 러닝에 매우 중요합니다. 비즈니스 민첩성을 높이고 더 빠른 속도로 혁신해야 하는 모든 과제 중 시작이 가장 어렵습니다. 하지만 제가 배운 것은 성공은 위험을 최소화하면서 빈번한 실험에서 나온다는 것입니다. 작은 규모로 시작하여 구체적인 목표를 가지고 시작할 수 있습니다. 작은 수직 슬라이스(종단간 사용 사례)를 선택하여 패턴을 구체화하고, 빠르게 학습하며, 거기서부터 가치와 진전을 실현합니다. 이것은 하나의 여행입니다. 한꺼번에 할 필요는 없습니다.
빌드업웍스에서 AWS 무료 컨설팅을 진행합니다.
AWS에 대하여 궁금하신 내용이 있으시거나, 도입을 검토 중이시라면 편하게 신청해주세요.
본 문서는 Machine Learning: Avoiding Garbage in, Garbage Out 내용에 기반하여 작성 되었습니다.
© 2020, Amazon Web Services, Inc. or its affiliates. All rights reserved.