머신러닝 기초
-
Neural Networks #3머신러닝 기초 2019. 11. 29. 23:51
실제로 neural network를 이용해 학습을 하는 과정은 매우 어려운 과정이다. 특히 아래와 같은 gradient descent 식에서 learning rate를 결정하는 것은 매우 어렵다. learning rate가 너무 작다면 학습 속도가 느리며 local minima에 갇힐 수 있다. 반대로 learning rate가 너무 크다면 학습이 불안정해지고 발산할 수 있다. 실제로 매 학습마다 적절한 learning rate를 새로 결정하는 것은 매우 어렵기 때문에 adaptive learning rate라는 방식을 사용한다. 대표적으로 momentum, adagrad, adadelte, RMSProp, adam 등이 존재한다. 이러한 알고리즘은 아래 그림과 같이 SGD 등이 local minima나..
-
Neural Networks #2머신러닝 기초 2019. 11. 25. 00:00
앞부분 내용은 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 와 동일하므로 생략한다. 이제 모든 값들이 벡터로 구성되어있다 하자. 이때 라 하면 Jacobian matrix는 와 같다. 이제 라 하자. 이를 그림으로 표현하면 다음과 같다. q=Wx에서 이므로 이다. 같은 방법으로 에서 이다. 또한 이다. 따라서 아래와 같다.
-
Neural Networks #1머신러닝 기초 2019. 11. 15. 13:10
앞서 계산한 예시는 모두 linear 하게 분류가 가능한 데이터들이었지만 실제로는 nonlinear 한 경우가 더 많다. 이러한 데이터들은 linear classifier를 이용해 분류할 수 없다. nonlinear 한 분류의 대표적인 예시로 Image classification이 있다. 이러한 nonlinear 한 분류 문제를 해결하기 위해서는 neural networks라는 개념이 필요하다. neural networks는 아래와 같이 표현된다. 한 개의 neural network는 linear classifier와 매우 비슷하다. 다만 출력단에 activation function(그림에선 sign 함수)가 연결된 형태이며 activation function이 sign 함수인 경우 앞서 설명한 perc..
-
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을 의심해 봐야한다.