기계학습 및 분류를 위한 SVM 엔진의 FPGA 구현
FPGA Implementation of SVM Engine for Training and Classification
- 한국전기전자학회
- Journal of IKEEE
- Vol.20 No.4
-
2016.01398 - 411 (14 pages)
- 0
기계학습 방법의 하나인 SVM은 뛰어난 일반화 성능으로 영상처리 분야에서 많이 사용하고 있다. 하지만 SVM을 이용한 시스템에서 미리 학습된 데이터가 아닌 다른 데이터를 이용하려하면 새로 학습을 시켜야 하는 경우가 생긴다. 특히, 임베디드 환경에서는 이러한 상황에서 학습 시간이 오래 걸려 SVM을 적절히 이용하지 못하는 경우가 있다. 본 논문에서는 이러한 문제점을 해결하기 위하여 SVM의 학습 및 분류를 모두 수행할 수 있도록 하나의 FPGA로 구현하였다. SVM 연산의 복잡성으로 인해 생기는 반복연산을 병렬처리를 통하여 해결하고 커널 사용으로 생기는 지수 연산을 변형하여 고정 소수점 연산이 가능하도록 하였다. 제안하는 하드웨어는 Xilinx사의 ZC 706보드에 구현하였고, 구현한 FPGA의 검증을 위하여 TSR 알고리즘을 이용하였다. 구현한 하드웨어는 100 MHz의 주파수로 동작하며, 2천개의 데이터를 이용한 학습 시 약 5sec가 소요되고 $1360{\times}800$ 해상도에서 분류 시 약 16.54msec가 소요됨을 확인했다.
SVM, a machine learning method, is widely used in image processing for it's excellent generalization performance. However, to add other data to the pre-trained data of the system, we need to train the entire system again. This procedure takes a lot of time, especially in embedded environment, and results in low performance of SVM. In this paper, we implemented an SVM trainer and classifier in an FPGA to solve this problem. We parlallelized the repeated operations inside SVM and modified the exponential operations of the kernel function to perform fixed point modelling. We implemented the proposed hardware on Xilinx ZC 706 evaluation board and used TSR algorithm to verify the FPGA result. It takes about 5 seconds for the proposed hardware to train 2,000 data samples and 16.54ms for classification for $1360{\times}800$ resolution in 100MHz frequency, respectively.
(0)
(0)