머신러닝 기초
-
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 모델은 아래와 같다. 이러한 ..
-
Maximum likelihood estimation머신러닝 기초 2019. 9. 20. 22:47
예를 들어 압정을 던져 앞면과 뒷면이 나올 확률을 계산한다고 하자. 앞면, 뒷면 2가지 경우만 존재하므로 이 확률 분포는 binomial distribution을 따른다. 각각의 확률은 다음과 같다고 하자. 압정을 던지면 각각의 시행은 independent identically distributed(i.i.d)를 만족한다. 따라서 다음과 같이 표현할 수 있다. 그렇다면 앞면과 뒷면의 발생 횟수가 주어졌을 때 앞면과 뒷면이 나올 확률을 어떻게 계산할 수 있을까? 이때 필요한 것이 maximum likelihood estimation(MLE)으로 관측된 데이터의 가능성을 최대화하는 확률(theta)을 구하는 과정으로 아래와 같이 나타낸다. argmax는 주어진 값을 가장 크게 만드는 theta를 반환하는 함..
-
CS231n 2017 lecture 6 - part 1머신러닝 기초 2019. 8. 2. 20:02
1. Activation Functions activation function의 종류는 아래와 같은 것들이 있다. 가장 먼저 사용된 activation function은 Sigmoid이다. 현제는 이 activation function을 거의 사용하지 않는데 그 이유는 아래와 같다. 크게 3가지 문제가 있다. 우선 neuron이 saturate(포화) 된다는 문제가 있다. 만약 sigmoid의 입력이 10 또는 -10과 같이 다소 큰 값이라면 local gradient $\frac{\partial \sigma}{\partial x}$는 거의 0이 된다. 따라서 back propagation으로 전달되는 gradient $\frac{\partial L}{\partial x}$ 역시 0 이므로 back pr..
-
CS231n 2017 lecture 5머신러닝 기초 2019. 7. 31. 23:02
1. Convolutional Neural Networks Convolutional Neural Networks(CNN)의 역사는 넘어간다. 아래 그림은 초창기의 CNN 구조 중 하나이다. CNN의 layer들은 필터에 의해 연산된다. 예를 들어 아래와 같이 입력 이미지의 크기를 32x32x3이라 하고 필터의 크기를 5x5x3이라고 하자. 이때 주의할 점은 필터의 depth(여기서는 x3)는 항상 이미지의 depth와 그 크기가 같아야 한다는 점이다. 이러한 필터는 이미지와 convolution 연산을 하는데, 이미지 위의 5x5x3의 원소들과 필터의 5x5x3 원소들과의 내적을 하게 된다. 이때 bias항이 더해진다. 이러한 과정은 convolution과 약간의 차이가 있지만 결과적으로 거의 유사하여 ..
-
CS231n 2017 lecture 4 - part 2머신러닝 기초 2019. 7. 30. 00:03
만약 한 노드의 출력단이 그림과 같이 2개 이상으로 분리되어있는 경우 gradient는 각 출력 노드에서 계산한 gradient의 합으로 계산된다. 실제로 $x, y, z$의 값은 실수가 아닌 벡터인 경우가 대부분일 것이므로 이때 gradient는 Jacobian matrix(자코비안 행렬, 다변수 벡터 함수의 도함수 행렬이다.)로 표현될 것이다. Jacobian matrix는 아래와 같이 정의된다. 4. Vectorized operations 이제 backpropagation을 행렬에 적용해본다. 위의 그림에서 $\frac{\partial L}{\partial x}=\frac{\partial f}{\partial x}\frac{\partial L}{\partial f}$ 이므로 local gradien..
-
CS231n 2017 lecture 4 - part 1머신러닝 기초 2019. 7. 28. 20:05
1. Optimization Optimization(최적화)는 최저의 loss를 가지는 가중치 $W$를 찾는 과정이다. 이 과정은 마치 넓은 골짜기를 걸어 다니며 고도가 제일 낮은 곳을 찾는 과정과 비슷하다. 물론 임의의 $W$를 계속 업데이트해 optimization을 할 수도 있지만 이 방법은 극단적으로 오래 걸린다. 그래서 사용하는 방법은 slope(경사)를 이용하는 것인데 loss가 감소하는 방향으로 $W$를 변화시키다 보면 결국에는 최적의 $W$를 찾을 수 있을 것이다. 일차원 벡터에서의 경사는 아래와 같이 표현된다. $$\frac{df(x)}{dx}=\lim_{h \rightarrow 0}\frac{f(x+h)-f(x)}{h}$$ 만약 고차원의 벡터라면 gradient를 이용해야 된다. gra..