값을 구하기 위해 어떤 방법을 사용하였는지 설명한 후

바람직한 실시예의 상세한 설명

이제, 본 발명의 상세한 바람직한 구성이 첨부된 도면을 참조하여 설명될 것이다. 오직 바람직한 실시예에 의해, LTG 뉴런 모델이 다음의 논의를 위해 사용될 것이다. 다른 많은 뉴런 모델들이 이용가능하고, 따라서 본 발명의 DR 훈련 방법 또는 알고리즘에 따라 NN을 구성하는데 사용될 수 있다는 것이 이해되어야만 한다. 그러므로, 본 발명은 첨부된 도면에 도시된 특정 뉴런 모델에 한정되지 않는다. 따라서, 상세한 설명 전체에 걸쳐, 용어 "LTG" 또는 "LTG들"은, 단순히 "어느 적당한 뉴런 모델"을 의미하는 것으로 구성되어야만 한다.

이제 설명될 본 발명의 다른 양태와 함께, 본 발명의 DR 훈련 알고리즘은 어느 적당한 컴퓨터 소프트웨어 및/또는 하드웨어를 사용하여 실행될 수 있다. 따라서 본 발명은 어느 특정한 실제적 실행에 한정되지 않는다. 본 발명의 DR 훈련 알고리즘 수행 능력을 평가하는 목적은, 실험을 통해, 본 발명의 다른 양태들 및 알고리즘이 기대한 대로 작동했고, 알고리즘이 코드대로 프로그램되었고, 컴퓨터 소프트웨어를 사용하여 실행되었다는 것을 증명하는 것이다.

NN은 망을 형성하기 위해 다양한 구성으로 함께 연결된 뉴런의 결합이다. 2-입력 피드-포워드 NN (10)의 기본 구조는 예로 도 1에 개략적으로 도시된다. NN (10)은 첫 번째 또는 입력 층 (16)에 배치된 2개의 입력 뉴런 (12),(14)을 포함한다. 각각의 입력 뉴런 (12),(14)은 그것의 출력을 은닉 층 (24)에 배치된 3개의 뉴런 (18),(20),(22)에 제공한다. 그런 후, 은닉 층 뉴런 (18),(20),(22)은 각각 그들의 출력을 출력 층 (28)에 배치된 단일 뉴런 (26)에 제공한다.

NN은 데이터 세트 내의 관계를 결정하기 위해 사용된다. NN을 훈련시키기 전에, 이용가능한 데이터를 2개의 세트로 나누는데, 그 하나는 훈련을 위해 사용될 것이고, 다른 하나는 테스트를 위해 사용될 것이다. 상기 훈련 세트는 NN을 훈련시 키기 위해 사용된다. 상기 테스트 데이터 세트는, NN이 훈련될 때까지 보존될 것이다. 훈련 이후, 테스트 데이터 세트를 NN에 제공하여, NN이 상기 데이터를 충분히 잘 학습하였는지, 또는 NN이 상기 데이터의 일부 양상 (aspect)을 놓치고 있는지를 판단한다. 상세한 설명 전체에 걸쳐, 용어 "NN 훈련" 또는 "훈련"은 훈련 데이터 세트로 NN을 훈련시키는 것을 의미하고자 한다.

대부분의 NN 훈련 알고리즘은, 훈련 조건을 만족시키고자 한 단일 숫자 값을 찾고, NN의 원하는 출력과 실제 출력 사이의 오차를 기초로 한 가중치 값을 반복적으로 변경하여 학습한다.

본 발명의 DR 훈련 알고리즘은 뉴런을 훈련시키는 데 다른 접근법을 사용한다. 이 훈련 알고리즘은 상기 훈련 조건을 만족시키는 가중치에 대한 단일 값 (single value)을 찾는 데 기초를 두지 않는다. 대신, 본 발명의 DR 훈련 알고리즘은, 상기 훈련 조건을 만족시킬 모든 가중치 값을 찾는다. 이를 위해, 입력 가중치를 임계치와 연결시키는 제약 (constraint)으로 입력 벡터를 변환시키는 것이 바람직하다. 각각의 뉴런은 입력 가중치 세트를 갖고 있으며, 이러한 입력 가중치들이 서로 관계를 맺고, 상기 훈련 조건을 만족시키는 임계치를 형성한다. 제약을 뉴런에 추가함으로써, 뉴런을 활성화시킬 가중치-공간 영역에 또 다른 제약이 놓여진다.

비록 본 발명이 상기 제약으로 변환되는 입력 벡터에 관해 설명하지만, 본 발명은 단지 제약의 사용에만 한정되지 않는다는 것이 이해되어야만 한다. 상기 제약은 오직 상기 입력 가중치와 임계치 사이의 관계를 나타낸다. 동일한 관계가 다 른 방식, 예를 들어 전자적으로 (electronically) 또는 자기적으로 (magnetically) 표현될 수 있고, 그것에 의해 본 발명은 제공된 특정 예에 한정되지 않는다.

이와 같은 뉴런 훈련 방법을 사용함으로써, 뉴런을 NN에 동적으로 추가하여 NN이 형성된다. 이 방법은 뉴런을 NN에 추가하기 위한 정확한 기준을 제공하고, 뉴런이 앞서 설명한 표준 피드-포워드 위상 (topology)에 추가될 수 있다.

이러한 뉴런 훈련 방법을 통해, 데이터 세트가 단일 패스로 학습된다. 또한, 상기 제약이 뉴런 각각의 임계치와 가중치 사이의 관계를 정의하고, 뉴런이 NN에 추가될 때, 명제 논리에 따라 추가되기 때문에, 훈련 동안 학습된 규칙을 추출하는 것이 단순한 문제가 된다.

NN이 본 발명의 DR 훈련 알고리즘으로 데이터 세트를 학습하기 위해, 그 과정의 순서가 정해지는 것이 바람직하다. 각각의 데이터 세트는 독특하고, 많은 출력들을 가지고 있으며, 이것은 상기 데이터 세트에 따라 다르다. 이 순서를 다음과 같이 간단히 요약할 수 있다: (1) NN의 초기화; (2) NN에 의해 학습될 데이터 준비; (3) NN에 의해 학습될 데이터 적용; 및 (4) 필요한 대로 NN에 뉴런을 할당.

이미 논의된 대로, 본 발명의 바람직한 실시예에 따라 사용되는 뉴런은 LTG 또는 맥컬럭-피트 뉴런이고, 이것은 제약 세트를 포함하기 위해 변경된다. LTG에 대한 상기 초기화 단계 (1)는 상기 입력 뉴런을 출력 뉴런에 연결시키고, 처음 훈련될 출력을 선택하는 것을 수반한다.

상기 데이터 준비 단계 (2)는, NN에 의해 학습될 데이터를 준비하기 위한 많은 단계들을 포함하는데, 이들은 다음과 같다: (i) 만일 NN에 제공된 데이터가 훈 련에 맞는 적당한 포맷에 있지 않는다면, 상기 데이터 세트를 NN에 제공하기 전에 적당한 포맷으로 변환시키는 것이 바람직하다. 본 발명의 바람직한 실시예에 따라, 상기 적당한 데이터 포맷은 이진 데이터이다. 따라서, 본 발명의 DR 훈련 방법으로 훈련될 데이터 세트는, NN에 제공되기 전에 이진수로 변환된다. 데이터를 디지털화 (digitising)하는 적합한 방법이 사용될 수 있다. 본 발명의 다른 양태에 따라, 데이터를 디지털화하는 적당한 방법은, 후에 실험 결과가 논의된 곳에서 논의한다. 비록 이진 데이터가 훈련 동안 바람직한 데이터 포맷으로 제공되지만, 본 발명의 DR 훈련 알고리즘은 또한, 예를 들어 부동-소수점 데이터와 같은 다른 데이터 포맷으로 작동할 수 있다는 것이 이해되어야만 하고, 그것에 의해, 본 발명은 주어진 특정 실시예에 한정된 것으로 해석되지 않아야만 한다; 및 (ii) 본 발명의 DR 훈련 알고리즘은 단일 패스 알고리즘이기 때문에, 입력 벡터의 제공 순서에 유의하는 것이 바람직한데, 이 순서에 따라 NN이 어떠한 규칙을 학습하고, 얼마나 잘 수행되는지 영향받는다. 비록 고려할 가치가 있지만, 상기 입력 벡터의 제공 순서는, 본 발명의 DR 훈련 알고리즘이, 입력 벡터가 뉴런을 NN에 추가되도록 하는 것을 탐지하고 보고할 수 있는 NN을 구성하는 것만큼 중요한 것은 아니다. 이 단계는, 훈련된 NN이 불완전하게 수행되는 상황에 사용되는 것이 바람직하다. 이 단계는, 상기 데이터 세트가 상당히 복잡하여 LTG를 NN에 추가할 필요가 있을 때마다 추천된다.

다음 단계 (3)는 데이터를 NN 입력에 적용하는 것인데, 상기 NN 입력은 학습될 LTG의 임계치와 가중치 사이의 관계인 제약으로 변환되는 것이 바람직하다. 만일 은닉 층이 있다면, 상기 LTG의 출력은 다음 층 LTG로의 입력이 되고, 그런 다음 상기 LTG는, 그것이 받은 입력 벡터를, 학습할 수 있는 제약으로 변형시킨다. NN이 원하는 출력을 생산할 때까지 이 과정을 반복한다. 만일 그것이 NN에 의해 학습될 수 있다면, 훈련이 다음 입력 벡터로 계속되고, 그렇지 않으면 상기 과정은 하나 이상의 LTG를 NN에 추가하는 다음 단계 (4)로 이동한다.

입력 벡터가 학습될 수 없는 적어도 2개의 가능한 시나리오가 있다: (i) 만일 은닉 층이 상기 입력 벡터를 학습할 수 없다면, 새로운 LTG를 상기 은닉 층에 추가하고; 및 (ii) 만일 출력 층이 그것의 입력 벡터를 학습할 수 없다면, 이 경우 새로운 층을 NN에 추가하여 오래된 출력이 상기 은닉 층에서 LTG가 된다. 그런 다음, 또 다른 LTG를 이 새로운 은닉 층에 추가하여, 오래된 출력 유니트가 학습할 수 없는 것을 학습하고, 이러한 상기 LTG들을 새로운 출력에 연결시켜 그 출력을 결합시킨다.

LTG를 NN에 할당한 후, 다음이 중요하다: (a) 새로운 LTG를 NN에 있는 기존의 LTG에 연결시킨다; (b) 새롭게 추가된 LTG의 제약 세트가 비워지도록 설정하거나, 이전의 마지막 LTG로부터의 제약을 새로운 LTG에 복사한다; (c) 새로운 LTG의 추가로 인해, NN은 이전에 학습한 것을 확실히 기억한다. NN은 단일 패스 훈련 알고리즘이기 때문에, 새롭게 추가된 LTG를 통해, NN이 이전에 학습한 것을 계속해서 생산하는 것이 중요하다.

비록 본 발명의 DR 훈련 알고리즘이 번호 (1)에서 (4)의 과정 순서로 제공되지만, 이러한 단계 또는 적어도 이러한 단계 각각의 양태들은 제공된 것 이외의 순서로 수행될 수 있다는 것이 이해되어야만 한다. 예를 들어, 단계 (1) 및 (2)의 경 우에, 이용가능한 데이터 세트를, 훈련될 NN의 출력이 선택되기 적당한 데이터 포맷으로 변환시킬 수 있다 (도 2 참조). 마찬가지로, 단계 (4)의 경우에, 새로운 출력 LTG를 추가하기 전에 새로운 은닉 층 LTG를 NN에 추가할 수 있고, 그 역도 마찬가지이다. 따라서, 본 발명의 DR 훈련 알고리즘은 제공된 단계의 특정 순서에 한정되지 않는다.

이제, 본 발명의 다른 양태와 함께, 본 발명의 DR 훈련 알고리즘의 바람직한 실시예가 상기 설명된 단계에 따라 제공될 것이다: (1) NN의 초기화; (2) 데이터 준비; (3) 학습될 NN에 데이터 제공; 및 (4) 최종적으로, 필요시 LTG 할당.

DR 훈련 알고리즘 설명

도 2는, 본 발명의 바람직한 실시예에 따라 만들어진 NN 훈련 방법 또는 알고리즘 (30)의 흐름도를 도시한다.

상기 훈련 과정은 LTG의 입력 층으로 시작한다. 이제, LTG를 NN에 동적으로 추가하기 위한 DR 훈련 알고리즘 (30)이 다음 단계로 요약 및 제공된다:

(1) NN 의 초기화

DR 훈련 알고리즘 (30)에 따른 NN의 초기화는 일반적으로 도 2의 블록 (block)(32)으로 나타낸다. 블록 (32)에서, NN을 초기화하는 과정은 다음 단계를 포함하는 것이 바람직하다:

a) 출력 벡터의 차원 (dimension) 각각을 개별적으로 훈련시킨다. 학습될 차 원 Oj 선택.

b) 출력 LTG Oj의 제약 세트를 비움.

c) 마지막으로, 출력 LTG Oj를 입력 층에 연결.

(2) NN 에 의해 학습될 데이터 준비

DR 훈련 알고리즘 (30)에 따라 NN에 의해 학습될 데이터를 준비하는 과정은 일반적으로 도 2의 블록 (31) 및 (33)으로 나타낸다. NN에 의해 학습될 데이터 준비 과정은 적어도 다음 단계들을 포함하는 것이 바람직하다:

a) 본 발명의 DR 훈련 알고리즘 (30)은 이진 데이터로 작동하는 것이 바람직하기 때문에, 도 2의 블록 (31)에 도시된 것처럼, 훈련 전에 데이터 세트를 이진수로 변환시키는 것이 필요할 수 있다. 본 발명의 다른 양태에 따라, 훈련 동안 NN에 제공되기 전에 다양한 유형의 데이터 세트를 이진수로 변환시키는 적당한 기법은 후에 논의될 것이다. 다른 데이터 포맷이 본 발명의 DR 훈련 알고리즘 (30)에 따라 사용될 수 있고, 그것에 의해 블록 (31)은 단순히, 이용가능한 데이터 세트를 적당한 데이터 포맷으로 변환시키는 것을 의미하는 것으로 이해되어야만 한다.

b) 상기 훈련 세트에 불일치한 데이터가 있는지 결정. 불일치한 데이터는, 다른 출력을 생산하는, 두 개 이상의 동일한 입력 벡터, xi가 있는 곳에서 발생한다. 불일치한 데이터의 예는 xi → 0 및 xi → 1이고, 여기서 동일한 입력 벡터는 상기 데이터 세트에서 한 번 이상 나타나고 다른 출력을 생산한다. 만일 불일치가 존재한다면, 오직 하나의 입력 벡터 xi가 사용되어야만 한다. NN이 이 데이터를 학습할 수 있을 것이지만, 잘 수행되지는 않을 것이다. 만일 NN이 불일치한 데이터를 학습한다면, 그것은 모든 입력에 대해 출력 0일 것이다. 불일치한 출력이 있는지 결정하기 위해 입력 벡터에 점검 (check)을 수행하여, 이러한 상황을 피하는 것이 바람직하다. 상기 훈련 세트에 불일치한 데이터가 있는지 결정하는 이 과정은 도 2에 구체적으로 도시되지 않았지만, 동일한 것이 블록 (31) 또는 (33)의 일부로서 수행될 수 있다.

c) 도 2의 블록 (33)에 도시된 것처럼, 적당한 분류 기법을 사용하여 학습될 데이터를 분류하는 것이 바람직하다. DR 훈련 알고리즘 (30)이 데이터를 무작위로 학습하는 것이 가능하지만, 생산된 NN 결과물은 상기 데이터를 효과적으로 분류할 수 없을 것이다. 따라서 바람직한 분류 기법은 다음을 포함한다:

- 상기 입력 벡터들을 2개의 그룹, 즉 출력에 대해 0을 생산하는 입력 벡터들과 1을 출력하는 입력 벡터들로 분류. 상기 입력 벡터를 2개의 세트, 즉 1을 출력하는 입력 벡터들과 0을 출력하는 입력 벡터들로 분류. 이 2개의 세트 중 어느 하나가 먼저 학습될 수 있다; 또는

- SOM (자기 조직화 맵)으로 상기 데이터 분류.

앞서 논의된 대로, 본 발명은 특정 분류 기법에 한정되지 않는다.

d) 입력 벡터 세트로부터 단일 리스트를 만든다. 이 단계는 블록 (33)으로 나타낸 상기 분류 단계의 일부이다.

e) 상기 O 입력 벡터가 학습될 데이터 세트에 이용가능한지 결정. 이 0 벡터는 0으로 설정된 모든 입력 차원들을 갖는다. 만일 상기 입력 벡터가 이용가능하다면, 이 입력 벡터를 그것의 출력과 상관없이 먼저 학습되도록 분류한다. 상기 0 벡터가 훈련 동안 이용가능하고, 그것이 출력과 상관없이 먼저 학습되는 것이 바람직하지만, 만일 그것이 이용가능하지 않다면, 중요하지는 않다. 다시 한번, 이 단계는 블록 (33)으로 나타낸 상기 분류 단계의 일부이다.

(3) NN 에 의해 학습될 데이터 적용

DR 훈련 알고리즘 (30)에 따라 NN에 의해 학습될 데이터를 적용하는 과정은 일반적으로 도 2의 블록 (34)로 나타낸다. 블록 (34)에서, 각각의 패턴 (또는, 입력 벡터와 그것의 연관 출력의 결합)이 더 이상 학습할 것이 없을 때까지 NN의 출력에 대해 학습되는 것을 볼 수 있다. DR 훈련 알고리즘 (30)에 따라 출력에 대한 단일 패턴을 학습하는 과정 (40)의 바람직한 실시예는 도 3에 제공된다.

과정 (40)은 블록 (41)에서 NN의 첫 번째 층으로 시작한다. 그런 후, 훈련 세트에 있는 각각의 입력 벡터에 대해:

a) 블록 (42)에서, 상기 입력 층에 적용되는 입력 벡터를 기초로 한 제약은 다음 층에 있는 각각의 LTG가 되도록 구성된다. 상기 제약을 만들기 위해, 상기 LTG의 정의가 사용되고 (이는, 앞서 LTG를 정의한 곳에서 논의되었다), 상기 입력 벡터 xi 및 상기 LTG의 가중치 벡터, w는 NN 출력을 기초로 한 상기 LTG의 임계치, T와의 관계를 형성한다. 따라서 만일 상기 LTG가 1을 생산하는 것이라면, 구성된 제약은 다음과 같다:

xi ·w ≥ T → 1

또는, 만일 상기 출력이 0이라면, 생산된 제약은 다음과 같다:

xi ·w < T → 0

b) 또한, 블록 (42)에서, 상기 입력 벡터 xi로부터 구성된 제약이 이 층에 있는 LTG에 의해 학습될 수 있는지를 결정하기 위해 테스트를 수행한다. 제약을 학습하는 것은 LTG의 제약 세트에 제약을 추가할 수 있는 것이다. 만일 수치 해가 찾아진다면, 제약을 추가할 수 있다. 어떠한 수치 해가 상기 알고리즘인지는 관심 대상이 아니고, 수치 해를 찾을 수 있다는 것만이 중요하다. 이것은, 제약들 사이에 교차 구역 (intersection)이 있어야만 하는 것과 동일하다. 이 테스트는, LTG를 NN에 추가하기 위한 기준을 구성한다. 만일 상기 LTG의 어느 것도 상기 입력 벡터로부터 형성된 제약을 학습할 수 없다면, 이것이 새로운 LTG를 NN에 할당하기 위한 기준이 된다.

- 만일 상기 LTG가 상기 입력 벡터를 학습할 수 있다면, 블록 (43)에서 제약을 상기 LTG의 제약 세트에 추가한다. 새로운 제약의 추가함으로써, 상기 LTG가 활성화되도록 할 LTG의 가중치-공간 영역이 감소된다. 그런 후, 이 층으로부터의 출력을 블록 (45)에서 다음 층에 적용하고, NN이 정확한 출력을 출력할 때까지 과정 (40)을 반복한다 [블록 (42)로 되돌아감]. 블록 (44)에서, 현재 층이 출력 층인지 결정되고, 만일 그렇다면 과정 (40)은 블록 (46)에서 종결되는데, 여기서 만일 학 습할 패턴이 더 있다면 다음 패턴이 학습된다. 만일 어느 시점에서, 입력 벡터가 층에서 학습될 수 없다면, 그것은 LTG를 할당하기 위한 토대 (ground)가 된다 [도 3의 블록 (47) 내지 (49)로 나타냄- 아래의 단계 4 참조]. 각각의 층은, NN의 원하는 출력을 출력할 수 있는 LTG를 가져야만 한다. 이전 층으로부터 입력을 받는 층의 목적은, 상기 이전 층의 출력을 결합하여, NN의 원하는 출력을 생산하는 것이다.

- 상기 언급된 대로, 블록 (44)에서 점검한 후, 블록 (45)에서 NN이 정확한 반응을 출력하고 학습될 입력 벡터가 더 있다면, 과정 (40)이 단계 3의 처음으로 되돌아간다 [블록 (42)].

- 만일 블록 (44)에서 NN이 정확한 반응을 생산하고, 학습될 입력 벡터가 더이상 없다면, 이 NN의 훈련 출력은 훈련을 끝내고, 과정 (40)이 블록 (46)에서 종결되는데, 여기서 만일 학습할 패턴이 더 있다면 다음 패턴이 학습된다.

- 만일 블록 (35)에서, DR 훈련 알고리즘 (30)에 의해, 훈련될 NN의 출력이 더 있는지가 결정된다면, 도 2에 도시된 것처럼, 상기 DR 훈련 과정은 초기화 단계 1 [블록 (32)]으로 되돌아간다.

(4) 필요한 대로 NN 에 새로운 LTG 할당

필요한 대로 새로운 LTG를 NN에 할당하는 과정은 일반적으로 도 3의 블록 (47) 내지 (49)로 나타낸다. 블록 (47)은 새로운 LTG를 NN의 은닉 층에 할당하는 것을 도시하고, 블록 (49)는 새로운 출력 LTG를 NN에 할당하는 것을 도시한다. 새로운 은닉 층 LTG를 NN에 할당하기 위한 과정 (50)의 바람직한 실시예가 도 4의 흐 름도에 도시된다. 마찬가지로, 새로운 출력 LTG를 NN에 할당하기 위한 과정 (60)의 바람직한 실시예가 도 5의 흐름도에 도시된다. 새로운 LTG를 NN에 할당하는 과정 (50),(60)에 대한 이해를 돕기 위해, 도 6a 및 6b가 참조될 것인데, 상기 도 6a 및 6b는 본 발명의 DR 훈련 알고리즘 (30)의 과정 (50),(60)에 따라 NN (70)의 구조를 개략적으로 도시한다.

도 3에 도시된 출력에 대한 단일 패턴을 학습하는 바람직한 과정 (40)에서, NN에 새로운 은닉 층 LTG을 할당하는 것 [블록 (47)]은, 새로운 출력 LTG의 할당 [블록 (49)] 이전에 수행되는 것으로 도시된다. 도 3에서, 만일 LTG가 블록 (42)에서 상기 입력 벡터 (또는 패턴)를 학습할 수 없다면, 블록 (47)에서 새로운 LTG를 현재 (은닉) 층에 추가하여 상기 입력 벡터를 학습한다. 새로운 LTG를 블록 (47)에서 현재 층에 추가한 후, 블록 (48)에서 테스트를 수행하여, 상기 현재 층이 NN의 출력 층인지 결정한다. 만일 블록 (48)에서, 상기 현재 층이 NN의 출력 층이 아니라고 결정되면, 과장 (40)은 블록 (45)에서 계속되는데, 여기서 이 (현재) 층으로부터의 출력이 다음 층에 적용된다. 그런 후, 앞서 논의된 대로, NN이 정확한 출력을 출력할 때까지 과정 (40)을 반복한다 [블록 (42)로 되돌아감]. 만일 블록 (48)에서, 상기 현재 층이 NN의 출력 층으로 결정되면, 과정 (40)을 블록 (49)에서 계속하는데, 여기서 새로운 출력 LTG를 NN에 추가한다. 블록 (49)에서 새로운 출력 LTG를 NN에 할당한 후, 과정 (40)은 블록 (46)에서 계속되는데, 여기서 만일 학습할 패턴이 더 있다면 새로운 패턴이 학습된다.

비록 도 3의 과정 (40)이, 새로운 출력 LTG를 NN에 할당하기 [블록 (49)] 전 에 새로운 LTG를 은닉 층에 할당하는 것 [블록 (47)]을 도시하지만, 새로운 은닉 층 LTG의 할당 이전에 새로운 출력 LTG가 NN에 할당될 수 있다는 것이 이해되어야만 한다. 따라서, 본 발명은 제공된 특정 실시예에 한정되지 않는다. 본 발명의 DR 훈련 알고리즘 (30)에 따른 새로운 은닉 층 LTG의 할당 이전에, 새로운 출력 LTG가 NN에 할당될 수 있다는 것을 보여주기 위해, 이제 도 6a 및 6b의 NN (70)으로의 LTG 할당이 도 3의 바람직한 과정 (40)에 도시된 것에 역순으로 제공될 것이다.

