Data Science/딥러닝

딥러닝 개요

Boxya 2025. 4. 4. 20:54

[KT] AIVLE SCHOOL 8일차

 

AI, ML(머신러닝), 딥러닝

https://human-centered.ai/2017/11/11/difference-ai-ml/

머신러닝

전체 Process(CRISP-DM)

  • AI, Data를 기반으로 한 비즈니스 문제해결 방법론(절차)
  • 무엇이 문제인가?
  • 문제가 해결 되었는가?
  • Business Understanding
    • 비즈니스 문제정의
    • 데이터분석 방향, 목표
    • 초기 가설 수립 / x -> y
  • Data Understanding
    • 원본식별
    • 분석을 위한 구조 만들기
    • 데이터분석 EDA & CDA
  • Data PreParation
    • 모델링을 위한 데이터 구조 만들기
      • 모든 셀은 값이 있어야 함
      • 모든 값은 숫자여야 함
      • (필요 시) 숫자의 범위가 일치
  • Modeling
    • 모델을 만들고 검증
  • Evaluation
    • 기술적 관점 평가
    • 비즈니스 관점 평가
  • Deployment
    • 모델 관리
    • AI 서비스 구축

모델과 모델링

  • 패턴
    • 데이터 안에는 패턴이 담겨 있음
    • 패턴이 전혀 없는 데이터 -> 노이즈
  • 모델(Model)
    • 모델 : 데이터로부터 패턴을 찾아, 수학식으로 정리해 놓은 것
    • 모델링 : 가능한 오차가 적은 모델을 만드는 과정
  • 모델의 목적 : 샘플을 가지고 전체를 추정
    • 샘플 : 표본, 부분집합, 일부, 과거의 데이터(우리가 들고 있는 데이터)
    • 전체 : 모집단, 전체집단, 현재와 미래의 데이터
    • 추정 : 예측, 추론
  • 모델의 성능 평가
    • 모델의 성능은 오차(error)를 통해 계산됨
      • 모델링: train error를 최소화 하는 모델을 생성하는 과정
      • 모델 튜닝: validation error를 최소화 하는 모델 선정
    • 평가 지표
      • 회귀 모델
        • MSE, RMSE, MAE : 오차의 양
        • MAPE : 오차율
        • R2 Score  : 결정계수
      • 분류 모델
        • Confusion Matrix
          • Accuracy : 정분류율
          • Recall : 재현율
          • Precision : 정밀도
          • F1 - Score : Recall과 Precision의 조화평균

머신러닝과 딥러닝의 차이

  • 기존 sklearn 기반 머신러닝 모델링과 딥러닝은 다음과 같은 차이가 있음
구분 머신러닝 (ML) 딥러닝 (DL)
정의 데이터를 이용해 명시적 프로그래밍 없이 학습하는 알고리즘 인공신경망(특히 다층 신경망)을 사용하는 머신러닝의 하위 분야
특징 특징(Feature)을 사람이 직접 설계해야 함 특징을 스스로 자동으로 추출함 (end-to-end 학습)
예시 알고리즘 결정트리, SVM, k-NN, 로지스틱 회귀 등 CNN, RNN, Transformer 등
데이터 요구량 비교적 적은 양의 데이터로도 동작 가능 매우 많은 데이터가 필요함
연산량 / 하드웨어 상대적으로 적음, CPU만으로도 학습 가능 높은 연산량, GPU 같은 고성능 하드웨어 필요
성능 복잡한 문제에선 한계 있음 이미지/음성/언어 등 복잡한 문제에서 뛰어난 성능
적용 예시 이메일 스팸 분류, 고객 이탈 예측 자율 주행, 음성 인식, 챗봇, 번역 등
  • 가장 중요한 차이
    • 머신러닝은 새로운 feature를 추출하는 과정이 중요하게 다뤄짐 (Feature Engineering)
    • 딥러닝은 각 레이어를 통해 모델 안에서 자동으로 새로운 feature가 추출됨

