4.1 반복적인 데이터셋
데이터셋 자체가 모델 성공의 핵심 요소입니다. 따라서 모델링과 마찬가지로 데이터 수집, 준비, 레이블링이 반복적인 과정이어야 합니다. 당장 모를 수 있는 간단한 데이터셋으로 시작하고 여기서 배운것을 바탕으로 데이터셋을 향상해봅니다.
⇢ 전체 머신러닝 프로젝트를 End to End 프로세스라고 보고 반복하는것도 중요하지만,
⇢ 머신러닝 프로젝트의 각 부분을 또 다른 End to End 프로세스라고 바라볼 수도 있다.
⇢ 다만 전체 그림을 안 뒤, 각 부분에 집중하는것이 좋을것이라 생각한다.

이 분야를 새로 접한 사람이라면 데이터를 반복, 수정, 향상할 수 있는 제품의 일부로 다루는 것이 큰 패러다임의 전환입니다. 하지만 익숙해지면 데이터는 새로운 모델을 개발하는 데 가장 좋은 영감의 원천이 되고, 무언가 잘못되었을 때 해답을 위해 가장 먼저 찾는 곳이 될 것입니다.
⇢ Garbage In Garbage Out 이라는 말 처럼 결국 데이터다.
⇢ (위 그림) 대부분의 책, 연구 내용은 정해진 특정 데이터에만 매달린다. 하지만 그 데이터가 다양한 모델의 벤치마크로 활용되기까지 만들어진 과정을 파악해보는것도 중요할 것이다.
⇢ 결국 나만의 데이터셋을 만드는 과정도 이것과 크게 다르지 않다.
4.2 첫 번째 데이터셋 탐색하기
초기 데이터셋을 어떻게 탐색할까요? 기술자들이 완벽한 데이터셋을 찾으려 하기 때문에 막히는것을 자주 봅니다. 예비 결과를 만들 수 있는 간단한 데이터셋을 구하는 것이 목표입니다. 머신러닝의 다른 부분과 마찬가지로 간단하게 시작해서 발전시켜야 합니다.
⇢ 완벽한 데이터셋을 찾으려하기 보다, 대부분의 사례에서 접하는 데이터셋이 완벽한 것이기 때문이다. 기준치가 매우 높아진 상태에서, 이런 데이터셋을 빨리 얻고, 빨리 모델링으로 넘어가고 싶은 조급함 아닐까 싶다.
⇢ 하지만 여러 사례의 완벽한 데이터셋이 어떻게 만들어졌는지, 그 노력을 살펴볼 필요가 있다.
⇢ 결국 간단히 시작하고, 점점 발전시켜나가서 디테일이 살아있는 데이터셋으로 거듭난다.
프로젝트를 시작할 때 데이터셋이 작으면 분석하고 이해하기가 쉽습니다. 또 더 나은 모델을 만드는 방법을 이해할 수 있습니다. 쉽게 시작할 수 있는 초기 데이터셋을 얻는 것이 목표가 되어야 합니다. 전략이 세워진 후에 큰 데이터셋으로 사이즈를 늘리는 것이 합리적입니다.
...
데이터셋을 처음 다룰 때 주의를 기울일 가치가 있는 것에는 데이터 포맷, 데이터 품질, 데이터 양과 분포(+데이터 불균형) 이 있다.
...
테이터셋에서 트렌드를 식별하는 것은 품질 그 이상의 의미가 있습니다. 이 작업은 모델 입장에서 어떤 종류의 구조를 선택할지 예상해보는 것입니다. 데이터를 클러스터로 나누고 각 클러스터에서 공통점을 추출하여 이런작업을 수행해보겠습니다.
⇢ 딥러닝은 사람이 다루기 어려운 빅데이터로부터, 사람이라면 알아채기 힘든 패턴을 추출해낼 수 있다.
⇢ 이 말이 맞기는 한데, 결국 모델이 하는것도 패턴을 찾는 일이다.
⇢ 샘플링된 데이터 속에서라도 어느정도 트렌드를 찾는다면 (이것으로 전체 트렌드를 대표하진 못하더라도), 인공지능이 도입되기 전 사람이 할 수 있는 부분에서 최선을 다한 것으로 이해한다.
⇢ AGI는 아직 실현 불가능하고, 모델링 알고리즘도 사람의 손을 거쳐 탄생한 것이다. 따라서 특정 모델링 방식에 보다 알맞는 데이터가 존재할 수밖에 없고, 데이터를 들여다보는 행위는 이 두 존재간의 매칭을 잘 찾아내는 단초가 될 수 있을것이다.
4.3 레이블링으로 데이터 트렌드 찾기
데이터셋을 살펴보기 시작할 때 일반적으로 각 특성의 요약 통계를 확인하는 것이 좋습니다. 이렇게 하면 데이터셋에 있는 특성을 잘 이해하고 클래스를 쉽게 나눌 수 있는 방법을 찾는 데 도움이 됩니다. 클래스의 분포 차이를 초기에 식별하는 일은 머신러닝에 유용합니다. 모델링 작업을 쉽게 만들거나 뛰어난 특성 하나만 사용해서 모델 성능이 과대평가되는 것을 막을 수 있습니다.
⇢ 데이터에는 다양한 특성이 숨어 있다.
⇢ 간혹 매우 도드라지는 특성이 존재하는 데, 그 특성에만 너무 매달려서는 안된다.
⇢ 때로는 모델 배포시 사용 가능하지 않은 데이터 일 수도 있으며 (데이터 누수)
⇢ 한 특성에만 매달린 모델은 그 성능이 과대평가된 것일 수 있으며
⇢ 설령 잘 작동한다고 하더라도, 향후 그 특성에 생기는 미세한 변화로도 큰 영향을 받을 것이다.
알고리즘이 되어보기를 해본 적이 없다면 결과의 품질을 판단하기 어려울 것입니다. 반면 시간을 들여 직접 데이터를 레이블링해보면 모델링 작업을 쉽게 만드는 트렌드를 찾는 경우가 많습니다. ...
데이터셋이 레이블을 가지더라도 데이터에 레이블을 달아봐야 합니다. 이를 통해 레이블이 올바른 정보를 표현하고 있는지, 레이블이 정확한지 검증할 수 있습니다... 몇 개의 샘플에 레이블을 달아본 후, 가능한 데이터를 잘 표현할 수 있는 특성을 발견했다면 이를 추가하여 벡터화 전략을 업데이트해도 좋습니다.
⇢ 직접 확인해봐야 한다를 강조하는 부분 같다.
⇢ 물론 이미 구축된 데이터셋은 매우 많은 비용이 투입되어 완벽에 가깝다.
⇢ 하지만 레이블링은 결국 사람이 한 작업이며, 어떤 정책과 기준을 가지고 이루어진 결과물이다.
⇢ 따라서 내가 다루는 문제와 다른 측면/의도가 존재할 수 있고, 이를 파악해두는것이 좋다.
4.5 로버트 먼로: 데이터를 찾고 레이블링하고, 활용하는 방법
Q: 머신러닝 프로젝트를 어떻게 시작해야 하나요?
A: 가장 좋은 방법은 비즈니스 문제부터 시작하는 것입니다. 비즈니스 문제가 작업 범위를 결정하기 때문입니다. ... 초기 모델에서 기대하는것은 손쉬운 구현과 신뢰할 수 있는 결과입니다. ... 시간을 들여 데이터를 살펴보고 직접 레이블링을 해봐야 합니다. 이렇게 하면 문제가 얼마나 어려운지, 어떤 솔루션이 잘 맞을지에 대한 직관을 얻을 수 있습니다.
Q: 시작할 때 얼마나 많은 데이터가 필요한가요?
A: 데이터를 수집할 때 대표적이고 다양성을 가진 데이터셋을 준비해야 합니다. ... 희귀한 범주에 속하는 샘플 1,000개를 레이블링하면 실전에서 잘 동작합니다. 적어도 현재 모델링 방식을 그대로 유지할지를 판단할 충분한 정보를 얻을 수 있습니다. 샘플 10,000개라면 구축한 모델의 출력을 신뢰할 수 있습니다. ... 데이터 양에 따른 성능 향상 그래프를 그릴 수 있습니다.
⇢ 시스템워크 (팀워크)로 뭔가를 만들 때 가장 어려운 부분이 바로 인터페이스, 업무 담당자간의 소통이다.
⇢ 데이터를 분석, 데이터를 시각화, 피처 엔지니어링, 데이터를 효율적으로 보관/제어/관리, 데이터로 모델링, 배포 등 다양한 영역이 존재하는 데 단순히 각 요소간의 입력/출력만 맞춘다고 해결되지 않는다.
⇢ 각 영역별 작업에 담긴 의도를 파악해야 다운스트림 작업으로 잘 이어질 수 있다.
⇢ 결국 하나만 팔 수는 없어 보이고, 각 담당자도 전체 그림을 어느정도 다 이해해야만 한다.
Q: 데이터를 수집하고 레이블링할 때 어떤 과정을 거치나요?
A: 불확실성 기반 샘플링이 널리 사용하는 방법입니다. 모델이 가장 불확실하게 판단하는 샘플을 찾고 비슷한 샘플을 찾아 훈련 세트에 추가합니다. 현재 모델이 어려움을 겪고 있는 데이터를 더 찾기 위해 '오류 모델'을 훈련할 수도 있습니다.... 또는 레이블하기 가장 좋은 다음 샘플을 찾기 위해 '레이블링 모델'을 훈련할 수 있습니다.
Q: 모델이 유용한 것을 학습하고 있는지 어떻게 검증할 수 있나요?
A: 흔히 하는 실수는 관련 있는 데이터셋의 일부분에 레이블링 노력을 집중하는 것입니다. ... 이것이 데이터 수집 전략을 사용하더라도 모델을 검증하려면 항상 테스트 세트에서 랜덤하게 샘플링해야 하는 이유입니다.
'머신러닝 파워드 애플리케이션' 카테고리의 다른 글
| 3장 엔드투엔드 파이프라인 만들기 (1) | 2021.11.27 |
|---|---|
| 2장 계획 수립하기 (0) | 2021.11.26 |
| 1장 제품의 목표를 머신러닝 문제로 표현하기 (0) | 2021.11.25 |