AI: 네트워크 구조
ㅁ 네트워크 구조
1. Depthwise Separable Convolution
ㅇ 정의:
– 합성곱 연산을 Depthwise Convolution과 Pointwise Convolution(1×1 Conv)으로 분리하여 연산량을 줄이는 기법.
ㅇ 특징:
– 일반 합성곱 대비 파라미터 수와 FLOPs를 크게 절감.
– MobileNet, Xception 등 경량 모델에서 주로 사용.
– 채널별로 독립적인 필터 적용 후 채널 결합.
ㅇ 적합한 경우:
– 모바일/임베디드 환경에서 실시간 추론이 필요한 경우.
– 메모리 및 연산 자원이 제한적인 환경.
ㅇ 시험 함정:
– Depthwise Convolution만으로는 채널 간 정보 결합이 불가능하다는 점을 간과.
– 일반 Conv와 비교 시 파라미터 감소율 계산 문제에서 커널 크기, 채널 수를 혼동.
ㅇ 시험 대비 “패턴 보기” 예시:
– (O) Depthwise Separable Convolution은 연산량을 줄이기 위해 합성곱을 두 단계로 분리한다.
– (X) Depthwise Separable Convolution은 항상 정확도를 높인다.
================================
2. EfficientNet
ㅇ 정의:
– 모델의 깊이, 너비, 해상도를 균형 있게 확장하는 Compound Scaling 기법을 적용한 CNN 아키텍처.
ㅇ 특징:
– 동일한 정확도에서 더 적은 파라미터와 FLOPs를 사용.
– EfficientNet-B0 ~ B7 등 다양한 크기 제공.
– AutoML과 Neural Architecture Search(NAS)를 활용하여 설계.
ㅇ 적합한 경우:
– 정확도와 효율성을 동시에 요구하는 이미지 분류, 전이학습.
– 클라우드 및 모바일 환경 모두에서 활용 가능.
ㅇ 시험 함정:
– Compound Scaling의 세 요소(깊이, 너비, 해상도) 중 하나만 조정하는 방식과 혼동.
– EfficientNet은 무조건 작은 모델이라는 오해.
ㅇ 시험 대비 “패턴 보기” 예시:
– (O) EfficientNet은 깊이, 너비, 해상도를 동시에 조정하는 Compound Scaling을 사용한다.
– (X) EfficientNet은 NAS 없이 설계되었다.
================================
3. FLOPs
ㅇ 정의:
– 모델이 수행하는 부동소수점 연산(Floating Point Operations)의 총 개수.
ㅇ 특징:
– 모델 복잡도와 연산량을 나타내는 지표.
– 하드웨어별 실제 속도와는 차이가 있을 수 있음.
– 파라미터 수와는 다른 개념.
ㅇ 적합한 경우:
– 모델 경량화 평가, 연산 효율성 비교.
– 동일 정확도에서 연산량이 적은 모델 선택.
ㅇ 시험 함정:
– FLOPs가 낮다고 항상 추론 속도가 빠른 것은 아님(메모리 접근, 병렬성 영향).
– 파라미터 수와 FLOPs를 혼동.
ㅇ 시험 대비 “패턴 보기” 예시:
– (O) FLOPs는 모델의 연산량을 나타내는 지표이다.
– (X) FLOPs 값이 낮으면 항상 추론 속도가 빨라진다.
ㅁ 추가 학습 내용
Depthwise Separable Convolution의 연산량 절감 비율은 일반 Convolution 대비 약 1/N + 1/k²로 계산된다. 여기서 N은 출력 채널 수, k는 커널 크기이다. MobileNet에서는 이 방식을 적용하여 연산량과 파라미터 수를 크게 줄였다.
EfficientNet의 Compound Scaling 계수 α, β, γ는 각각 네트워크의 깊이(depth), 너비(width), 해상도(resolution)를 동시에 조정하기 위해 사용된다. 기본 B0 모델은 주어진 자원 제약 내에서 최적의 α, β, γ 값을 찾는 과정을 거쳐 설계된다. 이후 B1~B7 모델은 이 계수를 일정 비율로 확장하여 성능을 높인다.
FLOPs 계산 시 Conv 연산량 공식은 커널 크기 × 입력 채널 수 × 출력 채널 수 × 출력 feature map 크기이다. 그러나 FLOPs가 같더라도 하드웨어 특성에 따라 실제 처리 속도(Latency)는 달라질 수 있다.
시험에서는 FLOPs, Params(파라미터 수), Latency의 차이를 이해하고 비교하여 올바른 결론을 도출하는 문제가 자주 출제된다.
– FLOPs: 연산량 지표
– Params: 모델이 학습해야 할 가중치 수
– Latency: 실제 처리에 걸리는 시간