69
공학석사학위 청구논문 지도 / 자율 학습이 가능한 재구성형 디지털 신경회로망 하드웨어 구현 Hardware Implementation of Supervised / Unsupervised Learning Reconfigurable Neural Network Architecture 2006 2 인하대학교 대학원 정보통신공학과

Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

공학석사학위 청구논문

지도 / 자율 학습이 가능한 재구성형 디지털

신경회로망 하드웨어 구현

Hardware Implementation of Supervised / Unsupervised Learning Reconfigurable Neural Network Architecture

2006 年 2 月

인하대학교 대학원

정보통신공학과

유 인 갑

Page 2: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

공학석사학위 청구논문

지도 / 자율 학습이 가능한 재구성형 디지털

신경회로망 하드웨어 구현

Hardware Implementation of Supervised / Unsupervised Learning Reconfigurable Neural Network Architecture

2006 年 2 月

지도교수 이 종 호

이 논문을 석사학위 논문으로 제출함

인하대학교 대학원

정보통신공학과

유 인 갑

Page 3: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

이 논문을 유인갑의 석사학위논문으로 인정함

2006 年 2 月

주심 _____________________

부심 _____________________

위원 _____________________

Page 4: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

국문요약

신경회로망은 응용분야나 적용케이스에 따라 구조의 크기나 종류, 학습

알고리즘이 다양하다. 이런 점이 범용 신경회로망 하드웨어 구현에 제약을 준다. 본 논문에서는 이러한 문제를 해결하기 위해 지도학습과 자율학습이 가능한 재구성형 신경회로망 하드웨어 구조를 제안한다. 제안된 하드웨어 구조는 신경회로망 구성이 자유로운 기존의 모듈러 신경회로망 하드웨어 구조(ERNIE)를 기반으로 되어있으며, 핵심 연산 모듈의 내부 구조를 유연하게 변경할 수 있도록 설계함으로써 자체적으로 지도 학습과 자율 학습 알고리즘 구현이 가능하게 하였다. 제안된 하드웨어 구조를 FPGA에 구현하여, BP 알고리즘이 가능한 다층 퍼셉트론과 SOM으로 구성한 후, 문자 인식 실험과 임펄스 노이즈 검출 실험을 하였다. 그리고 같은 방법으로 Matlab으로 구현한 신경회로망으로 실험한 결과와 비교하여 그 유용성을 확인하였다.

Page 5: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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.

Page 6: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

목 차

국문요약 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

Page 7: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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

Page 8: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

그림 목차

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

Page 9: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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

Page 10: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

1

I. 서 론

신경회로망은 인간의 신경세포를 수학적으로 모델링한 것으로서 복잡한 비선형 시스템 제어, 패턴인식 등 기존의 컴퓨터가 해결하기 어려운 응용

분야에서 많이 사용되고 있는 알고리즘이다[1]. 신경회로망은 병렬, 분산 처리를 본질적인 특징으로 가지기 때문에 기존의 디지털 컴퓨터의 소프트

웨어 시뮬레이션만으로는 한계가 있고, 그에 따라 신경회로망 전용 하드

웨어의 구현을 필요로 하게 된다. 신경회로망은 응용분야나 적용 케이스마다 사용하는 구조나 종류, 학습

알고리즘이 다양하기 때문에 신경회로망 하드웨어가 소프트웨어 시뮬레이

터에 비해 성능이 월등하더라도 특정한 형태로 고정된 구조의 기능만을 수행한다면 이용가치가 떨어지게 된다. 따라서 특정 수준 이상의 범용성

은 신경회로망 하드웨어의 필수 조건이라 할 수 있다[2]. 본 논문에서 사용한 ERNIE(Expansible & Reconfigurable Neuro Informatics

Engine)[3]는 다양한 신경회로망을 자유롭게 구성할 수 있는 FPGA(Field Programmable Gate Arrays)기반의 신경회로망 하드웨어 구조이다. ERNIE는 신경회로망의 재구성이 가능하며 동시에 대규모 확장이 가능하다는 장점

을 가지고 있다. 그러나 ERNIE는 연산 기능만을 수행하고 PC에서 학습을 담당하는 형태이기 때문에, 공학적으로 유용하게 사용되기 위해서는 자체

