본문 바로가기

AI

회귀 모델링

728x90

모델 구조와 Loss, Optimizer

 

Process

  • 1. 각 단계(task)는 
    • 이전 단계의 Output을 Input으로 받아
    • 처리한 후
    • 다음 단계로 전달
  • 2. 공통의 목표를 달성하기 위해서 동작

  • 예 : 상품기획 - 디자인 - 생산 - 물류입고 - 매장 판매

 

딥러닝 구조

 

Hidden Layer = 은닉층

 

 

모데 구조 설계

 

  • input : 3개의 feature
    • 분석 단위에 대한 shape
      • 1차원 : (feature 수, )
      • 2차원 : (rows, columns)
  • output : 예측 결과가 1개 변수(y가 1개 변수)

output수를 노드 수라 부름

 

Loss function

  • Loss function
    • 다양한 이름 : 오차함수, 손실함수, 목적함수 (Objective Function)
    • 학습 목적을 결정 : 이 값을 최소화/최대화 하는 것이 목적

 

Optimizer

  • Optimizer
    • 오차를 최소화 하도록 가중치를 업데이트 하는 역할
    • Adam
      • 최근 딥러닝에서 가장 성능이 좋은 Optimizer 로 평가 됨.
    • lr : learning_rate
      • 업데이트 할 비율
      • 기울기(gradient)에 곱해지는 조정 비율(걸음걸이의 '보폭'을 조정한다고 표현)

 

학습률 learning rate

  • 가중치(w) 한 개의 업데이트 과정을 예로 들면

 

Batch Size, Epoch, 학습 곡선

 

batch_size

  • 전체 데이터를 적절히 나눠서 (mini batch)
    • 예 : train data 가 12행일 떄, batch_size = 4 fh wlwjdgkaus
  • 배치 단위로 학습(가중치 업데이트)

 

  • Data Loader 생성 시 batch_size 지정
    • 기본값 32 : 특별한 경우가 아니라면 보통 32로 지정
    • 학습 데이터 크기를 감안하여 지정 (데이터가 많으면 32보다 크게)

 

  • shuffle : 데이터를 섞어서 배치 단위로 분할

 

Epoch

  • 주어진 train set을 몇 번 반복 학습할 지 결정
  • 만약 Epoch = 10
    • Train set 을 10번 반복해서 학습하면서
    • 최적의 가중치를 찾는다. (마치, 공부할 때 교과서를 10번 공부한다는 의미로 이해할 수 있음)
  • Epoch의 수 찾기
    • 최적의 값은 케이스마다 다름
    • 하이퍼파라미터 (하이퍼 파라미터 : 모델 학습시, 사람이 정해 주어야 하는 옵션, 다양한 값으로 시도해보고, 검증 평가를 통해서 최적의 값을 찾는 과정을 '하이퍼파라미터 튜닝'이라고 함)

 

학습 곡선

  • 학습 곡선이란
    • 모델 학습이 잘 되어있는지 파악하기 위한 그래프
      • 정답은 아니지만, 경향을 파악하는데 유용
    • 각 Epoch 마다 train error와 val error가 어떻게 줄어들고 있는지 확인
      • Epoch = 10 : train data를 10번 반복 학습
    • 바람직한 학습 곡선
      • 1. 초기 epoch에서는 오차가 크게 줄고
      • 2. 오차 하락이 꺾이면서
      • 3. 점차 완만해짐
      • 그러나 학습곡선의 모양새는 다양함

 

학습 곡선

 

  • 바람직하지 않은 학습 곡선
    • Case 1 : 학습이 덜 됨
      • 오차가 줄어들다가 학습이 끝남
      • 조치
        • epoch수를 늘리거나
        • learning rate를 크게 한다.

 

  • Case 2 : train_err가 들쑥날쑥
    • 가중치 조정이 세밀하지 않음
    • 조치
      • learning rate를 작게

  • Case 3 : 과적합
    • Train_error는 계속 줄어드는데, val_error는 어느 순간부터 커지기 시작
    • 너무 과도하게 학습이 된 경우
    • 조치
      • Epoch 수 줄이기

 

Hidden Layer 와 활성함수

 

딥러닝 구조 - 선형 회귀

 

딥러닝 구조 - Hidden Layer 추가

 

은닉층 Hidden Layer

  • input : 12개의 feature
  • 은닉층 :
    • 노드 2개
    • 은닉층은 활성함수가 필요!
  • 출력층 : 노드 1개

 

  •  nn.Linear 함수 레이어를, 빽뺵하게 모두 연결되어 있다고 해서 Fully Connected Layer 혹은 Dense Layer 라고 부른다.

 

활성화 함수 Activation Function

 

  • 활성화 함수는
    • 현재 레이어(각 노드)의 결과값을 다음 레이어(연결된 각 노드)로 어떻게 전달할지 결정/변환해주는 함수입니다.
  • 꼭 필요한가?
    • 만약 활성화 함수가 없으면

  • 그래서 활성화 함수는
    • Hidden Layer에서는 이런 선형함수를 비선형 함수로 변환해 주는 역할
    • Output Layer에서는 결과 값을 다른 값으로 변환해 주는 역할
      • 분류 Classification 모델에서 필요

 

Hidden Layer의 노드 수

  • 첫 은닉층에서 오른쪽 레이어로 갈수록 점차 줄여간다.( 여기에는 정답이 없다 )
  • 늘렸다가 줄일 수도 있다. (다양한 시도는 사용자의 몫)

 

 

요약

  • 모델 :
    • 회귀모델 : 숫자를 예측하는 모델
    • 분류모델 : 범주(Class)를 나누는(분류하는) 모델

 

  • Layer
    • Layer에는 input과 output을 지정 (output 수 = 노드수)
    • Output layer의 node 수 : 1
    • Activation Funcion
      • Hidden layer 에 필요 : 비선형 모델로 만들려고 -> hidden layer 를 여러 층 쌓아서 성능을 높이려고
      • 회귀 모델링에서 Output Layer 에는 활성화 함수 필요하지 않음

728x90

'AI' 카테고리의 다른 글

분류 모델링  (0) 2025.02.25
회귀 모델링 실습  (0) 2025.02.24
pytorch 데이터다루기  (0) 2025.02.21
딥러닝 개요  (0) 2025.02.21
머신러닝 기초  (0) 2025.02.21