이제, NN (70)에 새로운 출력 LTG를 할당하는 과정 (60)(도 6a 및 6b)이 도 5를 참조하여 설명할 것이다.

- 만일 출력 LTG가 블록 (42)[도 3]에서 입력 벡터에 대한 필요한 출력을 생산할 수 없다면, 도 6a 및 도 3의 블록 (49)에 도시된 것처럼 새로운 출력 LTG를 NN (70)에 할당한다.

Ⅰ. 도 6a(i) 참조, 현재 출력 LTG, LTG A는 층 N에 있다.

도 6a(ii) 참조, 또 다른 LTG, LTG B를 층 N에 추가한다.

LTG B에 대한 제약을 빈 (empty) 세트로 초기화하는 것이 바람직하다.

NN (70)의 층 N에 새로운 LTG, LTG B를 할당하는 것은

도 5의 흐름도에 도시되지 않았지만, 이제 설명될 블록 (61)의

일부로서 이해되어야만 한다. 마찬가지로, 층 N에 새로운 LTG,

LTG B를 할당하는 것은, 층 N+1에 새로운 출력 LTG, LTG C를

할당한 후 일어날 수 있다.

Ⅱ. 블록 (61)에서, 출력 Oj에 대한 이 층에 있는 단 하나의 새로운 LTG,

LTG C를 새로운 출력 층, 층 N+1에 추가한다. 그런 후, LTG C의

제약 세트를 단계 V 및 VI에 따라 초기화하는 것이 바람직하다.

Ⅲ. 만일 블록 (62)에서 층 N >1라면, LTG A에 연결된 이전 층,

층 N-1 (미도시)에 있는 LTG로부터, 새로운 LTG, LTG B에 연결이

추가된다.

Ⅳ. 또한 블록 (62)에서, 층 N에 있는 LTG A 및 LTG B 각각의 출력이,

층 N+1에 있는 새로운 출력 LTG, LTG C의 입력에 연결된다.

Ⅴ. 만일 학습될 입력 벡터가 출력 0을 생산한다면, 블록 (63)에서:

a) 층 N에 있는 새로운 LTG B를 훈련시켜, 이 층의 제약으로의 입력을

학습한다. LTG A가 상기 입력을 학습할 수 없기 때문에, 이러한 LTG,

LTG B 및 LTG C를 추가한다.

b) 모든 제약을 LTG B의 ≥ 임계치로 설정하면서, LTG A로부터의

제약을 새로운 LTG, LTG B의 제약 세트로 복사한다.

c) 층 N에 있는 LTG A와 LTG B 사이의, 층 N+1에 있는 새로운 출력

LTG, LTG C에 AND를 형성하는 제약을 추가한다.

Ⅵ. 만일 학습될 입력 벡터가 출력 1을 생산한다면, 블록 (64)에서:

a) 층 N에 있는 새로운 LTG B를 훈련시켜, 이 입력의 제약을

학습한다.

b) 모든 제약을 LTG B의 < 임계치로 설정하면서, LTG A로부터의

제약을 새로운 LTG, LTG B의 제약 세트로 복사한다.

c) 층 N에 있는 LTG A와 LTG B 사이의, 층 N+1에 있는 새로운 출력

LTG, LTG C에 OR를 형성하는 제약을 추가한다.

- 만일 층 N에 있는 LTG들 중 어느 것도 블록 (42)[도 3]에서 필요한 출력을 생산하는 것을 학습할 수 없다면, 도 6b 및 도 3의 블록 (47)에 도시된 것처럼, 새로운 LTG, LTG D를 NN (70)의 그 층, 층 N에 할당한다.

이제, NN (70)[도 6a 및 6b]에 새로운 은닉 층 LTG를 할당하는 과정 (50)을 도 4를 참조하여 설명할 것이다.

Ⅰ. 블록 (51)에서, LTG의 어느 것도 상기 데이터를 학습할 수 없는

층 N에 추가 LTG, LTG D를 추가한다. 그런 후, 제약 세트를 단계 V 및

Ⅵ에 따라 초기화하는 것이 바람직하다. 나머지 단계, 단계 Ⅱ 내지

Ⅵ는 일반적으로 호환적이고, 따라서 이러한 절차 단계의 순서는

도 4에 도시된 것으로 달라질 수 있다.

Ⅱ. 블록 (53)에서, NN 출력 Oj에 대해, LTG D의 출력으로부터의 연결이,

층 N에 대한 출력 층을 형성하는 층 N+1에 있는 모든 LTG에

만들어진다. 블록 (54)에서, 층 N+1에 있는 LTG (이 경우, LTG C)를

갱신하여, 층 N에 있는 다른 LTG, LTG A 및 B에 의해 학습되지

않을 것을 기초로, 새로운 LTG, LTG D로부터의 입력을 어떻게

할지 안다.

Ⅲ. 만일 층 N >1이라면, 블록 (52)에서, NN 출력 Oj에 대해, 이전 층,

층 N-1 (미도시)에서 입력을 형성하는 모든 LTG들에서 LTG D로 입력

연결을 추가한다.

Ⅳ. 블록 (55)에서, 새로운 LTG, LTG D를 훈련시켜, 층 N에 의해

학습될 수 없는 입력 벡터를 학습한다. 새로운 LTG, LTG D를

훈련시켜, 층 (N)에 있는 다른 LTG들에 의해 학습될 수 없는

입력 벡터를 학습하는 과정 [블록 (55)]에 대한 이해를 돕기 위하여,

관련된 바람직한 절차의 더 자세한 설명을 포함하는 또 다른 블록,

블록 (56)이 제공된다.

Ⅴ. 만일 학습될 입력 벡터가 출력 0을 생산한다면, 블록 (57) 및

(58)에서:

a) 모든 제약을 ≥ 새로운 임계치로 설정하면서 [블록 (58)],

이 층, 층 N에 있는 이전의 마지막 LTG, LTG B의 제약들을

새로운 LTG, LTG D의 제약 세트로 복사한다.

b) LTG C는, 층 N에 있는 LTG D 및 다른 LTG들로부터의 입력에 대해

그것의 제약 세트에서 AND를 형성한다 [블록 (54) 참조].

이 논리는 (A ... B) AND D이다.

Ⅵ. 만일 학습될 입력 벡터가 출력 1을 생산한다면, 블록 (57) 및

(59)에서:

a) 모든 제약을 < 새로운 임계치로 설정하면서 [블록 (59)],

이 층, 층 N에 있는 이전의 마지막 LTG, LTG B의 제약들을

새로운 LTG, LTG D의 제약 세트로 복사한다.

b) LTG C는, 층 N에 있는 LTG D 및 다른 LTG들로부터의 입력에 대해

그것의 제약 세트에서 OR을 형성한다 [블록 (54) 참조].

이 논리는 (A ... B) OR D이다.

- 도 3을 참조하여, 만일 블록 (47)에서 새로운 LTG, LTG D를 할당한 후, NN (70)이 정확한 반응을 출력하고, 학습할 입력 벡터가 더 있다면 [블록 (48)], 과정 (40)은 단계 3의 처음으로 되돌아간다 [블록 (42) 대 블록 (45)].

- 다시 도 3을 참조하여, 만일 블록 (47)에서 새로운 LTG, LTG D를 할당한 후, NN (70)이 정확한 반응을 출력하고, 학습될 입력 벡터가 더 이상 없지만, 학습될 출력이 더 있다면 [블록 (48)], 과정 (40)은 단계 1의 초기화로 되돌아간다 [도 2의 블록 (32)].

층 N에 있는 이전의 마지막 LTG, LTG B로부터의 제약을 새로운 LTG, LTG D에 복사할 때, 다른 논리 결합이 가능하다는 것이 이해되어야만 한다. 제공된 특정 실시예는 단순히, LTG를 NN (70)에 할당하는 두 가지 경우 [과정 (50),(60)]에서 작동하는 바람직한 논리 배열 (logic arrangement)이다. 사용된 특정 학습 논리는 본 발명에서 중요하지 않으나, 데이터는 임의의 형식으로 교차 복사되어야만 한다. 그렇지 않으면 NN (70)은 전에 학습한 모든 것을 완전히 잊어버릴 것이다.

이제, DR 훈련 알고리즘 (30)에 따른 NN (70)으로의 LTG 할당이 임의의 순서로 수행될 수 있다는 것이 이해되어야만 한다. 따라서, 도 6a 및 6b에 따라, LTG C가 새로운 출력 층, 층 N+1에 추가되기 전에, LTG D가 층 N에 추가될 수 있었다. 마찬가지로, NN (70)에 LTG를 할당하는 두 가지 경우 [과정 (50),(60)]에서, 절차 단계, 단계 Ⅰ 내지 Ⅵ는 일반적으로 호환적이고, 그것에 의해 본 발명이 제공된 특정 단계 순서에 한정되지 않는다는 것 또한 이해되어야만 한다.

DR 훈련 알고리즘 단계의 상세한 설명

이제, 본 발명의 DR 훈련 알고리즘 (30) 및 다른 양태에 대한 이해를 돕기 위해, 알고리즘 (30)의 단계 각각에 대한 더 상세한 설명이 제공될 것이다. 이러한 훈련 알고리즘 (30)은 피드-포워드 NN 구조를 기초로 하는데, 이 구조는, 훈련 조건을 만족시키기 위한 단일 숫자 값을 찾기 위한 LTG의 NN 훈련에 대한 종래의 접근법으로부터 변화한다. 앞서 간단히 논의했듯이, 이러한 접근법은 대신, 훈련 데이터 세트의 단일 패스로 학습하는, 각각의 LTG에 대한 훈련 조건을 만족시키는 가중치-공간에서 영역을 찾고, LTG가 NN에 동적으로 할당되도록 하고, 입력 벡터가 분류될 수 있는지 결정할 수 있고, 훈련 동안 학습된 규칙이 NN으로부터 쉽게 추출되도록 한다.

초기화: 특히, 도 2의 DR 훈련 알고리즘 (30)의 블록 (32) 참조. 출력 훈련의 개시, 훈련시킬 출력 선택, 및 그 출력에 대한 출력 LTG의 추가는 적어도 두 개의 단계를 통해 실행되는 것이 바람직하다.

학습할 출력을 선택하는 첫 번째 단계: NN은 데이터 세트에 대한 NN의 출력 각각을 개별적으로 생산하는 것을 학습한다. 각각의 출력, 또는 입력 벡터의 차원은 개별적인 학습 과정으로 처리된다. 이는, 출력 벡터의 차원 각각이 독립적이기 때문에 정당화된다.

상기 훈련 알고리즘과 상관없이, 각각의 LTG는, 공통의 입력을 공유함에도 불구하고, NN의 은닉 또는 출력 층인 그 층에 있는 다른 것들과 관계없이 독자적으로 작동한다. 이것은 역전파로 훈련된 NN에 문제를 일으킬 수 있는데, 즉, NN에 있는 오차가 NN을 통해 피드백될 때, 가중치가 증가돼야 하는지 또는 감소돼야 하는지 결정하기란 불가능하다. 팰만 외 (Fahlman et al.)는 이것을 신용 배정 문제 (credit assignment problem)라고 불렀다. 이 새로운 알고리즘 (30)은 LTG 각각의 독립적 작동을 활용하여, 각각의 출력 LTG를 개별적으로 훈련시킨다. 이것이, NN의 구성에 대한 주요 원칙을 형성한다. 일단 상기 출력 벡터의 차원이 선택되면, 상기 출력 LTG를 NN에 추가한다.

상기 출력 LTG를 추가하는 두 번째 단계: 처음에, 입력 층의 LTG를 출력 층 LTG에 완전히 연결시킨다. 또한, 상기 출력 LTG에 있는 제약 세트는 비워진 것이 바람직하다. 이제, 데이터를 상기 출력 LTG에 의해 학습되도록 준비할 수 있다.

데이터 준비: 특히, 도 2의 DR 훈련 알고리즘 (30)의 블록 (31) 및 (33) 참조. 이것이 단일 패스 훈련 알고리즘이기 때문에, 학습될 NN에 데이터를 제공하는 순서가 중요하다. 상기 데이터를 준비하는 데 적어도 네 개의 단계가 관여하는 것이 바람직하다.

첫 번째 단계, 만일 NN에 제공될 데이터가 훈련에 맞는 적당한 포맷에 있지 않다면, 도 2의 블록 (31)으로 나타난 대로, 데이터 세트를 NN에 제공하기 전에 적당한 포맷으로 변환시키는 것이 바람직하다.

두 번째 단계, 데이터의 불일치를 점검한다: 불일치한 데이터는 NN을 훈련시킬 때 문제를 일으킨다. 상충 (conflicting)하는 출력을 생산하는 입력 벡터 xi의 2개 이상의 경우가 있기 때문에, 데이터의 불일치를 점검할 필요가 있다. 즉, xi는 출력 0뿐만 아니라 1을 생산한다. 비록 NN은 이 데이터를 학습할 수 있지만, 이 데이터는 불일치하고, 이러한 문제를 피하기 위해, 독특한 입력 벡터로 NN을 훈련시키는 것이 바람직하다. 이 단계는 도 2의 DR 훈련 알고리즘 (30)의 블록 (31) 또는 블록 (32)에서 수행될 수 있다.

세 번째 단계, NN을 훈련시키기 전에 훈련 세트에 있는 데이터 정렬: 0 벡터를 학습하는 것은 많은 시스템에 불안정성을 야기하는데, 이러한 시스템에는 음성 제약 (negative constraint)을 지닌 심플렉스법 (simplex method) 및 데이터 세트를 학습하기 위해 역전파로 훈련된 피드-포워드 NN (여기서, 입력 벡터 0은 1이 될 출력을 필요로 한다)이 포함된다. 그것이 NN에 문제가 되는 이유는, 뉴런에 있는 임계치가 음 (negative)이 될 필요가 있기 때문이다. 본 발명의 DR 훈련 알고리즘 (30)은, NN을 훈련시키기 전에 훈련 세트에 있는 데이터를 정렬하여 이러한 상황을 피한다. 상기 0 벡터는, 모든 입력 차원이 0인 입력 벡터로 정의된다. 예를 들어, 3개의 입력을 지닌 NN 또는 뉴런에 대한 0 벡터는 [0 0 0]이다. 상기 0 벡터가 상 기 훈련 세트에서 이용가능할 때, 이것이 만일 상기 0 벡터로 인해 NN이 1을 출력한다면 NN이 경험할 수 있는 불안정성을 피하기 때문에, 상기 벡터가 처음에 NN에 의해 학습된다.

네 번째 단계, 만일 상기 입력 벡터 0이 드러난다면, 그것이 이용가능하다면, 처음에 학습되어야만 한다. 그런 후, 블록 (33)에서, 특히 만일 훈련 동안 LTG가 NN에 할당될 필요가 있다면, NN을 훈련시키기에 앞서 상기 입력 벡터를 임의의 순서로 분류시키는 것이 바람직하다. 본 발명의 알고리즘 (30)은, 데이터가 NN에 제공됨에 따라 학습되는 것과 마찬가지로, 내장된 서치 메커니즘 (in-built search mechanism)을 갖지 않는다. 이것은 DR 학습이 NN을 단일 패스로 훈련시켜, 제공된 대로 모든 데이터 세트를 학습할 수 있어야만 하기 때문이다.

본 발명의 또 다른 양태에 따라, 바람직한 분류 방법 [블록 (33)]은 1과 0 각각을 생산하는 세트로 상기 데이터를 분류하고, 상기 데이터 세트에 따라 1 또는 0을 처음에 생산하는 벡터들을 학습하는 것이다. 대략적인 가이드라인 (guide line)에 따라, 만일 0→0라면, 0을 처음에 출력하는 벡터들을 학습하고, 그렇지 않으면 1을 처음에 출력하는 벡터들을 학습한다.

또 다른 가능한 분류 방법은 SOM, 자기 조직화 맵을 사용하는 것인데, 이 SOM은 생물학적 뇌의 분류 기법 중 하나를 따라한 것이다. 상기 생물학적 뇌는 피질 (cortex) 면 (surface) 위의 SOM과 유사한 메커니즘을 사용한다. SOM은, 상기 데이터 세트에 있는 특징들의 2차원 집합 표시 (class representation)로 입력 벡터를 분류하거나 조직화하여 작동한다. 상기 특징들은 그들의 출력과 관계없이 입 력 벡터를 분류한다. 상기 SOM에 있는 어떤 특징들에 속함에 따라 분류된 입력 벡터는 특징들로 분리 및 분류될 수 있고, 수집되어 훈련 메커니즘으로 공급될 수 있다. 이러한 방식으로, DR 훈련은, 상기 데이터 세트에 있는 특정한 특징들을 분류하는 방법을 학습하는 LTG들을 함께 하나의 무리 (cluster)로 지을 수 있다.

이러한 구조는 3차원, 2차원 SOM으로 구상될 수 있고, 상기 3차원은 DR 훈련된 NN이다. 대략 돔-형태 (dome-shaped)인 생물학적 뇌를 매우 단순화한 도에서, SOM은 상기 면 위에 있고, 피드포워드 NN은 상기 면으로부터 나온다. 가능한 하나의 모델은, 상기 피질이 피드포워드 뉴런과 함께 연결된 SOM 층으로 구성된 것일 수 있다.

본 발명의 DR 훈련 알고리즘 (30)으로 사용될 수 있는 잠재적으로 많은 다른 분류 기법이 있다는 것과, 그것에 의해 본 발명은 제공된 특정 실시예에 한정되지 않는다는 것이 이해되어야만 한다.

NN 에 데이터 적용: 특히, 도 2의 DR 훈련 알고리즘 (30)의 블록 (34) 및 (35), 더 자세히는 도 3의 과정 (40)을 참조. 본 발명의 DR 훈련 알고리즘 (30)은, 앞서 설명된 LTG를 사용하는 것이 바람직하다. 또한, DR 훈련 알고리즘 (30)은 그것의 전달 함수 (transfer function)로, 헤비사이드 (Heaviside), 또는 계단 (step) 함수를 사용하는 것이 바람직하다. 이러한 유형의 게이트 (gate)가 사용되는 것이 바람직한데, 왜냐하면, 그것이 입력 공간에 있는 집합들 사이에 뚜렷한 경계를 제공하고 입력 벡터의 집합들을 완벽하게 나누기 때문이다.

본 발명의 DR 훈련 알고리즘 (30)은 상기 LTG와 잘 작동하는데, 그 이유는, 그것이 상기 훈련 조건을 만족시키는 임계치 및 가중치에 대한 단일 숫자 값을 찾지 못하고, 대신에 상기 LTG의 가중치-공간을 제약하여 학습하기 때문이다. 따라서, 상기 가중치 및 임계치를 만족시키기 위해 상기 가중치-공간에서 단일 값을 찾는 대신에, 공간 영역을 찾는다. 지도 훈련 (supervised training) 개념에 따라, 입력 벡터 및 원하는 출력으로 제약이 형성된다.

상기 LTG에 있는 임계치, T는 상수 (constant)로 처리된다. 코하비 (Kohavi)가, 상기 LTG의 임계치가 그렇게 처리될 수 있다는 것을 보여주었다. 코하비는 보수 (complement) 가중치 (논리적 NOT 사용)를 사용하여, T≤0 및 T>0인 임계치를 설명한다. 본 발명의 훈련 알고리즘 (30)에서, 상기 데이터가 훈련 동안 T≤0 또는 T>0을 결정한다.

원래의 LTG에 만들어진 단 하나의 변형은, 비워진 상태로 초기화되는 제약 세트의 포함이다. 이 변형은, LTG가 가중치와 뉴런의 임계치 사이의 관계에 대해 학습한 것을 저장하기 위해 사용되기 때문에, 실행 목적에 필요하다. 앞서 논의된 대로, 본 발명은 제약 단독의 사용에 한정되지 않는다. 제약은 오직 입력 가중치와 임계치 사이의 관례를 나타내고, 단지 본 발명의 바람직한 특징이다.

이제, 제약이 어떻게 만들어져, 단일 LTG를 훈련시키는지에 대해 논의할 것이다.

단일 LTG 에 대한 제약 형성: 특히, DR 훈련 알고리즘 (30)에 따라 출력에 대한 단일 패턴을 학습하기 위한, 도 3의 바람직한 과정 (40)을 참조. 상기 LTG는, 블록 (42)에서 학습하기 위한 입력 벡터 (또는 패턴)를 제공한다. 이러한 입력 벡 터는, 상기 LTG의 제약 세트로 기록된 제약으로 변환된다. 학습에 앞서, 상기 제약 세트를 비워진 상태로 초기화하는 것이 바람직하다.

훈련을 시작하기 위해, 제약을 구성하는 첫 번째 단계 [블록 (42)]는, 각각의 입력 벡터, xi를 상기 LTG의 유입 (incoming) 가중치 벡터 w에 적용하여, xi ·w를 생산하는 것이다. 생산물 xi ·w는, LTG의 작동을 정의하는 방정식 1.1을 기초로, 상기 LTG의 임계치 T와 적어도 2개의 가능한 관계를 갖는다. 이 2개의 가능한 관계 각각은 연관 출력 (associated output)을 생산한다. T와의 관계 및 연관 출력은 방정식 2.1 및 2.2로 나타낸다.

xi ·w ≥ T → 1 (2.1)

또는

xi ·w < T → 0 (2.2)

본 명세서 앞 부분에서 지도 훈련을 설명하였다. 지도 훈련의 원리를 사용하여, 만일 필요한 출력이 1이라면, 필요한 제약은 xi ·w ≥ T이다. 마찬가지로, 만일 생산될 출력이 0이라면, w는 xi ·w < T로 제약된다. 이제, 새로운 제약을 상기 LTG의 제약 세트에 추가하는데, 이것은 이러한 제약이 이전에 추가된 다른 제약들과 함께 해를 갖는다는 조건을 갖는다. 이것은 후에 더 상세히 논의될 것이다. 상기 입력 벡터 및 LTG의 가중치로부터 구성된 제약을 LTG의 제약 세트에 추가하는 과정을, 훈련 세트에 있는 모든 n 입력 벡터에 대해 반복한다.

도 7은 2-입력 LTG NN (80)의 실시예를 도시한다. 이 실시예에서, 가중치 벡터는 [w1 w2]T이고, 입력 벡터는 [x1 x2]이고, [Oj]는 LTG의 출력이 된다. 만일 상기 출력이 입력 [0 1]에 대해 1이 되면, LTG (82) 상의 제약은 w2≥T가 될 것이다. 만일 또 다른 입력 벡터 [1 1]이 출력 0을 생산할 것으로 예상된다며, 제약 w1 + w2 <T가 또한 추가된다. 이러한 2개의 출력은 {w2 ≥T, w1 + w2 <T}의 LTG (82)에 대한 제약 세트가 될 것이다. 제약 세트를 형성하여, LTG (82)는 상기 입력/출력을 분류하는 것을 학습한다.

지금껏, 상기 LTG를 훈련시킬 입력 벡터로부터 제약을 구성하는 방법을 설명하였다. 하지만, 새로운 입력 벡터가 학습될 수 있고, 그것의 연관 제약이 상기 LTG에 대한 제약 세트에 추가되기 전에, 상기 입력 벡터가 형성하는 제약을 상기 LTG가 학습할 수 있는지 검증되어야만 한다. 이제, 새로운 입력 벡터가 학습될 수 있는지, 그 결과 제약이 LTG의 제약 세트에 추가되는지 결정할, 입력 벡터를 학습하기 위한 기준에 대해 논의할 것이다.

입력 벡터 학습 기준: 특히, 도 3의 과정 (40)의 블록 (42) 참조. LTG의 제약 세트에 제약을 추가할 때 가장 기본적으로 고려할 점은, 그것이 배우는 것을 학습할 수 있는지 결정하는 것이다. 이것은 본 명세서 앞 부분에 더 자세히 설명되었다.

LTG가 입력 벡터를 학습할 수 있는지에 대한 테스트는 LTG의 NN을 만드는 데 기본적인 것이다. 만일 단일 LTG가 모든 데이터를 학습할 수 없다면, 추가 LTG가 필요하다.

본 발명의 DR 훈련 알고리즘 (30)이 상기 입력 벡터와 연관 출력을 제약으로 변환시키기 때문에, 상기 LTG가 이미 학습한 모든 제약들과 함께 가중치-공간에 해가 있는지 결정하기 위해, 새로운 제약을 테스트할 수 있다. 상기 심플렉스법을 사용하여 이 테스트를 시행할 수 있다. 이 테스트를 통해, 비록 각각의 가중치 및 임계치에 대한 특정 숫자를 찾는 것이 필요하지 않더라도, 상기 가중치 및 임계치에 대한 숫자 값이 확실히 찾아질 수 있다. 상기 제약을 만족시키는, 수치 해를 찾을 수 있다는 것을 아는 것만으로도 충분하다.