적으로 학습이 가능해야 한다. 학습 기능을 구현하는 방법은 크게 두 가지로 생각해 볼 수 있다. 첫

번째는 학습 연산 전용 범용 마이크로프로세서를 추가하는 방법이다. 구

현이 비교적 용이하여 학습 모듈의 구현 범위가 넓고 자유롭다는 장점이 있으나, 범용 마이크로프로세서뿐만 아니라 프로그램을 저장하는 메모리

가 별도로 필요하다는 점에서 시스템의 면적이 증가하는 단점이 있다. 두 번째는 전용 학습 모듈을 추가하는 방법이다[4]. 전용 학습 모듈을 사용하

므로 구성이 간단하고 별도의 프로그램 저장용 메모리가 필요하지는 않으

나, 자유도가 떨어지고 다양한 학습 알고리즘 적용이 어렵다는 단점이 있

다. 또한 위의 두 가지 방법은 이미 구현된 학습 기능만을 수행할 수 있

Page 11: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

2

다는 점에서 응용분야나 적용 케이스에 따른 구조 변화에 의한 성능 저하

가 생기게 된다. 본 논문에서는 앞서 언급한 문제점을 극복하기 위하여 ERNIE의 연산

모듈 내부를 재설계하여 학습 기능을 구현하였다. 연산 모듈이 자체적으

로 학습 연산을 수행함에 따라 신경회로망의 구조 변화에 따른 학습 알고

리즘 구현의 어려움이나 성능 저하를 해결할 수 있다. 또한 구현된 학습 기능에 대한 성능을 기존의 신경회로망 하드웨어와 비교 분석하여 성능의 우수성을 확인하였다.

본 논문의 구성은 다음과 같다. 1장에서는 신경회로망의 전반적인 내용

과 신경회로망 하드웨어의 분류에 대해서 설명한다. 그리고 2장에서는 제

안된 디자인의 기반이 되는 ERNIE구조를 설명하고, 제안된 구조의 설계

에 대해서 자세히 설명한다. 3장에서는 제안된 구조를 이용해서 신경회로

망의 대표적인 학습 알고리즘인 BP(Back-propagation)알고리즘과 SOM(Self-Organizing Maps)을 구현한 방법과 성능 분석에 대해서 설명한다. 4장에서

는 제안된 구조를 FPGA로 구현하고, 제안된 구조를 이용하여 MLP(Multi-Layer Perceptron)와 SOM를 구성하여 영문 알파벳 인식 실험과 임펄스 노

이즈 검출 실험을 수행한 결과를 설명한다.

Page 12: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

3

1.1. 신경회로망 개요

인간의 뇌와 폰 노이만(Von Neumman)형 컴퓨터의 차이점은 대규모 병

렬 및 분산 처리 형태와 학습을 통한 문제 해결에 있다. 이러한 인간의 뇌가 가지는 특성을 흉내 내는 연산 방법이 신경회로망이다. 표 1은 폰 노이만(Von Neumman)형 컴퓨터와 신경회로망의 차이점을 나타낸다[5].

구 분 폰 노이만형 컴퓨터 신경회로망

처리 자료 디지털 디지털, 아날로그

처리 방식 순차 처리 병렬 처리

기본 소자 논리 소자 뉴런

실행 근거 프로그램 학습

정보 저장 기억 장치 뉴런간 연결가중치

정보 검색 주소 지정 내용에 의함

응용분야 복잡한 연산 연상, 인식

표 1. 폰 노이만 컴퓨터와 신경회로망의 비교

그림 1은 신경회로망에서의 일반적인 뉴런의 구조를 나타난다. 뉴런들 간의 연결가중치를 학습이라는 과정을 통하여 결정한 후 병렬적으로 연산

을 수행함으로써 연상, 인식 등과 같은 작업을 수행할 수 있다.

Page 13: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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) 방식으

로 나눌 수 있다. 지도 학습 방식은 항상 목표값이 있어 출력값이 목표값

을 만족하도록 학습하는 방식이며, 자율 학습 방식은 목표값 없이 자율적

으로 출력을 내보내는 방식이다.

Page 14: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

5

1.2 신경회로망 하드웨어

