AI/Coursera Machine Learning

[Coursera: Machine Learning] 2주차 리뷰 - Multi Features, Feature Scaling, Normal Equation...

찌리남 2022. 1. 10. 21:51
728x90

2주 차부터는 본격적으로 코딩도 하기 시작합니다. 저에게는 생소하지만 'Matlab'에서 'Octave'라는 도구로 코드를 짜게 됩니다. 사실 코드라기보다는 수업에서 배운 수학 공식 및 데이터를 편집하는 용도의 도구라고 여기면 될 것 같습니다. 2주 차 수업의 절반은 슬라이드를 띄워 놓고 강의를 했다면 나머지 절반은 'Octave'로 데이터를 가공하고 연산하는 방법을 배웁니다. 난생처음 보는 툴이기 때문에 튜토리얼들을 정신없이 읽다 보면 시간이 금방 갑니다.

 

2주 차에서 배운 내용들

  • Multiple Features
  • Gradiemt Descent for Multiple Variables
  • Feature Scaling
  • Learning Rate
  • Polynomial Regression
  • Normal Equation
  • Normal Equation Noninvertibility

Multiple Features

여러 개의 변수를 가진 선형 회귀를 다변량 선형 회귀(multivariate linear regression)라고 부릅니다. 여러 개의 변수를 갖게 되면 더 많은 정보를 담을 수 있게 되지만 그에 따라 더 많은 선형 회귀 분석 연산량이 필요하게 됩니다. 경사 하강 방정식도 형태는 같지만 변수의 개수만큼 반복하게 되고, 더 효율적인 계산을 위해 Feature Scaling도 필요하고, 또 적절한 Learning Rate 설정도 필요하게 됩니다.

 

경사 하강법의 연산 속도를 증가시키기 위해서 입력값들을 비슷한 범위 내에 두는 것이 Feature Scaling입니다. Feature Scaling을 하는 이유는 범위가 같지 않으면 경사 하강법 시행 시에 서로 값이 변화하는 속도가 다르기 때문입니다. 예를 들면 범위가 -1 <a <1 인 입력 값과 -100 <b <100인 입력값 동시에 1만큼 변화시켰다고 가정했을 때 a는 한 번에 전체 범위의 절반 이상을 이동하게 되지만 b는 200 분의 1만 이동하게 됩니다. 대표적인 Feature Scaling 방법으로는 Normalization이 있는데, μ는 Feature의 평균을 이야기하고 s는 표준 편차를 이야기합니다. 

Feature Scaling: Standardization

Learning Rate

Learning Rate의 적절한 설정은 학습 속도에 지대한 영향을 끼칩니다. Learning Rate는 딥러닝 학습할 때도 가장 중요한 Hyper Parameter 중 하나입니다. Learning Rate를 너무 크게 설정하면 비용 함수의 값이 상승하거나 하강하지 않습니다. 반대로 너무 작게 설정하면 비용 함수의 값이 너무 느리게 감소합니다. 이 둘 사이에서 적절한 값을 찾는 것은 쉬운 일은 아니지만 굉장히 중요한 일입니다.

Polynomial Regression

선형 회귀 분석을 통해 얻는 우리의 가설(Hypothesis)이 굳이 직선일 필요는 없습니다. 오히려 직선보다 다항식으로 생기는 곡선 그래프가 데이터에 더 적합할 수도 있습니다. 이를 위해서 2창 방정식, 3차 방정식 등으로 가설 함수를 바꾼다면 더 데이터에 적합한 선형 회귀 가설을 만들 수 있습니다. 하지만 이런 식의 접근법은 feature scaling의 중요도가 더 높아집니다. 왜냐하면 다항식에서 입력 값이 지수 상승이 일어나기 때문입니다.

 

Normal Equation

경사 하강법 외에 비용 함수를 최소화 시키는 방법은 정규 방정식(Normal Equation)입니다. 이것은 경사 하강법과는 다르게 반복 연산 없이 모든 θj에 대해 편미분하여 최적의 θj를 찾는 방법입니다. 하지만 데이터의 feature가 10000개 이상이 되면 효율성이 떨어진다는 단점도 있어서 경사 하강법이 더 좋은 방법일 수 있습니다. 그리고 feature가 많아지면 X^T 값을 구하는 시간이 늘어나기 때문에 유사한 feature가 여러 개인 경우 하나만 남기고, 보유한 데이터보다 feature가 많다면 feature 일부를 지우거나 regularization을 이용해야 합니다. 

Coursera vs Fast Campus

이번 주 강의에서 Fast Campus 강의보다 좋았던 점은 역시 이론을 왜 배우는지 알게 된다는 것입니다. Fast Campus 강의는 실무 위주의 강의라서 이론은 후딱후딱 지나가는데 너무 어려워서 사실상 뇌 정지 오는 경우가 많았습니다. 반대로 Coursera 강의는 떠먹여 주듯 설명해서 수학에 약해도 이해할 수 있게 되었고 강의 끝나고 나오는 숙제를 하면 강제로 복습하게 되어서 강의 한 번 들으면 자동으로 3번은 복습하게 되어 학습 효과가 좋았습니다. 

728x90
반응형