Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

EHFKSWL

Andrew Ng 교수님의 Data-centric 강의 요약 본문

Deep Learning

Andrew Ng 교수님의 Data-centric 강의 요약

도란지 2021. 5. 25. 18:07

 

  • AI system 은 코드와 데이터의 결합이다. 여기서 코드는 model 이나 알고리즘을 말한다.
  • Steel 제조업에서 딥러닝을 이용하여 defect를 검출하는 모델의 성능을 개선시키고자 한다. 현재 잘 튜닝된 hyperparemter의 system의 accuracy는 76.2%이다. 이 모델의 정확도를 90% 까지 높이려면 어떤 점 을 개선시켜야 할까

  • 예상한대로 data centric 관점에서 데이터를 개선시키는 것이 accuracy를 더 높여준다!!

 

  • AI를 요리에 비유하자면 data는 food에 해당한다. 품질 좋은 데이터를 사용한 다는 것은 품질 좋은 재료를 가지고 요리를 한다는 것(모델을 학습시킨다는 것)을 의미한다.
  • 머신러닝 작업의 80%는 질 좋은 데이터를 구축하는 것이고 20%은 모델을 학습하는 것이다.
  • 그러나 최근에 발표된 100개의 논문의 99%는 모델을 개선하는 방법들을 다른 방식으로 설명하고 있고 1% 만이 data augmentation과 관련되어 있다.
  • 지금까지는 model-centric 관점으로 AI를 해석해왔음.

data centric 관점에서 ML lifecycle 해석

  • 위의 표는 ML 프로젝트의 Lifecycle이다. 가장 먼저 어떤 프로젝트를 할 것이고 그 프로젝트의 목적을 정해야 하는데 이 영상에서는 음성인식을 예시로 들고있다.

  • 다음 단계는 data를 수집하는 단계이다. 여기서 레이블링이 일관되는 것이 모델 성능과 밀접하게 관련있다고 한다.
  • 위와 같은 음성에서 사람이 직접 레이블링 하는 방식이 다를 수 있다.

Um, todays weather Um... todays weather Today`s weather

  • 이렇게 모든 데이터에서 레이블링이 일관되지 않으면 learning algorithm performance에 안 좋은 영향을 준다.

  • 이구아나 detection 모델의 개발을 위한 이미지 labling 에서도 마찬가지이다. 왼쪽과 같은 이구아나의 이미지를 다양한 방법으로 bounding boxes를 만들 수 있지만, 일관되지 않은 레이블링은 모델의 성능에 악영향을 줄 것이다.

  • Data quality를 유지하기 위해서 systematic하게 레이블링 하는 것이 필요하다. 각 레이블러의 레이블링 방식을 일관되게 유지하여 데이터의 레이블링이 같아야한다.

  • 이구아나 detection과 같은 예시이며, 각 레이블러의 레이블링 방식을 같게 만들어 데이터의 일관성을 유지해야 한다.

  • Data centric 방식의 MLops는 코드(모델)을 고정시키고 계속해서 일관 데이터로 학습하는 것을 말한다.
  • 일관되고 데이터의 품질이 좋으면 여러 모델에서 훌륭한 성능을 보일 수 있음.

small labels and noisy labels

  • 여러가지 모델들이 나올 수 있으며 좋은 모델을 만들기 힘들다

big labels and nosiy data

  • data가 많으면 noisy data가 있어도 괜찮음

small labels and Clean ( consistent )

  • model을 잘 만들 수 있음

⇒ 데이터가 많을 수록 모델을 잘 만들 수 있으나 clean 하다면 적은 데이터로도 충분히 좋은 모델을 만들 수 있음

  • Noisy 데이터를 clean하게 만들었을 때의 효과를 나타냈다. Accuracy가 0.48 정도 되는 500개의 Noisy 데이터에서 데이터를 clean 하게 만드는 것은 약 2배의 데이터(1000개)를 더 모으는 것과 비슷한 효과를 나타낸다.
  • 데이터를 더 모으는 것과 clean하게 만드는 것 중 비용이 어떤 것이 더 클지는 모르겠으나, 먼저 많은 데이터를 모으고 Clean 하게 만드는 것이 model 학습에 좋은 방법으로 보인다. ( small data problem 을 해결할 수 있음 )
  • (Note) 데이터의 크기가 크더라도 rare한 경우( 예를 들어 자율주행에서 흔하지 않은 교통 상황 등)에 대해서는 samll data 문제를 발생시킨다. 그러므로 데이터를 clean하게 만드는 것은 small data 뿐만 아니라 big data에서 발생하는 문제도 해결해 줄 수 있다.

  • Error 분석에 대한 각 centric 별 관점. 데이터 centric 적으로 접근하는게 좋다고 함.
  • 실제로 앤드류 응 교수님은 자신의 Team에게 이미 모델은 충분히 괜찮으니 code를 수정하는 것은 중단하고 systematic하게 데이터를 개선시키는데 집중하라고 했다고 함.

  • 모델을 학습시킨 후 결과가 좋지 않다면 먼저 어떤 유형의 데이터에서 성능이 잘 안나왔는지 확인해라. (예를 들어 차 소리의 Noise 데이터 )
  • 그리고 agumentation, generation 과 같은 방법으로 더 많은 데이터를 확보하거나 일관되게 labling하여 학습하라.

⇒ data centric 관점에서 모델을 개선시키는 방법.

  • Model을 deploy한 후에는 체계적으로 데이터와 성능을 점검하고, 양질의 new data를 다시 학습시켜 모델을 계속해서 개선해 나가는 것이 필요하다. (MLops에 해당하는 부분)
  • 이전에 계속 공부한 내용들 반복. 기존 소프트웨어에서는 소프트웨어 엔지니어가 기능을 만들고 DevOps팀이 Quaility와 infra를 담당했다면 AI systems에서는 ML 엔지니어가 모델을 만들고 MLops 팀이 Deploy와 관리를 한다.

  • 전통적 프로그래밍과 비교하여 AI software에서 MLops 부서의 역할이 더 늘어난다.

  • 결국 MLops의 역할은 ML project life cycle의 모든 stage에 관여하여 high quaility의 데이터를 주입시키는 것 이라고 할 수 있다.

정리

  1. 이제 모델의 성능은 충분히 좋다. AI system의 performance가 좋지 않다면 data와 관련된 문제일 것이다.
  2. 그러므로 data centric 관점에서 ML lifecycle을 재 해석하는 것이 필요하다.
  3. Model을 deploy만 하고 끝나는 것이 아니라 new data에 대해 재 학습하고 모델을 업데이트 하는 과정이 꼭 필요하기 때문에 MLops의 중요성이 커질 것이다.

제생각에는..

  • 이제 정말 AI가 비즈니스 레벨에서 성과를 내보이려는 것 같으며 data-centric은 필연적인 것이라고 본다. 지금까지는 연구실에서 정제된 데이터를 사용하여 성능을 높여야 했으므로 model-centric 관점에서 AI가 연구 개발이 이루어졌다. 그러나 현실에는 수많은 변수들이 존재하기 때문에 한정된 데이터에서 좋은 성능을 보이는 모델은 현실의 모든 case를 반영할 수 없다. 그러므로 양질의 데이터가 필요하며 data-centric은 AI로 돈을 벌기 위한 필수적인 요건이라고 보여진다.

 

'Deep Learning' 카테고리의 다른 글

Attention (Seq -to-Seq)  (0) 2021.05.13
Batch Normalization  (0) 2021.05.13