본문 바로가기

Data/Data Science

[deeplearning.ai] Structuring Machine Learning Projects

반응형

Deeplearning.ai 코스 세번째 강의 시작... 이번엔 ML프로젝트에 필요한 지식들을 배운다고한다.

TP&TN&FN&FP

True Positive(TP) - 양성인데, 양성으로 제대로 검출된것

True Negative(TN) - 음성인데 음성으로 제대로 검출된것

False Positive(FP) - 음성인데 양성으로 잘못 검출된것

False Negative(FN) - 양성인데 음성으로 잘못 검출된것

Accuracy & Error Rate & Precision & Recall & ROC

  • Accuracy = (TP + TN) / 전체 데이터 수 (정확도)
  • Error Rate = (FP + FN) / 전체 데이터 수 (오류도)
  • Precision = TP / (TP + FP) (정밀성, Positive로 예측한 애들중에, 실제 Positive의 비율)
  • Recall = (TP) / P (민감도, Positive에서 실제 Positive로 예측한 비율)

Improving your model performance

- You can fit the training set pretty well : Low avoidable bias

- The tarining set performance generalizes pretty well to the dev/test set

Carrying out error analysis

만약 고양이와 개 사진을 분류하는데 개사진을 분류하는데에 성능이 떨어질경우 오류분석을 진행한다

Error analysis:

- Get ~ 100 mislabeled dev set examples

- Count up how many are dogs

만일 잘못분류된 100개의 dev set중 5개만 개 사진일경우. 개발자가 이 개 사진만 오류를 수정하기위해서 시간을 투자한다면 결과론적으로 5%의 성능을 향상시키게됨. 하지만 전체적으로 봤을땐 10% 오류에서 9.5% 성능개선만 이뤄진거임. 즉, 비효율적인 시간투자로 결론이나게됨.

따라서 5장만 보는것이 아닌 95장을 보는것이 더 효율적이게 된다.

 

Evaluate multiple ideas in parallel

  • Ideas for cat detection:
    • Fix pictures of dogs being recognized as cats
    • Fix great cats being misrecognized
    • Improve performance on blurry images

오류 분석을 실행하는데에는 먼저 dev set이나 development set에서 잘못 레이블된 데이터들을 찾고, 데이터 분석을진행(어떤 데이터셋이 False Positivee, False Negative인지등등 그 수량은 얼마나있는지등). 좀더 효율적인 방향으로 개선을 진행.

 

복습차 다시 Bias & Variance 개념정리

Bias - 참 값들과 추정 값들의 차이

Variancce - 추정 값들의 흩어진 정도를 의미

 

(a) - low bias & low variance

(b) - low bias & high variance (Over-fitting, Train Data set에 과적합)

(c) - high bias & low variance (Under-fitting, Test Data set에 학습이 덜됨)

(d) - high bias & high variance

Addressing Data Mismatch

- Carry out manual error analysis to try to understand difference between training and dev/test sets

  - 학습 데이터와 개발 데이터 사이에 어떤 데이터 특성이 다른지를 이해할 것

- Make training data more similar; or collect more data similar to dev/test sets

  - 알고리즘 상에서 문제가 발생하는 개발 데이터에 조금 더 적합한 학습 데이터를 조금 더 수집할 것

 

학습데이터와 개발 데이터간의 차이점이 발생하면 이를 Data Mismatch라고 한다.

강의에서 예시로. 학습데이터 셋은 조용한 곳에서 녹음된 음성파일인것에 비해 개발 데이터 셋은 자동차 엔진음이 섞인 음성파일일경우엔 두 데이터셋의 환경이 다르므로 이는 Data Mismatch이다.

Transfer Learning(전이학습)

머신러닝의 많은 모델은 적용하려는 데이터가 학습할 때의 데이터와 같은 분포를 가진다고 가정으로 했을때 효율적. 이미 잘 훈련된 모델이 있고, 특히 해당 모델과 유사한 문제를 해결할수있을때 Transfer Learning을 사용한다. 또는 유사한 문제지만 학습 데이터가 부족할때 전이학습을 사용!

 

When transfer learning makes sense

- Task A and B hav the same input X

- You have a lot more data for Task A than Task B

- Low level features from A could be helpful for learning B

Multi-task Learning

When multi-task learning makes sense

- Training on set of tasks that could benefit from having shared lower-level features

  - 여러 문제들의 하나의 저레벨 특성을 공유할 때

- Usually: Amount of data you have for each task is quite similar

  - 데이터가 비슷할떄

- Can train a big enough neural network to do well on all the tasks

  - 거대한 작업 세트들을 하나의 큰 신경망으로 한번에 학습 시키려고 할 떄

 

다중 작업 학습보다는 전이학습이 더 많이 쓰이고있다고함.

 

End-to-End deep learning

End to End Deep Learning이란 인간이 아무런 feature를 추출해서 분석할 필요없이 input만 넣어주면 자동으로 y출력이 나오는것을 의미한다. 이는 딥러닝 분야에 큰 기여를했다. 예시로 다음과같다

 

어떤 음성파일이 있을 때 원래 방법으로는 다음과 같이 긴 과정이 필요했지만

X(Audio, Input) -> Feature Extracting -> ML -> Words -> Y(Transcript, Output)

End to End deep learning을 적용시키면 끝과 끝 과정만 필요하게 된다

X(Audio, Input)  -> Y(Transcript, Output)

  • end-to-end 딥러닝은 자료처리 시스템 / 학습시스템에서 여러 단계의 필요한 처리과정을 한번에 처리합니다. 즉, 데이터만 입력하고 원하는 목적을 학습시키는 것
  • 이는 기존의 처리 파이프라인 중 일부를 대체할 수 도 있습니다. 다만, end-to-end 딥러닝을 사용하기 위해서는 엄청나게 많은 양의 데이터가 필요합니다.
  • 하지만 end-to-end 딥러닝이 만능은 아닙니다. 단계를 나눠서 학습 시키는 것이 효율적일 때도 있습니다. 효율적인 이유는 아래와 같습니다.
    • 복잡한 문제를 분리하여 각각의 간단한 문제로 바꿉니다.
    • 데이터의 정보가 각각의 작업에 더 적합되게 사용됩니다.
  • 따라서, 순수 end-to-end 딥러닝 보다는 문제를 쪼개서 해결하는 것이 좋습니다.

End-to-End deep learning의 장단점

  • 장점
    • 데이터로 하여금 말을 하게합니다. 즉, 사람의 선입견 영향을 덜 받습니다.
    • 사람의 중간 요소 설계를 줄일 수 있습니다.
  • 단점
    • 방대한 양의 데이터가 필요합니다.
    • 잠재적으로 유용하고 사람의 손으로 만들어진 중간 요소를 완전 배제합니다. 이는 데이터가 적을 때 효율적인 특정 지식을 사용할 수 없습니다.
  • 따라서, end-to-end 딥러닝을 사용하기전에 항상 어떤 작업을 하려고 하는지, 특히, 지도학습에서 x, y 를 어떻게 연관지을 것인지를 생각해야합니다.
  • 또한, 학습하기 위한 데이터가 충분한지도 고려해야합니다.
반응형