AI

[용어정리] Inference란 (25.2.17)

마농농 2025. 2. 17. 12:18
출처 : Efficient Processing of Deep Neural Networks (1.2)

1. Inference 의미와 + a

  • 학습된 가중치를 활용하여 주어진 입력에 대해 출력을 계산하는 과정
    • 학습 : 네트워크의 가중치를 결정하는 과정
    • 주로 임베디드 시스템에서 활용됨
  • DNN은 학습을 통해 Weight, Bias는 조절하지만 기본 프로그램 자체는 변경되지 않음

  • DNN 훈련 목표
    • 올바른 클래스의 확률을 최대화하고 잘못된 클래스들의 확률을 최소화
  • 손실 L 정의 
    • 이상적인 확률과 DNN이 계산한 확률의 차이
      • 손실을 최소화 하는 것이 가중치를 찾는 것, DNN의 학습 목표
  • 이미지 분류 예시 
    • 입력 : 이미지 출력 : 각 클래스의 확률 값을 갖는 벡터
    • 가장 높은 확률을 가진 클래스가 예측된 객체 클래스가 됨

  • 학습 방법
    • Supervised Learning
      • 모든 학습 샘플에 정답(레이블) 포함
    • Unsupervised Learning
      • 학습 샘플에 정답이 없음
      • ex. 데이터를 분석하여 패턴, 구조, 군집 찾아냄
    • Semi-Supervised Learning
      • 일부 데이터만 정답을 포함
      • ex.  비지도 학습으로 군집을 형성한 후, 적은 양의 레이블을 사용해 군집 분류
    • Reinforcement Learning
      • 주어진 환경에서 DNN이 최적의 행동을 선택하도록 학습
      • Action 후 즉시 보상이 주어지지 않을 수도 있으며, 일련의 행동이 끝난 후에 보상이 주어질 수 있음
    • Fine-Tuning
      • 이미 학습된 가중치를 새로운 데이터셋이나 제약 조건에(ex. 정밀도 감소) 맞춰 조정 > 미세 조정
      • Transfrer Learning에서 주로 사용되며. 무작위 초기화보다 빠르고 정확도가 향상될 가능성이 있음

  • Gradient Descent (경사 하강법)
    • 네트워크를 훈련 시, 가중치 최적화 기법
    • learning rate에 따라 갱신 크기는 조정됨
      • learning rate의 역할은 weight를 얼마나 크게 변경할 지 결정
      • 반복적으로 수행하여 전체 loss를 줄임
        a : learning rate, 해당 수식의 정의가 "Gradient Descent"
    • Back Propagation
      • 네트워크 훈련 시 loss function의 gradient (편미분) 을 계산 해야 함. 
        • Back Propagation이 이를 효율적으로 계산하는 방법 중 하나
      • Chain Rule를 이용하여 네트워크를 역방향으로 값을 전달하면서 손실이 가중치에 미치는 영향을 계산하는 과정
- Training은 가중치/bias값을 update 하는 과정 (예측과 정답의 차이, loss를 줄이기 위해서)
- Training의 방법은 Gradient descent 가 사용됨 (수식 자체, 편미분 항의 필요성)
= (기존 가중치) - (가중치 편미분값)
- Gradient Descent를 계산하기 위해 Backpropagation이 적용됨 (수식의 항을-편미분 항 구하기 위해)
= 네트워크를 역방향으로 값을 전달하며 loss를 미분하는 과정

 

2. Inference 와 Back Propagation (Training) 의 차이

  • Back Propagation과 Inference는 계산 방식은 유사, Training에서 추가되는 요구 사항
    • 추가 저장 공간 필요
      • 네트워크의 중간 출력을 보존해야 하므로, 저장 공간 요구량이 증가함
    • 정밀도 요구 사항 증가
      • gradient descent에서 작은 변화가 중요한 역할을 하기 때문에, 학습 과정에서는 "높은 정밀도" 연산이 필요 
      • Batching 처리
        • 여러 입력 데이터의 손실을 한 번에 계산한 후, 가중치를 업데이트 하는 방식으로 학습 속도와 안정성을 높임