Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
공학석사학위 청구논문
지도 / 자율 학습이 가능한 재구성형 디지털
신경회로망 하드웨어 구현
Hardware Implementation of Supervised / Unsupervised Learning Reconfigurable Neural Network Architecture
2006 年 2 月
인하대학교 대학원
정보통신공학과
유 인 갑
공학석사학위 청구논문
지도 / 자율 학습이 가능한 재구성형 디지털
신경회로망 하드웨어 구현
Hardware Implementation of Supervised / Unsupervised Learning Reconfigurable Neural Network Architecture
2006 年 2 月
지도교수 이 종 호
이 논문을 석사학위 논문으로 제출함
인하대학교 대학원
정보통신공학과
유 인 갑
이 논문을 유인갑의 석사학위논문으로 인정함
2006 年 2 月
주심 _____________________
부심 _____________________
위원 _____________________
국문요약
신경회로망은 응용분야나 적용케이스에 따라 구조의 크기나 종류, 학습
알고리즘이 다양하다. 이런 점이 범용 신경회로망 하드웨어 구현에 제약을 준다. 본 논문에서는 이러한 문제를 해결하기 위해 지도학습과 자율학습이 가능한 재구성형 신경회로망 하드웨어 구조를 제안한다. 제안된 하드웨어 구조는 신경회로망 구성이 자유로운 기존의 모듈러 신경회로망 하드웨어 구조(ERNIE)를 기반으로 되어있으며, 핵심 연산 모듈의 내부 구조를 유연하게 변경할 수 있도록 설계함으로써 자체적으로 지도 학습과 자율 학습 알고리즘 구현이 가능하게 하였다. 제안된 하드웨어 구조를 FPGA에 구현하여, BP 알고리즘이 가능한 다층 퍼셉트론과 SOM으로 구성한 후, 문자 인식 실험과 임펄스 노이즈 검출 실험을 하였다. 그리고 같은 방법으로 Matlab으로 구현한 신경회로망으로 실험한 결과와 비교하여 그 유용성을 확인하였다.
Abstract
Artificial neural networks have various sizes, types and learning algorithms depending on their application fields and cases, which cause limitations on implementation of general-purpose neural network hardware. To solve this problem, this paper proposes a reconfigurable neural network architecture which has capability to learn by supervised or unsupervised learning algorithm. The proposed hardware architecture is based on the existing modular neural network architecture, ERNIE, which is flexible artificial neural network structure. Main processing unit of the proposed design is designed to obtain flexibility of its internal structure. Therefore it is possible to configure learning algorithms by itself. The proposed design is implemented on FPGA to configure multi-layer perceptron with back-propagation algorithm and SOM for alphabet recognition problem and impulse noise detection problem. The performance comparison with the Matlab simulation shows its value in the aspects of performance and versatility.
목 차
국문요약 I A b s t r a c t I I 목 차 I I I 그림목차 V 표 목차 V I
Ⅰ. 서 론 1.1. 신경회로망 개요 3 1.2. 신경회로망 하드웨어 5 1.3. 디지털 신경회로망 하드웨어 6
1.3.1. FPGA 를 이용한 신경회로망 구현 7
Ⅱ. 지도/자율 학습이 가능한 재구성형 디지털 신경회로망 하드웨어 구조 8
2.1. ERNIE 8 2.1.1. MPU (Modular Processing Unit) 9 2.1.2. SPE (Synapse Processing Element) 11 2.1.3. LPE (Layer Processing Element) 12
2.2. 지도/자율 학습이 가능한 재구성형 디지털 신경회로망 하드웨어 구조 13 2.2.1. pSPE (programmable SPE) 15 2.2.2. LPE (Layer Processing Element) 17
2.2.3. 마스터 컨트롤러(Master Controller) 18
Ⅲ. 학습 알고리즘 구현 20 3.1. 제안된 구조에서의 BP 알고리즘 구현 20
3.1.1. BP 알고리즘 20 3.1.2. BP 알고리즘 구현 22 3.1.3. 성능 분석 28
3.2. 제안된 구조에서의 SOM 학습 알고리즘 구현 31
3.2.1. SOM 학습 31 3.2.2. SOM 학습 알고리즘 구현 33 3.2.3. 성능 분석 37
Ⅵ. 구현 및 실험 결과 38 4.1. 하드웨어 구현 38 4.2. 문자 인식 실험 39 4.3. 임펄스 노이즈 검출 실험 41
Ⅴ. 결 론 46 Ⅵ. 부 록 47
6.1 동작모드와 데이터/컨트롤 신호 47 6.1.1. 데이터 버스 및 컨트롤 신호 47 6.1.2. 동작 모드 54
ⅥI. 참고문헌 58
그림 목차
1. 뉴런의 일반적인 구조 4 2. 디지털 신경회로망 하드웨어 분류 6 3. MPU의 블록 다이어그램 9 4. MPU의 연결을 통한 레이어의 확장 10 5. 내부 연결버스를 통한 시냅스 확장 10 6. SPE의 블록 다이어그램 11 7. LPE와 KLB의 블록 다이어그램 12 8. 제안된 구조의 블록 다이어그램 13 9. 제안된 구조에서의 레이어의 확장 14 10. 제안된 구조에서의 시냅스 확장 14 11. pSPE의 블록 다이어그램 16 12. 제안된 구조에서의 LPE의 블록 다이어그램 17 13. 마스터 컨트롤러인 MicroBlaze RTL schematic 18 14. 마스터 컨트롤러를 포함한 전체 시스템 블록 다이어그램 19 15. 제안된 구조에서의 BP 알고리즘 연산 타이밍 다이어그램 24 16. 제안된 구조에서의 BP 알고리즘 성능 (MCUPS) 29 17. SOM의 구조 31 18. 승자 뉴런을 중심으로 한 이웃반경 32 19. SOM 학습 연산의 타이밍 다이어그램 35 20. 신경회로망의 학습에 사용된 알파벳 정상 패턴과 손상된 패턴 39 21. 2차원 영역에서 지역적 정보 추출 41 22. 10% 임펄스 노이즈가 있는 Lena 영상(왼쪽, 학습 패턴)과
15% 임펄스 노이즈가 있는 Lena 영상(오른쪽, 테스트 패턴) 42 23. 정상 픽셀과 임펄스 노이즈 픽셀에 대한 승자 뉴런 분포도(Matlab 모델링) 43 24. 정상 픽셀과 임펄스 노이즈 픽셀에 대한 승자 뉴런 분포도(제안된 구조) 44 25. datain 버스의 데이터형식(1) 49 26. datain 버스의 데이터형식(2) 50 27. datain 버스의 데이터형식(3) 51
28. errsig_datain 버스의 데이터형식 52 29. calc_temp 버스의 데이터형식 53 30. passin 버스의 데이터형식 53 31. 동작 흐름도 57
표 목차
1. 폰 노이만 컴퓨터와 신경회로망의 비교 3 2. 아날로그 신경회로망과 디지털 신경회로망의 장단점 비교 5 3. BP 알고리즘 구현을 위해 수행되는 pSPE, LPE, 마스터 컨트롤러의 역할 22 4. 출력층 pSPE의 내부 블록 동작 25 5. 은닉층 pSPE의 내부 블록 동작(1) 26 6. 은닉층 pSPE의 내부 블록 동작(2) 27 7. 신경회로망 하드웨어의 BP 알고리즘 성능 비교 30 8. SOM 학습 알고리즘 구현을 위해 수행되는 pSPE, LPE, 마스터 컨트롤러의 역할 33 9. 출력층 pSPE의 내부 블록 동작 36 10. 신경회로망 하드웨어의 SOM 학습 알고리즘 성능 비교 37 11. 구현된 하드웨어 사양 38 12. 학습 종료 후 제안된 구조와 Matlab 모델링간의 오차 비교 결과 40 13. SOM 학습에 필요한 파라미터 41 14. 데이터버스 47 15. 주요 컨트롤 신호 48 16. pSPE 관련 동작 모드 컨트롤 신호 55 17. LPE 관련 동작 모드 컨트롤 신호 55 18. 전체 시스템 동작 모드 컨트롤 신호 56
1
I. 서 론
신경회로망은 인간의 신경세포를 수학적으로 모델링한 것으로서 복잡한 비선형 시스템 제어, 패턴인식 등 기존의 컴퓨터가 해결하기 어려운 응용
분야에서 많이 사용되고 있는 알고리즘이다[1]. 신경회로망은 병렬, 분산 처리를 본질적인 특징으로 가지기 때문에 기존의 디지털 컴퓨터의 소프트
웨어 시뮬레이션만으로는 한계가 있고, 그에 따라 신경회로망 전용 하드
웨어의 구현을 필요로 하게 된다. 신경회로망은 응용분야나 적용 케이스마다 사용하는 구조나 종류, 학습
알고리즘이 다양하기 때문에 신경회로망 하드웨어가 소프트웨어 시뮬레이
터에 비해 성능이 월등하더라도 특정한 형태로 고정된 구조의 기능만을 수행한다면 이용가치가 떨어지게 된다. 따라서 특정 수준 이상의 범용성
은 신경회로망 하드웨어의 필수 조건이라 할 수 있다[2]. 본 논문에서 사용한 ERNIE(Expansible & Reconfigurable Neuro Informatics
Engine)[3]는 다양한 신경회로망을 자유롭게 구성할 수 있는 FPGA(Field Programmable Gate Arrays)기반의 신경회로망 하드웨어 구조이다. ERNIE는 신경회로망의 재구성이 가능하며 동시에 대규모 확장이 가능하다는 장점
을 가지고 있다. 그러나 ERNIE는 연산 기능만을 수행하고 PC에서 학습을 담당하는 형태이기 때문에, 공학적으로 유용하게 사용되기 위해서는 자체
적으로 학습이 가능해야 한다. 학습 기능을 구현하는 방법은 크게 두 가지로 생각해 볼 수 있다. 첫
번째는 학습 연산 전용 범용 마이크로프로세서를 추가하는 방법이다. 구
현이 비교적 용이하여 학습 모듈의 구현 범위가 넓고 자유롭다는 장점이 있으나, 범용 마이크로프로세서뿐만 아니라 프로그램을 저장하는 메모리
가 별도로 필요하다는 점에서 시스템의 면적이 증가하는 단점이 있다. 두 번째는 전용 학습 모듈을 추가하는 방법이다[4]. 전용 학습 모듈을 사용하
므로 구성이 간단하고 별도의 프로그램 저장용 메모리가 필요하지는 않으
나, 자유도가 떨어지고 다양한 학습 알고리즘 적용이 어렵다는 단점이 있
다. 또한 위의 두 가지 방법은 이미 구현된 학습 기능만을 수행할 수 있
2
다는 점에서 응용분야나 적용 케이스에 따른 구조 변화에 의한 성능 저하
가 생기게 된다. 본 논문에서는 앞서 언급한 문제점을 극복하기 위하여 ERNIE의 연산
모듈 내부를 재설계하여 학습 기능을 구현하였다. 연산 모듈이 자체적으
로 학습 연산을 수행함에 따라 신경회로망의 구조 변화에 따른 학습 알고
리즘 구현의 어려움이나 성능 저하를 해결할 수 있다. 또한 구현된 학습 기능에 대한 성능을 기존의 신경회로망 하드웨어와 비교 분석하여 성능의 우수성을 확인하였다.
본 논문의 구성은 다음과 같다. 1장에서는 신경회로망의 전반적인 내용
과 신경회로망 하드웨어의 분류에 대해서 설명한다. 그리고 2장에서는 제
안된 디자인의 기반이 되는 ERNIE구조를 설명하고, 제안된 구조의 설계
에 대해서 자세히 설명한다. 3장에서는 제안된 구조를 이용해서 신경회로
망의 대표적인 학습 알고리즘인 BP(Back-propagation)알고리즘과 SOM(Self-Organizing Maps)을 구현한 방법과 성능 분석에 대해서 설명한다. 4장에서
는 제안된 구조를 FPGA로 구현하고, 제안된 구조를 이용하여 MLP(Multi-Layer Perceptron)와 SOM를 구성하여 영문 알파벳 인식 실험과 임펄스 노
이즈 검출 실험을 수행한 결과를 설명한다.
3
1.1. 신경회로망 개요
인간의 뇌와 폰 노이만(Von Neumman)형 컴퓨터의 차이점은 대규모 병
렬 및 분산 처리 형태와 학습을 통한 문제 해결에 있다. 이러한 인간의 뇌가 가지는 특성을 흉내 내는 연산 방법이 신경회로망이다. 표 1은 폰 노이만(Von Neumman)형 컴퓨터와 신경회로망의 차이점을 나타낸다[5].
구 분 폰 노이만형 컴퓨터 신경회로망
처리 자료 디지털 디지털, 아날로그
처리 방식 순차 처리 병렬 처리
기본 소자 논리 소자 뉴런
실행 근거 프로그램 학습
정보 저장 기억 장치 뉴런간 연결가중치
정보 검색 주소 지정 내용에 의함
응용분야 복잡한 연산 연상, 인식
표 1. 폰 노이만 컴퓨터와 신경회로망의 비교
그림 1은 신경회로망에서의 일반적인 뉴런의 구조를 나타난다. 뉴런들 간의 연결가중치를 학습이라는 과정을 통하여 결정한 후 병렬적으로 연산
을 수행함으로써 연상, 인식 등과 같은 작업을 수행할 수 있다.
4
∑
xi1
xi2
xi3
xin
yi
wi1
wi2
wi3
win
xi1
xi2
xi3
xin
yi
Weight(연결가중치)
wi1
wi2
wi3
win입력 패턴 출 력
Neuron(뉴런)
f(sum)sum
∑
xi1
xi2
xi3
xin
yi
wi1
wi2
wi3
win
xi1
xi2
xi3
xin
yi
Weight(연결가중치)
wi1
wi2
wi3
win입력 패턴 출 력
Neuron(뉴런)
f(sum)sum
그림 1. 뉴런의 일반적인 구조
신경회로망은 다양한 패턴을 반복적으로 학습하면 학습된 대로 출력을 내보내는 특징을 가지고 있다. 주어진 입력에 따라 원하는 출력을 얻기 위해 프로그램 되는 것이 아니라 일정한 입력과 목표에 의해서 학습되며, 그 결과로 연결가중치(Weight)가 결정된 후, 입력이 들어왔을 때 학습된 출력을 내보내도록 되어 있다[6].
신경회로망의 학습 방법은 목표값이 주어지는 지도 학습(supervised learning) 방식과 저절로 학습하는 자율 학습(unsupervised learning) 방식으
로 나눌 수 있다. 지도 학습 방식은 항상 목표값이 있어 출력값이 목표값
을 만족하도록 학습하는 방식이며, 자율 학습 방식은 목표값 없이 자율적
으로 출력을 내보내는 방식이다.
5
1.2 신경회로망 하드웨어
초창기의 신경회로망 하드웨어는 대부분 아날로그 기술로 만들어졌으나 반도체 기술의 비약적인 발전에 힘입어 디지털 신경회로망의 구현 연구가 활성화되기 시작했다. ASIC 기술이 발전하고 FPGA가 등장함에 따라 빠르
고 집적도가 높은 디지털 VLSI의 구현이 가능해졌고, 이를 이용한 신경회
로망 칩도 많이 개발되어 상업용 신경회로망 칩도 활발히 개발되었다.
표 2는 아날로그 신경회로망과 디지털 신경회로망의 장단점을 나타낸다
[7].
구분 아날로그 신경회로망 하드웨어 디지털 신경회로망 하드웨어
장점
■ 직관적으로 구현용이
■ 상대적인 빠른 속도
■ 적은 면적
■ 연결가중치 저장용이
■ 유연하게 구조 구성 가능
■ 외부 환경적 요인에 강인
■ 쉬운 인터페이스
단점
■ 연결가중치 저장 문제
■ 범용성 제한
■ 외부 환경적 요인으로 인한
오차율 증가(전기적 잡음, 온도)
■ 인터페이스 구현 어려움
■ 곱셈기로 인한 넓은 면적
■ 대규모 신경회로망에서의
상대적인 느린 속도
표 2. 아날로그 신경회로망과 디지털 신경회로망의 장단점 비교
6
1.3 디지털 신경회로망 하드웨어
디지털 신경회로망 하드웨어를 그림 2와 같이 General-purpose와 Special-purpose형태로 나눌 수 있다[7].
Digital Neural network Hardware
General-purpose Special-purpose
Accelerator Boards General-purposeProcessor Neurochips
Digital Neural network Hardware
General-purpose Special-purpose
Accelerator Boards General-purposeProcessor Neurochips
그림 2. 디지털 신경회로망 하드웨어 분류
General-purpose 형태도 크게 가속 장치 보드(Accelerator Boards)와 범용 마이크로프로세서를 이용한 시스템으로 나눌 수 있다.
첫 번째로 가속 장치 보드는 주로 PC나 워크스테이션과 연동한 형태로 상대적으로 단가가 낮다는 장점 때문에 상업용 신경회로망 하드웨어들이 이런 형태로 많이 개발되었다. 연산 속도를 위해 전용 칩을 사용하지만, MAC(Multiple-accumulate)연산을 위해 DSP를 사용하기도 한다. 그러나 응
용분야가 한정되어 있고, 유연성이 부족하다는 단점이 있다. IBM의 ZISC[8]가 대표적인 예이다.
7
두 번째는 DSP, CPU같은 범용 마이크로프로세서를 이용해서 신경회로
망을 구현한 형태이다. 구현이 효율적이며, 상대적으로 단가가 낮다는 장
점이 있다. Berkeley의 RAP[9]나 COKOS[10]가 대표적인 예이다.
Special-purpose Neurochips는 디지털 신경회로망 하드웨어에서 가장 좋은 성능을 가지며, 신경회로망의 고유의 연산을 위해 전용 칩(ASIC)이나 FPGA을 이용하여 구현한 형태이다. 90년대까지는 Adaptive Solutions의 CNAPS[11], Siemens의 SYNAPSE-1[12]가 대표적인 형태이나. 최근에는 저
렴하고, 집적도 높은 FPGA의 등장으로 인하여 FPGA을 이용하여 신경회
로망을 구현하는 추세이다.
1.3.1 FPGA를 이용한 신경회로망 구현
초기에는 FPGA의 용량 한계로 하나의 FPGA에 신경회로망의 PE(Processing Element)를 하나씩 구현하거나[13], PE의 기능을 나누어서 여
러 FPGA에 구현하는 형태였다[14]. 위와 같은 방법은 대규모 신경회로망 구성이 어려우며, 특히 FPGA의 용량이 한계가 있다는 단점으로 인해 학
습 기능을 제외한 형태로 구현되었다. 이러한 FPGA의 단점을 극복하고 학습 기능을 구현하기 위해 여러 가
지 방법이 제시되었다. 우선 많은 면적을 차지하고 있는 곱셈기를 배제한 형태로 구현하는 방안이 제안되었다[15]. 그러나 속도가 느리고, 정확도가 떨어지는 단점을 가지고 있었다. 그 다음으로는 런타임 재구성(run-time reconfiguration)을 이용한 FPGA의 time-multiplexing으로 학습 연산을 구현
하는 방법이다[16]. 이 방법을 이용하여 BP연산을 하나의 FPGA에 전방향
(feed-forward), 역전파(back-propagation), 가중치 갱신(weight update) 단계로 나누어서 구현되었다. FPGA의 특징을 효율적으로 이용하는 방법이나 재
구성하는 시간이 별도로 필요한 단점이 있었다.
8
II. 지도/자율학습이 가능한 재구성형 디지털
신경회로망 하드웨어 구조
본 논문에서는 신경회로망 구성이 자유로운 모듈러 신경회로망 하드웨
어 구조인 ERNIE를 기반으로 해서 자체적으로 학습 연산이 가능한 하드
웨어 구조를 디자인하였다. 제안된 구조의 데이터 버스의 크기나 메모리 용량은 Virtex-ll(XC2V6000)[17]에 맞게 설계하였다. 본 장에서는 우선 ERNIE 구조에 대해 설명하고 제안된 구조의 설계에 대해 자세히 설명하
고자 한다.
2.1 ERNIE
ERNIE는 신경회로망을 하드웨어로 구현함에 있어서 문제점으로 지적되
어 왔던 범용성 및 구조 확장을 해결하기 위하여 설계된 SIMD(Single Instruction Multiple Data)구조와 마스터-슬레이브(Master-Slave) 구조를 응용
한 모듈러 신경회로망 하드웨어 구조이다. SIMD구조는 하나의 명령으로 여러 유니트들이 동시에 동작하는 특성으로 인해, 많은 양의 데이터를 병
렬적으로 처리해야 하는 신경회로망에 적합한 구조이다. ERNIE는 이 구조
를 응용하여 병렬 처리뿐만 아니라 각 PE의 설정에 따라 서로 다른 동작
을 수행함으로써 신경회로망의 재구성을 가능하도록 하였다. 또한 연산을 수행하는 각각의 PE들 사이에 마스터-슬레이브 방식으로 데이터를 전달함
으로써 신경회로망의 시냅스, 뉴런, 레이어에 대한 구조 확장시 발생하는 시냅스의 비선형적 증가에 따른 문제를 해결하였다.
9
2.1.1 MPU (Modular Processing Unit)
MPU는 ERNIE의 기본 구조로서 신경회로망을 구현할 수 있는 최소 단
위의 모듈러 구조이다. 그림 3과 같이 MPU는 다수의 SPE와 1개의 LPE로 구성이 가능하며, 구조의 특성상 MPU를 구성하는 SPE의 개수에 대한 제
한은 없다. MPU는 데이터 신호와 컨트롤 신호의 입출력 형식이 동일하여, 그림 4와 같이 MPU간의 단순 연결로 모듈러 확장이 가능하다. 이와 같은 방법으로 뉴런의 개수와 레이어의 개수를 확장할 수 있다. 또한 그림 5와 같이 각 SPE를 마스터-슬레이브 방식으로 연결함으로써 SPE에 누적된 입
력과 가중치 데이터의 곱을 인접한 SPE로 전달하는 방식으로 시냅스 확
장이 가능하다. 이와 같은 방법으로 SPE가 갖고 있는 로컬 메모리의 용량
을 초과하는 신경회로망을 구현함에 있어서 생기는 문제를 해결할 수 있
다.
SPE0
…
LPEcontrol
input
SPE1
SPEn
sum0
/dist0
passingData/Signal
output
control
passingData/Signal
sum1
/dist1
sumn
/distn
sumn/distn
SPE0
…
LPEcontrol
input
SPE1
SPEn
sum0
/dist0
passingData/Signal
output
control
passingData/Signal
sum1
/dist1
sumn
/distn
sumn/distn
그림 3. MPU의 블록 다이어그램
10
MPU1MPU1MPU0
MPU0
SPE0
SPE1
SPEn
LPE
SPEn-1
SPE3
SPE2
SPE0
SPE1
SPEm
LPE
SPEm-1
SPE3
SPE2
Input Output
MPU1MPU1MPU0
MPU0
SPE0
SPE1
SPEn
LPE
SPEn-1
SPE3
SPE2
SPE0
SPE1
SPEm
LPE
SPEm-1
SPE3
SPE2
Input Output
그림 4. MPU의 연결을 통한 레이어의 확장
Neuron m
Neuron 1
Neuron 0
SPE0
SPE1
SPEn
LPE
SPEn-1
SPE3
SPE2sum
MPU
input output
Neuron m
Neuron 1
Neuron 0
SPE0
SPE1
SPEn
LPE
SPEn-1
SPE3
SPE2sum
MPU
input output
그림 5. 내부 연결버스를 통한 시냅스 확장
11
2.1.2 SPE (Synapse Processing Element)
SPE는 신경회로망의 핵심적인 연산을 담당하고 있으며, 그림 6과 같이 곱셉기, 덧셈기, 누산기와 연결가중치를 저장하는 로컬 메모리로 구성되어
있다. 주요 역할은 퍼셉트론의 서밍 노드(summing node) 연산과 SOM의 입
력패턴과 가중치간의 유클리디안 거리(Euclidean distance) 연산 수행이다. 퍼셉트론인 경우 입력과 연결가중치의 곱셈의 합인 sum을 출력하며, SOM인 경우 입력과 가중치의 거리 연산의 결과값인 dist를 출력한다. passin은 시냅스 확장의 경우 마스터 관계에 있는 SPE로부터 전달받은 누적합 값
을 의미한다.
……
wi1
wi2
win
sum/dist
1 0
passin
passout
weightmemory
0
1-1…
x1
x2
xn
Input Data
Perceptron/Kohonen
Accumulator+×…
…
wi1
wi2
win
sum/dist
1 0
passin
passout
weightmemory
0
1-1…
x1
x2
xn
Input Data
Perceptron/Kohonen
Accumulator++××
그림 6. SPE의 블록 다이어그램
12
2.1.3 LPE (Layer Processing Unit)
LPE의 기능은 크게 두 가지로 나뉜다. 첫 번째는 뉴런의 활성화 함수 역할이며, 두 번째는 SOM의 출력층을 구성하는 뉴런 중에서 승자뉴런
(Winner Neuron)의 인덱스(index)를 출력하는 역할이다. 활성화 함수는 LUT(Look-up Table)로 구현되며, SPE의 연산 결과값인 sum을 LUT의 어드
레스로 참조하여 활성화 함수의 결과를 출력한다. SOM인 경우 SPE의 연
산 결과값인 dist를 입력으로 받은 후 KLB(Kohonen Logic Block)내의 비교
기와 카운터를 이용하여 가장 작은 dist값을 가진 SPE의 인덱스를 승자 뉴런으로 출력한다.
A
COMPARATOR
B
UPCOUNTER
MIND
en
Q INDEXD
en
Q
KLB
A<B
distindex
A
COMPARATOR
B
UPCOUNTER
MIND
en
QMIND
en
Q INDEXD
en
QINDEXD
en
Q
KLB
A<B
distindex
LUT
KLB
0
1
LPE
sum/dist
0
1
sum
dist
outpercept
index
bypassperceptron/Kohonen
output
LUT
KLB
0
1
LPE
sum/dist
0
1
sum
dist
outpercept
index
bypassperceptron/Kohonen
output
그림 7. LPE와 KLB의 블록 다이어그램
13
2.2 지도/자율학습이 가능한 재구성형 디지털 신경회로망
하드웨어 구조
제안된 구조는 ERNIE의 장점인 신경회로망 하드웨어 구조의 재구성성
과 확장성을 유지하기 위해 전체적인 구조는 기존의 구조와 거의 동일하
다. 다만 그림 8과 같이 학습 연산일 때 오차신호의 입출력이 용이하도록, SPE로 입력되는 데이터 버스가 단방향에서 양방향으로 변경된 것과 LPE를 거쳐 SPE로 연결되는 데이터 버스가 하나 추가된 것이 기존 ERNIE 구조와 다르다. 제안된 구조에서 구조 확장이나 시냅스 확장의 경우 그림
9, 10과 같이 기존의 ERNIE와 같은 방법으로 이루어진다.
pSPE0
…
LPEcontrol
input / Error signal pSPE1
pSPEn
sum0
/dist0
output /Error signal
control
sum1
/dist1
sumn
/distn
sumn/distn
Error signal
pSPE0
…
LPEcontrol
input / Error signal pSPE1
pSPEn
sum0
/dist0
output /Error signal
control
sum1
/dist1
sumn
/distn
sumn/distn
Error signal
그림 8. 제안된 구조의 블록 다이어그램
14
MPU1MPU1
pSPE0
pSPE1
pSPEm
LPEpSPE3
pSPE2
MPU0MPU0
pSPE0
pSPE1
pSPEn
LPEpSPE3
pSPE2input /Error Signal
output / Error signal
MPU1MPU1
pSPE0
pSPE1
pSPEm
LPEpSPE3
pSPE2
MPU0MPU0
pSPE0
pSPE1
pSPEn
LPEpSPE3
pSPE2
MPU0MPU0
pSPE0
pSPE1
pSPEn
LPEpSPE3
pSPE2input /Error Signal
output / Error signal
그림 9. 제안된 구조에서의 레이어의 확장
Neuron m
Neuron 1
Neuron 0
pSPE0
pSPE1
pSPEn
LPE
pSPEn-1
pSPE3
pSPE2
MPU
output/ Error signal
input/ Error signal
Neuron m
Neuron 1
Neuron 0
pSPE0
pSPE1
pSPEn
LPE
pSPEn-1
pSPE3
pSPE2
MPU
output/ Error signal
input/ Error signal
그림 10. 제안된 구조에서의 시냅스의 확장
15
2.2.1 pSPE (programmable SPE)
신경회로망의 전방향(forward) 연산은 주로 입력과 연결가중치간의 연산
으로 곱셈이나 덧셈 등의 과정을 한 번씩 수행한다. 그러나 학습 과정에
서 사용되는 연산은 주로 식 (1)과 같이 순방향 연산보다 더 많은 연산 과정을 수행하는 형태이다.
WWW ∆+= (1)
xW ηδ∆ =
하드웨어 관점에서 보면 식 (1)과 같은 연산을 수행하기 위해서 연산구
조는 두 번 이상의 곱셈 연산이 가능한 형태이어야 하며, 여러 파라미터
를 저장할 수 있는 충분한 메모리가 필요하다. 기존의 SPE는 신경회로망
의 연산에 필요한 최소한의 기능만을 수행하는 간단한 구조로 구성되어있
어 학습 연산의 기능을 수행할 수 없는 단점이 있다. 따라서 이 부분을 극복하기 위해서 SPE가 기존의 곱셈기, 덧셈기, 누산기들을 충분히 활용
하여 학습 연산이 가능하도록 내부 구조를 재설계하였다. 내부 구조가 변
경된 SPE는 크게 세 가지의 특징을 가지고 있다.
1. 16bit 곱셈기, 20bit 덧셈기, 20bit 누산기의 입력 부분에 버스 멀티플
렉서(Bus Multiplexer)가 추가하였다. 그림 11과 같이 추가된 버스 멀티플렉서의 입력에는 각 연산 로직들의 출력부, 연결가중치와 파
라미터가 저장되어 있는 메모리의 출력부가 연결되어 있다. 이렇게 연결함으로써 버스 멀티플렉스의 셀렉트 신호를 이용하여 내부 데
이터 흐름을 제어할 수 있다.
2. 학습율 같은 파라미터, 학습 연산 도중에 발생하는 임시값, 인접 뉴런의 인덱스를 저장하는 레지스터와 입력 패턴을 임시로 저장하
는 메모리를 추가하여 빠르게 데이터를 억세스(access)할 수 있도록 하였다. 하드웨어 구조의 단순화로 위해 가중치와 입력패턴, 그리
고 가중치 변화량을 하나의 메모리로 공유하며, 서로 주소로 구분
16
한다. 파라미터, 임시값, 인접 뉴런의 인덱스를 저장하는 레지스터
도 마찬가지로 하나의 레지스터로 공유하며, 주소로 구분한다.
3. 버스 멀티플렉서의 셀렉트 신호와 연산 로직 블록, 메모리를 제어
할 수 있는 컨트롤 신호들을 통합해서 명령어 코드화한 데이터를 저장하는 메모리를 추가하였다. 명령어 코드화한 컨트롤 신호들을 이용하여 SPE가 원하는 연산을 수행할 수 있도록 내부 구조를 유
연하게 변경할 수 있다. 이렇게 구성된 명령어 코드를 내부구조 결
정 명령어(ISIS: Instruction for Selecting Internal Structure)이라고 하겠
다.
그리고, 이러한 특징을 갖도록 디자인한 SPE를 pSPE(programmable SPE)라 명명하였다.
passin
passout
…
wi1
wi2
win
Weight Memory
AccumulatorAccumulator
Input temporarymemory
Instruction forSelection InternalStructure (ISIS)
Memory
Instruction forSelection InternalStructure (ISIS)
Memory
8X2 Bus MUX
4X2 Bus MUX
4X1 Bus MUX
Dual-Port Memory
…
x1
x2
xn
Input data
δ…
Error Signal
AddressDecoder
±
×
outputselect
…
Xi1
Xi2
Xin
…
∆wi1
∆wi2
∆win
weight changememory
Parameter Register
NeighborsNeuronindex
ηβ
…
AddressCounter
: Data : Control : Data : Control
passin
passout
…
wi1
wi2
win
…
wi1
wi2
win
Weight Memory
AccumulatorAccumulator
Input temporarymemory
Instruction forSelection InternalStructure (ISIS)
Memory
Instruction forSelection InternalStructure (ISIS)
Memory
8X2 Bus MUX
4X2 Bus MUX
4X1 Bus MUX
Dual-Port Memory
…
x1
x2
xn
Input data
δ…
Error Signal
AddressDecoder
±±
××
outputselect
…
Xi1
Xi2
Xin
…
Xi1
Xi2
Xin
…
∆wi1
∆wi2
∆win
…
∆wi1
∆wi2
∆win
weight changememory
Parameter Register
NeighborsNeuronindex
ηβ
…
Parameter Register
NeighborsNeuronindex
ηβ
…
ηβ
…
AddressCounter
: Data : Control : Data : Control : Data : Control : Data : Control
그림 11. pSPE의 블록 다이어그램
17
2.2.2 LPE
제안된 구조에서의 LPE는 MLP와 SOM 연산일 경우 기존의 LPE의 역
할을 그대로 수행한다. 기존의 LPE와 다른 점은 별도의 LUT과 레지스터
의 추가로 인해 pSPE에 대한 보조연산이 가능하다는 것이다. 그림 12과 같이 BP 학습 연산에서 필요한 활성화 함수의 미분 함수를
별도의 LUT로 구현한다. 출력값을 LUT의 어드레스로 참조하여 오차신호
에 필요한 미분함수를 구한다. pSPE 인덱스 레지스터는 해당 LPE가 구성하고 있는 MPU에 속한 pSPE
의 인덱스가 저장되어 있다. 저장된 pSPE의 인덱스는 입력 받은 오차신호 성분을 입력시킬 pSPE를 선정하는데 사용된다.
KLB
0
1
LPE
sum/dist
0
1
sum
dist
outpercept
index
bypassperceptron/Kohonen
output
output /error signal
output(1-output)/ error signal
pSPE indexregister
UPCOUNTER
pSPE’s index
KLB
0
1
LPE
sum/dist
0
1
sum
dist
outpercept
index
bypassperceptron/Kohonen
output
output /error signal
output(1-output)/ error signal
pSPE indexregister
UPCOUNTER
pSPE’s index
그림 12. 제안된 구조에서의 LPE의 블록 다이어그램
18
2.2.3 마스터 컨트롤러(Master Controller)
마스터 컨트롤러는 제안된 구조가 온칩(on-chip)상에서 독자적(stand-alone)으로 동작할 수 있는데 필요한 기능을 수행한다. UART를 통한 외부 데이터 인터페이스와 신경회로망 구성에 필요한 구성 비트(Configuration bits) 생성 및 제어를 수행한다. 학습 연산을 수행할 때는 그림 14와 같이 제안된 구조의 출력을 입력으로 받아서 저장된 목표값과 비교하여 오차를 체크하고, 학습 여부를 통제하며 학습에 필요한 오차신호를 보조 연산하
는 역할을 수행한다. 본 논문에서는 마스터 컨트롤러를 32bit RISC CPU인 MicroBlaze[18]로
구현하였다. MicroBlaze는 Xilinx사에서 제공하는 소프트코어 프로세서로서 유연성과 효율성이 우수하며, FPGA에 쉽게 구현이 가능하다. 또한 전용 소프트웨어가 FPGA 설계툴과 연동되어 제안된 구조와 통합 설계를 할 수 있다는 장점이 있다.
그림 13. 마스터 컨트롤러인 MicroBlaze RTL schematic
19
MPUMPU
pSPE0
pSPE1
pSPEm
LPEpSPE3
pSPE2
MPUMPU
pSPE0
pSPE1
pSPEn
LPEpSPE3
pSPE2
input / configuration dataoutput / Error signal
...
Master ControllerMaster Controller
external interfaceUART
MPUMPU
pSPE0
pSPE1
pSPEm
LPEpSPE3
pSPE2
MPUMPU
pSPE0
pSPE1
pSPEn
LPEpSPE3
pSPE2
input / configuration dataoutput / Error signal
...
Master ControllerMaster Controller
external interfaceUART
그림 14. 마스터 컨트롤러를 포함한 전체 시스템 블록 다이어그램
20
III. 학습 알고리즘 구현
본 장에서는 제안된 구조를 각 BP 알고리즘과 SOM 학습 알고리즘으로 구현하는 방법에 대하여 설명하고, 성능 분석을 하고자 한다.
3.1 제안된 구조에서의 BP 알고리즘 구현
3.1.1 BP 알고리즘
BP 알고리즘은 순방향 다층 신경회로망 학습에 효과적인 지도학습 알
고리즘으로, 지금까지도 다양한 분야에서 널리 쓰이고 있다. BP 알고리즘의 기본 원리는 다층 신경회로망에 입력패턴을 주면, 이 신
호는 각 뉴런에서 변환되어 은닉층에 전달되고, 마지막에 출력층에서 결
과값을 출력하게 된다. 이 출력값과 목표값을 비교하여 생긴 오차를 줄여
나가는 방향으로 연결강도를 조절한다. 출력층에서는 은닉층으로 오차신
호를 역전파하며 은닉층에서는 역전파된 오차신호를 근거로 다시 자기 층
의 연결가중치를 조정해나간다. 뉴런의 활성화 함수가 미분 가능한 시그모이드 함수(sigmoid function)일
경우 BP 알고리즘을 이용한 다층 퍼셉트론의 학습과정은 다음과 같다[6].
신경회로망으로부터 출력된 yk를 목표값 dk과 비교하여 오차를 계산한다.
∑=
=
−=oN
k
kk
eE
yde
1
2
21 (2)
출력값과 목표값이 일치하면 학습이 일어나지 않으며, 그렇지 않은 경
우 출력값과 목표값의 차이를 감소시키는 방향으로 연결강도를 조절하기 위해 학습을 수행한다.
21
출력층의 오차신호인 δo,k는 일반 델타 학습법에 의해 다음과 같이 얻을 수 있다. )1(, kkkko yye −=δ (3)
은닉층의 오차신호 δh,j도 출력층의 오차신호와 같은 방법으로 다음과 같이 얻을 수 있다.
∑=
−=oN
kjkkhjjjh wyy
1,, )1( δδ (4)
위와 같이 얻은 출력층과 은닉층의 오차신호로 연결가중치의 변화량을 구
할 수 있다. 여기서 식 (5)의 η 은 학습율을 나타낸다.
ijhij
jkojk
yw
yw
,
,
ηδ∆
ηδ∆
=
= (5)
식 (5)를 이용하여 t+1단계에서의 은닉층과 출력층간의 연결가중치를 변
화시킨다.
ijijij
jkjkjk
wtwtw
wtwtw
∆
∆
+=+
+=+
)()1(
)()1( (6)
학습을 반복하면서, 오차 E가 설정된 최소의 오차 εmax보다 작거나 설정
한 최대 학습 반복 회수를 넘으면 학습을 종료한다.
22
3.1.2 BP 알고리즘 구현
BP 알고리즘에서는 각 뉴런들이 고유의 오차신호를 가지고 있기 때문
에, 제안된 구조에서 구현된 BP 알고리즘은 뉴런의 오차신호와 뉴런에 해
당하는 pSPE의 인덱스를 함께 순차적으로 입력하는 형태로 진행한다.
제안된 구조를 구성하는 pSPE, LPE, 마스터 컨트롤러는 BP 알고리즘 구
현을 위하여 아래와 같이 역할을 수행한다.
구 분 역 할
pSPE
■ 각 뉴런의 연결가중치 갱신
■ 은닉층 뉴런의 오차신호 일부 Σδkwjk 을 연산하고
다음 pSPE로 passin 버스를 이용하여 전달
LPE ■ 은닉층 뉴런의 오차신호 일부 yi(1-yi) 연산
■ 오차신호를 적용할 pSPE 인덱스 출력
마스터 컨트롤러
■ 출력 결과값과 목표값의 차이(오차) 계산
■ 오차에 따른 학습 여부 결정
■ 출력층 뉴런의 오차신호 연산
표 3. BP 알고리즘 구현을 위해 수행되는 pSPE, LPE, 마스터 컨트롤러의 역할
제안된 구조의 BP 알고리즘 구현은 다음과 같다.
단계 1. 마스터 컨트롤러에서 오차 체크를 담당해서 학습 여부를 결정한
다.
단계 2. 마스터 컨트롤러에서 각 출력층 뉴런의 오차신호를 연산하여 제
안된 구조에 순차적으로 입력한다.
23
단계 3. 출력층을 구성하고 있는 MPU의 LPE는 LPE의 pSPE 인덱스 레지
스터를 이용해서 입력 받은 오차신호를 적용할 pSPE를 선정한다.
단계 4. 오차신호를 입력 받은 출력층의 pSPE는 pSPE ISIS을 이용하여 식
(6)과 같이 연결가중치를 갱신한다. 또한 연결가중치 갱신 작업 도중
에 은닉층 오차신호의 일부인 δh,kwjk 를 연산한다. 연산된 δh,kwjk는 내
부 연결 버스를 통해 인접 pSPE에 누적하여 전파한다. 이렇게 전파된 δh,kwjk는 해당 층에 가장 아래에 위치한 pSPE까지 전파되며, 전파된 최종 결과값은 Σδh,kwjk이 된다. 가장 아래에 위치한 뉴런에 해당하는 pSPE에서 입력패턴 yj와 함께 Σδh,kwjk들을 은닉층으로 차례로 전파한
다.
단계 5. 은닉층 역할을 하고 있는 MPU의 LPE는 입력패턴 yj와 Σδh,kwjk를 입력 받으면 내부 LUT를 이용하여 yj를 yj(1-yj)로 변환하고, 변환된 yj(1-yj)와 Σδh,kwjk을 단계 3번처럼 pSPE의 인덱스를 이용하여 오차신
호를 적용할 은닉층의 pSPE를 선정한다..
단계 6. 은닉층 뉴런에 해당하는 pSPE는 yj(1-yj)와 Σδh,kwjk를 이용하여 은
닉층 오차신호를 구하고, 단계 4번와 같이 연결가중치 갱신과 오차신
호 연산 작업을 수행한다. 만약 은닉층이 다수 존재한다면 단계 4~6을 다시 수행하면 된다.
그림 15는 제안된 구조의 BP 알고리즘 연산을 나타내는 타이밍 다이어
그램이며, 표 4, 5, 6은 BP 알고리즘 연산을 위해 pSPE 내부 블록이 어떻
게 동작하는가를 나타내고 있다. 표 4, 5, 6을 참고하여 pSPE의 ISIS set를 작성하였다.
24
Indexcheck
Weightupdate
WriteBack1yα 11ωδy
Weightupdate
WriteBack11ωδy 21ZA
= A1
∑1nyωδOutputZ1
…output Neuron #1error signal 11ZA
Indexcheck
Weightupdate
WriteBack2yα 22ωδy
Weightupdate
WriteBack22ωδy 22ZA
= A2
…12ZA
Indexcheck
Weightupdate
WriteBackyα 1nynωδ
Weightupdate
WriteBack2nynωδ 22ZA
= An
…12ZA
∑2nyωδOutputZ2
Indexcheck
Weightupdate
WriteBack1zα 11vzδ …
11XB
output Neuron #2error signal
output Neuron #nerror signal
hidden Neuron #1error signal 1zδ
= B1
Calculate
Indexcheck
Weightupdate
WriteBack2zα 22vzδ …
12XBhidden Neuron #2error signal 2zδ
= B2
Calculate
Accumulate part of error signal
output layer
hidden layer
…
…
Indexcheck
Weightupdate
WriteBack1yα 11ωδy
Weightupdate
WriteBack11ωδy 21ZA
= A1
∑1nyωδOutputZ1
…output Neuron #1error signal 11ZA
Indexcheck
Weightupdate
WriteBack2yα 22ωδy
Weightupdate
WriteBack22ωδy 22ZA
= A2
…12ZA
Indexcheck
Weightupdate
WriteBackyα 1nynωδ
Weightupdate
WriteBack2nynωδ 22ZA
= An
…12ZA
∑2nyωδOutputZ2
Indexcheck
Weightupdate
WriteBack1zα 11vzδ …
11XB
output Neuron #2error signal
output Neuron #nerror signal
hidden Neuron #1error signal 1zδ
= B1
Calculate
Indexcheck
Weightupdate
WriteBack2zα 22vzδ …
12XBhidden Neuron #2error signal 2zδ
= B2
Calculate
Accumulate part of error signal
output layer
hidden layer
…
…
그림 15. 제안된 구조에서의 BP 알고리즘 연산 타이밍 다이어그램
25
14
Wr W k
,n∆
END
13
Wk,
n +∆
Wk,
n =
Wk,
n∆
Out
put
δ o,kW
k,n∆
12
A kZ n
δ o,k
-1W
k-1,
n
+δo,k
Wk,n
=δo,k
Wk,n∆
Rd W
k,n
11
δ o,kW
k,n
Inpu
t δ o
,k-1
×Wk-
1,n
Rd Z n
addr
+1
Rd A k
10
Rd W
k,n
Wr
W k
,n-1∆
Rd δ o
,k
9
Wk,
2 +∆
Wk,
2 =
Wk,
2∆
Out
put
δ o,kW
k,2∆
addr
+1
Ret
urn
8
A kZ 2
δ o,k
-1W
k-1,
2
+δo,k
Wk,2
=δo,k
Wk,2∆
Rd W
k,2
7
δ o,kW
k,2
Inpu
t δ o
,k-1
Wk-
1,2
Rd Z 2
addr
+1
Rd A k
6
Rd W
k,2
Wr W
k,1∆
Rd δ o
,k
Rep
eat
5
Wk,
1 +∆
Wk,
1 =
Wk,
1∆
Out
put
δ o,kW
k,1∆
addr
+1
4
A kZ 1
δ o,k
-1W
k-1,
1
+δo,k
Wk,1
=δo,k
Wk,1∆
Rd W
k,1
3
δ o,kW
k,1
Inpu
t δ o
,k-1
Wk-
1,1
Rd Z 1
Rd A k
2
Rd W
k,1
Wr A k
Rd δ o
,k
1
η δ o
,k
(= A
k)
0
Rd
η
Rd δ
o,k
Mul
tiplie
r
Add
er
Accu
mulat
or
Dua
l-Por
t M
emor
y
Para
met
er
Regi
ster
Inpu
t R
egist
er
ISIS
Pr
oces
s Fl
ag
표 4. 출력층 pSPE의 내부 블록 동작
26
14
Inpu
t δ h
,j-1V
j-1,2
13
addr
+1
12
Wr V j
,1∆
Rep
eat
11
V j,1
+∆
V j,1
=
Vj,1∆
Out
put
δ h,jV
j,1∆
addr
+1
10
B jX 1
δ h,j-
1Vj-1
,1
+δh,
jVj,1
=δh,
jVj,1∆
Rd V j
,1
9
δ h,jV
j,1
Rd X 1
Rd B j
8
Rd V j
,1
Wr B j
7
η δ h
,j (=
Bj )
6
Rd δ
h,j
5
Inpu
t δ h
,j-1V
j-1,1
Rd η
4
Wr δ
h,j
3
Z j(1
-Zj)
×∑δ o
Wj
(= δ
h )
2
Rd
Z j(1
-Zj)
Rd ∑δ o
Wj
1
Wr
Z j(1
-Zj)
0
Rd
Z j(1
-Zj)
Mul
tiplie
r
Add
er
Accu
mul
ator
Dua
l-Por
t M
emor
y
Para
met
er
Reg
iste
r
Inpu
t R
egis
ter
ISIS
Pr
oces
s Fl
ag
표 5. 은닉층 pSPE의 내부 블록 동작(1)
27
29
Wr V j
,n∆
END
28
V j,n
+∆
V j,n
=
Vj,n∆
outp
ut
δ h,jV
j,n∆
27
B jX n
δ h,j-
1Vj-1
,n
+δh,
jVj,n
=δh,
jVj,n∆
Rd V j
,n
26
δ h,jV
j,n
Rd X n
Rd B j
25
Rd V j
,n
Rd δ
h,j
24
23
inpu
t δ h
,j-1V
j-1,n
22
21
addr
+1
20
Wr V j,n
-1∆
19
V j,2
+∆
V j,2
=
Vj,2∆
outp
ut
δ h,jV
j,2∆
addr
+1
Rep
eat
18
B jX 2
δ h,j-
1Vj-1
,2
+δh,
jVj,2
=δh,
jVj,2∆
Rd V j
,2
17
δ h,jV
j,2
Rd X 2
Rd B j
16
Rd V j
,2
Rd δ
h,j
15
Mul
tiplie
r
Add
er
Accu
mul
ator
Dua
l-Por
t M
emor
y
Para
met
er
Reg
iste
r
Inpu
t R
egis
ter
ISIS
Pr
oces
s Fl
ag
표 6. 은닉층 pSPE의 내부 블록 동작(2)
28
3.1.3 성능 분석
제안된 구조로 구현한 BP 알고리즘에 하나의 출력층 뉴런의 오차신호
가 입력된 다음부터 학습 완료가 될 때까지의 시간(clock cycle)은 식 (8)과 같이 표현된다.
∑=
×++×=l
khiookhBP CNNCNt
1, 2 (8)
l : 은닉층의 개수
Nh,k : 은닉층 뉴런의 개수
Ni : 입력층 뉴런의 개수
No : 출력층 뉴런의 개수
Co : 출력층 pSPE의 연산시간(clock cycle)
Ch : 은닉층 pSPE의 연산시간(clock cycle)
그림 16은 제안된 구조를 각 pSPE 32, 64, 256, 512개로 MLP를 구성하여 49㎒로 동작시킬 때 은닉층 뉴런을 구성하는 pSPE의 개수에 따라 나타나
는 BP 학습 알고리즘 성능을 보여준다.
29
그림 16. 제안된 구조에서의 BP 알고리즘 성능(MCUPS)
은닉층 뉴런의 pSPE의 개수가 많을수록 연산속도는 점점 증가하는 것
을 알 수 있다. 이는 제안된 구조를 대규모 MLP 구조로 구성하여 BP 알
고리즘을 적용할 경우에도 좋은 성능을 낼 수 있다는 것을 보여준다. 그
러나 은닉층의 pSPE가 너무 많으면 오히려 성능의 효율이 점점 둔화되는 것을 볼 수 있다. 그림 15를 보면 오차신호를 연산하여 전파하는 간격이 출력층보다 은닉층이 더 길다. 은닉층의 pSPE가 많을수록 전파되는 간격
이 커져서 연산시간에 영향을 미치기 때문이다.
30
표 7은 제안된 구조로 구현한 BP 알고리즘 성능을 기존의 신경회로망 하드웨어와 비교한 것이다[7][19].
구 조 No. of PEs MCUPS 하드웨어 형태
32 192
64 371
256 1,219 The Proposed structure
512 1,996
FPGA
64 256 CNAPS
512 1,460 Neurochip
RAP 40 102 DSPs
SNAP 64 76.6 Neurochip
MY-NEUPOWER 512 1,260 Neurochip
WSI 1152 2,300 Neurochip
32 42 Sandy
256 567 DSPs
CM-5 512 76 General Purpose Computer
MCUPS (Mega Connection Updates per Second)
표 7. 신경회로망 하드웨어의 BP 알고리즘 성능 비교
31
3.2 제안된 구조에서의 SOM 학습 알고리즘 구현
3.2.1 SOM 학습
SOM는 대표적인 자율학습 방식의 신경회로망으로 T. Kohonen에 의해 제시되었다[20]. SOM의 구조는 그림 22와 같이 입력층과 출력층(코호넨층)으로 이루어진 단층 신경회로망 구조로 입력층의 뉴런들은 출력층의 모든 뉴런들과 완전 연결(fully connected)되어 있다.
……
… … …
……
……입력층
출력층(코호넨층)
……
… … …
……
……
……
… … …
……
……입력층
출력층(코호넨층)
그림 17. SOM의 구조
SOM의 특징은 원하는 출력이 주어지지 않고 데이터 상호간의 처리과
정을 통해 자동적으로 클러스터를 구별 짓는다는 것이다. 데이터 사이의 상호 관계는 입력패턴과 연결가중치간의 유클리디안 거리로 결정된다.
( )∑−
=
−=1
0
2)()()(N
iiji twtxtDist (9)
식 (9)에서 N은 입력층 뉴런의 수이다. 이렇게 각 뉴런들의 유클리디안 거리를 계산해서 가장 작은 값을 가진
뉴런이 승자 뉴런(Winner Neuron)으로 선정되며 승자 뉴런과 이와 인접한 뉴런들만이 제시된 입력에 대하여 학습이 허용된다. 그리고 실제 네트워
32
크가 동작할 때에는 승자 독점(Winner take all) 방식으로 승자 뉴런만이 출
력 신호를 보낼 수 있다.
SOM의 학습 과정은 아래와 같다.
1. 입력층 뉴런으로부터 출력층의 뉴런 사이의 연결강도를 작은 값의 임
의의 값으로 초기화한다.
2. 새로운 입력패턴을 적용한다.
3. 입력패턴과 모든 뉴런들 간의 유클리디안 거리를 계산하여 승자 뉴런
을 선택한다.
4. 승자 뉴런과 인접 뉴런들에 대하여 연결강도를 재조정한다.
( ))()()()1( twtxtwtw ijiijij −+=+ η (10)
식 (10)에서 η 는 학습율로서 시간이 경과함에 따라 점차 작아진다.
Nc(t3)
Nc(t2)
Nc(t1)winner neuron
Nc(t3)
Nc(t2)
Nc(t1)
Nc(t3)
Nc(t2)
Nc(t1)winner neuron
그림 18. 승자 뉴런을 중심으로 한 이웃반경
또한 학습할 승자뉴런과 인접뉴런의 범위는 그림 18과 같이 초기에 설
정한 인접 반경에서 학습을 진행하면서 하나씩 감소시켜 최종적으로 승자 뉴런에 대해서만 학습하도록 한다.
33
3.2.2 SOM학습 알고리즘 구현
제안된 구조에서의 SOM 학습은 BP 알고리즘의 학습 방향과 달리 제안
된 구조로 구성된 신경회로망의 전방향(forward) 연산과 동일한 방향으로 진행된다. 구현된 SOM 학습의 특징은 pSPE의 인접 뉴런 인덱스 레지스
터를 이용한 병렬 학습 연산이다. 각 출력층의 뉴런을 담당하는 pSPE는 자신의 주위 뉴런에 해당하는 pSPE의 인덱스를 저장하는 레지스터를 가
지고 있다. 학습에 적용할 승자뉴런이 입력될 경우 각 pSPE는 입력된 승
자뉴런의 인덱스를 인접 뉴런 레지스터에 저장된 인덱스와 승자 뉴런 인
덱스를 비교한다. 모든 pSPE는 비교한 결과에 따라 자신이 승자뉴런이나 인접뉴런 여부 인지를 바로 확인할 수가 있으며, 동시에 학습이 시작된다.
제안된 구조를 구성하는 pSPE, LPE, 마스터 컨트롤러는 SOM 학습 구현
을 위하여 아래와 같이 역할을 수행한다.
구 분 역 할
pSPE
■ 입력받은 승자 뉴런 인덱스를 자신의 인덱스와 인접 뉴
런 인덱스 레지스터의 값을 비교하여 해당 pSPE가 승자
뉴런 혹은 인접 뉴런 여부인지 판단
■ 각 뉴런의 연결가중치 갱신
(승자 뉴런과 인접 뉴런에 해당하는 pSPE)
LPE ■ 대기
마스터
컨트롤러
■ 승자 뉴런 인덱스와 입력 패턴을 출력
■ 학습 여부 통제
표 8. SOM 학습 알고리즘 구현을 위해 수행되는 pSPE, LPE, 마스터 컨트롤러의 역할
34
제안된 구조의 SOM 학습 알고리즘 수행과정은 다음과 같다.
단계 1. 마스터 컨트롤러는 승자 뉴런에 해당하는 pSPE 인덱스와 입력패
턴을 제안된 구조로 출력한다.
단계 2. 출력층을 구성하는 pSPE는 마스터 컨트롤러에서 입력받은 승자 뉴런의 인덱스를 자신의 인덱스와 비교한다. 일치할 경우 해당 pSPE는 자신을 승자 뉴런으로 인지하고 학습을 시작하며, 아닐 경우 인접 뉴런 인덱스 레지스터에 저장하고 있는 인덱스와 비교해서 인접 뉴런 여부를 확인한다. 인접 뉴런일 경우 학습을 수행하며, 아닐 경우에는 대기한다.
그림 19는 제안된 구조의 SOM 학습 연산을 나타내는 타이밍 다이어그램이다. 그림 19에서 보면 각 pSPE마다 인덱스를 체크하는 시간이 서로 다른 것을 볼 수 있다. pSPE의 인접 pSPE 레지스터에서 인덱스들을 읽어 비교하는 시간에 의해 승자 뉴런이 가장 빠르고, 이웃반경에서 가장 외곽에 있는 이웃 뉴런이 인덱스를 체크하는 시간이 가장 늦다. 그러나 승자만이 가장 마지막까지 학습이 진행되기 때문에 각 뉴런들 인덱스를 체크하는 시간은 서로 다르더라도 학습 속도에 영향을 미치지 않는다.
표 9 는 SOM 학습 연산을 위해 pSPE 의 내부 블록이 어떻게 동작하는
가를 나타내고 있다. 표 9 를 참고하여 pSPE 의 ISIS set 를 작성하였다.
35
Index check
…
Index check
idle …
indexcheck
Index check
Index check
Index check
update1)(3tncω
update2,wω update3,wω
update2)(3tncω
update1)(3tncω update2)(3tncω
…update1)(2tncω update2)(2tncω
…update1)(2tncω update2)(2tncω
update3)(3tncω
update4,wω
update3)(3tncω …
Index check
update1)(1tncω …
Index check update1)(1tncω…
idle …Index check
winner neuron’s index& input patternwinner neuron’s index& input pattern
jixω− )( jixωη−WeightUpdate
WriteBack
updateij,ω =
update1,wω
…
Index check
…
Index check
idle …
indexcheck
Index check
Index check
Index check
update1)(3tncωupdate1)(3tncω
update2,wω update3,wωupdate3,wω
update2)(3tncωupdate2)(3tncω
update1)(3tncωupdate1)(3tncω update2)(3tncωupdate2)(3tncω
…update1)(2tncωupdate1)(2tncω update2)(2tncω update2)(2tncω
…update1)(2tncωupdate1)(2tncω update2)(2tncω update2)(2tncω
update3)(3tncωupdate3)(3tncω
update4,wωupdate4,wω
update3)(3tncωupdate3)(3tncω …
Index check
update1)(1tncωupdate1)(1tncω …
Index check update1)(1tncωupdate1)(1tncω…
idle …Index check
winner neuron’s index& input patternwinner neuron’s index& input pattern
jixω− )( jixωη−WeightUpdate
WriteBack
updateij,ωupdateij,ω =
update1,wω
…
그림 19. SOM 학습 연산의 타이밍 다이어그램
36
12
Wr w
i,k∆
END
11
wi,k
+∆
wi,k
=
wi,k∆
10
η(x k
-wi,k
)
Rd w
i,k-n
9
x k-w
i,k
addr
+1
Rd η
8
Rd w
i,k
Wr wi,k
-1∆
Rd x
n
Ret
urn
7
wi,k
-1
+∆w
i,k-1
=
wi,k
-1∆
addr
+1
6
η(x k-
1-wi,k
-1)
Rd w
i,k-1
5
x k-1
-wi,k
-1
addr
+1
Rd η
Rep
eat
4
Rd w
i,2
Wr w
i,1∆
Rd x
2
3
wi,1
+∆
wi,1
=
wi,1∆
addr
+1
2
η(x 1
-wi,1
)
Rd w
i,1
1
x 1-w
i,1
Rd η
0
Rd w
i,1
Rd x
1
Mul
tiplie
r
Add
er
Acc
umul
ator
Dua
l-Por
t M
emor
y
Para
met
er
Reg
iste
r
Inpu
t R
egis
ter
ISIS
Pr
oces
s Fl
ag
표 9. 출력층 pSPE의 내부 블록 동작
37
3.2.3 성능 분석
제안된 구조로 구현한 SOM 구조에 하나의 입력패턴이 입력된 다음부
터 학습 완료가 될 때까지의 시간(clock cycle)은 식(11)과 같이 표현된다.
QCNrt orSOM ×××= (11)
r : 이웃 반경
Nr : 초기 이웃 반경에 속해있는 출력층 뉴런의 개수
Q : 반경 감소 횟수
Co : 출력층의 pSPE의 연산시간(clock cycle)
표 10는 제안된 구조로 구현된 SOM 학습이 49㎒에서 동작되었을 때의 성능을 기존의 신경회로망 하드웨어와 비교한 것이다.
구 조 Map size MCUPS 비 고
The Proposed structure 8×8 263 FPGA
COKOS[10] 60×60 16 Accelerator Board
NBISOM_25[21] 5×5 146 Neurochips
MANTRA I[22] 6×10 13.9 DSPs
MCUPS (Mega Connection Updates per Second)
표 10. 신경회로망 하드웨어의 SOM 학습 알고리즘 성능 비교
비교한 신경회로망 하드웨어들이 구현한 출력층의 크기가 서로 다른 것
에도 불구하고 성능이 큰 차이가 없는 것은 승자 뉴런 주위만 선택적으로 학습하는 SOM의 특징 때문이라고 할 수 있다.
38
IV. 구현 및 실험 결과
4.1 하드웨어 구현
제안된 하드웨어 구조는 Verilog HDL을 이용하여 설계하였다. PC용 Xilinx ISE 7.1i와 EDK 7.1i를 통해서 세부 연산 모듈을 디자인하였으며, XST(Xilinx Synthesis Tool)을 사용하여 회로를 합성하였다. 타겟 디바이스
는 Virtex-ll (xc2v6000-4ff1152)로 하였다. 합성된 회로는 Mentor Graphic사의 ModelSim 5.8c를 이용하여 회로 검증을 수행하였다.
표 11은 pSPE 32개, LPE 1개로 구성된 MPU를 2개로 확장시키고, 이를 하드웨어로 구현한 결과이다.
Implementation Specification Description
Target Device Xilinx Virtex-ll (XC2V6000-4ff1152)
Number of slices per pSPE 431
Number of slices per LPE 140
Number of MULT 18X18s 64 out of 144
Number of BRAMs 132 out of 144
Number of slices 28073 out of 33792 (83%)
Number of slices Flip Flops 18690 out of 67584 (27%)
Number of 4 input LUTs 46620 out of 67584 (68%)
Minimum period 20.259 ns
Maximum Frequency 49.3 MHz
표 11. 구현된 하드웨어 사양
39
4.2 문자 인식 실험
문자 인식 실험은 제안된 구조로 구성된 신경회로망과 소프트웨어
(Matlab)로 모델링된 신경회로망과의 정확도를 비교하기 위해 수행하였다. 입력 패턴으로는 영문 알파벳 바탕체 폰트 26개를 사용하였다. 각 하나의 알파벳 문자를 픽셀당 8비트(0∼255)의 값을 가지는 16×16 그레이스케일
의 영상으로 표현한 후 픽셀 값을 0∼1로 정규화하였다.
그림 20는 정상패턴과 손상된 패턴을 나타낸다. 손상된 패턴은 학습된 신경회로망의 성능을 파악하기 위해 사용된다.
그림 20. 신경회로망의 학습에 사용된 알파벳 정상 패턴과 손상된 패턴
제안된 구조와 Matlab 모델링을 초기 연결가중치, 학습률 등의 파라미
터가 동일한 조건하에 신경회로망을 구성하여 BP 학습 알고리즘을 수행
하였다. 구성된 신경회로망 구조는 입력층의 뉴런 개수 256개, 은닉층 1개에 은
닉층 뉴런 개수 32개, 출력층의 뉴런 개수 5개를 구성한 MLP이다. 학습
률은 0.1이며, 에러 임계값 0.02보다 에러가 작아지면 학습이 중지시키는 방법을 사용하였다. 이때 학습에 걸린 반복 횟수는 약 5800회였다.
표 12는 실험 종료 후 제안된 구조와 Matlab 모델링의 결과로 얻은 출
력값과 연결가중치의 평균오차를 비교한 결과이다. 평균오차는 식(12)와 같은 수식으로 구하였다.
40
NT
HSerror
T
i
N
jijij
×
−
=∑∑= =1 1 (12)
T : Matlab 모델링에서의 패턴/연결가중치의 개수
N : 제안된 구조에서의 패턴/연결가중치의 개수
Sij : Matlab 모델링에서의 패턴/연결가중치의 데이터 수치
Hij : 제안된 구조에서의 패턴/연결가중치의 데이터 수치
구 분 error
최종 출력값 비교 0.0341
연결가중치 비교 0.1347
표 12. 학습 종료 후 제안된 구조와 Matlab 모델링간의 오차 비교 결과
제안된 구조와 Matlab 모델링간의 최종 출력값 평균오차는 표 12에서 나타낸 바와 같이 0.0341로 매우 근소한 오차를 보였다. 그러나 연결가중
치간의 평균오차는 0.1347로 최종 출력값의 비교치보다 큰 것을 볼 수 있
다. 이는 비교한 연결가중치의 개수가 최종 출력값의 개수보다 훨씬 많고, 반복 학습으로 인한 누적된 오차로 인하여 생긴 것이라 할 수 있다. 그러
나 신경회로망의 연결가중치들은 분산 저장의 특징을 가지고 있기 때문에 연결가중치간의 오차가 발생함에도 불구하고 최종 결과값의 평균오차가 매우 근소한 것을 나타낸 것 같이 신경회로망의 연산 결과 출력에는 큰 영향을 미치지 않는다.
41
4.3 임펄스 노이즈 검출 실험
제안된 구조의 SOM 학습 능력을 검증하기 위해 5×5 크기의 SOM으로 구성한 후 이미지의 정상 픽셀과 노이즈 픽셀 패턴 분류를 시도하였다
[23]. 그림 21과 같이 현재 관심을 가지고 있는 픽셀(C) 주변의 2차원 영
역을 설정하고 중앙 픽셀을 포함하는 4개의 직선 즉 수직, 수평, 그리고 양 사선의 평균값과 중앙 픽셀의 차이를 입력으로 하여 정상 픽셀과 노이
즈 픽셀 여부를 분류하였다.
x8x7x6
x5Cx4
x3x2x1
x5Cx4
x7
C
x2
x8
C
x1
x6
C
x3
x8x7x6
x5Cx4
x3x2x1
x5Cx4
x7
C
x2
x8
C
x1
x6
C
x3
그림 21. 2차원 영역에서 지역적 정보 추출
표 13은 학습에 적용할 파라미터이다.
파라미터 종류 파라미터 값
입력층 크기 m = 4
출력층 크기 5 X 5
초기 학습률 βinitial = 0.5
최종 학습률 βfinal = 0.02
초기 주변반경 Hinitial = 3
반경 감소 횟수 Q = 1000
총 학습 횟수 Q = 3000
표 13. SOM 학습에 필요한 파라미터
42
학습시킬 이미지는 256×256 크기의 8비트 그레이스케일 Lena 영상으로 선정하였다. 지역적 정보를 추출할 수 없는 상하좌우의 최외곽 픽셀을 제
외한 254×254 영역에서 그림 22과 같이 전체적으로 랜덤하게 10%의 확률
로 임펄스 노이즈를 발생시켜서 학습 패턴 64516개를 얻었다. 원본 영상
과 비교한 결과 중앙 픽셀이 임펄스 노이즈인 패턴은 6441개, 정상 픽셀
은 58075개이다. 표 13의 학습 환경을 구성하고 제안된 구조와 Matlab 모
델링에서 실험을 수행한 결과 아래와 같다.
그림 22. 10% 임펄스 노이즈가 있는 Lena 영상(왼쪽, 학습 패턴)과 15% 임펄스 노이즈가 있는 Lena 영상(오른쪽, 테스트 패턴)
그림 23, 24는 학습을 마치고 전체 패턴 중 정상 패턴과 임펄스 노이즈 패턴에 대한 2차원 SOM의 출력층 뉴런의 승리횟수 분포를 나타내고 있
다. 바닥의 x-y평면에서 각 격자는 SOM의 출력층 뉴런들에 해당하며, z축은 각 뉴런의 승리 횟수이다. 승리 횟수 분포를 보면 정상 패턴과 임펄스 노이즈 패턴의 상이한 분포 결과를 볼 수 있다.
43
1
2
3
4
5 1
2
3
4
50
2000
4000
6000
8000
10000
12000
14000
16000
18000
win
x
y
(a)
12
34
5 1
2
3
4
50
200
400
600
800
1000
1200
1400
win
x
y
(b)
그림 23. 정상 픽셀과 임펄스 노이즈 픽셀에 대한 승자 뉴런 분포도 Matlab 모델링 : (a) 정상 픽셀 (b) 임펄스 노이즈 픽셀
44
1
2
3
4
5 1
2
3
4
50
2000
4000
6000
8000
10000
12000
14000
16000
18000
win
x
y
(c)
1
2
3
4
5 1
2
3
4
50
200
400
600
800
1000
1200
1400
win
x
y
(d)
그림 24. 정상 픽셀과 임펄스 노이즈 픽셀에 대한 승자 뉴런 분포도 제안된 구조 : (c) 정상 픽셀 (d) 임펄스 노이즈 픽셀
45
학습된 SOM 구조에 15% 임펄스 노이즈가 있는 Lena 영상을 테스트 패
턴으로 입력하였을 때, 제안된 구조와 Matlab 모델링과의 비교 연산 결과
가 크게 다르게 되는 경우는 26959번이었다. 출력층의 뉴런 수는 N, 테스
트 패턴의 수를 I라고 하면 비교 연산 오차율 errcalc는 다음과 같다.
%74.110064516)125(
26959100)1(
26959=×
×−=×
−=
INerrcalc (13)
1.74% 오차가 발생하였지만 대부분 서로 인접한 뉴런이 승자 뉴런이 되기 때문에 SOM의 연산결과를 시각적으로 확인하는데 별 영향을 미치
지 못한다.
46
V. 결 론
본 논문에서는 신경회로망의 구성이 자유로운 ERNIE 구조의 장점을 유
지하고, 자체적으로 지도학습과 자율학습 알고리즘을 구현할 수 있는 하
드웨어 구조를 제안하였다. 연산 모듈의 내부 구조를 유연하게 변경할 수 있게 재설계함으로써, 자체적으로 학습 연산이 가능하도록 하여 신경회로
망의 구조 변화에 따른 학습 알고리즘 구현의 어려움이나 성능 저하를 해
결하였다. 또한 이렇게 구현된 학습 기능을 기존의 신경회로망 하드웨어
와 비교 분석하여 성능의 우수성을 확인하였다. 연산 모듈의 내부 구조를 유연하게 변경할 수 있는 메커니즘을 이용하
여 본 논문에서는 BP 알고리즘과 SOM 학습 알고리즘을 구현하였으나 더 많은 종류의 신경회로망 구조와 학습 알고리즘 구현도 가능할 것이라 기
대된다. 특히 BP 알고리즘의 단점인 긴 학습시간과 국부 최소점 수렴을 보완한 모멘텀 BP 알고리즘과 제어분야에 많이 사용되는 RBF 연산 등은 간단한 로직 부분 추가와 설정모드 변경으로 충분히 구현할 수 있을 것이
다. 이 부분이 보강된다면 독자적(Stand-Alone)으로 다양한 신경회로망을 구현할 수 있는 범용 신경회로망 하드웨어로서 유용하게 사용될 수 있을 것으로 기대된다.
47
VI. 부 록
6.1. 동작모드와 데이터/컨트롤 신호
6.1.1 데이터 버스 및 컨트롤 신호
제안된 구조에서는 뉴런의 입력 및 출력 패턴, 연결가중치 그리고 시냅
스 연산의 결과인 누적합 값, 학습에 필요한 오차신호 등 여러 가지의 데
이터가 존재하며 다양한 신호들을 이용하여 데이터의 흐름을 컨트롤 한다. 데이터 버스와 컨트롤 신호는 표 14, 15와 같이 정리할 수 있다.
이 름 크기(bit) 방향 내 용
datain 18 inout 입력 패턴, 연결가중치, 구성 비트
이전 MPU로 오차신호 출력 (역전파)
dataout 18 out 신경회로망 연산 결과 출력
passin 20 in 이전 pSPE로부터 시냅스 누적값 입력
이전 pSPE로부터 오차신호 입력
passout 20 out 다음 pSPE로 시냅스 누적값 출력
다음 pSPE로 오차신호 출력
calc_tempin 10 in 이전 MPU로부터 pSPE 결과값 입력
calc_tempout 10 out 다음 MPU로 pSPE 결과값 출력
errsig_datain 18 in 다음 MPU로부터 오차 신호 입력 (역전파)
표 14. 데이터 버스
48
이 름 방향 내 용
ndset in new data set: 입력 패턴이 입력됨
ale in address latch enable: 데이터(주소)가 입력됨
ldin in load data: 데이터가 입력됨
cmode in configuration mode
wmode in weight update mode
lmode in learning mode
pmode in pSPE inside programming mode
prev_addren in previous address enable
poe in previous output enable
accset in accumulator set
oein in 이전 MPU의 pSPE의 결과값 입력이 들어옴
errsig_ndset in error signal set: 오차신호가 입력됨
ovfl out overflow out
noe out next output enable
next_addren out next address enable
outvalid out output valid: 현재 출력값이 연산 결과값임
표 15. 주요 컨트롤 신호
49
18bit의 datain, errsig_datain 버스를 통하여 입력 패턴, 연결 가중치, pSPE와 LPE의 상태를 결정하는 구성 비트와 pSPE ISIS, 학습에 필요한 오차신
호 등을 입력 받으며 데이터 형식은 각 동작모드에 따라 그림 25, 26, 27, 28과 같다.
17 16 15 14 13 0
Null S int fraction
pSPE Working Mode (MLP)
17 16 15 8 7 0
Null int fraction
pSPE Working Mode (SOM)
17 16 12 11 4 3 0
0 Configuration bits Index Null
pSPE Configuration Mode
B4 B3 B2 B1 B0
Error Signal Output Enable
Used / Unused
Perceptron / SOM Start neuron End neuron
Configuration bit in pSPE configuration Mode
17 16 12 11 4 3 0
0 Address Index Null
Neighborhood Neuron of pSPE Setup Address (1)
17 16 9 8 0
0 Neighborhood neuron index Null
Neighborhood Neuron of pSPE Setup Index (2)
그림 25. datain 버스의 데이터 형식 (1)
50
17 16 12 11 8 7 0
0 Null Address Index
pSPE Parameter Register Address (1)
17 16 15 14 13 0
0 S int fraction
pSPE Parameter Register Data (2)
17 16 12 11 4 3 0
0 Address Index Null
pSPE ISIS Setup Address (1) 17 12 11 8 7 6 5 4 3 2 1 0
8×2 MUX 4×2 MUX 4×1 MUX CE ACCset
ACCpass
ACCCLR
ACC pass
Add / Sub
pSPE ISIS Data(1) 17 14 13 10 9 4 3 2 1 0 Address Counter
A Address Counter
B Parameter
Register ControlError Signal
Output Enable ISIS Process Flag
pSPE ISIS Data(2)
B3 B2 B1 B0 B5 B4 B3 B0 MSB Mask
Write Enable
Counterenable
Address up Parameter Register
Write Enable Parameter Register
Enable Parameter Register
Address
Counter Part Parameter Register Control Part
B1 B0 B1 B0 Error Signal propagate
Error Signal Out Enable Repeat Return
Error Signal Output Enable Part ISIS process Flag Part
그림 26. datain 버스의 데이터 형식 (2)
51
17 16 15 14 8 7 0
0 Null Index Address
pSPE Weight Update Address (1)
17 16 15 14 13 0
0 S int fraction
pSPE Weight Update Data - MLP (2)
17 16 15 8 7 0
0 Null Int fraction
pSPE Weight Update Data - SOM (2)
17 16 15 14 13 10 9 0
1 Configuration bits Select LUT LPE Index Address
LPE Index & LUT Address (1)
Select LUT = 0 ; Activation function LUT, 1; Derivation of activation function LUT
17 16 15 14 13 0
1 S int fraction
LPE LUT Data (2)
17 16 14 13 10 9 5 4 0
1 Null LPE Index Null Address
pSPE Index Setup in LPE (1)
17 16 8 7 0
1 Null pSPE Index
pSPE Index Setup in LPE (2)
그림 27. datain 버스의 데이터 형식 (3)
52
16 8 7 0
pSPE Index Null
Learning Mode – pSPE Index (1)
17 16 10 9 8 0
1 Null S Z or X (Output of Neuron in Forward phase)
Learning Mode – Z or X in MLP (2)
17 16 15 0
Null S Z(1-Z) or X(1-X)
Learning Mode – Z(1-Z) or X(1-X) in MLP (3)
17 16 15 0
0/1 S Error Signal
Learning Mode – Error Signal (4)
0 : output layer, 1 : hidden layer
17 16 15 0
Null S Error Signal
Learning Mode – Error Signal to pSPE(5)
17 10 9 0
Winner Neuron Index Input
Learning Mode - SOM
그림 28. errsig_datain 버스의 데이터 형식
53
10bit의 calc_temp 버스를 통하여 pSPE의 연산 결과값을 LPE에 입력하
게 된다. 데이터 형식은 그림 29과 같다.
9 8 0 5 0
S int fraction
MLP
9 3 2 0
Int fraction
SOM
그림 29. calc_temp 버스의 데이터 형식
두 개 이상의 pSPE가 서로의 로컬 메모리를 공유하여 시냅스 확장을 구현할 경우 pSPE에 누적된 입력과 연결가중치의 곱을 20bit passin 버스
를 통하여 인접 pSPE에 전달한다.. 또한 학습 연산시 은닉층에 필요한 오
차신호 연산을 위해 각 pSPE의 오차 신호들의 누적합을 passin버스를 통
하여 전달한다. 데이터 형식은 그림 30과 같다. 19 18 14 13 0
S int fraction
MLP
19 8 7 0
Int fraction
SOM
그림 30. passin 버스의 데이터 형식
54
6.1.2 동작 모드
동작 모드는 MPU를 구성하는 pSPE와 LPE의 상태를 규정하는 Configuration Mode, 신경회로망의 연결가중치를 갱신하는 Weight Update Mode, 그리고 실제적인 연산을 수행하는 Working Mode, 학습 연산을 수행
하는 Learning Mode로 구분된다.
Configuration Mode는 크게 pSPE Configuration Mode와 LPE Configuration Mode로 나눌 수 있다. 다시 pSPE Configuration Mode는 pSPE의 상태 레지
스터를 규정하는 모드와 pSPE 내부의 파라미터를 정하는 모드, pSPE의 ISIS를 설정하는 모드와 SOM 학습에 사용할 인접 뉴런의 인덱스를 저장
하는 모드로 나눌 수 있다. LPE Configuration Mode는 LPE의 상태 레지스터
와 LUT의 참조 데이터를 결정하는 모드와 해당 LPE가 구성하고 있는 MPU에 속해있는 pSPE의 인덱스를 저장하는 모드로 나눌 수 있다.
이런 모드는 몇 가지 컨트롤 신호에 의해 제어되며 이를 정리해 보면 표 16, 17, 18과 같다.
55
Configuration Mode pSPE Weight Update Mode
Configuration Parameter setup
pSPE ISIS setup
SOM neighborNeuron setup
Signal
status Address data Address Data Address DataAddress Data
Cmode H H H H H H H L L
Wmode L H H L L L L H H
Lmode L L L L L L L L L
Pmode L H H H H L L L L
ale L H L H L H L H L
ldin L L L L H L H L H
ndset L L L L L L L L L
acclr L L L L L L L L L
poe L L L L L L L L L
errsig_ndset L L L L L L L L L
표 16. pSPE 관련 동작 모드 컨트롤 신호
Configuration pSPE Index Setup Signal
Address Data Address Data
Cmode H H H H
Wmode L L L L
Lmode L L H H
Pmode L L L L
ale H L H L
ldin L L L L
ndset L L L L
acclr L L L L
poe L L L L
errsig_ndset L L L L
표 17. LPE 관련 동작 모드 컨트롤 신호
56
Signal Working pSPE ISIS Execution Learning
Cmode L L L
Wmode L L L
Lmode L L H
Pmode L H L
ale L L L
ldin H H L
ndset H/L (1 Clock Pulse) H/L (1 Clock Pulse) L
acclr H/L (1 Clock Pulse) H/L (1 Clock Pulse) L
poe H/L (1 Clock Pulse) H/L (1 Clock Pulse) L
표 18. 전체 시스템 동작 모드 컨트롤 신호
57
그림 31은 동작 모드를 이용하여 제안된 구조가 신경회로망으로 구현된 다음 연산과 학습을 수행하는 전체적인 과정을 나타내는 흐름도이다.
pSPE Configuration Mode
LPE configuration LUT(Look-up table) Setting
Parameter Setting Mode
Working Mode(MLP or Kohonen) Learning Mode
pSPE Internal structure instruction Setting Mode
pSPE Weight update Mode
Kohonen neighborhood Neuron Setup
Configuration Mode
Error
• Input pattern
• pSPE inside Instruction Set
• Neighborhood pSPE ID
• Parameter
• Activation Function• Differential Function• pSPE ID in LPE
• Configuration Bits
• Weight Data
pSPE Configuration Mode
LPE configuration LUT(Look-up table) Setting
Parameter Setting Mode
Working Mode(MLP or Kohonen) Learning Mode
pSPE Internal structure instruction Setting Mode
pSPE Weight update Mode
Kohonen neighborhood Neuron Setup
Configuration Mode
Error
• Input pattern
• pSPE inside Instruction Set
• Neighborhood pSPE ID
• Parameter
• Activation Function• Differential Function• pSPE ID in LPE
• Configuration Bits
• Weight Data
그림 31. 동작 흐름도
58
Ⅵ. 참고문헌
[1] Robert J. Schalkoff, Artificial neural networks, McGraw-Hill, pp.1-2, pp. 411,
1997.
[2] 윤석배, “모듈러 구조를 갖는 재구성형 대지털 신경회로망의 하드웨어 구현”, 인하대학교 석사논문, 2002.
[3] 김영주, “대규모 확장이 가능한 범용 연산기 : ERNIE", 인하대학교 석
사논문, 2004. [4] 정제교, 위재우, 동성수, 이종호, “범용 신경망 연산기(ERNIE)를 위한
학습 모듈 설계”, 대한전기학회 논문지, 제53권, 제12호, pp. 804-812, 2004.
[5] 오창석, “뉴로 컴퓨터”, 내하출판사, pp. 5, 2000. [6] 정슬, “인공지능시스템 I 신경회로망의 구조 및 사용법”, pp. 11, 2004 [7] Heemskerk J. N. H., “Overview of Neural Hardware”, Neurocomputers for
Brain-Style Processing. Design, Implementation and Application, Ph.D Thesis, Unit of Experimental and Theoretical Psychology Leiden University, The Netherlands, 1995.
[8] Kurosh Madani, Ghislain de Trémiolles, Pascal Tannhof, "Image Processing Using RBF like Neural Networks : A ZISC-036 Based Fully Parallel Implementation Solving Real World and Real Complexity Industrial Problems", Applied Intelligence 18, pp. 195-213, 2003.
[9] Nelson Morgen et al, "The ring array processor: A multiprocessing peripheral for connectionist applications", Journal of Parallel and Distuributed Computing, pp. 248-259, 1992.
[10] H.Speckmann, P.Thole, W.Rosenstiel, "A COprocessor for KOhonen's Selforganizing Maps(COKOS)", IEEE Proceedings of 1993 International Joint Conference on Neural Networks, pp.1951-1954, 1993.
[11] Dan Hammerstrom, "CNAPS - 1064 Digital parallel proessor", Product information AR800A, Adative solutions, Inc, 1992.
59
[12] Ramacher U., "SYNAPSE - A neurocomputer that synthesizes neural algorithms on a parallel systolic engine", Journal of Parallel and Distuributed Computing, 14, pp. 306-318, 1992.
[13] Charies E. Cox, W. Ekkehard Blanz, “GANGLION – A Fast Field-Programmable Gate Array Implementation of a Connectionist Classifier”, IEEE Journal of Solid-State Circuits, vol. 7, no. 3, pp. 288-299, 1992.
[14] Nazeih M. Botros, M. Abdul-Aziz, “Hardware Implementation of an Artificial Neural Network Using Field Programmable Gate Arrays (FPGA’s),” IEEE transaction on Industrial electronics, vol. 41, no. 6, pp. 665-667, 1994.
[15] H. Hikawa, “Implementation of Simplified Multilayer Neural Networks with On-chip Learning,” Proceedings of IEEE International Conference on Neural Networks, vol. 4, pp. 1633-1637, 1995.
[16] J. G.. Elredge, B. L. Hutchings, “RRANN: A hardware Implementation of the Backpropagation Algorithm Using Reconfigurable FPGAs,” IEEE World Conference on Computational Intelligence, vol. 4, pp. 2097-2102, 1994.
[17] Xilinx Inc, Virtex-ll platform FPGAs: Complete Data Sheet,
http://www.xilinx.com, 2005.
[18] Xilinx Inc, MicroBlaze Processor Reference Guide, http://www.xilinx.com, 2005.
[19] Jim Torresen, "Parallelization of Backpropagation Training for Feed-Forward Neural Networks", Ph.D thesis, The Norwegian institute of Technology The University of Trondheim, pp. 58, 1996.
[20] T.Kohonen, Self-Organizing Maps, Springer, Berlin, 1995.
[21] S. Ruping, M. Porrmann, P. Ruckert, “SOM accelerator system,”
Neurocompting, vol. 21, pp. 31-50, 1998.
[22] Paolo lenne, Patrick Thiran, Nikolaos Vassilas, "Modified Self-Organizing Feature Map Algorithms for Efficient Digital Hardware Implementation", IEEE Transaction on Neural Networks, Vol. 8, No. 2, pp.315-330, 1997.
60
[23] 송승민, 이종호, 동성수, 위재우, “Self-Organizing Neural Network을 이용한 임
펄스 노이즈 검출과 선택적 미디언 필터 적용”, 대한전기학회 논문지, 제54
권, 제3호, pp166-173, 200