본문 바로가기
Machine-Learning/Basic

[ML] 경량 딥러닝 기술 동향

by AteN 2023. 2. 9.

https://ettrends.etri.re.kr/ettrends/176/0905176005/34-2_40-50.pdf

 

해당 글은 ETRI에서 발표한 경량 딥러닝 기술 동향의 내용을 정리한 내용 입니다. 

 

경량 딥러닝 기술 동향 

경량 딥러닝 기술은 알고리즘 자체를 적은 연산과 효율적인 구조로 설계하여, 기존 모델 대비 효율을 극대화하기 위한 경량 딥러닝 알고리즘 연구와 만들어진 모델의 파라미터들을 줄이는 모델 압축(Model Compression) 등의 기법이 적용된 알고리즘 경량화 기술로 나눌 수 있다. 

 

경량 딥러닝 알고리즘의 정의

경량 알고리즘은 CNN 계열의 모델에서는 주로 학습 시 가장 큰 연산량을 요구하는 합성곱 연산을 줄이기 위한 효율적인 합성곱 필터 기술이 일반화되고 있다. 

다양한 신규 계층 구조를 설계하여 신경망 구조를 제공함으로써 우수한 추론 성능을 보이는 연구가 진행되고 있으며, 이는 기 본 단일 충별 연산에 그치지 않고 연산량과 파라미 터 수를 줄이기 위한 잔여 블록(Residual Block) 또는 병목 블록(Bottleneck Block)과 같은 형태를

반복적으로 쌓아 신경망을 구성하는 방법이다. 

기존 신경망의 모델 구조를 인간에게 의존적으로 수행하지 않고 모델 구조를 자동 탐색함으로서 모델을 자동화하거나 연산량 대비 모델 압축 비율을 조정하는 등 다양한 자동 탐색 기술이 존재한다. 이는 모바일 딥러닝과 같은 성능 대비 추론 속도가 중요한 응용을 위해 정확도, 지연시간, 에너지 소모량 등을 사용하여 강화 학습(Reinforcement Learning)을 활용하여 경 량 모델을 탐색하는 기술

 

알고리즘 경량화의 정의

알고리즘 경량화는 경량 딥러닝 알고리즘과 달리 모델이 표현하는 다양한 파라미터의 크기를 줄이는데 주목적을 가지고 있다. 파라미터가 가지는 표현력을 가능한 한 유지하면서 불필요한 가중치를 최대한 없애기 위한 방법이다. 

일반적으로 딥러닝 모델은 과 파라미터(Over-parameterization)화 되어 있기 때문에 모델이 가지는 가중치의 실제값이 아주 작을 경우, 모델의 정확도에 큰 영향을 미치지 못하므로 (이를 모델이 작은 가중치에 대한 내성을 가진다고 표현함), 이 값을 모두 0으로 설정하여 마치 가지치기(Pruning)를 수행하는 것과 같은 효과를 내는 가중치 가지치기(Weight Pruning)가 대표적이다. 

일반적인 모델의 가중치는 부동 소수점값을 가지지만, 이를 특정 비트 수로 줄이는 양자화(Quantization)를 통해 기존 딥러닝의 표현력을 유지하면서 실제 모델의 저장 크기는 줄이는 방법도 있다. 

0과 1로 표현하여 표현력을 많이 줄이지만, 정확도의 손실은 어느 정도 유지하면서 모델 저장 크기를 확연히 줄이는 이진화 (Bizarization) 기법 등도 있다. 

 

경량 딥러닝 알고리즘 

CNN은 처음부터 여러 개의 합성곱 층과 활성화 함수를 연속적으로 이어 붙인 AlexNet을 시작으로 합성곱 층 이후에 다운 샘플 링을 통해 통과하는 격자의 크기를 줄여 연산량과 변수가 많아 학습되지 않는 문제점을 해결하고자 하였다. 이후 ZF-Net, VGGNet을 거치면서 점차 필터의 크기가 줄어들어서 1×1 필터를 주로 사용하 였다. 필터의 축소 이외에 단일 필터를 사용하는 구 조에서 벗어나 서로 다른 필터를 병렬로 연결하는 인셉션(Inception) 모듈을 통해 다양한 형태로 발전 하였다

Inception 모델 형태는 v1, v2, v3를 거치면 서 다양한 형태로 연구가 진행되었다. 이러한 연구 가 레즈넷(ResNet)과 같이 두 개의 연속적인 합성 곱 층에 단위행렬의 추가를 위한 지름길(shortcut) 을 더해 줌으로써 가중치들이 더 쉽게 최적화될 수 있는 잔여 블록(Residual Block) 형태로 개선되었 으며, 점차 병목 구조(Bottleneck Architecture), 밀집 블록(Dense Block) 형태로 발전되고 있다.

 

모델 구조 변경 기술 

ResNet

