Coursera Machine Learning: Regression Final ( week 1 ~ 3 )

이미지
모든 Regression 파트가 끝났다. 다음 파트인 분류를 해야하지만 강의가 아직 열리지 않은 관계로 모든 챕터를 정리하고자 한다. 코세라 회귀 부분을 다 정리하고 이제 youtube에서 DeepLeaning 기초 강의 부분에서 회귀 부분을 공부할 것이다. WEEK 1 회귀 부분의 시작이다.  그만큼 기초와 단어에 대해 공부하는 시간이다. 이번 주의 목표는 2가지라고 할 수 있다. 1. ML의 기본 흐름과 기초 2. RSS 의 개념 3. RSS 을 통한 weight 구하기  3-1. Set Gradient = 0  3-2. Gradient Descent 1. ML의 기본 흐름과 기초 강의에서는 house pricing 이라는 주제로 회구 파트를 처음부터 끝까지 이어간다. 그래서 위의 기본 개념을 설명할 때 집에 관한 말이 쓰여있다. y hat , f hat 에 대한 개념을 잘 숙지해야 나중에 헷갈리지 않는다. y 는 진짜 집 가격이고 y hat 은 내가 예측한 집 가격이다. 중요한 건 x는 y값을 결정하는데 영향을 주는 변수이다. 위 그림에서는 집의 크기라는 변수를 두었다. 변수의 갯수가 많아질수록 차원은 커지고 복잡해진다. 2. RSS 개념 ML에서는 cost를 모두 계산한 함수 RSS 함수가 있다. Residual sum of squares 의 줄임말이다. 즉, 예측값과 진짜 값의 차이의 제곱을 모두 더한 값을 갖는다. 식으로 보이면 위와 같다. RSS 는 weight 값들인 w0,w1을 인수로 갖는다. weight 값들이 많아지면 많아질수록 더 많은 w0,w1,w2,...,wn 까지 갖을 수 있다. 그리고 위의 식 중에 대괄호에 묶인 w0-w1xi가 곧 y hat이다. 직관적으로 보면 yi는 진짜 값이고 대괄호에 묶인 값은 y hat이므로 진짜 값과 예측값을 빼고 있다는 것을 알 수 있다. ...

Coursera week 6 Machine Learning: Regression (Final)

이미지
1.  Motivating local fits 이번에는 knn과 kernel regression에 대해 알아볼 것이다. 그전에 fitting 에 대해 알아보자. fitting 에는 Global fit 과 Local fit이 있다. 우리가 이 때까지 공부했던 것들이 Global fit이라면  아래의 그래프처럼 구간을 나누어 fitting 하는 것을 Local fit이라고 한다. 2. Nearest neighbor regression knn의 동작 원리는 위와 같다. 말 그대로 가장 가까운 값의 분류값에 속하는 것이다. 내가 배운 책에서는 유클리드 공식을 이용해 거리 계산을 했었는데 여기서는 아직 x 값을 이용해 거리 계산을 한다. 나중에 유클리드 거리 계산이 나올 거 같다.. 이 강의에서는 좀 다른 유클리드 거리 계산법을 사용한다. 앞에 weight를 두어 비중을 달리한 거리 계산 법이다. 이것 외에도 위의 사진에 나온 것처럼 여러 계산 방법이 존재한다. knn은 위와 같은 알고리즘의 형태를 띈다. 여기서 내가 주의 깊게 보고 싶은 것은 알고리즘의 흐름은 이미 알고 있었으나 Dist2NN = Omeaga 로 두고 반복문을 두고 Omega < Dist2NN 이라는 효율적인 부분이다. 알고리즘이 약한 나에게는 이것도 놀라운 부분이었다. 3. k-Nearest neighbors and weighted k-nearest  neighbors 위 그림은 k-nn 알고리즘을 나타낸 것이다. 이 알고리즘을 보고 내가 알던 knn과 조금 다르다는 것을 깨달았다.. 이제는 weighted k-NN에 대해 알아보자. cqNN1 같은 변수를 weight라고 하며 가중치를 달리해 정확도를 높인다. 그렇다면 어떻게 weight를 정의할까? 간단하게는 거리가 멀면 weight를 작...

Coursera week 5 Machine Learning: Regression

이미지
1.  Feature selection via explicit model enumeration 이번에는 중요한 feature selection이다.  이 과정은 계산 시간을 줄여주고 정확도를 높여준다. 여기서 짚고 넘어가야하는 것은 Lasso Regression, Ridge Regression은 Linear Regression의 여러 방법 중 하나이다. Ridge Regression 은 계수(w) 축소를 통해 overfit을 예방하고 정확도를 높이고 Lasso Regression 은 Ridge Regression의 장점을 받아들이고 feature selection을 통해 정확도를 더 높였다. Feature selection은 예측 모델에 영향을 주는 변수들만 따로 구해 모델링하는 것이다. 이제 Feature selection의 방법들에 대해 알아보자. Option 1 : All subsets 이 방법은 변수가 없는 상태로 처음 시작해 점점 변수를 늘려 가며 RSS를 확인한다. 여기서 주목해야할 것은 그냥 N개의 변수 중에 k개를 뽑아서 RSS 확정짓는 것이 아니라 N개 중 k개를 뽑는 모든 경우의 수를 모두 계산해 가장 작은 값을 선택하는 것이다. 그러나! 여기서 가장 작은 값을 뽑는 것이 좋은것인가!? 그렇지 않다. 왜냐하면 모델 복잡도가 증가하기 때문이다. 즉, 트레이닝 셋에 딱 맞는 모델링이 되기 때문에 정작 테스트 셋에는 정확도가 떨어질 확률이 높다. 모델 복잡도를 선택하기 위해 여러 방법이 존재한다. 1. validation set으로 평가한다. 2. cross validation 을 수행 3+. BIC 같은 모델 복잡도를 줄이는 다른 행렬을 사용 all subset 방법은 직관적이여서 좋아보이지만 너무 많은 계산을 해야한다. Option 2 : Greedy Algorithm 탐욕 알고리즘의 순서는 위와 같다. 탐욕 ...