KR20030009682A - 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한신경망 알고리즘 구현 방법 - Google Patents
가산기 기반 분산 연산의 가산 공유 정보 추출을 위한신경망 알고리즘 구현 방법 Download PDFInfo
- Publication number
- KR20030009682A KR20030009682A KR1020010044241A KR20010044241A KR20030009682A KR 20030009682 A KR20030009682 A KR 20030009682A KR 1020010044241 A KR1020010044241 A KR 1020010044241A KR 20010044241 A KR20010044241 A KR 20010044241A KR 20030009682 A KR20030009682 A KR 20030009682A
- Authority
- KR
- South Korea
- Prior art keywords
- adder
- information
- shared
- graph
- addition
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 20
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 17
- 239000000654 additive Substances 0.000 claims description 3
- 230000000996 additive effect Effects 0.000 claims description 3
- 238000000605 extraction Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 14
- 238000004364 calculation method Methods 0.000 description 10
- 239000000284 extract Substances 0.000 description 8
- 238000004088 simulation Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 3
- 239000006185 dispersion Substances 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/082—Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/042—Knowledge-based neural networks; Logical representations of neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
본 발명에 따른 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한 신경망 알고리즘 구현 방법은 주어진 계수의 비트별 공유 정보를 기초로 서로 다른 계수 패턴과의 공유 개수를 표현해 주는 그래프를 생성하는 단계: 상기 그래프에 공유 정보가 있는가 판단하는 단계; 상기 판단결과 공유 정보가 있을 경우 그래프의 공유정보에서 볼츠만 머신을 이용하여 최적화된 정보를 추출하고, 추출된 정보를 기초로 가산 네트워크를 구성하는 단계; 공유 정보로부터 가산 네트워크가 구성되면 다른 공유 정보 존재 여부를 확인하기 위하여 공유 묶음에 참가한 비트 정보를 제외시키는 단계; 상기 각 단계를 반복하여 공유 묶음에 참가한 비트 정보를 제외시킨 비트 별 고유정보 그래프에서 공유 정보가 없을 경우 제거되지 않은 나머지 비트 정보를 이용하여 가산 네트워크를 구성하는 단계를 포함하는 것을 특징으로 한다.
이 같은 본 발명에 의하면, 내적 연산을 위한 분산 연산 구조에서 가산 네트워크 구현시, 신경망 최적화 알고리즘의 하나인 볼츠만 머신(Boltzman machines)을 이용하여 최적의 공유항을 추출하고, 추출된 공유항을 이용하여 최소의 가산 네트워크를 구성할 수 있도록 함에 있다.
Description
본 발명은 가산기 기반 분산 연산 방법을 이용한 하드웨어 구현함에 있어서, 특히 가산 네트워크 구현에 필요한 가산 공유 정보 추출 절차를 볼츠만 머신을 이용하여 가산기 공유항을 추출하고, 추출된 공유항을 신경망 알고리즘을 이용하여 최적화 공유항을 추출함으로써, 최소의 가산 네트워크를 구성할 수 있도록 한 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한 신경망 알고리즘 구현 방법에 관한 것이다.
일반적으로, 휴대용 멀티미디어 디바이스에 사용되는 디지털 신호 처리 프로세서(DSP : Digital Signal Processing) 알고리즘들은 계산상의 복잡성 때문에 효율적인 하드웨어 구조가 필수적이다. 특히, DCT(Discrete Cosine Transform)나 DFT(Discrete Fourier Transform)와 같은 직교변환이나 FIR(Finite-length Impulse Response), 필터(filter) 처리에서는 내적 연산(inner product)을 어떠한 구조로 구현하느냐에 따라서 전체 시스템의 성능 및 하드웨어 크기가 좌우된다. 분산 연산(DA: Distributed Arithmetic)은 이러한 내적을 계산하는데 승산기나 MAC(Multiply Accumulator)를 사용하는 것보다 소비전력 및 크기를 효율적으로 줄일 수 있고, 고속동작이 가능한 회로 구현이 쉽기 때문에 소규모 신호처리 시스템 설계에 많이 이용되고 있다.
종래의 내적 연산을 위한 분산 연산 방식에 대하여 첨부된 도면을 참조하여설명하면 다음과 같다.
먼저, 신호 처리 분야에서 가장 일반적으로 적용되는 알고리즘은 내적 연산 방식으로, 내적 연산 방식은 특정 내적의 깊이(N)를 갖는 입력 데이터()를 고정된 계수() 값으로 각각 곱하고(C0*x0, C1*x1,..,CN-1*xN-1), 각각의 곱한 값의 합을 구하는 방식으로 출력을 얻는 것이다. 이는 수학식 1과 같이 표현된다.
여기서 Cn은 고정된 계수이고, xn은 입력, z는 출력, N은 내적의 깊이를 나타낸다. 즉, 출력(z)은 계수 데이터가 상수 값이므로 입력 데이터에만 의존한다.
상기 수학식 1의 입력 데이터를 비트 단위로 확장하기 위하여을 대입하면 수학식 2로 표현된다.
여기서, L은 입력의 자릿수, l은 입력의 자릿수 인덱스 값이다. 이러한 수학식 2의 내적 연산을 위한 하드웨어 구조는 도 1과 같다.
도 1은 내적을 계산하는데 MAC(Multiple Accumulator)(101)을 이용하고 내적의 깊이(N)를 4로 한 경우로서, 각각의 MAC(101)에는 하나의 앤드 게이트(111)와, 누산기(112) 및 쉬프트 레지스터(shift register)(113)로 각각 구성되며, 앤드 게이트(111)는 비트 단위로 확장된 입력 데이터에 고정된 계수를 각각 앤드 연산하고, 그 연산된 값을 누산기(112)에서 이전 오버 캐리 값과 가산되며, 쉬프트 레지스터(113)는 오버 캐리 값을 제외한 값을 순차적으로 출력하게 된다.
이러한 MAC(101)의 출력은 인접 비트 단위로 묶어서 계산하는 누산기(102,103)에서 각각 가산되어 출력되고, 가산된 값을 다시 누산기(103)에서 가산하여 출력함으로서, 내적 연산을 수행하는 방식이다.
그러나, 도 1은 내적을 계산하는 데 MAC(101)을 이용하게 되므로, 내적의 깊이(N) 만큼의 MAC 유닛이 필요하기 때문에 하드웨어 오버 헤드(overhead)가 커지는 문제가 있다.
도 2는 내적 연산을 위한 분산 연산 구조로서, 분산 연산은 식 2의 연산 순서를 재 정렬하면 수학식 3과 같이 표현된다.
여기서는 내적의 깊이가 4인 경우의 예로서, 이에 도시된 바와 같이, 도 1의 도면에서 MAC 유닛의 가산기 및 쉬프트 레지스터를 앤드 게이트(AND)(121) 하나로 처리함으로써, 분산 연산을 수행하게 된다. 즉, 분산 연산 블록(120)은 입력 데이터의 비트에 해당하는 각각의 앤드 게이트(121)와, 복수개의 앤드 게이트 출력을 가산하는 제 1 및 제 2누산기(122)(123)와, 누산기(122,123)의 출력을 가산하는 제 3누산기(122)를 포함하여, 내적연산을 수행하게 된다.
이와 같은 내적 연산을 위한 분산 연산 구조는 분산 연산 블록(120)을 미리 계산하여 롬에 저장하는 롬 기반(ROM-based) 분산 연산과, 계수가 0인 부분의 연산 결과는 결과값에 영향을 주지 않기 때문에 수학식 1의 계수 데이터를 비트 단위로 확장하여 가산 연산을 공유하도록 하는 MCMT(Multiple Constant Multiplier Trees)를 이용한 방식과, 입력 데이터와 계수 데이터 모두를 비트 단위로 확장하는 가산기 기반(Adder-based) 분산 연산 구조가 있다.
상기 롬 기반 분산 연산 방식은 연산 과정을 미리 계산하여 롬(ROM)에 저장하기 때문에 입력되는 데이터에 대응하는 계수 데이터의 유연성 및 입력 비트 단위의 파이프 라인 구조 설계가 가능하므로, 고속 연산 및 FPGA를 이용한 DSP 칩 구현이 가능한 반면, 내적의 깊이(N=1,2,3,...,n)에 따라 롬의 용량이 지수적으로 증가한다는 문제가 있다.
그리고, MCMT를 이용한 방식은 계수의 비트 패턴에 따라 가산항을 공유할 수 있어 계산에 필요한 가산기(Adder)를 줄일 수 있는 반면, 입력 데이터가 워드 단위이므로 가산기의 처리 시간 지연 문제와 가산기 공유항을 추출하기가 복잡하다는 문제가 있다.
이를 해결하기 위한 가산기 기반의 분산 연산 구조는 상기 롬을 가산 네트워크로 대체하고 고정된 계수 데이터와 입력 데이터 모드를 비트 단위로 확장하여 비트 패턴에 따라 가산기 공유항을 추출하여, 가산 네트워크 구성에 필요한 전가산기 및 플립플롭 개수로 구성하고자 한 것이다.
이러한 가산기 기반의 분산 연산 구조에서 상기 수학식 1을 입력 데이터와계수 데이터 모두를 모두 비트 단위로 확장하면 수학식 4와 같다.
수학식 2는 수학식 1에 계수 데이터를 비트 단위로 확장하기 위해을 대입하고, 입력 데이터를 비트 단위로 확장하기 위해을 대입하여 구해진다.
여기서, M은 계수의 자릿수, m은 계수의 자릿수 인덱스, L은 입력의 자릿수, l은 입력의 자릿수 인덱스이고, N은 내적의 깊이다.
상기의 수학식 2의 연산 관계를 비트 단위 종속 그래프(DG: Dependency Graph)로 표현하면 도 3과 같고, 도 3은 수학식 2에서 3개의 인덱스(l,m,n)에 의해 의존 그래프가 육면체 형태로 확장되며, 각 노드(131)는 비트 단위 승산이므로 하나의 앤드 게이트(132)와, 그 앤드 연산 결과 값을 더하기 위한 가산기(132)로 구성된다.
수학식 2를 계산하기 위한 블록 다이어그램은 도 4와 같다. 도 4는 내적 연산을 위한 가산기 기반 분산 연산의 구조이다. 여기서는 내적의 깊이를 4로 한 경우이다.
가산 네트워크(140)에는 계수의 자릿수 만큼의 서브 트리(141)이 구비되며, 각각의 서브 트리(141)에는 내적의 깊이(N)와 계수의 자릿수(M)의 비트 패턴에 각각 대응하는 앤드 게이트(142)와, 복수개의 앤드 게이트(141)을 출력 값을 각각 가산하는 제 1전가산기(FA: Full Adder)(143)와, 복수개의 전가산기 출력을 다시 가산하는 제 2전가산기(144) 및, 상기 전가산기(143, 144)의 오버 캐리를 다음 입력 값에 더해주기 위한 플립플롭(FF: Flip Flop)을 포함한다.
상기 서브 트리(141) 출력을 이전의 오버 캐리 값과 가산하여 출력하는 누산기(145)와, 누산기(145)의 출력을 쉬프트 출력하는 쉬프트 레지스터(146)로 구성된다.
이러한 가산 네트워크(140)는 M개의 서브 트리(141)를 갖고, 각 서브 트리(141)의 내부에는 N*L개의 앤드 게이트(142)가 필요하며, 또 이들을 값을 연산하기 위한 전가산기(FA)로 구현되는데, 계수 비트가 0인 부분의 가산 항(예컨대, 0*1, 1*0, 0*0)을 줄이고, 계수 비트의 패턴이 같은 곳의 가산을 공유하게 함으로써, 구현에 필요한 앤드게이트 및 전가산기의 수를 줄일 수 있다.
즉, 계수 비트가 0인 부분은 서브 트리(141)의 출력값에 영향을 주지 않기 때문에 이에 해당하는 앤드게이트(142), 전가산기(FA)(143,144) 및 플립플롭(FF)을 소거할 수 있고, 같은 패턴을 가진 계수들 사이에는 공통의 가산기를 사용하여 출력 값을 공유할 수 있어 서브 트리 구현에 필요한 전가산기 및 플립플롭의 개수를 줄일 수 있다.
이를 위해서, 계수 비트 패턴에 따라 최대로 가산기의 공유항을 추출하여 최소의 전가산기와 플립플롭으로 가산 네트워크를 구성하게 되는데, 최적의 가산 네트워크를 설계하기 위해서는 직접 반복적인 학습을 수행하여 공유항 정보를 추출하게 된다.
도 5는 임의의 계수 데이터(N=4, M=12)에 대하여 가산 공유 정보를 사용자가 직접 추출하여 가산 네트워크를 구성하는 도면이다.
예컨대, 내적의 깊이와 계수의 자릿수 인덱스(m) 값이 비트열(0~7)은 연산 순서를 달리하기 때문에, 공유항(CO,C1)(C2,C3)를 공통의 가산기를 사용하여 비트 패턴 X0+X1은 2개의 공유항을 갖고 X2+X3은 2개의 공유항을 추출할 수 있다. 이러한 방식으로 비트열 및 내적의 깊이에 따라서 비트 위치가 다르고 같은 패턴을 가지는 계수(Co~Cn-1)들 사이에는 공통의 가산기를 사용하여 출력 값을 공유할 수 있다. 즉, 공유항을 비트 패턴에 따라 다시 (C0,C2)와 (C1,C3), (C1,C2)와 (C0,C3)로 묶을 수 있다.
여기서, 계수 비트 패턴(C0,C1,C2,C3,...,Cn-1)에 따라 묶을 수 있는 공유항의 개수가 달라지기 때문에, 최대로 가산기 공유항을 추출하여 최소의 전가산기(FA) 및 플립플롭(FF)으로 이루어진 가산 네트워크를 구성해야 한다.
그러나, 도 6의 (a)와 같이 각 단계에서 "가산기 공유항에 속한 노드는 같은 단계의 다른 공유 항에 포함될 수 없다"는 설계 조건을 만족하지 않는 경우이고, (b)는 만족하는 경우이다. 도 6의 (a)와 같이 서로 중복된 두 개의 공유항을 갖게 되면 세 개의 전가산기(FA1,FA2,FA3)가 필요한데, 도 6의 (b)와 같이 공유항을 하나로 하여 두 개의 전가산기(FA1,FA3)로 구성하는 것이 바람직하다. 이로 인해 전체 가산 네트워크 구성시 전가산기(FA)와 플립플롭(FF)의 수가 달리지게 된다.
상기와 같이 표현된 정보를 기반으로 발생할 수 있는 경우들 중에서, "각 단계에서 가산기 공유항에 속한 노드는 같은 단계의 다른 공유항에 포함될 수 없다는 설계 조건"을 만족하는 경우의 수에 대한 복잡도를 고려해 보면, N개의 계수 데이터 중에서 가산기 입력으로 두 개를 선택(엣지)할 수 잇는 경우의 수를 E라 하면, 수학식 5와 같이 정의된다. 또한 두 개를 선택할 수 있는 경우의 수(E) 중에서 최대로 구성될 수 있는 가산기의 수(즉, 가산기 공유 묶음 수)를 S라 하면 이는 수학식 6과 같이 정의된다.
결국 가산기의 입력으로 두 개를 선택할 수 있는 경우의 수 중에서 S개를 순서에 상관없이 선택할 수 있는 경우의 수(SB)는 조합문제이므로, 수학식 7과 같이 정의된다.
도 7은 N과 E 및 SB의 관계를 나타낸 것으로, 내적의 깊이가 커짐에 따라 SB는 지수적으로 증가하므로, 이들 중 설계 조건을 모두 만족하는 경우를 설계자가 직접 추출하여 찾는 것은 매우 어렵다. 결국, 이는 NP-완전문제(Non_deterministic polynomial time complete problem)에 해당한다.
본 발명은 상기한 종래의 문제점을 해결하기 위해 안출된 것으로서, 내적 연산을 위한 분산 연산 구조에서 가산 네트워크 구현시, 신경망 최적화 알고리즘의 하나인 볼츠만 머신(Boltzman machines)을 이용하여 최적의 공유항을 추출할 수 있도록 한 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한 신경망 알고리즘 구현 방법을 제공함에 그 목적이 있다.
최적의 가산 네트워크를 위해, 계수 데이터로부터 공유항을 비트패턴에 따라 그래프로 표현하고, 표현된 그래프로부터 할성화되는 점에 해당하는 두 노드가 연결되는 엣지의 웨이트 합이 최대이고, 최대 엣지의 웨이트 합이 둘 이상일 때 결합 엣지의 웨이트가 0을 포함한 부분을 선택한 노드들을 행렬식으로 표현하여 공유항을 중복되지 않게 반복하면서 추출하고, 추출된 공유항으로 가산 네트워크로 구성할 수 있도록 한 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한 신경망 알고리즘 구현 방법을 제공함에 그 목적이 있다.
더블어, 한 행과 한 열에는 반드시 하나의 점만 활성화시키고, 전체 활성화 되는 점은 log2N개로 하고, 대각선의 끝점은 반드시 활성화 될 수 없다는 전제 조건을 갖도록 한 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한 신경망 알고리즘 구현 방법을 제공함에 있다.
다른 목적은 각 동작 조건에 따라 신경망의 에너지 수식을 구하고, 구해진수식을 기반으로 볼츠만 머신의 동작 규칙에 따라 동작시키면 행렬식은 최적 상태로 수렴하게 되므로, 이때의 정보를 기반으로 가산 네트워크를 구성할 수 있도록 한 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한 신경망 알고리즘 구현 방법을 제공함에 그 목적이 있다.
도 1은 종래 내적 연산을 위한 MAC 구조.
도 2는 종래 내적 연산을 위한 분산 연산 구조.
도 3은 종래 가산기 기반 분산 연산의 종속 그래프.
도 4는 종래 내적 연산을 위한 가산기 기반의 분산 연산 구조.
도 5는 종래 가산기 기반의 분산 연산 구조에 있어, 가산 공유 정보 추출 예를 나타낸 도면.
도 6은 종래 가산기 기반의 분산 연산 구조에 있어, 가산 네트워크 구성 예를 나타낸 도면.
도 7은 종래 내적 연산을 위한 가산기 기반 연산 구조에 있어, 내적의 깊이에 따른 가산기 입력 선택 경우의 수와 임의의 개수를 선택할 수 있는 경우의 관계 그래프.
도 8은 본 발명 실시 예에 따른 가산 네트워크의 구성 절차를 나타낸 도면으로서, (a)는 계수 데이터의 예, (b)(e)는 그래프 표현 예, (c)(f)는 행렬식 표현 예, (d)(g)는 가산 네트워크 구성 예를 각각 나타낸 도면.
도 9는 본 발명 실시 예에서, 가산 네트워크 구성 절차의 마지막 공유되지 않는 나머지 1의 정보로 가산 네트워크 구성예를 나타낸 도면.
도 10은 본 발명 실시 예에 따른 내적 연산을 위한 가산 네트워크의 진행 수순을 나타낸 플로우 챠트.
도 11은 본 발명 실시 예에서, 내적 연산을 위한 가산 네트워크의 시뮬레이션 제 1단계로서, 그래프 표현 예를 나타낸 도면.
도 12는 본 발명 실시 예에서, 내적 연산을 위한 가산 네트워크의 시뮬레이션 제 2단계로서, 최적화 표현 예를 나타낸 도면.
도 13은 본 발명 실시 예에서, 내적 연산을 위한 가산 네트워크의 시뮬레이션 제 3단계로서, 남아있는 가산 공유 정보를 다시 최적화하기 위한 도면.
도 14는 본 발명 도 11 및 도 13으로부터 시뮬레이션을 통해 추출한 가산 네트워크의 구성 예를 나타낸 도면.
<도면의 주요 부분에 대한 부호의 설명>
101...MAC
102~104,112,122~125,145...누산기
111,121,142...앤드 게이트
113,126,132,146...쉬프트 레지스터
131...노드133...가산기
140...분산 연산 블록141...서브 트리
143,144...전가산기(FA)FF...플립플롭
상기한 목적 달성을 위한, 본 발명에 따른 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한 신경망 알고리즘 구현 방법은,
(a) 주어진 계수의 비트별 공유 정보를 기초로 서로 다른 계수 패턴과의 공유 개수를 표현해 주는 그래프를 생성하는 단계:
(b) 상기 그래프에 공유 정보가 있는가 판단하는 단계;
(c) 상기 판단결과 공유 정보가 있을 경우 그래프의 공유정보에서 볼츠만 머신을 이용하여 최적화된 정보를 추출하고, 추출된 정보를 기초로 가산 네트워크를 구성하는 단계;
(d) 공유 정보로부터 가산 네트워크가 구성되면 다른 공유 정보 존재 여부를 확인하기 위하여 공유 묶음에 참가한 비트 정보를 제외시키는 단계;
상기 (a)~(d) 단계를 반복하여 공유 묶음에 참가한 비트 정보를 제외시킨 비트 별 고유정보 그래프에서 공유 정보가 없을 경우 제거되지 않은 나머지 비트 정보를 이용하여 가산 네트워크를 구성하는 단계를 포함하는 것을 특징으로 한다.
바람직하게, 상기 그래프 상에는 각각의 계수 데이터를 나타내는 노드와, 계수 데이터 사이에 가산기를 공유할 수 있는 값을 나타내는 엣지의 웨이트를 나타내는 것을 특징으로 한다.
바람직하게는, 상기 그래프 상에 나타내는 가산 공유 정보의 출력을 2차원 행렬식에 활성화된 부분의 출력과 활성화되지 않는 부분의 출력을 소정의 표현 방식으로 구분하여 표현해 주는 것을 특징으로 한다.
그리고, 상기 행렬식이 최적의 상태를 갖기 위한 필요 충분 조건으로는,
한 행과 한 열에는 반드시 하나의 점만 활성화되어야 하며, 전체 활성화되는 점은 log2N개이고, 대각선 끝점은 반드시 활성화 될 수 없으며, 활성화되는 점에 해당하는 두 노드가 연결되는 엣지의 웨이트 합이 최대가 되어야 하고, 상기의 모든 동작 조건이 만족하는 경우가 둘 이상일 때 결합 엣지의 웨이트가 0을 포함한 부분이 활성화되어야 하는 동작 조건을 갖고, 이를 모두 만족하는 최종 출력이 결정되도록 하는 것을 특징으로 한다.
이하 첨부된 도면을 참조하여 본 발명을 설명하면 다음과 같다.
도 8은 본 발명 실시 예에 따른 가산 네트워크의 구성 절차를 나타낸 도면으로서, (a)는 계수 데이터의 예, (b)(e)는 그래프 표현 예, (c)(f)는 행렬식 표현 예, (d)(g)는 가산 네트워크 구성 예를 각각 나타낸 도면이고, 도 9는 본 발명 실시 예에서, 가산 네트워크 구성 절차의 마지막 공유되지 않는 나머지 1의 정보로 가산 네트워크 구성예를 나타낸 도면이며, 도 10은 본 발명 실시 예에 따른 내적 연산을 위한 가산 네트워크의 진행 수순을 나타낸 플로우 챠트이고, 도 11 내지 도 13은 본 발명의 내적 연산을 위한 가산 네트워크의 시뮬레이션 절차를 보여준 도면이고, 도 14는 본 발명 도 11 내지 도 13으로부터 시뮬레이션을 통해 추출한 가산 네트워크의 구성 예를 나타낸 도면이다.
도 8a는 N=4, M=8일 때의 계수 비트 예이고, 계수 비트의 패턴으로부터 공유 묶음 관계 그래프를 도 8b에 나타내었다. 여기서, 그래프는 "각 단계에서 가산기 공유항에 속한 노드는 같은 단계의 다른 공유항에 포함될 수 없다"는 전제조건을 만족해야만 한다.
그러므로, 도 8의 (a)의 계수 비트 패턴에 따른 그래프 관계는, 계수 비트의 관계 공유항 (C0,C1)= 2개, (C0, C2)= 3개, (C0, C3)= 4개, (C1, C2)= 3개, (C1, C3)= 2개, (C2, C3)= 2개이다.
이러한 가산기 공유항 관계 그래프에서, 도 8의 (c)와 같이 2차원 행렬식으로 표현하면, 양방향 그래프이므로 행렬식은 대각선을 기준으로 대칭된다. 즉, (C0, C3)와 (C1, C2)이 가산기 공유항으로 추출되었을 때의 행렬식 표현과 신경망의 출력 상태이다.
이때, 최적의 상태를 출력하기 위해서는 도 8의 (c)와 같은 행렬 표현 방식이 5가지의 동작 조건에 맞도록 동작해야 한다.
최적의 가산 네트워크를 위한 동작 조건은,
(ⅰ) 한 행과 한 열에는 반드시 하나의 점만 활성화 되어야 한다.
ⅱ) 전체 활성화되는 점은 log2N개 이다.
ⅲ) 대각선 끝점은 반드시 활성화 될 수 없다.
ⅳ) 활성되는 점에 해당하는 두 노드가 연결되는 엣지의 웨이트 합이 최대가 되어야 한다.
ⅴ) 상기 (ⅰ)~(ⅳ)의 모든 동작 조건이 만족하는 경우가 둘 이상일 때 결합 엣지의 웨이트가 0을 포함한 부분이 활성화되어야 한다.
여기서, 노드는 각각의 계수 데이터를 나타내며, 엣지(edge)는 계수 데이터의 비트 단위로 가산 고유 관계 여부를 나타내며, 엣지의 웨이트는 해당 계수 데이터 사이에 가산을 공유할 수 있는 수를 나타낸다.
상기에서, 동작 조건 (ⅰ)과 동작 조건 (ⅱ)는 각 단계(C0, C1, C2,...,Cn-1)에서 가산기 공유항에 속한 노드는 같은 단계의 다른 공유항에 중복되어 포함될 수 없다는 설계 조건에 부합되고, 동작 조건 (ⅲ)은 자신끼리(예컨대, (C0,C0),..., (C3,C3) 등)의 가산기 공유항이 설정될 수 없기 때문에 설정한 것이며, 동작 조건 (ⅳ)와 동작 조건 (ⅴ)은 각 단계에서 가산기 공유항에 속한 노드의 엣지 합이 최대가 되어야 최소 전가산기 및 플립플립을 구성할 수 있으며, 상기 최대의 엣지 합의 경우 수가 둘 이상일 때 엣지가 0인 두 노드가 선택되도록 하기 위한 것이다.
도 8의 (c)는 도 8의 (b)로부터 2차원 행렬식으로 표현하되, 점이 활성화된 부분의 출력을 1, 비 활성화된 부분의 출력을 0으로 표현한 것으로, 이는 한 행과 한 열에서 하나의 점만 활성화시키고, 대각선 점은 활성화될 수 없고, 두 노드가 연결되는 엣지의 웨이트 합이 최대가 되는 점은 (C0, C3)와 (C1, C2)는 7개로 합이최대가 되므로 두 개의 노드를 선택할 수 있다. 여기서, (C0, C2)와 (C0, C3) 도 7개이지만 한 행과 한 열에 활성화되는 점이 2개이므로, 설정할 수 없다.
도 8의 (d)는 상기와 같이 볼츠만 머신을 이용하여 가산기 공유항 정보를 추출하면, 추출된 가산기 공유항 정보에 따라 가산 네트워크를 구성하는 것으로, (X0,X3),(X1,X2)은 각각 하나의 전가산기(FA1,FA2) 및 플립플롭(FF)으로 계수 비트 패턴이 같은 곳의 가산 연산을 분산 연산하게 된다.
이후, 일차적으로 가산기 공유항 정보를 추출하여 가산 네트워크가 구성되면, 다른 가산기 공유항 정보를 찾기 위해 추출한 정보에 참여한 1을 모두 제거한 후, 계수 데이터의 2진수 표현으로부터 다시 생성한 그래프 정보를 기반으로 공유항이 있는 지를 확인하게 된다.
그러므로, 도 8의 (e)에 도시된 바와 같이 추출된 공유항은 (CO,C2)=1개 이므로, 이를 행렬식으로 도 8의 (f)와 같이 표현한 후, 도 8의 (g)와 같이 상기 구성된 가산 네트워크에 새로운 전가산기(FA3) 및 플립플롭(FF)으로 구성해 준다.
그리고, 마지막으로 공유되지 않은 남은 1의 값들에 대한 가산 네트워크를 구성해 주면 도 9의 (a)(b)와 같다.
상세하게 설명하면, 계수의 자릿수 인덱스 m=0에서는 두 개의 전가산기(FA1,FA2)가 구성되므로, 이들의 출력을 가산하기 위한 가산기(FA4)가 구비되며, 계수의 자릿수 인덱스 m= 1에서는 (X0,X3)의 전가산기(FA1)의 출력과 C1=1의값이 새롭게 구성된 가산기(FA5)에서 가산되어 출력된다. X2의 C3=1의 값은 그데로 출력되며,X6의 C2=1의 값은 상기 전가산기(FA1)의 출력과 가산하기 위한 전가산기(FA6)가 구성된다.
한편, 각 동작 조건에 대한 신경망 에너지 수학식 9~13은 하기에 기술하였다.
여기서, 상수 부분인 4(log2N)2은 의미가 없으므로 제거하면 수학식 10a와 같다.
여기서 A,B,C,D,E,F는 에너지 상수로서 에너지 값(곡선)의 강도 조절을 위한 값이고, Vx,i는 행렬식의 행 노드, Vy,j는 열 노드를 나타내기 위한 인덱스이다.는 x=y(활성화)이면 1, x≠y(비활성화)이면 0을 출력하고, S(x,y)는 x와 y를 연결하는 엣지의 웨이트를 나타낸다. 그리고, 그리고 Vxy는 행렬(x,y)의 출력 값을 나타낸다. 여기서 S는 엣지 웨이트의 합이다.
행렬 표현방식에 대한 전체 에너지 수식은 수학식 14와 같이 주어진다.
여기서 T와 I는 각각 신경망의 결합계수(connection weight)와 임계값(offset value)이다.
최적의 가산기 공유항 묶음관계를 설정하기 위한 총 에너지는 E1+E2+ E3+ E4+ E5이고, 이 값이 전체 에너지에 해당하므로, 수학식 14와 같이 T와 I는 수학식15 와 수학식 16과 같이 나타낼 수 있다.
수학식 15와 수학식 16에 의해 설정된 T와 I를 볼츠만 동작 규칙에 적용하면 볼츠만 머신은 최소 에너지 상태로 수렴하게 되고, 특정한 상태를 출력하게 된다. 출력된 정보는 가산 네트워크를 최적으로 구성할 수 있는 가산기 공유항 정보를 나타낸다.
도 10을 참조하여, 본 발명 실시 예에 따른 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한 신경망 알고리즘 구현 방법을 설명하면 다음과 같다.
주어진 계수의 비트별 공유 정보를 기초로 그래프를 생성하고(S111), 생성된 그래프로부터 공유 정보가 있는가를 확인한 후(S112), 공유 정보가 있을 경우 그래프에서 볼츠만 머신을 이용하여 최적화된 정보를 추출하고(S113), 추출된 정보를 기초로 가산 네트워크를 구성한다(S114).
그리고, 다른 공유 정보 존재 여부를 다시 확인하기 위하여 공유 묶음에 참가한 1을 제외시킨 후, 상기 단계 S111부터 단계 S114 까지 반복하여 동작시켜 공유 정보에 따른 가산 네트워크를 구성한다.
그리고, 단계 S111에서 생성된 그래프의 공유 정보 유무 확인결과(S112), 공유 정보가 없을 경우 제거되지 않은 나머지 1의 정보를 이용하여 가산 네트워크를 구성함으로서, 효율적인 가산 네트워크를 구성할 수 있다(S116).
한편, 도 11 및 도 13은 임의의 계수 데이터를 입력시키면 자동으로 최적의 가산 공유 정보를 추출하도록 구성하기 위해서, N=4, M=15인 임의의 계수 데이터에 대하여 최적의 가산 공유 정보를 추출하는 과정을 보면 다음과 같다.
도 11은 시뮬레이션 단계을 나타낸 것으로, 계수 데이터를 입력하여 2진수 표현 및 그래프 표현 출력을 얻기 위하여 그래프 표현(Graph 표현) 버튼을 클릭하면 하단부에 공유관계를 관계한 그래프 및 공유 개수가 나타나며, 이때의 네트워크 에너지는 0이다.
그리고, 도 12는 도 11에서 그래프로 표현되면 최적화 버튼을 클릭하면 측면부에 최적화 노드가 행렬식으로 표현되며, 이로부터 공유 정보(A-D행과 B-C행)가 나타난다. 이는 수학식 7의 에너지 수식을 바탕으로 동작시킨 출력 화면으로 최적의 공유 정보 와 이때의 네트워크 에너지(-1024)가 출력되며 도 14와 같은 가산 네트워크를 구성할 수 있다.
도 13은 상기 도 11 및 도 12를 통해서 가산기 공유항을 1차로 추출하면 그 추출된 공유 정보를 제거한 후 최적화 버튼을 다시 클릭함으로써, 남아있는 공유 정보(A-C행)를 추출한 화면으로 표현할 수 있고 도 14와 같은 가산 네트워크를 구성하게 된다.
이러한 방식을 통해 임의의 계수 데이터를 그래프 표현을 선택 및 최적화 버튼을 단계별로 활성화된 노드의 중복은 피하고 반복함으로써, 최적의 가산 공유 정보를 모두 찾을 수 있다.
그리고, 적절한 에너지 상수 값(즉 계수값=A,B,C,D)을 조정하면 수렴율을 높일 수 있어, 볼츠만 머신이 항상 최저의 상태에 수렴하도록 조정할 수 있다. 또한 최적화 정도는 네트워크 에너지 값을 근거로 판별할 수 있다.
이상에서 설명한 바와 같이, 본 발명은 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한 신경망 알고리즘 구현 방법에 의하면, 가산기 기반 분산 연산의 핵심 블록인 가산 네트워크 설계를 최적화시킬 수 있는 효과가 있다.
그리고, 비트 패턴에 따라 동일한 계수 데이터에 대해서 다양한 형태를 가질 수 있으므로, 최적의 가산 공유 정보의 추출 여부가 구현에 필요한 전가산기 및 플립플롭의 수를 결정하여 가산 네트워크를 구성할 수 있는 효과가 있다.
그리고, 다양한 내적 연산에 적용 가능하도록 가산 네트워크의 구성 흐름을 체계화시키고, DCT, FIR 필터, DFT, 웨이블릿 변환 등과 같은 내적 연산이 필요한 다양한 디지털 신호 프로세싱 분야에서 가산기 기반 네트워크를 이용하여 하드웨어 구현시 적용 가능한 방법으로 빠른 설계가 가능한 효과가 있다.
Claims (4)
- (a) 주어진 계수의 비트별 공유 정보를 기초로 서로 다른 계수 패턴과의 공유 개수를 표현해 주는 그래프를 생성하는 단계:(b) 상기 그래프에 공유 정보가 있는가 판단하는 단계;(c) 상기 판단결과 공유 정보가 있을 경우 그래프의 공유정보에서 볼츠만 머신을 이용하여 최적화된 정보를 추출하고, 추출된 정보를 기초로 가산 네트워크를 구성하는 단계;(d) 공유 정보로부터 가산 네트워크가 구성되면 다른 공유 정보 존재 여부를 확인하기 위하여 공유 묶음에 참가한 비트 정보를 제외시키는 단계;상기 (a)~(d) 단계를 반복하여 공유 묶음에 참가한 비트 정보를 제외시킨 비트 별 고유정보 그래프에서 공유 정보가 없을 경우 제거되지 않은 나머지 비트 정보를 이용하여 가산 네트워크를 구성하는 단계를 포함하는 것을 특징으로 하는 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한 신경망 알고리즘 구현 방법.
- 제 1항에 있어서,상기 그래프 상에는 각각의 계수 데이터를 나타내는 노드와, 계수 데이터 사이에 가산기를 공유할 수 있는 값을 나타내는 엣지의 웨이트를 나타내는 것을 특징으로 하는 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한 신경망 알고리즘 구현 방법.
- 제 1항에 있어서,상기 그래프 상에 나타내는 가산 공유 정보의 출력을 2차원 행렬식에 활성화된 부분의 출력과 활성화되지 않는 부분의 출력을 소정의 표현 방식으로 구분하여 표현해 주는 것을 특징으로 하는 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한 신경망 알고리즘 구현 방법.
- 제 3항에 있어서,상기 행렬식이 최적의 상태를 갖기 위한 필요 충분 조건으로는,한 행과 한 열에는 반드시 하나의 점만 활성화되어야 하며, 전체 활성화되는 점은 log2N개이고, 대각선 끝점은 반드시 활성화 될 수 없으며, 활성화되는 점에 해당하는 두 노드가 연결되는 엣지의 웨이트 합이 최대가 되어야 하고, 상기의 모든 동작 조건이 만족하는 경우가 둘 이상일 때 결합 엣지의 웨이트가 0을 포함한 부분이 활성화되어야 하는 동작 조건을 갖고, 이를 모두 만족하는 최종 출력이 결정되도록 하는 것을 특징으로 하는 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한 신경망 알고리즘 구현 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010044241A KR20030009682A (ko) | 2001-07-23 | 2001-07-23 | 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한신경망 알고리즘 구현 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020010044241A KR20030009682A (ko) | 2001-07-23 | 2001-07-23 | 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한신경망 알고리즘 구현 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20030009682A true KR20030009682A (ko) | 2003-02-05 |
Family
ID=27716211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020010044241A KR20030009682A (ko) | 2001-07-23 | 2001-07-23 | 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한신경망 알고리즘 구현 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20030009682A (ko) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100442434B1 (ko) * | 2002-03-07 | 2004-07-30 | 엘지전자 주식회사 | 학습된 신경망 설계를 위한 어레이 구조 연산 방법 |
CN104778497A (zh) * | 2015-05-05 | 2015-07-15 | 重庆大学 | 一种加工过程中工艺参数自学习优化的滚齿加工方法 |
KR20200000480A (ko) * | 2017-04-19 | 2020-01-02 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 처리 장치 및 처리 방법 |
KR20210133545A (ko) * | 2020-04-29 | 2021-11-08 | 한국항공대학교산학협력단 | 신경망 모델의 추론 속도 향상 장치 및 방법 |
US11450086B2 (en) | 2017-06-07 | 2022-09-20 | Samsung Electronics Co., Ltd. | Electronic device and method for controlling same |
US11663451B2 (en) | 2018-09-03 | 2023-05-30 | Samsung Electronics Co., Ltd. | Two-dimensional array-based neuromorphic processor and implementing method |
-
2001
- 2001-07-23 KR KR1020010044241A patent/KR20030009682A/ko not_active Application Discontinuation
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100442434B1 (ko) * | 2002-03-07 | 2004-07-30 | 엘지전자 주식회사 | 학습된 신경망 설계를 위한 어레이 구조 연산 방법 |
CN104778497A (zh) * | 2015-05-05 | 2015-07-15 | 重庆大学 | 一种加工过程中工艺参数自学习优化的滚齿加工方法 |
CN104778497B (zh) * | 2015-05-05 | 2017-09-08 | 重庆大学 | 一种加工过程中工艺参数自学习优化的滚齿加工方法 |
KR20200000480A (ko) * | 2017-04-19 | 2020-01-02 | 상하이 캠브리콘 인포메이션 테크놀로지 컴퍼니 리미티드 | 처리 장치 및 처리 방법 |
US11450086B2 (en) | 2017-06-07 | 2022-09-20 | Samsung Electronics Co., Ltd. | Electronic device and method for controlling same |
US11663451B2 (en) | 2018-09-03 | 2023-05-30 | Samsung Electronics Co., Ltd. | Two-dimensional array-based neuromorphic processor and implementing method |
US11868874B2 (en) | 2018-09-03 | 2024-01-09 | Samsung Electronics Co., Ltd. | Two-dimensional array-based neuromorphic processor and implementing method |
KR20210133545A (ko) * | 2020-04-29 | 2021-11-08 | 한국항공대학교산학협력단 | 신경망 모델의 추론 속도 향상 장치 및 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kang | Accelerator-aware pruning for convolutional neural networks | |
Ben-Or et al. | The complexity of elementary algebra and geometry | |
Grammaticos et al. | Discrete painlevé equations | |
Blum et al. | The mean, variance and limiting distribution of two statistics sensitive to phylogenetic tree balance | |
Solin et al. | Adaptive hp-FEM with arbitrary-level hanging nodes for Maxwell’s equations | |
Efe et al. | Products of networks with logarithmic diameter and fixed degree | |
CN108320019B (zh) | 用于深度卷积神经网络的卷积计算方法及装置 | |
Tafertshofer et al. | Factored edge-valued binary decision diagrams | |
Kaveh et al. | Comparative study of finite element nodal ordering methods | |
KR20030009682A (ko) | 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한신경망 알고리즘 구현 방법 | |
Merlet et al. | Generalizations of bounds on the index of convergence to weighted digraphs | |
US20210049496A1 (en) | Device and methods for a quantum circuit simulator | |
JP7063274B2 (ja) | 情報処理装置、ニューラルネットワークの設計方法及びプログラム | |
Manohar et al. | Asynchronous parallel prefix computation | |
Chen et al. | Graph-based evolutionary design of arithmetic circuits | |
Jankovic et al. | Decision diagram method for calculation of pruned Walsh transform | |
US11244097B1 (en) | System and method for determining hybrid-manufacturing process plans for printed circuit boards based on satisfiability modulo difference logic solver | |
CN110659014A (zh) | 乘法器及神经网络计算平台 | |
Calazans et al. | Advanced ordering and manipulation techniques for binary decision diagrams | |
Hendry | Comparator trees for winner-take-all circuits | |
Minato | VSOP (valued-sum-of-products) calculator for knowledge processing based on zero-suppressed BDDs | |
Rice et al. | Methods for calculating autocorrelation coefficients | |
WO2019208581A1 (ja) | インバーティブルロジック回路装置 | |
Barbosa et al. | Data structures for direct spanning tree representations in mutation-based evolutionary algorithms | |
Schmiedle et al. | Dynamic re-encoding during MDD minimization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |