An on-chip learning and multi-class Support Vector Machine processor has been designed and implemented for pattern recognition application. Support Vector Machine has been known as the best accurate classification algorithm in a general application. However, there exist few hardware implementations due to its high computational costs. In order to implement hardware with capabilities of on-chip learning and multi-category, the multi-class learning algorithm and appropriate hardware architecture are proposed. The proposed low-cost multi-category learning algorithm based on a decision tree reduces the execution time for both of learning and classification phases; in addition, its memory cost is also reduced. The proposed hardware architecture adopts 20-way SIMD processor with Kernel-Support Vector cache for low-power and low-latency kernel operation, and the proposed memory control system reduces the memory requirement for multi Support Vector Machine. As a result, the implemented chip achieves 180 M vectors per second processing performance while consuming only 106 mW for the entire system. The evaluation board has been developed for the further demonstration of pattern recognition application.
패턴 인식은 인간의 학습 능력과 추론 능력을 인공적으로 모델링 하여 컴퓨터로 외부 대상을 지각하고 이해하려는 능력 등을 구현하고자 하는 기술이다. 최근 지능 시스템에 대한 관심이 커져가면서, 패턴 인식에 대한 관심도 날로 커지고 있다. 이러한 패턴 인식 과정 중, 분류(Classification)는 분류기의 선택 및 학습 등 가장 복잡한 연산을 필요로 하는 단계로써, 본 연구에서는 이 분류에 초점을 맞추어 패턴 인식기를 설계하였다. 여러 가지의 분류 방법이 소개되고 있으나, 그 중 Support Vector Machine은 일반화 능력이 가장 뛰어난 분류기로 알려져 있다. 하지만 연산 및 메모리 요구량이 높아 현재까지 모바일 등의 기기에서는 많이 사용되고 있지 않다. 이러한 높은 성능의 분류기를 실생활에서 효과적으로 사용되기 위해서는 SoC 솔루션이 필요한 상황이다. 따라서 본 연구에서는 이러한 Support Vector Machine을 효과적으로 구현하는 하드웨어를 제안하고 설계하였다.
Support Vector Machine은 이진 분류기이므로, 일반적인 응용 사례에서 사용되기 위해서는 여러 개의 클래스로 분류할 수 있는 다중 분류기로의 확장이 필요하다. 이진 분류기를 활용하여 구현할 수 있는 다중 분류기는 일반적으로 크게 3가지 방법으로 나눌 수 있으며, 이 때, 본 연구에서는 3가지 방법을 비교하여 속도 성능이 가장 우수한 결정 트리 구조를 채택하여 활용하였다. 이 때, 결정 트리로 Support Vector Machine을 구현할 때, 나타나는 구조적인 어려움을 해결하기 위하여 새로운 다중 분류 학습 방법을 제안하였다. 이 학습 방법에서는 결정 트리의 분기점을 학습해가면서, 해당 분기점에 해당하는 모든 훈련 집합을 학습하는 것이 아니라 그 중 일부 집합에 대해서만 학습을 하면서 동등한 성능을 가질 수 있도록 제안되었다. 이러한 학습 방법은 Support Vector Machine의 학습이 훈련 집합 개수의 제곱에 비례하는 높은 복잡도를 가지는 것에 착안하여, 학습 대상인 훈련 집합의 개수를 효과적으로 감소시키므로 결과적으로 학습 속도를 향상 시켰다.
또한, 이를 하드웨어로 구현함에 있어 Support Vector Machine의 동작 원리를 분석하고 해당 분류기에서 많이 사용되는 연산에 적합한 구조를 채택 설계하였다. Support Vector Machine의 핵심 연산을 가속하기 위하여 커널 연산 Cache가 포함된 SIMD 프로세서를 설계하고 제안하였으며, 결과적으로 초당 180 메가벡터를 계산할 수 있는 성능을 갖추어 일반적인 응용 사례에서 무리 없이 ms 단위로 분류할 수 있는 성능을 갖추었다. 또한 이러한 SIMD processor는 Network-on-Chip 구조로 설계되어 있으므로, 연구실에서 기존에 개발된 Network-on-Chip 기반의 칩들과 연동하여 동작할 수 있다.
이러한 기능을 갖춘 칩을 FPGA와 SRAM이 동일한 Network-on-Chip 통신규약으로 집적된 개발 보드와 함께 집적하였다. 개발 보드를 통하여 칩의 동작을 검증하였으며 이를 통해 최종적으로 다양한 응용 사례에 대한 패턴 인식 기능을 수행할 수 있는 하드웨어 플랫폼을 제안하였다.