딥러닝 코드 구조

  • 데이터 전처리
    • 전처리 1
      • NaN(결측치) 처리
      • 가변수화
      • 스케일링
      • 데이터 분할
    • 전처리 2
      • 텐서로 변환
      • Data Loader(train set)
  • 모델링
    • 모델 설계
    • Loss, Optimizer
    • 학습
    • 학습 곡선 검토
    • 예측 및 검증 평가

가변수화

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

스케일링

  • 딥러닝은 스케일링을 필요로 함
  • 방법 1. Normaliztion(정규화) : 모든 값의 범위를 0 ~ 1로 변환
  • 방법 2. Standardization(표준화) : 모든 값을 평균 0, 표준편차 1로 변환

Tensor

  • PyTorch에서의 텐서 사용
    • GPU 가속
      • 텐서는 GPU에서 실행될 수 있는 데이터 구조(CUDA를 통해 NVIDIA GPU 지원)
      • 넘파이 어레이는 기본적으로 CPU에서만 작동
    • 자동 미분
      • 파이토치 텐서는 자동 미분(autograd) 기능 내장
    • 효율적인 메모리 관리
      • 텐서는 메모리 효율성과 성능 면에서 최적화되어 있음

Data Loader

  • PyTorch 모델링을 위해서 필요한 자료형
    • PyTorch는 Tensor나 TensorDataset을 요구 
    • Tensor: 텐서로 변환된 x와 y를 이용해서 학습 가능 (Tensor로 만들어야만 학습 가능)
    • Data Loader: 텐서 데이터셋을 미니배치(묶음) 단위로 순차적으로 뽑아 학습에 사용하도록 제공


가중치 조정

  • 파라미터 업데이트라고도 부름
  • 1 ~ 3월의 판매량으로 4월의 판매량을 예측
    • 1, 2, 3월 판매량의 평균으로 4월 판매량을 예측할 때
      • 1/3 * 1월 + 1/3 * 2월 + 1/3 * 3월
      • 1/3 = w , w를 가중치(weight)라고 부름
    • 좀 더 정확하게 예측하는 방법
      • 1, 2, 3월의 판매량은 똑같이 중요한가?
      • 월별로 중요도를 달리 했을 때 가중치를 어떻게 정해주는 게 좋을까?
      • 가중치가 1, 2, 3 중 어느 것이 제일 클까?(중요할까?)
      • 최적의 Weight를 어떻게 찾을까?
        • 최적의 모델이란 오차가 가장 적은 모델을 의미
        • 조금씩 weight를 조정하며 오차가 줄어드는지를 확인한다.
        • 지정한 횟수만큼 혹은 더 이상 오차가 줄지 않을 때까지 반복한다.
      • 학습한다는 것은 오차를 최소화 하는 파라미터(가중치) 값을 찾는다는 의미
        • -> 모델링의 목표

 

e.g. lstat(하위계층 비율)로 medv(집값) 예측

  • 어떤 정보를 O로 표현, O을 node(unit) 혹은 뉴런(Neuron)이라고 부르기도 함
  • 이를 수식으로 적으면 아래와 같음 

 

딥러닝 학습 절차

  • 가중치 초기값을 할당한다. (초기 모델을 만든다.)
  • (초기)모델로 예측한다.
  • 오차를 계산한다. (loss function)
  • 가중치 조절 : 오차를 줄이는 방향으로 가중치를 적절히 조절한다.(optimizer)
    • 적절히 조절 -> 얼마만큼 조절할 지 결정하는 하이퍼파라미터 : learning rate (lr)
  • 다시 처음으로 가서 반복한다.
    • 전체 데이터를 적절히 나눠서(mini batch) 반복 : batch_size
    • 전체 데이터를 몇 번 반복 학습할 지 결정 : epoch

'Data Science > 딥러닝' 카테고리의 다른 글

CNN  (0) 2025.04.08
Early Stopping와 Dropout  (0) 2025.04.08
모델 성능 최적화  (0) 2025.04.07
분류 모델링(Classification)  (0) 2025.04.07
회귀 모델링(Regression)  (0) 2025.04.04