일반적으로 신경망은 비선형성 문제를 해결하기 위해서 소프트웨어로 많이 구현되었지만, 영상처리 및 패턴인식과 같은 실시간 처리가 요구되는 응용에서는 빠른 처리가 가능한 하드웨어로 구현되고 있다. 다양한 종류의 신경망 중에서 다층 신경망(MLP: multi-layer perceptron)의 하드웨어 설계는 빠른 처리속도와 적은 면적 그리고 구현의 용이성으로 고정소수점 연산을 많이 사용하였다. 하지만 고정소수점 연산을 사용하는 하드웨어 설계는 높은 정확도의 부동소수점 연산을 많이 사용하는 소프트웨어 MLP를 쉽게 적용할 수 없는 문제점을 가진다. 본 논문에서는 높은 정확도와 높은 유연성을 가지는 부동소수점 연산을 사용하면서도 은닉층 뉴런수를 주기(cycle)로 빠르게 수행하는 MLP의 완전 파이프라이닝(fully-pipelining) 설계방법을 제안한다. MLP는 주어진 문제에 의해서 자연스럽게 입력층과 출력층의 구조가 결정되지만, 은닉층 구조는 사용자에 의해서 결정된다. 그러므로 제안된 설계방법은 많은 반복수행이 요구되는 영상처리 및 패턴인식 등의 분야에서 은닉층 뉴런수를 최적화 하여 쉽게 성능 향상을 이룰 수 있다.
일반적으로 신경망은 비선형성 문제를 해결하기 위해서 소프트웨어로 많이 구현되었지만, 영상처리 및 패턴인식과 같은 실시간 처리가 요구되는 응용에서는 빠른 처리가 가능한 하드웨어로 구현되고 있다. 다양한 종류의 신경망 중에서 다층 신경망(MLP: multi-layer perceptron)의 하드웨어 설계는 빠른 처리속도와 적은 면적 그리고 구현의 용이성으로 고정소수점 연산을 많이 사용하였다. 하지만 고정소수점 연산을 사용하는 하드웨어 설계는 높은 정확도의 부동소수점 연산을 많이 사용하는 소프트웨어 MLP를 쉽게 적용할 수 없는 문제점을 가진다. 본 논문에서는 높은 정확도와 높은 유연성을 가지는 부동소수점 연산을 사용하면서도 은닉층 뉴런수를 주기(cycle)로 빠르게 수행하는 MLP의 완전 파이프라이닝(fully-pipelining) 설계방법을 제안한다. MLP는 주어진 문제에 의해서 자연스럽게 입력층과 출력층의 구조가 결정되지만, 은닉층 구조는 사용자에 의해서 결정된다. 그러므로 제안된 설계방법은 많은 반복수행이 요구되는 영상처리 및 패턴인식 등의 분야에서 은닉층 뉴런수를 최적화 하여 쉽게 성능 향상을 이룰 수 있다.
Neural Networks(NNs) are applied for solving a wide variety of nonlinear problems in several areas, such as image processing, pattern recognition etc. Although NN can be simulated by using software, many potential NN applications required real-time processing. Thus they need to be implemented as har...
Neural Networks(NNs) are applied for solving a wide variety of nonlinear problems in several areas, such as image processing, pattern recognition etc. Although NN can be simulated by using software, many potential NN applications required real-time processing. Thus they need to be implemented as hardware. The hardware implementation of multi-layer perceptrons(MLPs) in several kind of NNs usually uses a fixed-point arithmetic due to a simple logic operation and a shorter processing time compared to the floating-point arithmetic. However, the fixed-point arithmetic-based MLP has a drawback which is not able to apply the MLP software that use floating-point arithmetic. We propose a design method for MLPs which has the floating-point arithmetic-based fully-pipelining architecture. It has a processing speed that is proportional to the number of the hidden nodes. The number of input and output nodes of MLPs are generally constrained by given problems, but the number of hidden nodes can be optimized by user experiences. Thus our design method is using optimized number of hidden nodes in order to improve the processing speed, especially in field of a repeated processing such as image processing, pattern recognition, etc.
Neural Networks(NNs) are applied for solving a wide variety of nonlinear problems in several areas, such as image processing, pattern recognition etc. Although NN can be simulated by using software, many potential NN applications required real-time processing. Thus they need to be implemented as hardware. The hardware implementation of multi-layer perceptrons(MLPs) in several kind of NNs usually uses a fixed-point arithmetic due to a simple logic operation and a shorter processing time compared to the floating-point arithmetic. However, the fixed-point arithmetic-based MLP has a drawback which is not able to apply the MLP software that use floating-point arithmetic. We propose a design method for MLPs which has the floating-point arithmetic-based fully-pipelining architecture. It has a processing speed that is proportional to the number of the hidden nodes. The number of input and output nodes of MLPs are generally constrained by given problems, but the number of hidden nodes can be optimized by user experiences. Thus our design method is using optimized number of hidden nodes in order to improve the processing speed, especially in field of a repeated processing such as image processing, pattern recognition, etc.
* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.
문제 정의
본 논문에서는 높은 정확도를 가지는 부동소수점 연산을 사용하면서도 빠른 처리속도(은닉층 뉴런수의 주기로 MLP 처리)를 가지는 MLP5] 완전 파이프라이닝 (fully-pipelining) 설계방법을 제안한다. 제안된 완전 파이프라이닝 설계방법은 어떤 2계층 MLP라도 파이프라이닝 기술2)명령어를 실 행하는 과정을 여러 단계로 나누어 여러 명령어를 동시에 실행함으로써 처리속도를 빠르게 하는 기술을 적용하여 은 닉층의 뉴런수와 같은 빠른 처리 주기로써 한번의 수행이 완료되며, 은닉층 뉴런수의 주기로 처리되기 위해서 링크 병렬화 및 뉴런 병렬화의 방법으로 설계한다.
본 논문에서는 높은 정확도와 높은 유연성을 가지면서도 은닉층의 뉴런수의 주기로 빠른 처리가 가능한 MLP의 완전 파이프라이닝 설계 방법을 제안하였다. 기존의 부동소수점 연산을 사용하는 하드웨어 MLP는 느린 처리 속도로 인해서 실시간 처리를 요구하는 분야에서 사용하기 어려웠다, 하지만 MLP의 완전 파이프라이닝 설계 방법은 소프트웨어에서 사용하는 32비트의 부동소수점 연산을 그대로 사용함으로써 높은 유연성과 높은 정확도를 가지며, 개선된 뉴런병렬화와 링크병렬화 기법으로써 쉽게 완전 파이프라이닝 구조로 구현할 수 있는 장점을 가진다.
제안 방법
이때 완전연 결 다층 신경망(fully-connected MLP)의 입력층과 출력층의 뉴런 수는 주어진 문제의 부호화(encoding) 방식에 의해서 자연스럽게 결정되지만, 은닉층의 뉴런수는 숙련된 사용자의 경험과, 반복적인 실험을 통해서 결정한다. 그러므로, 새로운 문제를 해결하기 위한 MLP의 설계시, 제안된 설계방법은 은닉층 뉴런수를 최적화 함으로써 높은 처리속도를 반 영한다. 구현결과로써 제안한 완전 파이프라이닝 구조는 기존의 8비트 고정소수점 연산을 사용하는 하드웨어 설계 [3] 보다 약 3배 빠른 성능을 가지며, 소프트웨어 문자 추출 MLP를 데이터 변환 없이 하드웨어에 적용하여 비교하였을 때 처리속도는 약 11배의 빠른 성능을 가진다.
두 번째 평가방법은 문자추출에 사용된 소프트웨어 MLP를 드웨어 구현에 적용한 결과로써, 많은 반복 처리로 수행되는 패턴인식 및 영상처리에 얼마나 효율적으로 수행되는가 를 분석하였다. 사용된 MLP는 2계층으로써, 41개의 입력, 32개의 은닉층 뉴런 그리고 2개의 출력층 뉴런을 가진다.
본 논문에서 제안된 설계방법을 평가하기 위해서 2가지 방법을 사용하였다. 첫 번째는 기존의 8비트 고정소수점 연 산을 사용하는 설계방법과 비교하였으며, 두 번째는 소프트 웨어에서 사용되는 MLP를 하드웨어에 적용하여 비교하였다.
PWL방식은 비선형으로 이루어진 함수를 여러 개의 선형 함수로 처리하는 방식으로써 덧셈연 산과 곱셈연산만으로 비선형 함수를 처리할 수 있다. 본 논문에서는 간단한 구현을 위해서 3 segment PWL (%(x) = l, 方(*) = (〃2 + x/4), /, « = 0) 방식으로 시그모이드 함수를 구 현하였으며, 파이프라이닝 구조의 덧셈연산과 곱셈연산을 사용함으로써 시그모이드 함수 역시 파이프라이닝 구조로 수행한다.
본 장에서는 제안된 MLP의 완전 파이프라이닝 설계방법에 사용된 구조 및 연산자의 특성 그리고 완전 파이프라이 닝 설계를 위한 병렬화 기법을 기술한다.
고정소수점 연산은 입력과 동시에 결과를 출력하는 조합회로(combinational circuit)로써 순차 적으로 입력되는 곱셈의 결과와 덧셈의 결과를다시 입력으 로 하여 뉴런 병렬화 구조를 쉽게 구현할 수 있었지만, 부 동소수점 연산은 입력과 결과를 출력하기 위해서 많은 처리 단계를 가지는 순차회로(sequential circuit)로써 기존의 고정 수서점에서 사용된 방법으로 구현되기 어렵다. 제안된 뉴런 병렬화 구조는 부동소수점 연산을 사용하면서도 쉽게 완전 파이프라이닝으로 설계할 수 있는 방법이다. (그림 8)은 하나의 출력층 뉴런을 위한 뉴런 병렬화 구조를 링크 병렬화 구 조와 비교하여 설명한다.
제안된 완전 파이프라이닝 설계는 입력층과 출력층의 규 모에 관계없이 은닉층의 뉴런수 주기만으로 MLP가 수행되는 구조이다. 전체 구조는 은닉층의 링크 병렬화와 출력층의 뉴런 병렬화 구조로써, 완전 파이프라이닝 구조로 구현이 용이하다(그림 2).
본 논문에서는 높은 정확도를 가지는 부동소수점 연산을 사용하면서도 빠른 처리속도(은닉층 뉴런수의 주기로 MLP 처리)를 가지는 MLP5] 완전 파이프라이닝 (fully-pipelining) 설계방법을 제안한다. 제안된 완전 파이프라이닝 설계방법은 어떤 2계층 MLP라도 파이프라이닝 기술2)명령어를 실 행하는 과정을 여러 단계로 나누어 여러 명령어를 동시에 실행함으로써 처리속도를 빠르게 하는 기술을 적용하여 은 닉층의 뉴런수와 같은 빠른 처리 주기로써 한번의 수행이 완료되며, 은닉층 뉴런수의 주기로 처리되기 위해서 링크 병렬화 및 뉴런 병렬화의 방법으로 설계한다. 이때 완전연 결 다층 신경망(fully-connected MLP)의 입력층과 출력층의 뉴런 수는 주어진 문제의 부호화(encoding) 방식에 의해서 자연스럽게 결정되지만, 은닉층의 뉴런수는 숙련된 사용자의 경험과, 반복적인 실험을 통해서 결정한다.
본 논문에서 제안된 설계방법을 평가하기 위해서 2가지 방법을 사용하였다. 첫 번째는 기존의 8비트 고정소수점 연 산을 사용하는 설계방법과 비교하였으며, 두 번째는 소프트 웨어에서 사용되는 MLP를 하드웨어에 적용하여 비교하였다. 첫 번째 평가방법은 제안된 설계방법과 Xiaobin의 설계방법을 동일한 MLP인 입력층 16개의 뉴런, 은닉층 8개의 뉴 런, 그리고 4개의 출력층 뉴런을 가지고 성능을 비교하였다.
다음은 입력층의 뉴런 수에 따른 덧셈층의 설계방법을 2개의 예를 들어 기술한다. 첫 번째는 입력층 뉴런수가 15개 그리고 바이어스의 값을 포함하여 총 16개 일 때, 4개의 층 (즉, 4 = [iog「6])으로 설계된다(그림 6), 두 번째는 입력층 뉴 런수가 16개와 바이어스의 값을 포함하여 총 17개 일 때, 5개의 층(즉, 5』紬尻으로 구성된다(그림 7).
대상 데이터
본 논문에서 제안된 설계방법을 분석하기 위해서 2개의 MLP를 사용하였다(와).
본 논문에서는 VHDL의 합성을 위해서 XiHnx ISE 7.1 를 사 용하였고, 자이링스(Xilinx)사의 XC2V8000의 FPGA Chip상에서 설계하였다.<표 1>은 완전 파이프라이닝 MLP를 구현할 때 사용된 기본 연산의 성능을 나타낸다.
두 번째 평가방법은 문자추출에 사용된 소프트웨어 MLP를 드웨어 구현에 적용한 결과로써, 많은 반복 처리로 수행되는 패턴인식 및 영상처리에 얼마나 효율적으로 수행되는가 를 분석하였다. 사용된 MLP는 2계층으로써, 41개의 입력, 32개의 은닉층 뉴런 그리고 2개의 출력층 뉴런을 가진다. <표 4>는 문자추출 MLP의 성능을 나타내며, 초기 수행은 파이프라이닝 구조의 전파지연으로 많은 시간이 소요되지만, 파이프라이닝 단계를 수행하는<표 5>에서는 은닉증 뉴런 수와 동일한 주기로 수행됨을 보여준다.
데이터처리
첫 번째는 기존의 8비트 고정소수점 연 산을 사용하는 설계방법과 비교하였으며, 두 번째는 소프트 웨어에서 사용되는 MLP를 하드웨어에 적용하여 비교하였다. 첫 번째 평가방법은 제안된 설계방법과 Xiaobin의 설계방법을 동일한 MLP인 입력층 16개의 뉴런, 은닉층 8개의 뉴 런, 그리고 4개의 출력층 뉴런을 가지고 성능을 비교하였다.
이론/모형
시그모이드 함수는 지수연산과 덧셈연산 그리고 곱셈연산 이 사용되는데 이 연산들은 많은 수행시간과 면적을 소요한다. 이 문제점을 해결하기 위해서 Piece-Wise Linear(PWL) 방식으로 구현하였다[13]. PWL방식은 비선형으로 이루어진 함수를 여러 개의 선형 함수로 처리하는 방식으로써 덧셈연 산과 곱셈연산만으로 비선형 함수를 처리할 수 있다.
성능/효과
그러므로, 새로운 문제를 해결하기 위한 MLP의 설계시, 제안된 설계방법은 은닉층 뉴런수를 최적화 함으로써 높은 처리속도를 반 영한다. 구현결과로써 제안한 완전 파이프라이닝 구조는 기존의 8비트 고정소수점 연산을 사용하는 하드웨어 설계 [3] 보다 약 3배 빠른 성능을 가지며, 소프트웨어 문자 추출 MLP를 데이터 변환 없이 하드웨어에 적용하여 비교하였을 때 처리속도는 약 11배의 빠른 성능을 가진다. 따라서 제안된 설계방법은 기존의 소프트웨어 MLP를 쉽게 적용할 수 있으며, 높은 정확도로써 반복처리에 효과적인 설계방법이다.
구현결과로써 제안한 완전 파이프라이닝 구조는 기존의 8비트 고정소수점 연산을 사용하는 하드웨어 설계 [3] 보다 약 3배 빠른 성능을 가지며, 소프트웨어 문자 추출 MLP를 데이터 변환 없이 하드웨어에 적용하여 비교하였을 때 처리속도는 약 11배의 빠른 성능을 가진다. 따라서 제안된 설계방법은 기존의 소프트웨어 MLP를 쉽게 적용할 수 있으며, 높은 정확도로써 반복처리에 효과적인 설계방법이다.
본 논문에서 제안한 설계방법은 MLP의 전체 구조에 상관없이 은닉층 뉴런수의 주기로 MLP가 처리됨으 로써, PC보다 11배의 빠른 성능을 보여준다().
완전 파이프라이닝 설계로 인해서 부동소수점 연산의 처리 속도 문제를 은닉층 뉴런 수와 같은 짧은 주기로써 해결하였다. 실험 결과에서 고정소수점 연산을 사용하는 설계 방법 보다 약 3배 정도의 빠른 처리 속도를 가지며, 쉽게 소프트웨어 MLP를 하드웨어에 적용하여 높은 성능을 보여줌으로써, 많은 반복 처리를 요구하는 기존의 영상 처리 및 패턴인식 소프트웨어 MLP를 높은 정확도와 높은 처리 속도로써 수행할 수 있다.
MLP의 설계시 입력층과 출력층은 해결하고자 하는 문제 에 따라 결정되지만, 은닉층은 사용자의 경험 및 실험을 통해서 결정된다. 제안된 설계방법의 실험결과에서처럼 은닉 층 뉴런수의 주기로 빠르게 처리됨으로써, MLP 설계시 은 닉층을 최적화 하여 설계시 보다 고성능의 MLP 하드웨어 를 설계할 수 있다.
(그림 13) (a)에서처럼Xiaobin의 8비트 고정소수점 연산인 덧셈기와 곱셈기의 수행 속도는 10(ns)로서 약 10배정도 빠 른 성능을 보임을 알 수 있다. 하지만 본 논문에서 제안된 덧셈기와 곱셈기는 32비트 부동소수점 연산을 사용하기 때문에 수행시간은 많이 걸리지만 정확도 면에서는 월등히 높 다. 하지만 이렇게 느린 수행속도를 가지는 연산기를 사용하면서도 (그림 13) (b) 에서처럼 첫 수행은 느리지만 2번째 수행부터는 약 3배 정도 빠름을 알 수 있다.
참고문헌 (13)
S. Coric, I. Latinovic and A. Pavasovic, 'A Neural Network FPGA Implementation,' In Proceedings of the 5th Seminar on Neural Network Applications in Electrical Engineering, Belgrade, pp.117-120, Sept. 2000
Nan Bu, Taiji Hamamoto, Toshio Tsuji and Osamu Fukuda, 'FPGA Implementation of a Probabilistic Neural Network for a Bioeletctric Human Interface,' In Proceedings of the 47th IEEE Midwest Symposium on Circuits and Systems, Vol.3, pp.29-32, 2004
Ossoinig, H., Reisinger, E., Steger, C., Weiss, R., 'Design and FPGA-Implementation of a Neural Network,' In Proceedings of the 7th International Conference on Signal Processing Applications & Technology, pp.939-942, 1996
Ma Xiaobin, Jm Lianwen, Shen Dongsheng, Ym junxun, 'A Mixed Parallel Neural Networks Computing Unit Implemented in FPGA,' In Proceedings of the 2003 International Conference on Neural Networks and Signal Processing Vol.1, pp.324-327, 2003
Sameh A,El Kader, M.SAA, 'Generic Floating Point Library for Neuro-Fuzzy Controllers based on FPGA Technology,' In Proceedings of the 4th IEEE International Symposium on Signal Processing and Information Technology, pp.369-372 Dec. 2004
Hikawa H, 'Pulse Mode Multilayer Neural Network based on Floating Point Number Representation,' In Proceedings of the IEEE International Symposium on Circuits and Systems, Geneva, pp.145-148, May, 2000
Wust H, Kasper K, Reininger H, 'Hybrid Number Representation for the FPGA-realization of a versatile neuro-processor,' In Proceedings of the 24th Euromicro Conference, Vol.2, pp.694-701, 1998
Keechul Jung, 'Neural Network-based Text Localization in Color Images,' Pattern Recognition Letters, Vol.22, No.14, pp.1503-1515, 2001
Keechul Jung and JungHyun Han, 'Hybrid Approach to Efficient Text Extraction in Complex Color Images,' Pattern Recognition Letters, Vol.25, No.6, pp.679-699, Apr., 2004
ANSI and IEEE, 'IEEE Standard for Binary Floating-Point Arithmetic,' ANSI/IEEE standard, 754-1985, New York, 1985
Attila Hidvegi, 'Implementation of Neural Networks in FPGA,' http:// www.sysf.physto.se/~attila/ANN.pdf, 2002
K Basterretxea, J.M Tarela and I. del Campo, 'Approximation of Sigmoid Function and the Derivative for Hardware Implementation of Artificial Neurons,' In Proceedings of the IEE Circuits, Devices and Systems, Vol.151, No.1, pp.18-24, Feb., 2004
※ AI-Helper는 부적절한 답변을 할 수 있습니다.