이제, 각각의 가중치 및 임계치에 대한 특정한 수치 해를 찾는 것이, 상기 학습 문제에 대한 일반 해 찾기에 바람직한 이유를 논의할 것이다.

전통적으로, 각각의 가중치에 대한 단일 숫자 값이 찾아졌는데, 이것은 일반 해를 찾는 것이 불가능하기 때문이었다.

만일 종래의 훈련 방법, 예를 들어 역전파로 훈련된 NN에 있는 가중치에 대한 해를 찾을 수 있다면, 상기 가중치가 w ∈ Rn으로부터 선택될 때, 모든 가중치에 대한 해의 무한수 (infinite number)가 있다. 이러한 해의 무한수는 각각의 LTG에 대한 가중치-공간 영역을 형성한다. 일반적으로 역전파로 선택된 해는, 미리-지정된 (pre-designated) 오차 허용 내에서 NN을 생산하는, 찾아진 숫자 값의 첫 번째 세트가 되는 경향이 있다. 각각의 LTG에 대해 찾아진 w는, 상기 LTG의 가중치-공간 영역의 단일 값이다.

상기 가중치 값에 대한 이러한 해는, 훈련 동안 NN에 적용된 입력 값을 기초로 한 일종의 평균치가 되도록 하는데, 여기서 상기 값의 범위가 단일 해를 찾기 위해 손실되기 때문에 극값 (extreme)이 손실된다.

본 발명에 따른 뉴런 훈련 방법은, 일반 해가 찾아짐에 따라, 훈련 동안 학습된 모든 정보가 보존되도록 한다. 일반 해는, 상기 가중치-공간 영역이 분석되어, 상기 LTG를 활성화시키는 가중치와 그렇게 하지 못하는 가중치 사이의 경계를 찾도록 한다. 모든 것들이 서로 연관되고, 그 밖의 모든 것에 관련하여 이해될 수 있는 것처럼 보임에 따라, 일반 해는 상대적 관계를 정의한다. 일반 해를 찾음으로써, 가중치들 사이의 관계가 분석되고, 그 결과, 상기 입력들 사이의 관계가 분석된다. 마지막으로, 만일 그것이 절대적으로 필요하다면, 상기 데이터 세트 내의 관계를 명확히 구체화하는 특정 숫자 값이 찾아질 수 있다.

따라서, 본 발명의 DR 훈련 알고리즘 (30)으로 훈련된 LTG에 의해, 새로운 제약이 학습될 수 있는지 결정하는 데 이용가능한 테스트가 있다. 또한, 이 테스트는 NN에 LTG를 추가하기 위한 기준이다. 만일 입력 벡터가 학습될 수 없다면, LTG를 NN에 추가한다.

NN LTG 할당: 특히, 도 3의 과정 (40)의 블록 (47) 및 (49), 및 본 발명의 DR 훈련 알고리즘 (30)에 따라 NN에 LTG를 할당하기 위한, 도 4 및 5의 바람직한 과정 (50),(60) 참조. 본 명세서 앞에서, 단일 LTG를 훈련시키는 방법을 설명하였다. 단일 LTG의 작동이 LTG의 NN을 만들기 위한 기반을 형성한다. 단일 LTG의 훈련 은 다음 3개의 단계를 포함한다:

1) 입력 벡터를 상기 가중치와 임계치 사이의 관계로 변환;

2) 상기 LTG가 새로운 입력 벡터를 학습할 수 있는지 결정. LTG가 입력 벡터를 학습할 수 있는지에 대한 기준은, 제약이 상기 LTG의 제약 세트에 추가될 때, 수치 해가 찾아질 수 있는지에 의해 결정된다; 및

3) 만일 상기 LTG가 상기 입력 벡터를 학습할 수 있다면, 상기 입력 벡터로부터 구성된 제약을 상기 LTG의 제약 세트에 추가한다.

만일 블록 (42)에서 상기 LTG가 상기 입력 벡터를 학습할 수 없다면, 추가 LTG가 필요하다. 따라서, 단계 2는 NN에 LTG를 할당하기 위한 근본적인 기준을 형성한다. 이제, LTG를 추가해 NN을 만드는 방법을 설명할 것이다.

오직 입력 벡터가 필요한 출력을 생산할 수 없을 때만 LTG를 할당한다. 이 과정은 다음 단계들을 포함한다:

1) 새로운 LTG와 NN에 이미 있는 LTG 사이의 연결 형성 [도 4의 블록 (52) 및 (53), 도 5의 블록 (62)]; 및

2) 확실히 상기 새로운 LTG가, NN이 이미 학습한 것을 잊지 않도록 함.

이제, 각각의 상기 과정을 더 자세히 논의할 것이다. 우선, NN 구성에 대한 일반적인 접근법을 설명한 후, 출력을 선택하고, 그 출력을 개별적인 문제들로 분리하기 위한 정당화를 설명할 것이다.

NN 구성: 처음에, 상기 입력 LTG를 상기 출력 LTG에 완전히 연결한다. 입력및 출력 LTG의 수는 NN에 의해 학습되는 데이터 세트에 따라 다르다. 각각의 출력 은 다른 출력의 독립적 학습 임무로 간주된다 [도 2의 블록 (32)].

이러한 논의를 위해, 단일 출력을 지닌 NN을 우선 조사할 것이다. 본 발명의 DR 훈련 알고리즘 (30)은 위상 (topology)을 가로질러 위로 상승하고, 역전파를 사용할 때 형성된 종래의 NN과 유사한 NN을 형성한다. 그것은 은닉 층 [도 4의 과정 (50)]에 유니트를 할당할 수 있고, 단일 LTG를 포함하는 새로운 출력 층 [도 5의 과정 (60)]을 추가할 수 있다. 그런 후, 이전 출력 층이 NN에서 은닉 층이 된다. 이 새로운 은닉 층은 그것에 할당된 추가 LTG를 가져 [도 3의 블록 (47)], 그 층에 있는 다른 LTG가 학습할 수 없는 것을 학습한다. 3개의 출력 01, 02, 03을 지닌 NN (90)의 예가 도 8에 나와있다. NN (90)은 모듈로 (Modulo)-8 문제 데이터 세트와 함께 본 발명의 DR 훈련 알고리즘 (30)으로 훈련되었다.

도 8에 도시된 NN (90)에서, 03은 은닉 층이, 완전히 훈련한 후, 필요한 해를 생산할 수 있도록 요구하지 않았던 것처럼 보일 수 있다. 하지만, 01 및 02는 은닉 층이 필요하였다. 훈련 초기에, 임계치 T11 및 T13을 지닌 LTG가 원래의 출력이었다. 하지만, 그들은 데이터를 학습할 수 없었고, 그래서 T12를 은닉 층 (92)에 추가하였고, T21은 O1에 대해 출력이 되었다. 마찬가지로, T13이 O2를 생산할 수 없을 때, T14를 추가하였다.

LTG를 명명하기 위해 본 명세서에서 사용된 규정 (convention)은, LTG가 임계치 T를 갖고, 층 L에 속하는 것이다. 모든 함수가 단지 3개 층에서만 학습될 수 있기 때문에, 오직 한 자리 숫자를 할당하여, 그 층을 확인한다. 각각의 층은 그것에 있는 LTG의 숫자 N을 갖고, 이들은 그 층에서 k = 1..N에 걸친 수이다. 각각의 LTG는 LTGLK로 언급될 수 있고, 그것과 연관된 임계치, TLK를 갖는다. 각각의 LTG는 입력 연결 가중치 세트를 갖는다. 가중치 벡터의 개별 구성요소는 wLKj로 언급되는데, 여기서 j는, 상기 입력을 제공한 이전 층에 있는 LTG이다.

NN 형성: 입력 벡터가 NN에 의해 학습될 수 없을 때, LTG를 NN에 오직 추가한다 [참조: 블록 (42) 형성]. LTG를 NN에 추가할 필요가 있을 때는 두 가지 경우이다: (1) 출력이 필요한 출력을 생산할 수 없는 경우 [블록 (49)]; 및 (2) 은닉 층에 있는 어떤 LTG도 입력 벡터를 학습할 수 없을 경우 [블록 (47)]. 앞서 논의된 대로, NN에 출력 LTG 및 은닉 층 LTG을 할당하는 것은 임의의 순서로 일어날 수 있다.

LTG를 NN에 추가할 때 바람직하게 고려될 필요가 있는 것은 다음과 같다:

a) NN에 있는 기존의 LTG로부터 만들어질 필요가 있는 모든 연결들이 새로운 LTG에 만들어진다 [도 4의 블록 (52) 및 (53), 및 도 5의 블록 (62)];

b) NN에 새로운 LTG를 추가한 후, 새롭게 추가된 LTG가 NN에 의해 이전에 학습된 모든 것을 학습하는 것이 중요하다 [블록 (55)]. 이로써, NN에 의해 이전에 학습된 것을 잊어버릴 수 있다는 것을 의미하기 때문에, 망각 (forgetfulness)이라 불리는 상태가 예방된다. 이것을 피할 수 있는 방법은, 본 명세서 후반에서 학습 논리를 설명할 때 논의할 것이다.

c) 새롭게 할당된 LTG로부터 입력을 받는, 이미 NN 내에 존재하는 LTG는 입력을 수용할 준비가 되있어야만 한다 [블록 (54)]. 만일 상기 새롭게 할당된 LTG로부터 이 새로운 입력을 받을 LTG가 준비되지 않는다면, 그들을 상기 새로운 LTG의 출력을 무시할 것이다.

은닉 층에 LTG 추가: 특히, 본 발명의 DR 훈련 알고리즘 (30)에 따라 NN의 은닉 층에 새로운 LTG를 할당하기 위한, 도 4의 과정 (50)을 참조. 이 논의는, 입력 벡터가 오직 하나의 출력을 지닌 NN에 처음에 적용되는 상황을 조사할 것이다. 제약은 첫 번째 은닉 층에 있는 첫 번째 LTG로 형성된다. 만일 그 층에 있는 첫 번째 LTG가 앞서 논의된 테스트에 의해 결정된 제약을 학습할 수 없다면 [도 3의 블록 (42)], 그 층에 있는 LTG들 중 하나가 그것을 학습할 때까지, 그 층에 있는 다음 LTG가 그것의 출력 등과 함께 입력 벡터로부터 형성된 제약을 학습하려고 한다. 하지만, 만일 그 층에 있는 LTG들 중 어느 것도 제약을 학습할 수 없다면, 추가 LTG를 상기 층에 추가해 그것을 학습해야만 한다 [블록 (47)]. 이는, LTG D를 층 N에 추가한 도 6b의 NN (70)에 도시되어있다.

예를 들어, 도 6b에 있는 LTG A 또는 LTG B가 새로운 입력 벡터를 학습할 수 없을 때, 도시된 대로 LTG D를 층 N에 추가한다. LTG D는 이 층, 층 N로의 입력을 기초로 한 새로운 제약을 학습한다 [블록 (55) 또는 (56)]. 또한, 이 새로운 LTG, LTG D의 출력은, 출력 Oj를 갖는 NN (70)의 출력 층, 층 N+1에 있는 출력 LTG, LTG C로의 입력 [블록 (53) 및 (54)]이 된다.

이제, 임의의 은닉 층이 고려될 것이다. 입력 벡터를 NN에 적용할 때, 첫 번째 은닉 층에 있는 각각의 LTG는 활성되어, 또는 LTG의 훈련에 의존하지 않고 반응할 것이다. 이러한 LTG의 반응들은 다음 층에 입력 벡터 역할을 하고, 이들은 그들의 훈련 등이 주어지면 반응할 것이다. 만일 은닉 층이, 입력 벡터의 결과로서, 받은 입력을 분류하는 것을 학습할 수 없다면 [블록 (42)], 새로운 LTG를 그 층에 추가한다 (참조: 도 4). 모든 입력 데이터가 학습될 때까지, 은닉 층에 LTG를 추가하는 과정을 반복한다.

설정된 은닉 층에 LTG를 동적으로 할당하는 과정 (50) 또는 바람직한 형식화 (formalization)는 다음 알고리즘에 주어진다:

a) 층 N-1에 있는 모든 LTG들에 연결 형성 [블록 (52)]. 이러한 연결은 새롭게 할당된 LTG에 입력 역할을 한다.

b) 학습된 출력에 대해, 층 N+1에 있는 모든 LTG들에 연결 형성 [블록 (53)]. 이러한 연결은 새롭게 할당된 LTG로부터의 출력 역할을 한다.

c) 층 N+1에 있는 LTG는, 층 N에 있는 기존의 LTG와 새로운 LTG 사이의 논리 관계를 형성한다 [블록 (54)]; 및

d) 층 N에 있는 다른 LTG가 학습한 것으로, 새롭게 할당된 LTG를 준비한다 [블록 (55) 내지 (56)].

상당히 복잡한 데이터로 훈련된 후 NN (100)이 만들어진 도 9에, 상기 연결 형성이 도시된다.

LTG H를 층 N에 있는 NN (100)에 할당한다 [블록 (51)]. LTG H로부터의 출력 연결은, 출력 층이 아닌, 다음 은닉 층, 층 N+1에 있는 LTG F 및 G의 입력에 형성된다 [블록 (53)]. 이것은, 각각의 출력이 개별적인 학습 임무로 해결되는 것을 논의한 본 명에서 앞 부분에 나와있다. 입력 연결은 LTG들, 이전 층, 층 N-1에 있는 LTG A, B 및 D로부터 설정된다 [블록 (52)].

요약하자면, 만일 은닉 층 LTG의 어느 것도 그 층으로의 입력에 의해 형성된 제약을 학습할 수 없다면, 즉 해가 없다면, LTG를 은닉 층에 추가한다. 새로운 LTG는, Oj와 관련된 다음 층에 있는 모든 LTG들에 연결된 그것의 출력을 갖는다. 만일 상기 출력 LTG가 입력 제약을 학습할 수 없다면, 현재의 출력 층 LTG가 은닉 층이 되고, 도 5의 과정 (60)에 따라 새로운 출력을 NN에 출력으로서 추가한다.

지금껏, LTG를 상기 은닉 층에 추가하는 방법이 논의되었고, 이제 새로운 출력을 NN에 추가하는 방법을 조사할 것이다.

새로운 출력 추가: 특히, 본 발명의 DR 훈련 알고리즘 (30)에 따라 NN에 출력 LTG를 할당하기 위한, 도 5의 과정 (60)을 참조. 출력 Oj를 선택한 후 [도 2의 블록 (32)], 앞서 설명한 것처럼, 모든 입력 소스 (source)를 단일 출력 LTG에 직접적으로 연결한다. 도 3을 참조하여 앞서 설명한 것처럼, 상기 LTG에 입력 벡터를 연속해서 적용하고 제약을 형성하여, 상기 단일 출력 LTG를 훈련시킨다. 도 10a (i)에, 현재 훈련되는 출력 Oj로 출력 층 (112)에 배열된, 단일 LTG, LTG A를 갖는 NN (110)의 개략도가 도시되어있다.

상기 입력 벡터가 형성한 각각의 제약으로 LTG A의 제약 세트에 있는 제약을 테스트한다 [블록 (42)]. 사용된 테스트는 앞에서 제공하였다.

만일 새로운 제약이 기존의 제약 세트와 함께 해를 갖는다면, 그것을 상기 제약 제트에 추가한다. 하지만, 만일 해가 없다면 [블록 (42)에서], 도 10a(ii)에 도시된 것처럼, 다른 출력 층 (114)를 추가하고, 새로운 LTG, LTG C를 추가한다 [블록 (61)]. LTG C는 NN (110)의 새로운 출력 LTG, Oj가 된다. 도 10a(ii)에 도시된 것처럼, 입력 벡터를 학습할 수 없는 은닉 층 (112)[원래 출력 층 (112)]에 LTG, LTG A가 있었기 때문에, 새로운 LTG, LTG B를 은닉 층 (112)에 추가한다. 그때, LTG A가 학습할 수 없는 입력 벡터가 LTG B에 의해 학습될 수 있다. LTG A 및 LTG B의 출력이 출력 층 (114)[블록 (62)]에 있는 LTG C의 입력에 연결된다. 그때, LTG A 및 B가 NN (110)의 은닉 층 (112)을 형성한다.

다시, 만일 도 10b의 NN (110)의 LTG C가 일부 입력을 학습할 수 없다면, 새로운 은닉 층 (114)[이전에 출력 층 (114)]이 추가되고, 새로운 출력 층 (116)이 생성된다. 이러한 방법으로, 새로운 은닉 층이 생성되고, 출력 층이 추가된다. 도 10b를 참조하여, 새로운 은닉 층 LTG, LTG E를 은닉 층 (114)에 추가하고, 새로운 출력 LTG, LTG F를 새로운 출력 층 (116)에 추가한다.

요약하자면, 만일 출력 LTG가 상기 입력 벡터를 학습할 수 없다면, 다른 LTG를 현재 출력 층과 동일한 층에 추가하고, 모든 입력을 그것에 직접적으로 연결한다. 이러한 LTG는, 오래된 출력이 학습할 수 없는 입력을 학습한다. 추가 LTG를 다음 층에 추가한다. 이 LTG에 입력은 NN의 오래된 출력이고, 그 층에 새롭게 추가된 LTG이다.

이제, NN에 동적으로 할당된 LTG에 연결을 추가하는 방법이 설정되었는데, LTG를 어떻게 훈련시켜, NN이 계속해서 이전에 학습한 것을 재생산하는지를 조사하는 게 중요하다. 이것을 이제 논의할 것이다.

논리 학습: 본 발명의 DR 훈련 알고리즘 (30)은 단일 패스 알고리즘이기 때문에, LTG를 NN에 추가할 때, NN이 이전에 학습된 입력 벡터에 대한 정확한 반응을 계속해서 생산하여야만 한다. 따라서, LTG의 추가로 인해, NN이 이전에 학습한 것을 잊지 않아야 한다. 이것은 다음과 같을 경우에 발생할 수 있다: (a) LTG를 은닉 층에 할당하는 경우; 또는 (b) 새로운 출력 층을 NN에 추가하는 경우. 이 경우, 새로운 LTG를 은닉 층에 할당한다.

이 문제를 피하기 위해: (a) 특정 논리 규칙에 따라, 상기 은닉 층에 새롭게 할당된 LTG를, 다른 LTG가 이 층에서 학습한 것으로 준비해야만 한다 [도 4의 블록 (55) 또는 (56)]; 및 (b) 새롭게 할당된 LTG가 할당된 층으로부터 직접적으로 입력을 받는 LTG의 층은, LTG가 새롭게 할당된 LTG의 원하는 작동을 기초로 학습하고 갱신된 것을 가질 필요가 있다 [블록 (54)]. 이 경우는 새로운 출력 층의 할당을 포함한다.

이제, 새롭게 할당된 LTG가 학습하는 것을 조사할 것이다. 우선, 도 10a(i)에 도시된 NN과 같은, 어떠한 은닉 층도 없는 NN을 조사할 것이다.

LTG가 입력 벡터를 학습할 수 없을 때, 적어도 2가지 상황이 있다: (1) 학습되는 입력 벡터가 1을 출력할 필요가 있지만, 상기 LTG가 이전에 학습한 것을 기초 로 이 입력 벡터에 대해 오직 0을 출력할 수 있을 때; 및 (2) 학습되는 입력 벡터가 0을 출력할 필요가 있지만, 상기 LTG가 이전에 학습한 것을 기초로 이 입력 벡터에 대해 오직 1을 출력할 수 있을 때.

앞서 논의된 것처럼, 이러한 상황에서, 도 10a(ii)에 도시된 것처럼, 새로운 출력을 NN에 할당한다.

그 다음 층이, LTG가 할당되는 은닉 층으로부터의 입력을 결합시킬 수 있는 가능한 방법에는 적어도 2가지가 있다: (1) 출력 LTG가 논리 (logical) OR로 은닉 층 LTG로부터 입력을 결합시키고 [블록 (64)]; 및 (2) 상기 출력 LTG가 논리 AND로 상기 은닉 층 LTG로부터의 입력 벡터를 결합시킨다 [블록 (63)].

OR 학습: 특히, 도 5의 과정 (60)의 블록 (64) 참조. 우선, 오래된 LTG가 학습할 수 없는 입력 벡터에 대해 조사할 것이다. 만일 상기 벡터로 인해 NN이 1을 출력해야 하고, 상기 LTG가 이전에 학습한 것의 결과로서 오직 0을 출력할 수 있다면, 새로운 출력은 그것의 입력 사이에 OR을 형성할 필요가 있다

다시 도 10a(ii)를 참조하여, LTG A가 활성화될 때, NN (110)의 출력, LTG C가 활성화될 필요가 여전히 있지만, LTG A가 활성화될 필요가 있는 경우, 그렇게 될 수 없어, 그 결과 LTG B가 상기 입력에 있는 이러한 특징을 학습한다. 또한, LTG B는 NN (110)에 의해 이전에 학습된 입력 벡터를 학습할 필요가 있다. 이를 통해, LTG B가 상기 출력을 활성화시키지 않아야 할 때, 확실히 활성화되지 않게 한다. 이를 위해, LTG A의 제약 세트에 있는 모든 제약들을 LTG B의 제약 세트에 복사하지만, 모든 제약들은 <T로 학습된다. LTG B가, LTG A가 학습할 수 없는 새로 운 제약을 학습하고, 이 입력 벡터의 탐지에 의해 활성화될 것이다. 이로써, LTG C는, 그것의 2개의 입력 OR을 학습한 대로 활성화되고, 필요한 대로 1을 출력한다.

AND 학습: 특히, 도 5의 과정 (60)의 블록 (63) 참조. 만일 출력이 0이 될 필요가 있고, LTG가 대신 1을 출력한다면, 새로운 출력이 LTG A 및 새롭게 할당된 LTG, LTG B로부터 AND 입력을 학습한다. 이 경우, 0<T가 LTG A의 제약 세트에 있는 경우를 제외하고, 제약들을 LTG A의 제약 세트로부터 ≥T로 복사한다. 이 경우, 상기 제약을 되풀이해서 그대로 복사한다.

LTG를 기존의 은닉 층에 더 할당할 경우, 앞서 설명된 대로, 그 층에 있는 이전 LTG (LTG B)로부터 그에 알맞게 상기 제약을 복사하고 변경한다. 하지만, 만일 LTG를 층 N에 추가한다면, 상기 LTG가 층 N+1에서 학습한 것은 변경이 필요하다.

그 다음 층이 학습하는 논리는, Op1...OpN이 논리 AND 또는 OR인 (...(x1 Op1 x2)Op2 x3)Op3 x4)...)이고, x1...xN은, 새로운 LTG가 할당된 은닉 층으로부터 받은 입력이다. 만일 새롭게 할당된 LTG를 기존의 은닉 층에 할당하면, 이층으로부터 입력을 받는 LTG는 상기 논리를 기초로 그것의 제약이 갱신되도록 요구할 수 있다. 예를 들어, 만일 층이 기존의 논리 (x1 AND x2)를 갖는다면, 그것은 제약들 {wn1 + wn2≥Tn, wn1<Tn, wn2<Tn, 0<Tn}를 가질 것이다. 만일 상기 논리가 (x1 AND x2) AND x3이 된다면, 상기 제약 세트는 {wn1 + wn2 + wn3≥Tn, wn1 + wn3<Tn, wn2 + wn3<Tn, wn3 <Tn, wn1 + wn2<Tn, wn1<Tn,wn2<Tn, 0<Tn }이 된다.

입력 벡터가 학습될 수 있을 때 층에 있는 LTG에 의해 학습된 논리는, 그들이 NN에 추가되는 논리에 따른다. 만일 상기 LTG를 추가하여 AND를 형성한다면, 상기 LTG는 제약 xi ·w ≥ T을 학습하고, 만일 상기 LTG를 추가하여 OR을 형성한다면, 상기 LTG는 xi ·w < T를 학습한다.

완전한 학습 및 일반화 설명

이제, NN이 완전히 훈련되거나, 즉, NN이 그것이 학습한 것을 재생산할 수 있고, 또한 일반화할 수 있는 것을 설명할 것이다. 우선 LTG가, 그것이 학습한 입력을 회복시켜, 그것이 완전히 훈련되는 것을 설명한다.

LTG 의 완전한 훈련: 상기 LTG를 훈련시킬 때, 그 결과로 생긴 제약 세트를 LTG의 출력을 결정하는 데 사용할 수 있다. 상기 훈련된 LTG의 제약 세트에 입력을 적용하고, 맥컬럭-피트 LTG의 작동을 정의하는 방정식 1.1을 사용하여, 이것을 행한다. 이는 다음 예에 나와있다.

도 7에 도시된 대로, 다음의 제약 세트를 생산하기 위해 훈련된, 2-입력 LTG (82)를 고려: {w1 + w2<T, w2>T}. 그런 후, 입력 벡터 [1 1]를 적용하면, 1.w1 + 1.w2 = w1 + w2<T이기 때문에, 상기 LTG는 0 출력을 생산할 것이다. 따라서, 가중치에 대한 숫자 값은, 상기 LTG가 완전히 훈련되는 데 필요하지 않다.