초창기의 신경회로망 하드웨어는 대부분 아날로그 기술로 만들어졌으나 반도체 기술의 비약적인 발전에 힘입어 디지털 신경회로망의 구현 연구가 활성화되기 시작했다. ASIC 기술이 발전하고 FPGA가 등장함에 따라 빠르

고 집적도가 높은 디지털 VLSI의 구현이 가능해졌고, 이를 이용한 신경회

로망 칩도 많이 개발되어 상업용 신경회로망 칩도 활발히 개발되었다.

표 2는 아날로그 신경회로망과 디지털 신경회로망의 장단점을 나타낸다

[7].

구분 아날로그 신경회로망 하드웨어 디지털 신경회로망 하드웨어

장점

■ 직관적으로 구현용이

■ 상대적인 빠른 속도

■ 적은 면적

■ 연결가중치 저장용이

■ 유연하게 구조 구성 가능

■ 외부 환경적 요인에 강인

■ 쉬운 인터페이스

단점

■ 연결가중치 저장 문제

■ 범용성 제한

■ 외부 환경적 요인으로 인한

오차율 증가(전기적 잡음, 온도)

■ 인터페이스 구현 어려움

■ 곱셈기로 인한 넓은 면적

■ 대규모 신경회로망에서의

상대적인 느린 속도

표 2. 아날로그 신경회로망과 디지털 신경회로망의 장단점 비교

Page 15: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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]가 대표적인 예이다.

Page 16: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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의 특징을 효율적으로 이용하는 방법이나 재

구성하는 시간이 별도로 필요한 단점이 있었다.

Page 17: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

8

II. 지도/자율학습이 가능한 재구성형 디지털

신경회로망 하드웨어 구조

본 논문에서는 신경회로망 구성이 자유로운 모듈러 신경회로망 하드웨

어 구조인 ERNIE를 기반으로 해서 자체적으로 학습 연산이 가능한 하드

웨어 구조를 디자인하였다. 제안된 구조의 데이터 버스의 크기나 메모리 용량은 Virtex-ll(XC2V6000)[17]에 맞게 설계하였다. 본 장에서는 우선 ERNIE 구조에 대해 설명하고 제안된 구조의 설계에 대해 자세히 설명하

고자 한다.

2.1 ERNIE

ERNIE는 신경회로망을 하드웨어로 구현함에 있어서 문제점으로 지적되

어 왔던 범용성 및 구조 확장을 해결하기 위하여 설계된 SIMD(Single Instruction Multiple Data)구조와 마스터-슬레이브(Master-Slave) 구조를 응용

한 모듈러 신경회로망 하드웨어 구조이다. SIMD구조는 하나의 명령으로 여러 유니트들이 동시에 동작하는 특성으로 인해, 많은 양의 데이터를 병

렬적으로 처리해야 하는 신경회로망에 적합한 구조이다. ERNIE는 이 구조

를 응용하여 병렬 처리뿐만 아니라 각 PE의 설정에 따라 서로 다른 동작

을 수행함으로써 신경회로망의 재구성을 가능하도록 하였다. 또한 연산을 수행하는 각각의 PE들 사이에 마스터-슬레이브 방식으로 데이터를 전달함

으로써 신경회로망의 시냅스, 뉴런, 레이어에 대한 구조 확장시 발생하는 시냅스의 비선형적 증가에 따른 문제를 해결하였다.

Page 18: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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의 블록 다이어그램

Page 19: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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. 내부 연결버스를 통한 시냅스 확장

Page 20: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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의 블록 다이어그램

Page 21: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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의 블록 다이어그램

Page 22: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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. 제안된 구조의 블록 다이어그램

Page 23: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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. 제안된 구조에서의 시냅스의 확장

Page 24: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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)할 수 있도록 하였다. 하드웨어 구조의 단순화로 위해 가중치와 입력패턴, 그리

고 가중치 변화량을 하나의 메모리로 공유하며, 서로 주소로 구분

Page 25: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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의 블록 다이어그램

Page 26: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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의 블록 다이어그램

Page 27: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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

Page 28: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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. 마스터 컨트롤러를 포함한 전체 시스템 블록 다이어그램

Page 29: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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)

출력값과 목표값이 일치하면 학습이 일어나지 않으며, 그렇지 않은 경

