네트워크 구조: FLOPs
ㅁ 네트워크 구조
ㅇ 정의:
– 네트워크 구조는 인공 신경망에서 레이어와 노드의 구성 방식을 의미하며, 모델의 성능과 효율성을 결정짓는 중요한 요소이다.
ㅇ 특징:
– 모델의 복잡도와 계산량을 조정할 수 있다.
– 특정 작업에 최적화된 구조를 설계할 수 있다.
ㅇ 적합한 경우:
– 모델의 계산 효율성을 높이고자 할 때.
– 특정 하드웨어 환경에서 최적화된 성능을 내야 할 때.
ㅇ 시험 함정:
– 네트워크 구조와 관련된 용어를 혼동하거나 정의를 잘못 이해할 수 있음.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: 네트워크 구조는 모델의 레이어와 노드 구성 방식을 의미한다.
– X: 네트워크 구조는 데이터 전처리 기법 중 하나이다.
================================
1. FLOPs
ㅇ 정의:
– FLOPs(Floating Point Operations per Second)는 딥러닝 모델이 수행하는 부동소수점 연산의 총량을 나타내는 지표로, 모델의 계산 복잡도를 평가하는 데 사용된다.
ㅇ 특징:
– 모델의 연산 효율성을 측정할 수 있다.
– 일반적으로 FLOPs가 적을수록 계산 비용이 낮다.
– 하드웨어 성능과 밀접한 연관이 있다.
ㅇ 적합한 경우:
– 모델의 경량화를 평가하거나 하드웨어 자원 사용량을 최적화할 때.
– 여러 모델의 계산 복잡도를 비교할 때.
ㅇ 시험 함정:
– FLOPs와 모델 파라미터 수를 혼동할 가능성이 있음.
ㅇ 시험 대비 “패턴 보기” 예시:
– O: FLOPs는 딥러닝 모델의 계산 복잡도를 나타내는 지표이다.
– X: FLOPs는 모델의 학습 데이터 양을 측정하는 단위이다.
ㅁ 추가 학습 내용
FLOPs와 모델 경량화 기법에 대해 학습할 때 다음과 같은 내용을 정리하면 시험 대비에 효과적일 것입니다.
1. FLOPs와 모델 경량화 기법의 관계
– FLOPs(Floating Point Operations Per Second)는 모델이 수행하는 연산량을 나타내는 지표로, 모델의 복잡도를 평가하는 데 사용된다.
– 모델 경량화 기법은 FLOPs를 줄여 모델의 연산량을 감소시키는 데 중점을 둔다.
– 프루닝(Pruning): 모델의 중요도가 낮은 가중치나 뉴런을 제거하여 네트워크를 단순화한다. 이를 통해 FLOPs가 감소하고 모델의 크기와 연산 비용이 줄어든다.
– 퀀타이제이션(Quantization): 모델의 가중치와 활성화 값을 낮은 비트로 표현(예: 32비트에서 8비트로)하여 연산량을 줄이고 FLOPs를 감소시킨다.
2. FLOPs와 실제 실행 시간(Latency)의 차이
– FLOPs는 이론적인 연산량을 측정하는 데 사용되며, 하드웨어나 실행 환경에 독립적인 지표이다.
– 실제 실행 시간(Latency)은 모델이 입력 데이터를 처리하는 데 소요되는 시간을 의미하며, 하드웨어의 성능, 메모리 대역폭, 병렬 처리 능력 등의 영향을 받는다.
– FLOPs가 낮아도 하드웨어 최적화가 부족하거나 메모리 병목현상이 발생하면 Latency가 높아질 수 있다.
– 반대로 FLOPs가 높아도 하드웨어가 효율적으로 병렬 처리를 수행하면 Latency가 낮아질 수 있다.
이 두 가지 내용을 학습 노트에 포함하면 FLOPs와 모델 경량화 기법의 실질적인 영향을 이해하고, FLOPs와 Latency의 차이점을 명확히 구분할 수 있어 시험 대비에 유리할 것입니다.