서정윤
(Jeong-Yun Seo)
1iD
이종윤
(Jong-Youn Lee)
1
박성준
(Sung-Jun Park)
1
이하림
(Harim Lee)
†iD
-
(Department of Semiconductor System Engineering, Kumoh National Institute of
Technology, Republic of Korea.
E-mail : seojeongyun@kumoh.ac.kr, 20246116@kumoh.ac.kr, darkjyuk@kumoh.ac.kr)
Copyright © The Korea Institute for Structural Maintenance and Inspection
Key words
Deep learning, Quantization, Low-rank approximation, Pruning, Verilog HDL
1. 서 론
딥러닝 기술이 소프트웨어 관점에서 괄목할만한 성능을 달성함에 따라 산업 및 실생활로의 적용이 대두되고 있다. 이를 위해서는 딥러닝 네트워크가 말단
장치 (Edge- device)에 구현될 수 있어야 하며 동시에 딥러닝 네트워크의 구동을 위해서는 말단 장치에 고성능 연산 장치의 탑재가 필수적이다.
하지만 말단 장치에서 전력 소모가 크고 부피를 많이 차지하는 GPU를 사용하는 것은 어려울 수 있으며, 실제로 추론 과정에 GPU를 사용하는 것이
전력 소모 및 비용 측면에서 비효율적이라는 문제가 제기되고 있다.
그뿐만 아니라, 딥러닝 네트워크의 실생활 적용을 위해서는 딥러닝 기법의 추론 성능과 실시간 동작성이 뒷받침되어야 한다. 딥러닝 네트워크를 구성하는
가중치의 수가 많지 않고 실시간 동작을 요하지 않았던 초창기의 딥러닝 활용 시스템은 추론 속도에 대한 고려 없이 모델 성능 개선이 최우선 목표였다[1,2,3]. 하지만, Chat-GPT와 같은 실시간 서비스 [4,5,6]의 등장과 딥러닝 네트워크의 높은 성능을 활용하고자 하는 산업계의 요구가 증가하고 있기에 딥러닝 네트워크의 실시간 동작성 역시 중요해지고 있다[7].
추론 성능을 향상시키기 위한 소프트웨어 관점의 네트워크 구조 효율화 연구는 과거부터 꾸준히 진행됐다[8,9]. 해당 연구들에 의해 추론 성능이 향상되어 실제 산업 환경에서 많이 적용되고 있지만, 여전히 빠른 추론 성능과 더불어 높은 성능을 보장하기 위해서는
고성능의 하드웨어가 필요하다. 이에, 실시간 동작을 보장하기 위한 하드웨어 관점의 해결 방안으로, 딥러닝 네트워크 동작에 최적화된 AI 하드웨어 가속기의
개발이 산업계에서 활발히 진행되고 있다.
AI 하드웨어 가속기에서의 연산이 소프트웨어 연산에 비해 빠를 수 있는 점은 하드웨어는 파이프라이닝 연산이 가능하다는 것에 있다. 소프트웨어는 컴파일러
또는 인터프리터를 통해 프로그램을 해석하면서 명령어를 실행하는데, 프로그램을 순차적으로 해석하기 때문에 파이프라이닝 연산이 불가능하다. 반면, 하드웨어는
하나의 작업이 여러 단계를 거치는 동안 각 단계가 독립적으로 수행되는 파이프라이닝 연산이 가능하기에 소프트웨어에 비해 연산 속도가 빠르다. 각 단계가
독립적으로 수행되는 점을 고려하면 대량의 데이터를 실시간으로 처리해야 하는 딥러닝 추론 연산에 하드웨어를 사용하는 것은 필수적이다.
딥러닝 네트워크의 연산은 각 노드의 값과 가중치를 곱하고 더하는 MAC(Multiply-Accumulate) 연산을 기본으로 한다. 따라서 MAC
연산을 하드웨어에서 빠르고 효율적으로 처리할 수 있다면 소프트웨어적 도움 없이 네트워크의 추론 속도를 향상시킬 수 있다. 또한 최근 부상 중인 단말
내 인공지능 (On-device AI)를 실현시키기 위해서는 리소스 제약적 환경인 말단 장치에 인공지능 모델을 탑재해야 하고 이를 위해서는 딥러닝
네트워크를 하드웨어에 직접 설계하는 것이 하나의 방법이 될 수 있다.
딥러닝 네트워크에 최적화된 AI 하드웨어 가속기는 추론형과 학습형으로 구분할 수 있으며, 추론형 AI 반도체는 학습된 딥러닝 네트워크의 가중치를 바탕으로
추론에 최적화될 수 있도록 개발되며 학습형의 경우 네트워크 학습 및 추론 모두 가능하도록 개발된다. 최근 AI 반도체 시장은 추론형 AI 반도체 개발이
주를 이루고 있다 [10]. 학습용 AI 반도체에서, 딥러닝 네트워크 학습을 위한 소프트웨어 및 하드웨어 전반에 대해서는 반도체 기업 엔비디아 (NVIDIA) 가 독보적인
생태계를 구축하고 있으며 또한 이미 높은 수준의 AI 반도체 완성도를 보여주고 있다. 하지만 엔비디아의 AI 반도체의 경우 학습과 추론 모두 가능한
범용 AI 반도체이기 때문에 특정 용도에 최적화된 추론 속도, 성능, 및 소비 전력을 제공하기는 어렵다. 이에 반해 추론형 AI 반도체의 경우 개발에
있어 딥러닝 네트워크의 추론만을 고려하기 때문에 추론에 최적화된 연산 구조와 메모리 입출력 구조를 설계할 수 있다는 장점이 있고 이는 최근 대두되고
있는 문제 해결에 더 적합한 접근 방식이라 할 수 있다.
추론형 AI 반도체 개발에 있어 중요 지표로는 딥러닝 네트워크의 추론 성능, 추론 속도 및 메모리 사용 효율성이 있다. 추론형 AI 반도체는 사전
학습된 딥러닝 네트워크의 가중치를 메모리에 저장하고 이를 활용하여 입력으로 들어오는 데이터와 함께 추론을 실행한다. 따라서, 추론형 AI 반도체는
딥러닝 네트워크가 소프트웨어적으로 실행되었을 때의 성능을 최대한 동일하게 보장하면서 속도와 메모리 사용 효율성을 높일 수 있도록 설계되어야 한다.
하지만 AI 반도체에서 딥러닝 네트워크의 추론 성능과 추론 속도 및 메모리 사용 효율성은 서로 상충관계에 놓여있다. 이러한 상충관계는 딥러닝 네트워크의
가중치와 특징값을 위한 데이터 표현 형식과 가중치의 수에 의해 발생한다. 데이터 표현 형식 관점에서 딥러닝 네트워크가 높은 성능을 달성하기 위해서
가중치와 특징값을 부동 소수점 형식으로 사용하지만, 이는 AI 반도체 관점에서 메모리 사용 효율성 및 추론 속도 저하의 요인이 된다. 부동 소수점
형식은 정수 데이터 형식에 비해 더 넓은 범위의 수를 표현할 수 있기 때문에 더 많은 정보량을 표현할 수 있다. 즉, 딥러닝 네트워크가 더 많은 정보량을
다룰 수 있으므로 더 높은 성능을 달성할 수 있다. 그러나, 일반적으로 부동 소수점의 연산이 정수 연산에 비해 느리다는 단점이 있으며 소수 표현으로
인해 메모리 사용 효율성이 떨어진다.
데이터 표현 형식 측면을 제외하고 딥러닝 네트워크의 성능을 증가시키는 가장 일반적인 방법은 가중치의 수를 증가시키는 것이다. 이러한 점 때문에 딥러닝
모델의 크기가 기하급수적으로 증가하였다. 이는 AI 반도체 관점에서 가중치를 저장하는 메모리양과 메모리에 접근하는 입출력 횟수의 증가를 의미한다.
즉, AI 반도체는 메모리 입출력 단의 병목 현상을 겪을 수 있으며 더 넓은 하드웨어 면적을 요구하게 된다. 실제로도 대규모 언어 모델인 GPT와
같이 많은 수의 가중치가 필요한 모델에서 발생하는 추론 속도 저하의 주된 원인이 메모리와 연산 코어 간 데이터 송수신의 병목 현상이라고 분석되고 있다.
따라서, 본 연구에서는 추론 성능을 최대한 보장하면서 메모리 요구량을 줄일 수 있는 경량화 완전 연결층 네트워크 하드웨어 개발에 대해서 소개한다.
해당 개발은 경량화된 딥러닝 네트워크 가중치 학습과 해당 가중치를 이용하여 추론할 수 있는 하드웨어 설계로 이루어진다.
경량화된 가중치 도출을 위해서 본 연구에서는 양자화 (Quantization), 지식 증류 (Knowledge distillation), 가지치기
(Pruning), 및 특이값 분해 기반의 가중치 행렬 분해를 고려한다. 앞선 기법을 통해 기존 네트워크 성능 대비 정확도 감소를 최소화하면서도 가중치의
수를 감소시킨다.
행렬 분해를 통한 가중치 행렬이 분해되는 것은 하나의 완전 연결층(Fully connected layer) 구조가 변화한다는 것을 의미하며 변화된
구조로 인해 하나의 층에서의 계산 방식이 완전히 달라진다. 따라서 본 연구에서는 변경되는 계산 구조를 반영한 하드웨어를 설계하고 이를 RTL 시뮬레이션
레벨에서 검증한다. 또한, MNIST 데이터셋을 사용하여 소프트웨어와 설계한 하드웨어에 대해 학습된 가중치를 적용하고 도출된 추론 정확도를 비교함으로써
설계된 하드웨어를 추가 검증한다.
해당 연구를 통해 행렬 분해를 기반으로 한 경량화 하드웨어 설계의 전반적인 과정과 더불어 학습에서 사용되는 드롭아웃 (Dropout) 기법, 경량화를
위한 Pruning 기법과 행렬 분해 기법 간의 연관성을 심도있게 분석함으로써 딥러닝 네트워크 경량화에 대한 독자들의 이해도를 돕고자 한다.
2. 딥러닝 네트워크 경량화 기법
본 장에서는 본 연구에서 고려하는 양자화 및 경량화 기법들에 대해서 설명한다. 양자화 기법으로 학습 후 양자화 및 양자 인지 학습 기법을, 그리고
양자 인지 학습의 손실함수로 사용할 수 있는 지식 증류 기법을 사용한다. 또한 네트워크 가중치의 경량화를 위해서는 가지치기 기법 및 행렬 분해 기법을
고려한다.
2.1 양자화 (Quantization)
하드웨어에서 구동되는 딥러닝 네트워크의 가중치 값은 정수형으로 저장되어 연산에 사용된다. 따라서 부동 소수형으로 학습된 가중치를 정수형으로 변환해야
하고 이를 위한 기법이 양자화이다[11,12]. 양자화는 데이터 형식을 정수형으로 변환하되, 기존의 모델 성능을 최대한 유지하여야 한다. 양자화의 대표적인 기법으로는 학습 후 양자화(Post
Training Quantization)와 양자화 인지 학습(Quantization Aware Training)이 있다.
본 연구에서는 두 가지 기법을 모두 고려함으로써 양자화의 성능을 비교하며, 기법별 양자화 방식은 다음과 같다.
2.1.1 학습 후 양자화 (Post-Training Quantization)
양자화 기법 PTQ(Post-Training Quantization)는 학습이 완료된 부동 소수점 데이터 형식의 가중치를 정수 데이터 형식으로 변환하는
기법으로, 입력 데이터를 네트워크에 통과시켜 출력되는 결과값에 따라 양자화 사상 범위를 조절하며 해당 범위 내에 네트워크의 가중치 값을 선형적으로
사상한다.
해당 기법의 경우 양자화 과정에서 수를 표현하는 비트 수를 감소시키기 때문에 표현 수의 범위가 제한된다. 따라서, 정보 손실이 발생할 수 있기에 네트워크
정확도를 감소시킬 수 있다는 단점이 있다.
2.1.2 양자 인지 학습 (Quantization-Aware Training)
양자화 기법 QAT(Quantization-Aware Training)는 네트워크 학습 도중에 양자화 결과를 시뮬레이션하여 최적의 정수값을 학습하는
기법이며, 그림 1은 해당 기법의 예시를 보여준다. 그림의 위쪽 흐름처럼 시뮬레이션에서 부동 소수점 가중치를 양자화하여 정수형으로 변환한 후, 정수형 가중치에 대해
순전파를 진행한다. 정수형 가중치의 순전파 결과에 대한 오류를 부동 소수점 가중치에 대해 역전파하여 네트워크 업데이트를 위한 기울기 값을 생성한다.
그림 1 아래 흐름에서처럼 생성된 기울기는 부동 소수점으로 표현되고 해당 값을 이용하여 부동 소수점 네트워크 가중치를 최종적으로 갱신한다. 해당 흐름을 반복적으로
수행함으로써 가중치의 값들이 최적의 정수값에 도달할 수 있도록 한다. 학습을 바탕으로 양자화를 수행하기 때문에 일반적으로 학습 후 양자화 기법에 비해
성능이 우수하다.
그림 1. QAT 동작 과정에 대한 설명 예제.
Fig. 1. Example of the procedure of QAT.
2.2 지식 증류 (Knowledge Distillation) 기법
지식 증류 기법은 작은 모델로 큰 모델의 성능을 모방하고자 하는 데서 착안 된 기법으로, 큰 모델로부터 지식을 증류 받아 작은 모델의 성능을 향상시키는
방식이다[13]. 그림 2는 지식 증류 기법에 대한 예시를 보여준다. 그림에 선생(Teacher) 모델과 학생(Student) 모델이 있으며, 선생 모델이 학생 모델에 비해
가중치가 상대적으로 더 많다. 따라서 선생 모델이 동일 데이터 집합(Dataset)에 대해 더 많은 정보량 및 표현력을 학습할 수 있다.
지식 증류 기법에서는 학생 모델이 선생 모델의 표현력을 모방할 수 있는 학습 구조를 사용한다. 이를 위해 학생 모델을 위한 전체 손실함수는 수식 (1)과 같이 설계된다.
위 수식의 $\tau$ 와 $\alpha$ 는 하이퍼 파라미터이다. 하이퍼 파라미터 $\alpha$는 수식 (1)의 두 항 사의 비율을 조절하며 수식 (2)에서 $\tau$를 통해 Soft Loss의 유효 정도를 결정한다. 변수 $\tau$의 값이 증가할수록 Soft Loss를 통해 지식 증류의 정도가
감소한다. 수식 (1)에서 ${W}_{{S}}$는 학생 모델의 가중치 행렬이다.
변수 ${Q}_{{S}}^{\tau}\in{R}^{N_{{class}}\times 1}$와 ${Q}_{{T}}^{\tau}\in{R}^{N_{{class}}\times
1}$는 각각 학생과 선생의 출력 벡터이고 $N_{{class}}$는 클래스의 총 개수를 의미한다. 학생 출력 벡터는 ${Q}_{{S}}^{\tau}=[q_{({S},\:
1)}^{\tau}. . . q_{({S},\: N_{{class}})}^{\tau}]$와 같으며 선생 출력 벡터 ${Q}_{{T}}^{\tau}$도
유사하게 구성된다. 벡터 요소인 $q_{({S},\: k)}^{\tau}$와 $q_{({T},\: k)}^{\tau}$는 아래 수식 (2)의 소프트맥스(Softmax) 함수를 통해 구한다.
위 수식에서 $i\in{S},\:{T}$, $k\in[1 ,\: N_{{class}}]$, 그리고 $y_{(i ,\: k)}$는 $(i ={S})$일
때 학생 모델의 $k$번째 출력값을 의미한다. ${Q}_{{S}}={Q}_{{S}}^{(\tau =1)}$이고 ${y}_{{true}}\in{R}^{N_{{class}}\times
1}$는 정답을 의미한다. 마지막으로 ${CE}(·)$은 크로스 엔트로피(Cross entropy) 손실함수이다.
그림 2. Knowledge distillation에 대한 설명 예제 (m > n).
Fig. 2. Description of knowledge distillation (m > n).
지식 증류 기법에서는 실제 정답 뿐 아니라 선생 모델의 출력값을 정답으로 간주하고, 이를 소프트라벨이라 한다. 수식 (1)의 첫 번째 항인 Soft Loss는 소프트라벨과 학생 모델의 출력값에 대한 손실값을 의미하고 두 번째 항 Hard Loss는 학생 모델의 출력값과
실제 정답과의 크로스 엔트로피 손실값을 의미한다. 전체 손실값에서 Soft Loss를 통해 학생 모델이 선생 모델의 표현력을 모방하도록 학습된다.
본 연구에서는 수식 (1)인 지식 증류 손실함수를 학습 인지 양자화에서 추가 손실값으로 사용한다. 이를 통해 학습 인지 양자화의 성능을 증가시킬 수 있을지를 분석한다.
2.3 가지치기 (Pruning) 기법
학습 시 네트워크의 가중치들 중 출력값 생성에 영향을 많이 주는 가중치일수록 더 많이 학습되는 경향이 있다. 반대로 네트워크 추론 성능에 적은 영향을
미칠수록 가중치 값이 작은 경향이 있다. 따라서 네트워크를 구성하는 모든 가중치들이 추론에 유의미한 영향을 미치지는 않는다는 것을 의미한다.
가지치기 기법은 네트워크 추론에 있어 낮은 중요도를 가지는 가중치의 값을 0으로 설정한다[14]. 이를 통해 값이 0이 된 가중치 양 끝에 연결된 두 개의 네트워크 노드가 끊어지는 효과를 낸다. 노드 간의 연결이 없다는 것은 순전파 시 연산할
필요가 없다는 것이기에 사라진 가중치의 수만큼 계산량과 메모리 사용량을 줄일 수 있다.
결과적으로 가지치기 기법을 통해 딥러닝 네트워크의 경량화가 가능하다. 대표적인 가지치기 기법으로, 구조적(Structured) 가지치기 기법과 비구조적(Unstructured)
가지치기 기법이 있다.
본 연구에서는 2가지의 가지치기 기법을 고려하며, 특히 네트워크 학습 시 사용하는 드롭아웃(Dropout) 기법의 확률값과 가지치기 비율 간의 연관성을
분석한다. 또한, 가지치기 비율과 행렬 분해를 통한 압축 비율 간의 연관성 역시 분석하고자 한다.
2.3.1 구조적 가지치기 (Structured Pruning)
구조적 가지치기 기법은 딥러닝 네트워크의 특정 구조 자체를 제거하는 기법이다. 해당 기법을 완전 연결층 네트워크(Fully connected neural
network)로 설명하면 다음과 같다.
완전 연결층 네트워크의 각 층(Layer)은 하나의 가중치 행렬로 표현된다. 하나의 행은 입력층의 모든 노드로부터 출력층 하나의 노드로 향하는 모든
가중치를 포함하며 하나의 열은 입력층 하나의 노드로부터 출력층 모든 노드로 향하는 가중치를 의미한다. 구조적 가지치기는 행 또는 열 단위로 가중치를
제거하여 가중치의 수를 감소시키고 네트워크의 구조 자체를 변화시킨다. 이를 통해 메모리 사용량 및 연산량을 감소시킬 수 있다.
구조적 가지치기는 모델의 구조를 제거하기 때문에 가중치의 수를 직접적으로 줄인다는 장점이 있다. 하지만, 앞에서 말한 바와 같이 행과 열 단위로
가중치를 제거하는 것은 입력층 혹은 출력층 쪽 하나의 노드를 제거한다는 것을 의미한다. 노드의 제거는 해당 노드 앞의 층 들로부터 누적된 정보를 완전히
배제하는 것이기에 급격한 성능저하를 유발할 수 있다.
본 논문에서는 구조적 가지치기 기법 중 Structured L1 과 Structured L2 기법을 고려하며 각각은 ${L}_{1}{no}$과 ${L}_{2}{no}$을
바탕으로 가지치기를 수행한다.
2.3.2 비 구조적 가지치기 (Unstructured Pruning)
비 구조적 가지치기 기법은 구조적 가지치기와는 달리 층과 층 사이의 개별 가중치를 선택적으로 제거하는 기법이다. 가중치 행렬의 행이나 열 전체를 제거하는
것이 아닌 가중치 행렬 내에서 중요도가 낮은 개별 요소를 제거하기 위해 0을 채워 넣음으로써 희소 매트릭스(Sparse matrix)를 만든다.
비 구조적 가지치기는 노드에 연결된 가중치들을 제거하는 것이기에 층을 거치면서 누적된 정보가 전달되는 경로가 제한되긴 하지만 일괄적으로 제거되지는
않는다. 따라서 구조적 가지치기에 비해 제거되는 정보량이 적지만, 네트워크 구조 자체가 유지되므로 하드웨어 상에서 효율성 개선은 제한적일 수 있다.
따라서 네트워크의 가중치 수를 줄이기 위한 경량화 기법을 추가로 적용하거나 혹은 하드웨어 구조 자체를 비구조적 가지치기에 맞게 개발하여야 한다.
본 연구에서는 비 구조적 가지치기 기법 중 Unstructured Random(Layer), Unstructured Random(Global), 그리고
Unstructured L1을 고려한다. Unstructured Random은 가중치를 무작위로 제거하는 기법으로 (Layer)는 층별로 정해진 비율만큼
가중치 값을 무작위로 0으로 변경하고 (Global)은 네트워크 전체의 가중치들 중 정해진 비율만큼 가중치의 값을 0으로 변경한다. Unstructured
L1은 ${L}_{1}{no}$을 토대로 층별 가중치 값을 0 값으로 변경한다. Random 기법은 무작위 제거이기 때문에 성능의 저하가 두드러질
가능성이 높다. Unstructured L1은 Structured L1과 L2와 비교함으로써 층별 노드를 제거하는 것과 층간의 가중치를 제거하는 것
중 어느 기법이 더 기존 성능을 잘 유지하면서 가중치 값을 배제할 수 있는지를 분석할 것이다.
그림 3. Low-rank 근사화 설명.
Fig. 3. Description of low-rank approximation.
2.4 행렬 분해: Low-Rank Approximation
본 연구에서 네트워크 가중치의 수를 줄이기 위해서 특이값 분해 기반의 -를 활용한다. LRA는 원본 행렬의 중요한 정보는 보존하면서도 보다 간단한
버전의 행렬로 근사화하는 기법이다[15]. 이 기법은 원본 행렬의 특이값들 중 상위 $r$개의 특이값에 해당하는 특이 벡터만을 남김으로써 원본 행렬을 근사화한다. 다시 말해, 하나의 행렬을
$r$개의 Rank-1 행렬 들의 합으로 근사화한다.
2.4.1 특이값 분해
특이값 분해는 아래 수식과 같이 표현된다.
위 수식 (3)에서 ${W}\in{R}^{m\times n}$, ${U}\in{R}^{m\times m}$, $\Sigma\in{R}^{m\times n}$, 그리고
$V\in R^{n\times n}$ 이고, $\Sigma\in{R}^{m\times n}$는 대각행렬로, 대각 요소는 행렬 ${W}$의 특이값으로
구성된다.
2.4.2 압축률 $R_{{comp}}$ 를 만족하는 $r$-rank 근사화
LRA를 위한 $r$-rank 근사화는
와 같고 ${U}_{\approx}\in{R}^{m\times r}$, $\Sigma_{\approx}\in{R}^{r\times r}$, 그리고
$V_{\approx}\in R^{r\times n}$ 이다. 행렬 $\Sigma_{\approx}={diag}([\sigma_{1}\sigma_{2}.
. .\sigma_{r}])$, $\sigma_{i}$는 ${W}$행렬의 $i$번째 특이값이고, ${diag}(·)$는 대각행렬을 의미한다.
식 (4)에 따르면 원본 행렬 ${W}$의 근사 행렬 ${W}_{\approx}$는 근사화된 두 행렬 ${U}_{\approx}$와 $V_{\approx}$의
곱으로 표현된다. 따라서, ${W}_{\approx}$는 총 $(m\times r + r\times n)$개의 가중치 값으로 구성된다. LRA를 통해
가중치를 줄이기 위해서는 아래의 조건을 만족해야 한다.
그림 4. LRA 분해에 의한 층 구조 변화.
Fig. 4. Change of a full-connected layer structure by LRA Decomposition.
또한, LRA에 의한 압축률 $R_{{comp}}$는
와 같고, 특정 압축률 $R_{{comp}}$ 을 만족하는 $r$-rank 근사화는
위 수식 (7)을 만족하는 ${U}_{\approx}$, $V_{\approx}$ 그리고 $\Sigma_{\approx}$를 구하면 된다.
2.4.3 양자화 근사 가중치행렬 $\hat{{U}}_{\approx}$와 $\hat{{V}}_{\approx}$
수식 (7)을 통해서 얻은 근사화 $r$-rank 근사화된 가중치 행렬 ${U}_{\approx}$, $V_{\approx}$ 와 $\Sigma_{\approx}$의
요소는 실수값으로 정해진다. 하드웨어에서 사용하기 위해서는 해당 행렬의 요소값에 대한 양자화가 필요하다. 하지만, 행렬 ${U}_{\approx}$와
$V_{\approx}$의 요소값은 0과 1사이의 값이므로 양자화에 의해 요소의 모든 값이 0이 되게 된다. 따라서 본 연구에서는 다음과 같이 양자화된
근사 가중치 행렬 $\hat{{U}}_{\approx}$와 $\hat{{V}}_{\approx}$을 구한다.
수식 (8)과 (9)에서 $\sqrt{\Sigma_{\approx}}\in R^{r\times 1}$ 행렬은 $\Sigma_{\approx}$행렬의 대각행렬 요소값에
제곱근을 취하여 얻으며 $H_{{quant}}(·)$는 입력 행렬의 각 요소값을 가장 가까운 정수값으로 사상시킨다.
본 연구에서는 식 (8)과 (9)에 의한 양자화된 근사 가중치행렬을 LRA 행렬이라고 정의한다. 또한 해당 행렬을 사용하는 완전 연결층을 압축 완전 연결층이라 정의한다.
2.4.4 학습된 양자화 근사 가중치행렬 $\widetilde{{U}}_{\approx}$와 $\widetilde{{V}}_{\approx}$
본 연구에서는 위 2.4.3장에서 구한 LRA 행렬을 바탕으로 딥러닝 기법을 적용하여 LRA-learn 근사 행렬을 구한다. 즉, 딥러닝 네트워크
학습 방식을 통해 $r$-rank 근사화를 수행하는 것이다.
위 2.4.3장에서처럼 가중치행렬을 근사화하는 것은 하나의 완전 연결층이 두 개의 완전 연결층으로 구조적 변화를 만드는 것과 같다. 그림 4를 보면 $r$-rank 근사화에 따른 하나의 완전 연결층의 구조 변화를 보여준다. 그림 4(a)의 완전 연결층 가중치 행렬 ${W}$에 수식 (7), (8) 그리고 (9)을 적용하여 LRA 행렬 $\hat{{U}}_{\approx}$와 $\hat{{V}}_{\approx}$를 구하게 되면 결과적으로 그림 4(b)와 같이 두 개의 완전 연결층이 활성화 함수 없이 연결되는 것과 같다. 즉, 그림 4(b)의 첫 번째 및 두 번째 완전 연결층 가중치가 $\hat{{U}}_{\approx}$와 $\hat{{V}}_{\approx}$가 된다.
그림 5. 경량화 완전 연결층 네트워크를 위한 하드웨어 아키텍처.
Fig. 5. Hardware architecture of a lightweight fully connected network with LRA-learn
matrices.
본 연구에서는 그림 4(b)의 두 개의 완전 연결층 가중치를 LRA 행렬 $\hat{{U}}_{\approx}$와 $\hat{{V}}_{\approx}$로 초기화 한 다음 아래
손실함수를 바탕으로 학습을 통해 학습 기반 근사화 가중치 행렬 $\widetilde{{U}}_{\approx}$와 $\widetilde{{V}}_{\approx}$를
구한다.
수식 (9)의 ${MSE}(·)$는 평균제곱오차 손실함수, $F_{{U}}$와 $F_{{V}}$는 LRA 행렬 $\hat{{U}}_{\approx}$와 $\hat{{V}}_{\approx}$로
초기화되는 완전 연결층, 그리고 $I\in R^{m\times m}$는 항등행렬을 의미한다. 해당 학습에서 항등행렬이 입력 데이터이고 가중치 행렬
${W}$가 정답 데이터가 된다. 수식 (10)의 손실함수를 통해 학습을 진행하게 된다면 수식 (8)과 (9)를 통해서 구한 LRA 행렬보다 조금 더 원본 가중치 행렬 ${W}$를 근사화할 수 있는 $\widetilde{{U}}_{\approx}$와 $\widetilde{{V}}_{\approx}$를
구할 수 있을 것이다.
본 연구에서는 수식 (10)에 의한 행렬을 LRA-learn 행렬이라 정의하며, 해당 행렬 역시 앞서 정의한 압축 완전 연결층에서 사용된다. 이후 4장에서 LRA 행렬과 LRA-learn
행렬을 통한 압축 완전연결층의 성능을 비교하여 LRA-learn 방식의 가능성을 분석한다.
3. 경량화 완전 연결층 네트워크 하드웨어 설계
본 장에서는 경량화 완전 연결층 네트워크의 하드웨어 설계에 관한 내용을 다룬다. 해당 연구에서의 경량화 완전 연결층 네트워크는 앞서 새롭게 정의한
압축 완전 연결층과 일반 완전 연결층이 혼합되어 구축된다. 3층의 경량화 완전 연결층 네트워크를 구축한다고 했을 때, LRA를 적용하는 위치와 압축률
$R_{{comp}}$에 따라 일반 완전 연결층 네트워크의 경량화 정도가 달라진다. 최적의 $R_{{comp}}$는 4장에서 양자화, 드롭아웃, 가지치기
및 LRA 기법 간의 연관성을 다양한 실험을 통해서 분석하고 이를 토대로 선정된다.
경량화 완전 연결층 네트워크의 전체적인 하드웨어 아키텍처에 대해서 설명하고 2.4.4장의 2개의 LRA-learn 행렬인 $\widetilde{{U}}_{\approx}$와
$\widetilde{{V}}_{\approx}$을 사용하여 연산을 수행하는 압축 완전 연결층의 설계에 대해서 다룬다.
3.1 전체적인 하드웨어 아키텍처
그림 5는 개발한 압축 완전 연결층의 하드웨어 아키텍처를 보여주며, 해당 층은 층 상태 제어 모듈 (Layer State Control Module), 차원
압축 층(Dimension Compression Layer), 차원 증가 층(Dimension Increase Layer), 메모리 제어 모듈(Memory
Control Module), 가중치를 위한 메모리 및 입력/출력 특징값을 위한 메모리들로 구성되어 있다. 모듈 DCL은 가중치 $\widetilde{{U}}_{\approx}$
행렬 연산 모듈($\widetilde{{U}}_{\approx}$ Matrix Calculator)과 DCL 상태 제어 모듈(DCL State Control
Module) 이용하여 MAC 연산을 수행하며 DIL 모듈은 가중치 $\widetilde{{V}}_{\approx}$ 행렬 연산 모듈($\widetilde{{V}}_{\approx}$
Matrix calculator)과 DIL 상태 제어 모듈(DCL State Control Module)을 이용하여 MAC 연산을 수행한다.
그림 6(b)는 압축 완전 연결층에서 일어나는 연산을 보여준다. 모듈 DCL은 그림 6(b)의 하늘색 영역의 연산을 수행하며 $\widetilde{{U}}_{\approx}$와 해당 층의 입력 특징값을 이용하여 MAC 연산을 수행하며 DCL
모듈의 출력은 DIL 모듈의 입력으로 들어간다. 모듈 DIL은 오른쪽 녹색 영역의 연산을 실행하며 $\widetilde{{V}}_{\approx}$와
DCL 모듈의 결과값을 바탕으로 MAC 연산을 수행하여 해당 압축 완전 연결층의 최종 결과를 도출한다. 각 모듈은 각각의 상태 제어 모듈인 DCL-SCM과
DIL-SCM에 의해 제어된다. 제어모듈 DCL-SCM은 DCL 모듈을 유휴, 연산, 곱, 및 누적 상태로 나누어 전체 연산을 제어하며, DIL-SCM은
DIL 모듈을 유휴, 실행 및 대기 상태로 제어한다.
모듈 DCL과 DIL 각각에 상태 제어 모듈이 필요한 이유는 다음과 같다. 압축 완전 연결층의 경우 입력 특징값이 $\widetilde{{U}}_{\approx}$와의
MAC 연산을 거쳐 $\widetilde{{V}}_{\approx}$와 MAC 연산되어 최종 특징값을 도출한다. 따라서 모듈 DCL의 MAC 연산
결과는 DIL의 입력으로 사용되어야 한다. 다만, DIL의 V-MC에서의 MAC 연산이 동작 중에 DCL의 MAC 연산 결과를 전달받으면 V-MC에서
사용되는 입력값이 변경되므로 MAC 연산 결과가 왜곡된다. 이러한 연산 왜곡을 방지하기 위해서 각 DCL과 DIL 모듈에 맞는 상태 제어기를 둔다.
그림 6. 기존 완전 연결층와 압축 완전 연결층 설명.
Fig. 6. Description of a fully connected layer and a compressed fully connected layer.
모듈 층 상태 제어 모듈(L-SCM)은 DCL과 DIL 모듈의 상태에 따라 해당 층의 상태를 결정하며, 해당 모듈은 다른 압축 완전 연결층과의 데이터
송/수신을 제어한다. 마지막으로 메모리 제어 모듈(MCM)은 모든 메모리를 WRITE 상태와 READ 상태로 나뉘어 관리한다. 상태 WRITE에서는
이전 네트워크 층에서의 연산 결과를 입력값 메모리에 저장할 수 있다. 이전 층으로부터 데이터를 수신하면 READ 상태가 되며, 다음 층의 L-SCM의
상태 제어 및 DCL과 DIL의 연산 진행 상태를 반영하여 연산에 필요로 한 입력값과 가중치 값들을 송신한다.
3.2 압축 완전 연결층
본 연구에서 기존 완전 연결층의 가중치 행렬 ${W}$이 수식 (5)를 만족하도록 LRA를 통해 분해하여 가중치의 수를 줄인다. LRA를 통해 ${W}$가 $\widetilde{{U}}_{\approx}$와 $\widetilde{{V}}_{\approx}$로
분해되면 그림 4에서처럼 기존 완전 연결층의 연산 방식 (a)에서 압축 완전 연결층 연산 방식 (b)로 변경된다.
해당 연구에서는 압축 완전 연결층을
그림 6(b)의 연산 방식으로 개발하였다. LRA 행렬 $\widetilde{{U}}_{\approx}$와 $\widetilde{{V}}_{\approx}$를
별개의 완전 연결층으로 고려하여
그림 6(a) 연산 방식을 차례로 수행할 수도 있다. 하지만 그런 경우
그림 6(a) 연산 방식으로 설계된 완전 연결층 모듈을 순차적으로 실행하기 때문에 $(r+ n)$ 번의 연산을 수행해야 한다. 반면,
그림 6(b)와 같은 연산 방식은 $\widetilde{{U}}_{\approx}$연산 결과를 받아 $\widetilde{{V}}_{\approx}$연산에 사용할
수 있기 때문에 ($r$+1) 번의 연산 횟수가 필요로 하다. 특이값 분해에 따르면 $r$의 최대는 $n$이기 때문에 최대 요구 연산 횟수는 ($n$+1)가
될 수 있지만, 수식
(5)를 만족하여 가중치의 수를 감소시켜야 하기 때문에 $r < n$ 일수밖에 없다. 다만, 압축 연결층에서는 $\widetilde{{U}}_{\approx}$와
$\widetilde{{V}}_{\approx}$의 연산이 동시에 진행되기 때문에 가중치 행렬 ${W}$를 하나만 사용하는 기존 완전 연결층에 비해
가중치 값을 읽는 횟수가 증가하게 된다. 즉,
그림 6(b)의 방식은
7(a)방식을 두 번 연달아 수행하는 것에 비해 연산 횟수가 적은 반면, 메모리 접근 횟수가 많아질 수 있다.
알고리즘 1 최적의 압축된 가중치 행렬을 찾는 알고리즘
결과적으로, LRA와 같은 행렬 분해 기법을 통해 모델을 경량화시키는 경우, 가중치 저장을 위한 메모리 요구량은 줄이는 반면 연산 횟수와 메모리 접근
횟수 사이의 상충관계를 발생시킬 수 있다. 따라서, 딥러닝 네트워크가 사용되는 환경에 맞게 압축 연결층의 디자인을 결정할 필요가 있음을 알 수 있다.
본 연구에서는 LRA가 적용된 층은 그림 6(b)의 연산 방식을 사용하는 압축 연결층을 사용하여 경량화 완전 연결 네트워크를 설계하고 시뮬레이션 검증을 한다.
3.3 경량화 완전 연결층 네트워크 개발 흐름
앞선 2장과 3.2장까지 설명한 내용을 바탕으로 행렬 분해 기법을 바탕으로 한 경량화 완전 연결층 네트워크의 개발 과정은 최적의 학습된 가중치 도출
및 해당 가중치를 위한 하드웨어 설계로 나뉜다.
하드웨어 설계: 압축 완전 연결층 연산을 수행하기 위한 하드웨어 설계가 필요하다. 행렬 분해는 가중치 행렬을 2개의 가중치 행렬로 근사화하기에 완전
연결층 구조가 변경된다. 그림 6(a)의 연산 방식을 사용하는 완전 연결층 2개를 사용하는 방향으로 설계한다면, 완전 연결층 하드웨어 모듈을 연속적으로 사용하면 된다. 하지만, 이런 경우
연산 횟수가 증가하게 되므로 연산 횟수를 줄일 수 있는 하드웨어 설계가 필요로 하다. 본 연구에서는 그림 6(b)의 연산 방식을 하드웨어로 설계하였으며 해당 압축 완전 연결층을 이용하여 경량화 완전 연결층 네트워크를 설계한다. 참고할 점은 그림 6(b)와 같은 경우 연산 횟수가 감소하는 대신 메모리 접근 횟수가 증가하게 된다. 따라서 행렬 분해를 바탕으로 한 경량화 네트워크 설계는 가중치를 저장하는
메모리 요구량을 줄일 수 있지만, 연산 횟수와 메모리 접근 횟수의 사이의 상충관계 발생한다. 따라서 이러한 하드웨어 설계에서는 딥러닝 네트워크가 사용되는
상황에 맞게 압축 완전 연결층을 설계할 필요가 있다.
최적의 학습된 가중치 도출: 본 연구에서 고려하는 소프트웨어적 네트워크 경량화 방법은 양자화, 가지치기, 행렬 분해이다. 또한 가중치 학습 시 기본적으로
드롭아웃을 사용하며 양자화에 있어 지식 증류 기법을 추가로 사용할 수도 있다. 이러한 다양한 방식 들은 서로 간의 연관성이 있을 수 있으며 어떻게
조합하느냐에 따라 최종 결과 가중치의 추론 성능이 변화할 수 있다. 드롭아웃의 경우 학습 시 임의로 네트워크의 노드 들을 제거하는 방식으로, 학습된
가중치들 중 추론에 영향력이 적은 가중치 혹은 노드를 제거하는 가지치기와 연관이 있을 수 있다. LRA 기법의 경우 하나의 행렬을 근사화할 때 원본
행렬을 구성함에 있어 가장 영향력이 적은 Rank-1 행렬들을 제거한다. 이는 결과적으로 추론 성능에 있어 중요도가 낮은 가중치를 제거하는 것과 유사하다.
그렇기에 드롭아웃의 확률과 가지치기의 비율에 따라 LRA로 압축할 수 있는 정도가 달라질 수 있다.
따라서 이러한 다양한 경량화 기법 들을 복합적으로 고려하여 최종 압축된 가중치 행렬을 도출해야 한다. 4장에서 다양한 실험을 통해 해당 기법들 간의
연관성을 파악하고 최종적으로 사용할 가중치를 도출한다. 마지막으로, 알고리즘 1은 4장에서 최종 가중치를 도출하는 방식을 보여준다. 해당 알고리즘에서
$S_{{drop}-{prob}}$ 와 $S_{{drop}-{loc}}$은 드롭아웃 확률 ($P_{{Drop}}$)과 드롭아웃 적용 위치 ($L_{{Drop}}$)들을
포함하는 집합, $S_{{prune}-{ratio}}$ 와 $S_{{prune}-{method}}$는 가지치기 비율 ($R_{{prune}}$)과
가지치기 방식들을 포함하는 집합, $S_{{lra}-{rate}}$ 와 $S_{{lra}-{loc}}$는 LRA의 압축률 ($R_{{LRA}}$)과
LRA가 적용되는 위치 ($L_{{LRA}}$)를 포함하는 집합이다. 마지막으로 $S_{U}$와 $S_{V}$는 사용될 수 있는 경량화행렬 $\widetilde{{U}}_{\approx}$와
$\widetilde{{V}}_{\approx}$ 들을 포함하는 집합이다.
4. 경량화 선형 네트워크 가중치 생성
해당 장에서는 양자화, 가지치기, LRA 기법들을 차례대로 학습된 네트워크 가중치에 적용하면서 네트워크 성능의 변화를 분석한다. 학습에 사용되는 드롭아웃의
위치와 확률, 가지치기 기법들과 가지치기 비율, LRA 적용위치 및 압축률 등을 다양하게 고려하면서 기법들 간의 연관성에 대해서도 분석한다. 이를
바탕으로 경량화 완전 연결 네트워크에 적합한 가중치를 도출하며 또한 해당 경량화 기법들의 사용에 대한 이해도를 보인다. 이를 위해 드롭아웃, 사후
학습 양자화, 양자 인지 학습, 지식 증류, 가지치기, 행렬 분해 등의 다양한 모델 경량화 기법 적용에 대한 실험 과정과 실험 결과 및 방법론에 대해
설명한다.
해당 연구에서 고려하는 네트워크는 3층 완전 연결 네트워크이며 각층별 노드의 수는 50, 100, 10으로 설정한다. 해당 네트워크의 학습을 위해서는
다양한 기법들의 적용에 집중하기 위해 기본적인 MNIST 데이터셋을 사용하였다. 학습에 사용된 파라미터는 배치 사이즈 150, Optimizer는
Adam, 학습률 1e-6, Weight decay 5e-4를 사용했다. Scheduler는 Cycliclr, 활성화 함수는 ReLU를 사용했다.
학습 시에 Epoch은 고정하지 않았으며 연속하여 도출되는 10개 학습 정확도에 대해 최대 최소값의 그 차이가 0.01% 미만일 경우 학습이 수렴되었다고
판단하여 학습을 종료하였다.
4.1 성능 지표
4장 전반에서 네트워크의 성능을 위한 지표는 정확도를 사용한다. 4.4절에서 LRA와 LRA-learn의 성능 비교는 각 기법을 적용한 후의 경량화
완전 연결 네트워크의 성능비를 사용한다. 즉, LRA-learn의 정확도 $A_{LRA -\le{arn}}$와 LRA 정확도인 $A_{LRA}$의
비율을 사용하고 해당 비율 값이 1보다 크면 LRA-learn의 성능이 더 좋다는 것을 의미한다. 또한, $S_{U}$와 $S_{V}$를 얻기 위해서는
아래와 같은 지표를 정의한다.
표 1 PTQ, QAT 및 KD 성능 비교.
Table 1 Performance comparison of PTQ, QAT, and KD
|
일반
|
PTQ
|
QAT
|
QAT+KD (Float)
|
QAT+KD (Int)
|
정확도
|
0.9380
|
0.9384
|
0.9395
|
0.9393
|
0.9367
|
그림 7. Dropout 적용 위치에 따른 모델 성능.
Fig. 7. Accuracy with varying dropout location.
수식 (11)은 조화 평균으로 구하며 $\beta$ 가 커질수록 $A_{LRA -\le{arn}}$의 중요도가 증가한다. 해당 지표를 E 스코어라 정의하고 이를
바탕으로 최종 $S_{U}$와 $S_{V}$를 도출한다.
4.2 PTQ, QAT, 및 KD 기법 적용
본 절에서는 일반 모델에 학습 후 양자화, 양자화 인지 학습, 지식 증류 기법의 적용 여부에 따른 성능을 비교 분석하고 성능이 뛰어난 양자화 기법을
도출한다.
PTQ와 QAT 비교: 드롭아웃 기법을 적용하지 않은 일반 모델에 학습 후 양자화, 양자화 인지 학습 기법을 적용하여 성능을 비교했다. 양자화 인지
학습 기법을 적용할 때는 10 Epoch만큼 추가적인 학습을 진행하였다.
표 1에서 볼 수 있듯 양자 인지 학습 기법이 학습 후 양자화 기법에 비해 좋은 성능을 보인다. 학습 후 양자화는 학습이 완료된 가중치를 정수 영역에 선형적으로
사상하는 기법임에 반해 양자 인지 학습 기법은 학습을 도중에 가중치를 정수로 사상하기 때문에 해당 결과가 나온다.
QAT와 지식 증류 손실함수 기반 QAT: 양자화 인지 학습을 독립적으로 수행한 경우와 양자화 인지 학습과 수식 (1)의 지식 증류 손실함수를 함께 양자화 인지 학습을 한 결과를 비교한다. 지식 증류 손실함수를 사용하기 위해서는 선생 모델이 필요로 하며 본 연구에서는
해당 모델을 5층 완전 연결층 네트워크로 각층별 노드 수를 100, 200, 100, 50, 10으로 설정하였다.
선생 모델의 가중치가 부동 소수점 데이터 형식인 경우와 정수 데이터 형식인 경우로 구분하여 실험을 진행하였다. 양자화 인지 학습이 부동 소수점 데이터
형식을 정수 데이터 형식으로 변환하는 과정이기 때문에, 해당 실험을 통해 학생 모델의 가중치가 정수 데이터 형식으로 변환되는 과정에서 선생 모델 가중치
역시 정수 데이터 형식인 것이 좋은 성능 달성에 필요한지를 분석한다.
표 1에서 알 수 있듯이 선생 모델의 가중치를 실수형으로 하는 것이 정수형에 비해 더 좋은 학습 성능을 보인다. 일반적으로 실수형 가중치가 정수형 가중치에
비해 더 풍부한 표현력을 가질 수 있다. 따라서, 선생 모델의 가중치가 실수형일 때 학생 모델이 더 나은 표현력을 학습할 가능성이 높기에 이런 결과가
나올 수 있을 것이라 분석한다.
다만, 전반적으로 보았을 때는 양자화 인지 학습만 한 것이 가장 좋은 성능을 보인다. 이에 본 연구에서는 앞으로 진행할 가지치기 및 행렬 분해 기법을
적용할 모델 가중치는 양자화 인지 학습으로 양자화된다.
드롭아웃을 고려한 QAT: 일반적으로 모델 학습에는 드롭아웃이 사용되므로 드롭아웃이 고려된 양자화 인지 학습에 대해 실험한다. 실험에서 고려하는 네트워크는
3층 완전 연결 신경망이므로 총 3개의 드롭아웃 적용 위치 ($L_{{Drop}}$)가 있다. 하지만 가장 마지막 층은 출력과 직접적 연관이 있기에
해당 층을 제외하고 실험을 진행한다. 앞으로 ($L_{{Drop}}= 1$)은 드롭아웃이 첫 번째 층에 적용되었다는 것을 의미한다.
그림 7은 $L_{{Drop}}$와 $P_{{Drop}}$에 따른 학습 인지 양자화 성능을 보여준다. 드롭아웃을 두 개의 층에 모두 적용하는 것은 $P_{{Drop}}$의
값이 증가함에 따른 급격한 성능저하를 보인다. 따라서 양자화 기법 사용 시 드롭아웃을 여러 층에 적용하는 것은 심각한 성능저하를 발생시킬 수 있음을
알 수 있다.
그림 8. QAT 및 드롭아웃 ($L_{{Drop}}$= 1) 을 적용하여 학습한 선형 네트워크 모델에 5가지 Pruning 기법들을 적용한 결과.
Fig. 8. Results of applying five pruning techniques to a linear network model trained
using QAT and Dropout ($L_{{Drop}}$= 1).
그림 9. QAT 및 드롭아웃($L_{{Drop}}$= 2) 을 적용하여 학습한 선형 네트워크 모델에 5가지 Pruning 기법들을 적용한 결과.
Fig. 9. Results of applying five pruning techniques to a linear network model trained
using QAT and Dropout ($L_{{Drop}}$= 2).
본 실험들을 바탕으로 가지치기 및 LRA를 적용에서는($L_{{Drop}}= 1$) 및 ($L_{{Drop}}= 2$)에 드롭아웃을 적용하고 다양한
$P_{{Drop}}\in 0. 1 ,\: 0 . 2,\: 0 . 3,\: 0 . 4,\: 0 . 5$에 대해 학습된 3층 완전 연결 네트워크를
양자화 인지 학습을 통해서 양자화된 모델을 사용한다.
Remark: 추가 학습을 필요로 하는 양자화 인지 학습이 가장 좋은 양자화 성능을 보인다. 또한 지식 증류 기법의 선생 모델의 가중치는 실수형으로
하는 것이 학생 모델이 더 좋은 표현력을 배울 가능성이 높음을 알 수 있다. 마지막으로, 드롭아웃은 네트워크 다수의 층에 적용하는 것보다는 선택적으로
적용하는 것이 더 좋은 양자화 성능을 유지할 수 있음을 알 수 있다.
4.3 Pruning 적용
본 절에서는 4.2절에서 선별된 모델에 가지치기 기법을 적용하고 그에 따른 성능을 비교 분석함으로써 최적의 가지치기 기법 도출하며 드롭아웃의 적용
위치 및 확률과 가지치기 비율의 상관관계를 분석한다.
앞서 2장에서 설명하였던 Unstructured Random(Global), Unstructured Random(Layer), Unstructured
L1, Struct-ured L1, Structured L2를 적용하였다.(각주 : 해당 기법들은 딥러닝 프레임워크 PyTorch에서 제공.) 실험은
해당 다섯 기법에 대해 가지치기 적용 비율 ($R_{{prune}}$)을 0.1~0.7까지 0.05 단위로 변경하면서 고려하였다.
기법들 간 성능 비교: 그림 8과 9는 $L_{{Drop}}$와 $P_{{Drop}}$에 따른가지치기 기법 간 성능 비교를 보여준다.
그림 10. $L_{{Drop}}$ 따른 unstructured L1 성능 비교.
Fig. 10. Performance of unstructured L1 pruning method with varying $L_{{Drop}}$.
Unstructured Random(Layer)와 Unstructured Random-(Global)은 뚜렷한 차이 없이 비슷한 경향을 보이며 5개의
기법들 중 가장 낮은 성능을 보인다. 이는 해당 가지치기 기법은 모델의 결과 출력에 있어 가중치의 중요도를 고려하지 않은 채로 가중치를 제거하기 때문이다.
비교적 간단히 가지치기를 진행할 수 있지만, 실제로 사용하기엔 어려움이 있는 기법이다.
Unstructured L1과 Structured L1을 비교하면 모든 가지치기 비율에 대해 Unstructured L1이 더 좋은 성능을 보인다.
이는 각 기법이 제거하는 네트워크 구성요소가 다르기 때문이다. Unstructured 기법의 경우 중요도가 낮은 가중치를 제거하고 Structured는
중요도가 낮은 노드를 제거한다. 완전 연결 네트워크 구조상 하나의 노드를 제거하면 해당 노드부터 다음 층의 모든 노드로의 정보전달이 제거되는 것이기
때문에 네트워크가 가질 수 있는 정보량을 더 많이 제거하게 된다. 따라서 가중치를 제거하는 Unstructured 기법에 비해 가지치기 비율이 증가할수록
네트워크의 성능이 급격하게 저하된다.
Structured L1과 L2를 비교하면 가지치기 이후 성능이 대동소이함을 알 수 있다. 이는 ${L}_{1}{no}$ 과 ${L}_{2}{no}$의
기준이 근본적으로 가중치들의 절대적 크기를 구하는 것이고 따라서 두 가지치기 기법은 유사한 기준을 가지고 있기에 가지치기 후 성능이 유사하다고 분석할
수 있다.
드롭아웃 위치에 따른 성능:
그림 10은 가장 좋은 가지치기 성능을 보이는 Unstructured L1에 대해서 드롭아웃 적용 위치에 따른 성능 비교를 보여준다. 전반적으로 $P_{{Drop}}$이
증가할수록 ($L_{{Drop}}$= 2)의 성능이 더 높아 상대적으로 가지치기에 더 강인함을 알 수 있다. 이러한 점은 드롭아웃 위치에 따라 가지치기
성능이 영향받을 수 있음을 보여준다.
그림 11. Dropout ($L_{{Drop}}$= 2) 확률 및 pruning 비율 변화에 따른 5가지 pruning 기법 별 성능 변화 비교.
Fig. 11. Performance comparison of five pruning techniques with varying dropout probability
and pruning ratio.
실험 결과는 두 가지 관점으로 분석해 볼 수 있는데 첫 번째는 층별 가중치의 수에 영향을 받을 수 있다는 것이다. 첫 번째 층의 가중치 수가 상대적으로
많기에 성능저하 정도에서 차이가 발생할 수 있다. 즉, 동일한 비율로 가지치기를 적용하더라도 제거되는 가중치 수는 첫 번째 레이어가 더 많을 것이므로
가지치기 비율이 증가함에 따른 성능 감소가 더 클 수 있다. 따라서, 가지치기 적용 비율 증가에 따른 성능저하를 방지하기 위해서는 가중치의 수를 고려해
적절히 드롭아웃 확률을 설정함으로써 모델이 가지치기 적용 비율 증가에 대해 강인해지도록 할 수 있을 것이다.
두 번째로는 드롭아웃 적용 위치와 입력 데이터 간의 거리이다. 실험 모델은 3층 구조이기 때문에 ($L_{{Drop}}$= 1)은 입력을 처리하는
계층에 드롭아웃을 적용하게 되는 것이고 이 경우 가지치기 비율이 높아지면 네트워크로 전파되는 입력 데이터 정보 자체가 제한된다. 그렇기에 네트워크의
추론 성능이 상대적으로 더 저하되는 것으로 분석할 수 있다. 따라서 가지치기 기법을 적용할 때 입력층 가까이 적용하는 것은 가지치기에 의한 저하가
클 수 있음을 알 수 있다.
드롭아웃 확률에 따른 기법별 성능: 그림 11은 ($L_{{Drop}}$= 2)일 때 기법별 드롭아웃에 따른 성능 변화를 보여준다. Unstructured Random(Layer)와 Unstructured
Random-(Global) 경우 드롭아웃 확률이 증가함에 따라 가지치기 비율 증가에 따른 성능 감소가 적음을 알 수 있다. 즉, 높은 드롭아웃 확률에
의해 학습된 모델일수록 해당 기법의 가지치기에 강인함을 알 수 있다. 이는 해당 기법들이 가중치의 중요도 고려 없이 무작위로 제거하는 방식이 드롭아웃의
방식과 유사하기 때문으로 분석할 수 있다.
기법 Unstructured L1의 경우 가지치기 비율이 낮을 때는 낮은 드롭아웃 확률의 성능이 좋으나 가지치기 비율이 증가할수록 높은 드롭아웃 확률에서
학습한 모델이 가지치기에 더 강인함을 알 수 있다. 해당 기법의 경우 가중치의 크기를 기준으로 하여 값이 작을수록 제거되게 된다. 이러한 방식을 고려하여
드롭아웃 확률이 클수록 가지치기에 강인한 것은 다음과 같이 설명될 수 있다. 드롭아웃 확률이 클수록 학습 시 순간적으로 제거되는 노드의 수가 많아지고
이는 가중치들이 많이 제거된 상태에서 학습이 되는 것과 동일하다. 따라서 학습
성능을 높이기 위해서는 자연스럽게 중요도가 높은 가중치를 선택적으로 학습할 수 밖에 없고 그 결과로 가지치기에 더 강인해질 수 있다.
기법 Structured L1과 L2도 앞선 기법들처럼 두드러지지는 않지만 드롭아웃 확률이 증가함에 따라 높은 가지치기 비율에서의 성능저하가 적은
경향을 보인다.
Remark: 본 절에서 알 수 있듯 노드를 제거하는 것보다 가중치를 제거하는 Unstructured L1 기법이 더 높은 가지치기 비율에서 더 높은
성능을 보임을 알 수 있다. 또한 드롭아웃 적용 위치에 따른 가지치기 성능이 달라지며 높은 가지치기 비율에서도 모델의 성능이 유지되기 위해서는 드롭아웃의
위치가 입력 데이터로부터 멀어지는 것이 좋을 수 있음을 알 수 있다. 또한, 드롭아웃 확률이 높을수록 더 높은 가지치기 비율을 사용하여 네트워크 가중치를
경량화할 수 있음을 알 수 있다.
4.4 행렬 분해 적용 - LRA
본 절에서는 Unstructured L1 가지치기가 적용된 모델에 LRA와 LRA-learn을 적용하여 설계한 경량화 완전 연결 네트워크 하드웨어
검증에 사용할 가중치를 최종 선정한다.
LRA와 LRA-learn 비교: 표 2는 다양한 $L_{{Drop}}$, $P_{{Drop}}$, 그리고 $L_{{LRA}}$, $R_{{prune}}$에 따른 LRA와 LRA-learn의
성능비를 보여주며 해당 성능비는 $A_{LRA -\le{arn}}$와 $A_{LRA}$ 비로 구해진다. 따라서 해당 수치가 1보다 크면 LRA-learn의
기법의 성능이 더 좋다는 것을 의미한다. 표에서 볼 수 있는 바와 같이 거의 대부분의 상황에서 LRA-learn이 더 좋은 성능을 보임을 알 수 있다.
따라서 해당 절에서는 LRA-learn의 적용에 대해서 분석한다.
그림 12는 다양한 $L_{{Drop}}$, $P_{{Drop}}$, $R_{{prune}}$, $L_{{LRA}}$, $R_{{comp}}$ 에 대해 LRA-learn의
적용에 의한 성능저하 정도를 보여준다. 해당 성능저하는 가지치기까지만 적용된 모델과 LRA-learn이 적용된 이후의 모델과의 성능 차이를 의미한다.
표 2 Dropout 적용 위치, Dropout 확률, Pruning 비율, 및 Pruning 비율에 대한 CP Learn 과 CP 기법의 성능비.
Table 2 Performance comparison of CP Learn and CP techniques with respect to dropout
application location, dropout probability, pruning ratio, and pruning ratio.
Dropout 적용위치
|
Dropout 확률
|
LRA 적용위치
|
Pruning 비율
|
0.05
|
0.15
|
0.25
|
0.35
|
0.45
|
0.55
|
0.65
|
1
|
0.1
|
1
|
1.033
|
1.032
|
1.022
|
1.007
|
1.051
|
1.001
|
1.077
|
2
|
1.054
|
1.033
|
1.027
|
0.986
|
1.023
|
1.152
|
1.430
|
3
|
1.038
|
1.013
|
1.015
|
1.092
|
0.883
|
1.046
|
1.236
|
0.3
|
1
|
1.049
|
1.046
|
1.043
|
1.074
|
1.036
|
1.029
|
1.063
|
2
|
1.017
|
1.021
|
1.015
|
1.008
|
1.022
|
1.041
|
1.048
|
3
|
0.990
|
0.974
|
0.997
|
0.972
|
0.998
|
0.922
|
1.117
|
0.5
|
1
|
1.031
|
1.028
|
1.025
|
1.001
|
1.021
|
1.079
|
1.109
|
2
|
1.011
|
1.019
|
1.019
|
1.008
|
1.012
|
1.073
|
1.024
|
3
|
1.101
|
1.047
|
1.033
|
1.002
|
0.997
|
1.157
|
1.143
|
2
|
0.1
|
1
|
1.031
|
1.032
|
1.029
|
1.047
|
1.087
|
1.052
|
1.127
|
2
|
0.996
|
1.014
|
1.008
|
1.011
|
1.018
|
1.040
|
1.012
|
3
|
1.036
|
1.006
|
1.012
|
1.042
|
1.047
|
1.016
|
0.976
|
0.3
|
1
|
1.061
|
1.058
|
1.041
|
1.063
|
1.066
|
1.068
|
1.091
|
2
|
1.005
|
1.015
|
1.008
|
1.005
|
1.008
|
1.020
|
1.044
|
3
|
1.009
|
0.990
|
1.024
|
0.972
|
1.039
|
1.024
|
1.074
|
0.5
|
1
|
1.025
|
1.025
|
1.035
|
1.093
|
1.071
|
1.071
|
1.056
|
2
|
0.999
|
0.999
|
1.001
|
1.002
|
1.001
|
1.010
|
1.023
|
3
|
1.004
|
0.998
|
1.000
|
1.028
|
1.032
|
1.017
|
1.034
|
그림 12(a), (b), (c), 그리고 (d) 모두에서 LRA-learn 기법의 경량화 비율($R_{{comp}}$)과 가지치기 적용 비율($R_{{prune}}$)이 증가할수록 성능저하 커짐을
알 수 있다. 이는 LRA-learn과 가지치기 모두 네트워크의 가중치 수를 줄이는 역할을 하기에 자연스러운 결과이다.
드롭아웃 확률에 따른 성능저하 변화: 그림 12에서 볼 수 있듯이 $P_{{Drop}}$=0.1의 결과가 가장 상단에 위치해 있으며 이는 해당 드롭아웃 확률로 학습된 모델의 성능저하가 가장 두드러진다는
것을 알 수 있다. 또한, 해당 결과에서 주목할 만한 점은 드롭아웃 적용 위치와 LRA-learn 적용 위치가 일치함에 따른 드롭아웃 확률 변화에
대한 강인성이다. 그림 12(a)와 (d)는 ($L_{{LRA}}$=$L_{{Drop}}$) 일 때의 성능저하를 보여주며 확대된 그림에서 볼 수 있듯이 $P_{{Drop}}$가 클수록 아래에
위치함을 알 수 있다. 반면 14(b)와 (c)에서는 일관된 경향을 보기가 어렵다. 이를 통해 알 수 있듯이 LRA-learn을 적용하고자 하는 층에 드롭아웃을 적용하여 학습을 진행하면 LRA-learn에
대한 성능저하를 줄일 수 있음을 알 수 있다. 이는 LRA-learn과 같은 행렬 분해는 원본 행렬에서 중요하지 않은 Rank-1 행렬을 제거하는
것이기에 드롭아웃을 통해서 중요한 가중치들을 선별적으로 학습하게 된다면 LRA learn과 같은 기법을 통한 성능저하를 최소화할 수 있다.
E score를 통한 LRA-learn 성능 분석: 그림 13은 다양한 $L_{{Drop}}$, $P_{{Drop}}$, $R_{{prune}}$, $L_{{LRA}}$, $R_{{comp}}$에 따른 수식
(11)의 E score (beta=12)의 변화를 보여준다. E score는 행렬 분해 기법 적용 후의 모델 정확도와 행렬 분해로 인해 감소하는 가중치의
퍼센트 간 조화평균이며, 따라서 행렬 분해 기법 적용 후의 모델 정확도가 감소하면 E score는 감소하며 감소하는 가중치의 수가 증가할수록 커지는
경향을 보인다. 따라서 E score 값이 클수록 성능 유지와 가중치 수 감소의 적정점이라고 할 수 있다.
그림 12. Dropout 확률, pruning 비율, 및 compression 비율 변화에 따른 정확도 감소 비교.
Fig. 12. Degradation of accuracy with varying dropout probability, pruning ratio,
and compression rate.
그림 13. Dropout 확률, pruning 비율, 및 compression 비율 변화에 따른 E score 값 (beta=12) 및 pruning
비율별 최적의 compression 비율 (각 그래프의 노란색 별 표시는 정확도가 0.9 이상인 경우 초록색 별은 그 반대의 경우를 의미함).
Fig. 13. E-score values (beta=12) according to changes in dropout probability, pruning
ratio, and compression ratio, and the optimal compression ratio according to each
pruning ratio (yellow stars in each graph indicate accuracy greater than 0.9, and
green stars indicate the opposite).
그림 13에서 볼 수 있듯 $R_{{prune}}$과 $R_{{comp}}$ 0부터 증가하기 시작하면서 E score 값이 점차 증가함을 알 수 있다. 이를
통해 가지치기와 LRA-learn에 의해 가중치의 수가 줄어드는 정도가 성능이 저하되는 정도보다 더 큼을 알 수 있다. 이후 어느 정도 증가 이후에서는
E score 값이 거의 유지가 되고 적정수준 이상부터는 E score 값이 급격히 감소함을 알 수 있다. $R_{{prune}}$의 $R_{{comp}}$
값이 크면 가중치가 과도하게 감소하여 성능저하가 두드러진다는 것을 의미한다.
그림 12에서와 마찬가지로 그림 13에서도 ($L_{{LRA}}$=$L_{{Drop}}$) 일 때 드롭아웃 확률이 높을수록 높은 $R_{{comp}}$에 강인함을 알 수 있다. 그림 13(d)의 경우 $P_{{Drop}}$가 0.3, 0.4, 0,5에서 E score 값이 크고 13(a)에서도 $R_{{comp}}$가 낮은 경우에는 $P_{{Drop}}$가
0.2에서의 E score 값이 크지만 $R_{{comp}}$가 증가함에 따라 0.3, 0.4, 0.5에서의 E score 값이 상대적으로 크다.
또한 그림 13(b)와 (c)에서도 $P_{{Drop}}$값이 증가할수록 큰 $R_{{comp}}$에 강인함을 알 수 있다.
E score를 통한 최적의 가중치 후보 선정: 그림 13에서 별 표시는 E score를 통해 선정한 경량화 완전 연결 네트워크 하드웨어에 사용될 가중치의 후보이다. 별 표시 들은 각 $R_{{prune}}$별로
E score를 최대화하는 $R_{{comp}}$와 $P_{{Drop}}$을 결정하고, 해당 결과들을 바탕으로 $R_{{comp}}$ 별 E score를
최대화하는 $R_{{prune}}$을 결정하여 도출된다. 그리고 노란색 별은 LRA learn 적용 후 성능이 0.9 이상인 경우를 의미하며 초록색별은
그 반대의 경우이다.
그림 13의 별 표시들을 보면 전반적으로 낮은 $R_{{comp}}$ 쪽에 몰려 있는 경향이 있고 그에 반해 $R_{{prune}}$는 다양한 값을 보인다.
다만, $R_{{comp}}$ 값이 적더라도 $R_{{prune}}$이 크면 최종 성능이 0.9보다 낮아지는 결과를 보인다.
표 3은 그림 13의 별 표시 중 $L_{{LRA}}$ 값별 정확도 기준 상위 4~5개의 결과를 보여준다. 파란색은 성능을 고려한 것이며, 초록색은 가중치 감소 정도를
고려한 것이다. 다만, 본 연구에서는 그림 6(b)의 연산 방식을 하드웨어로 설계하였고 이는 연산 횟수가 감소하는 대신 메모리 접근 횟수가 증가하게 됨을 의미하므로, 메모리 입출력에 대한 부담을 최소화하고자
가중치의 감소 수가 가장 큰 모델로 하드웨어를 검증하고자 한다. 선택한 가중치의 정확도는 0.906으로, 드롭아웃 없이 학습 인지 양자화된 모델은
0.9395, 그리고 드롭아웃이 있을 때는 0.9439이며 각각을 비교하였을 때 4.39%의 성능저하로 네트워크의 첫 번째 층의 36% 가중치 수
감소를 얻을 수 있다. 성능을 더 고려한다면, 1.39%의 성능저하로 18%의 가중치 감소를 얻을 수도 있다.
표 3 LRA 적용에 최적의 $R_{{comp}}$ 및 $R_{{prune}}$ 결과.
Table 3 Optimal $R_{{comp}}$ and $R_{{prune}}$ after LRA application.
$R_{{prune}}$
|
$R_{{comp}}$
|
$P_{{Drop}}$
|
$L_{{LRA}}$
|
$L_{{Drop}}$
|
$A_{{LRA}}$
|
$N_{{Reduced}}$
|
0.35
|
0.36
|
0.3
|
1
|
2
|
0.906
|
14180
|
0.3
|
0.24
|
0.1
|
1
|
2
|
0.9116
|
10010
|
0.1
|
0.24
|
0.2
|
1
|
1
|
0.9262
|
10010
|
0.05
|
0.2
|
0.2
|
1
|
1
|
0.9303
|
8342
|
0.25
|
0.18
|
0.2
|
1
|
1
|
0.9308
|
7508
|
0.5
|
0.26
|
0.5
|
2
|
2
|
0.9135
|
1400
|
0.1
|
0.3
|
0.2
|
2
|
1
|
0.915
|
1550
|
0.25
|
0.44
|
0.3
|
2
|
2
|
0.9188
|
2300
|
0.35
|
0.36
|
0.5
|
2
|
2
|
0.9228
|
1850
|
그림 14. 압축 완전 연결 네트워크 하드웨어 가속기 검증 시뮬레이션 파형.
Fig. 14. A waveform of a compressed fully connected network hardware accelerator.
그림 15. 압축 완전 연결 네트워크 하드웨어 가속기 검증 시뮬레이션 파형 확대.
Fig. 15. An enlarged waveform of a compressed fully connected network hardware accelerator.
5. 경량화 선형 네트워크 하드웨어 설계 검증
본 장에서는 4장에서 최종적으로 채택한 가중치를 제안하는 경량화 완전 연결 네트워크 하드웨어에 탑재하여 RTL 수준의 시뮬레이션 상에서 검증한 결과를
보인다. 검증을 위해서 학습에 사용한 MNIST 데이터셋의 검증용 데이터 9000장을 사용하였다.
그림 14는 Verilog HDL의 하드웨어 시뮬레이션 검증 파형이며, 그림 15는 연산이 진행되는 부분을 확대한 것이다. 검증에 사용된 가중치는 행렬 분해 기법이 첫 번째 층에 적용되었기 때문에 첫 번째 층을 위한 연산 구조는
그림 6(b)와 같고 해당 연산 구조를 하드웨어에 구현하였다. 그림 15에서 U, V가 첫 번째 층의 연산을 보여준다. U와 V에서 i_node와 i_wegt는 각각 입력 노드 값과 가중치를 의미하며 둘을 곱한 결과가
w_mult에 담긴다. 이러한 연산을 통해 U와 V는 파이프라이닝 연산을 통해 병렬적으로 이루어질 수 있음을 볼 수 있다. 그림 15의 FFNN_1과 FFNN_2는 네트워크의 첫 번째 층과 두 번째 층의 연산 예제를 보여준다. 마찬가지로 입력 노드와 가중치를 곱한 결과가 result에
담긴다. 층 연산의 경우 하나의 입력에 대해 순차적으로 수행됨을 알 수 있다.
마지막으로, 4장에서 도출한 가중치 값을 이용하여 경량화 완전 연결 네트워크 하드웨어를 9000장의 MNIST 검증 데이터 추론을 실행시켰다. 추론
성능은 0.9062를 달성했으며 이는 소프트웨어에서의 0.9062 정확도와 정확히 일치하였다. 따라서, 경량화 완전 연결 네트워크의 하드웨어 설계가
제대로 되었음을 검증할 수 있었다.
6. 결론 및 향후 연구 계획
본 연구는 실시간 딥러닝 추론 성능을 향상시키기 위한 AI 하드웨어 가속기의 경량화 설계 및 성능 평가를 다루었다. 소프트웨어적으로는 드랍아웃, 양자화,
지식 증류, 가지치기, 행렬 분해 등의 기법을 활용하여 딥러닝 네트워크의 가중치를 압축하고, 각각의 기법을 비교 분석하였다. 실험 결과, 양자화 인지
학습(QAT) 기법이 가장 우수한 성능을 보였으며, 부동 소수점 가중치를 사용한 지식 증류 기법이 성능 향상에 유리한 것으로 나타났다. 가지치기 기법에서는
Unstructured L1 가지치기와 높은 드랍아웃 확률을 적용한 네트워크가 가지치기에 더 적합함을 확인하였다.
하드웨어적으로는 이러한 경량화 기법을 반영한 압축 완전 연결 네트워크 하드웨어 가속기를 설계하여, 행렬 분해 기법을 통한 연산 구조의 변화에 대응하였다.
특히, 연산 횟수는 줄이되 메모리 접근이 증가하는 병목 현상에 대한 고려가 이루어졌고, 이를 최소화하기 위한 검증을 수행하였다. Verilog HDL
시뮬레이션을 통해 MNIST 데이터셋으로 성능을 검증한 결과, 0.9062의 정확도를 달성하였다.
향후 연구에서는 본 연구에서 한계로 지적된 0값 가중치에 대한 연산 제외를 하드웨어 설계에 반영할 예정이다. 가지치기 기법으로 인해 많은 0값 가중치가
포함된 경량화 네트워크에서, 0값에 대한 연산을 생략함으로써 연산 효율을 극대화하고 실시간 추론 속도를 더욱 향상시킬 수 있을 것으로 기대된다. 또한,
sparse 행렬에 대한 최적화된 하드웨어 설계를 연구함으로써, 딥러닝 네트워크의 경량화와 실시간 동작을 동시에 달성할 수 있는 AI 가속기의 개발에
기여할 것이다.
Acknowledgements
이 연구는 국립금오공과대학교 대학 연구과제비로 지원되었음 (2022~2024).
References
K. He, X. Zhang, S. Ren, and J. Sun, “Deep Residual Learning for Image Recognition,”
Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR),
pp. 770-778, 2016. DOI:10.1109/CVPR.2016.90