상기 논의는, LTG가 가중치 및 임계치에 대한 숫자 값을 찾지 않고 학습한 것을 재생산할 수 있다는 것을 증명한다. 또한 그것은, 상기 훈련된 NN에 의해 학습된 것이 100% 정확하게 회상될 수 있다는 것을 증명한다.

본 발명은 주로, 입력 벡터와 연관된 적당한 출력을 결정하기 위해 NN을 훈련시키는 것에 관한 것이지만, NN을 훈련시키기 위해 사용된 데이터 및 훈련 동안 문제를 일으킬 수 있는 2가지 문제에 대해서도 논의할 것이다.

일반화: 본 발명의 바람직한 실시예는, 피드-포워드 NN이 간단한 데이터 세트로 훈련될 수 있어, 훈련 동안 NN에 의해 이전에 보이지 않은 데이터 패턴을 성공적으로 분류할 수 있기 때문에, 상기 피드-포워드 NN을 사용한다. 이것을 일반화라고 부른다.

데이터 공간에 대해 알려진 것이 거의 없는, 블랙 박스 (black box) NN 분류 시스템을 갖는 것이 바람직할 수도 있지만, NN을 훈련시킬 때 매우 중요한, 적어도 2개의 데이터의 양상 있고, 이들은 다음과 같이 열거된다: (1) 큰 노이지 (noisy) 데이터와 직면한 문제 중 하나는, 그것이 모순 (contradiction)을 가질 수 있다는 것인데, 예를 들어, 일부 입력 벡터 xi가 있고, 만일 일 실시예에서 xi → 0이고, 다른 실시예에서, xi → 1이라면, NN은 이 벡터를 학습하는 데 어려움을 겪을 것이다. 이 문제는 모든 학습 알고리즘에 일반적이고; 및 (2) NN을 훈련시키기 위해 사용된 훈련 샘플을 확보하는 것이 상기 데이터 세트를 나타내는 것이다. 이제, 이것을 다음과 같이 더 자세히 설명할 것이다.

각각의 데이터 세트는 그것에 몇 개의 특징들을 갖는다. 훈련 동안 NN이 노 출된 데이터 세트는, NN을 완전히 훈련시키는 데 필요한 모든 특징들을 나타낸다. 하지만, 훈련 세트가, 상기 데이터 세트가 크고 거의 이해되지 못할 때 완전한 데이터 세트에 있는 모든 특징들을 나타내는 것인지를 결정할 방법은 없다. 이 경우, 상기 데이터 세트를 '미지 (unknown)'라고 부른다.

훈련된 NN을 테스트하여, 만일 NN이 상기 데이터 세트에 있는 모든 특징들을 학습하였는지 결정하는 것은 불가능하다. 추가 분류된 입력 벡터로 NN을 테스트하는 것이 이를 달성하는 데 바람직한 방법이다. 피드-포워드 NN을 훈련시키기 위해 데이터 세트를 분류하는 것은 앞서 논의되었다. 하지만, 상기 데이터 세트가 잘 이해되지 않고 크다면, 상기 데이터 세트에 있는 다른 특징들은 더욱더 분명해지지 않을 수 있다.

이제, 연역 (deduction)이 항상 작용하지 않을 이유에 대해 논의할 것이다.

연역은, 상기 훈련 데이터 세트에 실종 (missing)된 특징들이 있을 때 실패 (fail)할 것이고, 이 문제는 '불충분한 훈련'이라고 불릴 수 있다.

LTG 의 불충분한 훈련: LTG를 훈련시키는 각각의 데이터 세트는 몇 개의 데이터 특징들을 가질 수 있다. 훈련 데이터는 그것 내의 나타난 이러한 특징들 몇 개를 가질 수 있으나; 미지의 데이터 세트 내에 존재하는 모든 특징들 또한 상기 훈련 세트에 나타난다는 것을 보장하지는 않는다.

따라서, 만일 상기 훈련 데이터 세트 내에 나타나지 않은 특징들이 있다면, 상기 LTG는 훈련 동안 상기 데이터 세트에 있는 모든 특징들에 노출되지 않는다. 따라서, 상기 LTG를 보이지 않는 입력 벡터로 테스트될 때, 그것은 잘못된 결과를 출력할 수 있다. 따라서, 상기 LTG를 불충분하게 훈련된 것으로 부를 수 있는 것이다.

예를 들어, 오직 2개의 입력 벡터, [0 0]→0 및 [0 1]→1로 훈련된, 도 7에 도시된 2-입력 LTG (82)를 고려한다.

LTG (82)는 아직, 상기 입력 벡터에 있는 첫 번째 비트가 세트가 되는 어느 벡터에 노출되지 않기 때문에, 그것은 [1 0] 및 [1 1]을 정확히 분류할 수 없다. 이러한 LTG (82)가 상기 훈련 세트로부터 학습하는 제약 세트는 {0<T, w2≥T}이고, 비록 w2에 대한 일부 정보가 있지만, w1과의 어떠한 관계도 설정되지 않았다. 예를 들어, w1 + w2 또는 w1이 T와 갖는 관계가 무엇인지 알려지지 않는다. 그 결과, 입력 벡터 [1 1] 및 [1 0]에 대한 출력을 연역하는 것은 불가능할 수 있다. 상기 입력 사이에 형성된 논리 관계 면에서, 이들은 x2, x1 OR x2, 또는 x1 XOR x2일 수 있지만, 또 다른 정보 없이 그것이 무엇인지 말하는 것은 불가능하다.

본 발명의 DR 훈련 알고리즘 (30)에 따라, 만일 LTG가 불충분하게 훈련됐다면, 그것은 1을 출력할 것이 바람직하지만, 이것은 상기 데이터 세트에 따라 달라, 대신 0을 출력할 수 있다. 즉, 상기 LTG는, 그것이 상기 데이터 입력에 반응하는 방법을 학습할 때까지, 활성으로 남을 것이다. 하지만, 이것은 NN에 의해 학습되는 데이터 세트에 따라 변화될 것이다.

따라서, 상기 훈련 세트에 실종된 특징들이 있다면, LTG는 정확한 반응을 출력하는 데 어려움을 가질 수 있다는 것이 이해되어야만 한다. 이것은 또한, 역전파 와 같은 다른 훈련 방법으로 훈련된 다른 뉴런이 경험하는 문제이다. 하지만, 역전파로 훈련된 퍼셉트론과 달리, 본 발명의 DR 훈련 알고리즘 (30)이, 상기 LTG가 데이터 패턴을 분류하는 방법을 아직 학습하지 못한 때를 확인하는 것은 가능하다. 즉, 본 발명의 DR 훈련 알고리즘 (30)으로 훈련된 LTG는, 그것이 입력 벡터를 정확히 분류하는 방법을 알지 못한 때를 나타낼 수 있다.

이제, LTG의 가장 유용한 특성 중 하나, 즉 충분한 훈련이 주어진다면, 보이지 않는 입력 벡터의 출력을 연역할 수 있는 상기 LTG의 능력에 대해 논의할 것이다.

보이지 않는 입력 벡터 연역: NN을 훈련시킬 때, 그것을 입력 벡터의 세트로 훈련한 후, NN이 훈련 동안 노출되지 않은 많은 입력 벡터로 테스트한다. 이러한 입력 벡터는 '보이지 않는'으로 불리고, NN이 그들의 연관 출력을 정확히 결정할 수 있는지 결정한다.

NN이, 훈련 동안 보이지 않았던 데이터 패턴의 분류를 결정할 수 있기 위해, NN은 이전에 학습한 것으로부터 보이지 않는 입력 벡터의 분류를 연역할 수 있어야 한다. 모든 가능한 입력 벡터 및 그들의 연관 출력에 상기 LTG를 노출시키는 것을 제외하고, 모든 특징들이 훈련 동안 학습된다는 보장이 없기 때문에, 상기 출력을 정확히 연역하는 것은 불가능할 수 있다. 종종, 모든 데이터 패턴 또는 입력 벡터가 이용가능한 것이 아니고, 만일 그들이 상기 입력 데이터 세트를 완전히 나열 (enumerate)하여 찾아지더라도, 그들을 분류하는 방법은 알려지지 않을 수 있다. 만일 오직 입력 데이터 세트의 일부인 훈련 세트가, NN이 학습하기 위해 훈련되는 그 데이터 세트를 나타내는 것인지 결정하는 방법이 있을 것 같지 않다. 그 결과, 특정 데이터 세트로 훈련하여, 보이지 않는 데이터 패턴의 출력이 일부 경우 NN에 의해 정확히 결정될 수 있다는 것을 보여주는 것만이 가능하다.

명제 ( Proposition ) 3.1: 만일 보이지 않는 입력 벡터에 대한 LTG의 임계치와의 관계가, 그것을 이전에 학습한 제약으로부터 연역될 수 있다면, 그것은 보이지 않는 입력 벡터에 대한 출력을 결정할 수 있을 것이다.

도 11에 도시된 LTG (120) 고려. 상기 LTG는 다음 입력 및 출력 벡터를 사용하여 훈련된다: [0 0 0]→0; [0 0 1]→1; [0 1 0]→1; 및 [1 1 1]→0.

그때, LTG (120)는 다음의 제약 세트를 가질 것이다: {0<T, w3≥T, w2≥T, w1 + w2 + w3<T}.

상기 입력 벡터 [1 0 0]은 훈련 동안 LTG (120)에 의해 보이지 않고, 이 벡터에 필요한 출력은 0이다. 만일 LTG (120)가 상기 임계치와의 관계를 연역할 수 없다면, 상기 출력이 0인 것을 결정할 수 없을 것이다.

0<T, w2≥T 및 w3≥T이기 때문에, T, w2 및 w3은 모두 양수이고, w2 및 w3≥T이다. 따라서, w2 + w3은 또한 ≥T이어야만 한다. 하지만, w1 + w2 + w3<T는, w1이 작고 음수이고 따라서 <T인 것을 암시한다. 따라서, LTG (120)에 적용되고, LTG, 1.w1 + 0.w2 + 0.w3 = w1<T의 작동을 정의하는 방정식 1.1을 사용할 때, 입력 벡터 [1 0 0]가 연역된다. 따라서, 상기 LTG는 0을 출력할 것이다.

그러므로, LTG (120)는 정확한 출력을 연역할 수 있다. LTG (120)가 상기 정확한 출력을 유도할 수 있기 때문에, 그것이 충분히 훈련된다면, 출력을 연역할 수 있다는 것을 보여준다.

본 발명의 DR 훈련 알고리즘 (30)은 LTG를 사용하여 NN을 구성하는 것이 바람직함에 따라, 연역 원리를 본 발명에 따라 사용하여, NN의 보이지 않는 입력 벡터의 분류를 연역할 수 있는 것이 바람직하다. 대안적으로, 훈련 동안 보이지 않았던 데이터 패턴의 분류를 결정하는 다른 방법 또한 본 발명의 다른 양태에 따라 사용할 수 있다. 이제, 데이터 패턴의 분류를 결정하거나, 또는 제약 세트의 입력 벡터가 드러나는지 드러나지 않는지를 결정하는 이 대체 방법을 설명할 것이다.

이제, 입력 벡터가 명백히 학습됐는지와 상관없이, NN이 입력 벡터를 분류하는 방법을 학습했는지를 결정하기 위해 신규한 테스트가 제공될 것이다. 다음 테스트는, 상기 NN 출력이 입력 벡터에 대해 드러나는지를 보여준다.

LTG 가 입력 벡터를 아는지 테스트: 훈련된 LTG로부터 입력 벡터, 또는 패턴의 분류를 찾을 수 있는 것이 바람직하다. 입력 벡터가 훈련된 LTG에 적용될 때, 그것은 다음 중 하나를 할 것이다: (1) 활성화; (20) 활성화 실패; 또는 (3) 불충분한 훈련의 결과로, 입력 벡터를 분류하는 방법을 알 수 없음.

종래의 훈련 알고리즘은, LTG가 입력 벡터를 분류하는 방법을 알지 못할 때의 상황을 확인하도록 하는 데 실패한다. 본 발명의 DR 훈련 알고리즘 (30)은, 상기 LTG가 분류 방법을 알지 못하는 입력 벡터의 확인을 허용한다.

이제, 본 발명의 또 다른 양태에 따라, 제약 세트의 입력 벡터가 드러나는지 드러나지 않는지 결정하는 방법 (130)의 바람직한 실시예를 도 12의 흐름도를 참조하여 설명할 것이다. 상기 제약 세트가, 본 발명의 DR 훈련 알고리즘 (30)에 따라 훈련된 NN 뉴런의 제약 세트인 것이 바람직하다. 입력 벡터가 드러나는지 드러나지 않는지 결정하는 방법 (130)은 NN에 한정되지 않는다는 것이 이해되어야만 한다. 또한, 입력 벡터를 분류하는 방법 (130)은, 예를 들어, DNA와 같은, 데이터의 문자열 (string) 분석과 같은 제약 시스템을 사용하는 다른 분야에 유용할 수 있다고 여겨진다. 마찬가지로, 입력 벡터를 분류하는 방법 (130)은 또한, CSP 및 운영 연구 애플리케이션 (operational research application)에 사용될 수 있다. 따라서, 본 발명의 이러한 양태는 독립적이고, 본 발명의 DR 훈련 알고리즘 (30)으로 사용하는 데 한정되지 않는다.

이제, 입력 벡터를 분류하는 방법 (130)을, 본 발명의 DR 훈련 알고리즘 (30)에 따라 훈련된 LTG의 출력을 결정하는 면에서 설명할 것이다. 이러한 설명은 단지, 본 발명에 따른 방법 (130)의 가능한 사용 중 하나인 예에 불과하다.

LTG가 불충분하게 훈련됐는지, 즉, 입력 벡터, xi를 분류하는 방법을 알지 못하는지를 결정하기 위해, 앞서 설명한 것처럼, 우선 블록 (131)에서, 제약 및 그것의 보수를 상기 입력 벡터로부터 구성한다. 형성된 제약들은 다음과 같다: xi ·w < T 및 그것의 보수 xi ·w ≥ T, 또는 xi ·w ≥ T 및 그것의 보수 xi ·w < T.

이 입력 벡터와 연관된 출력은 아직 드러나지 않은 것으로 가정한다. 상기 제약 xi ·w < T 또는 xi ·w ≥ T를 훈련된 LTG 제약 세트에 추가한 후, 해가 있는지 결정하기 위해 블록 (132)에서 적당한 제약 만족 알고리즘을 사용하여 테스트한다 (수치 해가 찾아질 수 있지만, 특정한 해를 찾는 것은 중요하지 않고, 또는 동등하게 (equivalently) 제약들에 의해 정의된 체적의 교차 구역이 도 12에 도시된 대로 찾아질 수 있다). 만일 해가 없다면, 상기 LTG는, 블록 (133)으로 나타낸 0 또는 1을 출력해야만 하고, 상기 LTG는 충분히 훈련되고, 이 입력 벡터를 분류하는 방법을 안다. 즉, xi ·w ≥ T 또는 xi ·w < T에 대한 해가 있어야만 한다.

하지만, 블록 (132)에서, 만일 제약 xi ·w < T 또는 xi ·w ≥ T를 훈련된 LTG의 제약 세트에 추가했을 때, 해가 있었다면, 블록 (134)에서, 제약 xi ·w < T 또는 xi ·w ≥ T를 제거하고, 그것의 보수를 대신 추가한다. 만일 블록 (135)에서 점검을 수행할 때 해가 없다면, 상기 LTG는 이 입력 벡터를 분류하는 방법을 알고, 블록 (136)으로 나타낸 대로 0 또는 1을 출력할 것이다.

하지만, 만일 블록 (135)에서 점검을 수행할 경우, 상기 제약 및 그것의 보수를 블록 (134)에서 대안적으로 추가했을 때 상기 LTG가 해를 가졌다면, 블록 (137)에 나타낸 대로, 상기 입력 벡터가 불충분하게 훈련됨에 따라, 상기 입력 벡터가 분류되는 방법은 알려지지 않는다. 이러한 단계의 순서는 중요하지 않다는 것이 이해되어야만 한다.

적당한 제약 만족 방법 또는 알고리즘을 사용하여, 상기 제약이 학습될 수 있는지 테스트할 수 있다. 가중치 및 임계치 값에 대한 특정 수치 해를 찾는 것은 중요하지 않지만, 그들이 찾아질 수 있는지 결정하는 것은 중요하다. 이것은 상기 제약에 의해 정의된 체적에서 교차 구역을 찾는 것과 동일하게 언급될 수 있다.

상기 입력 벡터를 제약으로 변환할 때, 그것은 상기 LTG의 가중치-공간에서 평면 (plane)을 형성한다. 입력 벡터가 상기 LTG에 의해 학습될 때마다, 그것은, 상기 훈련 조건을 만족시키는 체적을 줄이며, 상기 가중치-공간을 양분 (bisect)하는 평면을 형성한다. 이것은 도 13 (a)에 도시되어 있는데, 여기서 밀폐된 오목 영역 (enclosed concave region)은, 지금까지 학습된 훈련 조건을 만족시키는 가중치-공간이다. 상기 영역을 양분하는 평면은, 상기 LTG에 제공되는 입력 벡터로부터 형성된다. 이러한 상황에서, 도 13 (b) 및 13 (c)에 각각 도시된 대로, 상기 LTG는 xi·w < T 또는 xi ·w ≥ T를 학습할 수 있다. 이 경우, 상기 입력 벡터를 분류하는 방법은 알려지지 않는다. 도 13 (d)에서, 상기 LTG는 상기 평면 아래가 아닌 위의 영역만을 학습할 수 있으므로, 따라서 상기 훈련 조건을 만족시키는 가중치-공간의 체적과 교차하는 제약에 의해 상기 출력이 결정될 것이다.

도 13(e)에서, xi ·w = T에 의해 형성된 평면은 상기 볼록 (convex) 체적과 교차하지만, 도 13(f)에서는 그 평면으로 형성된 오직 하나의 제약만이 상기 LTG에 의해 학습될 수 있다. 이러한 모든 제약들의 교차 구역에 의해 형성된 영역에만 관심 (interest)이 주어지기 때문에, 상기 볼록 영역은 오목 (concave) 영역으로 줄어든다.

만일 상기 입력 벡터가 상기 훈련 세트에 있게 된다면, 그것은, 훈련 동안 구성되었던 제약 세트에 의해 정의된 체적의 면 중 하나를 형성할 것이고, 따라서, 상기 입력 벡터가 알려지게 될 것이다.

요약하자면, 상기 제약 및 그것의 보수 모두 상기 입력 벡터로부터 형성되고 [블록 (131) 및 (134)], 교차 구역의 존재에 대해 훈련된 LTG의 제약 세트로 훈련된다 [블록 (132) 및 (135)]. 만일 상기 제약들 중 어느 것도 해를 이끌어낼 수 없다면 [블록 (133) 및 (136)], 이 입력 벡터에 있는 특징들이 훈련 동안 학습되었다는 것을 암시한다. 하지만, 만일 상기 LTG가 이미 학습한 것과 함께 제약에 이용가능한 해가 있다면 [블록 (137)], 상기 훈련 세트로부터 실종된 특징들이 있다. 상기 특성은 다음과 같이 공식적으로 진술될 수 있다:

정리 ( Theorem ): 상기 LTG가 학습한 제약 목록에 xi ·w < T 또는 xi ·w ≥ T 및 그것의 보수를 교대로 추가한 [블록 (131) 및 (134)] 후, 교차 구역에 대해 테스트하여 [블록 (132) 및 (135)], 상기 벡터가 xi가 학습되는지를 결정할 수 있다. 만일 두 가지 경우에 해가 있다면 [블록 (137)], 상기 제약은 학습되지 않는다. 하지만, 만일 오직 xi ·w < T 또는 그것의 보수가 이전에 학습된 제약으로 해를 갖는다면, 이 벡터는 상기 LTG에 의해 학습된다 [블록 (133) 및 (136)].

증명 ( Proof ): 도 13에서, 상기 LTG가 학습한 것에 의해 정의된 체적의 2개의 표상 (representation)이 주어진 가중치-공간의 표에 도시되어 있다. 오목 영역은 도 13(a) 내지 13(d)에 도시돼 있고, 볼록 영역은 도 13(e) 및 13(f)에 도시돼 있다. 상기 벡터에 의해 형성된 평면을 상기 가중치-공간, 즉 xi ·w = T에 적용한다. 그것은 도 13(d)에 있는 것처럼, 정의된 체적과 교차하지 않거나, 모든 다른 경우에 있는 것처럼, 교차할 것이다. 만일 그것이 교차하지 않는다면, 상기 입력 벡터는 학습된 것이다. 이 경우, 체적, 즉 xi ·w < T 또는 xi ·w ≥ T가, 상기 LTG가 이미 학습한 제약에 의해 형성된 체적과 교차하는 것에 따라, LTG를 활성화시키거나 활성화시키지 않을 것이다. 그렇지 않으면, xi ·w는 학습되지 않는다.

상기 평면이 도 13 (e) 및 13 (f)에서와 같은 볼록 영역과 교차하는 경우, 상기 영역은, 상기 LTG가 이전에 학습한 모든 제약에 공통적임에 틀림없기 때문에, 이들 중 오직 하나만이 학습될 수 있다 [주의: 관심이 오직 두 영역의 공통 영역, 즉 그들의 교차 구역에만 주어지기 때문에, 도 13 (e) 및 13 (f)에 있는 영역은 오목 영역으로 줄어든다]. 이제, 이렇게 되는 것을 증명하기 위해, 일 예가 주어질 것이다.

도 11에 주어진 3-입력 LTG (120)을 고려. 만일 LTG (120)가 다음의 입력 벡터, [0 1 0]→1 및 [0 1 1]→0으로 훈련된다면, 상기 LTG (120)가 학습한 제약 세트는 {w2 ≥ T, w2 + w3 < T}이다. 벡터 [1 0 0] 및 [0 0 1]에 대한 출력이 결정되도록 한다.

상기 입력 벡터 [1 0 0]에 대해, 평면 w1 = T가, 상기 영역 {w2 ≥ T, w2 + w3 < T}과 교차하는 것으로 발견되어, 그 결과 w1 < T 및 w1 ≥ T가 LTG (120)에 의해 학습된 영역과 교차한다. 따라서, LTG (120)은, 상기 출력이 되어야만 하는 것을 알지 못한다. 앞에서, 상기 출력이 1이어야만 한다는 것이 진술되었지만, 이것은 필요시, 학습되는 데이터 세트에 따라 변경될 수 있다.

상기 입력 벡터 [0 0 1]에 대해, 평면 w3 = T가, 상기 영역 {w2 ≥ T, w2 + w3 < T}과 교차하지 않는 것으로 발견되고, 그렇게 하기 위한 유일한 영역은 w3 < T이다. 따라서, 상기 벡터 [0 0 1]에 대한 출력은 0이 될 것이라는 게 알려진다.

상기 입력 공간에 대해 그렇게 많이 알려지지 않지만, 본 발명에 따라 LTG를 훈련시키는 DR 훈련 알고리즘 (30)은 상기 가중치-공간에 관한 많은 정보를 제공한다.

상기 제약 세트에 각각의 제약을 추가하여, 이 LTG에 대한 모든 훈련 조건을 만족시키는 가중치-공간 영역을 감소시킨다.

이제, 입력 벡터의 출력을 결정하는 것은, 그것이 임계치로 형성할 수 있는 가능한 2개의 제약을, 상기 LTG가 학습한 제약과 비교하는 것이 바람직한 방법인 것으로 이해되어야만 한다. 그것이 상기 LTG를 활성화시키거나 활성화시키지 않거나, 또는 정확한 출력을 알지 못할 것이다.

지금껏 NN을 훈련시키고 테스트하여, 보이지 않는 입력을 연역하는 방법이 설명되었고, 이제, 본 발명의 DR 훈련 알고리즘 (30) 및 일반화를 증명하기 위해 완전히 작용하는 예가 주어질 것이다.

모듈로-8 문제가 주어진 DR 훈련 알고리즘의 사용 예

본 발명의 DR 훈련 알고리즘 (30)의 상세한 설명은 다음의 논의에서 예시된다. 이 예에서, 모듈로-8 문제를 해결하는 NN (140)의 바람직한 실시예가 사용된 다. 데이터 세트는 이진수의 3차원 입력 벡터를 포함하고, 출력은 순서대로 다음 이진수이다. 입력 벡터 [1 0 1]은 무작위로 선택되고, 테스트를 위해 보존된다. NN (140)을 훈련시키는 제약 세트를 만든 후, NN이 [1 1 0]인 입력 벡터 [1 0 1]에 대한 출력을 연역할 수 있다는 것을 볼 수 있다.

상기 데이터 세트가 표 1에 나와있고, 다음의 입력 및 연관된 출력을 갖는다.

값을 구하기 위해 어떤 방법을 사용하였는지 설명한 후

