KR102509434B1 - 피드포워드 및 피드백을 포함한 다층 퍼셉트론 모델의 계산을 위한 모델 계산 유닛 및 그 제어 장치 - Google Patents

피드포워드 및 피드백을 포함한 다층 퍼셉트론 모델의 계산을 위한 모델 계산 유닛 및 그 제어 장치 Download PDF

Info

Publication number
KR102509434B1
KR102509434B1 KR1020197009811A KR20197009811A KR102509434B1 KR 102509434 B1 KR102509434 B1 KR 102509434B1 KR 1020197009811 A KR1020197009811 A KR 1020197009811A KR 20197009811 A KR20197009811 A KR 20197009811A KR 102509434 B1 KR102509434 B1 KR 102509434B1
Authority
KR
South Korea
Prior art keywords
neuron
data memory
layer
model
memory section
Prior art date
Application number
KR1020197009811A
Other languages
English (en)
Other versions
KR20190043616A (ko
Inventor
하이너 마커트
앙드레 군토로
마틴 쉬그
Original Assignee
로베르트 보쉬 게엠베하
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 로베르트 보쉬 게엠베하 filed Critical 로베르트 보쉬 게엠베하
Publication of KR20190043616A publication Critical patent/KR20190043616A/ko
Application granted granted Critical
Publication of KR102509434B1 publication Critical patent/KR102509434B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology

Abstract

본 발명은 다층 퍼셉트론 모델의 계산을 위한 모델 계산 유닛(22)에 관한 것으로, 상기 모델 계산 유닛(22)은 하드웨어로 형성되어 고정 배선되며,
Figure 112019035031792-pct00003
- 계산 코어(18);
Figure 112019035031792-pct00004
- 메모리(12);
Figure 112019035031792-pct00005
- DMA 유닛(17);을 포함하며, DMA 유닛은, 관련 입력 변수 벡터(101)의 입력 변수들을 기반으로 각각 하나의 뉴런층을 계산하여, 각각의 결과로 도출된 출력 변수 벡터(102)의 출력 변수들을 관련 데이터 메모리 섹션(D)에 저장하도록 계산 코어(18)에 연속으로 지시하도록 형성되며, 이때 뉴런층들 중 적어도 하나와 관련된 입력 변수 벡터(101)를 위한 데이터 메모리 섹션(D)은 2개의 상이한 뉴런층의 적어도 2개의 출력 변수 벡터(102)의 데이터 메모리 섹션들(D)을 각각 적어도 부분적으로 포함한다.

Description

피드포워드 및 피드백을 포함한 다층 퍼셉트론 모델의 계산을 위한 모델 계산 유닛 및 그 제어 장치
본 발명은, 특히 다층 퍼셉트론 모델들(multilayer perceptron model)의 계산을 위한 별도의 고정 배선된(hard-wired) 모델 계산 유닛에서의 함수 모델들의 계산에 관한 것이다.
예컨대 연소 엔진들, 전기 구동 장치들, 배터리 저장 장치들 등과 같은 기술 시스템들의 제어부들의 함수들은 보통 실 시스템(real system)의 수학적 맵(mathematical map)을 나타내는 모델들로 실현된다. 그러나 물리적 모델들의 경우, 특히 관계들이 복잡한 경우, 필요한 계산 정확도가 부족하며, 현재의 계산 용량에서는 일반적으로 엔진 제어 장치를 위해 요구되는 실시간 요건들 내에서 상기 유형의 모델들을 계산하기는 쉽지 않다. 이런 경우들을 위해, 오직 검사대 등을 이용하여 획득된 훈련 데이터(training data)에 기반해서만 입력 변수들과 출력 변수 간의 관계들을 기술하는 데이터 기반 모델들을 이용하는 점이 고려된다. 특히 상호 간에 상관관계들이 존재하는 복수의 입력 변수가 적합한 방식으로 모델에서 고려되는 데이터 기반 모델들은 복잡한 관계들의 모델링에 적합하다. 또한, 데이터 기반 모델들을 이용한 모델링은 개별 입력 변수들의 부가를 통해 모델을 보충할 수 있는 가능성도 제공한다.
데이터 기반 함수 모델들은, 일반적으로, 각각의 적용분야를 위해 충분한 모델링 정확도를 달성하기 위해, 다수의 지지점(supporting point)을 기반으로 한다. 다수의 지지점으로 인해, 예컨대 가우스 프로세스 모델 또는 다층 퍼셉트론 모델과 같은 데이터 기반 함수 모델을 이용한 모델 값의 계산을 위해 높은 계산 용량이 요구된다. 그러므로 제어 장치 적용분야에서 상기 유형의 데이터 기반 함수 모델을 실시간으로 계산할 수 있도록 하기 위해, 하드웨어 구성을 기반으로 하는 모델 계산 유닛들이 제공될 수 있다.
본 발명에 따라, 청구항 제1항에 따른 다층 퍼셉트론 모델의 뉴런층을 계산하기 위한 모델 계산 유닛, 및 대등의 청구항들에 따른 제어 장치와 제어 장치의 용도가 제공된다.
또 다른 구현예들은 종속 청구항들에 명시되어 있다.
제1 양태에 따라서, 다층 퍼셉트론 모델의 계산을 위한 모델 계산 유닛이 제공되며, 모델 계산 유닛은 하드웨어로 형성되어 고정 배선되며,
- 입력 변수 벡터의 하나 또는 복수의 입력 변수에 따라 다수의 뉴런을 갖는 다층 퍼셉트론 모델의 뉴런층의 출력 변수 벡터의 하나 또는 복수의 출력 변수를 계산하도록 형성된 계산 코어;
- 각각의 뉴런층에, 입력 변수 벡터의 입력 변수들을 저장하기 위한 데이터 메모리 섹션 및 출력 변수 벡터의 출력 변수들을 저장하기 위한 데이터 메모리 섹션이 할당되어 있는 데이터 메모리 영역을 구비한 메모리;
- 상기 할당된 입력 변수 벡터의 입력 변수들을 기반으로 각각 하나의 뉴런층을 계산하여, 각각의 결과로 도출된 출력 변수 벡터의 출력 변수들을 할당된 데이터 메모리 섹션에 저장할 것을 계산 코어에 연속으로 지시하도록 형성된 DMA 유닛;을 포함하며,
뉴런층들 중 적어도 하나에 할당된 입력 변수 벡터를 위한 데이터 메모리 섹션은 2개의 상이한 뉴런층의 출력 변수 벡터들 중 적어도 2개의 출력 변수 벡터의 데이터 메모리 섹션을 각각 적어도 부분적으로 포함한다.
전술한 모델 계산 유닛은, 각각 가변 개수의 뉴런을 갖는 데이터 기반 모델의 부분으로서의 다층 퍼셉트론 모델(MLP 모델)의 복수의 뉴런층을 계산할 수 있게 하는 구성을 제공한다. 다층 퍼셉트론 모델들의 이용은, 예컨대 가우스 프로세스 모델과 같은 유사한 데이터 기반 모델들보다 더 적은 개수의 지지점들을 이용한 데이터 기반 모델링을 나타낸다.
전술한 모델 계산 유닛의 사상은, 하드웨어 구조들에서 다층 퍼셉트론 모델의 뉴런층의 계산을 위한 상기 모델 계산 유닛을 제어 장치 내의 계산 코어 내에 별도로 형성하는 점에 있다. 이런 방식으로, 함수들의 실현을 위한 실질적으로 고정 배선된 하드웨어 회로로서, 다층 퍼셉트론 모델의 하나 또는 복수의 뉴런층을 계산하고, 이때 제어 장치의 소프트웨어 제어식 마이크로프로세서에서는 매우 적은 계산 부하만을 야기할 수 있게 하는 하드웨어 회로가 제공될 수 있다. 모델 계산 유닛을 통해 제공되는 하드웨어 가속화를 통해 다층 퍼셉트론 모델이 실시간으로 계산될 수 있으며, 그럼으로써 자동차의 연소 엔진을 위한 제어 장치 적용 분야를 위해 상기 모델을 이용하는 점이 더 주의를 끈다.
하드웨어로 형성된 전술한 모델 계산 유닛은 제어 장치 내의 계산 코어 내에서 다층 퍼셉트론 모델의 복수의 뉴런층의 연속 실행되는 자동 계산을 가능하게 한다. 고정 배선 방식으로 형성된 별도의 모델 계산 유닛으로 다층 퍼셉트론 모델의 계산을 아웃소싱함으로써, 제어 장치의 마이크로프로세서에서 계산 부하를 감소시킬 수 있고, 다층 퍼셉트론 모델의 계산을 위한 마이크로프로세서와 모델 계산 유닛 간의 통신을 최대한 감소시킬 수 있으며, 이렇게 해서 모델 값의 계산을 위한 시간 비용을 최소화할 수 있다.
다층 퍼셉트론 모델을 위한 모델 값의 계산 시, 일반적으로 층별 계산들이 수행되는데, 이때 입력 변수 벡터의 입력 변수는 제1 뉴런층으로 공급되고, 제1 뉴런층의 계산을 통해 중간 출력 변수 벡터의 중간 출력 변수들이 획득되며, 이 중간 출력 변수들은 다시 퍼셉트론 모델의 한 하위 뉴런층을 위한 중간 입력 변수들로서 이용된다.
퍼셉트론 모델의 뉴런층들의 개수에 상응하게, 최종 뉴런층의 결과로서 모델 값을 획득하기 위해, 상기 계산들이 연속해서 실행된다. 이를 위해, DMA 유닛과 함께 계산 시퀀스의 제어를 수행할 수 있는 메모리 구조가 제공된다.
상이한 뉴런층들에 걸쳐서 순수 연속 계산을 포함하는 상기에 기술한 퍼셉트론 모델에 추가로, 피드백 네트워크, 다시 말하면 선행하는 뉴런층의 입력 변수 벡터의 입력 변수들 중 일부에 대해 뉴런층의 출력 변수들의 피드백을 포함하는 또 다른 퍼셉트론 모델들도 공지되어 있다. 그 결과, 뉴런들 내에 선행하는 상태들의 저장이 실현될 수 있다. 이는 하기에서 피드백 퍼셉트론 모델에서 언급된다.
또한, 바로 후행하는 하나 이상의 뉴런층에서 출력 변수들 중 일부가 고려되지 않음으로써, 뉴런층의 중간 출력 변수들 중 일부는 바로 후행하지 않는 뉴런층의 입력 변수들로서 이용되는, 다시 말해 바로 후행하는 뉴런층은 스킵(skip)하여 이용되는, 피드포워드 네트워크를 포함하는 퍼셉트론 모델들도 제공될 수 있다. 이는 하기에서 피드포워드 퍼셉트론 모델들로 지칭된다. 상기 피드포워드 퍼셉트론 모델들은 피드백 퍼셉트론 모델들과 조합되어서도 형성될 수 있다.
뉴런층의 입력 변수 벡터의 입력 변수들, 및 추가의 후행하는 뉴런층들을 위한 입력 변수 벡터의 입력 변수들을 저장하기 위한 각각의 섹션들을 포함하는 데이터 메모리 영역을 제공함으로써, 모델 계산 유닛에서 추가 복사 프로세스(copy process) 없이 모델 값의 자동 계산이 제공될 수 있다. 이 경우, 각각의 뉴런층의 출력 변수 벡터들의 출력 변수들은, 각각 바로 다음의 계산될 뉴런층의 입력 변수들을 저장하기 위한 데이터 메모리 영역의 섹션 내에 각각 저장된다. 이렇게, DMA 유닛을 통해 계산 코어 내에서 상응하는 뉴런층의 계산을 다시 활성화함으로써, 다층 퍼셉트론 모델의 기설정 개수의 뉴런층들이 자동으로 계산될 수 있다.
피드백 및/또는 피드포워드 퍼셉트론 모델들은, 해당 데이터 메모리 섹션들에 상이한 뉴런층들의 출력 변수 벡터들이 할당되고 완전히 또는 부분적으로 중첩되도록, 뉴런층의 입력 변수 벡터를 위한 데이터 메모리 섹션이 데이터 메모리 영역의 주소 영역에 포지셔닝됨으로써 실현될 수 있다. 퍼셉트론 모델의 계산을 위한 호출들 사이에 데이터 메모리 영역의 삭제 혹은 덮어쓰기가 불가능함으로써, 데이터 메모리 영역의 특정 데이터 메모리 섹션들 내에서는 퍼셉트론 모델의 뉴런층들의 선행하는 계산들의 출력 변수 벡터들이 계속 제공될 수 있으며, 입력 변수 벡터의 데이터 메모리 섹션의 포지셔닝에 따라 뉴런층의 계산을 위한 입력 변수 벡터의 부분으로서 이용될 수 있다. 그 결과, 자동으로 피드백이 달성된다.
피드포워드 퍼셉트론 모델들의 경우 뉴런층의 스킵은, 유사한 방식으로, 뉴런층의 중간 출력 변수들을 저장하기 위한 데이터 메모리 영역의 섹션을, 바로 후행하지 않는 뉴런층의 입력 변수들을 저장하기 위한 데이터 메모리 영역의 섹션과 중첩시킴으로써 실현될 수 있다.
특히, 계산의 시퀀스를 구성하며, 뉴런층들의 개수 및 각각의 뉴런층을 위한 뉴런들의 기설정 개수를 매개변수화하여 그 계산 순서를 결정할 수 있게 하는 구성 메모리 영역(configuration memory region)이 제공될 수 있다. 또한, DMA 유닛은, 뉴런층의 계산의 출력 변수들이 후행하는 뉴런층을 위한 중간 입력 변수들로서 재정의되도록, 입력 변수 벡터의 입력 변수들이 판독되어 뉴런층의 출력 변수 벡터의 출력 변수들에 기록되는 출처인 데이터 메모리 영역의 섹션을 어드레싱하게 한다. 그 결과, 뉴런층의 재계산의 자동 시작을 통해, 퍼셉트론 모델의 다층 계산의 시퀀스가 계산 코어의 메모리의 구성 메모리 영역 내에서의 적합한 매개변수화를 통해 제공될 수 있다. 이런 방식으로, 마이크로프로세서의 다층 퍼셉트론 모델의 계산 임무를 계산 코어에 부여할 수 있으며, 마이크로프로세서에 의핸 추가 개입 없이, 계산의 종료 후에 마이크로프로세서의 다층 퍼셉트론 모델의 출력 값으로서 모델 값을 호출하고 수신할 수 있다.
또한, 뉴런층들에 할당된 하나 이상의 입력 변수 벡터를 위한 데이터 메모리 섹션은 선행하는 뉴런층의 출력 변수 벡터의 데이터 메모리 섹션을 완전히 포함할 수 있다.
또한, 뉴런층들에 할당된 하나 이상의 입력 변수 벡터를 위한 데이터 메모리 섹션은 선행하는 뉴런층과 상이한, 특히 선행하거나 후행하는 뉴런층의 출력 변수 벡터의 데이터 메모리 섹션을 부분적으로 포괄하거나 포함할 수 있다.
또한, 본 발명에 따라서, 2개의 상이한 뉴런층의 2개 이상의 출력 변수 벡터의 데이터 메모리 섹션들은 데이터 메모리 영역의 주소 영역에서 서로 접경할 수 있다.
일 실시예에 따라서, 각각의 뉴런층을 위한 메모리는 각각의 구성 메모리 섹션 내에 구성 매개변수들을 저장하기 위한 구성 메모리 영역을 포함할 수 있으며, 이 경우 DMA 유닛은, 각각의 구성 메모리 섹션의 구성 매개변수들을 기반으로 각각 하나의 뉴런층을 계산하고 이를 통해 정의된 입력 변수 벡터를 계산하도록, 그리고 각각의 결과로 도출된 출력 변수 벡터를, 상응하는 구성 매개변수들을 통해 정의된, 데이터 메모리 영역의 데이터 메모리 섹션 내에 저장할 것을 계산 코어에 연속해서 지시하도록, 형성된다.
또한, DMA 유닛은, 뉴런층의 계산의 종료 후에, 다음 뉴런층을 위한 구성 매개변수들을 계산 코어로 공급하도록 형성될 수 있으며, 계산은 하나 또는 복수의 구성 매개변수에 따라 종료된다.
일 실시예에 따라서, 계산 코어는, 뉴런층의 현재 계산의 종료를 DMA 유닛으로 시그널링하도록 형성될 수 있으며, 상기 DMA 유닛은 추가 구성 메모리 섹션 내에 저장된 구성 매개변수들을 기반으로 다음 뉴런층의 계산을 시작한다.
또한, 계산 코어는, 다수의 뉴런을 갖는 다층 퍼셉트론 모델의 뉴런층에 대해, 입력 변수 벡터의 하나 또는 복수의 입력 변수와, 가중 계수들을 포함한 가중 행렬과, 각각의 뉴런에 대해 기설정된 오프셋 값에 따라, 각각의 뉴런을 위한 출력 변수를 계산하도록 형성될 수 있으며; 각각의 뉴런에 대해, 상기 뉴런 및 입력 변수에 의해 결정된 가중 계수로 가중된 입력 변수들의 값들의 합에 상기 뉴런에서 기설정된 오프셋 값이 인가되며, 그 결과가 관련 뉴런을 위한 출력 변수를 획득하기 위해 활성화 함수에 의해 변환된다.
일 실시예에 따라서, 계산 코어는 집적 모듈의 표면 영역에 형성될 수 있다.
또 다른 양태에 따라서, 하나의 마이크로프로세서와; 상기 모델 계산 유닛들 중 하나 또는 복수의 모델 계산 유닛;을 갖는 제어 장치가 제공되며, 이 경우 제어 장치는 특히 집적 회로로서 형성된다.
또 다른 양태에 따라서, 상기 제어 장치를, 자동차 내 연소 엔진 및/또는 전기 구동 장치를 구비한 엔진 시스템; 및/또는 에너지 저장 장치;를 제어하기 위한 제어 장치로서 사용하기 위한 용도가 제안된다.
이하에서 첨부된 도면들을 참조하여 실시예들이 더욱 상세하게 설명된다.
도 1은 자동차 내 엔진 시스템을 위해 이용되는 제어 장치의 개략도이다.
도 2는 제어 장치의 부분으로서의 계산 유닛의 개략도이다.
도 3은 MLP 모델의 뉴런층의 개략도이다.
도 4a 내지 4d는 가능한 활성화 함수의 그래프들이다.
도 5는 계산 코어의 구성 메모리 영역의 구성 메모리 섹션을 도시한 도면이다.
도 6a 및 6b는 구성 메모리 영역과 데이터 메모리 영역의 분할을 도시한 도면이다.
도 7은 모델 계산 유닛의 DMA 유닛의 기능의 설명을 위한 흐름도이다.
도 8은 피드백 뉴런층들 및 피드포워드 뉴런층들을 포함하는 퍼셉트론 모델의 개략도이다.
도 9는 도 8의 퍼셉트론 모델을 위한 상이한 뉴런층들의 입력 변수 벡터 및 출력 변수 벡터를 위한 데이터 메모리 섹션들의 예시적인 주소 위치들의 개략도이다.
도 1에는, 제어될 기술 시스템의 예로서, 연소 엔진(3)을 구비한 엔진 시스템(1)을 위한 제어 장치(2)의 개략도가 도시되어 있다. 제어 장치(2)는, 별도의 부품들로서 또는 집적 방식으로 칩 상의 별도된 표면 영역에 형성될 수 있는 마이크로프로세서(21) 및 모델 계산 유닛(22)을 포함한다. 특히 모델 계산 유닛(22)은, 마이크로프로세서(21)의 계산 코어로부터 구조적으로 분리될 수 있는 하드웨어 회로를 형성한다.
모델 계산 유닛(22)은 실질적으로 고정 배선되고, 그에 상응하게 마이크로프로세서(21)와 달리, 소프트웨어 코드를 실행하여 소프트웨어에 의해 기설정된 가변 함수를 실행하도록 형성된다. 달리 말하면, 모델 계산 유닛(22) 내에 프로세서가 제공되지 않음으로써, 상기 모델 계산 유닛은 소프트웨어 코드에 의해 작동될 수 없다. 기설정 모델 함수로의 포커싱을 통해, 상기 모델 계산 유닛(22)의 자원 최적화된 구현이 가능해진다. 통합 구성 방식에서는, 모델 계산 유닛(22)이 면적 최적화 방식으로 실현될 수 있고, 이는 또한 신속한 계산을 가능하게 한다.
제어 장치(2)는, 실질적으로, 연소 엔진(3) 내의 센서 시스템에 의해 검출되는 센서 신호들(S) 또는 센서 변수들, 및/또는 외부 기설정치들(V)을 처리하고, 예컨대 1 내지 100㎳의 고정 기설정 시간 간격으로 주기적으로, 또는 작동되는 연소 엔진의 크랭크샤프트 각도에 따라 각도 동기화되어, 하나 또는 복수의 상응하는 제어 변수(A)의 값을 연소 엔진(3)에 인가하기 위해 이용되며, 그럼으로써 상기 연소 엔진은 공지된 방식으로 작동될 수 있게 된다.
도 2에는, 모델 계산 유닛(22)이 더욱 상세하게 도시되어 있다. 모델 계산 유닛(22)은 상태 머신(11)(state machine); 메모리(12); 및 하나 또는 복수의 연산 블록, 예컨대 하나 또는 복수의 MAC 블록(13)(MAC: 고정 소수점 연산을 위한 Multiply-ACcumulate 또는 FMA: 부동 소수점 연산을 위한 Fused-Multiply-Add)와 활성화 함수(ACT)의 계산을 위한 활성화 함수 계산 블록(14), 및 선택적으로 가산 블록(15) 및/또는 승산 블록(16);을 포함한다. 상태 머신(11)과 하나 또는 복수의 연산 블록이 모델 계산 유닛(22)의 계산 코어(18)를 형성한다. 상태 머신(11)에 의해, 메모리(12) 내의 데이터 메모리 영역(122)(입력 변수 메모리 영역)에 저장된 입력 변수들의 값들은, 계산된 뉴런층에 할당된, 메모리(12)의 상응하는 출력 변수 메모리 영역 내에 기록되는 중간 출력 변수들 또는 출력 변수들을 획득하기 위해, 중첩 루프 계산들(nested loop calculations)을 통해 계산될 수 있다.
계산의 제어는 DMA 유닛(17)(DMA: Direct Memory Access)에 의해 수행될 수 있으며, 이때 DMA 유닛(17)은, 계산 코어의 레지스터 내에서, 그리고 각각의 뉴런층의 계산에 관련된 데이터 메모리 영역들 내에서 1회 또는 수회의 복사 과정을 수행한다.
상태 머신(11)은 다층 퍼셉트론 모델의 개별 뉴런층을 계산하도록 설계된다. 상태 머신(11)은 하기 의사 코드(pseudo-code)에 따라서 표현될 수 있다.
Figure 112019035031792-pct00001
위의 의사 코드에서,
p7: 입력 변수 벡터의 입력 변수들에 대한 최대 지수 값(index value);
p8: 현재 뉴런층의 뉴런들의 계산을 위한 최소 지수 값 또는 초깃값;
p6: 현재 뉴런층의 뉴런들에 대한 최대 지수 값;
p3: 오프셋 값;
p1, p2: 입력 변환을 위한 변수들;
p4, p5: 출력 변환을 위한 변수들.
상기 의사 코드에 의해, 계산될 층의 각각의 뉴런에 대해 하기 계산이 실행될 수 있다.
Figure 112019035031792-pct00002
이는, 도 3에 도시된 것과 같이 다층 퍼셉트론 모델의 뉴런층을 위한 계산을 나타낸다.
도 3에는, 입력 변수 벡터의 입력 변수들의 값(ut0 ... utp6-1)이 공급되는 복수의 뉴런(20)의 뉴런층이 도시되어 있다. 입력 변수들의 값은 가중 계수들(v0...p7-1.0...p6-1)로 이루어진 상응하는 기설정 가중 행렬에 의해 가중된다. 가중은 일반적으로, 할당된 가중 계수들(v0...p7-1.0...p6-1)을 곱하는 방식으로 실시된다. 가중 계수들은 일반적으로, 입력 변수 벡터의 값들에 다른 방식으로도 적용될 수 있다.
입력 변수 벡터의 가중된 값들(ut0 ... utp6-1)의 합산들에 각각 오프셋 값(O0...Op6-1)이 적용되며, 특히 가산 방식으로 적용된다. 그 결과는 기설정 활성화 함수("act")로 변환된다. 그 결과로서, 출력 변수 벡터의 상응하는 값(y0 ... yp6-1)이 획득된다. 각각의 뉴런에 대한 오프셋 값을 제공함으로써, 모델링을 위한 추가 자유도가 존재하게 된다.
제어 변수들(p6)을 결정함으로써, 계산될 뉴런층의 뉴런(20)의 개수가 설정될 수 있다. 모델 계산 유닛(22) 내에서 후속 뉴런층의 계산을 위한 입력 변수 벡터로서 뉴런층의 출력 변수 벡터의 값들(y0 ... yp6-1)을 사용함으로써, 다층 퍼셉트론 모델이 이용될 수 있으며, 그럼으로써 다층 퍼셉트론 모델의 뉴런층의 개수는, 상기 의사 코드에 따른 함수의 반복 호출을 통해, 또는 그에 상응하게 변화되는 매개변수를 이용한 모델 계산 유닛(22)의 반복 호출을 통해 실현될 수 있다.
이렇게 입력 변수 벡터의 입력 변수들 또는 출력 변수 벡터의 출력 변수들의 입력 및/또는 출력 변환은, 각각의 뉴런에 대해 기설정된 정규화 변수들(p1 및 p2; p4 및 p5)을 이용해서 수행될 수 있다. 상기 입력 변수들의 입력 변환 및/또는 출력 변환은 스킵될 수도 있다.
MLP 모델의 층별 계산은 모델 계산 유닛(22)의 슬림한 구성(slim configuration)을 가능하게 함으로써, 집적 구조에서 모델 계산 유닛의 면적 수요가 적어진다. 그럼에도 불구하고, 모델 계산 유닛(22)은 출력 변수 벡터의 출력 변수들의 값들을 추가 뉴런층의 계산을 위한 입력 변수 벡터의 입력 변수들로서 피드백 또는 재정의함으로써 간단한 방식으로 다층 퍼셉트론 모델의 계산을 가능하게 한다.
활성화 함수("act")로서는, 복수의 활성화 함수 중에서 모델 계산 유닛(22)의 활성화 함수 계산 블록(14)을 통해 계산될 수 있는 활성화 함수가 제공될 수 있다. 활성화 함수들로서는 예컨대, 도 4a 내지 4d에 상응하게 도시된 것과 같은 변곡점 함수(kink function), 쌍곡 탄젠트 함수(hyperbolic tangent function), 시그모이드 함수(Sigmoid function) 또는 선형 함수가 이용될 수 있다.
모델 계산 유닛(22)의 메모리(12)는, 각각의 구성 메모리 섹션들(A) 내에 기설정된 개수의 뉴런층을 위한 구성 매개변수들을 저장할 수 있는 구성 메모리 영역(121)을 포함한다. 구성 메모리 영역(121)은, 마이크로프로세서(21)에 의해서뿐만 아니라 모델 계산 유닛(22)에 의해서도 접근되거나 이용될 수 있는, 제어 장치의 메인 메모리의 부분일 수 있다. 그 대안으로, 구성 메모리 섹션들(A)은 별도의 플래시 메모리 내에도, 또는 계산 코어에 대해 배타적인 메모리 내에도 제공될 수 있다.
구성 메모리 섹션들(A)은, 도 5에 예시로서 도시된 것처럼, 모델 계산 유닛(22)의 구성 매개변수들이 기설정 순서에 상응하게 저장되는 개별 메모리 주소들을 포함한다. 개별 구성 메모리 섹션들(A)의 이용을 위해, 그곳에 뉴런층의 계산을 위해 저장된 값들이 DMA 유닛(17)에 의해 그를 위해 제공된 계산 코어의 레지스터에 복사된다. 복사 과정은, 마이크로컨트롤러(21) 또는 계산 코어(18)의 관여 없이, DMA 유닛(17)에 의해 자동으로 실행된다.
각각의 구성 메모리 섹션(A)의 주소 위치들(Reg1 내지 RegP)은, 구성 메모리 영역(121)의 구성 메모리 섹션(A)이 할당되어 있는 관련 뉴런층에서 계산의 실행을 위한 매개변수들을 포함한다. 예컨대 구성 메모리 위치들(Reg1 내지 RegP)은 전술한 의사 코드에 상응하게 매개변수들(p1 내지 p8)을 저장할 수 있을 뿐 아니라, 특히, 데이터 메모리 영역(122)의 어느 데이터 메모리 섹션들[상응하는 시작 주소(start address)의 지시를 통해 정의되는 주소 영역들] 내에 관련된(현재 계산될) 뉴런층에 연관된 입력 변수 벡터의 입력 변수들 또는 중간 입력 변수 벡터의 중간 입력 변수들, 가중 행렬의 가중 계수들, 오프셋 벡터의 오프셋 값들이 저장되어 있는지를 가리키는 상응하는 주소 포인터들을 통해서도 저장할 수 있다.
데이터 메모리 영역(122)은 제어 장치의 메인 메모리 내에, 또는 모델 계산 유닛(22)에 배타적으로 할당된 메모리 내에 제공될 수 있다. 또한, 구성 매개변수들(Reg1 내지 RegP) 중 하나는, 뉴런층에서 계산의 결과로서 획득되는 출력 변수 벡터의 각각의 출력 변수들을 저장하기 위한 데이터 메모리 섹션(D)을 위한 시작 주소를 지시할 수 있다. 주소 포인터들의 이용은 바람직한 이유는, 모델 매개변수들, 입력 변수 벡터, 및 출력 변수 벡터의 설계가 가변적이기 때문이다.
또한, 구성 메모리 영역(121)은, 특정 날짜를 기록할 때 모델 계산 유닛(22)에서 현재 뉴런층[다시 말해, 각각의 구성 메모리 섹션(A)에 할당된 뉴런층]의 계산을 시작하는 계산 시작 정보(RegCtrl)를 저장하기 위한 주소 위치를 제공할 수 있다.
또한, 별도의 상태 레지스터 메모리 영역(R)은 상태 정보들을 저장하기 위한 하나 또는 복수의 주소 위치(RegR01 내지 RegR0Q)를 포함할 수 있다. 상태 정보들은 퍼셉트론 모델의 각각의 뉴런층의 계산의 피드백을 지시할 수 있다. 상태 정보들은, 예컨대 모델 계산 유닛(22)의 계산 상태(idle/busy); 계산 진행(상태 머신에서 의사 코드의 계산 위치, 예컨대 입력 변환, 메인 루프 등의 계산 위치); 매개변수들의 유효성[부정확한 주소 포인터들, 잘못된/지원되지 않는 값들(예: INFinity 혹은 Not-a-Number in float)]; 등에 대한 정보를 포함할 수 있다.
또한, DMA 유닛(17)을 통한 구성 메모리 섹션들(A)의 블록별 처리를 고려하기 위해, 사용되지 않은 메모리 주소들이 각각의 구성 메모리 섹션(A) 내에 제공될 수 있다.
도 6a에는, 구성 메모리 영역(121) 내에서 복수의 구성 메모리 섹션(A)의 배열이 도시되어 있으며, 상기 구성 메모리 영역 내에서는, 도 6a에 도시된 것처럼, 구성 매개변수들이 연속하는 구성 메모리 섹션들(A) 내에 저장되어 있다. 여기서는, N개의 뉴런층(MLP1 ...MLPN)에 대한 구성 매개변수들을 포함하는 N개의 구성 메모리 섹션의 배열이 기설정된다. 각각의 뉴런층에 대한 구성 매개변수들의 개수는 변하지 않기 때문에, 바람직하게는 각각 동일한 크기를 갖는 구성 메모리 섹션들(A)이 제공된다.
구성 매개변수들 중 일부는 주소 포인터들로서 제공되며, 그에 상응하게 "*"로 식별 표시되어 있다. 도 6b에 도시된 것처럼, 주소 포인터들은 예컨대 제어 장치의 메인 메모리 내의 데이터 메모리 영역(122)의 데이터 메모리 섹션들(D)의 시작 주소들을 가리키며, 상기 데이터 메모리 영역으로부터 관련 뉴런층의 계산을 위해 입력 변수 벡터의 입력 변수들(MLPx_EV) 또는 중간 입력 벡터의 중간 입력 변수들(MLPx_EV)(예: MLP1_Reg1*, MLP2_Reg1* 등), 가중 행렬에서의 가중 계수들, 오프셋 벡터의 오프셋 값들이 호출된다. 또한, 주소 포인터들 중 하나는, 결과로서 도출된 출력 변수 벡터의 출력 변수들(MLPx_AV), 또는 (후속하여 계산될 뉴런층이 존재하는 경우에는) 결과로서 도출된 중간 출력 변수 벡터의 중간 출력 변수들(MLPx_AV)(예: MLP1_Reg2*, MLP2_Reg2* 등)을 저장하기 위한 데이터 메모리 섹션(D)을 가리킨다. 연속하는 구성 메모리 섹션들(A) 내의 구성 매개변수들의 적합한 매개변수화를 통해, 바람직하게는, 뉴런층의 출력 변수 벡터를 저장하기 위한 데이터 메모리 섹션(D)의 시작 주소가 후속 뉴런층의 입력 변수 벡터 또는 중간 입력 변수 벡터를 저장하기 위한 데이터 메모리 섹션(D)의 시작 주소에 상응한다.
입력 변수들 및 출력 변수들을 위한 데이터 메모리 영역(122)의 데이터 메모리 섹션들(D)은 각각의 뉴런층에 대해, 퍼셉트론 모델의 상응하는 뉴런층의 상응하는 개수의 뉴런을 기설정하는 기설정 개수의 주소 위치들을 이용하여 기설정된다. 개별 뉴런층의 입력 변수 벡터(MLP1_EV) 및 출력 변수 벡터(MLP1_AV)의 시작 주소들은 메모리 액세스의 세분도(granularity)에 따라 분할된다. 그 결과, 도 6b에 예시적으로 도시된 것처럼, 하나 또는 복수의 미사용 데이터 메모리 섹션(D)이 발생할 수 있다. 미사용 데이터 메모리 섹션들은, 예컨대 주소 포인터가 예컨대 8개 또는 16개의 바이트 단위의 블록들에서 "페이지(Page)" 방식으로만 어드레싱할 수 있는 경우에 발생할 수 있다.
그에 따라, 마이크로프로세서(21)는, 마이크로프로세서를 통한 상응하는 프로그램 시퀀스 제어의 제공 없이, 퍼셉트론 모델의 복수의 뉴런층을 연속 계산하기 위해, DMA 유닛(17)만 초기화하면 된다. 뉴런층의 계산의 연속적인 호출을 통한 시퀀스 제어는 DMA 유닛(17)의 복사 과정들을 통해 수행된다.
도 7에는, DMA 유닛(17)을 통한 모델 계산 유닛의 제어를 나타내는 흐름도가 도시되어 있다. 시작 시, 마이크로프로세서(21)를 통한 구성이 수행되는데, 이 경우, 상응하는 모델 매개변수들, 다시 말하면 제1 뉴런층의 입력 변수들의 값, 각각의 뉴런층에 대한 가중 행렬들의 값, 및 각각의 뉴런층에 대한 오프셋 벡터의 오프셋 값들, 및 구성 매개변수들이 데이터 메모리 영역(122)의 상응하는 데이터 메모리 섹션들(A) 및 구성 메모리 영역(121)의 구성 메모리 섹션(A)에 각각 기록되며, 구성 매개변수들은 구성 메모리 영역(121)의 상응하는 구성 메모리 섹션들(A) 내에 정의된다.
단계 S1에서 DMA 유닛(17)은 마이크로컨트롤러(21)를 통해, 예컨대 구성 메모리 영역(121)의 증분 소스 주소들(incremented source address) 및 복사 타깃으로서의 계산 유닛의 레지스터들을 갖는 다중 복사 전송(multiple copy transfer)을 위해 구성된다. 그 결과, DMA 유닛(17)에서는, 각각의 구성 매개변수 섹션(A)을 위한 수행될 복사 과정들의 횟수 및 전체 MLP 모델의 복사 과정들의 횟수(= MLP 뉴런층의 개수)가 수행된다.
DMA 유닛(17)은 계산 유닛의 레지스터들로 제1 구성 매개변수 섹션(A)의 제1 복사 과정을 시작하고, 그에 이어서 제1 뉴런층에 할당된 구성 매개변수들(MLP1_Reg1 ~ MLP1_RegP, RegCtrl)을 기반으로 단계 S2에서 제1 뉴런층의 계산을 포함한 계산을 시작한다. 이를 위해, DMA 유닛(17)은, 예컨대 구성 메모리 영역(121)의 계산 시작 정보(RegCtrl)가 상응하는 주소 위치/레지스터에 기록됨으로써, 계산의 시작을 시그널링한다. 구성 매개변수들의 주소 포인터들은, 제1 뉴런층의 출력 변수 벡터의 출력 변수들을 계산하기 위해, 입력 변수 벡터의 입력 변수들, 가중 행렬에서의 가중 계수들 및 오프셋 벡터의 오프셋 값들이 추출되어야 하는 데이터 메모리 섹션들(D)을 지시한다.
제1 뉴런층의 출력 변수들의 계산 후에, 상기 출력 변수들은, 데이터 메모리 영역(122)의 상응하는 데이터 메모리 섹션(D) 내의 제1 뉴런층을 위한 구성 매개변수들을 기반으로 DMA 유닛(17)에 의해 저장되는 출력 변수 메모리 블록 내에 위치한다.
단계 S3에서, DMA 유닛(17)의 계산 코어(18)는, 제1 뉴런층의 계산이 종료되었음을 시그널링한다. 이는, 계산 코어(18)가 상응하는 구성 매개변수들을 통해 DMA 유닛(17)에 대한 인터럽트를 야기함으로써 달성될 수 있다. 추가 뉴런층의 계산을 위해, DMA 유닛(17)이 구성 메모리 영역(121)에서 추가 뉴런층에 할당된 구성 메모리 섹션들(A)로부터 구성 매개변수들을 계산 유닛의 레지스터들로 전송하고, 경우에 따라서는 가중 행렬의 가중 계수들 및 오프셋 벡터의 오프셋 값들을, 이들 값이 그곳에 이미 저장되지 않은 경우에 한해, 구성 매개변수들 아래의 주소 포인터들을 통해 지시된 데이터 메모리 섹션들(D) 내에 저장함으로써, 제1 뉴런층의 계산에서 도출된 출력 변수들이 중간 입력 변수들로서 가정된다. 그에 이어 단계 S4에서 계산이 시작된다.
단계 S3 및 S4의 방법은 각각의 추가 뉴런층에 대해, 복사될 구성 메모리 섹션(A)의 초기 기설정 개수에 도달할 때까지, 반복된다. 최종 뉴런층의 계산을 위한 상응하는 구성 매개변수는, 계산 코어(18)가 직접 마이크로프로세서(21)에 인터럽트를 야기함으로써, 계산 코어(18)의 인터럽트 호출을 정의한다. 그런 다음, 계산 코어(18)는 마이크로프로세서(21)에 상응하는 인터럽트 신호를 시그널링하며, 그 후에 마이크로프로세서는 모델 값을 호출하거나, 여타의 방식으로 수신한다. 그 대안으로, 모델 계산 유닛(22)은 DMA 유닛(17)으로 인터럽트 신호를 보낼 수 있고, DMA 유닛(17)은 마이크로컨트롤러(21)로 인터럽트 신호를 전송한다(chained interrupts).
또한, 구성 메모리 영역(121)은, 계산을 위해 요구되는 데이터를 위한 메모리 섹션들을 상응하게 지시하는 구성 매개변수들도 포함할 수 있다. 이를 위해, 퍼셉트론 모델의 계산의 종료 후에, 제2 퍼셉트론 모델의 새로운 제1 뉴런층의 계산이 실행될 수 있다. 이를 위해서는, 제1 퍼셉트론 모델의 최종 뉴런층의 출력 변수로서 모델 값이 저장되는 주소 위치가, 제2 퍼셉트론 모델의 제1 뉴런층의 입력 변수들의 부분이 아니면 된다.
도 8에는, 피드포워드 및 피드백을 포함하는 퍼셉트론 모델이 개략적으로 도시되어 있다. 도 8에는, 뉴런층들(MLP1 ~ MLP4)을 포함하는 4층 퍼셉트론 모델(100)의 예가 도시되어 있다. 뉴런층들(MLP1 ~ MLP4) 각각은 입력 변수 벡터 층(101), 출력 변수 벡터 층(102), 및 개별 뉴런들(104)을 구비한 뉴런층(103)을 포함한다. 앞에서 기술한 것처럼, 뉴런층(103)의 뉴런들(104)의 개수는 뉴런층마다 서로 상이할 수 있다.
입력 변수 벡터(101)는 데이터 메모리 영역(122)의 데이터 메모리 섹션(D) 내에 저장되고, 출력 변수 벡터(102)는 데이터 메모리 영역(122)에서 상기 데이터 메모리 섹션과 적어도 부분적으로 상이한 데이터 메모리 섹션(D) 내에 저장된다. 출력 변수 벡터를 저장하기 위한 데이터 메모리 섹션(D)은 그에 후행하는 뉴런층의 계산을 위한 입력 변수 벡터를 저장하기 위한 데이터 메모리 섹션(D)에 완전히 또는 부분적으로 상응할 수 있다. 동일한 또는 상이한 뉴런층들의 입력 변수 벡터들 및 출력 변수 벡터들을 위한 데이터 메모리 섹션들(D)의 정의의 적합한 중첩을 통해, 후행 뉴런층을 위한 중간 출력 변수의 고려 하에 피드백들 및 스킵들이 구현될 수 있다.
도 9에는, 데이터 메모리 영역(122) 내에서의 데이터 메모리 섹션들(D)의 주소 위치들이 개략적으로 도시되어 있으며, 데이터 메모리 섹션들(D)은 입력 변수 벡터를 위한 "뉴런층의 도면부호"_"EV"와, 출력 변수 벡터를 위한 "뉴런층의 도면부호"_"AV"로 표시되어 있다. 중첩 영역들 또는 중첩 주소 섹션들은 U1 내지 U4로 식별 표시되어 있다.
퍼셉트론 모델의 도 8에 도시된 실시예에서, 예컨대 제2 뉴런층(MLP2)의 출력 변수 벡터의 일부분은 제2 뉴런층(MLP2)으로 피드백된다. 그런 다음, 제1 뉴런층(MLP1)의 출력 변수 벡터와 함께 제2 뉴런층(MLP2)의 입력 변수 벡터가 구해지고, 그럼으로써 그곳에서 이용된 입력 변수 벡터는 제2 뉴런층(MLP2)의 출력 변수 벡터의 피드백 부분과 제1 뉴런층(MLP1)의 출력 변수 벡터로 이루어진다. 그러나 모델 계산 유닛(22)의 구성에 상응하게, 입력 변수 벡터들은 관련 데이터 메모리 섹션들(D) 내에서 유보된다. 이 경우, 제2 뉴런층(MLP2)의 입력 변수 벡터는 관련 데이터 메모리 섹션(MLP2_EV)으로부터 추출된다.
이는, 제1 뉴런층(MLP1)의 출력 변수 벡터를 위한 데이터 메모리 섹션(MLP1_AV)과 제2 뉴런층(MLP2)의 출력 변수 벡터의 피드백 부분을 위한 데이터 메모리 섹션(MLP2_AV)이 서로 연결됨으로써 달성된다. 그런 다음, 제2 뉴런층(MLP2)의 입력 변수 벡터를 위한 데이터 메모리 섹션(MLP2_EV)은, 그 자신이 제1 뉴런층(MLP1)의 출력 변수 벡터를 위한 데이터 메모리 섹션(MLP1_AV) 및 제2 뉴런층(MLP2)의 출력 변수 벡터의 피드백 부분을 위한 데이터 메모리 섹션(MLP2_AV)을 포함하도록 정의된다. 제2 뉴런층(MLP2)의 출력 변수 벡터의 피드백 부분을 제1 중첩 주소 섹션(U1)이라고 지칭한다.
또한, 제2 뉴런층(MLP2)에서의 계산은 제4 뉴런층(MLP4)의 출력 변수 벡터를 이용한다. 이는, 제1 뉴런층(MLP1)의 출력 변수 벡터를 위한 데이터 메모리 섹션(MLP1_AV)과 제4 뉴런층(MLP4)의 출력 변수 벡터의 데이터 메모리 섹션(MLP4_AV)이 서로 연결됨으로써 달성된다. 제2 뉴런층(MLP2)의 입력 변수 벡터를 위한 데이터 메모리 섹션(MLP2_EV)은, 전술한 포지셔닝에 추가로, 그 자신이 제1 뉴런층(MLP1)의 출력 변수 벡터를 위한 데이터 메모리 섹션(MLP1_AV), 제2 뉴런층(MLP2)의 출력 변수 벡터의 피드백 부분을 위한 데이터 메모리 섹션(MLP2_AV), 및 제4 뉴런층(MLP4)의 피드백 출력 변수 벡터를 위한 데이터 메모리 섹션(MLP4_AV)을 포함하도록 정의된다. 제4 뉴런층(MLP4)의 출력 변수 벡터를 위한 데이터 메모리 섹션(MLP4_AV)을 제2 중첩 주소 섹션(U2)이라 지칭한다.
또한, 제3 뉴런층(MLP3)에서의 계산은 제1 뉴런층(MLP1)의 출력 변수 벡터의 피드포워드 부분, 및 제2 뉴런층(MLP2)의 출력 변수 벡터를 이용한다. 이는, 제1 뉴런층(MLP1)의 출력 변수 벡터를 위한 데이터 메모리 섹션(MLP1_AV)과 제2 뉴런층(MLP2)의 출력 변수 벡터의 데이터 메모리 섹션(MLP2_AV)이 서로 연결됨으로써 달성된다. 제3 뉴런층(MLP3)의 입력 변수 벡터를 위한 데이터 메모리 섹션(MLP3_EV)은, 전술한 포지셔닝에 추가로, 그 자신이 제2 뉴런층(MLP2)의 출력 변수 벡터를 위한 데이터 메모리 섹션(MLP2_AV) 및 제1 뉴런층(MLP1)의 출력 변수 벡터의 피드포워드 부분을 위한 데이터 메모리 섹션을 포함하도록 정의된다. 제1 뉴런층(MLP1)의 출력 변수 벡터의 피드포워드 부분의 데이터 메모리 섹션은 제3 중첩 주소 섹션(U3)이라 지칭된다.
추가로, 제3 뉴런층(MLP3)에서의 계산은, 제4 중첩 주소 섹션(U4)에 상응하는, 동일한 제3 뉴런층(MLP3)의 출력 변수 벡터(MLP3_AV)의 피드백 부분을 이용한다. 이는, 제3 뉴런층(MLP3)의 출력 변수 벡터(MLP3_AV)를 위한 데이터 메모리 섹션(MLP3_AV)과 제2 뉴런층(MLP2)의 출력 변수 벡터(MLP2_AV)의 데이터 메모리 섹션(MLP2_AV)이 서로 연결됨으로써 달성된다.
제3 뉴런층(MLP3)의 입력 변수 벡터를 위한 데이터 메모리 섹션(MLP3_EV)은, 전술한 포지셔닝에 추가로, 그 자신이 제2 뉴런층(MLP2)의 출력 변수 벡터(MLP2_AV)의 데이터 메모리 섹션, 제1 뉴런층(MLP1)의 출력 변수 벡터(MLP1_AV)의 피드포워드 부분을 위한 데이터 메모리 섹션[제3 중첩 영역(U3)], 및 제3 뉴런층(MLP3)의 출력 변수 벡터(MLP3_AV)의 피드백 부분을 위한 데이터 메모리 섹션[제4 중첩 영역(U4)]을 포함하도록 정의된다.
일반적으로, 복수의 뉴런층의 출력 변수 벡터들의 데이터 메모리 섹션들(D)은, 이들이 함께 각각 완전하게 또는 부분적으로 복수의 뉴런층에 후행하여 계산될 뉴런층의 입력 변수 벡터를 형성하는 경우, 서로 연이어 배치된다. 입력 변수 벡터의 어드레싱은 일반적으로 관련 주소 영역으로서 실시되기 때문에, 이 경우 계산될 뉴런층의 입력 변수 벡터를 위한 데이터 메모리 섹션(D)은, 그 자신이 관련 출력 변수 벡터들의 데이터 메모리 섹션들(D)에 중첩되도록 정의된다.
개별 뉴런층의 계산은, 제1 뉴런층에서 시작하여 최종 뉴런층에 도달할 때까지, 다시 말해 본 실시예에서는 제4 뉴런층에 도달할 때까지 시간상 연속해서 수행된다. 그러나 피드백들의 경우, 피드백되는 뉴런층의 재계산은 곧바로 수행되지 않는다. 그 대신, 출력 변수 벡터들의 피드백 부분들은 퍼셉트론 모델의 후속하는 완전한 계산 시에 비로소 고려된다. 그 결과, 출력 변수 벡터들의 피드백 부분들의 지연된 고려(delayed consideration)가 발생한다. 이는 도 8에서 지연 요소(105)(delay element)로써 기호화되어 있다. 이 지연 요소(105)는 단지 하나의 함수를 표시할 뿐, 모델 계산 유닛(22)에서는 실제로 형성되지 않는데, 그 이유는 상기 함수가 데이터 메모리 영역(122) 내에서의 임시 저장을 통해 충족되기 때문이다.

Claims (11)

  1. 다층 퍼셉트론 모델의 계산을 위한 모델 계산 유닛(22)으로서, 상기 모델 계산 유닛(22)은 하드웨어로 형성되어 고정 배선되며,
    - 입력 변수 벡터(101)의 하나 또는 복수의 입력 변수에 따라 다수의 뉴런을 갖는 다층 퍼셉트론 모델의 일 뉴런층의 출력 변수 벡터(102)의 하나 또는 복수의 출력 변수를 계산하도록 형성된 계산 코어(18)와;
    - 각각의 뉴런층에, 입력 변수 벡터(101)의 입력 변수들을 저장하기 위한 데이터 메모리 섹션(D) 및 출력 변수 벡터(102)의 출력 변수들을 저장하기 위한 데이터 메모리 섹션(D)이 할당된 데이터 메모리 영역(122)을 구비한 메모리(12)와;
    - 상기 할당된 입력 변수 벡터(101)의 입력 변수들을 기반으로 각각 하나의 뉴런층을 계산하여, 각각의 결과로 도출된 출력 변수 벡터(102)의 출력 변수들을 상기 할당된 데이터 메모리 섹션(D)에 저장할 것을 상기 계산 코어(18)에 연속으로 지시하도록 형성된 DMA 유닛(17);을 포함하며,
    상기 뉴런층들 중 적어도 하나에 할당된 입력 변수 벡터(101)를 위한 데이터 메모리 섹션(D)은 2개의 상이한 뉴런층의 적어도 2개의 출력 변수 벡터(102)의 데이터 메모리 섹션(D)을 각각 적어도 부분적으로 포함하고,
    뉴런층들에 할당된 하나 이상의 입력 변수 벡터(101)를 위한 데이터 메모리 섹션(D)은 선행하는 뉴런층의 출력 변수 벡터(102)의 데이터 메모리 섹션(D)을 완전히 포함하는, 모델 계산 유닛(22).
  2. 삭제
  3. 제1항에 있어서,
    뉴런층들에 할당된 하나 이상의 입력 변수 벡터(101)를 위한 데이터 메모리 섹션(D)은 선행하는 뉴런층과 상이한, 특히 선행하거나 후행하는 뉴런층의 출력 변수 벡터(102)의 데이터 메모리 섹션(D)을 부분적으로 포함하는, 모델 계산 유닛(22).
  4. 제1항에 있어서,
    2개의 상이한 뉴런층의 2개 이상의 출력 변수 벡터(102)의 데이터 메모리 섹션들(D)은 상기 데이터 메모리 영역(122)의 주소 영역에서 서로 접경하는, 모델 계산 유닛(22).
  5. 제1항에 있어서,
    각각의 뉴런층을 위한 메모리는 각각의 구성 메모리 섹션(A) 내에 구성 매개변수들을 저장하기 위한 구성 메모리 영역(121)을 포함하며; DMA 유닛(17)은, 각각의 구성 메모리 섹션(A)의 구성 매개변수들을 기반으로 각각 하나의 뉴런층을 계산하고 이를 통해 정의된 입력 변수 벡터를 계산하도록, 그리고 각각 결과로 도출된 출력 변수 벡터(102)를, 상응하는 구성 매개변수들을 통해 정의된, 데이터 메모리 영역(122)의 데이터 메모리 섹션(D) 내에 저장할 것을 계산 코어(18)에 연속으로 지시하도록, 형성되는, 모델 계산 유닛(22).
  6. 제1항에 있어서,
    계산 코어(18)는, 뉴런층의 현재 계산의 종료를 DMA 유닛(17)으로 또는 외부로 시그널링하도록 형성되며, 상기 DMA 유닛(17)은 추가 구성 메모리 섹션 내에 저장된 구성 매개변수들을 기반으로 다음 뉴런층의 계산을 시작하는, 모델 계산 유닛(22).
  7. 제1항에 있어서,
    계산 코어(18)는, 다수의 뉴런(20)을 포함하는 다층 퍼셉트론 모델의 뉴런층에 대해, 입력 변수 벡터의 하나 또는 복수의 입력 변수와, 가중 계수들을 포함한 가중 행렬과, 각각의 뉴런에 대해 기설정된 오프셋 값에 따라, 각각의 뉴런을 위한 출력 변수를 계산하도록 형성되고; 각각의 뉴런에 대해, 상기 뉴런 및 입력 변수에 의해 결정된 가중 계수로 가중된 입력 변수들의 값들의 합에 상기 뉴런에서 기설정된 오프셋 값이 인가되며, 그 결과가 관련 뉴런(20)을 위한 출력 변수를 획득하기 위해 활성화 함수에 의해 변환되는, 모델 계산 유닛(22).
  8. 제1항에 있어서,
    계산 코어(18)는 집적 모듈의 표면 영역에 형성되는, 모델 계산 유닛(22).
  9. 마이크로프로세서(21)와, 제1항에 따른 하나 또는 복수의 모델 계산 유닛(22)을 포함하는 제어 장치(2).
  10. 제9항에 있어서, 제어 장치(2)가 집적 회로로서 형성되는, 제어 장치(2).
  11. 자동차 내 엔진 시스템(1)으로서, 상기 자동차 내 엔진 시스템(1)을 제어하기 위한 제9항에 따른 제어 장치(2)를 포함하는, 자동차 내 엔진 시스템(1).
KR1020197009811A 2016-09-07 2017-09-04 피드포워드 및 피드백을 포함한 다층 퍼셉트론 모델의 계산을 위한 모델 계산 유닛 및 그 제어 장치 KR102509434B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
DE102016216950.5 2016-09-07
DE102016216950.5A DE102016216950A1 (de) 2016-09-07 2016-09-07 Modellberechnungseinheit und Steuergerät zur Berechnung eines mehrschichtigen Perzeptronenmodells mit Vorwärts- und Rückkopplung
PCT/EP2017/072043 WO2018046416A1 (de) 2016-09-07 2017-09-04 Modellberechnungseinheit und steuergerät zur berechnung eines mehrschichtigen perzeptronenmodells mit vorwärts- und rückkopplung

Publications (2)

Publication Number Publication Date
KR20190043616A KR20190043616A (ko) 2019-04-26
KR102509434B1 true KR102509434B1 (ko) 2023-03-13

Family

ID=59859051

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197009811A KR102509434B1 (ko) 2016-09-07 2017-09-04 피드포워드 및 피드백을 포함한 다층 퍼셉트론 모델의 계산을 위한 모델 계산 유닛 및 그 제어 장치

Country Status (6)

Country Link
US (1) US11449737B2 (ko)
JP (1) JP6828170B2 (ko)
KR (1) KR102509434B1 (ko)
CN (1) CN109643393B (ko)
DE (1) DE102016216950A1 (ko)
WO (1) WO2018046416A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020013946A1 (en) 2018-07-13 2020-01-16 Google Llc End-to-end streaming keyword spotting
CN111913898A (zh) * 2019-05-10 2020-11-10 恩智浦美国有限公司 使用端点的pcie根复合体消息中断产生方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080016014A1 (en) * 2006-07-13 2008-01-17 Lev Sigal Neural network resource sizing apparatus for database applications
WO2016099779A1 (en) * 2014-12-19 2016-06-23 Intel Corporation Method and apparatus for distributed and cooperative computation in artificial neural networks

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2792633B2 (ja) 1990-02-09 1998-09-03 株式会社日立製作所 制御装置
JP3210319B2 (ja) * 1990-03-01 2001-09-17 株式会社東芝 ニューロチップおよびそのチップを用いたニューロコンピュータ
US5787393A (en) * 1992-03-30 1998-07-28 Seiko Epson Corporation Speech recognition apparatus using neural network, and learning method therefor
JP3025592B2 (ja) * 1992-12-08 2000-03-27 三菱電機株式会社 ニューロコンピュータ
US6601051B1 (en) * 1993-08-09 2003-07-29 Maryland Technology Corporation Neural systems with range reducers and/or extenders
US5583964A (en) 1994-05-02 1996-12-10 Motorola, Inc. Computer utilizing neural network and method of using same
US5987444A (en) * 1997-09-23 1999-11-16 Lo; James Ting-Ho Robust neutral systems
NZ567815A (en) * 2005-11-15 2011-08-26 Bernadette Garner Training neural networks including selecting an output to be trained and connecting an output neuron to input neurons
GB2464677A (en) * 2008-10-20 2010-04-28 Univ Nottingham Trent A method of analysing data by using an artificial neural network to identify relationships between the data and one or more conditions.
US8990132B2 (en) * 2010-01-19 2015-03-24 James Ting-Ho Lo Artificial neural networks based on a low-order model of biological neural networks
DE102012214697A1 (de) * 2012-08-01 2014-02-06 Soma Analytics Ug (Haftungsbeschränkt) Vorrichtung, Verfahren und Applikation zur Ermittlung eines aktuellenBelastungsniveaus
DE102013213420A1 (de) * 2013-04-10 2014-10-16 Robert Bosch Gmbh Modellberechnungseinheit, Steuergerät und Verfahrenzum Berechnen eines datenbasierten Funktionsmodells
DE102013206264A1 (de) * 2013-04-10 2014-10-30 Robert Bosch Gmbh Verfahren und Vorrichtung zur Durchführung einer Berechnung eines datenbasierten Funktionsmodells
DE102013212842A1 (de) * 2013-07-02 2015-01-08 Robert Bosch Gmbh Verfahren zum Betreiben eines Steuergeräts sowie Steuergerät mit einer Modellberechnungseinheit
DE102013213414A1 (de) * 2013-07-09 2015-01-15 Robert Bosch Gmbh Verfahren und Vorrichtung zur Durchführung einer Modellberechnungeines datenbasierten Funktionsmodells
ES2738319T3 (es) * 2014-09-12 2020-01-21 Microsoft Technology Licensing Llc Sistema informático para entrenar redes neuronales
CN105892989B (zh) * 2016-03-28 2017-04-12 中国科学院计算技术研究所 一种神经网络加速器及其运算方法
CN105913117A (zh) * 2016-04-04 2016-08-31 北京工业大学 一种计算机智能识别的相关神经网络方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080016014A1 (en) * 2006-07-13 2008-01-17 Lev Sigal Neural network resource sizing apparatus for database applications
WO2016099779A1 (en) * 2014-12-19 2016-06-23 Intel Corporation Method and apparatus for distributed and cooperative computation in artificial neural networks

Also Published As

Publication number Publication date
US11449737B2 (en) 2022-09-20
KR20190043616A (ko) 2019-04-26
CN109643393A (zh) 2019-04-16
JP2019530114A (ja) 2019-10-17
JP6828170B2 (ja) 2021-02-10
WO2018046416A1 (de) 2018-03-15
US20200226450A1 (en) 2020-07-16
DE102016216950A1 (de) 2018-03-08
CN109643393B (zh) 2023-05-23

Similar Documents

Publication Publication Date Title
JP6821002B2 (ja) 処理装置と処理方法
US11216721B2 (en) Method for calculating a neuron layer of a multi-layer perceptron model with simplified activation function
CN109240746B (zh) 一种用于执行矩阵乘运算的装置和方法
CN109376861B (zh) 一种用于执行全连接层神经网络训练的装置和方法
CN109919311B (zh) 生成指令序列的方法、执行神经网络运算的方法和装置
WO2019127731A1 (zh) 卷积神经网络硬件加速装置及卷积计算方法及存储介质
JP7430744B2 (ja) 機械学習モデルを改良して局所性を改善させること
CN111310904A (zh) 一种用于执行卷积神经网络训练的装置和方法
KR102509434B1 (ko) 피드포워드 및 피드백을 포함한 다층 퍼셉트론 모델의 계산을 위한 모델 계산 유닛 및 그 제어 장치
CN103870335A (zh) 用于信号流编程的数字信号处理器代码的高效资源管理的系统和方法
CN111091181B (zh) 卷积处理单元、神经网络处理器、电子设备及卷积运算方法
CN111831582A (zh) 用于智能处理器的内存管理装置、方法及电子设备
KR102508098B1 (ko) 다층 퍼셉트론 모델을 계산하기 위한 모델 계산 유닛 및 제어 장치
WO2022057459A1 (zh) 一种基于Tensorcore处理int4数据类型的方法、系统、设备及介质
CN114021733A (zh) 模型训练优化方法、装置、计算机设备及存储介质
CN114692824A (zh) 一种神经网络模型的量化训练方法、装置和设备
JP5045652B2 (ja) 相関処理装置及びその相関処理装置で読みとり可能な媒体
US20210295133A1 (en) Model calculating unit and control unit for calculating a neural layer of a multilayer perceptron model
CN117591242B (zh) 基于底层虚拟机的编译优化方法、系统、存储介质及终端
CN111506384B (zh) 模拟运算方法和模拟器
EP4202774A1 (en) Runtime predictors for neural network computation reduction
US20220327180A1 (en) Generic image resizer using matrix multiplier accelerator
CN117648958A (zh) 一种卷积神经网络加速器、数据处理方法及电子设备
CN116340004A (zh) 一种任务执行的方法、装置、存储介质及电子设备
CN114565075A (zh) 支援多种访问模式的设备、方法及可读存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant