[PyTorch]step1: overview

Jae Gyeong Lee·2023년 6월 3일
0

PyTorch를 이용한 DL/ML에 필요한 3가지 과정.

  • 1) 모델 정의 (문제 해결을 위한)
  • 2) 손실 함수 정의(예측값과 실제 값의 차이를 최소화 하는), 옵테이마이저 정의(파라미터의 업데이트를 최적화 하는)
  • 3) Train cycle (forward, backward, update)
DL/ML에서 '학습'의 목표는 loss function(손실함수)의 최소값을 찾는 것.

여기서 'loss function(손실함수)의 최소값'을 찾아가는 것을 Optimization(최적화)라 함.

이 Optimization(최적화)를 수행하는 알고리즘이 'Optimizer'

1. basic

1.1) torch

  • main namespace로 tensor등의 다양한 수학 함수가 패키지에 포함되어 있습니다.
  • NumPy와 같은 구조를 가지고 있어서 numpy와 상당히 비슷한 문법 구조를 가지고 있습니다.

1.2) torch.autograd

  • 자동 미분을 위한 함수가 포함되어 있습니다.
  • 자동 미분의 on, off를 제어하는 enable_grad 또는 no_grad나 자체 미분 가능 함수를 정의할 때 사용하는 기반 클래스인 Function등이 포함됩니다.

1.3) torch.nn

  • 신경망을 구축하기 위한 다양한 데이터 구조나 레이어가 정의되어 있습니다.
  • CNN, LSTM, 활성화 함수(ReLu), loss 등이 정의되어 있습니다.

1.4) torch.multiprocessing

  • 병럴처리 기능을 제공하는 라이브러리

1.5) torch.optim

  • SGD 등의 파라미터 최적화 알고리즘 등이 구현되어 있습니다.

1.6) torch.utils

  • 데이터 조작 등 유틸리티 기능 제공

1.7) torch.onnx

  • ONNX(Open Neural Network eXchange) 포맷으로 모델을 export 할 때 사용합니다.
  • ONNX는 서로 다른 딥러닝 프레임워크 간에 모델을 공유할 때 사용하는 새로운 포맷입니다.

2. Tensors

  • 데이터를 표현하기 위한 가장 기본적인 구조
  • 데이터를 담기위한 컨테이너(container)로서 일반적으로 수치형 데이터를 저장

Scalar: 하나의 값을 표현할 때 1개의 수치로 표현한 것 (0차원의 텐서)
Vector: 하나의 값을 표현할 때 2개 이상의 수치로 표현한 것 (1차원의 텐서)
Matrix: 2개 이상의 벡터 값을 통합해 구성된 값(2차원의 배열) (2차원의 텐서)
Tensor: 2차원 이상의 배열 (3차원 이상의 텐서)

https://gaussian37.github.io/dl-pytorch-snippets/
https://www.youtube.com/watch?v=k60oT_8lyFw&t=5073s
https://wikidocs.net/53560

3. 용어

3.1) Epoch: One Epoch is when an ENTIRE dataset is passed forward and backward through the neural network only ONCE.

  • 1 epoch은 data set 전체에 대해 1번 학습을 완료한 상태.
  • epoch은 underfitting 또는 overfitting에 영향을 미침.
  • epoch의 횟수가 너무 많으면 overfitting에 대한 위험이 있고, 반대로 너무 적으면 underfitting에 대한 위험이 있다.

3.2) Batch size: Total number of training examples present in a single batch.

  • 한 번에 학습시키는 data의 수.
  • batch_size 100 => 한 번에 100개의 data를 학습시킨다.

3.3) Iteration: The number of passes to complete one epoch.

  • 1epoch data/batch_size
  • data가 1,000개 batch size가 10이면 '100 iteration'
    예) 100,000개의 data set을 학습한다고 가정했을 때,
    batch_size = 10,000 iteration = 10 epoch = 10
profile
안녕하세요 반갑습니다. 공부한 내용들을 기록하고 있습니다.

0개의 댓글