과일을 구별하는데 사용하는 인공신경망 프로그램 개발

한 현각, 박 찬영*

순천향대학교 산소재화학공학부, *전남대학교 정밀화학공학과

Theories and Applications of Chem. Eng., 2002, Vol. 8, No. 1

화학공학의 이론과 응용 제8권 제1호 2002년

Development of Neural Network programs used in Fruits Distinction

Han Hun Kak, Park Chan Young*

Material and Chemical Engineering Soonchunhyang University

*Fine Chemical Engineering Chonnam National University

서론

인공지능이란 사람에 의해 만들어진 지능을 말하며, 신경망이란 사람의 뇌의 구조를 단순화시켜 수학적으로 모델링한 것이다. 신경망은 기본적으로 사람의 뇌 구조와 동작방식을 따르고 있으며, 신경망의 특성은 학습(Learning), 일반화(Generalization), 추상화(Abstraction),  연관(Association), 분류(Classification), 완만한 성능저하(Graceful Degradation) 등이 있다. 이러한 신경망의 특성들은 모두 신경망이 뇌의 구조와 동작방식, 즉 대규모 병렬 동작과 지식의 분산 표현 방식 등을 모사함으로써 자연스럽게 얻어졌다.

신경망 회로구성

① 신경망구조

Network(망): 자신이 속한 층, 면, 신경세포, 연결들의 행렬 변수에서의 시작 인덱스와

개수를 저장할 필드를 가짐

Layer(층): 신경망의 층을 표현하기 위한 것으로 자신이 속한 면과 신경세포의 시작

인덱스와 개수를 각각 저장할 네 개의 필드를  가진다.

Plane(면): 면이 가지는 특징을 저장하기 위한 네 개의 필드를 가짐

Neuron(신경세포): 신경세포를 프로그램 언어로 표현하기 위한 특성을 갖는 아홉 개의

필드를 가짐

Connection(연결): 신경세포간의 연결을 나타내는 특성을 갖는 4개의 필드를 가진다.

② 신경망 패턴에는 다음의 패턴이 있다.

learning pattern: (input pattern, target pattern),  out pattern

③ 신경망구성 예

5개의 신경세포가 있으며 6개의 연결이 있는 신경망에서 변수는 다음과 같이 선언한다.

Network nw[1], Layer ly[3], Neuron nn[5], Connection    cn[6]

신경세포 행열에서 각 필드의 값은

	nn[0]	nn[1]	nn[2]	nn[3]	nn[4]
start connection	0	0	0	2	4
number of connection	0	0	2	2	2

연결 행렬에서 각 필드의 값은

	cn[0]	cn[1]	cn[2]	cn[3]	cn[4]	cn[5]
connected neuron	0	1	0	1	2	3

층에서 각 필드의 에서 start neuron, number of neuron

첫번째 층에서 각각 0, 2, 두 번째 층에서  각각 2, 2,  세 번째 층에서 각각 4, 1

망에서 각 필드의 값은 start neuron=0, number of neuron=5, start connection=0,

number of connection=6, start layer=0, number of layer=3

위의 결과를 요약하면.

Fig.1. Structure of the Neural Networks

Fig.2. Relationship between Neural Networks

신경망을 학습하는 방법

① Hebbian rules

1949년 Hebb에 의핸 최초의 신경망 학습 규칙으로 만들어진 학습규칙으로

[eqn: rm w(n ew) sub i,j ~=~ w(old) sub i,j ~+~ alpha a subi a sub j]

w(new)i,j : 신경세포 i, j사이의 조절된 후 연결 가중치

w(old)i,j  : 신경세포 i, j사이의 조절되기 전 연결 가중치

에러는

