728x90
딥러닝 코드 구조
ML 코드 구조와 매우 유사하지만 추가되는 부분들이 있음
우선은 딥러닝이 많이 복잡하지 않다는 것을 확인하기 위해 우선 실습을 먼저 해봄
https://drive.google.com/file/d/1_hIIjlRSDtDQQYhqgb60pWOI_1kbR8E6/view?usp=sharing
1-2 딥러닝 무작정 따라하기.ipynb
Colab notebook
drive.google.com
.
데이터 분할 1 - x, y
데이터 분할 2 - train, validation, test
train, validation, test의 역할
- 데이터를 보통 Train, Validation, Test 로 나눈다.
- Train : 학습용
- 모델을 생성할 떄 사용. (예:교재)
- validation : 검증용
- 모델의 성능을 검증하는데 사용 (예:종합 연습문제)
- Test : 평가용
- 모델의 성능을 평가하기 위한 용도 (예:시험)
- Train : 학습용
모델링을 위한 데이터 준비
- 데이터 준비를 위한 3가지 필수 요건
- 모든 셀은 값이 있어야 한다 -> 결측치 조치
- 모든 값은 숫자 여야 한다. -> 가변수화(범주를 숫자로)
- (필요 시 )숫자의 범위가 일치 -> 스케일링
가변수화
- 범주 -> 숫자 : 가변수화
- 데이터는 머신러닝 알고리즘에 사용하려면 숫자로 변환해야함
- One-Hot-Encoding
- get_dummies()함수
스케일링
- 딥러닝은 스케일링을 필요로 한다.
- 방법 1 : MinMax
- 모든 값의 범위를 0~1로 변환
- 방법 1 : MinMax
- 방법 2 : Standardization (표준화)
- 모든 값을, 평균 = 0, 표준편차 = 1 로 변환
# 스케일러 선언 scaler = MinMaxScaler() # train 셋으로 fitting & 적용 x_train = scaler.fit_transform(x_train) # validation 셋은 적용만 x_val = scaler.transform(x_val) |
Tensor
- Vector, matrix. tensor
PyTorch 에서의 텐서 사용
- GPU 가속
- 텐서는 GPU에서 실행될 수 있는 데이터 구조 (CUDA를 통해 NVIDIA GPU 지원)
- 넘파이 어레이는 기본적으로 CPU 에서만 작동
- 자동 미분
- 파이토치 텐서는 자동 미분(autograd) 기능 내장
- 효율적인 메모리 관리
- 텐서는 메모리 효율성과 성능 면에서 최적화 되어 있음
Data Loader
- PyTorch 모델링을 위해서 필요한 자료형
- Tensor : 텐서로 변환된 X와 Y를 이용해서 학습 가능
- Data Loader:
- 텐서 데이터셋을 미니 배치 단위로 순차적으로 뽑아 학습에 사용하도록 제공
가중치 조정
1~3월의 한매량으로 4월의 판매량을 예측해보자
가장 쉬운 방법은?
좀 더 정확하게 예측하는 방법은 없을까?
최적의 Weight 를 어떻게 찾을까?
- 회적의 모델이란, 오차가 가장 적은 모델을 의미한다.
아래 단계를 반복한다.
- 임의의 Weight 를 지정
- 조금씩 weight 를 조정하며
- 오차가 줄어드는지를 확인
언제까지?
- 지정한 횟수만큼
- 혹은, 더 이상 오차가 줄지 않을 때까지
학습한다는 것은
- 오차를 최소화 하는 가중치(파라미터) 값을 찾는다 는 의미
- 모델링의 목표
학습절차
- lstat(하위계층 비율) 로 medv(집값) 예측
- 어떤 정보를 O로 표현
- O를 node라고 부른다. 또 뉴런(Neuron)이라고 부르기도 한다.
- 이를 수식으로 적음 다음과 같다
학습 단계
함수 설명 : train
딥러닝을 위한 데이터 준비와 학습 절차
딥러닝을 위한 데이터
- 데이터 전처리 (가변수화, 스케일링)
- Tensor, Data Loader
딥러닝 학습 절차 (학습 = 최적의 가중치를 찾는 것)
- 가중치 초기값을 할당한다. (초기 모델을 만든다.)
- (초기)모델로 예측한다.
- 오차를 계산한다 (loss function)
- 가중치 조절 : 오차를 줄이는 방향으로 가중치를 적절히 조절한다. (optimizer)
- 적절히 조절 -> 얼마 만큼 조절할 지 결정하는 하이퍼파라미터 : learning rate (lr)
- 다시 처음으로 가서 반복한다.
- 전체 데이터를 적절히 나눠서 (mini batch) 반복 : batch_size
- 전체 데이터를 몇 번 반복 학습할 지 결정 : epoch
- 모델링의 목표 : 최적의 파라미터 찾기
728x90
'AI' 카테고리의 다른 글
회귀 모델링 (0) | 2025.02.22 |
---|---|
pytorch 데이터다루기 (0) | 2025.02.21 |
머신러닝 기초 (0) | 2025.02.21 |
LLM 정리 (0) | 2025.02.20 |
# 24.10.16_ 아키텍처 설계 사례 분석 : Netfilx (7) | 2024.10.16 |