G. Huang, Z.Liu, L. Van Der Maaten, and K. Q. Weinberger, “Densely Connected Convolutional
Networks,” Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition(CVPR),
pp. 4700-4708, 2017. DOI:10.1109/CVPR.2017.243

A. Dosovitskiy, L. Beyer, A. Kolesnikov, D. Weissenborn, X. Zhai, T. Unterthiner,
M. Dehghani, M. Minderer, G. Heigold, S. Gelly, J. Uszkoreit and N. Houlsby, “An Image
is Worth 16x16 Words Transformers for Image Recognition at Scale,” Proceeding of 9th
International Conference on Learning Representations, (ICLR), Virtual Event, Austria,
May 3-7, 2021.

A. Radford, J. Wu, R. Child, D. Luan, D. Amodei, and I. Sutskerver. “Language Models
are Unsupervised Multitask Learners,” OpenAI blog, 1 (8), 9, 2019.

Brown, T., Mann, B., Ryder, N., Subbiah, M., Kaplan, J. D., Dhariwal, P., Neelakantan,
A., Shyam, P., Sastry, G., Askell, A., Agarwal, S., Herbert-Voss, A., Krueger, G.,
Henighan, T., Child, R., Ramesh, A., Ziegler, D., Wu, J., Winter, C., Hesse, C., Chen,
M., Sigler, E., Litwin, M., Gray, S., Chess, B., Clark, J., Berner, C., McCandlish,
S., Radford, A., Sutskever, I., and Amodei, “Language Models are Few-Shot Learners,”
Advances in Neural Information Processing Systems 33: Annual Conference on Neural
Information Processing Systems, (NeurIPS), Dec, 6-12, 2020.

Josh Achiam, Steven Adler, Sandhini Agarwal, Lama Ahmad, Ilge Akkaya, Florencia Leoni
Aleman, Diogo Almeida, Janko Altenschmidt, Sam Altman, Shyamal Anadkat, et al., “GPT-4,”
Technical Report, arXiv, 15 Mar 2023.

J. M. Song, S. B. Lee, and A. R. Park, “A study on the industrial application trends
of image recognition technology,” Journal of the Korea Contents Association, 2020.

Redmon, J. and Farhadi, A, “YOLOv3: An incremental improvement,” arXiv, 2018.

A. Bochkovskiy, C. Y. Wang and H. Y. M. Liao, “YOLOv4: Optimal speed and accuracy
of object detection,” arXiv, 2020.

Gartner, Inc, “Forecast: AI Semiconductors, Worldwide 2021-2027,” April 6, 2023.

Qualcomm, “The future of model efficiency for edge AI,” https://www.qualcomm.com/news/onq/2022/09/the-future-of-model-efficiency-for-edge-ai,
2022.

M. Nagel, M. Fournarakis, R. A. Amjad, Y. Bondarenko, M. V. Baalen and T. Blankevoort,
“A white paper on neural network quantization,” CoRR abs/2106.08295, 2021.

G. E. Hinton, O. Vinyals, and J. Dean, “Distilling the knowledge in a neural network,”
CoRR abs/1503.02531, 2015.

L. Liebenwein, C. Baykal, B. Carter, D. Gifford, and D. Rus, “Lost in pruning: The
effects of pruning neural networks beyond test accuracy,” Proceedings of the Fourth
Conference on Machine Learning and Systems, MLSys 2021, virtual, April 5-9, 2021.

P. Indyk, A. Vakilian, and Y. Yuan, “Learning-based low-rank approximations,” Advances
in Neural Information Processing Systems 32: Annual Conference on Neural Information
Processing Systems (NeurIPS), Dec, 8-14, 2019.

저자소개
He received the B.S. degree in Electronic Engineering, and has been working toward
the M.S. degree in Semiconductor System Engineering from Kumoh National Institute
of Technology, in 2024. His research interests include H/W-oriented trainable activation
functions, compressed AI Hardware Design, and AI based systems. He received Research
grant for master's degree students, National Research Foundation of Korea in 2024.
He received the B.S degree in Electronic Engineering from Kumoh National Institute
of Technology, Korea, in 2024. He is currently pursuing the M.S. degree in Semiconductor
System Engineering from Kumoh National Institute of Technology, Korea. His research
interests include design and simulation analysis of deep neural networks on FPGA using
Verilog HDL.
He received the B.S. degree in Electronic Engineering from the Kumoh National Institute
of Technology, Korea, in 2024. He is currently pursuing the M.S. degree in Semiconductor
System Engineering from Kumoh National Institute of Technology, Korea. His research
focuses on AI based semantic segmentation of autonomous vehicles in softwarte and
hardware.
He received the B.S. degree in Electrical Engineering from Kyungpook National University,
Daegu, South Korea, in 2013, the M.S. degree in IT Convergence Engineering from the
Pohang University of Science and Technology (POSTECH), Pohang, South Korea, in 2015,
and the Ph.D. degree from the School of Electrical and Computer Engineering, Ulsan
National Institute of Science and Technology (UNIST), Ulsan, South Korea, in August
2020. Since September 2021, he has been an Assistant Professor with the School of
Electronic Engineering, Kumoh National Institute of Technology, Gumi, South Korea.
His research interests include Intelligent system based on Deep Learning and Implementing
deep neural networks on FPGA using Verilog HDL.