깊은 신경망의 문제는 층의 수가 늘어나면서 점차 정화도가 저하되는 문제가 발생하게 된다.

아래의 그림의 왼쪽과 같이 계층 (Weight layer)이 계속 쌓이는 경우, 최적의 H(x) 를 찾는 문제에서 오른쪽과 같이 문제의 정의를 바꾸어 출력과 입력의 차이(H(x)- x=F(x))를 목표로 하면, 출력은 F(x)+x가 된다

결국, 지름길(x)을 통해 파라미터 없이 바로 연결되는 구조로 바꾸고, 연산량 관점에서 덧셈이 추가되는 형태로 문제를 단순화할 수 있게 된다. 이러한 잔여(Residual, F(x))를 학습하는 형태로 발전하게 된다. 이를 통해 깊은 신경망에서도 쉽게 최적화가 가능하며, 늘어난 깊이로 인한 정확도 개선 효과도 보게 된다. 

 

DenseNet

기존 신경망 모델 구조의 여러 장점을 모아 DenseNet이 고안되었다. 기존 Feature map을 더해 주는 게 아닌 쌓아가는 과정을 거치며 모델의 성능을 높이고자 하였다. 

아울러 Image Classification의 경우, 맨 마지막 층의 하이 레벨 피처에서만 사용하던 것이, DenseNet에서는 이전의 모든 층에서의 정보를 취득하는 형태가 가능하다. 이를 통해 기존의 다른 네트워크보다 좁게 설계 가능해지고, 파라미터 수를 줄일 수 있게 되었다. 

Reproduced from Zhuang Liu,  https://github.com/liuzhuang13/DenseNet

SqueezeNet

기본적으로 사용하 는 합성곱 필터인 3×3 필터를 1×1 필터로 대체함으로써 9배 적은 파라미터를 가지며, 1×1 합성곱 을 이용하여 채널 수를 줄였다가 다시 늘리는 파이어 모듈(Fire Module) 기법을 제안하였다. 또한, 늦은 다운 샘플링 전략을 통해 한번에 필터가 볼 수 있는 영역을 좁히면서 해당 이미지의 정보를 압 축시키는 효과를 볼 수 있게 된다

효율적인 합성곱 필터 기술 

모델 구조를 변경하는 다양한 경량 딥러닝 기법은 점차 채널을 분리하여 학습시키면서 연산량 과 변수의 개수를 줄일 수 있는 연구로 확장되었다.

일반적인 합성곱은 채널 방향으로 모두 연산을 수행하여 하나의 특징을 추출하는 데 반해,

채널별(Depthwise)로 합성곱을 수행하고, 다시 점별 (Pointwise)로 연산을 나누어 전체 파라미터를 줄 이는 것과 같이 다양한 합성곱 필터를 설계하기 시작하였다.

이후, 점별 그룹 형태로 섞는 셔플 방법 이 연구 진행 중이다

 

MobileNet

기존의 합성곱 필터를 채널(Channel) 단위로 먼저 합성곱 (Depthwise Convolution)을 하고, 그 결과를 하나의 픽셀(point)에 대해서 진행하는 합성곱 (Pointwise Convolution)으로 나눔 (ex. 필터의 가로, 세로 길이를 3이라고 할 때, 약 8~9배의 이득)

 

ShuffleNet

액셉션(Xception)이나 모바일넷(MobileNet) 에 제안된 채널별(Depthwise) 개별 합성곱은 표현 성능은 그리 높지 않지만, 연산량을 대폭 줄 일 수 있기 때문에 현재까지도 많이 사용되고 있으며, 셔플넷(ShuffleNet)에서는 점별 합성곱(Pointwise convolution) 시 특정 영역의 채널에 대해서만 연산을 취하는 형태로 설계하면 연산량을 매우 줄일 수 있을 것으로 생각하였다. 입력에서만의 정보 흐름만을 취하는 대신, 입력의 각 그룹이 잘 섞일 수 있도록 개선한 것이 핵심

 

경량 모델 자동 탐색 기술 

강화 학습 기법이 적용된 다양한 응 용이 활발히 연구되고 있으며, 모델 구조와 합성곱 필터를 설계하고 구현하는데, 강화 학습을 통한 자동 탐색 기법들이 소개되고 있다.

이는 기존의 신경망의 최적화는 MACs(Multiplier-Accumulators) 또는 FLOPs(Floating Operations Per Seconds) 에 의존하였으나, 실용적인 방식인 Latency 또는 Energy Consumption 문제로 기준이 바뀌고 있다.

그에 따라, 추론에 최적화된 신경망을 자동 생성하거나 연산량 대비 모델의 압축비를 조정하는 데 사용되고 있다. 또한 신경망을 생성, 훈련, 배포하는 과정을 크게 단축시키는 역할을 하고 있다

 

알고리즘 경량화 

