본문 바로가기

AI

딥러닝 개요

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 : 평가용
      • 모델의 성능을 평가하기 위한 용도 (예:시험)

 

모델링을 위한 데이터 준비

  • 데이터 준비를 위한 3가지 필수 요건
    • 모든 셀은 값이 있어야 한다 -> 결측치 조치
    • 모든 값은 숫자 여야 한다. -> 가변수화(범주를 숫자로)
    • (필요 시 )숫자의 범위가 일치 -> 스케일링

 

가변수화

  • 범주 -> 숫자 : 가변수화
    • 데이터는 머신러닝 알고리즘에 사용하려면 숫자로 변환해야함
    • One-Hot-Encoding
    • get_dummies()함수

 

스케일링

  • 딥러닝은 스케일링을 필요로 한다.
    • 방법 1 : MinMax
      • 모든 값의 범위를 0~1로 변환

 

  • 방법 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월의 판매량을 예측해보자

 

가장 쉬운 방법은?

여기서 w를 가중치(weight)라고 부른다.

 

 

좀 더 정확하게 예측하는 방법은 없을까?

 

 

 

최적의 Weight 를 어떻게 찾을까?

  • 회적의 모델이란, 오차가 가장 적은 모델을 의미한다.

 

아래 단계를 반복한다.

  1. 임의의 Weight 를 지정
  2. 조금씩 weight 를 조정하며
  3. 오차가 줄어드는지를 확인

언제까지?

  • 지정한 횟수만큼
  • 혹은, 더 이상 오차가 줄지 않을 때까지

학습한다는 것은

  • 오차를 최소화 하는 가중치(파라미터) 값을 찾는다 는 의미
    • 모델링의 목표

학습절차

  • 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