LAB ONLINEFocus 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
Chapter 03 - 선형회귀분석
torch.nn.Linear 는 무슨 의미인가?
PyTorch에서 자주 사용하는 난수 분포
Optimizer 별 손실함수의 변화
Chapter 04 - 인공신경망
인공신경망의 요소
활성화함수는 왜 존재해야 하는가?
전파와 역전파
전파 (순전파, forward propagation) : 인공 신경망에서 입력값이 들어오면 여러 개의 은닉층을 순서대로 거쳐 결괏값을 내는 과정 (→)
역전파 (backpropagation) : 결과와 정답의 차이로 계싼된 손실을 연쇄법칙을 이용하여 입력 단까지 다시 전달하는 과정
모델 구현
은닉층의 파라미터는 어떻게 설정하고 어떤 효과가 존재하는가?
Chapter 05 - 합성곱 신경망
합성곱 연산 과정
활성화 지도 (Activation map) or 특성 지도 (feature map): 필터 하나당 입력 이미지 전체에 대한 필터의 일치 정도
활성화 지도의 크기 O는 입력 이미지 I와 필터의 크기 K, 스트라이드 크기 S에 따라 결정된다.O=floor(SI−K+1)
ReLU함수의 종류와 장단점
패딩과 풀링
Source: author’s Notion note
Padding 은 일정한 크기의 층으로 이미지를 감싸는 것을 의미하는데, 이는 합성곱으로 인한 이미지의 크기 감소를 방지(활성화 지도의 크기 증가)할 수 있다 따라서 위의 활성화 지도에 대한 식을 패딩 크기를 반영해서 고칠 수 있다O=floor(SI−K+2P+1)
Pooling은 Downsampling 혹은 subsampling의 일종으로 합성곱 신경망에서는 크게 최댓값만을 전달하고 다른 정보는 버리는 max pooling과 일정 크기의 구간 내의 값들의 평균을 전달하는 average pooling이 존재한다 (활성화 지도의 크기 감소)
max pooling : 일정 구간에서 해당 필터의 모양과 가장 비슷한 부분을 전달하는 연산
average pooling : 일해당 필터의 모양과 평균적으로 얼마나 일치하는지를 뽑아낸다
전체 크기를 줄여주거나 연산을 마친후 마지막에 클래스별 확률로 도출할 때 사용
소프트맥스 함수
교차 엔트로피에서 KLD항의 의미정답 분포 P, 예측 분포 Q에 대한 교차엔트로피: H(P,Q)=−k∑P(k)logQ(k)
이 값은 다음 두 항으로 분해 가능
H(P,Q)=H(P)+DKL(P∥Q)
이때 DKL이 바로 Kullback-Leibler Divergence항이다
모델이 예측한 확률분포가 정답 확률분포에서 얼마나 벗어났는지를 수치화 → 유사할수록 KLD는 감소한다.
DKL(P∥Q)=∑kP(k)logQ(k)P(k)
예측이 잘못될 수록 L1 손실(선형적으로 증가)보다 더 크게 증가하기에 더 페널티가 크고 손실 값이 크다.
예시 문장 : 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
대략 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
AutoEncoder가 왜 필요한가?
합성곱 오토인코더
Encoder: 픽셀 → 여러 종류의 특징Decoder: 여러 종류의 특징 → 픽셀
왜 해상도를 줄이면서 채널을 늘리는가?
시멘틱 세그멘테이션
Autoencoder는 variational autoencoder (VAE) 나 semantic segmentation 사례로 활용된다VAE : latent variable이 어떻게 분포하는지, 어떤 값이 바꾸미에 따라 결과가 얼마나 바뀌는지 알 수 없기에 이 잠재 변수 공간을 친숙한 정규분포 공간으로 강제로 맞춰주는 방법Semantic Segmentation : 항공사진을 통해 단순화된 지도 이미지를 생성하는 것처럼 정보를 추상화 해서 의미에 맞게 분할한다.