양자화에서의 Activation, Weight, Bias 차이와 역할

Bean·2025년 7월 17일
0

인공지능

목록 보기
92/123

양자화에서의 Activation, Weight, Bias 차이와 역할

딥러닝에서 양자화(Quantization)는 float32 모델을 메모리 효율적이고 연산이 빠른 정수(int8) 기반 모델로 바꾸는 기술입니다. 이 과정에서 등장하는 핵심 요소는 Activation (활성값), Weight (가중치), 그리고 Bias (편향)입니다.


1. 용어 정리: 역할 차이

항목정의
Weight학습된 고정 파라미터, 레이어의 핵심 계산 요소
Activation입력 데이터를 통과시켜 레이어별로 계산된 중간 출력값 (입력에 따라 달라짐)
Bias각 뉴런에 더해지는 상수 항, 학습 가능함

예: y = W * x + b

  • W: weight (가중치)
  • x: activation (입력)
  • b: bias (편향)

2. 양자화 시 데이터 타입

항목양자화 여부데이터 타입비고
Weight✅ 양자화int8모델 크기 감소 및 정수 곱셈 가속
Activation✅ 양자화 (정적 시)int8 or uint8동적 양자화 시에는 추론 중에 float32 → int8 변환
Bias✅ 양자화int32왜냐하면 int8 * int8 = int32 누산

3. 연산 흐름 (정적 양자화 기준)

[입력 X]   → (int8 또는 uint8)
     ↓
[가중치 W] → (int8)
     ↓
[X * W] → 곱셈 후 int32 누산
     ↓
[+ Bias] → int32로 덧셈
     ↓
[출력 Y] → int32
     ↓
Requantization → int8 (다음 레이어 입력으로 사용)

※ PyTorch 등 프레임워크에서는 내부적으로 이 연산을 최적화된 정수 커널로 처리합니다.


4. Activation과 Softmax는 같은 개념일까?

아닙니다. 둘은 다릅니다.

항목설명
Activation (값)각 레이어에서 계산된 중간 출력값. 예: Linear, Conv2d 결과
Activation Function이 값에 적용되는 비선형 함수. 예: ReLU, Sigmoid, Softmax
예시 코드x = Linear(x) → activation 값 생성 → x = ReLU(x)

즉, softmax는 activation 값을 처리하는 함수이고, activation은 그 결과값입니다.


5. Softmax는 양자화 가능한가요?

  • 일반적으로 불가능합니다.
  • 이유: softmax는 부동소수점 계산 (exp, sum 등)이 필요하기 때문입니다.
  • PyTorch 등에서 softmax는 float 연산자로 남겨둡니다.

정리 요약

질문정답
정적 양자화에서 activation은 정수인가요?✅ 예, int8
동적 양자화에서는 activation이 float32인가요?✅ 예, 실시간 양자화라서 float32 유지
activation은 softmax와 같은 개념인가요?❌ 아니요. softmax는 함수, activation은 값
softmax는 양자화되나요?❌ 아니요. 일반적으로 float 연산으로 수행됨
bias는 왜 int32인가요?✅ int8 * int8 연산 누산을 정확히 덧셈하기 위해 필요

profile
AI developer

0개의 댓글