전체 글
-
Perceptron Algorithm머신러닝 기초 2019. 11. 10. 13:18
Classification의 또 다른 알고리즘으로 perceptron 알고리즘이 있다. 예를 들어 y=-1과 y=+1의 2개의 class를 구분하는 linear classification을 생각해보자. 그러면 perceptron 알고리즘의 prediction은 다음과 같이 주어진다. sign 함수는 아래와 같이 주어지는 함수이다. 또한 weight의 초기값은 다음과 같다. (물론 random 한 값으로 초기화해도 무방하다.) 이제 perceptron 알고리즘은 아래와 같이 표현된다. 가중치를 업데이트하는 부분이 다소 이해가 안 될 수 있다. 하지만 예를 들어 y_t=+1이지만 y_hat, 즉 predict 값이 -1이라 가정하자. 따라서 값이 증가하여 양수가 돼야 하므로 를 만족한다 따라서 weight에..
-
Clustering머신러닝 기초 2019. 11. 6. 17:43
앞서 소개한 k-NN은 특정 데이터가 어느 데이터 군집에 제일 가까운지 계산하는 것이었다. 하지만 만약 여러 개의 데이터를 몇 개의 데이터 집합으로 분류하려면 어떻게 해야 할까? 예를 들어 뉴스 기사를 사회, 경제, 스포츠 등으로 분류하는 문제를 예를 들 수 있다. 이러한 학습은 정답이 정해져 있지 않기 때문에 unsupervised learning이라 불리며 이렇게 분류하는 방식을 clustering이라 한다. 위와 같이 뉴스 기사의 내용 중 특정 2개의 단어의 개수로 뉴스 기사를 표시하면 빨강, 초록, 파랑의 3개의 cluster(군집)으로 표현이 가능할 것이다. 따라서 clustering의 input은 데이터셋, output은 각 데이터 셋이 어느 cluster에 포함되는지에 대한 정보가 될 것이다..
-
Nearest neighbor regression머신러닝 기초 2019. 11. 3. 13:50
예를 들어 Square feet에 따라 집값을 예측하는 모델을 만든다고 가정하면 그 집값은 분명히 비슷한 크기의 Square feet를 가지는 집과 가격이 비슷할 것이다. 만약 아래와 같이 4개의 집에 대한 데이터를 알고 있다고, 가장 비슷한 크기의 Square feet와 집값이 같다고 하면 우리의 모델은 아래의 주황색 선과 같을 것이다. 이렇듯 가장 가까운 1개의 데이터만 찾는 문제의 경우 1-NN(Nearest neighbor)이라 하며 아래와 같이 정의된다. x, y는 위의 그래프에 따르며 x_q는 현재 내가 찾고자 하는 데이터이며 x_i는 데이터 셋의 i번째 데이터이다. 이때 predict는 이다. 그렇다면 distance는 어떻게 계산할 수 있을까? 만약 좌표평면 위라면 아래와 같이 각 데이터 ..
-
-
Logistic regression #2머신러닝 기초 2019. 11. 3. 00:05
이제 linear classifier를 시각화해보자. 우선 아래와 같이 feature가 3개인 경우 (즉 1차인 경우) 위와 같이 dicision boundary가 결정된다. 위와 같은 상황에서는 dicision boundary가 데이터를 적절히 나누지는 못했다. 이제 차수를 높여 2차인 경우에는 아래와 같다. feature수가 증가하니 dicision boundary가 데이터를 적절히 나누기 시작했다. 이제 차수를 더 높이면 이렇게 데이터를 과도하게 나누는 dicision boundary가 발생하며 이를 overfitting이라 한다. 위와 같이 coefficient들이 커지기 시작하면 overfitting을 의심해 봐야한다.
-
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를 고려하는 것이 더 일반적이다. 우선 네모 친 부분의 수..