전체 글
-
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..
-
CS231n 2017 lecture 3머신러닝 기초 2019. 7. 26. 15:04
1. Linear Classifier Linear Classifier는 Parametric model의 가장 단순한 형태이다. Parametric model에서 일반적으로 입력 이미지를 x, parameters, 즉 weights(가중치)를 W라 표현한다. Parametric model에서 $f(x, W)$를 수행하면 이미지 카테고리에 대한 각각의 점수가 나온다. CIFAR-10이라면 10개의 점수가 나오는 것이다. $f(x, W)$의 가장 쉬운 형태는 $f(x, W)=Wx$로 단순 두 항을 곱하는 것이다. (이것이 Linear Classifier의 기본이다.) 물론 $x, W$ 모두 벡터이기 때문에 각각의 차원을 나타내면 아래와 같다. 입력 이미지가 32x32x3이기 때문에 하나의 긴 열(column)..
-
CS231n 2017 lecture 2머신러닝 기초 2019. 7. 21. 11:56
https://www.youtube.com/watch?v=OoUX-nOEjG0&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk&index=3&t=0s 1. Image Classification Image의 Object가 무엇인지 인간은 매우 쉽게 알 수 있지만 컴퓨터는 그렇지 못하다. 같은 고양이 사진도 우리는 왼쪽과 같이 이해하지만 컴퓨터는 800 X 600 X 3의 matrix로 이해한다. (x3은 이미지의 RGB 3개의 채널을 의미한다.) Image Classification이 어려운 이유는 크게 아래와 같은 이유가 존재한다. Viewpoint variation(시점 변화) : 객체의 단일 인스턴스는 카메라에 의해 시점이 달라질 수 있다. Scale variation(크기 변..
-
CS231n 2017 lecture 1머신러닝 기초 2019. 7. 20. 23:41
https://www.youtube.com/watch?v=vT1JzLTH4G4&list=PLC1qU-LWwrF64f4QKQT-Vg5Wr4qEE1Zxk&index=2&t=0s Lecture 1은 Introduction 이므로 자세하게 내용 정리는 하지 않고 가벼운 마음으로 들었다. 몇 가지 내용 정리를 해보면 아래와 같다. 1. PASCAL Visual Object Challenge 2. ImageNet PASCAL과 ImageNet모두 Image Classification을 위한 데이터셋들이다. 2017년 당시(지금은 아닐 수 있다.) ImageNet이 가장 큰 데이터셋이었다. 3. Image Classification Challenge ImageNet은 유명한 Image Classification Ch..