머신러닝 기초
-
Logistic regression #1머신러닝 기초 2019. 11. 2. 23:45
지금까지의 모델들과 달리 일종의 좋고 나쁨을 결정하는 모델을 만든다고 가정하자. 예를 들어 식당에 대한 리뷰글을 통해 좋은 식당인지(+1), 나쁜 식당인지(-1) 판단하는 모델 일수 있다. 이렇게 특정 클래스로 분류하는 모델을 Linear classifier이라 한다. 식당을 예로 들면 리뷰글에 awesome, awful 등의 단어수가 식당의 좋고 나쁨(predicted class)를 결정하는 중요한 요소가 될 것이며 이러한 요소들을 이용해 리뷰글의 점수(score)를 결정할 수 있을 것이다. 결국 우리의 linear classifier는 이 점수에 따라 점수가 0보다 크다면 predict는 +1(좋은 식당), 0보다 작다면 -1(나쁜 식당)으로 결정되게 할 수 있을 것이며 이것이 linear class..
-
Geometric intuition of solution머신러닝 기초 2019. 10. 12. 23:09
지금까지 본 regression의 2가지 방법인 ridge와 lasso를 그래프를 이용해 표현해보겠다. 우선 편의를 위해 2개의 feture와 weight(w0, w1)을 가지는 모델을 고려해보자. 우선 ridge의 경우 cost function이 아래와 같음을 상기하자. 빨간색 부분과 초록색 부분을 나누어서 생각해보자. 우선 빨간색 부분을 전개하면 이런 형태이므로 w0와 w1에 대해 타원의 방정식이다. 좌표평면 위에 표현하면 다음과 같다. 등고선과 비슷한 같은 타원 위의 점들은 모두 동일한 RSS를 가진다. 타원의 크기가 작을수록 RSS의 값도 작아지며 결과적으로 타원의 중심에서 최소의 least square RSS를 가진다. 이제 초록색 부분을 고려해보자. 초록색 부분은 쉽게 원의 방정식임을 알 수 ..
-
Lasso Regression #3머신러닝 기초 2019. 10. 11. 23:07
(시간 관계상 강의 자료의 수식을 그대로 사용했다.) 그렇다면 Lasso Regression에서 lambda는 어떻게 결정할까? 사실 ridge regression 하고 동일하다. 아래와 같이 vaildation set을 이용해 lambda를 결정하면 된다. 앞선 lasso의 cordinate decent 알고리즘을 설명할 때 soft thresholding이 어떻게 등장한 수식인지에 대해 설명하지 않았으므로 이를 증명해보고자 한다. 우선 lasso의 cost function은 아래와 같음을 상기하자. feature가 normalized 되지 않았음에 주목하자. cordinate decent를 설명할 때 normalized 되지 않은 feature를 고려하는 것이 더 일반적이다. 우선 네모 친 부분의 수..
-
Lasso Regression #2머신러닝 기초 2019. 10. 9. 14:38
이제 lasso regression을 실제로 적용해보자. 앞선 ridge regression과 마찬가지로 closed-form solution과 gredient descent 알고리즘 2가지 방식을 이용한다. lasso의 total cost는 다음과 같다. 따라서 closed-form을 위해서는 |w|의 derivative(도함수)가 필요하다. 이를 그래프로 표시하면 다음과 같다. 문제는 원점에서의 도함수가 존재하지 않다는 것이다. 따라서 lasso regression의 closed-form solution은 존재하지 않는다. 이제 다른 방식을 이용해보자 lasso에서는 coordinate descent라는 새로운 방식을 이용한다.(위의 도함수 문제로 기존의 gredient descent를 사용하지 못한..
-
Lasso Regression #1머신러닝 기초 2019. 10. 9. 12:14
만약 모델을 학습할 때 입력되는 feature수가 너무 많다면 (예를 들어 Lot size, Single Family, Year built, Last sold price, Last sale price/sqft, Finished sqft, Unfinished sqft 등등) 효율성 측면에서 불리하다. 만약 feature selection을 통해 우리가 필요한 feature만 추출하여 weight를 sparse(0이 많이 포함된 것)하게 만들 수 있다면 좀 더 효율적으로 학습할 수 있을 것이다. 그렇다면 어떻게 feature selection을 할 수 있을까? 가장 간단한 방법은 모든 경우의 수를 고려해보는 것이다. 문제는 고려해야 할 feature의 개수가 늘어나면 경우의 수가 기하급수적으로 증가해 실질적..
-
Ridge Regression #2머신러닝 기초 2019. 10. 5. 22:53
이제 regression에 대한 학습과 평가가 남았다. 앞서서 모델을 학습할 때 아래와 같이 데이터셋을 training set과 test set으로 나누어 학습한다고 했다. 이 경우 training set을 이용해 모델을 학습하고 test set을 이용해 모델을 평가한다. 문제는 test set에 대한 error를 최소화하는 방식으로 모델이 학습되기 때문에 test set에 대해 overly optimistic 되며 따라서 generalization error는 오히려 증가한다. 실제로 이 문제를 해결하기 위해 test set을 2개로 나누어 사용하며 이 set을 validation set이라 한다. 그렇다면 validation set과 test set의 차이는 무엇일까? 보통 learning rate,..
-
Ridge Regression #1머신러닝 기초 2019. 10. 3. 18:05
앞선 글들에서 regression의 차수가 증가하면 모델이 데이터에 overfit 되는 문제를 다뤘다. 또한 overfitting은 매우 큰 regression coefficient 때문에도 발생한다. 그렇다면 overfitting과 데이터수, input과의 관계는 어떨까? 우선 일반적인 regression model은 아래와 같다. 만약 아래와 같이 관측된 데이터수가 많다면 overfitting은 쉽게 일어날 것이며 데이터수가 적다면 overfitting이 일어나기 어려울 것이다. 만약 input(집값을 예로 들면 침대 개수, 화장실 개수, 거실 크기 등등)이 많다면 역시나 아래와 같이 overfit 되기 어려울 것이다. Overfitting 문제를 해결할 수 있는 또 다른 방법은 Cost functi..
-
Bias-Variance Trade Off머신러닝 기초 2019. 9. 29. 00:05
자세한 설명은 뒤에서 다루겠지만 error는 noise, bias, variance 3가지 성분으로 구성된다. bias는 참 값들과 추정 값들의 차이(또는 평균 간의 거리)를 의미하고, variance는 추정 값들의 흩어진 정도를 의미한다. 아래 그림을 참고하자. 예를 들어 (b) 모델은 추정 값들을 평균한 값은 참 값과 비슷한데(bias가 작은데), 추정 값들의 variance가 커서 loss가 큰 모델이다. (c)는 bias가 크고, variance가 작은 모델이고, (d)는 둘 다 큰 모델이다. 각각의 성분이 error에 미치는 영향은 아래와 같다. 1. Noise noise는 우리가 학습시키고자 하는 모델과 독립적이기 때문에 학습을 통해 최소화하는 것이 불가능하다. 따라서 noise는 데이터가 가..