Junu's Lab
LAB ONLINE Focus Computer Vision / ML / Animal Behavior
Lab Note

[Study Record] 파이토치 첫 걸음

Completed
Type
learning-note
Date
Jul 25, 2026
Domain
Deep Learning
Methods

Chapter 02 - 파이토치

Pytorch 초기 설정법

CUDA : 엔비디아가 GPU를 통한 연산을 가능하게 만든 API 모델 cnDNN : CUDA를 통해 딥러닝 연산을 가속 해주는 라이브러리

교재의 경우

연구실 서버의 경우

교재의 경우 정말 GPU만 준비된 환경에서 시작하는 법을 알려주지만, 연구실 서버에서는 이미 NVIDIA Driver가 특정되어있고 모두 깔려있기 때문에 이미 환경이 설정되어있다. 따라서 연구자가 해당 서버에 해야하는 것은 uv 프로젝트 생성 이후 PyTorch Wheel (CUDA용 Wheel) 만 설치하는 것이다.
  • PyTorch Wheel : PyTorch를 설치하기 쉽게 미리 빌드해 둔 파이썬 패키지 파일
Source: author's Notion note
Source: author’s Notion note

Chapter 03 - 선형회귀분석

torch.nn.Linear 는 무슨 의미인가?

PyTorch에서 자주 사용하는 난수 분포

Optimizer 별 손실함수의 변화

Chapter 04 - 인공신경망

인공신경망의 요소

활성화함수는 왜 존재해야 하는가?

전파와 역전파

  • 전파 (순전파, forward propagation) : 인공 신경망에서 입력값이 들어오면 여러 개의 은닉층을 순서대로 거쳐 결괏값을 내는 과정 (→)
  • 역전파 (backpropagation) : 결과와 정답의 차이로 계싼된 손실을 연쇄법칙을 이용하여 입력 단까지 다시 전달하는 과정

모델 구현

은닉층의 파라미터는 어떻게 설정하고 어떤 효과가 존재하는가?

Chapter 05 - 합성곱 신경망

합성곱 연산 과정

  • 활성화 지도 (Activation map) or 특성 지도 (feature map) : 필터 하나당 입력 이미지 전체에 대한 필터의 일치 정도
    • 활성화 지도의 크기 OO는 입력 이미지 II와 필터의 크기 KK, 스트라이드 크기 SS에 따라 결정된다. O=floor(IKS+1)O =floor(\frac{I-K}{S}+1)

ReLU함수의 종류와 장단점

패딩과 풀링

Source: author's Notion note
Source: author’s Notion note
  • Padding 은 일정한 크기의 층으로 이미지를 감싸는 것을 의미하는데, 이는 합성곱으로 인한 이미지의 크기 감소를 방지(활성화 지도의 크기 증가)할 수 있다 따라서 위의 활성화 지도에 대한 식을 패딩 크기를 반영해서 고칠 수 있다 O=floor(IK+2PS+1)O =floor(\frac{I-K+2P}{S}+1)
  • Pooling 은 Downsampling 혹은 subsampling의 일종으로 합성곱 신경망에서는 크게 최댓값만을 전달하고 다른 정보는 버리는 max pooling과 일정 크기의 구간 내의 값들의 평균을 전달하는 average pooling이 존재한다 (활성화 지도의 크기 감소)
    • max pooling : 일정 구간에서 해당 필터의 모양과 가장 비슷한 부분을 전달하는 연산
    • average pooling : 일해당 필터의 모양과 평균적으로 얼마나 일치하는지를 뽑아낸다
    • 전체 크기를 줄여주거나 연산을 마친후 마지막에 클래스별 확률로 도출할 때 사용

소프트맥스 함수

  • 교차 엔트로피에서 KLD항의 의미 정답 분포 PP, 예측 분포 QQ에 대한 교차엔트로피: H(P,Q)=kP(k)logQ(k)H(P,Q)=−k∑P(k)logQ(k)

    이 값은 다음 두 항으로 분해 가능

    H(P,Q)=H(P)+DKL(PQ)\boxed{H(P,Q)=H(P)+D_{\mathrm{KL}}(P\|Q)}

    이때 DKLD_{KL}이 바로 Kullback-Leibler Divergence항이다

    모델이 예측한 확률분포가 정답 확률분포에서 얼마나 벗어났는지를 수치화 → 유사할수록 KLD는 감소한다.

    DKL(PQ)=kP(k)logP(k)Q(k)D_{\mathrm{KL}}(P\|Q)=\sum_k P(k)\log\frac{P(k)}{Q(k)}

    • 예측이 잘못될 수록 L1 손실(선형적으로 증가)보다 더 크게 증가하기에 더 페널티가 크고 손실 값이 크다.