모듈로-8을 정의하는 입력 및 출력 벡터

제약 세트 구성: 상기 입력 벡터는 [x1 x2 x3]으로 정의되고, 상기 출력 벡터는 [01 02 03]으로 정의된다. 우선, 상기 출력 벡터에 있는 첫 번째 출력을 선택하여 처음에 훈련시킨다 [도 2의 블록 (32)]. LTG는 그들의 임계치가 갖는 첨자 (subscript)로 나타낼 것이다. 예를 들어, LTG11은 임계치 T11를 갖는다. 우선, 이 경우 0, [0 0 0] 벡터가 학습되도록 이용가능한지 결정한다. 그래서, 상기 벡터 {0<T11}를 제약 세트에 추가한다. 상기 입력 벡터를 정렬하여 [블록 (33)], 그 결과 현재 훈련되는 출력 벡터의 위치에서 1을 출력하는 벡터들을 먼저 학습한다. 도 14a 참조.

도 3의 과정 (40)에 따라, 출력 01에 대한 훈련으로 인해, LTG11이 다음과 같이 정의된다: {0 < T11, w113 < T11, w112 < T11, w112 + w113 ≥ T11, w111 ≥ T11, w111 + w112 ≥ T11}.

이것은, 블록 (42)에서 점검할 때 해를 갖는다. 하지만, 다음 제약의 추가는 해를 갖지 않는다: w111 + w112 + w113 < T11.

따라서, LTG11은, 입력 벡터 [1 1 1]에 대해 0 대신 1을 출력할 것이다. 새로운 LTG, LTG12를 도 4의 과정 (50)에 따라 NN (140)에 추가하여, 상기 입력 벡터 [1 1 1]를 학습한다. NN (140)의 새로운 위상 (topology)에 대해서는 도 14b 참조. 제약 {w121 + w122 + w123 < T12}을 LTG12의 제약 세트에 추가한다 [블록 (55)]. LTG11이 학습한 정보를 되풀이해서 복사하고 변경하여, LTG12의 제약 세트가 다음처럼 된다: {w121 + w122 + w123 < T12, 0 ≥T12, w123 ≥ T12, w122 ≥ T12, w122 + w123 ≥ T12, w121 ≥ T12, w121 + w122 ≥ T12}.

LTG11이 현재 출력이기 때문에 [블록 (48) 점검], 새로운 출력 LTG, LTG21을 도 5의 과정 (60)에 따라 NN (140)에 추가한다. NN (140)의 새로운 위상에 대해서는 도 14c 참조. 상기 출력이 0 대신 1이었기 때문에, 이것은, 상기 새로운 출력 LTG21이 LTG11과 LTG12 사이의 AND를 형성할 것을 의미한다 [블록 (63) 참조].

LTG21이 그것의 입력 사이에 AND를 형성하기 때문에, 그것의 제약 세트는 다음처럼 된다: {0 < T21, w211 < T21, w211 + w212 ≥ T21, w212 < T21}.

첫 번째 출력, 01을 학습하는 데 필요한 3개의 LTG들에 대한 제약 세트는 다음과 같다: LTG 11 : {0 < T11, w113 < T11, w112 < T11, w112 + w113 ≥ T11, w111 ≥ T11, w111 + w112 ≥ T11, w111 + w112 + w113 ≥ T11}; LTG 12 : {w121 + w122 + w123 < T12, 0 ≥ T12, w123 ≥ T12, w122 ≥ T12, w122 + w123 ≥ T12, w121 ≥ T12, w121 + w122 ≥ T12}; 및 LTG 21 : {w211 < T21, w211 + w212 ≥ T21, w212 < T21, 0 < T21}.

이제, 출력, 01에 대한 출력이 훈련되었고, 상기 과정을 계속하여, 출력 02를 훈련시킨다 [블록 (35)에서 점검한 후, 블록 (32)로 되돌아감]. 상기 데이터를 표 2에 나열된 대로 정렬한다 [블록 (33)]. 입력 벡터 [1 0 1]가 테스트 목적을 위해 남겨졌다는 점이 중요하다. 도 14d는 기존의 NN (140)과 함께, O2에 대한 초기 출력 LTG, LTG13의 개략도를 제공한다.

값을 구하기 위해 어떤 방법을 사용하였는지 설명한 후

모듈로-8 데이터 세트에 대한 두 번째 출력

LTG13은 제약 {0 < T13, w133 ≥ T13, w132 ≥ T13, w131 + w123 ≥ T13}을 학습한다 [블록 (34)].

하지만, 입력 벡터 [0 1 1]에 대한 제약을 상기 제약 세트에 추가함으로써, w133 + w132 < T13은, 도 3의 과정 (40)의 블록 (42)에서 점검할 때, 어떠한 해도 갖지 않는다. 새로운 LTG, LTG14를 NN (140)에 할당해, 도 4에 도시된 과정 (50)에 따라 LTG13으로 은닉 층 (142)를 형성한다. LTG14는 입력 벡터 [0 1 1]에 대해 제약 w143 + w142 < T14를 학습할 것이다 [블록 (55)]. NN (140)의 새로운 위상에 대해서는 도 14e 참조.

LTG13이 입력 벡터 [0 1 1]에 대해 필요한 0 대신 1을 출력하기 때문에, 출력 LTG가 그것의 입력 사이에 AND를 형성하여야만 한다 [블록 (54)].

따라서, 새로운 LTG14를 추가해 이 조건을 학습하고, LTG14가 상기 입력 벡터 [0 1 1]을 학습한다. LTG 14: {0 < T14, w143 + w143 < T14, w143 ≥ T14, w142 ≥ T14}.

다시, 도 5의 과정 (60)에 따라, 새로운 출력 LTG, LTG22를 출력 02에 대해 추가하고, AND를 사용하여 그것의 입력을 결합시키는 것을 학습하여, 그 결과 다음의 제약 세트를 생산한다: {0 < T22, w223 < T22, w223 + w224 ≥ T22, w224 < T14}. NN (140)의 새로운 위상의 개략도에 대해서는 도 14f 참조.

LTG13은 다음 벡터 [1 0 0]을 학습하고, 그것의 제약 세트는 다음과 같이 된다: LTG 13: {0 < T13, w133 ≥ T13, w132 ≥ T13, w131 < T13, w131 + w132 ≥ T13}. LTG14에 대한 제약 세트는 다음과 같이 된다: LTG 14: {w143 + w143 < T14, w143 ≥ T14, w142 ≥ T14, 0 ≥ T14, w141 ≥ T14}.

마지막 벡터 [1 1 1]이 형성한 제약은 LTG13에 의해서 학습될 수 없지만, LTG14에 의해 학습될 수 있고, 따라서 모든 3개 LTG에 대한 마지막 제약 세트는 다음과 같다: LTG 13: {0 < T13, w133 ≥ T13, w132 ≥ T13, w131 < T13, w131 + w132 ≥ T13, w131 + w132 + w133 ≥ T13, w133 + w132 ≥ T13}; LTG 14: {0 ≥ T14, w143 + w142 < T14, w143 + w142 + w141 < T14, w143 ≥ T14, w142 ≥ T14, w141 ≥ T14, w141 + w142 ≥ T14}; 및 LTG 22: {0 < T22, w223 < T22, w223 + w224 ≥ T22, w224 ≥ T22}.

이제, 두 번째 출력이 훈련되었고, 마지막 출력, 03을 훈련시켜야만 한다 [ 블록 (35)에서 점검한 후, 블록 (32)로 되돌아감]. 처음에, 블록 (34)[도 3의 과정(40)을 사용]에서, LTG15가 다음의 제약 세트를 학습하는 것이 발견된다: LTG 15: {0 ≥ T15, w153 ≥ T15, w152 ≥ T15, w153 + w152 < T15, w151 ≥ T15, w151 + w152 + w153 < T15, w152 + w151 ≥ T15}. 도 14g는 기존의 NN (140)과 함께, 03에 대한 처음 출력 LTG, LTG15의 개략도를 도시한다.

LTG15가 완전한 훈련 세트에 노출되고, 블록 (42)에서 점검할 때 해를 갖고 있어, 어떠한 새로운 LTG도 NN (140)에 추가할 필요가 없고, 따라서 도 14g는, 모듈로-8 데이터 세트를 학습한, 최종적으로 완전히 훈련된 NN (140)의 개략도가 된다.

이제, 도 12에 도시된 대로, 입력 벡터가 드러나는지 드러나지 않는지 결정하는 방법 (130)에 따라 보이지 않는 입력을 연역하는 방법을 조사할 것이다.

테스트 입력 벡터에 대한 출력 연역: 이제, 보이지 않는 입력 벡터가 [1 0 1]이고 그것의 연관 출력이 [1 1 0]인 경우에, NN (140)이 보이지 않는 입력 벡터를 얼마나 잘 분류하는지 평가할 것이다. 만일 그럴 수 있다면, NN (140)은 그것을 훈련시키는 데이터로부터 일반화할 수 있다.

우선, 출력 01을 연역할 것이다: T11 > 0, w113 < T11, w112 < T11 및 w112 + w113 ≥ T11이기 때문에, 0 < w113 < T11이고, w111 ≥ T11라면, 따라서 w111 + w113 ≥ T11이다. 그 결과, LTG11의 출력은 1이다. 또한, 만일 상기 제약 w111 + w113 < T11을 LTG11의 제약 세트에 추가한다면, 어떠한 해도 없다.

해를 갖는 제약 w121 + w123 < T12 및 w121 + w123 ≥ T12를 추가한다면 [블록 (137)], 이와 같은 경우에 디폴트 (default)는 1을 출력하는 것이다.

LTG21이 1.w211 + 1.w212를 갖고, w211 + w212 ≥ T21이기 때문에, 01은 1일 것이다.

그런 다음, O2에 대한 출력을 연역할 것이다: LTG13이 w131 + w133 ≥ T13 및 w131 + w133 < T13을 학습할 수 있기 때문에, LTG13의 출력은 1이다.

또한, LTG14는 w141 + w143 ≥ T14 및 w141 + w143 < T14를 학습할 수 있기 때문에, 그것이 1을 출력할 것이다. LTG22가 1.w231 + 1.w242를 갖고, w231 + w232 ≥ T22이기 때문에, 03은 1일 것이다.

마지막으로, 03에 대한 출력을 연역할 것이다: w151 + w152 + w153 < T15 및 0 ≥ T15 및 w151 + w152 ≥ T15이기 때문에, w153 < T15 < 0이다. w151 ≥ T15임에도 불구하고, w151 + w152 + w153 < T15 라면, 따라서 출력은 0일 것이다.

따라서, 정확한 출력이 연역되거나, 또는 [1 1 0]으로 일반화된다. 도 14g는, 그 결과로 생긴 NN (140)을 도시한다. 필요시, 연결이 오직 은닉 층과 출력 층 사이에만 만들어지고, 또는 필요할 때, 은닉 층 LTG가 오직 03에 추가되는 것으로 보인다.

이 NN (140)에서, NN에 있는 가중치 및 임계치보다 훨씬 더 적은 훈련 예가 있고, NN이 완전히 훈련된 것처럼 작동한다는 점이 흥미롭다. NN을 훈련시키기 위해서는, NN에 있는 가중치 및 임계치의 수보다 더 많은 입력 벡터가 필요하다는 것이 일반적인 믿음이다. 이러한 예에서, 이것이 모든 경우에 다 그런 것이 아니라는 것과, 변수들 (variable)보다 더 많은 훈련 예가 필요한 것으로 보여졌다. 이는, 각각의 입력 벡터가 이 DR 훈련 방법 (30)으로 각각의 가중치를 훈련하기 때문이다.

상기 예에서 LTG 의 수: 본 발명의 DR 훈련 알고리즘 (30)을 사용할 때, 이러한 예에서, 데이터 세트를 학습하는 데 7개의 LTG들이 필요했다. 상기 출력 층 (144)에 있는 LTG들이 오직, 요구된 입력을 주는 은닉 층 (142)에 있는 LTG들로부터 입력을 받는 것을 도 14g에서 볼 수 있다. 또한, 어떤 불필요한 LTG도 NN (140)에 할당되지 않는다. 예를 들어, LTG15가 모든 경우에 필요한 출력을 생산할 수 있기 때문에, 03을 생산하기 위해 어떠한 추가 LTG도 추가되지 않는다.

지금껏, 어떻게 DR 훈련 알고리즘 (30)이 일 예로 작동하는지를 살펴보았고, 이제 NN에 의해 훈련 동안 학습된 규칙을 추출하는 데 이 알고리즘이 얼마나 유용한지 조사할 것이다.

규칙 추출에 DR 훈련 알고리즘의 적용가능성

본 발명의 DR 훈련 알고리즘 (30)의 중요한 이점은, 그것이 적어도 다음의 특성을 보여주기 때문에, 규칙 추출에 사용될 수 있다는 것이다.

a) LTG를 NN에 추가할 때, 그 층에 있는 새로운 LTG와 다른 LTG들 사이에 명제 논리 규칙이 결정된다;

b) 가중치가, 가중치-공간의 체적에 제약을 추가하여 변경되고, LTG를 활성화시키는 영역을 감소시킨다. 이는, 상기 LTG가 제약을 사용하기 때문인데, 이 제약들은 LTG에 대한 가중치-공간의 활성화 영역의 경계를 정하는 평면이다. 이로써 상기 가중치-공간이 기호적으로 (symbolically) 정의된다;

c) 바람직한 제약이 상기 LTG 내의 가중치와 임계치 사이의 관계를 정의하고, 훈련 동안 NN에 의해 학습된 규칙을 부호화한다.

LTG를 활성화시키는 상기 가중치-공간 체적의 경계를 정하는 초평면 (hyper-plane)과 입력 벡터 사이에 맵핑 (mapping)이 있기 때문에, 가장 많은 정보를 제공하는 정확한 입력 벡터를 찾는 것이 가능하다. 이제, 상기 LTG를 활성화시키는 가중치-공간에 경계를 제공하는 입력 벡터를 찾는, DR 훈련 알고리즘 (30)의 능력에 대해 논의할 것이다.

종래 방법으로 피드-포워드 NN을 훈련시키는 목적은, 상기 NN이 학습한 데이터 세트의 훈련 조건을 만족시키는 최고로 가능한 평균값 (average value)을 나타내는 NN에 있는 각각의 가중치에 대한 단일 숫자 값을 찾는 것이다. NN에 있는 각각의 LTG에 대한 모든 가중치 (및 임계치)가 단일 (바라건대) 평균 숫자 값으로 나타내기 때문에, 상기 데이터 세트에 있는 많은 정보가 학습 동안 손실된다. 중요하지만 훈련 동안 손실된 일부 정보는, 상기 LTG를 활성화시키는 영역의 모든 면 정보이다. 대부분의 LTG는 2개 이상의 입력을 갖기 때문에, 이 영역은 (초)(hyper) 체적으로서 상기 LTG의 가중치-공간에서 정의된다. 따라서, 상기 LTG를 활성화시키는 영역을 '활성화 체적 (activation volume)'이라고 부른다. 상기 면 정보로부터: (a) 상기 LTG로의 입력들 사이의 관계, 즉 NN이 결정될 수 있고; 및 (b) 필요시 NN의 작동을 허용하는, 각각의 가중치가 추정할 수 있는 값의 범위가 유도될 수 있다.

종래 방법으로 훈련된 NN에 대해 민감도 분석을 수행하는 것은, 이 손실된 면 정보를 회수하기 위한 하나의 방법이다.

민감도 분석이, 뉴런으로의 입력과 가중치 사이의 관계를 결정하지 않을 것이지만, 그것은 필요시 상기 시스템을 수행시킬 수 있는 시스템의 구성요소 각각이 취할 수 있는 값의 범위를 결정하는 데 사용될 수 있다. 이 경우, 상기 구성요소들은 NN에 있는 각각의 뉴런들에 대한 가중치이다. 각각의 가중치는, NN이 훈련되는 것과 같이 NN을 수행시키는 값의 범위를 갖는다. 이 범위를 '최적의 범위 (optimal range)'라고 부를 수 있다.

종래의 훈련 방법으로 훈련된 NN에 민감도 분석을 수행하는 일반적인 접근법은, NN 반응의 통계적 분석 (statistical analysis)을 수행하는 것이다. 통계적 분석은, 뉴런의 실제 작동보다는 일반적인 작동을 연구하는 데 수행되는데, 이는 상기 뉴런의 가중치-공간에 있는 가중치 각각의 범위를 결정하는 분석 방법이 없기 때문이다. 또한, 뉴런이 종래 방법으로 훈련될 때, 민감도 분석은 오직, 한 번에 하나 이상의 가중치를 변경시키는 효과를 연구할 것이다. 따라서, 상기 가중치에 대한 단일 숫자 값이, 상기 뉴런이 학습할 필요가 있는 관계들의 평균값을 얼마나 잘 나타내는지 결정하는 것은 불가능하다.

하지만, 수행할 수 있는 최고의 민감도 분석은 뉴런에 있는 가중치 범위의 통계적 추정 (statistical estimate)이다. 민감도 분석은 상기 활성화 체적의 면을 결정할 수 있는 방법이 전혀 없다. 이는, 상기 가중치가 한 번에 하나씩 검사되기 때문이고, 상기 민감도 분석이 수행될 때, 각각의 다른 가중치가 어느 정도 그것의 평균값에 가까운 것이 바람직하다.

본 발명의 DR 훈련 알고리즘 (30)으로, 상기 면 정보가 회수될 수 있는데, 이로써 상기 시스템이 다음과 같이 한다: (a) 가중치 사이의 관계, 따라서 상기 LTG로의 입력 결정; 및 (b) 각각의 LTG에 대한 가중치의 통계적 범위 이상을 찾음. 상기 가중치의 정확한 범위가 결정될 수 있을 뿐만 아니라, LTG를 활성화시키는 활성화 체적의 면이 결정될 수 있다.

DR 훈련 알고리즘 (30)이, 바람직하게는 제약 세트로서 상기 LTG를 훈련시키기 때문에, 상기 훈련 세트에 관한 어떠한 정보도 훈련 동안 손실되지 않고, 이러한 제약들이 상기 가중치 범위를 찾는 데 분석될 수 있다.

이제, 본 발명의 또 다른 양태에 따라, 도 15의 흐름도를 참조하여, 각각의 LTG에 대한 활성화 체적 면이 결정되도록 하는 바람직한 방법 (150)을 논의할 것이다.

활성화 체적: 앞에서, NN이 데이터 세트를 학습하도록 훈련시키는 방법, 여기서 LTG가 NN에 입력 벡터를 적용하여 훈련되는 것을 볼 수 있었다. 가중치-공간을 양분하는 (초) 평면을 형성하는 공식 xi ·w를 사용하여, 상기 입력 벡터를 제약으로 변환시켰다. xi ·w가 임계치 T로 제약을 형성함에 따라, (초) 체적이 다음과 같은 경우에 상기 제약에 의해 정의된다:

a) 만일 상기 LTG가 상기 제약 xi ·w ≥ T를 학습했다면, 이 영역 또는 이 영역의 하위영역 (subset)이, 상기 LTG가 학습한 다른 제약들에 따라, 상기 LTG를 활성화시킬 것을 의미한다. 보수 제약, xi ·w < T는, 상기 LTG를 활성화시키는 데 완전히 실패할 영역을 정의한다; 및

b) 만일 상기 LTG가 상기 제약 xi ·w < T를 학습했다면, 이 영역은 상기 LTG를 활성화시키지 않을 것이다. 하지만, 상기 보수 제약 xi ·w ≥ T를 만족시키는 포인트들이 상기 LTG를 활성화시킬 것이다.

따라서, 상기 (초) 평면 xi ·w는, 상기 LTG를 활성화시킬 수 있는 영역의 면을 형성한다. 많은 입력 벡터들이 학습됐을 때, 상기 LTG를 활성화시킬 수 있는 가중치-공간에서 체적이 정의되고, 이것을 '활성화 체적'이라고 부를 수 있다. 이것을 계산적으로 실행하기 위해, 입력 벡터 각각의 제약을, 그것이 학습할 수 있는 각각의 LTG와 함께 저장한다. 이것은 잉여 제약이 될 수 있는데, 이는 상기 LTG를 활성화시키는 가중치-공간의 최소 체적 면을 형성하는 제약들만이 중요하기 때문이다. 상기 가중치-공간에서 최소 활성화 체적 (이하, "MAV"라 함)의 면을 찾기 위해, 제약들이 분석될 수 있다. 상기 활성화 체적의 면은, 제약 세트에 있는 다른 제약들이 제공하는 모든 정보를 포함한다.

MAV는, 상기 LTG가 지금까지 받은 훈련 동안 학습한 제약들에 의해 제한된 최소 체적이다. 상기 활성화 체적을 훨씬 더 감소시킬 훈련 동안 이용 불가능한 다른 벡터들이 있을 수 있기 때문에, MAV가 가능한 최소 체적이 아니라는 것은 가능하다.

상기 MAV에 있지 않은 제약들, 즉 훈련 동안 학습된 다른 제약들이 상기 MAV 주위에 등고선 (contour)과 같은 무언가를 형성한다.

일단 상기 MAV의 면을 찾으면, 상기 MAV를 조사하여 가중치 각각의 범위가 결정될 수 있고, 또한 상기 가중치 사이의 관계들이 결정될 수 있다.

요약하자면, 훈련 동안 학습된 제약들이 MAV를 찾기 위해 분석된다. 만일 종래의 민감도 분석을 수행한다면, 상기 MAV는 각각의 LTG에 대한 가중치 범위 및 상기 가중치들 사이의 관계를 확인하는 데 사용될 수 있다.

피드-포워드 NN에서 LTG를 훈련시키는 데 사용된 종래의 훈련 알고리즘은, 각각이 입력 연결 가중치에 대한 단일 숫자 값을 찾는 데 의존하였다. 각각의 LTG가 n개의 입력을 갖기 때문에, 유입 연결 가중치가 벡터로 간주될 수 있다. 상기 훈련 조건을 만족시키는 숫자 값의 범위가 있기 때문에, 이러한 가중치의 단일 숫자 값이 상기 훈련 조건을 유일하게 해결하는 것은 아니다.

상기 가중치들에 대한 단일 숫자 값을 결정할 때, 훈련 과정은, NN이 훈련 동안 학습하는 데이터에 삽입된 규칙들을 나타내는, 가중치들 사이의 관계를 나타내는 평균 숫자 값을 찾고자 한다.

하지만 그것은, 상기 가중치들 사이의 관계를 정의한 다음, 상기 데이터 세트 분류에 두드러진, 상기 입력 벡터에 있는 특징들을 정의하는 활성화 체적의 경계이다. 그런 이유로, 만일 규칙 추출이 수행될 수 있다면, LTG의 활성화 체적의 경계를 결정할 수 있는 것이 필요하다. 종래의 훈련 방법을 사용하면, 상기 훈련 알고리즘이 상기 훈련 조건을 해결하는 평균 값을 찾는 데 초점을 맞출 때, 상기 입력 벡터의 차원이 상기 데이터 세트 분류에 중요한 정보가 손실된다. 통계적 방법 및 확률 (probability)을 사용하여 NN의 작동을 설명한다. 하지만, 통계 및 확률 모두, 특정 데이터 세트를 학습한 NN에 관한 특정 정보가 아닌 임의의 데이터 세트로 훈련된 NN의 평균 작동을 설명한다. NN으로부터의 규칙 추출의 요구 조건은, 특정 데이터 세트가 분류되도록 하는 특정 규칙을 결정하는 것이다. 훈련된 뉴런의 활성화 체적의 경계가 수치적으로 결정될 수 없기 때문에, 훈련 동안 찾아진 가중치 값의 숫자 값이, 상기 훈련 세트 내에 내재한 관계들의 평균 작동에 얼마나 가까워지는지 결정하는 것은 불가능하다.

각각의 훈련된 LTG에 대한 정확한 활성화 체적이 확인될 수 있기 때문에, 상기 MAV를 찾음으로써, 상기 LTG가 학습한 것을 정의하는 가능한 최소한의 체적을 남겨두고, 상기 체적으로부터 잉여 (redundant) 면이 제거된다. 이로써, 상기 LTG를 지배하고, 따라서 NN이 훈련 동안 학습한 것이 결정될 수 있고, 그 결과 이것이 상기 MAV를 찾는 것을 정당화한다.

최소 활성화 체적 ( MAV ) 결정

NN의 훈련 동안, 많은 제약들이 학습된다. 상기 활성화 체적의 형태는, 상기 LTG가 학습하는 데이터 세트에 따라 다르다. 그것은 하나 이상의 차원에서 무한적 (unbounded)일 수 있다.

도 16a는 훈련 동안 학습된 다른 제약들뿐만 아니라, 활성화 체적의 일반적인 도표를 도시한다. 그들이 임계치로 형성한 제약들은 상기 활성화 체적과 교차하여만 하는데; 그렇지 않으면 상기 LTG는 상기 제약을 학습할 수 없다.

