본문 바로가기
COURSERA

week 1_Setting up machine learning application (Andrew Ng)

by HYUNHP 2022. 2. 16.
728x90
반응형

안녕하세요, HELLO

 

오늘은 DeepLearning.AI에서 진행하는 앤드류 응(Andrew Ng) 교수님의 딥러닝 전문화의 두 번째 과정인 "Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and Optimization"을 정리하려고 합니다.

 

"Improving Deep Neural Networks: Hyperparameter Tuning, Regularization and Optimization"의 강의 목적은 '랜덤 초기화, L2 및 드롭아웃 정규화, 하이퍼 파라미터 튜닝, 배치 정규화 및 기울기 검사와 같은 표준 신경망 기술' 등을 배우며, 강의는 아래와 같이 구성되어 있습니다.

 

~ Practical Aspects of Deep Learning

~ Optimization Algorithms

~ Hyperparameter Tuning, Batch Normalization and Programming Frameworks

 

"Improving Deep Neural Networks" (Andrew Ng) 1주차 "Setting up machine learning application"의 강의 내용입니다.


CHAPTER 1. 'Setting a machine learning application'

 

□ Train / Dev / Test sets

 

신경망이 몇 개의 층(layer)을 가지는 지, 각 층(layer)이 몇 개의 은닉 유닛(unit)을 가지는지, 학습률(learning rate)과 활성 화 함수(activation function) 등을 결정해서 신경망을 훈련해야 합니다. 훈련 과정을 반복하면서 파라미터의 성능을 조정하는 하이퍼 파라미터의 최적 값을 선택합니다. 하이퍼 파라미터를 최적하는 것은 경험에 기반해서 한 번에 찾는 것은 어렵기에, 순환을 얼마나 효율적으로 진행하는 것인가가 중요한 방점입니다.

 

이때, 훈련(train sets), 개발(dev sets) 그리고 테스트(test sets)로 구분됩니다.

 

  • 훈련 세트(train sets): 훈련을 위해 사용되는 데이터
  • 개발 세트(dev sets, cross validation sets): 모델의 성능 비교를 통해 좋은 모델을 선택하기 위한 데이터
  • 테스트 세트(test sets): 모델이 얼마나 잘 작동하는지 확인하기 위한 데이터

전통적으로 데이터 세트(data set)를 구분할 때, train : test를 70 : 30 비율로 나눴습니다. 데이터 크기와 양이 늘어난 Big data 시대에는 비율(percentage) 보다는 양(volume)에 따라 데이터를 구분하고 있습니다. 이렇나 비율은 data set의 크기에 따라 다릅니다.

 

  데이터 크기 Train sets Dev sets Test sets
전통적인 방식 10,000 60% 20% 20%
최근 방식
(Big data)
1,000,000 98% 1% 1%

 

 

□ Mismatched train/test distribution

 

딥러닝 알고리즘 평가와 성능은 동일한 데이터 분포(data distribution)에서 진행되는 것이 좋습니다. 그래서 dev set와 test set의 분포를 동일하게 하는 것이 좋습니다. (Make sure dev and test sets come from same distribution) 

 

이때, train set와 dev set, test set 모두가 동일한 데이터 분포를 가지면 좋지만, web page crawling 등의 방법으로 train set를 더 크게 구축할 수 있습니다. 이 경우 train set와 dev set, test set가 다른 분포도를 가질 수 있지만, "dev set와 test set의 분포를 동일하게 하는 것이 좋습니다. (Make sure dev and test sets come from same distribution)" 규칙을 따르면 머신러닝 알고리즘을 빠르게 개선할 수 있습니다.


□ Bias/Variance

 

먼저 편향(bias)와 분산(variance)에 대하여 알아보도록 하겠습니다

 

■ 편향(bias)란?

 

먼저 bias는 모델을 통해 얻은 예측값과 실제 정답과의 차이의 평균을 나타냅니다. 즉, 예측값이 실제 정답 값과 얼마큼 떨어져 있는지 나타냅니다. 만약 bias가 높다고 하면 그만큼 예측값과 정답 값 간의 차이가 크다고 말할 수 있습니다.

■ 분산(variance)란?

 

반면 variance는 다양한 데이터 셋에 대하여 예측값이 얼마큼 변화할 수 있는 지에 대한 양(Quantity)의 개념입니다. 이는 모델이 얼마큼 flexibilty를 가지는 지에 대한 의미로도 사용되며 분산의 본래 의미와 같이 얼마큼 예측값이 퍼져서 다양하게 출력될 수 있는 정도로 해석할 수 있습니다.

 

variance를 수식으로 나타내면 다음과 같습니다. 말 그대로 평균과 변량의 편차를 제곱하여 나타낸 것입니다.

 

  • bias와 variance의 크고 작음에 따라서 4가지 경우로 분류하고 그 경우에 따라서 머신 러닝 모델이 예측한 값들의 분포와 정답 간의 관계를 한번 살펴보도록 하겠습니다. 각 그림의 원의 중심인 빨간색이 정답 데이터의 위치라고 생각하시면 됩니다.
  • ① Low Bias & Low Variance : 예측값들이 정답 근방에 분포되어 있고(bias가 낮음) 예측값들이 서로 몰려 있습니다. (variance가 낮음)
  • ② Low Bias & High Variance : 예측값들이 정답 근방에 분포되어 있으나 (bias가 낮음) 예측값들이 서로 흩어져 있습니다. (variance가 높음)
  • ③ High Bias & Low Variance : 예측값들이 정답에서 떨어져 있고 (bias가 높음) 예측값들이 서로 몰려 있습니다. (variance가 낮음)
  • ④ High Bias & High Variance : 예측값들이 정답에서 떨어져 있고 (bias가 높음) 예측값들이 서로 흩어져 있습니다. (variance가 높음)

 

■ 편향(bias)과 분산(variance) 관계

 

반응형

 

□ Basic 'recipe' for machine learning

 


□ bias and variance trade off

 

bias를 개선하기 위해서는 variance을 일부 포기하는 등의 상충 관계를 가졌습니다. 모델이 복잡해질수록 편향은 작아지고, 분산은 커집니다. 즉 over-fitting 됩니다. 모델이 단순해질수록 편향은 커지고, 분산은 작아집니다. 즉, under-fitting 됩니다. 무조건 편향만 줄일 수도, 무조건 분산만 줄일 수도 없습니다. 오류를 최소화하려면 편향과 분산의 합이 최소가 되는 적당한 지점을 찾아야 합니다. 


■ 마무리

 

'Improving Deep Neural Networks'의 1주차 "Setting up machine learning application"에 대해서 정리해봤습니다.

 

그럼 오늘 하루도 즐거운 나날 되길 기도하겠습니다

좋아요와 댓글 부탁드립니다 :)

 

감사합니다.

 

반응형

댓글