[eqn: rm error sub p ~=~ sqrt{(O sub p,0 - t sub p,0 ) sup2 ~+~ (O sub p,1 - t sub p,1 ) sup2 ~+~ CDOT cdot cdot ~+~ (O sub p,n - t sub p, ) sup2}## rm =~sqrt{ SUM sub j (O sub p,j - t sub p, ) sup2}~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~]

② 델타규칙

델타규칙은 1957년 Rosenblatt에 의해 만들어진 두 번째 신경망 학습규칙이다. 연결가중치를 조절함으로써 신경망을 학습시킨다는 개념은 헤브의 규칙과 동일하지만 연결가중치를 조절하는 방법은 다음과 같다.

[eqn: rm w(n ew) sub i,j ~=~ w(old) sub i,j ~+~ alpha e subi a sub i## rm e sub j ~=~ t sub j ~-~ a sub j~~~~~~~~]

③ 일반화된 델타규칙

일반화된 델타규칙은 1986년 Rumelhart에 의해 만들어진 학습규칙으로 가장 유명한 신경망 학습규칙 중의 하나이다. 일반화된 델타규칙을 error backpropagation algorithm 이라고 부르며, 이것을 사용하는 신경망 모델을 error backpropagation model 이라 부른다.

[eqn: rm w(n ew) sub i,j ~=~ w(old) sub i,j ~+~ alpha delta sub j a sub i~~~~~~~~~~~~~~~~~## rm delta sub j ~=~ a sub j (1-a sub j ) e sub j~~~~~~~~~~~~~~~~~~~~~~~~## rm e sub j ~=~ t sub j ~-~ a sub j~~ <-~ 출력층 ~신경세포 ~경우## rm =~ sum subk w sub jk delta sub k ~<-~ 은닉층~ 신경세포~ 경우]

입력된 자료에 근접한 과일을 골라내는 프로그램

목적: 과일 종류별로 색깔, 맛, 크기, 모양 등의 자료에 의해 과일의 종류를 판별

입력패턴: 20개, 출력패턴: 10개, 은닉층: 10개

과일 종류;  0: 바나나, 1: 사과, 2: 파인애플, 3: 딸기, 4: 배, 5: 포도, 6: 감,

7: 오렌지, 8. 수박, 9. 레몬

		0	1	2	3	4	5	6	7	8	9
color ------taste tree seed shape ------ ------ rind	0. red 1. yellow 2. green 3. blue 4. brown 5. size 6. sweet 7. sour 8. etc 9. tree 10. size 11. number 12. size 13. round 14. long 15. many 16. hardness 17. juice 18. thickness 19. smothness	0.0 0.9 0.1 0.0 0.2 0.7 0.7 0.0 0.2 1.0 1.0 0.0 0.0 0.0 1.0 0.0 0.3 0.0 0.6 0.8	0.8 0.2 0.3 0.0 0.2 0.5 0.7 0.4 0.2 1.0 0.7 0.4 0.4 1.0 0.0 0.0 0.7 0.6 0.3 0.9	0.0 1.0 0.1 0.0 0.2 0.7 0.9 0.0 0.1 1.0 1.0 0.0 0.0 0.8 0.2 0.0 0.7 0.8 0.7 0.1	1.0 0.0 0.1 0.0 0.0 0.3 0.6 0.3 0.2 0.0 0.0 0.8 0.1 0.8 0.1 0.0 0.3 0.6 0.0 0.4	0.0 0.8 0.0 0.0 0.2 0.5 0.7 0.2 0.2 1.0 0.7 0.4 0.5 1.0 0.0 0.0 0.7 0.7 0.4 0.6	0.1 0.0 0.4 1.0 0.1 0.2 0.7 0.3 0.2 1.0 0.4 0.2 0.2 1.0 0.0 0.9 0.3 0.7 0.3 0.8	0.1 0.5 0.0 0.0 0.7 0.4 0.4 0.0 0.7 1.0 0.8 0.4 0.5 0.8 0.0 0.0 0.2 0.6 0.1 0.8	0.0 0.7 0.0 0.0 0.6 0.4 0.8 0.3 0.2 1.0 0.5 0.1 0.3 0.8 0.0 0.0 0.4 0.8 0.6 0.7	0.0 0.0 1.0 0.0 0.0 0.9 0.8 0.0 0.2 0.0 0.0 0.9 0.5 0.9 0.0 0.0 0.8 0.8 0.9 0.9	0.0 0.9 0.0 0.0 0.0 0.6 0.7 0.0 0.2 0.0 0.0 0.9 0.2 0.8 0.2 0.0 0.8 0.8 0.4 0.8

과일별 입력자료

0:  0.99 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

1:  0.00 0.99 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

2:  0.00 0.00 0.99 0.00 0.00 0.00 0.00 0.00 0.00 0.00

3:  0.00 0.00 0.00 0.99 0.00 0.00 0.00 0.00 0.00 0.00

4:  0.00 0.00 0.00 0.00 0.99 0.00 0.00 0.00 0.00 0.00

5:  0.00 0.00 0.00 0.00 0.00 0.99 0.00 0.00 0.00 0.00

6:  0.00 0.00 0.00 0.00 0.00 0.00 0.99 0.00 0.00 0.00

7:  0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.99 0.00 0.00

8:  0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.99 0.00

9:  0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.99

학습 후 출력패턴

참고문헌

1). Haykin, S. "Neural Networks a comprehensive foundation", Macmillan College

Publishing Co., (1994).

2). Freeman J.A. and Skapura, D.M., "Neural Networks Algorithm, Application and

Programming Techniques", Addison-Wesley Publishing Co., (1992).