👩‍💻LEARN : ML&Data/Lecture

[Supervised Machine Learning: Regression and Classification] #5. Gradient descent in practice

쟈니유 2023. 3. 25. 16:54
728x90

주말에 공부하는 나의 모습

회사원일때 좋았던 점 = 주중엔 노답인데 주말엔 뇌빼고 놀 수 있음

회사원일때 싫었던 점 = 회사일이 내 인생으 ㅣ전부가 된 느낌 (업무 커버리지가 넓어서 주중엔 맨날 일생각만 함...)

 

vs 

 

공부하니까 좋은점 = 내 맘대로 일정 짜서 공부하면됨

공부하니까 싫은 점 = 근데 그게 주말까지 이어짐 

 

아니야 그래도 아직은....할만하다..화이팅! ^^ 

 


#5. Gradient descent in practice 

 

Feature scaling 

: 경사하강법이 더 빠르게 수행될 수 있도록 하는 테크닉 중 하나 

 

Feature size and parameter size 

Feature size와 parameter size는 서로 반비례 하게 됨  

(Feature size가 클수록 이에 해당하는 parameter는 작아짐. 둘을 곱하기 때문) 

→ 경사하강법 수행 시 contour plot 에서 타원에 가깝게 나타나면서 step수가 많아지는 등 성능이 떨어질 수 있음 

이를 방지하기 위해 x들을 rescale (e.g. 0~1사이로 정규화) 하면 contour plot이 원에 가까워지면서 경사하강법 성능이 올라갈 수 있음 

 

How to scale Feature 

Max normalization : x 를 x의 최대값으로 모든 x들을 나누면 0과 1 사이의 값으로 정규화됨 

Average normalization :x를 x의 평균으로 정규화하면 x가 -1 ~ 1 사이 값으로 정규화됨 (xi - 평균값 / x의 최대값 - x의 최소값)  

Z-score normalization : xi - xi의 평균값 / x의 sd(표준편차) 

 

→ xi들의 range를 보고 너무 튀는 x (다른 애들에 비해 Range가 너무 넓거나 작을 경우)는 rescale하는 것이 좋다 

 

Checking gradient descent for convergence 

방법1. 그래프로 보기 

우리의 목적이 J(w,b)를 최소화하는 것이므로, Y - J(w,b), X - epochs 인 그래프를 그려서 더 이상 J(w,b)가 작아 지지 않는 지점을 찾는 것 

방법2. Automatic convergence test 

epsiilon = 0.001 (or else) 로 선언하고, J(w,b)가 더이상 한 iteration에서 0.001 이상 줄어들지 않는 경우를 찾는 것 

 

Choosing the learning rate 

학습률은 0.001, 0.01, 0.1 등으로 늘려가보면서 이에 따른 J(w,b) 와 iteration간의 그래프를 보며 iteration 수에 따라 cost가 줄어드는 학습률을 찾을 수 있음 

 

Feature engineering

데이터 특성을 바탕으로 기존 feature 바탕으로 새로운 feature를 만들어 내는 것 (조합하거나, 기존 feature를 수정하거나 등) 

 

 

Polynomial regression 

다항회귀는 비선형 데이터를 학습하기 위해 선형모델을 사용하는 기법. 각 변수의 거듭제곱을 새로운 변수로 추가하고 이 확장된 변수를 포함한 데이터셋에 선형모델을 훈련시킴

  • 이럴 경우 feature scaling이 매우 중요해짐 (제곱하면 수가 많이 커지기 때문) 
  • 아니면 제곱 대신에 x에 루트를 취하는 방법도 있음