유명한 모델들과 원리

VGCNet

https://arxiv.org/abs/1409.1556

GoogLeNet

https://arxiv.org/abs/1409.4842v1

ResNet

https://arxiv.org/abs/1512.03385 b
Source: author's Notion note
Source: author’s Notion note

Bottleneck Block이란 무엇인가?

Chapter 06 - RNN

발달 과정과 작동 원리

Source: author's Notion note
Source: author’s Notion note
Source: author's Notion note
Source: author’s Notion note

Sequential data와 Time series data의 차이

모델 구현

예시 문장 :
hello pytorch. how long can a rnn cell remember? show me your limit!

| 하이퍼파라미터 | print(output_string) | 정답 문자열 수 | 정답률 | | --- | --- | --- | --- | | n_hidden = 35
lr = 0.01
epochs = 1000
| hello pytorch lho eotell lono. .ome ynnlge conem .ypy.y.h.y.ycycycyc | 13 | 19% | | n_hidden = 52
lr = 0.01
epochs = 1000
| hello pytorch. how long can a rnn cell remember? show me your limit! | 68 | 100% | | n_hidden = 70
lr = 0.01
epochs = 1000
| hello pytorch. how long can a rnn cell remember? show me your limit! | 68 | 100% |

Source: author's Notion note
Source: author’s Notion note
대략 hidden layer의 수가 50을 넘어갈때부터 68개의 character로 이루어진 문장은 거의 완벽하게 (중간에 잠깐 성능 감소가 있음) 예측한다
  • 초록 라인은 증감하는 # of correct answers 의 변화 정도를 보여준다.

Chapter 07 - 학습시 생길 수 있는 문제점과 해결 방안

드롭아웃

Fully Connected Network(완전연결 신경망)이란 무엇인가?

데이터 증강

데이터 증강의 기본 유형

Chapter 09 - 오토인코더

데이터에 대한 효율적인 압축을 신경망을 통해 자동으로 학습하는 모델. 일반적으로 입력 데이터 자체가 라벨로 사용되기 때문에 비지도 학습에 속한다
  • efficient data encoding , feature learning , representation learning , dimensionality reduction
Source: author's Notion note
Source: author’s Notion note

AutoEncoder가 왜 필요한가?

합성곱 오토인코더

Encoder: 픽셀 → 여러 종류의 특징 Decoder: 여러 종류의 특징 → 픽셀

왜 해상도를 줄이면서 채널을 늘리는가?

시멘틱 세그멘테이션

Autoencoder는 variational autoencoder (VAE) 나 semantic segmentation 사례로 활용된다 VAE : latent variable이 어떻게 분포하는지, 어떤 값이 바꾸미에 따라 결과가 얼마나 바뀌는지 알 수 없기에 이 잠재 변수 공간을 친숙한 정규분포 공간으로 강제로 맞춰주는 방법 Semantic Segmentation : 항공사진을 통해 단순화된 지도 이미지를 생성하는 것처럼 정보를 추상화 해서 의미에 맞게 분할한다.

U-Net이란 무엇인가?

Chapter 10 - 생성적 적대 신경망 (Generative adversarial networkl, GAN)

https://www.ibm.com/kr-ko/think/topics/generative-adversarial-networks https://arxiv.org/abs/1511.06434 https://arxiv.org/abs/1609.04802 https://arxiv.org/abs/1703.10593
Source: author's Notion note
Source: author’s Notion note
  • Generator, 생성자는 어떠한 입력 (Random Input)을 받아서 가짜 데이터를 생성한다
  • Discriminator는 실재 데이터와 가짜 데이터를 받아서 각각이 진짜인지 가짜인지 평가한다

목적함수

  • 잠재 공간 보간 (latent space interpolation) : 잠재 변수 z의 공간을 탐색하기 위해 다른 값들은 고정하고 하나의 값만 연속적으로 바꿔보면서 결과가 어떻게 변하는지 관찰하는 방법론