가지치기 (딥 러닝): 두 판 사이의 차이

IT 위키
편집 요약 없음
(신경망 가지치기 문서로 넘겨주기)
태그: 새 넘겨주기
 
1번째 줄: 1번째 줄:
가지치기(영어: Pruning)는 딥 러닝에서 신경망의 불필요한 파라미터(가중치나 뉴런 연결)를 제거하여 모델의 크기를 줄이고 연산 효율을 높이는 기법이다. 이는 나무의 불필요한 가지를 잘라내는 원예 작업에서 유래한 용어로, 신경망의 성능은 유지하면서도 경량화를 달성하기 위해 사용된다.
#넘겨주기 [[신경망 가지치기]]
==개요==
*딥 러닝 모델은 수백만~수십억 개의 파라미터를 가지며, 이 중 일부는 학습 결과에 크게 기여하지 않는다.
*가지치기는 중요도가 낮은 파라미터를 제거하여, 계산량(MACs, FLOPs)을 줄이고 메모리 사용량을 절감한다.
*모델 압축, 지연 시간(latency) 단축, 에너지 절약 등을 위해 활용된다.
==방법==
가지치기(pruning)는 크게 두 가지 측면에서 분류할 수 있다.
*'''평가기준(criteria)''' : 어떤 가중치를 제거할지 결정하는 기준
*'''적용 형태(method)''' : 실제로 어떤 단위로 가지치기를 적용할지에 대한 방식
===평가기준===
가중치의 중요도를 평가하는 기준에 따라 다음과 같은 방식이 있다.*'''가중치 크기 기반 (Magnitude pruning)'''
**원리: 가중치의 절댓값이 임계치보다 작은 경우 중요하지 않다고 보고 제거한다.
**장점: 단순하고 구현이 쉽다.
**단점: 입력의 중요도를 반영하지 못하여 성능 저하 위험이 있다.
 
*'''기울기 기반 (Gradient pruning)'''
**원리: 학습 시 기울기가 작은 파라미터를 제거한다.
**장점: 학습 동역학을 고려할 수 있어 정교하다.
**단점: 시점과 데이터 분포에 따라 불안정할 수 있으며 계산량이 증가한다.
 
*'''헤세 행렬 기반 (Hessian pruning)'''
**원리: 손실 함수의 2차 미분(헤세 행렬)을 통해 손실 변화가 작은 파라미터를 제거한다.
**장점: 이론적으로 손실에 미치는 영향을 근사할 수 있다.
**단점: 대규모 신경망에서는 계산 비용이 매우 크다.
 
*'''학습 손실 변화 기반 (Training loss change pruning)'''
**원리: 특정 파라미터를 제거했을 때 학습 손실의 변화를 직접 평가한다.
**장점: 성능 저하를 최소화할 수 있다.
**단점: 계산량이 매우 크며, 대규모 데이터셋에서는 적용이 어렵다.
===적용 형태===
평가기준을 통해 중요도가 낮다고 판단된 파라미터를 실제로 어떤 단위로 제거할지에 따라 다음과 같이 구분된다.
*'''비구조적 가지치기 (Unstructured pruning)'''
**원리: 개별 가중치를 독립적으로 제거한다.
**장점: 매우 높은 희소성(sparsity)을 달성할 수 있다.
**단점: 메모리는 절약되지만, 하드웨어 가속기(GPU, NPU 등)에서 병렬화 최적화가 어렵다.
 
*'''구조적 가지치기 (Structured pruning)'''
**원리: 뉴런, 채널, 필터, 또는 레이어 단위로 제거한다.
**장점: 하드웨어에서 효율적인 실행이 가능하다.
**단점: 모델 구조 자체가 변하므로, 정확도 유지가 더 어렵거나 재설계가 필요할 수 있다.
==가지치기의 일반적인 장단점==
*'''장점'''
**모델 크기 감소 및 저장 공간 절약
**추론 속도 향상, 지연 시간 단축
**저전력 디바이스(모바일, IoT)에서 실행 가능
*'''단점'''
**잘못 가지치기하면 정확도가 크게 하락할 수 있음
**재학습(fine-tuning)이 필요한 경우가 많음
**최적의 가지치기 기준을 찾는 것이 어렵다
==관련 기법==
*[[양자화 (딥 러닝)]] : 파라미터를 저비트 정밀도로 변환하여 모델 크기를 줄임
*[[지식 증류]] : 큰 모델의 지식을 작은 모델로 전이
*[[희소 데이터]] : 가지치기 결과 모델은 희소 행렬 형태가 되므로 관련 알고리즘과 밀접한 연관
*[[모델 압축]]
==응용==
*모바일 및 임베디드 장치에서의 경량 신경망
*대규모 언어 모델(LLM) 경량화
*에너지 효율적 인공지능 시스템 설계
==같이 보기==
*[[모델 압축]]
*[[양자화 (딥 러닝)]]
*[[지식 증류]]
*[[희소 데이터]]
==참고 문헌==
*Song Han, Jeff Pool, John Tran, William J. Dally. ''Learning both Weights and Connections for Efficient Neural Networks''. NeurIPS 2015.
*Molchanov, P., et al. ''Pruning Convolutional Neural Networks for Resource Efficient Transfer Learning''. ICLR 2017.
==각주==
<references />
[[분류:인공지능]]
[[분류:딥 러닝]]

2025년 10월 2일 (목) 07:26 기준 최신판

넘겨줄 대상: