서기성
(Kisung Seo)
†iD
Copyright © The Korea Institute for Structural Maintenance and Inspection
Key words
Multilayers Multi-elements System, Evolutionary Computation, Gene Expression by Rules, CNN, Filter Pruning
1. 서 론
다층 다요소 시스템의 최적화는 층의 수, 층 내의 요소 수 및 요소의 종류를 결정해야 하는 비결정 난해(NP-hard)한 문제이다. 여러 분야에서
공통적으로 존재하며, 딥러닝 [1] 분야에서도 적용성이 높다. 이러한 시스템에서 중복성이 있는 요소들을 삭제하여 성능을 유지하면서 규모를 축소하는 것은 자원의 절약과 시스템의 효율성
향상을 위해서 매우 중요하다. 예로, 딥뉴럴 네트워크(DNN)의 노드나 합성곱 뉴럴 네트워크(CNN)에서의 필터의 일부를 삭제하여 모델을 축소하는
압축 기법이 있다[2-3].
기본적으로 이러한 시스템은 많은 수의 다층 및 다요소로 구성되어 있어서 일부 요소의 삭제를 위해서는 대규모의 공간을 탐색해야 하는 매우 복잡하고 난이도가
높은 문제이다. 즉, 탐색에 대한 경우의 수가 방대한 NP-Hard한 문제이므로 최적해를 찾기가 매우 어렵다.
진화연산[4]은 대규모 최적화 문제에 널리 사용되고 있다. 그러나 적합도 함수의 계산이 복잡할 경우, 많은 수의 개체와 세대를 필요로하는 진화연산의 특성상 적용이
어렵다. 딥러닝 모델에 대한 최적화도 각 개체에 대한 적합도 계산을 위해서 딥러닝 모델을 평가해야 하기 때문에 연산량이 대폭 늘어난다. 따라서 소규모의
일부 연구들을[5-6] 제외하고는 딥러닝 모델의 최적화에 진화연산이 거의 적용되지 않고 있다.
본 논문에서는 적합도 함수가 복잡하며 다층 구조로 구성된 시스템에 일반적으로 적용할 수 있는 진화연산 기반 최적화 기법을 제안한다. 연산시간이 많이
걸리는 적합도 함수는 해당 문제에 종속적이므로, 이에 대한 연산 축소는 다른 측면의 문제이며, 대부분 필수적인 연산이라 변경이나 개선이 어렵다. 대신에
유전자해의 표현법을 개선하여 탐색공간을 획기적으로 줄이는 효율적인 기법을 제안한다.
다층 시스템에서 층내의 구성요소를 선택하거나 삭제하는 경우, 대부분 그 모든 요소들에 대한 유전자 표현을 사용한다. 예를 들어서 CNN의 한 층이
64개의 필터로 구성되어 있으면, 이에 대한 유전자해도 최소 그 층에 대해서 64개의 필드로 구성된 스트링을 사용한다. 다층일 경우, 유전자해의 길이는
수백개로 늘어나고, 각각의 요소가 독립적이므로 이에 대한 탐색공간은 기하급수적으로 증가한다.
본 논문에서는 이러한 문제를 해결하기 위해서 다층의 요소를 유전자해로 사용하지 않고, 그 층에서 선택 및 삭제시에 적용할 규칙을 사용한다. 다시 말해,
널리 쓰이는 소수의 선택 규칙 후보군을 정하고, 각 층에 대해서 이들의 적용 비율만을 탐색한다. 이 방식을 사용하면, 규칙 수가 3개일 경우, 64개
필터가 포한된 동일 층에 대해서 유전자해가 64개 필드가 아닌 단지 3개의 필드로 축소된다.
제안된 기법을 진화연산의 탐색 공간 크기에 대해서 비교 분석하고, 이를 사례 연구인 CNN 가지치기(Pruning)[6, 7, 8]에 적용하여 그 타당성을 검증한다. CIFAR10[9] 데이터셋에 대해서 ResNet56[10] 모델을 사용하여, 기존 가지치기 접근법과 비교한다.
2. 다층 다요소 시스템
다층 다요소 시스템은 그림 1에 나타난 것처럼, 여러 층이 순차적으로 연결되어 있으며, 각 층이 다수의 요소들로 구성되어 있다. 딥뉴럴 네트워크(DNN), 합성곱 뉴럴 네트워크(CNN)
등이 대표적인 예이다. 시스템 내의 층 수나 층내의 요소 수 및 요소의 종류까지도 최적화가 필요하다. 본 논문에서는 우선, 층 수와 각 층의 요소들이
주어진 상태에서 층 내의 중요도가 낮은 요소들을 결정하는 데 초점을 맞춘다. 이 문제는 다음의 경우와 밀접한 연관을 가진다. 다층 다요소 시스템에서는
각 층의 요소들이 많은 경우, 이의 중복성이 발생하며, 이를 줄이기 위해서 일부 요소들을 삭제해서 전체 시스템의 성능은 유지하면서 시스템의 규모나
자원을 축소하는 최적화가 필요하다.
최적화 결정을 위해서는 방대한 규모의 탐색이 필요하다. 그림 1에서 층(Layer) 1에 10개의 노드가 있으므로, 노드 선택에 관한 조합가능한 경우의 수는 210 = 1024개이고, 노드가 하나씩 추가될 때마다 2배씩 늘어난다. CNN과 같이 한 층의 필터가 64개일 때, 그 층에서의 탐색 가능한 경우의 수만해도
264 = 18,446,744,073,709,600,000 이다. 게다가 CNN의 층수가 많으므로, 총 조합가능한 선택의 수는 기하급수적으로 증가한다.
그림 1. 다층 다요소 시스템
Fig. 1. Multilayer Multi-element System
3. 진화연산 구성 요소 분석
3.1 진화연산
진화연산(Evolutionary Computation)은 생물체의 진화원리를 해의 탐색에 적용한 최적화 기법이다. 주요 적용 대상은 실수 파라미터
최적화와 조합 최적화 문제로 나뉜다. 최근에 모든 분야에 널리 사용되고 있는 데이터 학습 방식인 딥러닝과는 대상 문제와 적용 방식에 다음과 같은
차이가 있다. 즉, 딥러닝은 데이터 학습 위주의 문제가 중심이고, 진화연산은 데이터를 사용하여 모델을 생성할 수도 있으나, 주로 목적함수를 최적화하는
데 주로 사용되고 있다.
3.2 진화연산 구성 요소의 연산량
진화연산의 구성 요소는 다음과 같다. 1) 유전해 표현, 2) 적합도 평가, 3) 선택, 4) 유전연산. 유전해 표현은 문제에 대한 가능 해를 어떠한
방식으로 나타낼지에 대한 것으로, 해의 구성 방식에 따라 표현이 달라진다. 해의 기본 구성 요소는 문제에 따라 정수나 실수를 사용한다. 예로, 선택과
순서 정보를 나타내는 조합형 문제의 경우 정수 표현을, 딥러닝 모델의 가중치 같은 네트워크 노드간으 연결성은 실수 형태로 나타낸다.
개체의 적합도 평가는 가장 많은 연산 시간을 요구한다. 아주 간단한 벤치마크 문제를 제외하고는 응용 문제가 복잡할수록 큰 연산량이 소요된다. 예를
들어 자동차의 구조적 충돌 설계시 실험 해석을 위한 복잡한 동역학 모델의 계산이 필요하다. 또한 딥러닝 모델의 평가시 훈련을 포함하는 경우 더욱 규모가
커진다. 그러나 이 과정은 미리 주어지거나 결정되어 있어 개선의 여지가 없는 경우가 대부분이다.
선택 연산은 유전연산에 참여할 개체를 랜덤으로 선택하는 것으로 가장 단순하다. 유전연산은 교차(Crossover)와 돌연변이(Mutation)와 같은
연산을 통해 다음 세대로 전달할 유전해룰 변형하는 과정으로 역시 간단한 편이다.
3.3 유전해 표현과 탐색공간
유전해 표현은 문제를 어떠한 방식으로 표현하여 해를 최적화할 것인지에 대한 것으로, 해의 구성 방식에 따라 표현이 달라진다. 해의 기본 구성 요소는
문제에 따라 정수나 실수를 사용한다. 탐색공간의 규모에 따라 연산량이 비례한다.
4. 진화연산의 다층구조 시스템 적용을 위한 탐색 공간 축소 기법
탐색공간과 밀접한 관련을 가지는 유전해 표현은 대부분 문제에 따라 직관적으로 결정되는 경우가 많아서, 이에 대한 적정성 분석에 대한 연구는 거의 없다.
그러나, 유전해의 구성 방식에 따라 탐색 공간의 규모가 달라 질 수 있는 점에 착안해서, 본 논문에서는 탐색 공간의 축소를 위한 새로운 요소 선택
접근법 및 이의 유전해 표현 방식을 제안한다.
4.1 진화연산 기반 요소 선택
요소 선택을 위해서 널리 쓰이는 진화연산의 유전자 표현은 스트링 해를 구성하여, 각 층에 있는 요소들의 선택 여부를 지정 한다. 모든 요소를 유전자
필드로 구성하고 0, 1로 요소의 선택 여부를 표현한다. 이에 대한 표현 예가 그림 2에 나와 있다. 각 층에 해당하는 유전자 스트링이 표현되어 있으며, 유전자의 특정 필드가 1이면 그에 대응하는 노드가 선택된다.
한 층에서의 요소 수가 n이라면 2n의 선택 경우의 수가 존재한다. 다음은 n=16, 32, 64에 대한 탐색 경우의 수에 대한 예시이다. 요소 수의
증가에 따라 탐색 공간이 기하급수적으로 커짐을 알 수 있다.
216 = 65,536
232 = 4,294,967,296
264 = 18,446,744,073,709,600,000
다층 시스템의 경우 각 층의 경우의 수가 연속적으로 곱해지기 때문에 n=16, 32, 64의 3개 층으로 구성된 시스템의 전체 선택 경우의 수는 216×232×264 개나 된다. 전체 선택 비율은 입력으로 주어지고, 이 비율에 맞추어 유전자에서의 선택을 나타내는 ‘1’의 수가 결정된다. 그림 2에서 전체 시스템에 대한 유전자는 각 층의 유전자를 연결하여 합친 것이 된다.
그림 2. 요소 선택을 위한 진화연산 기반 유전자 해 표현
Fig. 2. Evolutionary Computation-based gene representation for element selection
4.2 진화연산 기반 선택 규칙 접근
요소의 수가 k개 늘어나면 요소를 직접 선택하는 스트링의 크기가 그만큼 증가해 진화연산의 탐색공간이 2k 배만큼 커진다. 이에 따라 적정 수준의 해를
찾기 위해서는 방대한 컴퓨팅 연산이 필요하고, 탐색 성능이 상당히 저하될 수 있다. 따라서 모든 요소를 유전자 해에 표현하는 대신에, 각 요소를 규칙에
의해 선택을 결정할 수 있도록 규칙 기반 선택 기법을 제시한다. 즉, 몇가지 주요 선택 규칙을 후보군으로 정하고, 규칙의 조합 비율을 탐색하여 요소의
선택 여부를 결정한다.
선택 규칙은 다층 다요소 시스템의 목적함수에 부합되면서 합리적인 선택의 기준이 될 수 있어야 한다. 예를 들어서, 구성요소의 계수나 크기 등을 들
수 있으며, 해결하려는 문제의 도메인에 따라 다르다. 각 층마다 적용될 규칙의 비율 만을 결정하여 그 비율대로 선택 규칙을 요소들에 적용한다. 이에
대한 개념도가 그림 3에 나와있다. n 개의 층으로 구성되어 있는 시스템에서 R1, R2, R3 3개의 규칙이 사용되며, 각 규칙들의 비율이 다르게 구성되어 있음을 보여준다.
그림 3. 요소 선택 규칙의 조합 및 층별 다른 적용
Fig. 3. Combination and Layer-wise Differential Application of Element Selection Rules
선택 규칙 접근법에서의 탐색 공간 규모는 다음과 같다. 비율은 0~100 사이의 정수로 표현할 수 있으며, 3개의 규칙을 사용하는 경우, 규칙 R1에
대한 선택 경우의 수는 100개이고, k개를 선택했을 때, R2에 대한 경우의 수는 100-k개이고, R3는 나머지로 자동 결정된다. 즉 다음과 같이
선택 가능한 경우의 범위를 표현할 수 있다.
100 × (100-k) < 10,000
요소수 n=16, 32, 64의 3개 층으로 구성된 시스템의 전체 선택 경우의 수는 요소수에 상관없이 10,000 x 10,000 x 10,000
미만 이기 때문에 3.1절의 일반 진화연산 표현보다는 매우 작은 탐색 규모임을 알 수 있다.
5. 사례연구 - CNN 가지치기
5.1 CNN 필터 가지치기
대규모 데이터에 대한 복잡한 인식 작업은 매우 많은 층으로 구성된 깊은 CNN(Convolutional Neural Networks)을 필요로 한다.
성능 위주의 이러한 모델들은 네트워크에 여분의 층이나 필터를 포함할 수밖에 없어서, 모델 구성에서 자원의 중복 문제가 존재한다. 이를 해결하기 위한
연구 중 하나로, 가지치기(pruning)[6,7]는 CNN 모델에서 컨볼루션 층의 필터중에서 영향력이 적은 것들을 삭제함으로써 전체 네트워크가 차지하는 메모리 용량을 줄이고, 처리 속도를 감소시킬수
있다.
ResNet 모델에 대한 층의 구조가 표 1에 나와 있다. 본 논문에서 사용하는 ResNet56은 표 1에서 n=9인 경우이며, 모듈의 반복을 통해 총 56개 층을 가진다. 각 층의 필터 수는 16, 32, 64로 구성된다.
표 1 ResNet 구조
Table 1 ResNet architecture
Output size
|
32×32
|
16×16
|
8×8
|
No. of layers
|
1+2n
|
2n
|
2n
|
No. of filters
|
16
|
32
|
64
|
※ ResNet20 (n=3), ResNet32 (n=5), ResNet44 (n=7), ResNet56 (n=9)
5.2 진화연산 기반 요소 선택의 가지치기
ResNet56에 3.1절에서 설명한 직접 요소 선택 접근법을 적용하면, 전체 56개의 각 컨볼루션 층에 대해서 16, 32, 64개의 필드로 구성된
유전자 해가 대응된다. 탐색 공간의 크기는 216×216×216× ••• ×232×232× ••• ×264×264 의 숫자로 나열하기 어려운 방대한 규모이다. 특히, 매 유전자 개체마다 CNN 모델의 평가가 필요한 문제의 특성상 사실상 일반 진화연산의 적용이
매우 어렵다는 것을 알 수 있다.
5.3 필터 가지치기 규칙 조합의 최적화
4.2절에서 제안한 규칙 기반 선택 방식을 적용하는 방법은 다음과 같다. 먼저 기본 규칙을 선정한 다음 각 층마다 이의 조합 비율을 최적화하여, 각
층에 적응적인 가지치기를 수행한다. 이 방식은 기존의 가지치기 알고리즘이 한 가지 규칙만을 전 층에 대해서 동일하게 적용하는 것에 비해서 혁신적이다.
이에 대한 개념도는 4.2절의 그림 3에 나와 있다. 본 논문의 가지치기에 사용되는 규칙들은 다음 3 가지 종류로 구성되며, 식 (1)-(3)과 같다.
$w_{i}$는 특정 노드 i에서의 가중치 집합을 나타내며, $w_{ij}$는 현재 노드 I에서 다음 층의 노드 j로의 연결 가중치이다. 식 (1)은 연결된 가중치의 합을 나타낸다. Algorithm 1에 전체 수행과정이 정리되어 있다.
5.4 실험 환경
본 논문은 CNN 가지치기에 진화연산 적용 기법의 타당성을 검증하기 위한 연구로써, 중규모 이상이고 널리 사용되는 ResNet56 모델을 선택하여
실용적으로 충분한 탐색공간의 크기를 확보하였다. 대신 데이터셋은 중소규모의 CIFAR10을 사용하여 적합도 함수 계산량을 줄이고자 하였다. 따라서
가지치기의 최신 연구보다는 상기 언급한 실험 환경과 동일한 가지치기 연구들[6, 7, 8]과 비교하였다. CIFAR10은 총 60000장의 32x32 해상도를 가진 이미지로 구성되어 있으며 10개의 클래스로 분류된다. 50000장의 학습
데이터, 10000장의 평가 데이터로 나누어져 있으며 표 2에 정리되어 있다.
저사양 컴퓨팅 머신에서도 실험이 가능함을 보이기 위해서 상대적으로 저사양 GPU인 RTX-2080 에서 수행하였다. 진화연산의 파라미터로는 개체수
50과 세대수 50을 사용한다.
표 2 CIFAR10 데이터 셋
Table 2 CIFAR10 dataset
Dataset
|
Categories
|
Traning data
|
Test data
|
CIFAR10
|
10
|
50,000
|
10,000
|
5.5 실험 결과
필터 삭제율은 50%대를 적용하였고, 비교 실험 결과가 표 3에 나와 있다. 제안 기법이 비교 지표인 정확도(Acc), 연산량(FLOPs), 축소율(Pruned FLOPs) 측면에서 다른 기법들에 비해서 모두
우수한 결과를 얻었다. 가장 중요한 베이스라인에 대비한 정확도 하락 (Acc Drop)에서는 비교 모델들이 가지치기 축소 후 정확도가 모두 하락한
한 반면에, 제안된 기법에서는 축소 후 오히려 성능이 0.26% 개선되어 시스템의 효율성이 더 높아졌음을 알 수 있다. 또한 축소율도 53.45%로
가장 높은 것을 알 수 있다.
표 3 가지치기 비교 실험 결과 - CIFAR10, ResNet56
Table 3 Comparison results of pruning on CIFAR10 with ResNet56
Method
|
Baseline
(top-1)
|
Acc
(top-1)
|
Acc
Drop(↓)
|
FLOPs
|
Pruned
FLOPs
|
TAS [6]
|
94.46%
|
93.69%
|
0.77%
|
59.40M
|
52.60%
|
FPGM[7]
|
93.59%
|
93.49%
|
0.10%
|
59.40M
|
52.60%
|
HRank[8]
|
93.26%
|
93.17%
|
0.09%
|
62.72M
|
50.00%
|
Proposed
|
93.42%
|
93.68%
|
-0.26%
|
57.09M
|
53.45%
|
5.6 고찰
딥러닝과 진화연산의 결합에 대한 관심은 꾸준히 제기되어왔으나, 중규모 이상의 모델에 대해서는 연산량이 대폭 증가하므로, 거의 시도되지 않고 있다.
본 논문에서는 진화연산의 적용 방식을 개선하여, 직접적인 유전해 표현 대신에 규칙 기반의 유전해 접근을 통해 탐색 공간을 대폭적으로 줄일 수 있음을
보였고, /ResNet56과 같은 상당한 규모의 CNN 가지치기 문제에 적용이 가능함을 보였다. 테스트 데이터에 대한 평가가 적합도 함수에서 차지하는
비중이 대부분이므로 제안된 기법에서 사용된 식 (1)-(3)에 대한 가지치기 규칙들의 계산에 소요되는 시간은 무시할 정도이다.
6. 결 론
본 논문에서는 다층 다요소 시스템의 요소 선택에 대해서 진화연산 적용의 문제점인 방대한 탐색 규모를 축소할 수 있도록, 선택 규칙 접근에 의한 최적화
기법을 제안하였다. 진화연산의 탐색 공간 크기에 대해서 비교 및 분석을 수행하고, 사례 연구로, CNN 필터 가지치기에 적용하였다. CNN 모델로는
ResNet56을 사용하고, CIFAR10 데이터에 대해서 기존 가지치기 기법들과 비교하였다. 유사 실험 환경의 기존 기법들에 비해서 연산량(FLOPs)은
감소하면서, 정확도 저하(Acc drop)가 가장 적음을 나타내었다. 이를 통해 딥러닝 분야에 적용이 어려운 진화연산의 적용 가능성을 확인하였다.
향후, 다양한 딥러닝 문제에 대해서 진화연산의 적용 효율성을 검토하는 것이 필요하다.
Acknowledgements
This Research was supported by Seokyeong University in 2022.
References
Y. LeCun, Y. Bengio, G. Hinton, “Deep learning,” Nature, vol.521, pp.436-444, 2015.
Z. Liu, J. Li, Z. Shen, G. Huang, S. Yan, C., Zhang, “Learning efficient convolutional
networks through network slimming,” Proc. of the IEEE Conference on Computer Vision,
pp. 2736-2744, 2017.
Lin. C, Zhong. Z, Wei. W, and Yan. J, “Synaptic strength for convolutional neural
network,” Proc. of Advances in Neural Information Processing Systems, pp. 10149-10158,
2018.
J. D. Goldberg, Genetic Algorithms in Search, Optimization and Machine Learning, Addison-Wesley,
1989.
Xie, A. Yuille, “Genetic CNN,” Proc. of the IEEE Conference on Computer Vision/ and
Pattern Recognition, 2017.
X. Dong and Y. Yang, “Network pruning via transformable architecture search,” Proc.
of Advances in Neural Information Processing Systems. 2019.
Y. He, P. Liu, Z. Wang, and Y. Yang, “Pruning filter via geometric median for deep
convolutional neural networks acceleration,” Proc. of the IEEE Conference on Computer
Vision/ and Pattern Recognition, 2019.
M. Lin, R. Ji, Y. Wang, Y. Zhang, B. Zhang, Y. Tian, and L. Shao. “Hrank : Filter
pruning using high-rank feature map,” Proc. of the IEEE Conference on Computer Vision/
and Pattern Recognition, 2020.
The CIFAR-10/100 dataset.
K. He, X. Zhang, S. Ren, and J. Sun, “Deep Residual Learning for Image Recognition,”
In Proceedings of the IEEE International Conference on Computer Vision. and Pattern
Recognition, 2016.
저자소개
He received the BS, MS, and Ph.D degrees in Electrical Engineering from Yonsei
University, Seoul, Korea, in 1986, 1988, and 1993 respectively. He joined Genetic
Algorithms Research and Applications Group (GARAGe), Michigan State University from
1999 to 2002 as a Research Associate. He was also appointed Visiting Assistant Professor
in Electrical & Computer Engineering, Michigan State University from 2002 to 2003.
He was a Visiting Scholar at BEACON (Bio/computational Evolution in Action CONsortium)
Center, Michigan State University from 2011 to 2012. He is currently Professor of
Electronics Engineering, Seokyeong University. His research interests include deep
learning, evolutionary computation, computer vision.