도 16a에서, 면 (a), (b), (c), (d) 및 (e)는, 다양한 입력 벡터 xi 및 w에 의해 형성된 (초) 평면이다. 도 16a에서, 상기 MAV (160)는 (a), (b) 및 (c)에 의해 정의된 면들에 둘러싸인다. 상기 면 (d) 및 (e)는 MAV (160)과 교차하지 않고, 따라서 상기 최소 체적의 면을 형성하지 않는다. 하지만, 그들이 형성한 체적은 MAV (160)과 교차한다. 도 16d에 도시된 것처럼, 밝은 회색의 그늘진 영역인, 상기 면 (d)에 의해 형성된 체적 (162)은, 어두운 회색 영역인 MAV (160)과 교차한다.

도 16c에서, 상기 면 (d)에 의해 형성된 보수 영역 (164)이 (어두운 회색) MAV 영역 (160)과 교차하지 않아, 그 결과 그것이 학습될 수 없는 것처럼 보일 수 있다.

상기 LTG가 학습한 제약을 분석할 때, 상기 최소 체적, 즉 도 16d에 있는 (d)를 형성하지 않는 제약의 보수는, 도 16c에 도시된 것처럼, 제약이 존재할 때 학습될 수 없다. (a)가 제거될 때, 교차 구역 (166)이 MAV (160)을 형성하는 제약들과 (d)의 보수 사이에 존재하기 때문에, (d)의 보수가 학습될 수 있다 (참조: 도 16d). 도 16d에서, 면 (a)은 그것의 원래 위치를 보여주기 위해 도면에 남아있는다.

하지만 상기 LTG는, (d) 및 (e)가 존재할 때, 제약 (a)의 보수를 학습할 수 있다 (도 16e 참조). 즉, MAV (160)를 형성하는 다른 제약들과 상기 LTG에 의해 이미 학습된 다른 제약들의 보수 (a) 사이에 교차 구역 (168)이 존재한다.

정리 ( Theorem ): 제약이 상기 활성화 체적의 면을 형성하고, 그것이 상기 제약 세트로부터 제거될 때, 그것의 보수가 학습될 수 있다.

증명: 제약이 상기 활성화 체적에 면을 형성할 때, 그것은, xi ·w와 임계치 T 사이의 관계를 제한하는 활성화 체적 면을 형성하는 다른 제약들 중 어느 것과 상기 제약 사이의 제약들이 없다는 것을 의미한다. 따라서, 상기 활성화 체적 면을 형성하는 제약이 제거될 때, 제약의 보수는 상기 LTG에 의해 학습될 수 있다.

이제, 이것이 일 예로 설명될 것이다. LTG가 훈련 동안 다음의 제약 세트를 학습한다면 {w1 + w2 < T, w2 ≥ T}; 만일 상기 제약 w2 ≥ T가 상기 제약 세트로부터 제거된다면, 상기 LTG가 그것의 보수, w2 < T를 학습할 수 있을 것이므로, 상기 평면 w2 = T는 상기 MAV의 면을 형성하는 것으로 드러난다.

하지만, LTG가 훈련 동안 다음의 제약 세트를 학습한다면: {w1 + w2 ≥ T, w2 ≥ T, 0 < T, w1 ≥ T}; 만일 상기 제약 w1 + w2 ≥ T가 상기 제약 세트로부터 제거된다면, 상기 LTG가 대신에 상기 보수, w1 + w2 < T를 학습할 수 없기 때문에, 상기 평면 w1 + w2 = T는 상기 MAV의 면에 있지 않은 것으로 드러난다.

이제, 도 15를 참조하여, 상기 MAV를 찾는 방법 (150)의 바람직한 실시예를 설명할 것이다.

블록 (151)에 나타낸 대로, 이러한 LTG의 제약 세트에 있는 각각의 제약에 대해, 적어도 다음의 작업이 수행된다: 블록 (152)에서, 한 번에 하나씩 상기 제약 세트로부터 각각의 제약을 제거하며, 상기 세트에 있는 나머지 제약들을 변하지 않게 둔다; 제거된 제약은 상기 세트에 추가된 그것의 보수를 갖은 다음, 블록 (153)에서, 해 (solution)가 있는지 보기 위해 테스트된다; 만일 해가 있다면, 블록 (154)에서, 상기 제약 세트로부터 제거된 원래의 제약을, 상기 MAV를 정의하는 세트에 추가한다; 원래의 제약의 보수를 상기 제약 세트로부터 제거하고, 그 원래의 제약을 상기 제약 세트로 되돌린다; 만일 해가 없다면, 블록 (155)에서, 상기 방법 (150)을 다음 제약에 계속하고, 만일 상기 제약 세트에 제약들이 더 있다는 것이 블록 (156)에서 결정되면; 및 상기 LTG가 훈련 동안 학습한 제약 세트에 있는 각각의 제약에 대해 상기 방법 (150)을 반복한다 [블록 (152)로 되돌아감]. 만일 제약들이 더 이상 없다는 것이 블록 (156)에서 결정된다면, 방법 (150)을 블록 (157)에서 종결한다.

상기 LTG가 받은 훈련이 주어진다면, 상기 활성화를 위해 최소 세트에 추가된 제약은 상기 MAV를 정의한다. 이제 이러한 제약들은, 체적을 분석하고, 상기 LTG 내의 가중치들 사이의 관계를 찾고, 필요시 상기 가중치가 범위 밖으로 이동할 때 정확히 찾아질 수 있는 상기 LTG에 대한 민감도 분석을 수행하는데 사용될 수 있다.

상기 MAV를 찾는 방법 (150)이 단지 NN에 한정되지 않는다는 것이 이해되어야만 한다. 또한, 상기 MAV를 찾는 방법 (150)이, 최적화 (optimization)에 사용된 CSP 및 운영 연구 유형 문제와 같은 제약들의 시스템을 사용하는 다른 분야에 유용한 것으로 여겨진다. 따라서, 이러한 본 발명의 양태는 독립적이고, 본 발명의 DR 훈련 알고리즘 (30)과의 사용에 한정되지 않는다.

MAV 를 결정하는 방법의 예

LTG가 다음의 제약들로 훈련되는 것으로 가정: {0 < T, w1 + w2 < T, w1 < T, w2 < T, w3 < T, w1 + w3 < T, w2 + w3 < T, w1 + w2 + w3 ≥ T}. 상기 제약들에 대한 해가 있는 것으로 드러난다. 블록 (151)에서 방법 (150)을 시작한다.

우선, 블록 (152)에서, 0 < T를 제거하고, 제약 0 ≥ T를 추가하여, 조사 중에 있는 상기 제약 세트는 다음과 같이 된다: {0 ≥ T, w1 + w2 < T, w1 < T, w2 < T, w3 < T, w1 + w3 < T, w2 + w3 < T, w1 + w2 + w3 ≥ T}.

블록 (153)에서, 상기 제약들을 식스투스 프롤로그 루틴 (Sicstus prolog routine) 또는 다른 적당한 루틴으로 테스트할 수 있다. 블록 (153)에서, 이러한 제약들에 대한 어떠한 해도 찾지 못해, 0 < T가 상기 MAV 위에 면을 형성하는 제약들 중 어느 것도 아니라는 것이 밝혀진다. 블록 (155)에서, 이 제약을 남아있는 세트에서 제거할 수 있는데, 이는 나머지 제약들이 이 모든 정보를 포함하기 때문에, 즉 이 제약이 상기 LTG에 의해 학습된 것에 대한 새로운 정보를 제공하지 않기 때문이다.

블록 (156)에서 점검한 후, 블록 (152)에서, 다음 제약, w1 + w2 < T를 테스트한다. 이 제약을 제거하고, 그것의 보수를 상기 세트에 추가한다: {w1 + w2 ≥ T, w1 ≥ T, w2 < T, w3 < T, w1 + w3 < T, w2 + w3 < T, w1 + w2 + w3 ≥ T}. 이 경우, 블록 (153)에서 해가 찾아져, 원래의 제약이 상기 LTG가 학습한 것에 중요하고, 상기 제약 세트에 남아있어야만 한다 [블록 (154)].

블록 (152)에서 테스트될 다음 제약은 w1 < T이다. 이 제약을 제거하고, 그것의 보수를 상기 세트에 추가한다: {w1 + w2 < T, w1 ≥ T, w2 < T, w3 < T, w1 + w3 < T, w2 + w3 < T, w1 + w2 + w3 ≥ T}. 이러한 제약들을 블록 (153)에서 테스트할 때, 해가 없다는 것이 발견된다. 따라서, 상기 제약 w1 < T를 블록 (155)에서 제거할 수 있다.

블록 (152)에서 테스트될 다음 제약은 w2 < T이다. 이 제약을 제거하고, 그것의 보수를 상기 세트에 추가한다: {w1 + w2 < T, w2 ≥ T, w3 < T, w1 + w3 < T, w2 + w3 < T, w1 + w2 + w3 ≥ T}. 이러한 제약들을 블록 (153)에서 테스트할 때, 어떠한 해도 찾지 못한다. 따라서, 상기 제약 w2 < T를 블록 (155)에서 제거할 수 있다.

블록 (152)에서 테스트될 다음 제약은 w3 < T이다. 이 제약을 제거하고, 그것의 보수를 상기 세트에 추가한다: {w1 + w2 < T, w3 ≥ T, w1 + w3 < T, w2 + w3 < T, w1 + w2 + w3 ≥ T}. 이러한 제약들을 블록 (153)에서 테스트할 때, 어떠한 해도 찾지 못한다. 따라서, 상기 제약 w3 < T를 블록 (155)에서 제거할 수 있다.

블록 (152)에서 테스트될 다음 제약은 w1 + w3 < T이다. 이 제약을 제거하고, 그것의 보수를 상기 세트에 추가한다: {w1 + w2 < T, w1 + w3 ≥ T, w2 + w3 < T, w1 + w2 + w3 ≥ T}. 이 경우, 블록 (153)에서 테스트할 때, 해가 찾아져, 원래의 제약이 상기 LTG가 학습한 것에 중요하고, 블록 (154)에 나타낸 것처럼, 상기 제약 세트에 남아있어야만 한다.

블록 (152)에서 테스트될 다음 제약은 w1 + w2 + w3 < T이다. 이 제약을 제거하고, 그것의 보수를 상기 세트에 추가한다: {w1 + w2 < T, w1 + w3 < T, w2 + w3 ≥ T, w1 + w2 + w3 ≥ T}. 이 경우, 블록 (153)에서 해가 찾아져, 원래의 제약이 상기 LTG가 학습한 것에 중요하고, 상기 제약 세트에 남아있어야만 한다 [블록 (154)].

블록 (152)에서 테스트될 다음 제약은 w1 + w2 + w3 ≥ T이다. 이 제약을 제거하고, 그것의 보수를 상기 세트에 추가한다: {w1 + w2 < T, w1 + w3 < T, w2 + w3 < T, w1 + w2 + w3 < T}. 이 경우, 블록 (153)에서 해가 찾아져, 원래의 제약이 상기 LTG가 학습한 것에 중요하고, 블록 (154)에 나타낸 것처럼, 상기 제약 세트에 남아있어야만 한다.

따라서, 상기 최소 제약 세트는 방법 (150)에 의해 다음과 같이 결정된다: {w1 + w2 < T, w1 + w3 < T, w2 + w3 < T, w1 + w2 + w3 ≥ T}.

제약을 테스트하는 순서: 본 발명의 MAV를 결정하는 방법 (150)으로 제약들을 상기 제약 세트에서 테스트하는 순서는 중요하지 않다. 테스트될 세트에 있는 어느 장소 (place)로부터도 제약들을 선택할 수 있다. 또한, 상기 제약들이 상기 MAV를 형성하는지 형성하지 않는지는, 처음에 테스트되도록 선택되는 것과 무관하다. 따라서, 본 발명은 제공된 특정 실시예에 한정되지 않는다.

MAV 내에 포함된 정보: 상기 MAV는 학습된 제약에 대한 모든 정보를 포함한다. 상기 LTG가 학습한 것에 대한 모든 정보는 상기 MAV의 면 내에 포함되기 때문에, 상기 MAV의 면을 형성하지 않는 제약들을 제거하는 것이 가능하다. 상기 제약들을 회복시킬 필요는 없지만, 그렇게 될 수 있다는 것을 보여줄 것이다.

예: 다음의 최소 활성 체적이 주어진다면: {w1 + w2 < T, w1 + w3 < T, w2 + w3 < T, w1 + w2 + w3 ≥ T}; 제거된 제약들의 세트는 다음과 같다: {0 < T, w1 < T, w2 < T, w3 < T}.

상기 제약을 상기 LTG 및 그것의 보수에 추가하여, 상기 제거된 제약들이 회복될 수 있는 있다는 것이 증명될 수 있다. 이것은, 상기 MAV가 LTG에 대해 찾아질 때, 어떠한 정보도 손실되지 않아, 무손실의 압축 데이터가 훈련 동안 학습되는 것을 증명하기 위한 것이다.

만일 이 제약을 사전에 다른 제거된 제약들로 테스트했다면, 그것은 여전히 이 제약의 보수를 학습할 수 있을 것이다.

상기 MAV 로 0 < T 테스트: 상기 MAV에 0 < T를 추가하는 것은 해를 갖는다. 하지만, 상기 MAV에 0 ≥ T를 추가하는 것은 해를 갖지 않는다. 따라서, 상기 벡터 0 < T를 상기 제약 세트로부터 제거하기 전에, 상기 LTG는 계속해서 원래 훈련된 대로 작동한다.

상기 MAV 로 w 1 < T 테스트: 상기 MAV에 w1 < T를 추가하는 것은 해를 갖는다. 하지만, 상기 MAV에 w1 ≥ T를 추가하는 것은 해를 갖지 않는다. 따라서, 상기 벡터 w1 < T를 상기 제약 세트로부터 제거하기 전에, 상기 LTG는 계속해서 원래 훈련된 대로 작동한다.

상기 MAV 로 w 2 < T 테스트: 상기 MAV에 w2 < T를 추가하는 것은 해를 갖는다. 하지만, 상기 MAV에 w2 ≥ T를 추가하는 것은 해를 갖지 않는다. 따라서, 상기 벡터 w2 < T를 상기 제약 세트로부터 제거하기 전에, 상기 LTG는 계속해서 원래 훈련된 대로 작동한다.

상기 MAV 로 w 3 < T 테스트: 상기 MAV에 w3 < T를 추가하는 것은 해를 갖는다. 하지만, 상기 MAV에 w3 ≥ T를 추가하는 것은 해를 갖지 않는다. 따라서, 상기 벡터 w3 < T를 상기 제약 세트로부터 제거하기 전에, 상기 LTG는 계속해서 원래 훈련된 대로 작동한다.

즉, 원래의 제약 세트들은: {0 < T, w1 < T, w2 < T, w3 < T, w1 + w2 < T, w1 + w3 < T, w2 + w3 < T, w1 + w2 + w3 ≥ T}; 및 최소 제약 세트는: {w1 + w2 < T, w1 + w3 < T, w2 + w3 < T, w1 + w2 + w3 ≥ T}는 상기 LTG의 작동 면에서 동등하다.

상기 MAV를 찾는 데는 많은 이점들이 있다. 이러한 이점들 중 일부는 다음과 같다: (a) 그것은 학습 동안 및 상기 LTG 출력을 결정할 때 테스트될 필요가 있는 제약들의 수를 잠재적으로 감소시킨다; (b) 그것은 필요시, 민감도 분석이 상기 훈련된 LTG에 수행되도록 한다; 및 (c) 그것은 가중치들 사이의 관계가 결정되도록 한다.

모든 잉여 입력 벡터들을 제거한 후, 퀸-맥클러스키 (Quine-McCluskey) 및 반복된 합의 (iterated consensus)와 같은 함수 최소화 기법을, 독립된 입력으로 구성된 입력 벡터들에 사용할 수 있고, 이것은 상기 MAV를 찾을 때 수행되는 것이다.

DR 훈련 알고리즘의 수행 평가

이제, 본 발명의 DR 훈련 알고리즘 (30)에 수행된 실험 결과를 설명할 것이다. 이러한 실험은 본 발명의 DR 훈련 알고리즘 (30)의 수행 능력을 평가한다.

본 발명의 DR 훈련 알고리즘 (30)의 주요 목적 중 하나는, NN이 상기 입력 벡터의 연관 출력을 생산하도록 하는 데이터 세트 내의 규칙을 찾는 것이다.

따라서, 수행된 실험의 목적은, 상기 DR 알고리즘 (30)이, 다양한 데이터 유형을 학습하고, 규칙들이 상기 훈련된 NN으로부터 추출되도록 할 알고리즘이라는 것을 증명하는 것이다.

이러한 실험에 수행된 표준 절차는 다음과 같다: (a) 일부 데이터를 준비하였다; (b) NN을 상기 데이터로 훈련시켰다; (c) NN을 훈련시킨 입력 벡터와 연관된 출력을 생산할 수 있고, 따라서 상기 훈련 과정 동안 보이지 않았던 입력 벡터에 대한 출력을 정확히 생산할 수 있는지 결정하기 위해 NN을 테스트하였다; (d) 상기 테스트 세트로부터의 정확한 입력 벡터의 비율 (percentage) 면에서, 본 발명의 DR 훈련 알고리즘 (30)으로 훈련된 NN과 역전파로 훈련된 NN을 비교하였다. NN을 훈련시키기 전에, 테스트를 위해 상기 테스트 세트를 남겨두었다. 그런 후, 이 비율을 다른 학습 알고리즘에 이용가능한 결과와 비교하였다; 및 (e) NN을 훈련시키기 위해 필요한 훈련 입력 벡터에 노출 수를 기록하였다.

DR에 의한 데이터 세트에 대한 학습 시간을 재는 거 이외에, 언급된 또 다른 사항은, 훈련 동안 NN에 의해 학습된 규칙을 결정하는 것이다. 본 발명의 또 다른 양태에 따라 앞에서 설명한 바람직한 방법을 사용하여 훈련된 NN에 민감도 분석을 수행하여, 상기 규칙들을 추출하였다. 이것은, NN을 훈련시키는 데이터 세트에 관한 정보를 제공하였다. 이제, 본 발명의 DR 훈련 알고리즘 (30)의 수행 능력을 평가하기 위해 사용된 데이터 세트의 유형을 설명할 것이다.

테스트 영역 ( domain ): 데이터를 분류하거나 함수 근사 (approximation)를 수행하는 데 피드-포워드 NN을 사용할 수 있다. 상기 입력 공간에서 데이터를 분류하는 경계를 모델링 (modelling)하는 것이 함수 근사와 동등한 것이기 때문에, 이 2가지 특성들은 동일한 작동의 측면이다. 피드-포워드 NN을 사용하여 이득을 얻을 수 있는 많은 잠재적 애플리케이션이 있는 반면, 피드-포워드 NN을 사용하지 않는 애플리케이션은 그들의 함수 근사 또는 데이터 분류 특성을 사용한다.

상기 DR 훈련 알고리즘 (30)의 작동을 평가하기 위해, 다음을 수행하는 데이터 세트를 사용하였다: (a) 함수 근사; 및 (b) 데이터 분류.

함수 근사를 수행하는 DR 훈련 알고리즘 (30)의 능력을 평가하기 위해 선택된 데이터 세트는 이중-나선형 문제 (Two-Spiral Problem)였고, 분류를 위해서는 독일 신용 문제 (German Credit Problem)였다. 상기 데이터 세트 모두 피드-포워드 NN을 테스트하기 위한 표준 문제들이다.

함수 근사에 종종 사용된 하나의 데이터 세트는 이중-나선형 문제이다. 이 데이터 세트 (참조: 도 17)는 해결하기가 매우 어려운 것으로 여겨지는데, 그 이유는, 상기 데이터 세트가 공통의 시작점 (start point)을 갖지만, 서로 180˚로 오프셋 (offset)하는 2개의 나선을 포함하기 때문이다. 따라서, 그것은 쉽게 선형으로 분리될 수 없다. 뉴런은 일반적으로 선형 분리성 (separability)을 이용하여 집합들 (classes)을 분리하고, 복잡한 데이터 세트에 대해서는 많은 뉴런들을 사용하여 집합들을 분리한다. 상기 이중-나선형 문제에서 나선들을 설명하기 위해 데카르트 좌표 (Cartesian coordinate)를 사용할 때, 상기 데이터 세트는 쉽게 선형으로 분리되지 않는다.

상기 독일 신용 문제는 독일 신용 기관 (German credit institution)의 채무자 1000명의 기록을 가지고 있다. 상기 기록은, 그들의 연령, 거주 상태, 신용 기록, 근로자라면 대출 사유 등과 같은 많은 채무자의 특징들을 포함하고, 상기 기록의 분류는 상기 채무자가 신용도가 높은 사람인지 아닌지를 말해준다. 상기 훈련된 NN의 목적은, 대출을 신청한 고객이 승인되어야 하는지 아닌지를 예측하는 것이다. 또한, 상기 기관은, 만일 오류가 발생한다면, 그 오류에 대한 선호도를 언급한다. 즉, 누군가를 신용도가 높은 사람으로 잘못 확인하기보다는, 누군가를 신용도가 낮은 사람으로 잘못 확인하는 것을 선호할 것이다.

이러한 데이터 세트의 형식적 (formal) 정의는 다음과 같다:

데이터세트 1: 이중-나선형 문제 - MITRE 회사의 알렉시스 빌란트 (Alexis Wieland)가 처음에 이 데이터 세트를 제시하였다. 그것은 2개로 엮인 (entwined) 나선의 입력 벡터 194개를 가진 것으로 정의되고, 이러한 데이터 포인트들의 절반은 출력 -1을 생산하고, 그 나머진 반은 출력 1을 생산하다. 각각의 나선은 3개의 주기 (period)를 갖고 180˚로 분리된다. 상기 입력 벡터는, 각각의 데이터 포인트 위치의 부동 소수점 데카르트 좌표를 나타내는 2차원을 갖는다.

데이터세트 2: 독일 신용 문제 - 함부르크 대학 (Universitat Hamburg) 교수 한스 호프만 (Hans Hofmann)이 이 데이터 세트를 제공하였다. 그것은, 대출을 신청한 고객 1000명의 예를 보여준다. 각각의 예는, 대출을 신청한 개개인의 연령, 그들의 신용 기록 및 대출 신청과 관련해 고려된 다른 속성들과 같은, 24개의 양수 (positive integer) 속성들의 입력 벡터이다. NN의 출력은 그 고객을 신용도가 높거나 낮은 사람으로 분류한다.

데이터 세트의 선택 기준은, DR 학습이 (a) 역전파만큼 좋은, 즉 DR 학습이, 역전파가 학습할 수 있는 데이터 세트를 학습할 수 있고; 및 (b) 규칙들이 상기 훈련된 NN으로부터 추출되도록 하는 데 역전파보다 더 낫다는 것을 보여주기 위한 것이었다.

상기 독일 신용 문제 데이터 세트는, 그것이 역전파로 학습되기에 매우 적합하기 때문에 선택되고, 이중-나선형 문제는, 역전파로 해결하기가 어렵다고 간주되기 때문에 선택된다.

데이터 준비: 우선, 본 발명의 또 다른 양태에 따라, 이러한 실시예에서 DR 훈련 알고리즘 (30)으로 NN을 훈련시키는 데 사용될 포맷으로 상기 데이터 [블록 (31)]를 준비하는 데 바람직한 방법을 사용하였다. 상기 데이터를 준비하는 하나의 목적은, 상기 데이터를 정확히 부호화하면서, NN으로의 입력 수를 최소화하는 것이다. NN으로의 입력 수를 최소화하는 것은 빠른 훈련 시간으로 바뀌어, 매번 입력 벡터가 NN에 의해 학습된다면, 그것이 NN에 의해 학습될 수 있는지 결정하기 위해 제약들을 테스트해야만 한다. 이제 논의될 데이터 변환 방법은, 본 발명의 DR 훈련 알고리즘 (30)과의 사용에 한정되지 않는다는 것이 이해되어야만 한다. 이러한 데이터 변환 방법은 다른 알려진 훈련 알고리즘에 유용할 수 있고, 그것에 의해, 본 발명의 독립적 양태로 여겨진다.

이진 데이터: 앞서 논의된 것처럼, 본 발명의 DR 훈련 알고리즘 (30)은 형태 {0,1}n의 이진 입력 벡터로 훈련되는 것이 바람직한데, 여기서 상기 n은 이진 입력을 생산하는, NN으로의 입력 수이다. 상기 입력 벡터는, 필요한 출력의 이진 값을 기초로 한 원하는 출력을 생산하는 제약들로 변환된다. 만일 상기 데이터가 이진수라면, 상기 데이터가 학습되도록 변경할 필요가 없다. 하지만, 데이터는 종종 이진 포맷으로 있지 않기 때문에, 본 발명의 알고리즘 (30)에 의해 학습되기 전에, 이진 포맷으로 변환되는 것이 바람직하다.

