[2024-2] 박서형 - SqueezeNet, ShuffleNet
< Squeezenet >
https://arxiv.org/abs/1602.07360
SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size
Recent research on deep neural networks has focused primarily on improving accuracy. For a given accuracy level, it is typically possible to identify multiple DNN architectures that achieve that accuracy level. With equivalent accuracy, smaller DNN archite
arxiv.org
1. Introduction and Motivation
1) Motivaion
AlexNet과 동일한 정확도를 유지하면서 모델크기를 줄이는 것이 목표 -> 딥러닝 모델을 모바일/임베디드 장치에서 실현 가능하도록 설계
2) Advantages
-파라미터수를 50배 줄임
-모델 크기를 0.5MB 미만으로 압축
-동일한 수준의 정확도 제공
2. Related Work
AlexNet, VGG, ResNet 등의 기존 모델은 높은 정확도를 제공하지만 메모리 사용량과 계산량이 많아 제한이 많다. 반면 경량화된 모델은 모바일 기기에서의 딥러닝 활용도 가능하게 한다. Squeezenet은 모델 크기와 정확도 간의 균형을 유지하기 위해 설계
3. Squeezenet
1) Architectural Design Strategies
적은 파라미터를 사용해도 경쟁력 있는 정확도를 유지하는 것이 목표
- 3x3 필터를 1x1 필터로 교체 : 1x1 필터는 3x3 필터에 비해 9배 적은 파라미터
- 3x3 필터의 입력 채널 수 감소 : squeeze layer를 활용하여 입력 채널 수를 줄여 파라미터를 추가로 감소
- 네트워크에서 다운샘플링을 늦게 수행 : 초기 레이어에서는 다운샘플링을 지연시켜 높은 해상도의 활성화 맵을 유지
-> 네트워크 후반부에서 더 큰 활성화 맵을 통해 정확도를 높이는 데 기여
2) The Fire Module
- Fire Module은 squeeze 단계와 expand 단계로 구성
- squeeze 단계는 1x1 컨볼루션 필터만 포함하여 입력 채널 수를 줄임
- expand 단계는 1x1 및 3x3 컨볼루션 필터를 조합하여 특징 맵을 확장
- 하이퍼 파라미터 : squeeze 레이어에서의 1x1 필터 수), e1x1 ( expand 레이어에서의 1x1 필터 수 )
Max-pooling을 네트워크 중반과 후반에 수행하여 활성화 맵의 크기를 줄임 -> 다운샘플링을 늦게 수행해 모델의 성능을 유지
# Other squeezenet details
- Zero-padding : Expand 모듈의 3x3 필터는 1픽셀의 제로 패딩을 사용하여 1x1 및 3x3 필터 출력의 높이와 너비를 동일하게 유지
- Activation function : Squeeze 및 Expand 레이어의 활성화 값에 ReLU(Nair & Hinton, 2010)를 적용
- Drop out : Fire9 모듈 이후에 드롭아웃(Srivastava et al., 2014) 비율 50%를 적용해 과적합을 방지
- Lack of fully-connected layers : NiN(Lin et al., 2013) 구조에서 영감을 받아 SqueezeNet은 완전 연결층을 제거
- Learning rate : 학습 초기에 학습률을 0.04로 설정하고 학습이 진행될수록 선형적으로 학습률을 감소
- Caffe framework : Caffe 프레임워크는 1x1 및 3x3과 같은 다중 필터 해상도를 한 컨볼루션 레이어에서 지원하지 않으므로, Expand 레이어를 두 개의 별도 컨볼루션 레이어(1x1 필터 레이어, 3x3 필터 레이어)로 구현한 뒤, 출력 채널을 결합하여 동일한 효과를 구현
4. 결론
- ImageNet 데이터셋에서 AlexNet과 동일한 정확도를 달성
- SqueezeNet의 모델 크기는 AlexNet보다 510배 작으며, 정확도는 유사
- 압축 후 모델 크기는 0.5MB 미만으로 감소
=> SqueezeNet은 경량 모델 설계의 새로운 기준을 제시하였고 높은 정확도를 유지하면서도 모델 크기를 크게 줄여, 제한된 하드웨어 환경에서도 딥러닝의 활용 가능성을 확장했다.
< ShuffleNet >
https://arxiv.org/abs/1707.01083?utm_source=chatgpt.com
ShuffleNet: An Extremely Efficient Convolutional Neural Network for Mobile Devices
We introduce an extremely computation-efficient CNN architecture named ShuffleNet, which is designed specially for mobile devices with very limited computing power (e.g., 10-150 MFLOPs). The new architecture utilizes two new operations, pointwise group con
arxiv.org
1. Introduction
ShuffleNet은 드론, 로봇, 스마트폰과 같이 제한된 계산 성능을 가진 모바일 장치에서 최적의 정확도를 목표로 설계된 매우 효율적인 합성곱 신경망(CNN)이다. 수십에서 수백 MFLOP(백만 부동소수점 연산)의 계산 예산을 유지하면서 최적의 정확도를 달성하는 것이 목표이다.
- Pointwise Group Convolution : 1x1 합성곱의 계산 복잡도를 줄여준다.
- Channel Shuffle : 그룹 합성곱의 한계를 극복하고 정보가 피처 채널을 가로질러 흐를 수 있도록 도와준다.
2. ShuffleNet
1) Channel Shuffle
1x1 합성곱에서도 그룹 합성곱을 적용하여 계산 비용을 줄입니다. 하지만 여러 개의 그룹 합성곱을 쌓을 경우, 특정 채널의 출력이 적은 입력 채널에서만 파생되기 때문에 정보 흐름이 차단되고 표현력이 약해질 수 있습니다. 이를 해결하기 위해 채널 셔플(Channel Shuffle) 연산을 도입하여 서로 다른 그룹의 입력 데이터를 결합해 출력 채널이 서로 연결되도록 합니다. 이 연산은 네트워크 학습에 적합하며, 계산 비용을 크게 증가시키지 않으면서도 더 강력한 구조를 만들 수 있게 한다.
2) ShuffleNet Unit
ShuffleNet 유닛은 채널 셔플 연산을 활용하여 작은 네트워크에 최적화된 새로운 유닛이다. 기존의 보틀넥 유닛을 기반으로, 1x1 합성곱을 그룹 합성곱으로 대체하고 그 뒤에 채널 셔플 연산을 추가하여 ShuffleNet 유닛을 만든다. 이렇게 해서 계산 효율성을 높이며, 두 번째 1x1 그룹 합성곱을 통해 채널 차원을 복원한다. 이 구조는 ResNet과 ResNeXt보다 복잡도가 낮고, 작은 네트워크에서 더 넓은 피처 맵을 사용할 수 있게 해준다. ShuffleNet 유닛은 깊이별 합성곱을 보틀넥 피처 맵에서만 수행하여 계산 오버헤드를 최소화한다.
3) Network Architecture
ShuffleNet은 여러 ShuffleNet 유닛으로 구성되며, 세 개의 주요 단계로 나누어진다. 각 단계의 첫 번째 블록은 스트라이드 2를 적용하여 크기를 줄인다. 각 단계의 출력 채널 수는 두 배로 늘어나며, 보틀넥 채널 수는 출력 채널의 1/4로 설정된다. 그룹 수(g)는 1x1 합성곱의 연결 밀도를 조절하며, 계산 비용을 일정하게 유지하면서도 더 많은 출력을 생성할 수 있도록 한다. 계산 복잡도를 조정하려면 채널 수에 스케일링 팩터를 적용하여 네트워크의 복잡도를 조절할 수 있다.
=> ShuffleNet은 계산 효율성을 유지하면서도 더 많은 정보를 인코딩할 수 있는 구조를 제공하며, 작은 네트워크에서 뛰어난 성능을 발휘한다.