Convolution > stride : fiter를 한 번에 얼마나 이동할 것 인지 설정, 위 예시는 stride 1이다. > 필터가 이미지 위에서 stride하는 과정을 상세히 살펴보면 (1+1) + (2x0) + (3x1) + (0x0) + (1x1) + (5x0) + (1x1) + (0x0) + (2x1) = 8로 output의 번째 block이 계산되는 것을 볼 수 있다. > Padding : 인풋 이미지에 zero - padding을 상하좌우에 추가하는 과정 padding을 사용하게되면 stride으로 인해 줄어드는 input크기를 보존할 수 있다. * Convolution에서의 input > Input type : torch.Tensor > Input shape : (N * C * H * W..
Perceptron > 인공신경망은 Neuron의 동작 방식을 본을 따서 만든 것입니다. > Perceptron은 인공신경망의 종류입니다. > 초기 perceptron은 AND, OR 문제를 해결하기 위해서 만들어졌습니다. > AND, OR 문제는 하나의 linear classifier layer로 분류가 가능합니다. > XOR 문제는 하나의 layer로는 해결하지 못합니다. 최소 두 개의 layer가 필요합니다. > XOR 문제를 해결하기 위해서 여러 개의 layer를 이용한 Multilayer Perceptron이 등장하였습니다. > 처음 Multilayer Perceptron idea가 등장하였을 때는 학습할 수 있는 방법이 없었습니다. > Backpropagation을 통해서 Multi layer..
ReLU Problem of Sigmoid > Sigmoid function은 gradient가 saturated되는 문제를 가지고 있다. > 파란색 부분은 gradient가 잘 구해지는 반면에 빨간색 부분은 gradient가 0에 가까운 작은 값으로 구해진다. > Backprob을 통해서 앞 단으로 gradient가 잘 전달 되어야 하는데 0에 가까운 아주 작은 gradient을 전달하다(곱하다)보니 소멸하는 현상이 발생한다. (Vanishing Gradient) ReLu > ReLu는 Vanishing Gradient문제를 일부 해결해준다. > 파란색 영역에서 gradient는 1이기에 x의 값이 양수인 부분에선 Vanishing gradient가 발생하지 않는다. > ReLU이외에 다양한 activ..
Maximum Likelihood Estimation (최대 가능도 추정, 최대 우도 추정) > 어떤 확률변수에서 뽑은 표본(x)을 바탕으로 theta를 추정하는 방법 > 압정을 던졌을 때 두 가지 가능성이 있다. (Class1, Class2) - 이항분포 > 100번을 던졌을 때 Class1 27번 나타남 > Observation값들을 대입을 하게 된다면 theta 대한 함수로 표현이 가능하다. > theta: 압정의 확률분포를 결정하는 파라미터 > 관찰한 데이터를 가장 잘 설명하는 어떤 확률분포 함수의 parameter를 찾아내는과정 > theta가 0.27일때 Likelihood가 가장 높다. > Gradient Ascent를 통해서 Likelihood가 최대가 되는 theta를 찾는다. > Gra..
Multinomial classification > 이전에 Logistic Regression는 두 개의 범주형 class를 분류하는 모델이었습니다. > 예측해야하는 범주형 class가 두 개 이상이면 어떻게 분류하는게 좋을까요? > 범주형 class가 3개 일때 예를 들어보겠습니다. > 먼저 binary classification 방법을 활용하여 총 3개 binary classification[(A or not), (B or not), (C or not)] 모델을 완성합니다. > 각각의 class를 구분하는 3개의 독립적인 모델은 계산을 각각 시행해주어야 하기에 구현이 번거롭습니다. > 이때, 데이터를 따로 입력받지 말고 전체 데이터를 행렬로 입력을 받아서 구현 과정을 간편하게 만들어줍니다. > Log..
범주형 변수를 분류하는 Logistic Regression 모델을 살펴 보겠습니다. > Logistic regression은 (0, 1)의 binary classification을 예측하는 task입니다. 기존의 Linear regression으로는 binary classification 문제를 해결하기 어렵습니다. > Linear regression은 연속형 값을 예측하는데 주로 쓰입니다. > 이러한 문제를 해결하기 위해서 Linear regression 결과 값에 g(z) = sigmoid 함수에 적용시켜 (0, 1)을 잘 예측할 수 있게 만들어줍니다. > 그러나 sigmoid함수는 곡선모양으로 (0, 1)의 값만을 예측하는 모델이 아닙니다. > Decision Boundary를 설정하여 (0 , 1..
여러개의 변수를 가질 때 하나의 값을 예측하는 방법(Multivariate Linear Regression)에 대해서 알아보겠습니다. Multivariate Linear Regression > 세 번의 Quiz 점수(x1, x2, x3)를 이용해서 기말고사의 성적을 맞추는 것이 task > 입력 변수(Quiz 점수)가 3개이기 때문에 weight도 3개입니다. > 입력변수가 100개가 된다면 weight도 100개가 되어서, hypothesis function이 점점 길어질 것 입니다. IN[1] x1_train = torch.FloatTensor([[73],[93],[89],[96],[73]])x2_train = torch.FloatTensor([[80],[88],[91],[98],[66]])x3_tr..
Gradient가 어떻게 작용하는지 자세히 살펴보겠습니다. > 먼저, Gradient를 이해하기 위해서 bias가 없는 간단한 모델을 가정하겠습니다. > H(x) = x 가 데이터를 모두 지나는 정확한 모델 (W=1)이며 cost = 0입니다. > 실제 값과 예측 값의 차이가 작아질수록 Cost 값이 작아집니다. > 정확한 모델을 구현하기 위해서는 Cost값을 최소화 시켜야 합니다. > 우리는 Gradient을 값을 구해서 Gradient의 크기만큼 조금씩 이동해 Cost의 최소값을 구합니다. > Gradient= Cost function의 W의 미분값 > Cost function의 Gradient을 기존의 W값에서 제거해 주면서 Cost값이 최소에 가깝도록 한다. > 이때, Learning rate는 ..