정수 ( integer ): 상기 입력 벡터에 있는 각각의 차원은 상기 입력의 일부 속성을 나타낸다. 만일 상기 속성들 중 하나가 정수라면, 그 정수는 상기 DR 훈련 알고리즘에 의해 학습될 이진수로 변환되는 것이 바람직하다. 이제, 본 발명의 DR 훈련 알고리즘 (30)이 정수를 학습할 수 있는 방법의 바람직한 실시예를 논의할 것이다.

우선, 상기 속성의 이진수 표시에 필요한 비트 (bit) 수를 결정하는 것이 필요하다. 이를 위해, 상기 속성이 취할 수 있는 정수 값의 범위는 다음과 같이 계산된다: 범위 = (최대 - 최소) +1. 그런 다음, 상기 범위를 이진수로 부호화하기 위해, 필요한 비트 수를 결정한다.

이것은, 상기 속성을 부호화하기 위해 필요한 비트 수를 결정하는 하나의 간단한 접근법이고, 다음에 관한 것을 고려하지 않는다: (a) 상기 속성은 음수를 갖는다. 만일 음수가 있다면, 2개의 보수를 사용하여 수를 나타내는 것이 가능하다. 하지만, 상기 속성의 양수 값을 나타내는 데 사용된 비트 수에 추가 비트를 사용하여야만 한다. 대안적으로, 상기 범위를 조절하여, 음수가 사용되지 않을 수 있고; 및 (b) 상기 속성은 범위를 벗어날 수 있다. 따라서, 개개인의 연령을 지닌 속성이 있을 수 있다. 입력 벡터의 모집단 (population)에 있는 연령대는 오직 18세에서 84세일 수 있다. 하지만, 훈련된 NN을 85세의 연령 속성에 노출시킬 필요가 있을 수 있다. 이 경우, 부분범위 (sub-range), 예를 들어 40세 내지 59세, 60세 이상에서 상기 데이터를 부호화하는 것이 가능할 수 있다.

독일 신용 데이터 세트에는, 조사될 음수가 없다. 하지만, 고객의 연령 속성범위는 18세에서 75세에 이른다. 이 범위의 정확한 연령을 부호화하기 위해, 6개의 비트가 필요하다. 하지만, 연령 범위가 고객의 연령, 예를 들어, 18세 내지 25세, 25세 내지 40세, 40세 내지 60세, 및 60세 이상을 부호화하는 데 더 유용할 수 있다는 것이 가능한데, 여기서 상기 부호화를 위해 오직 2개의 비트가 사용된다. 이것은, 상기 LTG로의 입력 수를 최소화하고, 상기 데이터 필드 (field)에 거의 모든 정보를 보존하기 위해 이행될 수 있다. 예를 들어, 누군가 은행 대출을 상환할 수 있는지를 결정하고자 하는 경우, 특정 연령, 예를 들어 37세인 사람이 38세인 사람보다 대출을 상환할 가능성이 더 높을 것 같지는 않다. 하지만, 60세 이상인 사람이 40세인 사람보다 일할 가능성이 낮다면, 연령의 범위는 중요한 역할을 수행할 수 있다.

속성들의 값을 부호화하는 데 필요한 비트 수는, 각각의 속성에 대해 개별적으로 고려될 필요가 있다. 일단 속성이 취할 수 있는 정수 값의 범위를 부호화하는 데 필요한 비트 수가 설정되면, 각각의 비트 위치 (position)는 NN으로의 개별 입력으로서 여겨질 수 있다. 따라서, 단일 속성이 NN으로의 몇 개의 입력들이 될 수 있다.

이 과정을 입력 및 출력 모두에 사용한다.

부동-소수점 데이터: NN을 훈련시키는 대부분의 데이터가 부동-소수점 데이터이기 때문에, 그것은 NN이 이러한 종류의 데이터를 학습하도록 훈련시킬 수 있는 데 유용하다. 따라서, 부동-소수점 데이터가 이진 데이터로 변환될 수 있는 것이 유용하고 바람직하다.

정수들인 속성들과 함께, 많은 비트들이 상기 부동-소수점 수를 이진수로 나타내기 위해 할당되어야만 한다. 상기 속성이 상기 범위 밖의 값을 취할 수 있는지 및 상기 속성이 음의 값 (negative value)을 취할 수 있는지에 관해, 상기 속성이 취할 수 있는 값의 범위가 다시 조사된다. 하지만, 상기 속성의 데이터 포인트 및 상기 속성을 나타낼 때 수용가능한 오차 정도를 나타내는 데 어느 정도의 정밀도 (precision)가 필요한지 고려되어야만 한다.

이 과정을 입력 및 출력 모두에 사용한다.

이제, 본 발명의 DR 훈련 알고리즘 (30)이 부동-소수점 데이터를 학습할 수 있는 방법의 바람직한 실시예가 제공될 것이다.

이중-나선형 문제에 대해, 학습될 데이터 세트는 형태 (x, y)[여기서, x, y ∈ R)의 데카르트 좌표에 있고, NN의 출력은, 데이터 포인트가 속한 나선을 나타낸다.

데이터의 두 집합이 아르키메데스 (Archimedes)의 나선에 대한 극좌표 (polar coordinate) 공식, r = θ 및 r = -θ로부터 취해진다. 각각의 나선에 대한 97 데이터 포인트가 있고, 각각의 나선은 3주기를 갖고, 이것이 포인트들을 약 7.4도 떨어지게 만든다. 그런 후, 이 포인트를 상기 문제 열거 (specification)에 의해 필요한 대로 데카르트 좌표로 변환시킨다.

상기 데이터 포인트에 충분한 정밀도를 제공하기 위해, 상기 데이터 포인트를 소수 둘째 자리에서 반올림하는 것이 바람직하다. 그런 다음, 상기 데이터 포인트에 100을 곱한 후, 이진수로 변환한다. 상기 수의 2의 보수를 음수의 부동 소수점 수에 사용한다. 상기 입력 벡터를 부호화할 수 있기 위해, 상기 데이터 포인트의 데카르트 좌표 (x, y)인 속성들 각각에 대해 12개의 이진수를 사용한다. NN으로의 2개의 입력을 갖는 대신, 24개의 비트들이 있다. 상기 좌표를 12개의 이진 위치로 제한함으로써, 상기 입력 공간이 충분히 정밀하게 접근가능해진다.

상기 나선으로부터의 데이터 포인트 예를 조사하는데, 극좌표에서의 r = -θ는 (-Π/2, Π/2)이다. 이 포인트를 데카르트 좌표로 변환하여, 상기 포인트는 (0, -1.5708)가 된다. 이 값에 100을 곱하고, 최근접 정수로 반올림하여, (0, -157)이 된다. 그런 다음 마지막으로, 이 값을 12개의 이진 수 (000000000000, 111101100011)로 변환시킨다. NN에 적용된 입력 벡터는 000000000000111101100011이 된다.

이제, 이진 및 부동-소수점 데이터가 설명되었고, 기호 데이터 (symbolic data)에 대해 논의할 것이다.

기호 데이터: 기호 데이터는 비수치 데이터로, 계산 목적의 이진수도 부동 소수점도 아니다. 그것은, 상기 데이터가 갖는 일부 비수량적 (non-quantifiable) 속성들이라 불릴 수 있다. 이제, 본 발명의 DR 훈련 알고리즘 (30)이 기호 데이터를 학습할 수 있는 바람직한 실시예를 제공한다.

성 (gender)과 같은 속성에 대해, 이 속성은 2개의 가능한 값을 가짐으로써, 단일 이진 입력이, 상기 데이터를 예를 들어 암 (female)은 1이고 수 (male)는 0으로 부호화하기 위해 할당될 수 있다. 다른 기호 속성들 또한 주어진 이진 값이 될 수 있다. 색 (colour)의 기호 속성의 조금 더 복잡한 예는 3개의 값을 가질 수 있다: 녹색, 남색 및 노란색. 이 속성의 값을 부호화하는 데 2개의 비트를 할당하는 것이 가능하다. 예를 들어, 2개의 비트가 이 필드를 부호화하는 데 할당될 수 있고, 이진 값이 임의적으로, 즉 01 - 녹색, 10 - 남색 및 11 - 노란색으로 할당될 수 있다. 대신 01 - 남색, 00 - 녹색 및 10 - 노란색 등처럼, 사용될 수 있었던 가능한 많은 다른 결합이 있을 수 있기 때문에, 이것이 많은 가능한 부호화 기법 중 유일한 것으로 이해되어야만 한다. 2개 대신 3개의 비트와 같은 다른 부호화 방법이 사용될 수 있다. 또한 비트 수는, 몇 개의 값들이 상기 속성에서 색에 대해 테스트될 수 있는지에 따라 다를 수 있다.

데이터 부호화 방법 선택할 때 주요 고려사항은, 분류되는 데이터 및 상기 데이터로부터 필요한 분류에 따라 다르다.

예를 들어, 만일 NN이 학습하는 데이터 속성 중 하나가 신용 기록이고 그것의 값이 낮음 (poor), 보통 (average), 높음 (good) 및 매우 높음 (excellent)이라면, 상기 훈련된 NN은 신용도가 낮은 고객으로부터 신용도가 높은 고객을 분리하는 것이다. 높은 신용도 기록을 가진 고객들과 대출을 상환하는 그들의 잠재적 능력 사이에 상관관계가 있다는 것이 추정될 수 있다.

상기 속성들에 할당될 수 있는 4개의 기호 값이 있기 때문에, 모든 4개의 값을 부호화하기 위해 오직 2개의 비트를 가질 필요가 있다. 상기 데이터에 필요한 출력에 관해 상기 값을 할당하는 데 케어 (care)가 선택되어야만 한다. 예를 들어, '낮음'은 01, '보통'은 10, '높음'은 11, 및 '매우 높음'은 00으로 부호화된다면, 만일 '높음' 및 '매우 높음'이 '낮음' 및 '보통'의 다른 값으로부터 분리된다면, 상기 데이터가 상기 입력 공간에서 XOR을 형성하고, 따라서 선형으로 분리될 수 없다. 비록 본 발명의 DR 훈련 알고리즘 (30)이 이것을 학습할 수 있더라도, 그것이 XOR과 동등하기 때문에, 상기 데이터를 학습하는 데 추가 LTG가 필요하다. 이것을 '기호 충돌 (symbolic conflict)'의 부호화라고 부를 수 있다. 상기 값이 상기 입력 공간에서 선형으로 분리될 수 있을 정도 다르게 부호화하여, 기호 충돌을 피할 수 있다. 예를 들어, '높음'은 11, '매우 높음'은 0, '낮음'은 00 및 '보통'은 01로 부호화하는 것이 이 문제를 피한다. 이 방법 '높음'/'매우 높음'은 '낮음'/'보통'으로부터 선형으로 분리된다. 데이터를 부호화하는 최고의 방법은 부호화되는 데이터에 따라 다르며, 그 결과 각각의 속성은 개별적으로 고려되어야만 한다.

하지만, 이것은 단순화 (simplification)인데, 이는 어느 고객이 신용도가 높은지를 예측하는 데 영향을 주는 신용 기록 이외의 추가 속성 관계들이 있다는 것이 추측되기 때문이다.

상기 출력과 속성 값 사이의 분명한 연관이 없을 수 있지만, 기호 충돌을 피하는 것이 항상 가능할 수는 없다. 본 발명의 DR 훈련 알고리즘 (30)은, NN에 필요한 대로 LTG를 추가할 수 있기 때문에, 기호 충돌을 학습할 수 있다.

지금껏, 본 발명의 DR 훈련 알고리즘 (30)에 의해 학습될 비-이진 데이터를 준비하는 방법이 조사되었고, 이제 그것의 실험 절차를 조사할 것이다.

실험 절차: 상기 설명된 영역 (domain) 각각에 대해 동일한 실험을 수행하였다. NN을 데이터 세트로 훈련시키고, 상기 데이터 세트에 노출 수를 기록하였다. NN이 훈련 후에 보이지 않는 데이터를 얼마나 잘 일반화할 수 있는지 면에서, NN의 수행 능력을 평가하고, 그 결과를 공개된 동일한 데이터로 훈련된 NN의 결과와 비교하였다.

일단 훈련이 완료되면, NN을 테스트하여, 확실히 NN이 상기 훈련 세트에 대해 정확한 출력을 재생산하고 테스트 세트의 일부분을 분류할 수 있게 하였다.

각각의 NN에서 테스트된 데이터 세트는 앞에서 설명하였다. 상기 정의된 것과 동일하거나 유사한 바람직한 방법을 사용하여, 상기 데이터 세트를 이진수로 변환시켰다.

실험 결과

이제, 2개의 데이터 세트에 대한 실험 결과를 조사할 것이다. 상기 훈련 및 테스트 단계로부터 중요한 2개의 결과 세트가 있다. 상기 훈련 단계에서, 몇 개의 훈련 패스 (passes)가 상기 데이터 세트를 학습하는 데 필요했는지가 중요하다. 상기 테스트 단계에서, 몇 개의 보이지 않는 입력 벡터가 성공적으로 분류되었는지가 중요하다.

이중-나선형 문제

알려진 알로리즘의 공개된 결과: 웨일랜드 (Weiland)는, 150,000-200,000 에포크 (epoch)의 변경된 역전파 버전으로 NN을 훈련시켰다. 하지만 표준 역전파로는 결코 해를 찾지 못했다. 하지만, 랑 및 위트브록 (Lang and Witbrock)은, 표준 역전파를 사용하여, 20,000 에포크의 데이터 세트를 학습하는, 2-5-5-5-1 구조, 2개의 입력, 5개의 은닉 유니트 각각의 3개의 은닉 층, 및 1개의 출력 유니트로 NN을 훈련시켰다. 하지만, 그들의 NN은, '단축 (shortcut)' 연결을 사용하여 모든 이전 층에 있는 모든 유니트로부터 직접적으로 입력을 받는 각각의 은닉 층 유니트를 가졌다.

본 발명의 DR 훈련 알고리즘의 실험 결과: NN을 훈련시킨 데이터 세트 (170)는 도 17에 도시된다. 각각의 나선은 97개의 데이터 포인트를 갖는다. 그 결과로 얻은 훈련된 NN은 24개의 입력, 5개의 은닉 LTG들 및 1개의 출력 LTG를 갖는다. 상기 LTG를 모든 경우에 AND를 사용하여 함께 연결한다. 상기 NN은 단일 에포크로 학습하였다.

검토: 생산된 NN (180)의 개략도는 도 18에 도시된다. 본 발명의 DR 훈련 알고리즘 (30)에 의해 단일 패스로 훈련된 NN (180) 및 미지의 입력 벡터에 대한 디폴트는 1을 출력한다. 그 결과로 얻은 상기 DR 학습의 NN (180)은 역전파에 필요한 것보다 간단한 표준 구조를 갖는다. 도 18에 도시된 것처럼, 출력 층 (184)에 있는 LTG T21에 의해, 은닉 층 (182)에 있는 LTG들 (LTG11, LTG12, LTG13, LTG14, 및 LTG15)은 함께 모든 경우에서 AND로 연결되었다. NN (180)을 학습시킨 데이터 세트 (170)(도 17)는 각각 3개의 주기를 갖는 2개의 나선을 갖는다. 각각의 나선은 97개의 데이터 포인트들을 갖는다. NN (180)은 훈련 벡터를 100% 정확하게 회상할 수 있다.

NN (180)을 각각의 나선에 대해 80개의 입력 벡터로 테스트하고, 어떠한 데이터 포인트도 상기 훈련 세트로부터 나오지 않았다. 1을 출력하는 나선으로부터의 입력 벡터들에서, 21/80 입력 벡터들이 부정확하게 분류되었다. 이것은 26%의 오차율을 낳는다.

0을 출력하기 위해 훈련된 나선으로부터의 80개의 입력 벡터들 중, 35/80 입력 벡터들이 부정확하게 분류되었다. 이것은 43%의 오차율을 낳는다. 이 결과가 매우 높은 이유는, 상기 디폴트 출력이, 상기 입력 벡터의 출력이 드러나지 않은 LTG에 대해 1이었기 때문이었다.

두 개의 나선에 대한 평균 오차율은 34.5%이다. NN (180)은, 그것이 상기 훈련 세트에 대한 수정 출력 (correction output)을 98%로 예측할 수 있을 때 훈련된 것으로 간주되기 때문에, 상기 2개의 나선 문제에 대해 유사한 오차율을 찾는 것은 어려웠다. 또한, 1은 > .5였고 0은 < .5였을 수 있기 때문에, 캐스케이드-상호작용 구조 (Cascade-Correlation Architecutre: CAS)에 대한 오차율을 찾는 것은 어려웠다. 텡 외 (Teng et al.)는, 뉴런이 > 8.일 때, 활성화되고, 그렇지 않으면 활성화되지 않는 것으로 간주한다. 푸 외 (Fu te al), 텡 외 (Teng et al), 및 팰만 외 (Fahlman et al)의 중요한 관심 대상은, 은닉 층에 있는 유니트의 수 및 NN을 훈련시키는 데 필요한 에포크의 수 또는 시간이었다. 모든 경우에, 본 발명의 DR 훈련 알고리즘 (30)은, 100% 정확하게 상기 데이터 세트를 학습하는 데 최소한의 은닉 유니트 수 및 오직 1 에포크를 필요로 했다. 상기 DR 훈련 알고리즘 (30)은 5개의 은닉 뉴런을 필요로 했고, CAS는 평균 12개의 은닉 뉴런 및 1700 에포크; 2082 ± 478 에포크 21.1 ± 2.3 하부-NN (1개 이상의 뉴런들); 및 10개의 은닉 유니트를 필요로 하고, 최소 1073.45 CPU를 학습하였다. 그것이 마지막 입력 벡터를 학습하기 위해 본 발명의 DR 훈련 알고리즘 (30)을 사용한 시간, 및 따라서 상기 이중-선형 문제에 대해 다른 입력 벡터를 학습하는 데 걸린 가장 긴 시간은 15분 54초였다. 이것은 제약 만족 라이브러리 (constraint satisfaction libraries)의 사용 때문이었고, 마지막 입력 벡터를 학습하는 은닉 층 (182)에 5개의 LTG들이 있었기 때문이었다. 입력 벡터를 테스트하는 평균 시간은 약 30분이었다. 상기 데이터 세트를 학습하는 시간은, 역전파로 학습한 시간보다 상당히 짧았는데, 그 이유는 상기 역전파로 훈련된 NN으 고정된-크기의 NN이 필요하기 때문이다.

오차율은 상기 데이터 세트 내부에 작았다. 오차율은 각각의 나선에 대한 첫 번째 1.5주기 내의 23% 및 33%였다. 오차율의 상승은, 상기 데이터 세트 내부에 있는 훈련 데이터 포인트들의 높은 밀도 때문이다.

하지만, 그것은 r = θ인 나선을 예측하는 데 더 성공적이다. 도 19에, 상기 테스트 데이터 세트의 결과가 도시된다.

'ㅁ'의 곡선에 있는 '+'는, 정확히 확인된 입력 벡터이고, 'o'의 곡선에 있는 'x' 또한, 정확히 확인된 입력 벡터를 나타낸다. 그렇지 않으면, 그들은 부정확하게 확인된다. 여기서, 일반화하는 NN (180)의 능력을 향상시키기 위해, 추가 훈련 제공이 필요한 입력 공간의 부분들을 볼 수 있다. 이것은 전통적으로, 피드-포워드 NN을 훈련시키기에 매우 어려운 데이터 세트라는 것이 주목된다.

모든 입력 벡터에 대해, 마지막 입력 벡터를 제외하고, NN (180)의 은닉 층 (182)에 있는 하나 이상의 LTG들에 대한 불완전한 학습이 있었다. 매우 종종 LTG15에 불완전한 학습이 있었다.

생산된 NN (180)은, 역전파를 사용할 때 생산된 NN보다 덜 복잡하다. 또한, 그것은 어려운 데이터 세트이다. 그 결과는, 늘어난 수의 입력 벡터로 훈련시켜 향상될 수 있는 것으로 여겨진다.

따라서, 피드-포워드 NN을 훈련시키는 다른 접근법뿐만 아니라, 본 발명의 DR 훈련 알고리즘 (30)은 일반화하는 그것의 능력에 대해 수행할 수 있다. DR 훈련 알고리즘 (30)은 유사한 구조를 훈련시키는 다른 훈련 방법이다.

이제, NN (180)에 있는 각각의 LTG들에 대한 MAV를, 각각의 LTG가 학습한 것을 결정하기 위해 조사할 것이다.

이중-나선형 문제에서 LTG 들에 대한 MAV 결정: LTG11 (임계치 T11로)에 대해, 도 15의 방법 (150)을 사용하여 MAV를 찾는 것이 제약 수를 194개에서 29개로 줄였다. 이것은 85.1%의 감소 또는 압축이다. 앞서 논의한 것처럼, 이 LTG에 의해 학습된 다른 모든 입력 벡터는, 상기 LTG에 대한 MAV를 형성하는 남겨진 이 포인트들로부터 회상될 수 있다. 가중치-공간은 24차원을 갖는다.

상기 제약들 중, 13개의 입력 벡터가 xi ·w11 ≥ T11을 형성하고, 다른 16개의 제약들이 xi ·w11 < T11을 형성한다.

상기 LTG가 학습한 것을, 상기 LTG를 활성화시키는 가중치-공간의 영역 면을 형성하는 평면을 조사하여 그래프로 나타낼 수 있다. 이러한 평면은 xi ·w11로 나타낸다. 상기 가중치-공간은 상기 입력 공간의 변형 (transformation)이다. 상기 LTG가 학습한 것을 결정할 수 있기 위해, 상기 MAV에 있는 제약들을, 그들을 형성시킨 입력 벡터로 다시 변환시킨다. 그런 후, 원래의 입력 벡터가 형성된 과정을 십진법 (decimal)에서 이진법으로 전환시킬 수 있다. 앞에, 부동-소수점 수를 준비하는 방법에 대해 논의한 부분에서, 이것을 수행하는 방법에 대해 논의하였다. 이제, 은닉 층 (182)에 있는 각각의 LTG가 본 발명의 방법을 사용하여 학습한 것을 설명할 것이다.

도 20a에서, 은닉 층 (182)에 있는 첫 번째 LTG, LTG11이 학습한 것을 볼 수 있다. 'o' 및 'ㅁ'은 원래의 입력 벡터를 나타낸다. 상기 'ㅁ'은 r = θ 나선을 나타내고, 상기 'o'은 r = -θ을 나타낸다. '+'는 LTG11에 대한 MAV를 찾은 후 남겨진 입력 벡터를 나타내고, 이 데이터 세트를 분류하는 데 두드러진 입력 벡터를 나타낸다. 'x'는, xi ·w11 < T11을 사용하여 학습한 제약들을 나타낸다. 상기 '+'는, xi·w11 ≥ T11을 사용하여 학습한 제약들을 나타낸다. 이 규정은 계속되는 LTG에 뒤따른다. 이것은, 상기 LTG11이 정확하게 학습한 것이다. 또한, 입력-공간이 아닌, 가중치-공간에 정의된 체적 면으로 상기 데이터를 부호화하여, 상기 데이터 세트가 학습된다는 것은 주목할 만한 가치가 있다.

전통적으로, 상기 입력-공간은 학습되는 집합들을 선형으로 분리하기 위해 분석된다. 상기 가중치-공간은 24차원의 공간이기 때문에 자세히 조사하기가 불가능하다. 이것은 은닉 층 (182)에 있는 나머지 LTG들에 대해서도 마찬가지이다. 하지만, 이 LTG, LTG11은 전체 데이터 세트를 학습할 수 없었다. 이제, LTG12가 학습한 것을 조사할 것이다.

LTG12에 대해, 상기 MAV를 찾는 것이 제약 수를 194개에서 34개로 줄였다. 이것은 82.5%의 감소, 또는 압축이다. xi ·w12 < T12를 형성하는 16개의 제약을 제외하고, 모든 제약들이 xi ·w12 ≥ T12를 형성하는 제약들을 생산하였다. 도 20b에서, 은닉 층 (182)에 있는 두 번째 LTG, LTG12가 학습한 것을 볼 수 있다.

도 20a에 있는 것과 동일한 규정을 사용하여, LTG12가 다른 입력 벡터를 학습한 것을 볼 수 있다. 'ㅁ' 나선, r = θ 위에, 입력 벡터가 학습한 모든 것이 집합, 즉 xi ·w12 ≥ T12에 속한 것을 볼 수 있다. 하지만, 'o' 나선, r = -θ 위에 많은 입력 벡터들이 있고, 이들 또한 상기 집합에 속한다. 이는, 이 LTG, LTG12가 이 데이터 세트에 있는 모든 것을 학습할 수 없기 때문이다. 또한, 은닉 층 (182) 출력에 있는 LTG들은 LTG21, 출력 LTG에 의해 AND로 함께 연결된다. 이는, 만일 상기 LTG, LTG12가 상기 입력 벡터들에 대해 잘못된 결과, 즉 0 대신 1을 생산한다면, 이 층에 있는 하나의 다른 LTG가 상기 입력 벡터들을 학습할 수 있고 0을 생산한다. 이제 LTG13이 학습한 것을 조사할 것이다.

