머신러닝(machine learning)이란 인공지능(artificial intelligence)의 세부 하위 집합이다. 인공지능은 가장 포괄적인 개념이며 인공지능을 구현하는 대표적인 방법의 하나가 머신러닝이다. 또 딥러닝(deep learning)은 머신러닝을 구현하는 하나의 방법으로 인공신경망(artifical neural network)의 한 종류이다. 유전 알고리즘(genetic algorithm)은 유전학에 바탕을 두고 있으며, 다윈(C. R. Darwin)의 자연 선택 이론을 기본으로 하고 있다. 생물학전 유전학의 과정을 문제를 해결하는 과정에 적용하는 방법으로, 문제에 대한 가능한 해를 나열하여 유전학적 우성을 활용하는 방식으로 해를 찾아가는 알고리즘이다. 그리고 머신러닝은 주어진 데이터와 해답을 기반으로 일정한 규칙을 찾는 과정이다. 일반적으로 머신러닝을 수행하기 위해서는 딥러닝 모델에 대한 사전 지식과 경험이 필요하고, 데이터를 연산하기 위해 고성능 하드웨어와 많은 시간이 필요하게 된다. 이러한 이유로 머신러닝은 임베디드 프로세서에서 실행하기에는 많은 제약이 있다.
본 논문에서는 이러한 문제를 해결하기 위해 머신러닝의 과정 중 콘볼루션 연산(Convolution operation)에 유전 알고리즘을 적용하여 선택적 콘볼루션 연산(Selective convolution operation)과 학습 방법을 제안한다. 선택적 콘볼루션 연산에서는 유전 알고리즘에 의해 추출된 픽셀에 대해서만 콘볼루션을 수행하는 방식이다. 이 방식은 유전 알고리즘에서 지정한 비율만큼 픽셀을 선택하여 연산하는 방식으로 연산량을 지정된 비율만큼 줄일 수 있다. 본 논문에서는 유전 알고리즘을 적용한 머신러닝 연산의 심화학습을 진행하여 해당 세대의 적합도가 목표치에 도달하는지 확인하고 기존 방식의 연산량과 비교한다. 적합도가 충분히 수렴할 수 있도록 세대를 반복하여 학습하고, 적합도가 높은 모델을 유전 알고리즘의 교배와 돌연변이를 통해 다음 세대의 연산에 활용한다.
제안한 알고리즘의 성능을 평가하고 검증하기 위해, 본 논문에서는 ARM 기반의 Cortex M 시리즈의 임베디드 프로세서를 사용하였다. 제한된 자원만을 사용할 수 있는 임베디드 프로세서에서 머신러닝을 수행하기 위해 데이터 셋은 픽셀당 1 바이트를 사용하는 그레이 스케일(Gray scale) 이미지를 사용하였다.
실험결과, 유전 알고리즘 이용한 선택적 콘볼루션 연산 방법은 기존의 머신러닝 연산 방법에 비해 연산시간을 0.42%~3.42% 정도 줄일 수 있음을 확인하였다. 또한 일반적으로 사용되는 재학습 방법에 비해 콘볼루션 연산에 유전 알고리즘을 선택적으로 사용하는 것이 더 적은 연산량을 가지면서도 정확도는 기존 방법과 유사하게 유지되는 것을 입증하였다.
따라서 본 연구에서 제안한 유전자 알고리즘 기반 콘볼루션 연산은 임베디드 프로세서와 같은 제한된 연산환경에서 머신러닝을 효과적으로 적용할 수 있을 것으로 기대된다.