Vol.7, No.11, November (2017), pp. 71-79 http://dx.doi.org/10.14257/ajmahs.2017.11.59 이기종컴퓨팅을활용한환율예측뉴럴네트워크구현 한성현 1), 이광엽 2) Implementation of Exchange Rate Forecasting Neural Network Using Heterogeneous Computing Seong Hyeon Han 1), Kwang Yeob Lee 2) 요약 본논문에서는이기종컴퓨팅을활용한환율예측뉴럴네트워크를구현했다. 환율예측에는많은양의데이터가필요하다. 그에따라이러한데이터를활용할수있는뉴럴네트워크를사용했다. 뉴럴네트워크는크게학습과검증의두과정을거친다. 학습은 CPU 를활용했다. 검증에는 Verilog HDL 로작성된 RTL 을 FPGA 에서동작시켰다. 해당뉴럴네트워크의구조는입력뉴런네개, 히든뉴런네개, 출력뉴런한개를가진다. 입력뉴런에는미국 1 달러, 일본 100 엔, EU 1 유로, 영국 1 파운드의원화가치를사용했다. 입력뉴런들을통해캐나다 1 달러의원화가치를예측했다. 환율을예측하는순서는입력, 정규화, 고정소수점변환, 뉴럴네트워크순방향, 부동소수점변환, 역정규화, 출력과정을거친다. 2016 년 11 월의환율을예측한결과 0.9 원에서 9.13 원사이의오차금액이발생했다. 환율이외의다른데이터를추가해뉴런의개수를늘린다면더정확한환율예측이가능할것으로예상된다. 핵심어 : 뉴런, 뉴럴네트워크, 환율, 이기종컴퓨팅, FPGA Abstract In this paper, we implemented the exchange rate forecasting neural network using heterogeneous computing. Exchange rate forecasting requires a large amount of data. We used a neural network that could leverage this data accordingly. Neural networks are largely divided into two processes: learning and verification. Learning took advantage of the CPU. For verification, RTL written in Verilog HDL was run on FPGA. The structure of the neural network has four input neurons, four hidden neurons, and one output neuron. The input neurons used the US $ 1, Japanese 100 Yen, EU 1 Euro, and UK 1. The input neurons predicted a Canadian dollar value of $ 1. The order of predicting the exchange rate is input, normalization, fixed-point conversion, neural network forward, floating-point conversion, denormalization, and Received (September 5, 2017), Review Result (September 19, 2017) Accepted (September 26, 2017), Published (November 30, 2017) 1 02713 Dept. of Computer Engineering, SeoKyeong Univ., Jeongneung-dong, Seongbuk-gu, Seoul, Korea email : cromcruach@skuniv.ac.kr 2 (Corresponding Author)Dept. of Computer Engineering, SeoKyeong Univ., Jeongneung-dong, Seongbuk-gu, Seoul, Korea email: kylee@skuniv.ac.kr * This work was supported by Institute for Information & communications Technology Promotion(IITP) grant funded by the Korea government(msip). (No. 2016-0-00204, Development of mobile GPU hardware for photo-realistic realtime virtual reality) and was supported by Seokyeong University in 2017. Copyright c 2017 HSST 71
Implementation of Exchange Rate Forecasting Neural Network Using Heterogeneous Computing outputting. As a result of forecasting the exchange rate in November 2016, there was an error amount between 0.9 won and 9.13 won. If we increase the number of neurons by adding data other than the exchange rate, it is expected that more precise exchange rate prediction will be possible. Keywords : Neuron, Neural Network, Exchange rate, Heterogeneous Computing, FPGA 1. 서론 본논문에서는이기종컴퓨팅을활용해환율예측뉴럴네트워크를구현했다. 환율예측에는많은데이터가필요하다. 그러한데이터를다룰수있는딥러닝기술인뉴럴네트워크를사용한다면환율예측에도움이될수있다. 뉴럴네트워크는뉴런의집합이며, 뉴런은입력과출력을가진다. 뉴런의입력은가중치와곱해진뒤활성화함수를거쳐출력값을결정한다 [1]. 활성화함수는 sigmoid, hyperbolic tangent, ReLU(Rectified Linear Unit) 등이있다. [ 그림 1] 은뉴런의구조를보여준다. [ 그림 1] 뉴런의구조 [Fig. 1] Architecture of neuron 이러한뉴런들이모여구성하는뉴럴네트워크는 forward pass와 backward pass로동작한다. forward pass는 inferencing 를하는과정을수행하며, backward pass는가중치를조정하는 training 을하는과정이라고할수있다 [2]. [ 그림 2] 은뉴럴네트워크의동작을설명한다. [ 그림 2] 뉴럴네트워크의동작 [Fig. 2] Process of neural network 뉴럴네트워크의규모가커지면많은일을할수있지만그에따라연산량이증대한다. 증가하 72 Copyright c 2017 HSST
Vol.7, No.11, November (2017) 는연산량을감당하기위해서이기종컴퓨팅등을사용한다. 이기종컴퓨팅은 CPU, GPU 등의이 기종코어를같이사용해연산처리능력을올리는기술이다. 이기종컴퓨팅은보통 GPU 를범용 목적으로사용하는 GP-GPU(General Purpose GPU) 를많이사용하지만본논문에서는 GPU 의역 할을 FPGA(Field Programmable Gate Array) 에서활용하도록한다 [3]. 2. 환율예측을위한뉴럴네트워크 2.1 뉴럴네트워크의구조및학습 뉴런의동작은입력 ( 각외화의원화가치 ) 와가중치를곱한후활성화함수를거쳐출력을결정한다. 해당뉴런의활성화함수는 ReLU(Rectified Linear Unit) 을사용했다 [4]. ReLU 함수는뉴런의출력값이음수일경우 0으로출력하고, 아니라면원래의값을출력한다. ReLU 함수를사용하는이유는연산이단순하고 backward pass를수행할때 back propagation 에서 gradient descent 를사용하는데미분을수행하는데기존의활성화함수인 sigmoid, hyperbolic tangent 에비해미분이단순하기때문에사용한다. [ 그림 3] 는활성화함수들의예를보여준다 [5]. [ 그림 3] 활성화함수의예 [Fig. 3] Example of Activation Function 환율예측을위한뉴럴네트워크는미국 1달러의원화가치, 일본 100엔의원화가치, EU 1유로의원화가치, 영국 1파운드의원화가치를입력으로사용하고캐나다 1달러의원화가치를예측한다. 환율네개의입력뉴런과네개의은닉뉴런, 마지막으로한개의출력뉴런을사용해뉴럴네트워크를구성한다. 같은층에있는뉴런들을묶어레이어라고한다. [ 그림 4] 은환율예측에서사용되는뉴럴네트워크의구조를보여준다. Copyright c 2017 HSST 73
Implementation of Exchange Rate Forecasting Neural Network Using Heterogeneous Computing [ 그림 4] 환율예측을위한뉴럴네트워크구조 [Fig. 4] Neural network structure for forecasting exchange rate 환율예측을위한뉴럴네트워크의학습은 2010년부터 2016년까지의휴일을제외한환율데이터 16,912개를사용했다. Intel i7-4470 CPU를사용해서학습을진행했다. 이렇게학습시킨가중치를이기종컴퓨팅을활용한환율예측시스템에서사용했다 [6]. 2.2 이기종컴퓨팅을활용한환율예측시스템 이기종컴퓨팅시스템을구축하기위해 [ 그림 5], [ 표 1] 과같은 Altera 의 DE1-SoC Board를사용했다 [7]. DE1-SoC Board는 HPS(High Processing Systrem) 영역과 FPGA 영역을가진다. HPS 영역은 Cortex-A9 Dual Core가탑재되어있고 FPGA에환율예측뉴럴네트워크를설계해넣었다 [8]. HPS는다른이기종컴퓨팅시스템에서 CPU 역할을하고 FPGA 영역은 GPU 역할을수행한다. [ 그림 5] DE1-SoC Board [Fig. 5] DE1-SoC Board 74 Copyright c 2017 HSST
[ 표 1] DE1-SoC 성능 [Table. 1] Specification of DE1-SoC Vol.7, No.11, November (2017) Processor FPGA HPS SDRAM FPGA SDRAM ARM Cortex-A9 Dual Core Cyclone V SoC 5CSEMA5F31C6N Operating Frequency 1GB DDR3 64MB SDRAM 50 Mhz [ 그림 6] 에서 HPS 영역에서 FPGA 영역으로네개의환율데이터를보내줄때 AXI Bridge 를 사용했으며 Input 0 는미국 1 달러의원화가치, Input 1 은일본 100 엔의원화가치, Input 2 는 EU 1 유로의원화가치, Input 3 은영국 1 파운드의원화가치에해당한다. Output0 는캐나다 1 달러의 원화가치이며, 뉴럴네트워크의동작은 Enable 신호에따라전개된다. [ 그림 6] 이기종컴퓨팅을활용한환율예측시스템의버스아키텍처 [Fig. 6] Bus architecture of exchange rate forecasting system using heterogeneous computing HPS 와 FPGA 은다음 [ 그림 7] 의순서도를수행한다. [ 그림 7] 환율예측시스템의순서도 [Fig. 7] Flow chart of neural network based exchange rate forecasting Copyright c 2017 HSST 75
Implementation of Exchange Rate Forecasting Neural Network Using Heterogeneous Computing 환율예측은입력, 정규화, 고정소수점변환, neural network forward pass, 부동소수점변환, 역정규화, 출력의일곱단계로이루어진다. 첫번째단계인입력단계에서는 HPS 에서수행되며, 총네개의입력을입력받는다. 1 달러, 100 엔, 1 유로, 1 파운드의원화가치를입력을받는다. 이데이터는 32bit 부동소수점데이터로입력 을받는다. 두번째단계인정규화단계는입력받은네개의 32bit 부동소수점데이터를 0 에서 1 사이의 값으로변환한다. 정규화를하는이유는뉴럴네트워크에서사용되는데이터는 0 에서 1 사이의값 을사용하기때문이다. 정규화는 [ 수식 1] 과같은수식을사용하며, 해당수식의 MIN, MAX 는학 습데이터셋의최대값과최소값을의미한다.[9] (1) 세번째단계인고정소수점변환단계는 32 bit 부동소수점데이터를 32 bit 고정소수점으로변환한다. 32 bit 고정소수점변환은 [ 수식 2] 와같이32 bit 부동소수점데이터에 231를곱해변환한다. 고정소수점변환을사용하는이유는부동소수점연산에비해처리속도가빠르기때문에사용한다. (2) 네번째단계인 neural network forward pass는 FPGA 영역에서동작하며 AXI Bridge 를통해데이터를받는다. 데이터를보낸후 HPS 영역에서 Enable 신호를보낸다. Enable 신호를받기전까지 FPGA는 Idle 상태를유지하며동작을하지않는다. 네개의 Data와 Enable 신호를받은 FPGA는 Mul-Sum 단계로넘어간다. Mul-Sum 단계에서네개의각입력과네개의 local parameter 로저장해둔가중치와곱한다. 그후 Act 단계로넘어가활성화함수를거친다. 활성화함수는 ReLU 함수를사용했다. ReLU 함수는최상위비트인부호비트를확인한후음수이면 0 값을 Output 에보내고양수이면그냥내보낸다. Output 은 HPS로보낼수있게 GPIO(General Purpose Input / Output) 로연결되어있다. Output 값을보내며 DONE 신호를보내서연산이끝났다고알린다. 세개의 Positive Edge 안에연산이되기때문에동작주파수가 50 Mhz로가정했을때 60 ns에연산이완료된다. [ 그림 8] 은 neural network 의 forward pass를각단계별로보여준다. 76 Copyright c 2017 HSST
Vol.7, No.11, November (2017) [ 그림 8] 뉴럴네트워크의 forward pass [Fig. 8] Neural betwork forward pass 다섯번째단계는부동소수점변환단계이며, neural network forward pass에서처리한데이터를가져와부동소수점으로변환한다. 고정소수점변환과반대로 231를나눠준다. [ 수식 3] 이고정소수점변환수식을보여준다.[10] (3) 여섯번째단계인역정규화단계이다. 역정규화단계는다음과같은 [ 수식 4] 를사용하게된다. 세번째단계인정규화단계의역변환단계이다. (4) 일곱번째단계는출력단계로출력값을 7 Segment LED 와터미널에출력을해준다. 일련의과정을데이터플로우로표현하면다음과같은 [ 그림 9] 로표현할수있다. Copyright c 2017 HSST 77
Implementation of Exchange Rate Forecasting Neural Network Using Heterogeneous Computing 2.3 실험결과 [ 그림 9] 환율예측시스템의데이터플로우 [Fig. 9] Data flow of exchange rate forecasting 2016 년 11 월두째주의 1 달러, 100 엔, 1 유로, 1 파운드의원화가치를통해캐나다 1 달러의 예측을해보았다. 실험결과는 [ 표 2] 와같다. 오차금액은 0.9 원에서최대 9.13 원까지차이가나 는것을확인할수있었다. [ 표 2] 실험결과 [Table. 2] Result of experiment 입 력 출 력 날 짜 미국일본 EU 영국캐나다 1달러 100엔 1유로 1파운드 1달러 출력값 오차금액 2016/11/07 1.143.40 1,099.58 1,267.80 1,426.16 856.22 857.67 1.45 2016/11/08 1,141.60 1,091.97 1,261.07 1,415.18 853.66 852.76 0.90 2016/11/09 1,137.50 1,081.48 1,251.88 1,406.92 855.84 846.71 9.13 2016/11/10 1,145.80 1,083.45 1,250.81 1,422.51 853.86 849.43 4.43 2016/11/11 1,151.00 1,077.11 1,253.09 1,443.87 854.55 851.50 3.05 78 Copyright c 2017 HSST
Vol.7, No.11, November (2017) 3. 결론 본논문에서는이기종컴퓨팅을활용한환율예측시스템을구현했다. 미국 1달러, 일본 100엔, EU 1유로, 영국 1파운드를이용해캐나다 1달러를예측했다. 오차금액은 0.9원에서 9.13원까지차이나는것을확인할수있었다. 뉴럴네트워크의구조를확장시킨다면오차금액이줄어들것으로예상된다. References [1] D. E. Rumelhart and J. Mccelland, Parallel Distrubuted Processing : Exploration in the Microstructure of Cognition, MIT Press(1986) [2] Marvin Lee Minsky, Perceptrons: an introduction to computational geometry, MIT Press(1988) [3] http://www.hsafoundation.com/ [4] Alex Krizhevsky, Ilya Sutskever, Geoffry E. Hinton, ImageNet classification with deep convolutional neural networks, NIPS'12 Proceedings of the 25th International Conference on Neural, (2012), December 03-06, Nevada, USA [5] https://en.wikipedia.org/wiki/activation_function [6] https://kr.investing.com [7] https://www.altera.com [8] https://www.arm.com [9] http://cs231n.github.io/ [10] http://infocenter.arm.com/help/topic/com.arm.doc.dui0204ik/cihffgjg.html Copyright c 2017 HSST 79