본문 바로가기

SungKim3

[PyTorchZeroToAll] 9. Softmax Classifier 이번 시간에는 신경망에서 폭넓게 쓰이는 softmax classifier에 대해서 알아보도록 하겠다. 손으로 쓴 숫자들이 0~9 사이에서 무엇인지를 알아보는 MNIST 데이터셋이다. 이것은 classification 문제이고, 하나의 입력을 받아서 0 또는 1의 하나의 출력을 내는 이미 존재하는 logistic regression model을 사용할 수 있을 것이다. 그러나 우리는 0~9까지의 10개가 가능하기 때문에 출력이 10개인 것이 더 합당할 것이다. 이것을 어떻게 구현하고 출력을 예측해야할 것인가? 우리는 matrix 곱셈을 이용해서 이것을 계산할 수 있다. 저번 시간에 왼쪽 행렬과 같이 입력이 2개일 때, 가중치 행렬이 2 x 1의 형식이어서, 출력 결과를 올바르게 낼 수 있었다. 그렇다면, .. 2020. 1. 27.
[PyTorchZeroToAll] 3. Gradient Descent 이번 시간에는 손실 함수의 최소값을 알기 위해서 사용하는 gradient descent 알고리즘에 대해 알아보도록 하겠다. 저번 시간에 배웠듯이 가중치값을 달리하면서 에러의 평균값들을 알아내서 손실 그래프를 그릴 수 있었다. 우리는 손실 함수의 값을 최소로 하는 가중치를 사용하여 모델을 훈련시키고 싶은 것이다. 그렇다면 이번에는 Linear Regression Error에 대해 알아보도록 하겠다. 위 예에서는 파란 선이 맞는 weight을 사용한 것이므로 우리는 주황색이든 초록색이든 선에서 시작해서 파란선으로 가까이 가게 해야한다. 우리가 해야할 것은 손실 함수를 최소로 하게 하는 가중치 weight을 찾는 것이고, 이것을 pytorch에서는 argmin 함수로 알아낼 수 있다. 위의 arg_w_minl.. 2020. 1. 21.
[PytorchZeroToAll] 2. Linear Model 저번 시간에는 machine learning에 대해 간단하게 배웠고 어떻게 작동하는지 알아보았다. 이미 답이 있는 labeled training dataset으로 모델을 일단 훈련시키고 나면 test dataset으로 우리의 모델을 검증한다. 이런 종류의 머신러닝을 지도학습(Supervised Learning)이라고 하고, 이것은 답이 있는 데이터로 우리의 모델을 훈련시키고 이끌기 때문에 그렇다. 우리의 모델을 디자인하기 위해서 가장 먼저 할 것은 입력 데이터과 출력 데이터의 관계를 파악하는 것이다. 위의 예시 데이터의 경우에는 입력과 출력이 선형(linear)의 관계를 가지고 있어서 비례한다. 선형 모델는 매우 쉽고 간단하지만 머신러닝을 처음 시작하기에 딱 적합하다. x라는 입력값을 받으면 선형 모델로.. 2020. 1. 21.