알고리즘 경량화 연구는 효율적인 네트워크 구조 를 설계하거나 합성곱 연산의 다양한 변이, 모델 자동 탐색과 같은 경량 알고리즘의 연구와 달리, 기존 알고리즘의 불필요한 파라미터를 제거하거나, 파라 미터의 공통된 값을 가지고 공유하거나, 파라미터 의 표현력을 잃지 않으면서 기존 모델의 크기를 줄 이는 연구 분야이다.

주로 모델 압축(Model Compression) 및 지식 증류(Knowledge Distillation) 연구와 가속화(Acceleration) 형태로 진행되고 있다.

 

모델 압축(Model Compression) 기술

가중치 가지치기 (Weight Pruning)

기존 신경망이 가지고 있는 가중치 (Weights) 중 실제 추론을 위해 필요한 값은 비교적 작은 값들에 대한 내성을 가지므로, 작은 가중치값을 모두 0으로 하여 네트워크의 모델 크기를 줄이는 기술이다. 

이후의 연구는 가중치 가지치기 (Weight Pruning) 후에 재훈련 과정을 통해 정확도를 높일 수 있는 방식으로 신경망을 세밀하게 조율하는 방식으로 진행되고 있다. 또한 일반적인 가중치를 통한 접근 방법 이외에 채널을 선별하여 중복 (불필요한) 재널에 대한 가지치기를 통해 모델을 압축하는 연구도 진행

Reprinted with Permission from https://arxiv. org/abs/1510.00149, 2015 and, https://arxiv.org/ abs/1707.06168, 2017.

 

양자화 및 이진화

양자화와 이진화는 기존의 신경망의 부동 소수점 수를 줄이는데 그 목적이 있으며, 양자화(Quantization)의 경우 특정 비트 수만큼으로 줄여서 계산하는 방식이다

가령 32비트 소수점을 8비트로 줄여서 연산을 수행한다. 이진화(Binarization)는 신경망이 가지고 있던 가중치 (Weights)와 층 사이의 입력을 부호에 다라서 -1 혹은 +1의 이진(Binary) 형태의 값으로 변환하여, 기존의 Floating Point를 사용하는 신경망들에 비해 용량과 연산량을 대폭 압축시키는 기술이다. 

가중치 공유 (Weight Sharing) 

가중치 공유 (Weight Sharing) 기법은 낮은 정밀도에 대한 높은 내성을 가진 신경망의 특징을 활용해 가중치를 근사하는 방법이다. 기존 가중치 값들은 근사한 값(코드북)을 통해 가중치들을 공유하는데, 코드북과 그 값에 대한 인덱스만을 저장하는 구조이므로, 실제 저장 공간을 정략할 수 있다. 근사화하는 방식은 가중치들의 유사도에 기반하는데, 주로 K-mean 또는 Gaussian Mixture Model을 활용한다 

 

지식 증류 기술 

지식 증류(Knowledge Distillation) 기술은 앙상블(Ensemble) 기법을 통해 학습된 다수의 큰 네트워크들로부터 작은 하나의 네트워크에 지식을 전달 할 수 있는 방법론 중 하나이다. 다수의 큰 네트워크들인 전문가(Experts, Teacher) 모델에 서 출력은 일반적으로 특정 레이블에 대한 하나의 확률값 만을 나타내지만, 이를 확률값들의 분포 형 태로 변형하여, 숙련가(Specialist, Student) 모델 의 학습 시에 모델의 Loss와 전문가 모델의 Loss 를 동시에 반영하는 형태로 숙련가 모델을 학습에 활용

일반적인 지식 증류 기술의 연구는 모델 압축 기술과 같이 신경망을 간소화하는 방식으로 이루어 지고 있지만, 반대로 현재 훈련된 네트워크보다 더 큰 네트워크로의 지식 전이(Knowledge Transfer) 를 하는 연구도 진행 중이다. 이러한 지식 전이 기법 중에서 더 깊거나 더 넓은 네트워크를 만들 때 정보를 완벽히 동일하게 전달하는 연산(Operation) 방법도 가능하다.

하드웨어 가속화 기술

벡터/행렬 연산을 병렬 처리하기 위한 전용 하 드웨어 TPU(Tensor Processing Unit), On-Device AI 응용 추론을 위한 전용 VPU(Visual Processing Unit) 프로세스 및 GPU Cluster 기반 가속기 등의 연구 개발이 주요 IT 기업에 의해 주도되고 있다.

 

모델 압축을 적용한 경량 모델 자동 탐색 기술

경량 딥러닝 알고리즘의 모델 설계를 자동화하 기 위하여 합성곱 연산, 커널 크기, 필터 크기, 층 (Layer)의 개수 등 다양한 탐색 공간을 통한 다양 한 모델을 설계하는 것과 유사하게, 알고리즘 경량 화도 모델 압축 기법의 네트워크 가지치기, 가중치 양자화 등의 탐색 공간을 통한 자동화 연구가 진행중이다.

댓글