분류 전체보기
-
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는 데이터가 가..
-
Assessing Performance머신러닝 기초 2019. 9. 28. 21:36
완성된 모델의 성능을 측정하기 위해서는 실제값과 예측값의 차이인 loss값을 비교하는 것이 편하다. loss를 측정하는 함수를 loss function이라 하는데 아래와 같이 표현된다. 주로 loss function은 Absolute error, Squared error 두 가지를 사용하며 각각 다음과 같다. 이제 이 error를 적용할 데이터셋이 필요한데 가장 쉬운 방법은 training 데이터셋에 적용하는 것이며 이를 training error라 한다. 1. Training error 그래프의 보라색 점들 (training 데이터셋)을 이용해 RSS를 최소화하는 모델을 fit 한다. 이때 training error는 아래와 같이 정의된다. 그렇다면 training error는 모델이 복잡할수록(mod..
-
Numerical vs. analytic gradients머신러닝 기초 2019. 9. 23. 23:09
https://hydragon-cv.info/entry/CS231n-2017-lecture-4-part-1 CS231n 2017 lecture 4 - part 1 1. Optimization Optimization(최적화)는 최저의 loss를 가지는 가중치 $W$를 찾는 과정이다. 이 과정은 마치 넓은 골짜기를 걸어 다니며 고도가 제일 낮은 곳을 찾는 과정과 비슷하다. 물론 임의의 $W$를 계속.. hydragon-cv.info 위 글의 앞부분과 내용이 동일하므로 생략한다.
-
Linear regression머신러닝 기초 2019. 9. 22. 12:44
만약 집의 면적을 알고 있을 때 집값을 예측하는 모델을 만든다고 하자. 면적과 가격의 관계를 알기 위해 아래와 같이 Regression 모델을 만들 수 있을 것이다. f( )는 y와 x의 관계를 보여주는 함수 부분이며 epsilon은 noise를 의미한다. 아래는 몇 가지 regression model을 보여준다. Simple linear regression model은 단순히 직선으로 표현된 모델이다. X는 input, feature를 나타내며 W0는 offset, bias를 W1는 모델의 기울기를 나타낸다. 이 W0와 W1은 parameter이며 흔히 regression coefficinet라 부른다. 선형뿐만 아니라 더 높은 차수의 모델도 가능하다. polynomial 모델은 아래와 같다. 이러한 ..