pytorch(8)
-
[PyTorch] MNIST Introduction 실습 : 모두를 위한 딥러닝 시즌2
MNIST Introduction 이론 요약 MNIST 데이터셋은 0~9의 숫자를 손으로 작성한 이미지이다. 우체국에서 편지 우편번호를 자동으로 인식하는 기술을 개발하면서 사용되었다. 훈련 데이터를 활용하여 모델을 학습시키고, 테스트 이미지에 어떤 숫자가 있는지 예측할 수 있다.MNIST 데이터셋, Torchvision 패키지 관련 사이트 MNIST 데이터셋은 lecun 사이트에서 다운받을 수 있다. Forbidden 에러가 나온다면, Kaggle에서 다운로드해서 사용하거나 구글 코랩에서 실행하는 방법이 있다.http://yann.lecun.com/exdb/mnist/Torchvision 패키지는 컴퓨터 비전 분야에서 널리 사용되는 데이터셋, 모델, 이미지 전처리 도구를 제공한다.https://pytor..
2024.09.08 -
[PyTorch] Train/Validation/Test & Overfitting 실습 : 모두를 위한 딥러닝 시즌2
Train/Validation/Test & Overfitting 이론 요약 압정을 던졌을 때 위로 떨어지는 경우를 클래스 1, 아래로 떨어지는 경우를 클래스 2로 설정한다. 총시행 횟수와 클래스 1이 나온 횟수, 1번 시행 시 일어날 확률을 사용하여 이항 분포로 모델링할 수 있다. Gradient Ascent를 통해 데이터를 가장 잘 설명하는 세타를 찾는 과정은 Likelihood를 최대화하여 Local Maxima를 찾는 과정이다. 데이터를 Training set, Validation set, Test set을 일정 비율로 나누어 모델을 훈련하고 평가할 수 있다. 훈련 데이터를 과도하게 학습하는 Overfitting이 일어나면, 새로운 검증 데이터에 대해 일반화 성능이 떨어져서 Train Loss는 ..
2024.09.08 -
[PyTorch] Softmax Classification 실습 : 모두를 위한 딥러닝 시즌2
Softmax 분류 이론 요약 이전 포스팅에서는 sigmoid 함수로 H(x)를 계산하고, binary_cross_entropy 함수를 활용하여 Cost를 계산했다. 이 방법은 이진 분류 문제에 적합하다. 이번에는 다중 클래스 분류 문제에 적합한 방법을 알아보았다. 간단하게 핵심을 정리하면 softmax 함수로 H(x)를 계산하고, cross_entropy 함수를 활용하여 Cost를 계산한다. softmax 함수는 여러 개의 실수로 이루어진 벡터를 확률 분포로 변환하며, cross_entropy 함수는 실제 레이블(one-hot 벡터)과 예측한 확률 분포의 차이를 구할 때 사용한다.Softmax 분류 구현 코드라이브러리 import & 시드값 고정# Library importimport torchimp..
2024.09.07 -
[PyTorch] Logistic Regression 실습 : 모두를 위한 딥러닝 시즌2
Logistic Regression 이론 요약Logistic Regression 구현 코드라이브러리 import & 시드값 고정# Library importimport torchimport torch.nn as nnimport torch.nn.functional as Fimport torch.optim as optim# To ensure experiment reproducibilitytorch.manual_seed(1) 데이터 정의# Data definitionx_data = [[1, 2], [2, 3], [3, 1], [4, 3], [5, 3], [6, 2]]y_data = [[0], [0], [0], [1], [1], [1]]x_train = torch.FloatTensor(x_data) # (6,..
2024.09.05 -
[PyTorch] Loading Data 실습 : 모두를 위한 딥러닝 시즌2
Data Loading 이론 요약 너무 많은 양의 데이터를 한 번에 학습시키면 속도가 느리고, 하드웨어에도 부담이 될 수 있다. 이러한 문제를 해결하기 위해 전체 데이터를 균일하게 나눠서 학습시키는 Minibatch Gradient Descent를 사용한다. 데이터를 나눠서 사용하기 때문에 파라미터를 업데이트할 때마다 계산할 Cost의 양은 줄어들고 업데이트 주기가 빨라진다. 그러나 전체 데이터를 사용하지 않아서 잘못된 방향으로 업데이트가 될 수 있고, 일반적인 Gradient Descent에 비해 Cost가 거칠게 줄어든다.Data Loading 구현 코드라이브러리 import# Library importimport torchfrom torch.utils.data import Datasetfrom t..
2024.09.05 -
[PyTorch] Multivariable Linear Regression 실습 : 모두를 위한 딥러닝 시즌2
Multivariable Linear Regression 이론 요약 Linear regression과 Multivariable Linear Regression의 Hypothesis 식은 변수의 개수로 인해 차이가 있으나, Cost function 및 Gradient 계산식은 동일하게 적용된다.Multivariable Linear Regression 구현 코드 모델 생성과 Hypothesis 및 Cost 계산을 직접 수행하는 방식과 모듈 및 함수를 활용하는 방식 2가지로 구현을 했다. 방법 1. W, b로 모델 생성 & 직접 Cost 계산import torchimport torch.optim as optim# Data definitionx_train = torch.FloatTensor([[73, 80, 7..
2024.09.03 -
[PyTorch] Tensor Manipulation 2 실습 : 모두를 위한 딥러닝 시즌2
Torch.FloatTensor.view로 텐서 모양 변형시키기 괄호가 복잡하다보니 조금 헷갈렸지만, 예제마다 Shape를 (a, b, c)로 표현했을 때 각각의 값이 무엇인지 정확하게 이해하려고 노력했다. view에 인자로 주어지는 값 중 -1이 있는 곳은 PyTorch가 자동으로 크기를 계산하도록 하는 자리이다. 라이브러리 importimport numpy as npimport torch View (Reshape)# View (Reshape)t = np.array([[[0, 1, 2], [3, 4, 5]], [[6, 7, 8], [9, 10, 11]]])ft = torch.FloatTensor(t)print(ft.shape)pri..
2024.08.30 -
[PyTorch] 학습 방향 & Tensor Manipulation 1 실습 : 모두를 위한 딥러닝 시즌2
앞으로의 학습 방향강의 목차가 대학에서 수강했던 데이터사이언스와 컴퓨터비전, 졸업논문 참고문헌에서 읽었던 내용과 전반적으로 겹침.2가지 목적: 이전에 학습했던 이론을 꼼꼼히 복습하고, LAB 실습을 통해 코드와 이론이 어떻게 맞물려있는지에 중점을 두고 배운다.Tensor Manipulation 이론 요약 기본적인 2D 텐서는 batch size와 dim(차원)으로 구성된다. 컴퓨터 비전에서의 텐서는 batch size, width, height로 구성되며, 자연어 처리에서의 텐서는 batch size, length, dim으로 구성된다는 차이가 있다. 자연어 처리에서는 dim과 length가 이루는 하나의 평면이 하나의 문장이다.NumPy와 PyTorch로 Tensor Manipulation 하는 코드 ..
2024.08.27