LTG13에 대해, MAV를 찾는 것이 제약 수를 194개에서 51개로 줄였다. 이것은 제약의 73.7% 감소이다. xi ·w13 < T13을 형성하는 10개의 제약들을 제외하고, 모든 제약들이 xi ·w13 ≥ T13를 형성하는 제약들을 생산하였다. 도 20c에서, 은닉 층 (182)에 있는 세 번째 LTG, LTG13이 학습한 것을 볼 수 있다.

LTG14에 대해, MAV를 찾는 것이 제약 수를 194개에서 81개로 줄였다. 이것은 58%의 감소, 또는 압축이다. xi ·w14 < T14를 형성하는 6개의 제약들을 제외하고, 모든 제약들이 xi ·w14 ≥ T14를 형성하는 제약들을 생산하였다. 도 20d에서, 은닉 층 (182)에 있는 네 번째 LTG, LTG14가 학습한 것을 볼 수 있다.

이제 LTG15가 학습한 것을 조사할 것이다. LTG15에 대해, MAV를 찾는 것이 제약 수를 194개에서 159개로 줄였다. 이것은 18%의 감소, 또는 압축이다. 1개의 입력 벡터를 제외하고, 상기 LTG에 의해 학습된 모든 제약들이 xi ·w15 ≥ T15를 형성하는 제약들을 생산하였다. 도 20e에서, 은닉 층 (182)에 있는 마지막 LTG, LTG15가 학습한 것을 볼 수 있다.

이 LTG, LTG15의 주요 목적은, 'x'로 나타낸 입력 벡터를 학습하는 것이다. 또한 그것은, 'ㅁ'으로 나타낸 r = θ 나선에 있는 많은 포인트들을 갖는다.

은닉 층 (182)에 있는 LTG들에 대해, 그들이 2개의 나선 곡선의 다른 부분들을 학습한 것을 볼 수 있다. NN (180)이 100% 정확하게 학습한 것을 재생산할 수 있다는 것을 상기하는 것이 중요하다.

또한, 상기 MAV는 LTG21, 또는 NN (180)의 출력 LTG에 대해 찾아졌다. MAV가 그것의 모든 입력 연결들 사이에 AND를 형성함에 따라, 32개의 제약들이 있었다. 이것은 상기 MAV에서 6개의 제약들로 줄었다. 이것은 81%의 감소, 또는 압축이다.

함수 최소화는 MAV를 정의하기 위해 찾아진 입력 벡터에 적용될 수 없는데, 이는 상기 데이터가 독립적이기 때문에, 즉 상기 입력 벡터가 단일 값을 정의하고, 따라서 함수 최소화가 무의미한 정보를 나타낼 것이기 때문이다.

독일 신용 문제

이 데이터 세트는 그것과 연관된 코스트 매트릭스 (cost matrix)를 갖는다. 이 코스트 매트릭스는 표 3에 나와있다. 하기 표의 세로는 예측된 집합 (predicted class)이고, 가로는 진짜 집합 (true class)이다. 만일 고객이 신용도가 높게 예측되고 대출 상환에도 높은 점수를 갖는다면 코스트가 없고, 마찬가지로 만일 고객이 신용도가 낮게 예측되고 대출 상환에도 낮은 점수를 갖는다면 코스트가 없다. 하지만, 만일 누군가 실제로는 신용도가 높음에도 불구하고 신용도가 낮게 예측된다면, 이는 대출기관 (lending institution)에 이자를 잃게 할 것이다. 하지만 더 좋지 않은 상황은, 고객이 실제로는 신용도가 낮음에도 불구하고 신용도가 높게 예측되는 경우이다. NN의 코스트를 계산할 때 고려될 필요가 있는 오차의 2개의 집합이 있다.

독일 신용 문제 데이터 세트에 대한 코스트 매트릭스

알려진 알고리즘의 공개된 결과: 역전파에 대한 오차율은 표 4에 나와있다. 역전파가 상기 코스트 매트릭스에 필요한 대로 오차 집합 사이를 구별하지 못하기 때문에, 이 숫자는 상기 코스트 매트릭스를 포함하지 않는다.

훈련 오차 테스트 오차
역전파 0.446 0.772

역전파에 대한 오차율

이 데이터 세트로 역전파를 사용하여 NN을 훈련시키고 테스트하는 데 필요한 시간은 표 5에 나와있다.

훈련 시간 (초) 테스트 시간 (초)
역전파 5950.0 3.0

역전파에 대한 훈련 시간

본 발명의 DR 훈련 알고리즘의 실험 결과: 이 데이터 세트로의 훈련이, 하나의 출력 및 2개의 은닉 층 LTG를 갖는 NN을 생산하였다. 상기 은닉 층 LTG들을 OR 연결을 통해 함께 연결하였다. 상기 데이터 세트에 1000개의 입력 벡터들이 있다. 입력 벡터 100개의 테스트 세트를 상기 벡터 1000개의 데이터 세트로부터 무작위로 선택되었다. 훈련 후에 생산된 NN (190)의 개략도는 도 21에 도시된다.

테스트 목적으로 남겨둔 100개의 입력 벡터들 가운데, 출력에 대해 0을 생산하는 89개의 입력 벡터들 중 부정확하게 확인된 4개의 입력 벡터들이 있다. 따라서, 85개의 입력 벡터들이 정확하게 확인되었다. 상기 테스트 세트에서 출력에 대해 1을 생산하는 11개의 입력 벡터들 중 정확하게 확인된 9개의 입력 벡터들이 있다. 따라서, 2개의 입력 벡터가 부정확하게 확인되었다. 이 결과를 표 6에 요약하였다.

부정확 정확 퍼센트
출력 1 2 9 11 18%
출력 0 4 85 89 4.4%
6 94 100 6%

독일 신용 문제에 대한 결과 요약

1을 생산하는 입력 벡터들에 대한 오차율은 조금 높은 18%로 나타났다. 0을 생산하는 입력 벡터들에 대한 오차율은 4.4%이다. 총 오차는 6%이다. 추가 훈련이, 상기 두 종류의 출력을 지닌 입력 벡터에 대한 오차율을 감소시키는 것으로 여겨진다. NN (190)은 100% 정확하게 학습한 것을 재생산할 수 있다.

모든 오차 결과는 역전파에 대한 오차 결과 (훈련 오차: 0.446 및 테스트 오차: 0.772)보다 나았다. 훈련 및 테스트 결과는 표 4에 나와있다.

이 실험은, 본 발명의 DR 훈련 알고리즘 (30)이 역전파와 같은 종래의 알려진 훈련 알고리즘보다 상당한 이점을 제공한다는 것을 보여준다. 가중치가, 학습하고자 하는 데이터 세트에 내재한 규칙들을 부호화하려는 평균 값을 나타내기 때문에, 상기 오차는 역전파에 대해 결코 0으로 줄어들 수 없다. 역전파를 사용할 때 각각의 퍼셉트론에 있는 단일 가중치 값은, 각각의 입력 벡터 대한 정확한 출력 생산을 학습하게 만들 각각의 입력 벡터에 대해, 필요한 가중치 값을 정확하게 나타낼 수 없다. 이것은, 가중치-공간이 각각의 입력 벡터에 대해 정확한 출력을 허용하기 때문에, 상기 가중치-공간의 영역을 찾는 이점들 중 하나이다.

NN (190)을 총 268개의 입력 벡터로 훈련시키는데, 이들 입력 벡터 중 168개가 1을 생산했고, 다른 100개의 입력 벡터가 0을 생산했다. 이들 입력 벡터들을, 테스트를 위해 사용되지 않은 나머지 900개의 입력 벡터들로부터 무작위로 선택하였다. 더 많은 입력 벡터들이 테스트를 위해 사용될 수도 있었다.

NN (190)을 훈련에 이용가능한 데이터 세트의 < 1/3로 훈련시켰고, 이들은 역전파에 대한 오차율보다 작은 오차율을 생산하였다.

이 실험의 결과는, 만일 본 발명의 DR 훈련 알고리즘 (30)이 실제 데이터 세트에 사용된다면, 빠른 제약 테스트 방법이 바람직하다는 것을 보여주었다.

또한, 상기 실험의 결과는, 이미 학습된 입력 벡터의 수에 따라 증가된 각각의 입력 벡터를 학습하는 데 필요한 시간을 보여주었다. 이것을 향상시킬 수 있는 방법은 적어도 2가지가 있다: (1) 병렬 처리기 (parallel processor) 사용; 또는 더 효과적인 제약 테스트 알고리즘 사용. 또한, 비싼 최신식 처리기가 DR 훈련 알고리즘 (30)의 작동을 향상시킬 수 있는 것으로 여겨진다.

테스트를 위해 남겨둔 입력 벡터 100개 중, 11개의 입력 벡터가 1의 출력을 생산하고, 다른 89개의 입력 벡터가 출력으로서 0을 생산한다. 상기 총 데이터 세트에서 1을 생산하는 입력 벡터는 비례적 (proportionally)으로 거의 없었다. 하지만, 상기 출력이 되어야만 하는 것이 드러나지 않았을 때, 0을 출력하는 쪽으로의 치우침 (bias)이 있기 때문에, 1을 출력하는 비례적으로 더 많은 수의 입력 벡터로 훈련시키는 것이 결정되어, NN (190)이 성공적으로 1을 출력하는 방법을 학습할 것이다. 1보다는 오히려 0을 출력하는 치우침이 선택되는데, 그 이유는, 음성 오류 (false negative) 대 양성 오류 (false positive)에 대한 5 대 1 선호가 있기 때문이다. 이것은, 음성 오류 : 양성 오류 = 5:1의 분류 오차를 선호하는 것을 나타내는 코스트 매트릭스를 기초로 한다. 즉, 실제로는 신용도가 낮임에도 불구하고 그 고객을 신용도가 높은 사람으로 잘못 분류하기보다는 오히려, 실제로는 신용도가 높음에도 불구하고 그 고객을 신용도가 낮은 사람으로 분류하는 것을 선호할 것이다.

따라서, 표 3에서 코스트 매트릭스를 적용할 때, 그 코스트는 14이다. NN을 테스트할 때 오직 평균 오차가 수집되기 때문에, 종래의 NN 훈련 알고리즘으로 상기 코스트를 결정하는 것은 불가능하다.

비록 상기 훈련 시간이, 제약들을 테스트하는 라이브러리 함수 (library function)의 결과로 역전파에 대한 시간보다 더 길더라도, 본 발명의 DR 훈련 알고리즘 (30)은, 상기 입력 벡터를 학습하는 데 오직 하나의 데이터 세트 패스를 필요로 했고, NN (190)을 훈련시키는 데 이용가능한 데이터 세트의 오직 3/1을 필요로 했다.

독일 신용 문제에서 LTG 에 대한 MAV 결정: 도 15의 MAV를 결정하기 위한 방법 (150)을 사용하여, NN (190)에 있는 LTG들에 대한 MAV를 찾았다. 훈련 동안 LTG, 상기 층에 있는 마지막 LTG 또는 현재의 출력 LTG에 대한 MAV를 찾는 것은, NN (190)이 학습한 것을 잊을 것이라는 것을 의미할 수 있다. 앞서, LTG를 NN에 추가할 때 논리를 실행하는 방법을 논의한 부분에서 설명한 것처럼, 이는 제약들이 층에 새롭게 추가된 LTG로 복사될 때 변경되기 때문이다.

LTG11에 대한 MAV를 찾은 후, 훈련 동안 형성된 268개의 제약들 중 45개의 제약들이 남았다. 이것은 상기 LTG에 대한 가중치-공간을 정의하는 제약들의 83% 감소이다. 이들 제약들 중, 18개가 xi ·w11 ≥ T11 형태의 제약들을 생산했다.

훈련 동안 형성된 제약들을 검사할 때, 상기 LTG가 학습한 것은 (xi ·w11 ≥ T11 OR xi +1·w11 ≥ T11 OR ... OR xi +n·w11 ≥ T11) AND NOT (xj ·w1 < T11) AND NOT (xj +1·w11 < T11) AND NOT ...의 형태로 읽힐 수 있다.

그것이 이러한 형태에 있기 때문에, 논리 분석에 적합하고, 이 데이터 세트 분류와 무관한 변수들이 유도될 수 있다.

상기 입력이 여기에 있는 일반적인 경우와 마찬가지로 독립적이라면, 특정 관심사인 변수들을 찾기 위해, 퀸-맥클러스키 또는 반복된 합의와 같은 함수 최소화 기법을 사용한다. 모든 잉여 입력 벡터들이 상기 MAV를 찾아 제거될 수 있기 때문에, 함수 최소화 기법을 사용하는 일을 훨씬 더 쉽게 만들고, 그들의 잠재적 지수 복잡성 (exponential complexity)을 극복하는 데 도움을 준다.

하지만, 원래의 데이터 세트에 있는 일부 변수들이 다수의 비트 위치로 변환되기 때문에, 상기 제약들이 나타내는 것을 아는 것이 더 흥미롭다.

두 번째 LTG, LTG12를 은닉 층 (192) 및 새로운 출력 LTG에 추가시키는 것은 입력 벡터 [100011101010100000100011001101010001010001] → 1이었다. 상기 벡터를 필드 [10 00 111 0101 01 000 001 00 011 00 11 01 01 00 01 0 10 00 1]로 나누었다. 이 벡터는 다음과 같이 번역된다: '이 고객은 당좌 예금 (checking account)이 없고, 대출은 < 12개월이 되고, 모든 기존의 대출금이 제때에 상환되었고, 가구/장비 마련을 위해 대출을 희망하고, 1000 내지 5000 DM을 대출받기 희망하고, < 1년 동안 직장에서 근무하고 있고, 가처분 소득 (disposable income) 비율이 < 1%이고, 기혼/이혼 여성이고, 보증인이 없고, 4년 이상 동일한 주소에 거주하고 있고, 약간의 저축 또는 생명 보험이 있고, 25세 내지 40세의 여성이고, 할부 구매가 없고, 집을 소유하고 있고, 이 은행에 다른 채무가 없고, 숙련된 근로 여성이고, 누군가를 부양할 의무가 없고, 자신 명의의 전화기가 없고, 외국인 근로자이다.'

LTG12에 대한 MAV를 찾은 후, 훈련 동안 형성된 268개의 제약들 중 139개가 남았다. 이것은 상기 LTG에 대한 가중치-공간을 정의하는 제약들의 48% 감소이다. 이들 제약들 중, 14개가 xi ·w11 ≥ T12 형태의 제약들을 생산했다.

상기 출력 LTG, LTG21은 그것의 입력 연결들 사이에 OR을 형성하였다. 그 결과, 그것은 4개의 제약들을 형성하였다. 상기 MAV를 결정한 후, 상기 제약 수가 3개로 줄어들었다. 이것은 제약 수의 25% 감소이다.

이와 같은 데이터 세트에 대해, 42차원으로, 이 과정을 자동화하는 것이 매우 바람직하다. 은닉 층 (192)에 있는 각각의 LTG에 대한 MAV를 찾은 후에라도, 검사하기 위한 45개 및 139개의 제약들 또는 규칙들이 있고, 이 과정을 자동화하지 않고는 그것이 어려울 수 있다. 하지만, 신용도가 높은 고객인지를 결정하기 위해, 상기 LTG가 학습한 것을 기초로 한 대략적 규칙은 다음처럼 무언가로 말해질 수 있다: '그들 자신의 집을 소유하거나 임대하지 않거나 재산/저축이 있거나 (많은 부채 및 보증인)'

하지만, NN (190)이 상기 테스트 세트로부터 2개의 입력 벡터를 정확하게 분류하지 않았다면, NN (190)이 아직 학습하지 않은 데이터 세트에 적어도 하나의 추가 특징이 있다.

상기 2개의 데이터 세트에 대한 실험 결과 요약

상기 2가지 경우에서, NN (180),(190)이 100% 정확하게 훈련 세트를 재생산할 수 있다면, 비교 기준을 기초로, 상기 경우들에서 학습된 규칙의 정확도는 매우 높다. 이것은, 훈련 동안 역전파가 확인한 평균 가중치 값과 대조된다. 역전파를 사용하는 경우, NN을 훈련시킨 데이터에서 NN이 테스트될 때, 출력에는 반드시 오차가 어느 정도 있을 것이다. 입력 벡터가 분류되는 속도 (speed)는, 실행하기 위해 루틴 (routine)을 처리하는 제약들에 필요한 시간을 기초로 한다. 또한, 상기 알고리즘이 라이브러리를 처리하는 제약들에 의존한다면, 데이터 세트를 학습하는 시간은 비교적 느리다. 하지만, 상기 알고리즘 (30)을 수행하는 데 사용된 적당한 코드 (code) 및/또는 하드웨어는 1초 내에 입력 벡터를 학습할 것이다. 또한, 상기 데이터 세트는 그것의 단일 패스로 학습될 수 있다. 이것은, NN이 상기 데이터 세트를 언젠가 학습할 것인지가 드러나지 않는 역전파와 대조된다.

또한, 훈련 동안 학습된 규칙들은 매우 이해가능했다는 것을 볼 수 있었다. 반면, 역전파와 같은 수치 알고리즘으로 훈련된 NN에 부호화된 규칙들은 거의 완전히 이해불가능하다.

따라서, 본 발명은 피드-포워드 NN의 사용과 연관된 많은 이점들을 제공한다. 주요 이점들은 다음과 같이 요약될 수 있다: (a) 뉴런, 바람직하게는 LTG를 훈련시키는 신규한 방법; (b) 신규한 LTG 훈련 방법을 기초로 피드-포워드 NN을 훈련시키는 알고리즘 (30), 즉: (i) 데이터 세트를 학습하기 위해 필요한 대로 LTG를 동적으로 할당; (ii) 단일 패스로 학습; 및 (iii) 훈련 동안 학습된 규칙이 그 결과로 생긴 NN으로부터 쉽게 읽히도록 결정하기 위한 간단한 방법 (150); 및 (c) 상기 LTG가 학습한 것을 분석하는 간단한 방법 (130).

상기 신규한 LTG 훈련 방법은 각각의 LTG의 가중치와 임계치 사이의 관계를 찾는다. 이를 통해, LTG가 입력을 정확히 학습하고 회상한다. 즉, 종래의 뉴런 훈련 방법들이 생산하길 희망하는 근삿값 (approximate value) 대신, 상기 입력이 정확히 재생산될 수 있다.

본 발명에 따른 LTG 훈련 방법은, 상기 LTG를 활성화시키고, LTG로의 입력들 사이의 관계를 체적 면으로 부호화하는 각각의 LTG의 가중치-공간에서 체적을 찾는다.

상기 방법은, LTG가 입력 벡터를 학습하거나 학습할 수 있는지, 즉 입력 벡터를 분류하는 방법을 아는지 결정하기 위해 조사받도록 한다. 이 테스트는, NN에 LTG를 할당하는 것이 필요할 때를 결정하는 데 쉬운 방법을 제공하다.

상기 방법은, LTG가 종래의 방법으로 훈련된 뉴런들이 수행하는 모든 기능들, 예를 들면 이전에 학습된 입력을 회상하고 일반화하는 것을 수행하도록 한다.

본 발명에 따라 뉴런, 바람직하게는 LTG를 훈련시키는 신규한 훈련 방법의 주요 애플리케이션은, 데이터 세트를 학습하기 위해 NN에 필요한 대로 뉴런을 할당하는 DR 훈련 알고리즘 (30)의 개발이다. 이것은 NN 분야에 있어 상당한 공헌이다.

이러한 피드-포워드 NN 훈련 방법은, NN에 너무 많거나 너무 적은 뉴런을 가질 수 있는 고정된-크기의 NN 문제를 해결한다.

본 발명의 DR 훈련 알고리즘 (30)의 가장 중요한 특징 중 하나는, 단일 패스로 데이터 세트를 학습하는 그것의 능력이다. 이것은 잠재적으로 급격한 훈련 시간의 문제를 제거함에 따라, NN 분야에 대한 주요 공헌이다. 입력이 학습되거나 학습될 수 있는지를 결정하기 위해, 상기 LTG 조사에 필요한, 소프트웨어를 처리하는 제약들의 속도에 따라 훈련 시간이 다르며, 그것은 NN이 결정적 (deterministic) 시간 내에 학습할 것을 의미한다.

또한, 훈련에 앞서 데이터를 적당한 포맷으로 변환시키는 유용한 방법이 제공되는데, 이 방법은 NN의 훈련 시간을 개선하는 데 이용될 수 있다. 마찬가지로, 사전-분류 데이터가 NN에 의해 훈련되도록 하는 유용한 방법이 제공되는데, 이 방법은 데이터 분류 능률을 향상시키는 데 이용될 수 있다. 이러한 방법들은 모든 NN 훈련 알고리즘에 유용한 것으로 여겨진다.

본 발명의 또 다른 주요 이점은, 피드-포워드 NN의 작동, 특히 훈련 과정 동안 학습된 규칙들에 대한 통찰 (insight)을 제공하는 것이다. 상기 훈련 방법이 상관적임 (relational)에 따라, 그것이 입력 사이의 관계들을 찾는 것을 의미하고, 이러한 관계들은, 상기 LTG를 활성화시키는 체적의 가중치-공간의 영역 면으로 저장된다. 하나의 유용한 방법 (150)이 제공되는데, 이 방법은 MAV를 찾아 상기 관계들이 회복되도록 하고, 종래의 민감도 분석을 수행하는 데 사용될 수 있다. 또한, LTG를 층에 연결시키기 위해 사용된 논리적 관계들은 NN으로부터 직접적으로 읽힐 수 있다.

피드-포워드 NN에 대한 종래의 훈련 방법은, 훈련 동안 학습된 규칙들을, 상기 데이터 세트에 대한 많은 정보가 손실된 단일 숫자 값으로 압축한다. 종래의 훈련 방법으로부터, 상기 숫자 값이 그것이 나타내고자 하는 가능한 최고의 평균을 얼마나 정확히 나타내는지를 결정하는 것은 불가능하다.

본 발명의 DR 훈련 알고리즘 (30)은, 모든 입력 벡터들을 제약들로 변환시키고, 상기 제약들 내에 포함된 관계들을, 상기 LTG를 활성화하는 가중치-공간의 체적 면으로 저장하는 것이 바람직하다. 이것은 모든 입력이 회상되도록 하고, 본 발명의 또 다른 양태에 따라 MAV를 결정하는 방법 (150)을 사용하여, 제약 세트를 최소의 제약들로 줄일 수 있는 방법을 제공한다. LTG의 MAV를 찾음으로써, 상기 LTG의 제약 세트로부터 제약들이 제거될 때 어떠한 정보도 손실되지 않는다.

상기 MAV를 찾는 방법 (150)은 NN에 한정되지 않는다. 상기 MAV를 찾는 방법은 또한, 최적화에 사용된 CSP 및 운영 연구 유형 문제와 같은 제약들의 시스템을 사용하는 다른 분야에 유용한 것으로 여겨진다.

수행된 실험은, 훈련될 NN에 있는 가중치들보다 더 많은 입력 벡터들이 NN을 훈련시키기 위해 반드시 필요한 것은 아니라는 것을 보여준다. 이는, 각각의 입력 벡터가 NN에 있는 각각의 가중치를 훈련시키기 때문이다. DR 학습은, 입력 벡터로 하여금 LTG가 NN에 추가되는 것을 쉽게 확인하기 위해 간단한 테스트를 제공한다. 항상 가득 찬 데이터 세트로 훈련시킬 필요는 없다.

앞서, NN이 일반화에 실패하는 잠재적 원인을 논의한 부분에서, NN이 불충분하게 훈련되어, 그 결과 보이지 않는 입력 벡터의 출력을 알지 못한다는 것을 언급하였다. 반대로, 본 발명의 또 다른 양태에 따라, 방법 (130)이 제공되는데, 이 방법은, NN이 보이지 않는 입력 벡터에 대한 출력에 대해 아는지, 그리고 미지의 입력 벡터를 분명히 확인할 수 있는지를 결정하는 데 사용될 수 있다. 따라서, NN은, 추가 훈련이 필요한 입력 벡터를 확인할 수 있다.

입력 벡터가 드러나는지 드러나지 않는지 결정하는 방법 (130)은 NN에 한정되지 않는다. 또한 입력 벡터를 분류하는 방법은, 예를 들어 DNA와 같은 데이터의 문자열 분석과 같은 제약들의 시스템을 사용하는 다른 분야에 유용한 것으로 여겨진다. 마찬가지로, 입력 벡터를 분류하는 방법은 CSP 및 운영 연구 애플리케이션에 또한 사용될 수 있다.

이상 설명한 바와 같이, 본 발명은 상술한 특정 실시예에 한정되지 않고, 본 발명의 광범위한 범위 및 요지를 벗어남 없이, 당업자에게 손쉽게 이용가능한 다양한 변형의 실시가 가능하고, 그와 같은 변경은 특허청구 범위 내에 있는 것으로 이해될 것이다.