AI: 최적화 기술 효과 및 방법
ㅁ 최적화 기술 효과 및 방법
1. Pruning 기준
ㅇ 정의:
– 신경망의 불필요한 가중치나 뉴런을 제거하여 모델 크기와 연산량을 줄이는 기법에서, 어떤 요소를 제거할지 결정하는 평가 기준.
ㅇ 특징:
– 가중치 크기 기반(L1/L2 norm), 중요도 기반(gradient, saliency), 구조적 기준(필터 단위, 채널 단위) 등 다양함.
– 기준 설정에 따라 모델 성능 저하 정도와 경량화 효과가 크게 달라짐.
ㅇ 적합한 경우:
– 메모리 제약, 실시간 추론 요구가 있는 환경.
– 사전 학습된 모델을 빠르게 경량화해야 하는 경우.
ㅇ 시험 함정:
– Pruning은 항상 정확도를 높인다(O/X) → X
– 가중치가 작은 것이 항상 중요도가 낮다는 것은 아님.
ㅇ 시험 대비 “패턴 보기” 예시:
– “L1 norm이 작은 가중치를 제거하는 것은 비구조적 Pruning의 예이다.” (O)
– “Pruning 기준은 오직 가중치 크기에만 의존한다.” (X)
2. Compound Scaling 특징
ㅇ 정의:
– 모델의 깊이(depth), 너비(width), 해상도(resolution)를 균형 있게 동시에 확장/축소하는 스케일링 방법.
ㅇ 특징:
– EfficientNet에서 제안.
– 단일 차원만 확장하는 것보다 성능 대비 효율이 높음.
– 고정된 자원 제약 내에서 최적의 성능을 목표.
ㅇ 적합한 경우:
– 다양한 하드웨어 환경에 맞춰 모델 크기를 조정해야 하는 경우.
– 모바일, 임베디드 환경에서 효율적인 성능 확보가 필요한 경우.
ㅇ 시험 함정:
– Compound Scaling은 깊이만 조절하는 방법이다(O/X) → X
– 모든 모델에 동일한 스케일링 비율이 최적이다(O/X) → X
ㅇ 시험 대비 “패턴 보기” 예시:
– “Compound Scaling은 depth, width, resolution을 동시에 조정한다.” (O)
– “EfficientNet은 Compound Scaling 적용의 대표 사례이다.” (O)
3. Residual Connection 영향
ㅇ 정의:
– 입력을 합성곱/연산 결과에 더해주는 skip connection 구조로, 잔차 학습을 가능하게 하는 연결 방식.
ㅇ 특징:
– Gradient 소실(vanishing) 문제 완화.
– 깊은 네트워크에서도 학습 안정성 향상.
– ResNet 구조의 핵심 요소.
ㅇ 적합한 경우:
– 매우 깊은 신경망 학습 시.
– 기존 네트워크 성능 향상 및 수렴 속도 개선 필요 시.
ㅇ 시험 함정:
– Residual Connection은 항상 성능을 향상시킨다(O/X) → X (데이터나 구조에 따라 성능 저하 가능)
– Skip connection은 역전파에 영향을 주지 않는다(O/X) → X
ㅇ 시험 대비 “패턴 보기” 예시:
– “Residual Connection은 깊은 신경망에서 gradient 소실 문제를 줄여준다.” (O)
– “ResNet은 Residual Connection을 활용한 대표적인 모델이다.” (O)
ㅁ 추가 학습 내용
Pruning
– 비구조적(Unstructured) Pruning: 개별 가중치 단위로 중요도가 낮은 값을 제거하는 방식으로, 모델의 희소성을 높이지만 하드웨어 최적화 효과는 제한적임
– 구조적(Structured) Pruning: 채널, 필터, 레이어 단위로 제거하여 하드웨어 가속 및 메모리 효율 개선에 직접적인 효과가 있음
– Fine-tuning 필요성: Pruning 후 성능 저하를 복구하기 위해 남은 파라미터를 재학습하는 과정이 필요함
– Pruning 후 Quantization 결합 효과: 모델 크기와 연산량을 동시에 줄여 경량화 효과를 극대화할 수 있음
Compound Scaling
– 스케일링 계수 phi와 각 차원별 계수 alpha(네트워크 깊이), beta(네트워크 너비), gamma(입력 해상도) 간의 관계식 존재
– 자원 제약 조건(CPU/GPU 연산량, 메모리 등) 하에서 alpha, beta, gamma 값을 최적화하여 성능과 효율의 균형을 맞춤
Residual Connection
– Identity mapping: 입력을 변경 없이 다음 블록에 더하는 방식
– Projection shortcut: 차원이나 채널 수가 다를 때 1×1 컨볼루션 등을 사용하여 입력을 변환 후 더하는 방식
– Bottleneck 구조 적용: 1×1, 3×3, 1×1 컨볼루션 조합에서 Residual 연결을 적용하여 파라미터 수와 연산량을 줄임
– DenseNet과의 연결 방식 차이: Residual Connection은 합(sum) 연산으로 특징을 결합하는 반면, DenseNet은 채널 방향으로 연결(concatenation)하여 특징을 누적함