Recently, some meta-heuristic algorithms, such as GA(Genetic Algorithm) and GP(Genetic Programming), have been used to optimize CNN(Convolutional Neural Network). The CNN, which is one of the deep learning models, has seen much success in a variety of computer vision tasks. However, designing CNN ar...
Recently, some meta-heuristic algorithms, such as GA(Genetic Algorithm) and GP(Genetic Programming), have been used to optimize CNN(Convolutional Neural Network). The CNN, which is one of the deep learning models, has seen much success in a variety of computer vision tasks. However, designing CNN architectures still requires expert knowledge and a lot of trial and error. In this paper, the recent attempts to automatically construct CNN architectures are investigated and analyzed. First, two GA based methods are summarized. One is the optimization of CNN structures with the number and size of filters, connection between consecutive layers, and activation functions of each layer. The other is an new encoding method to represent complex convolutional layers in a fixed-length binary string, Second, CGP(Cartesian Genetic Programming) based method is surveyed for CNN structure optimization with highly functional modules, such as convolutional blocks and tensor concatenation, as the node functions in CGP. The comparison for three approaches is analysed and the outlook for the potential next steps is suggested.
Recently, some meta-heuristic algorithms, such as GA(Genetic Algorithm) and GP(Genetic Programming), have been used to optimize CNN(Convolutional Neural Network). The CNN, which is one of the deep learning models, has seen much success in a variety of computer vision tasks. However, designing CNN architectures still requires expert knowledge and a lot of trial and error. In this paper, the recent attempts to automatically construct CNN architectures are investigated and analyzed. First, two GA based methods are summarized. One is the optimization of CNN structures with the number and size of filters, connection between consecutive layers, and activation functions of each layer. The other is an new encoding method to represent complex convolutional layers in a fixed-length binary string, Second, CGP(Cartesian Genetic Programming) based method is surveyed for CNN structure optimization with highly functional modules, such as convolutional blocks and tensor concatenation, as the node functions in CGP. The comparison for three approaches is analysed and the outlook for the potential next steps is suggested.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
딥러닝의 각 기법들은 구조적인 측면에서 유사성과 상이성이 모두 존재하며, 이에 대해서 개별적인 접근법이 필요하다. 본 연구에서는 영상 인식분야에서 탁월한 성능을 보고이고 있는 CNN 구조의 최적화에 대해서 논의한다.
본 연구에서는 진화연산 기반의 CNN 구조 최적화에 대한 주요 연구를[8-10] 분석하고, 문제점 및 개선 방안을 고찰한다. 특히, 네트워크 구조의 유전자 표현 방법과, 생성 및 탐색 측면에서 주요 기법들인 GA, GP를 중심으로 비교 분석한다.
제안 방법
CNN 구조 최적화에 대한 최신의 대표적 연구 3가지 방법을 비교 분석하였다. 수많은 최적화 변수와 12-15 GPU-days 방대한 연산량 때문에 아직까지도 연구가 초기 단계에 그치고 있다.
그림 4는 총 6개 층에 대해서 GA 연산을 통해 얻어진 CNN 구성도가 나와 있으며, GA 유전자 해의 상세 예가 그림 5에 나와 있다. CNN 구조에 필요한 상당수 변수를 GA 유전자로 표현하고, 진화 최적화를 수행했다. 특히 풀링 층에서 컨볼루션 층으로 연결 관계를 일반적인 모든 연결 대신 연결을 특정하게 몇 종류로 구성하여 이를 선택하게 한 것으로 보인다.
게다가 필터의 수 및 크기는 앞 층에서의 수치로부터 규칙적인 추출도 가능하므로, 이의 최적화가 의미가 줄어들 수 있다. 각 층에 대한 활성화 함수의 선택은 CNN 구조보다는 관련 파라미터로 볼 수 있는데, 이 연구에서는 구조 변수외에 활성화 함수 선택을 포함시켰다. 또한 근본적인 구조인 CNN 층수는 6개로 고정시켜놓고 필터의 수 및 크기, 그리고 층간의 연결 관계만을 진화적으로 탐색했기 때문에 한계가 존재한다.
초기에 스트링으로 구성된 각 개체들을 임의로 생성한다. 그리고 각 개체를 해석하여 구한 후보 해를 적합도 함수로 평가한다. 이후, 주어진 선택 방법에 의해 유전 연산에 참여할 개체들을 선택한다.
일반적인 DNN에 대해서는 최적화 연구가 일부 시도되어 왔으며, 그 중 가장 주목할 만한 연구는 NEAT[4] 관련 기법들이다. 네트워크내의 층 수 및 층 내의 노드 수, 그리고 이들의 연결 방법을 진화연산을 사용하여 최적화를 수행하였다. 이후 HyperNEAT [5], CPPN[6], DPPN[7]등으로 발전하여 왔고, 딥러닝이 대세를 차지하고 있는 와중에 경쟁기법으로 꾸준히 두각을 나타내고 있다.
이후, 주어진 선택 방법에 의해 유전 연산에 참여할 개체들을 선택한다. 선택된 개체들을 대상으로 유전 연산을(교배, 돌연변이) 수행한다. 그리고 이 전체과정을 종료조건이 만족될 때까지 반복한다.
CGP를 이용하여 CNN 구조를 구성하는 연구가 시도되었고, 기존의 GA 기반 방법에 비해 구조적 제한과 최적화 대상의 확대가 이루어졌다. 유전자 인코딩을 통한 노드들의 연결과 함께 CNN 모듈을 함수화하여 블록으로 사용함으로써, 높은 집적도와 함께 컨볼루션, 풀링, 그리고 연산함수를 포함하였다. 그림 8의 유전자 표현에서 첫 번째 노드의 C0 함수는 conv(32,3) 모듈의 입력이 0(input)으로부터 왔다는 표시이고, 그 다음 노드의 P1 함수는 pool(max)의 입력이 역시 0(input)에서 연결되었다는 의미이다.
다음 연구는[9] GA 유전자의 표현에 중점을 둔 연구로서, 컨볼루션 층의 개수와 컨볼루션 층간의 연결관계에 초점을 맞추었다. 이진 스트링으로 구성된 GA를 사용하여 CNN 네트워크 구조를 표현하였는데 복수개로 구성된 컨볼루션 층의 연결구조를 진화시켰다. 그림 6의 위의 그래프와 코드는 유전자의 예와 이에 대한 네트워크의 연결관계를 나타낸다.
본 연구에서는 진화연산 기반의 CNN 구조 최적화에 대한 주요 연구를[8-10] 분석하고, 문제점 및 개선 방안을 고찰한다. 특히, 네트워크 구조의 유전자 표현 방법과, 생성 및 탐색 측면에서 주요 기법들인 GA, GP를 중심으로 비교 분석한다.
대상 데이터
MP(Max Pooling)와 AP(Average Pooling)가 풀링에 대한 모듈로 제공되고, Sum과 Concat(Concatenation) 연산 함수가 포함된다. CIFAR10 데이터에 대한 학습 시간은 12-15 GPU-days가 걸렸고, GPU는 GTX-1080 2대를 사용하였다. 성능은 Res-Net보다 비슷하거나 약간 우수하여 상당한 경쟁력을 가졌음을 알 수 있다.
이는 대부분의 인코딩 기반 접근이 가지고 있는 문제점이다. 실험은 MNIST와 CIFAR10을 대상으로 Titan-X GPU 상에서 수행되었다. 이진 스트링 유전자의 길이는 19이며, 군집수는 20개의 개체를 사용하고, 총 50세대를 수행하였다.
실험은 MNIST와 CIFAR10을 대상으로 Titan-X GPU 상에서 수행되었다. 이진 스트링 유전자의 길이는 19이며, 군집수는 20개의 개체를 사용하고, 총 50세대를 수행하였다. 교배확률은 0.
이론/모형
세대별 개체 생성에 (1+λ) steady state 생성 모델을 사용하였다.
성능/효과
1), 2)의 두 가지 GA 기반 CNN 최적화 기법들보다 진일보한 기법으로, 컨볼루션과 풀, 그리고 Summation 과 Concatenation 모듈을 정의하여 구조의 확장이 유연하고 다양한 네트워크의 조합 생성이 가능하다는 장점이 있다. 또한 컨볼루션 함수의 경우 필터 수 및 크기를 인자화하여 다양화가 가능하다.
3) GP 접근법은 더 크고 복잡한 공간을 탐색하기 때문에 GA 접근법보다 열려진 구조에 대한 탐색이 가능하기 때문에 구조 최적화에 대한 가능성이 높으나, 탐색의 어려움이 훨씬 크기 때문에 진화과정에 의해서 좌우된다. 따라서 최적화 대상 변수의 특성을 고려하여 이에 적합한 진화연산 기법의 선택이 필요하다.
4) 트리를 유전자로 사용하는 일반적인 GP보다 네트워크 표현 방식의 CGP가 CNN의 네트워크 구조 진화에 적합한 것으로 생각된다.
또한 컨볼루션 함수의 경우 필터 수 및 크기를 인자화하여 다양화가 가능하다. CGP의 특성상 최대 유전자 길이내에서 가변적인 개체 구성이 가능하고, 기존 정의된 함수외에 다양한 함수가 추가될 수 있어서 확장된 표현이 가능하다.
CIFAR10 실험 결과를 보면 오류율이 7.1%로 기존 주요 연구 들의 평균 성능 수준이거나 약간 더 높게 나왔다. 특히 DenseNet[13,14]의 성능 3.
그림 7은 VGGNet[19], ResNet[20], 그리고 DenseNet[21]에 대한 컨볼루션 층의 연결이 맨 밑의 유전자 해로 표현될 수 있음을 보여주고 있다. 전체 유전자의 일부가 빌딩 블록의 형태로 반복해서 제공될 수 있음을 보여준다. 컨볼루션 층내의 필터 수 및 크기는 고정되어 있어, 인셉셥 모듈과 같이 다중 스케일 정보를 처리하는 데는 제한이 있다.
후속연구
4 절까지의 분석을 토대로 주요 사항을 정리하면 다음과 같다. 이를 통해 목적에 맞는 진화기법의 선택과 유전자 구성 등 CNN 구조 최적화를 위한 일종의 참고가 되기를 기대한다.
질의응답
핵심어
질문
논문에서 추출한 답변
진화연산이란?
진화연산은 다윈의 진화원리를 컴퓨터 알고리즘화한 방향성 있는 확률적 최적화 방법으로, NP Hard 또는 NP Complete 문제에 매우 효과적인 것으로 알려져 있다[3]. 다른 접근법에 비해서 최적화 성능이 우수하기 때문에, 일반적인 구조 최적화 문제 뿐만 아니라 딥러닝 구조 최적화 연구에도 적용이 되고 있다.
CNN 구조에 관한 변수들에는 무엇이 있나?
CNN 구조에 관한 변수들은 다음과 같다. 컨볼루션 층수, 풀링 층수, 층간 연결, 컨볼루션 층내의 필터 수 및 크기등이 있으며, 컨볼루션 연산에 필요한 패딩, 보폭, 풀링 연산의 방식 등이 함께 존재한다. 또한 여러 개의 컨볼루션 층이 연이어질 수 있으며, 층간의 분기도 가능하여 연결 가능 복잡도는 더욱 증가한다.
딥러닝 기법의 종류로는 무엇이 있나?
딥러닝은 기존의 신경망 및 다른 기계학습 방법에 비해서 뛰어난 학습 능력을 보이며 거의 모든 분야에 널리 응용되고 있다 [1,2]. 딥러닝 기법의 종류로는 DNN (Deep Neural Network), CNN (Convolutional Neural Networks), Auto-Encoders, Deep Belief Networks (DBNs), Recurrent Neural Networks (RNN), 그리고 LSTM(Long Short-Term Memory) 등이 있다[1,2]. 딥러닝 네트워크의 규모가 깊고 커짐에 따라, 딥러닝 구조에 대한 최적화 문제가 점차 관심을 끌고 있다.
참고문헌 (22)
J. Schmidhuber, "Deep Learning in Neural Networks: An Overview," Neural Networks, Vol. 61, pp. 85-117, 2015.
J. D. Goldberg, Genetic Algorithms in Search, Optimition and Machine Learning, Addison-Wesley, Reading, MA, 1989.
K. O. Stanley and R. Miikkulainen, "Competitive coevolution through evolutionary complexification," Journal of Artificial Intelligence Research, vol. 21, pp. 63-100, 2004.
K. O. Stanley, D. B. D'Ambrosio, and J. Gauci, "A hypercube-based indirect encoding for evolving large scale neural networks," Artificial Life, vol. 15, 2009
K. O. Stanley, "Compositional pattern producing networks: A novel abstraction of development," Genetic Programming and Evolvable Machines Special Issue on Dev. Sys., vol. 8, no. 2, pp. 131-162, 2007.
C. Fernando et al. "Convolution by Evolution: Differentiable Pattern Producing Networks," In Proceedings of the 2016 Genetic and Evolutionary Computation Conference, Denver, CO, USA, pp. 109-116. 2016.
A. Rikhtegar, M. Pooyan, M. Manzuri-Shalmani, "Genetic algorithm-optimised structure of convolutional neural network for face recognition applications," IET Computer Vision, Vol. 10, Iss. 6, pp. 559-566, 2016
M. Suganuma, s, Shirakawa, T. Nagao, "A Genetic Programming Approach to Designing Convolutional Neural Network Architectures," Proceedings of GECCO 2017, pp. 497-504, 2017
LeCun, Yann, et al. "Gradient based learning applied to document recognition," Proceedings of the IEEE, pp. 2278-2324, 1998
J. R. Koza, Genetic Programming: On the Programming of Computers by Means of Natural Selection, The MIT Press, 1992.
J. Miller, P. Thomson, "Cartesian Genetic Programming," EuroGP 2000. LNCS, vol. 1802, pp. 121-132. Springer, 2000
K. Simonyan and A. Zisserman, "Very Deep Convolutional Networks for Large-Scale Image Recognition," International Conference on Learning Representations, 2014.
C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed, D. Anguelov, D. Erhan, V. Vanhoucke, and A. Rabinovich, "Going Deeper with Convolutions," Computer Vision and Pattern Recognition, 2015
K. He, X. Zhang, S. Ren, and J. Sun, "Deep Residual Learning for Image Recognition," Computer Vision and Pattern Recognition, 2016.
S. Zagoruyko and N. Komodakis, "Wide Residual Networks," arXiv: 1605.07146, 2016.
L. Xie, J. Wang, W. Lin, B. Zhang, and Q. Tian, "Towards Reversal-Invariant Image Representation," International Journal on Computer Vision, 2016.
L. Xie, J. Wang, W. Lin, B. Zhang, and Q. Tian, "Towards Reversal-Invariant Image Representation", International Journal on Computer Vision, 2016.
K. Simonyan and A. Zisserman, "Very Deep Convolutional Networks for Large-Scale Image Recognition," International Conference on Learning Representations, 2014.
K. He, X. Zhang, S. Ren, and J. Sun, "Deep Residual Learning for Image Recognition,"Computer Vision and Pattern Recognition, 2016.
G. Huang, Z. Liu, and K. Weinberger, "Densely Connected Convolutional Networks," arXiv: 1608.06993, 2016.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.