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는 ..
예제를 통해서 선형 모형(Linear regression)을 설명하겠습니다. > X(학습시간), Y(점수)이며 주어진 데이터를 바탕으로 학습시간에 따른 점수를 예측하는 것이 Task입니다. > Training dataset - 모델을 구축하기 위해서 train하는 데이터, Test dataset - 모델이 잘 구축되었는지 test하는 데이터 > 학습 모형은 선형 모델을 가정합니다. > 학습시간에 따른 점수를 잘 예측 할 수있는 선형 모델의 W, b를 찾는 것이 목표입니다. Weight Initailization In[1] W = torch.zeros(1, requires_grad = True)b = torch.zeros(1, requires_grad = True) > W, b를 0으로 초기화하고 > W,..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/0fzpU/btqvI4Mt99l/8n2QmikasoqvlBfkJO96VK/img.jpg)
Matrix, Tensor 2D Tensor (Matrix) - 일반적으로 이용하는 데이터 형태(batch size, dim) 3D Tensor - Vision (batch size, width, height)와 NLP(batch size, length, dim)에서 주로 사용하는 데이터 형태 Tensor Manipulation 본격적으로 Pytorch에서 자주 사용하는 명령어를 살펴 보도록 하겠습니다. Pytorch의 명령어는 Numpy와 매우 유사하다. Broadcasting Rule 계산하는 Tensor의 shape가 달라도 shape을 맞춰 자동으로 계산하여 연산. 자동으로 실행되기 때문에 주의해야 한다. IN [1] : m1 = torch.FloatTensor(([1, 2]))m2 = torch..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/Lyt2H/btqvDjCXZp0/MRuarD1HL06CxmA6LaF0Tk/img.png)
기존에는 서평을 써서 구글 드라이브에 업로드를 했습니다. 군대에 있었을 때부터 썼으니 6년 정도 되는 것 같네요. (총 67권 / 1년에 약 11권) 책을 읽은 뒤 나중에 보고 기억하기 위해서 서평을 쓰기 시작했는데 구글 드라이브에 업로드를 하다 보니 서평을 다시보지 않고 저장의 목적에 의의를 가졌던 것 같습니다... 또한 얼마나 많은 책을 읽고 서평을 쓰는지 시각적으로 다가오는 것이 없어 드문드문 책을 읽으며 동기 부여가 되지 못했습니다. 블로그에 서평을 작성하기로 다짐했습니다. 블로그에 서평글들을 차곡차곡 쌓이면 뭔가 뿌듯할 것 같고 나중에도 편리하게 볼 수 있을 것 같습니다. 슬프게도 지금은 갓수(ㅠㅠ)이기 때문에 상대적으로 시간도 많고 자기 계발할 수 있는 시간이 많기 때문에 겸사겸사 몸을 부지런..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bBg6sk/btqvABctjSN/MTpIL3FVQfqooxrbEX4s51/img.png)
Docker - 컨테이너 기반의 가상화 시스템 (Container-based virtualization system) - 컴퓨터의 환경에 따라 프로그램이 잘 실행되고 그렇지 않은 경우가 있는데 모두에게 동일한 환경을 제공하여 프로그램이 잘 실행되도록 만들어준다. * Container - Docker로 구성된 가상공간을 의미함 * Virtualize – 물리적인 서버를 여러 개의 가상 서버로 나뉜다. 한 컴퓨터에서 여러 개의 독립된 체제를 돌리는 것. 남는 서버 공간을 효율적으로 이용. But 속도 저하 문제를 가진다. - Docker는 ubuntu, centos, redhat OS들이 공통적으로 가지는 리룩스 알맹이를 가지고 환경을 구축, 속도 개선 - Docker는 리룩스 기반으로 만들어 졌기 때문에 ..