우 출력값과 목표값의 차이를 감소시키는 방향으로 연결강도를 조절하기 위해 학습을 수행한다.

Page 30: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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보다 작거나 설정

한 최대 학습 반복 회수를 넘으면 학습을 종료한다.

Page 31: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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. 마스터 컨트롤러에서 각 출력층 뉴런의 오차신호를 연산하여 제

안된 구조에 순차적으로 입력한다.

Page 32: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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를 작성하였다.

Page 33: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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 알고리즘 연산 타이밍 다이어그램

Page 34: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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의 내부 블록 동작

Page 35: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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)

Page 36: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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)

Page 37: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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 학습 알고리즘 성능을 보여준다.

Page 38: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

29

그림 16. 제안된 구조에서의 BP 알고리즘 성능(MCUPS)

은닉층 뉴런의 pSPE의 개수가 많을수록 연산속도는 점점 증가하는 것

을 알 수 있다. 이는 제안된 구조를 대규모 MLP 구조로 구성하여 BP 알

고리즘을 적용할 경우에도 좋은 성능을 낼 수 있다는 것을 보여준다. 그

러나 은닉층의 pSPE가 너무 많으면 오히려 성능의 효율이 점점 둔화되는 것을 볼 수 있다. 그림 15를 보면 오차신호를 연산하여 전파하는 간격이 출력층보다 은닉층이 더 길다. 은닉층의 pSPE가 많을수록 전파되는 간격

이 커져서 연산시간에 영향을 미치기 때문이다.

Page 39: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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 알고리즘 성능 비교

Page 40: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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)으로 선정되며 승자 뉴런과 이와 인접한 뉴런들만이 제시된 입력에 대하여 학습이 허용된다. 그리고 실제 네트워

Page 41: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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과 같이 초기에 설

정한 인접 반경에서 학습을 진행하면서 하나씩 감소시켜 최종적으로 승자 뉴런에 대해서만 학습하도록 한다.

Page 42: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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, 마스터 컨트롤러의 역할

Page 43: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

34

제안된 구조의 SOM 학습 알고리즘 수행과정은 다음과 같다.

단계 1. 마스터 컨트롤러는 승자 뉴런에 해당하는 pSPE 인덱스와 입력패

턴을 제안된 구조로 출력한다.

단계 2. 출력층을 구성하는 pSPE는 마스터 컨트롤러에서 입력받은 승자 뉴런의 인덱스를 자신의 인덱스와 비교한다. 일치할 경우 해당 pSPE는 자신을 승자 뉴런으로 인지하고 학습을 시작하며, 아닐 경우 인접 뉴런 인덱스 레지스터에 저장하고 있는 인덱스와 비교해서 인접 뉴런 여부를 확인한다. 인접 뉴런일 경우 학습을 수행하며, 아닐 경우에는 대기한다.

그림 19는 제안된 구조의 SOM 학습 연산을 나타내는 타이밍 다이어그램이다. 그림 19에서 보면 각 pSPE마다 인덱스를 체크하는 시간이 서로 다른 것을 볼 수 있다. pSPE의 인접 pSPE 레지스터에서 인덱스들을 읽어 비교하는 시간에 의해 승자 뉴런이 가장 빠르고, 이웃반경에서 가장 외곽에 있는 이웃 뉴런이 인덱스를 체크하는 시간이 가장 늦다. 그러나 승자만이 가장 마지막까지 학습이 진행되기 때문에 각 뉴런들 인덱스를 체크하는 시간은 서로 다르더라도 학습 속도에 영향을 미치지 않는다.

표 9 는 SOM 학습 연산을 위해 pSPE 의 내부 블록이 어떻게 동작하는

가를 나타내고 있다. 표 9 를 참고하여 pSPE 의 ISIS set 를 작성하였다.

Page 44: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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 학습 연산의 타이밍 다이어그램

Page 45: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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의 내부 블록 동작

Page 46: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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의 특징 때문이라고 할 수 있다.

Page 47: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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. 구현된 하드웨어 사양

Page 48: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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)와 같은 수식으로 구하였다.

Page 49: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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로 최종 출력값의 비교치보다 큰 것을 볼 수 있

다. 이는 비교한 연결가중치의 개수가 최종 출력값의 개수보다 훨씬 많고, 반복 학습으로 인한 누적된 오차로 인하여 생긴 것이라 할 수 있다. 그러

나 신경회로망의 연결가중치들은 분산 저장의 특징을 가지고 있기 때문에 연결가중치간의 오차가 발생함에도 불구하고 최종 결과값의 평균오차가 매우 근소한 것을 나타낸 것 같이 신경회로망의 연산 결과 출력에는 큰 영향을 미치지 않는다.

Page 50: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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 학습에 필요한 파라미터

Page 51: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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축은 각 뉴런의 승리 횟수이다. 승리 횟수 분포를 보면 정상 패턴과 임펄스 노이즈 패턴의 상이한 분포 결과를 볼 수 있다.

Page 52: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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) 임펄스 노이즈 픽셀

Page 53: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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) 임펄스 노이즈 픽셀

Page 54: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

45

학습된 SOM 구조에 15% 임펄스 노이즈가 있는 Lena 영상을 테스트 패

턴으로 입력하였을 때, 제안된 구조와 Matlab 모델링과의 비교 연산 결과

가 크게 다르게 되는 경우는 26959번이었다. 출력층의 뉴런 수는 N, 테스

트 패턴의 수를 I라고 하면 비교 연산 오차율 errcalc는 다음과 같다.

%74.110064516)125(

26959100)1(

26959=×

×−=×

−=

INerrcalc (13)

1.74% 오차가 발생하였지만 대부분 서로 인접한 뉴런이 승자 뉴런이 되기 때문에 SOM의 연산결과를 시각적으로 확인하는데 별 영향을 미치

지 못한다.

Page 55: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

46

V. 결 론

본 논문에서는 신경회로망의 구성이 자유로운 ERNIE 구조의 장점을 유

지하고, 자체적으로 지도학습과 자율학습 알고리즘을 구현할 수 있는 하

드웨어 구조를 제안하였다. 연산 모듈의 내부 구조를 유연하게 변경할 수 있게 재설계함으로써, 자체적으로 학습 연산이 가능하도록 하여 신경회로

망의 구조 변화에 따른 학습 알고리즘 구현의 어려움이나 성능 저하를 해

결하였다. 또한 이렇게 구현된 학습 기능을 기존의 신경회로망 하드웨어

와 비교 분석하여 성능의 우수성을 확인하였다. 연산 모듈의 내부 구조를 유연하게 변경할 수 있는 메커니즘을 이용하

여 본 논문에서는 BP 알고리즘과 SOM 학습 알고리즘을 구현하였으나 더 많은 종류의 신경회로망 구조와 학습 알고리즘 구현도 가능할 것이라 기

대된다. 특히 BP 알고리즘의 단점인 긴 학습시간과 국부 최소점 수렴을 보완한 모멘텀 BP 알고리즘과 제어분야에 많이 사용되는 RBF 연산 등은 간단한 로직 부분 추가와 설정모드 변경으로 충분히 구현할 수 있을 것이

다. 이 부분이 보강된다면 독자적(Stand-Alone)으로 다양한 신경회로망을 구현할 수 있는 범용 신경회로망 하드웨어로서 유용하게 사용될 수 있을 것으로 기대된다.

Page 56: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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. 데이터 버스

Page 57: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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. 주요 컨트롤 신호

Page 58: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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)

Page 59: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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)

Page 60: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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)

Page 61: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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 버스의 데이터 형식

Page 62: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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 버스의 데이터 형식

Page 63: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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과 같다.

Page 64: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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 관련 동작 모드 컨트롤 신호

Page 65: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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. 전체 시스템 동작 모드 컨트롤 신호

Page 66: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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. 동작 흐름도

Page 67: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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.

Page 68: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

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.

Page 69: Hardware Implementation of Supervised / Unsupervised Learning … · 2010-10-16 · Abstract Artificial neural networks have various sizes, types and learning algorithms depending

60

[23] 송승민, 이종호, 동성수, 위재우, “Self-Organizing Neural Network을 이용한 임

펄스 노이즈 검출과 선택적 미디언 필터 적용”, 대한전기학회 논문지, 제54

권, 제3호, pp166-173, 200