rueki

Course1_Week3. Data Definition and Baseline 본문

MLOPS/Coursera_mlops

Course1_Week3. Data Definition and Baseline

륵기 2021. 11. 21. 14:28
728x90
반응형

이전 주차에서도 계속 강조되어서 나오는 내용이지만, ML System은 데이터가 차지하는 중요성의 비중이 매우 높다.

데이터에 따라서 모델의 성능이 좌지우지 되기때문이다.

그렇다면 Data에 대해 정의 및 설정은 어떻게 해야할까?

 

한 가지 예시를 들어보면 Detection task에서 데이터를 구축하려면 일일히 labeling을 해야하는데 아래의 사진처럼 사람마다 bounding box를 치는 기준이 다 다르기 때문에, 일관성이 떨어지게 된다. 그래서 이로인해 성능이 다르게 나올 수 있다.

 

위와 같은 예제말고도 label ambiguity한 예제를 하나 더 봐보자.

음성인식에서 sound가 Umm, i don't want to do that 이라 했을 때, 사람들은 이것에 대해서 라벨링을 Umm... 이라고도 할 수 있고, Um.. 이라고도 할 수 있을 것이다. 

즉, 여기서 가장 얘기하고 싶은 것은 Consistency이다. 

이 모든 것들을 통일시키면서 하기에는 cost가 많이 들기에 무리가 있지만 , 그래도 리스크를 줄이기 위해서는 데이터가 갖고 있는 특징들을 잘 파악해야 한다.

우리가 갖고 있는 데이터의 input과 output이 어떤 것이고 quality가 어떤지에 대해서 파악하면 개선 process를 세우기는 좀 더 용이할 것이고, structured(tabular) 인지 unstructured(Image, sound)인지 구분을 해도 좋을 것이다.

 

데이터의 특성 및 크기에 따라서 갖고 있는 특징들을 한 번 살펴보자.

- Unstructured data

: 데이터의 양이 보통 많지 않은 경우가 많아서 사람이 직접 라벨링하는 것이 일반적임.

  Data augmentation이 효율적으로 알려져있음.

 

- Structured data

: 데이터의 구조가 이미 다 구성된 형태이며, 새로운 데이터가 얻기 어렵다.

  예를 들어 추천시스템을 위해 회원의 데이터를 필요로 할 때 다수의 회원 데이터를 얻기에는 마음처럼 쉽게 할 수는 없을 것이다. 그러나 이것의 장점은 라벨링 작업이 필수는 아니라는 것이다.

 

- Small data

: 데이터가 양이 적기에 너무나 완벽한 데이터(Ex. 라벨링이 100프로 완벽함)로 인한 훈련은 다른 task에 범용적으로 적용하기 어려우며, 새로운 데이터가 들어올 경우에 성능이 오히려 더 안좋게 나올 가능성이 있음

 

- Large data

: 데이터 양이 방대할 수록 데이터를 다루는 process에 대한 중요성이 높아진다.

 

 

데이터의 특성이 너무 다양하기 때문에 완전하게 Consistency를 유지하기는 어렵지만 그래도 어느정도 보완하기 위해서 여러가지 방법이 있다.

- Input x에 대해 정보가 없다면 x을 교체

- 레이블링 하는 사람들 간의 소통을 통한 일관성 유지작업

- label 클래스 표준화 시키기

- Multi label의 경우 세부화 시키지말고, 통합 label로 만들기

 

 

Data pipelines에서 데이터에 관한 process가 제일 복잡하기도 하고 중요한 부분인데 전체 process가 진행되면서 계속 변화는 일어나기에 data의 변화에 관한 정보도 중요하다.

예를 들어, 처음에 넣은 데이터가 전처리도 거치고 모델 학습에도 이용되려고 하는데, 이 데이터가 어떠한 특성을 갖고 있고, 어디서 흘러들어온 것인지 등과 같은 정보를 알아야 더 효율적일 것이다. 그래서 이를 위해서 metadata를 활용함으로써, 데이터에 대한 정보를 토대로 process를 진행할 수 있을 것이다.

728x90
반응형

'MLOPS > Coursera_mlops' 카테고리의 다른 글

Course1_Week 2. Select and Train a Model  (0) 2021.11.15
Comments