KR20180033032A - Neural network device and method of operating neural network device - Google Patents

Neural network device and method of operating neural network device Download PDF

Info

Publication number
KR20180033032A
KR20180033032A KR1020160177466A KR20160177466A KR20180033032A KR 20180033032 A KR20180033032 A KR 20180033032A KR 1020160177466 A KR1020160177466 A KR 1020160177466A KR 20160177466 A KR20160177466 A KR 20160177466A KR 20180033032 A KR20180033032 A KR 20180033032A
Authority
KR
South Korea
Prior art keywords
feature
layer
linear
current
delta
Prior art date
Application number
KR1020160177466A
Other languages
Korean (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 삼성전자주식회사
Priority to US15/657,950 priority Critical patent/US10963775B2/en
Priority to CN201710826342.2A priority patent/CN107871159B/en
Publication of KR20180033032A publication Critical patent/KR20180033032A/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/23418Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • 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
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/234381Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping

Abstract

Provided is an operating method of a neural network device comprising an input layer, a first linear layer, a first nonlinear layer, and a second linear layer. The operating method of the neural network device comprises: sequentially receiving, by the input layer, multiple pieces of input data; generating a difference between a current piece of input data and a previous piece of input data as delta data in the input layer; generating, in the first linear layer, a first current feature corresponding to a result of a first linear operation on the current piece of input data based on a first delta feature, which is generated by performing the first linear operation on the delta data, and a first previous feature stored in a first register; generating, in the first nonlinear layer, a second delta feature based on a second current feature, which is generated by performing a first nonlinear operation on the first current feature, and a second previous feature stored in a second register; and generating, in the second linear layer, a third current feature corresponding to a result of a second linear operation on the second current feature based on a third delta feature, which is generated by performing the second linear operation on the second delta feature, and a third previous feature stored in a third register.

Description

뉴럴 네트워크 장치 및 뉴럴 네트워크 장치의 동작 방법{NEURAL NETWORK DEVICE AND METHOD OF OPERATING NEURAL NETWORK DEVICE}TECHNICAL FIELD [0001] The present invention relates to a neural network device and a neural network device,

본 발명은 뉴럴 네트워크(neural network) 장치에 관한 것으로, 보다 상세하게는 뉴럴 네트워크 장치의 동작 속도 증가 방법에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a neural network apparatus, and more particularly, to a method for increasing the operating speed of a neural network apparatus.

최근 뉴럴 네트워크(neural network) 기술이 발전함에 따라, 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS), 로봇 등과 같은 다양한 종류의 전자 시스템에서 뉴럴 네트워크 장치를 사용하여 입력 데이터를 분석하여 유효한 정보를 추출하는 연구가 활발히 진행되고 있다.Recently, with the development of neural network technology, input data is analyzed using neural network devices in various kinds of electronic systems such as drone, Advanced Drivers Assistance System (ADAS), robot, And research to extract valid information has been actively carried out.

그러나, 일반적인 뉴럴 네트워크 장치는 입력 데이터에 대한 방대한 양의 연산을 필요로 하므로, 동작 속도 향상 및 소비 전력 감소에 한계가 있다.However, since a general neural network device requires a large amount of computation for input data, there is a limitation in improvement of operation speed and reduction of power consumption.

따라서 일반적인 뉴럴 네트워크 장치는 빠른 속도로 수신되는 입력 데이터에 대해서는 정상적으로 동작하지 못하는 문제점이 있다. 또한, 배터리를 사용하여 동작하는 전자 시스템에 뉴럴 네트워크 장치가 적용되는 경우, 뉴럴 네트워크 장치의 높은 소비 전력으로 인해 전자 시스템의 배터리가 빨리 소모되는 문제점이 있다.Therefore, the conventional neural network apparatus can not operate properly with input data received at a high speed. Also, when a neural network device is applied to an electronic system operating using a battery, there is a problem that the battery of the electronic system is quickly consumed due to high power consumption of the neural network device.

상기와 같은 문제점을 해결하기 위한 본 발명의 일 목적은 뉴럴 네트워크(neural network) 장치의 동작 속도 증가 방법을 제공하는 것이다.An object of the present invention is to provide a method of increasing the operating speed of a neural network apparatus.

본 발명의 다른 목적은 동작 속도를 증가시킬 수 있는 뉴럴 네트워크 장치를 제공하는 것이다.Another object of the present invention is to provide a neural network device capable of increasing the operating speed.

상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 입력 레이어, 제1 선형 레이어, 제1 비선형 레이어, 및 제2 선형 레이어를 포함하는 뉴럴 네트워크(neural network) 장치의 동작 방법에서, 상기 입력 레이어가 복수의 입력 데이터들을 순차적으로 수신하고, 상기 입력 레이어에서 상기 복수의 입력 데이터들 중에서 현재 입력 데이터와 이전 입력 데이터의 차이를 델타 데이터로서 생성하고, 상기 제1 선형 레이어에서 상기 델타 데이터에 대해 제1 선형 연산을 수행하여 생성되는 제1 델타 피처(feature)와 제1 레지스터에 저장된 제1 이전 피처에 기초하여 상기 현재 입력 데이터에 대해 상기 제1 선형 연산을 수행한 결과에 상응하는 제1 현재 피처를 생성하고, 상기 제1 비선형 레이어에서 상기 제1 현재 피처에 대해 제1 비선형 연산을 수행하여 생성되는 제2 현재 피처와 제2 레지스터에 저장된 제2 이전 피처에 기초하여 제2 델타 피처를 생성하고, 상기 제2 선형 레이어에서 상기 제2 델타 피처에 대해 제2 선형 연산을 수행하여 생성되는 제3 델타 피처와 제3 레지스터에 저장된 제3 이전 피처에 기초하여 상기 제2 현재 피처에 대해 상기 제2 선형 연산을 수행한 결과에 상응하는 제3 현재 피처를 생성한다.According to an aspect of the present invention, there is provided a neural network apparatus including an input layer, a first linear layer, a first non-linear layer, and a second linear layer according to an embodiment of the present invention. Wherein the input layer sequentially receives a plurality of input data and generates, as delta data, difference between current input data and previous input data among the plurality of input data in the input layer, Performing a first linear operation on the current input data based on a first delta feature generated by performing a first linear operation on the delta data and a first previous feature stored in a first register, Generating a corresponding first current feature, and performing a first non-linear operation on the first current feature in the first non-linear layer And generating a second delta feature based on a second previous feature stored in a second register and performing a second linear operation on the second delta feature in the second linear layer And generates a third current feature corresponding to a result of performing the second linear operation on the second current feature based on a third previous feature stored in a third delta feature and a third register.

상술한 본 발명의 일 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 뉴럴 네트워크 장치는 입력 레이어, 제1 선형 레이어, 제1 비선형 레이어, 및 제2 선형 레이어를 포함한다. 상기 입력 레이어는 복수의 입력 데이터들을 순차적으로 수신하고, 상기 복수의 입력 데이터들 중에서 현재 입력 데이터와 이전 입력 데이터의 차이를 델타 데이터로서 생성한다. 상기 제1 선형 레이어는 상기 델타 데이터에 대해 제1 선형 연산을 수행하여 제1 델타 피처(feature)를 생성하고, 상기 제1 델타 피처와 제1 레지스터에 저장된 제1 이전 피처에 기초하여 상기 현재 입력 데이터에 대해 상기 제1 선형 연산을 수행한 결과에 상응하는 제1 현재 피처를 생성한다. 상기 제1 비선형 레이어는 상기 제1 현재 피처에 대해 제1 비선형 연산을 수행하여 제2 현재 피처를 생성하고, 상기 제2 현재 피처와 제2 레지스터에 저장된 제2 이전 피처에 기초하여 제2 델타 피처를 생성한다. 상기 제2 선형 레이어는 상기 제2 델타 피처에 대해 제2 선형 연산을 수행하여 제3 델타 피처를 생성하고, 상기 제3 델타 피처와 제3 레지스터에 저장된 제3 이전 피처에 기초하여 상기 제2 현재 피처에 대해 상기 제2 선형 연산을 수행한 결과에 상응하는 제3 현재 피처를 생성한다.According to an aspect of the present invention, there is provided a neural network apparatus including an input layer, a first linear layer, a first non-linear layer, and a second linear layer. The input layer sequentially receives a plurality of input data, and generates a difference between the current input data and the previous input data among the plurality of input data as delta data. Wherein the first linear layer performs a first linear operation on the delta data to generate a first delta feature and generates a second delta feature based on the first delta feature and the first previous feature stored in the first register, And generates a first current feature corresponding to the result of performing the first linear operation on the data. Wherein the first nonlinear layer performs a first nonlinear operation on the first current feature to generate a second current feature and generates a second current feature based on a second previous feature stored in the second current feature and a second previous feature, . Wherein the second linear layer performs a second linear operation on the second delta feature to generate a third delta feature and generates a third delta feature based on the third current feature stored in the third delta feature and the third register, And generates a third current feature corresponding to the result of performing the second linear operation on the feature.

본 발명의 실시예들에 따른 뉴럴 네트워크 장치는 연속되는 입력 데이터들 사이의 높은 유사성을 활용하여 선형 연산을 빠른 속도로 수행함으로써, 전체적인 동작 속도를 효과적으로 향상시킬 수 있다. 따라서 본 발명에 따른 뉴럴 네트워크 장치는 복수의 입력 데이터들이 빠른 속도로 제공되는 경우에도 상기 복수의 입력 데이터들에 포함되는 정보를 빠르게 인식할 수 있다.The neural network apparatus according to the embodiments of the present invention can perform the linear operation at a high speed utilizing the high similarity between successive input data, thereby effectively improving the overall operation speed. Therefore, the neural network apparatus according to the present invention can quickly recognize information included in the plurality of input data even when a plurality of input data is provided at a high speed.

도 1은 본 발명의 일 실시예에 따른 뉴럴 네트워크(neural network) 장치를 나타내는 블록도이다.
도 2는 본 발명의 일 실시예에 따른 뉴럴 네트워크 장치의 동작 방법을 나타내는 순서도이다.
도 3은 도 2의 뉴럴 네트워크 장치의 동작 방법에 포함되는 제1 선형 레이어가 제1 현재 피처를 생성하는 단계의 일 예를 나타내는 순서도이다.
도 4는 도 3에 도시된 상기 제1 선형 레이어가 델타 데이터에 대해 제1 선형 연산을 수행하여 제1 델타 피처를 생성하는 과정의 일 예를 설명하기 위한 도면이다.
도 5는 도 2의 뉴럴 네트워크 장치의 동작 방법에 포함되는 제1 비선형 레이어가 제2 델타 피처를 생성하는 단계의 일 예를 나타내는 순서도이다.
도 6은 도 5에 도시된 상기 제1 비선형 레이어가 상기 제1 현재 피처에 대해 제1 비선형 연산을 수행하여 제2 현재 피처를 생성하는 과정의 일 예를 설명하기 위한 도면이다.
도 7은 도 2의 뉴럴 네트워크 장치의 동작 방법에 포함되는 제2 선형 레이어가 제3 현재 피처를 생성하는 단계의 일 예를 나타내는 순서도이다.
도 8은 도 7에 도시된 상기 제2 선형 레이어가 상기 제2 델타 피처에 대해 제2 선형 연산을 수행하여 제3 델타 피처를 생성하는 과정의 일 예를 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 뉴럴 네트워크(neural network) 장치를 나타내는 블록도이다.
도 10은 본 발명의 일 실시예에 따른 뉴럴 네트워크 장치의 동작 방법을 나타내는 순서도이다.
1 is a block diagram illustrating a neural network device in accordance with an embodiment of the present invention.
2 is a flowchart illustrating an operation method of a neural network device according to an embodiment of the present invention.
FIG. 3 is a flowchart showing an example of a step in which a first linear layer included in a method of operating the neural network device of FIG. 2 generates a first current feature.
4 is a view for explaining an example of a process of the first linear layer shown in FIG. 3 to perform a first linear operation on delta data to generate a first delta feature.
FIG. 5 is a flowchart showing an example of a step in which a first nonlinear layer included in an operation method of the neural network device of FIG. 2 generates a second delta feature.
FIG. 6 is a diagram illustrating an example of a process in which the first nonlinear layer shown in FIG. 5 performs a first nonlinear operation on the first current feature to generate a second current feature.
FIG. 7 is a flowchart showing an example of a step in which a second linear layer included in the method of operation of the neural network device of FIG. 2 generates a third current feature.
FIG. 8 is a view for explaining an example of a process in which the second linear layer shown in FIG. 7 performs a second linear operation on the second delta feature to generate a third delta feature.
9 is a block diagram illustrating a neural network device in accordance with an embodiment of the present invention.
10 is a flowchart illustrating an operation method of a neural network device according to an embodiment of the present invention.

이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. The same reference numerals are used for the same constituent elements in the drawings and redundant explanations for the same constituent elements are omitted.

도 1은 본 발명의 일 실시예에 따른 뉴럴 네트워크(neural network) 장치를 나타내는 블록도이다.1 is a block diagram illustrating a neural network device in accordance with an embodiment of the present invention.

도 1을 참조하면, 뉴럴 네트워크 장치(10)는 입력 레이어(IN_L)(100), 제1 선형 레이어(L1_L)(200), 제1 비선형 레이어(NL1_L)(300), 제2 선형 레이어(L2_L)(400), 및 출력 레이어(O_L)(700)를 포함한다.1, the neural network device 10 includes an input layer IN_L 100, a first linear layer L1_L 200, a first nonlinear layer NL1_L 300, a second linear layer L2_L ) 400, and an output layer (O_L)

입력 레이어(100)는 복수의 입력 데이터들(IDATA)을 순차적으로 수신할 수 있다.The input layer 100 may sequentially receive a plurality of input data IDATA.

입력 레이어(100)는 복수의 입력 데이터들(IDATA) 각각을 수신할 때마다 현재 입력 데이터와 이전 입력 데이터의 차이를 델타 데이터(DDATA(t))로서 생성할 수 있다. 이후, 입력 레이어(100)는 델타 데이터(DDATA(t))를 제1 선형 레이어(200)에 제공할 수 있다. 여기서, t는 0 이상의 정수를 나타낸다.The input layer 100 may generate the difference between the current input data and the previous input data as the delta data DDATA (t) each time the input layer 100 receives each of the plurality of input data IDATA. The input layer 100 may then provide the delta data DDATA (t) to the first linear layer 200. Here, t represents an integer of 0 or more.

제1 선형 레이어(200)는 입력 레이어(100)로부터 제공되는 델타 데이터(DDATA(t))에 대해 제1 선형 연산을 수행하여 제1 델타 피처를 생성하고, 상기 제1 델타 피처와 제1 레지스터(210)에 저장된 제1 이전 피처(P1_F(t-1))에 기초하여 상기 현재 입력 데이터에 대해 상기 제1 선형 연산을 수행한 결과에 상응하는 제1 현재 피처(C1_F(t))를 생성할 수 있다. 이후, 제1 선형 레이어(200)는 제1 현재 피처(C1_F(t))를 제1 비선형 레이어(300)에 제공할 수 있다.The first linear layer 200 performs a first linear operation on the delta data DDATA (t) provided from the input layer 100 to create a first delta feature and the first delta feature and the first register (T)) corresponding to the result of performing the first linear operation on the current input data based on a first previous feature (P1_F (t-1) can do. The first linear layer 200 may then provide the first current feature C1_F (t) to the first non-linear layer 300. [

일 실시예에 있어서, 제1 선형 레이어(200)는 뉴럴 네트워크의 컨볼루션(convolution) 레이어에 상응할 수 있다. 따라서 상기 제1 선형 연산은 델타 데이터(DDATA(t))와 제1 웨이트(weight) 사이의 덧셈 연산 및 곱셈 연산을 포함할 수 있다. 상기 제1 웨이트는 미리 정의될 수 있다.In one embodiment, the first linear layer 200 may correspond to a convolution layer of a neural network. Thus, the first linear operation may include an addition operation and a multiplication operation between the delta data (DDATA (t)) and the first weight. The first weight may be predefined.

제1 비선형 레이어(300)는 제1 선형 레이어(200)로부터 제공되는 제1 현재 피처(C1_F(t))에 대해 제1 비선형 연산을 수행하여 제2 현재 피처를 생성하고, 상기 제2 현재 피처와 제2 레지스터(310)에 저장된 제2 이전 피처(P2_F(t-1))에 기초하여 제2 델타 피처(D2_F(t))를 생성할 수 있다. 이후, 제1 비선형 레이어(300)는 제2 델타 피처(D2_F(t))를 제2 선형 레이어(400)에 제공할 수 있다.The first nonlinear layer 300 performs a first nonlinear operation on the first current feature C1_F (t) provided from the first linear layer 200 to produce a second current feature, (T) based on the second previous feature P2_F (t-1) stored in the first register 310 and the second previous feature P2_F (t-1) stored in the second register 310. [ The first non-linear layer 300 may then provide a second delta feature D2_F (t) to the second linear layer 400. [

일 실시예에 있어서, 제1 비선형 레이어(300)는 뉴럴 네트워크의 활성(activation) 레이어 및 풀링(pooling) 레이어 중의 하나에 상응할 수 있다. In one embodiment, the first non-linear layer 300 may correspond to one of an activation layer and a pooling layer of the neural network.

제2 선형 레이어(400)는 제1 비선형 레이어(300)로부터 제공되는 제2 델타 피처(D2_F(t))에 대해 제2 선형 연산을 수행하여 제3 델타 피처를 생성하고, 상기 제3 델타 피처와 제3 레지스터(410)에 저장된 제3 이전 피처(P3_F(t-1))에 기초하여 상기 제2 현재 피처에 대해 상기 제2 선형 연산을 수행한 결과에 상응하는 제3 현재 피처(C3_F(t))를 생성할 수 있다. 이후, 제2 선형 레이어(400)는 제3 현재 피처(C3_F(t))를 출력 레이어(700)에 제공할 수 있다.The second linear layer 400 performs a second linear operation on the second delta feature D2_F (t) provided from the first non-linear layer 300 to produce a third delta feature, (C3_F (t-1)) corresponding to a result of performing the second linear operation on the second current feature based on a third current feature (P3_F (t-1) stored in a third register 410) t) < / RTI > The second linear layer 400 may then provide the third current feature C3_F (t) to the output layer 700. [

일 실시예에 있어서, 제2 선형 레이어(400)는 뉴럴 네트워크의 풀리 커넥티드(fully connected) 레이어에 상응할 수 있다. 따라서 상기 제2 선형 연산은 제2 델타 피처(D2_F(t))와 미리 정해진 제2 웨이트에 상응하는 행렬 사이의 행렬 곱 연산을 포함할 수 있다. 상기 제2 웨이트에 상응하는 행렬은 미리 정의될 수 있다.In one embodiment, the second linear layer 400 may correspond to a fully connected layer of a neural network. Thus, the second linear operation may comprise a matrix multiplication operation between a second delta feature D2_F (t) and a matrix corresponding to a predetermined second weight. A matrix corresponding to the second weight may be predefined.

출력 레이어(700)는 제2 선형 레이어(400)로부터 제3 현재 피처(C3_F(t))를 수신할 수 있다.The output layer 700 may receive the third current feature C3_F (t) from the second linear layer 400. [

상술한 바와 같이, 제3 현재 피처(C3_F(t))는 상기 현재 입력 데이터에 대해 상기 제1 선형 연산, 상기 제1 비선형 연산, 및 상기 제2 선형 연산을 순차적으로 수행한 결과에 상응하므로, 제3 현재 피처(C3_F(t))는 상기 현재 입력 데이터에 포함되는 정보를 함축적으로 포함할 수 있다.As described above, the third current feature C3_F (t) corresponds to the result of sequentially performing the first linear operation, the first non-linear operation, and the second linear operation on the current input data, The third current feature C3_F (t) may implicitly include information included in the current input data.

따라서 출력 레이어(700)는 제2 선형 레이어(400)로부터 제공되는 제3 현재 피처(C3_F(t))를 사용하여 상기 현재 입력 데이터에 포함되는 정보를 인식하고, 상기 인식된 정보에 상응하는 인식 신호(REC)를 생성할 수 있다.Accordingly, the output layer 700 recognizes the information included in the current input data using the third current feature C3_F (t) provided from the second linear layer 400, and recognizes the corresponding information It is possible to generate the signal REC.

일 실시예에 있어서, 복수의 입력 데이터들(IDATA)은 비디오 스트림(video stream)에 포함되는 복수의 프레임 데이터들에 상응할 수 있다. 이 경우, 출력 레이어(700)는 제2 선형 레이어(400)로부터 제공되는 제3 현재 피처(C3_F(t))를 사용하여 상기 복수의 프레임 데이터들 중에서 상기 현재 입력 데이터에 상응하는 프레임 데이터에 포함되는 사물을 인식하고, 상기 인식된 사물에 상응하는 인식 신호(REC)를 생성할 수 있다.In one embodiment, the plurality of input data IDATA may correspond to a plurality of frame data included in a video stream. In this case, the output layer 700 is included in the frame data corresponding to the current input data among the plurality of frame data using the third current feature C3_F (t) provided from the second linear layer 400 , And generate a recognition signal (REC) corresponding to the recognized object.

도 2는 본 발명의 일 실시예에 따른 뉴럴 네트워크 장치의 동작 방법을 나타내는 순서도이다.2 is a flowchart illustrating an operation method of a neural network device according to an embodiment of the present invention.

도 2에 도시된 뉴럴 네트워크 장치의 동작 방법은 도 1의 뉴럴 네트워크 장치(10)를 통해 수행될 수 있다.The method of operation of the neural network device shown in FIG. 2 may be performed through the neural network device 10 of FIG.

이하, 도 1 및 2를 참조하여 뉴럴 네트워크 장치(10)의 동작 방법에 대해 설명한다.Hereinafter, an operation method of the neural network device 10 will be described with reference to Figs. 1 and 2. Fig.

입력 레이어(100)는 복수의 입력 데이터들(IDATA)을 순차적으로 수신할 수 있다(단계 S110).The input layer 100 may sequentially receive a plurality of input data IDATA (step S110).

일 실시예에 있어서, 복수의 입력 데이터들(IDATA)에 포함되는 연속되는 입력 데이터들은 서로 높은 유사성을 가질 수 있다. 예를 들어, 복수의 입력 데이터들(IDATA)은 비디오 스트림(video stream)에 포함되는 복수의 프레임 데이터들에 상응할 수 있다.In one embodiment, consecutive input data included in the plurality of input data IDATA may have a high similarity with each other. For example, the plurality of input data IDATA may correspond to a plurality of frame data included in a video stream.

이하, 복수의 입력 데이터들(IDATA)은 비디오 스트림(video stream)에 포함되는 복수의 프레임 데이터들인 것으로 설명한다. 그러나, 본 발명은 이에 한정되지 않으며, 입력 레이어(100)에 제공되는 복수의 입력 데이터들(IDATA)은 연속되는 입력 데이터들이 서로 높은 유사성을 갖는 임의의 종류의 데이터일 수 있다.Hereinafter, a plurality of input data IDATA is described as a plurality of frame data included in a video stream. However, the present invention is not limited to this, and a plurality of input data IDATA provided to the input layer 100 may be any kind of data in which consecutive input data have high similarities with each other.

입력 레이어(100)는 복수의 입력 데이터들(IDATA) 각각을 수신할 때마다 현재 입력 데이터(IDATA(t))와 이전 입력 데이터(IDATA(t-1))의 차이를 델타 데이터(DDATA(t))로서 생성할 수 있다(단계 S120). The input layer 100 divides the difference between the current input data IDATA (t) and the previous input data IDATA (t-1) by the delta data DDATA (t-1) every time a plurality of input data IDATA is received )) (Step S120).

예를 들어, 입력 레이어(100)는 복수의 입력 데이터들(IDATA) 각각을 수신할 때마다 아래의 [수학식 1]에 따른 동작을 수행하여 델타 데이터(DDATA(t))를 생성할 수 있다.For example, the input layer 100 can generate the delta data DDATA (t) by performing an operation according to the following formula (1) each time it receives each of a plurality of input data IDATA .

[수학식 1][Equation 1]

DDATA(t) = IDATA(t), (if, t = 0)DDATA (t) = IDATA (t), (if, t = 0)

DDATA(t) = IDATA(t) - IDATA(t-1), (if, t > 0) DDATA (t) = IDATA (t) - IDATA (t-1), (if, t > 0)

상기 [수학식 1]에 표현된 바와 같이, 입력 레이어(100)는 복수의 입력 데이터들(IDATA) 중의 첫 번째 입력 데이터(IDATA(0))를 델타 데이터(DDATA(0))로서 생성하고, 첫 번째 입력 데이터(IDATA(0)) 이후에 수신되는 입력 데이터들(IDATA)에 대해서는 현재 수신되는 현재 입력 데이터(IDATA(t))에서 현재 입력 데이터(IDATA(t))의 직전에 수신된 이전 입력 데이터(IDATA(t-1))를 감산하여 델타 데이터(DDATA(t))를 생성할 수 있다.The input layer 100 generates the first input data IDATA (0) among the plurality of input data IDATA as the delta data DDATA (0), and outputs the first input data IDATA The input data IDATA received after the first input data IDATA (0) includes the previous input data IDATA (t) received immediately before the current input data IDATA (t) The delta data DDATA (t) can be generated by subtracting the input data IDATA (t-1).

일 실시예에 있어서, 입력 레이어(100)는 현재 입력 데이터(IDATA(t))와 이전 입력 데이터(IDATA(t-1))의 차이가 문턱값보다 작은 경우, 델타 데이터(DDATA(t))는 "0"의 값을 갖는 것으로 결정하고, 현재 입력 데이터(IDATA(t))와 이전 입력 데이터(IDATA(t-1))의 차이가 상기 문턱값 보다 크거나 같은 경우, 현재 입력 데이터(IDATA(t))와 이전 입력 데이터(IDATA(t-1))의 차이를 델타 데이터(DDATA(t))로서 결정할 수 있다.In one embodiment, the input layer 100 outputs the delta data DDATA (t) when the difference between the current input data IDATA (t) and the previous input data IDATA (t-1) And if the difference between the current input data IDATA (t) and the previous input data IDATA (t-1) is greater than or equal to the threshold value, the current input data IDATA (t)) and the previous input data IDATA (t-1) as the delta data DDATA (t).

한편, 입력 레이어(100)는 현재 수신되는 현재 입력 데이터(IDATA(t))에서 현재 입력 데이터(IDATA(t))의 직전에 수신된 이전 입력 데이터(IDATA(t-1))를 감산하여 델타 데이터(DDATA(t))를 생성하는 것으로 설명하였으나, 본 발명은 이에 한정되지 않는다. 실시예에 따라서, 입력 레이어(100)는 현재 수신되는 현재 입력 데이터(IDATA(t))에서 현재 입력 데이터(IDATA(t))보다 두 사이클 이상 이전에 수신된 이전 입력 데이터(IDATA(t-a))를 감산하여 델타 데이터(DDATA(t))를 생성할 수도 있다. 여기서, a는 2 이상의 정수를 나타낸다.On the other hand, the input layer 100 subtracts the previous input data IDATA (t-1) received immediately before the current input data IDATA (t) from the currently received input data IDATA (t) Data DDATA (t) is generated. However, the present invention is not limited to this. The input layer 100 outputs the previous input data IDATA (ta) received two or more cycles earlier than the current input data IDATA (t) in the currently received input data IDATA (t) To generate delta data DDATA (t). Here, a represents an integer of 2 or more.

예를 들어, 입력 레이어(100)는 현재 수신되는 현재 입력 데이터(IDATA(t))에서 현재 입력 데이터(IDATA(t))보다 두 사이클 이전에 수신된 이전 입력 데이터(IDATA(t-2))를 감산하여 델타 데이터(DDATA(t))를 생성할 수 있다. 또는, 입력 레이어(100)는 현재 수신되는 현재 입력 데이터(IDATA(t))에서 현재 입력 데이터(IDATA(t))보다 세 사이클 이전에 수신된 이전 입력 데이터(IDATA(t-3))를 감산하여 델타 데이터(DDATA(t))를 생성할 수 있다.For example, the input layer 100 outputs the previous input data IDATA (t-2) received two cycles before the current input data IDATA (t) in the current input data IDATA (t) To generate delta data DDATA (t). Alternatively, the input layer 100 may subtract the previous input data IDATA (t-3) received three cycles before the current input data IDATA (t) from the currently received input data IDATA (t) To generate delta data DDATA (t).

복수의 입력 데이터들(IDATA)이 비디오 스트림(video stream)에 포함되는 복수의 프레임 데이터들인 경우, 현재 입력 데이터(IDATA(t))와 이전 입력 데이터(IDATA(t-1))는 높은 유사성을 가질 수 있다. 따라서 델타 데이터(DDATA(t))에 포함되는 화소값들 중에서 대부분의 화소값들은 "0"일 수 있다.The present input data IDATA (t) and the previous input data IDATA (t-1) have high similarity when a plurality of input data IDATA is a plurality of frame data included in a video stream Lt; / RTI > Therefore, most pixel values among the pixel values included in the delta data DDATA (t) may be "0 ".

이후, 입력 레이어(100)는 현재 입력 데이터(IDATA(t))를 제1 선형 레이어(200)에 제공하지 않고, 델타 데이터(DDATA(t))만을 제1 선형 레이어(200)에 제공할 수 있다.The input layer 100 may then provide only the delta data DDATA (t) to the first linear layer 200 without providing the current input data IDATA (t) to the first linear layer 200 have.

제1 선형 레이어(200)는 입력 레이어(100)로부터 제공되는 델타 데이터(DDATA(t))에 대해 제1 선형 연산을 수행하여 제1 델타 피처(D1_F(t))를 생성하고, 제1 델타 피처(D1_F(t))와 제1 레지스터(210)에 저장된 제1 이전 피처(P1_F(t-1))에 기초하여 현재 입력 데이터(IDATA(t))에 대해 상기 제1 선형 연산을 수행한 결과에 상응하는 제1 현재 피처(C1_F(t))를 생성할 수 있다(단계 S130).The first linear layer 200 performs a first linear operation on the delta data DDATA (t) provided from the input layer 100 to produce a first delta feature D1_F (t) Performs the first linear operation on the current input data IDATA (t) based on the feature D1_F (t) and the first previous feature P1_F (t-1) stored in the first register 210 The first current feature C1_F (t) corresponding to the result can be generated (step S130).

여기서, 제1 레지스터(210)에 저장된 제1 이전 피처(P1_F(t-1))는 이전 입력 데이터(IDATA(t-1))에 대해 상기 제1 선형 연산을 수행한 결과에 상응할 수 있다.Here, the first previous feature P1_F (t-1) stored in the first register 210 may correspond to the result of performing the first linear operation on the previous input data IDATA (t-1) .

도 3은 도 2의 뉴럴 네트워크 장치의 동작 방법에 포함되는 제1 선형 레이어가 제1 현재 피처를 생성하는 단계의 일 예를 나타내는 순서도이다.FIG. 3 is a flowchart showing an example of a step in which a first linear layer included in a method of operating the neural network device of FIG. 2 generates a first current feature.

도 3을 참조하면, 제1 선형 레이어(200)는 입력 레이어(100)로부터 제공되는 델타 데이터(DDATA(t))에 대해 상기 제1 선형 연산을 수행하여 제1 델타 피처(D1_F(t))를 생성할 수 있다(단계 S131).Referring to FIG. 3, the first linear layer 200 performs the first linear operation on the delta data DDATA (t) provided from the input layer 100 to form a first delta feature D1_F (t) (Step S131).

일 실시예에 있어서, 제1 선형 레이어(200)는 뉴럴 네트워크의 컨볼루션(convolution) 레이어에 상응할 수 있다. 이 경우, 상기 제1 선형 연산은 미리 정해진 제1 웨이트를 이용한 컨볼루션 연산일 수 있다. 따라서 제1 선형 레이어(200)는 아래의 [수학식 2]에 따른 동작을 수행하여 제1 델타 피처(D1_F(t))를 생성할 수 있다.In one embodiment, the first linear layer 200 may correspond to a convolution layer of a neural network. In this case, the first linear operation may be a convolution operation using a predetermined first weight. Accordingly, the first linear layer 200 can perform the operation according to the following equation (2) to generate the first delta feature D1_F (t).

[수학식 2]&Quot; (2) "

D1_F(t) = DDATA(t)*kD1_F (t) = DDATA (t) * k

여기서, *는 컨볼루션 연산을 나타내고, k는 상기 컨볼루션 연산에 사용되는 상기 제1 웨이트를 나타낸다.Here, * denotes a convolution operation, and k denotes the first weight used in the convolution operation.

도 4는 도 3에 도시된 상기 제1 선형 레이어가 델타 데이터에 대해 제1 선형 연산을 수행하여 제1 델타 피처를 생성하는 과정의 일 예를 설명하기 위한 도면이다.4 is a view for explaining an example of a process of the first linear layer shown in FIG. 3 to perform a first linear operation on delta data to generate a first delta feature.

도 4에서, 델타 데이터(DDATA(t))는 n1*m1개의 값들을 가지고, 제1 델타 피처(D1_F(t))는 n2*m2개의 값들을 가지는 것으로 도시된다. 여기서, n1, m1, n2, 및 m2는 각각 양의 정수를 나타낸다.In Figure 4, the delta data DDATA (t) has n1 * m1 values and the first delta feature D1_F (t) is shown to have n2 * m2 values. Here, n1, m1, n2, and m2 represent positive integers, respectively.

도 4에 도시된 바와 같이, 제1 선형 레이어(200)는 델타 데이터(DDATA(t))에 제1 윈도우(W1)를 설정하고, 제1 윈도우(W1) 내에 포함되는 값들에 대해 상기 제1 웨이트를 사용하여 제1 선형 연산(L1_OP)을 수행하여 제1 델타 피처(D1_F(t))에 포함되는 하나의 값을 생성할 수 있다. 이와 같이, 제1 선형 레이어(200)는 제1 윈도우(W1)를 이동시켜가면서 제1 윈도우(W1) 내에 포함되는 값들에 대해 상기 제1 웨이트를 사용하여 제1 선형 연산(L1_OP)을 수행하여 제1 델타 피처(D1_F(t))를 생성할 수 있다.4, the first linear layer 200 sets a first window W1 in the delta data DDATA (t), and for the values contained in the first window W1, We can perform a first linear operation (L1_OP) using the weights to generate one value included in the first delta feature (D1_F (t)). As such, the first linear layer 200 performs a first linear operation (L1_OP) using the first weight for values included in the first window W1 while moving the first window W1 To generate a first delta feature D1_F (t).

그러나, 도 4에 도시된 제1 선형 연산(L1_OP)은 일 예에 불과하고, 본 발명은 이에 한정되지 않는다. 실시예에 따라서, 제1 선형 연산(L1_OP)은 임의의 선형 연산일 수 있다.However, the first linear operation (L1_OP) shown in Fig. 4 is merely an example, and the present invention is not limited thereto. Depending on the embodiment, the first linear operation (L1_OP) may be any linear operation.

다시 도 3을 참조하면, 제1 선형 연산(L1_OP)은 델타 데이터(DDATA(t))와 상기 제1 웨이트 사이의 덧셈 연산 및 곱셈 연산을 포함하므로, 제1 선형 연산(L1_OP)은 교환법칙(commutative law), 분배법칙(distributive law), 및 결합법칙(associated law)을 만족할 수 있다.Referring back to FIG. 3, the first linear operation (L1_OP) includes an add operation and a multiplication operation between the delta data (DDATA (t)) and the first weight, commutative law, distributive law, and associated law.

따라서 아래의 [수학식 3]에 표현된 바와 같이, 현재 입력 데이터(IDATA(t))에 대해 제1 선형 연산(L1_OP)을 수행한 결과에 상응하는 제1 현재 피처(C1_F(t))는 이전 입력 데이터(IDATA(t-1))에 대해 상기 제1 선형 연산을 수행한 결과에 상응하는 제1 레지스터(210)에 저장된 제1 이전 피처(P1_F(t-1))와 델타 데이터(DDATA(t))에 대해 제1 선형 연산(L1_OP)을 수행한 결과에 상응하는 제1 델타 피처(D1_F(t))의 합으로 표현될 수 있다. Therefore, the first current feature C1_F (t) corresponding to the result of performing the first linear operation (L1_OP) on the current input data IDATA (t), as expressed in the following formula (3) The first previous feature P1_F (t-1) stored in the first register 210 corresponding to the result of performing the first linear operation on the previous input data IDATA (t-1) and the delta data DDATA (t)) corresponding to the result of performing the first linear operation (L1_OP) on the first delta feature (D1_F (t)).

[수학식 3]&Quot; (3) "

C1_F(t) = IDATA(t)*k C1_F (t) = IDATA (t) * k

= (IDATA(t-1) + DDATA(t))*k        = (IDATA (t-1) + DDATA (t)) * k

= IDATA(t-1)*k + DDATA(t)*k         = IDATA (t-1) * k + DDATA (t) * k

= P1_F(t-1) + D1_F(t)        = P1_F (t-1) + D1_F (t)

따라서 제1 선형 레이어(200)는 제1 델타 피처(D1_F(t))와 제1 레지스터(210)에 저장된 제1 이전 피처(P1_F(t-1))를 합산하여 제1 현재 피처(C1_F(t))를 생성할 수 있다(단계 S133).Thus the first linear layer 200 sums the first delta feature D1_F (t) and the first previous feature P1_F (t-1) stored in the first register 210 to produce a first current feature C1_F t)) (step S133).

또한, 제1 선형 레이어(200)는 제1 현재 피처(C1_F(t))를 제1 레지스터(210)에 저장함으로써, 제1 레지스터(210)에 저장된 제1 이전 피처(P1_F(t-1))를 제1 현재 피처(C1_F(t))로 업데이트할 수 있다(단계 S135).The first linear layer 200 also stores the first current feature P1_F (t-1) stored in the first register 210 by storing the first current feature C1_F (t) ) To the first current feature C1_F (t) (step S135).

도 3 및 4를 참조하여 상술한 바와 같이, 제1 선형 레이어(200)는 현재 입력 데이터(IDATA(t))에 대해 제1 선형 연산(L1_OP)을 직접 수행하여 제1 현재 피처(C1_F(t))를 생성하는 것이 아니라, 델타 데이터(DDATA(t))에 대해 상기 제1 선형 연산을 수행한 후 제1 이전 피처(P1_F(t-1))에 합산하는 재귀적인 방법을 사용하여 제1 현재 피처(C1_F(t))를 생성할 수 있다.As described above with reference to Figures 3 and 4, the first linear layer 200 directly performs a first linear operation (L1_OP) on the current input data IDATA (t) to obtain a first current feature C1_F (t ) Using a recursive method of performing the first linear operation on the delta data DDATA (t) and then adding it to the first previous feature P1_F (t-1) The current feature C1_F (t) can be generated.

상술한 바와 같이, 복수의 입력 데이터들(IDATA)이 비디오 스트림(video stream)에 포함되는 복수의 프레임 데이터들인 경우, 현재 입력 데이터(IDATA(t))와 이전 입력 데이터(IDATA(t-1))의 차이에 상응하는 델타 데이터(DDATA(t))에 포함되는 값들 중에서 대부분의 값들은 "0"일 수 있다. 따라서 제1 선형 레이어(200)는 델타 데이터(DDATA(t))에 대한 제1 선형 연산(L1_OP)을 아주 빠른 속도로 수행할 수 있다. 따라서 제1 선형 레이어(200)는 현재 입력 데이터(IDATA(t))에 대해 제1 선형 연산(L1_OP)을 수행한 결과에 상응하는 제1 현재 피처(C1_F(t))를 빠른 속도로 생성할 수 있다.As described above, when the plurality of input data IDATA is a plurality of frame data included in the video stream, the current input data IDATA (t) and the previous input data IDATA (t-1) , Most of the values included in the delta data DDATA (t) corresponding to the difference of the number of bits (e.g. Accordingly, the first linear layer 200 can perform the first linear operation (L1_OP) on the delta data DDATA (t) at a very high speed. Accordingly, the first linear layer 200 generates the first current feature C1_F (t) corresponding to the result of performing the first linear operation (L1_OP) on the current input data IDATA (t) at a high speed .

이후, 제1 선형 레이어(200)는 제1 현재 피처(C1_F(t))만을 제1 비선형 레이어(300)에 제공할 수 있다.The first linear layer 200 may then provide only the first current feature C1_F (t) to the first non-linear layer 300. [

다시 도 2를 참조하면, 제1 비선형 레이어(300)는 제1 선형 레이어(200)로부터 제공되는 제1 현재 피처(C1_F(t))에 대해 제1 비선형 연산을 수행하여 제2 현재 피처(C2_F(t))를 생성하고, 제2 현재 피처(C2_F(t))와 제2 레지스터(310)에 저장된 제2 이전 피처(P2_F(t-1))에 기초하여 제2 델타 피처(D2_F(t))를 생성할 수 있다(단계 S140). Referring again to FIG. 2, a first nonlinear layer 300 performs a first nonlinear operation on a first current feature C1_F (t) provided from a first linear layer 200 to form a second current feature C2_F (t2) based on the second current feature C2_F (t) and the second previous feature P2_F (t-1) stored in the second register 310. The second delta feature D2_F )) (Step S140).

여기서, 제2 레지스터(310)에 저장된 제2 이전 피처(P2_F(t-1))는 직전 단계에서 제1 비선형 레이어(300)에 제공된 제1 현재 피처에 대해 상기 제1 비선형 연산을 수행한 결과에 상응할 수 있다.Here, the second previous feature P2_F (t-1) stored in the second register 310 is the result of performing the first nonlinear operation on the first current feature provided to the first nonlinear layer 300 in the previous step ≪ / RTI >

도 5는 도 2의 뉴럴 네트워크 장치의 동작 방법에 포함되는 제1 비선형 레이어가 제2 델타 피처를 생성하는 단계의 일 예를 나타내는 순서도이다.FIG. 5 is a flowchart showing an example of a step in which a first nonlinear layer included in an operation method of the neural network device of FIG. 2 generates a second delta feature.

도 5를 참조하면, 제1 비선형 레이어(300)는 제1 선형 레이어(200)로부터 제공되는 제1 현재 피처(C1_F(t))에 대해 상기 제1 비선형 연산을 수행하여 제2 현재 피처(C2_F(t))를 생성할 수 있다(단계 S141).5, a first nonlinear layer 300 performs the first nonlinear operation on a first current feature C1_F (t) provided from a first linear layer 200 to form a second current feature C2_F (t)) (step S141).

일 실시예에 있어서, 제1 비선형 레이어(300)는 뉴럴 네트워크의 활성(activation) 레이어 및 풀링(pooling) 레이어 중의 하나에 상응할 수 있다. In one embodiment, the first non-linear layer 300 may correspond to one of an activation layer and a pooling layer of the neural network.

도 6은 도 5에 도시된 상기 제1 비선형 레이어가 상기 제1 현재 피처에 대해 제1 비선형 연산을 수행하여 제2 현재 피처를 생성하는 과정의 일 예를 설명하기 위한 도면이다.FIG. 6 is a diagram illustrating an example of a process in which the first nonlinear layer shown in FIG. 5 performs a first nonlinear operation on the first current feature to generate a second current feature.

도 6에는 제1 비선형 레이어(300)가 뉴럴 네트워크의 풀링 레이어인 경우에 대한 제1 비선형 레이어(300)의 동작이 예시적으로 도시된다.6 illustrates an exemplary operation of the first non-linear layer 300 when the first non-linear layer 300 is a pulling layer of a neural network.

도 6에서, 제1 현재 피처(C1_F(t))는 n2*m2개의 값들을 가지고, 제2 현재 피처(C2_F(t))는 n3*m3개의 값들을 가지는 것으로 도시된다. 여기서, n3 및 m3은 각각 양의 정수를 나타낸다.In Figure 6, the first current feature C1_F (t) has n2 * m2 values and the second current feature C2_F (t) is shown having n3 * m3 values. Here, n3 and m3 represent positive integers, respectively.

도 6에 도시된 바와 같이, 제1 비선형 레이어(300)는 제1 현재 피처(C1_F(t))에 제2 윈도우(W2)를 설정하고, 제2 윈도우(W2) 내에 포함되는 값들 중의 최대의 값을 제2 현재 피처(C2_F(t))에 포함되는 하나의 값으로서 생성할 수 있다. 이와 같이, 제1 비선형 레이어(300)는 제2 윈도우(W2)를 이동시켜가면서 제2 윈도우(W2) 내에 포함되는 값들 중의 최대의 값을 제2 현재 피처(C2_F(t))에 포함되는 값들로서 생성함으로써 제1 비선형 연산(NL1_OP)을 수행할 수 있다.6, the first nonlinear layer 300 sets the second window W2 to the first current feature C1_F (t), and sets the maximum of the values contained in the second window W2 Value as one value included in the second current feature C2_F (t). Thus, the first nonlinear layer 300 moves the second window W2 while moving the maximum value among the values included in the second window W2 to a value included in the second current feature C2_F (t) The first nonlinear operation NL1_OP can be performed.

도 6을 참조하여 상술한 바와 같이, 제1 비선형 연산(NL1_OP)은 제1 현재 피처(C1_F(t))에 포함되는 값들과 웨이트 사이의 곱셈 연산 및 덧셈 연산을 포함하지 않으므로, 제1 비선형 레이어(300)는 제1 비선형 연산(NL1_OP)을 빠른 속도로 수행할 수 있다.As described above with reference to FIG. 6, since the first nonlinear operation NL1_OP does not include the multiplication and addition operations between the values included in the first current feature C1_F (t) and the weight, The controller 300 can perform the first nonlinear operation NL1_OP at a high speed.

그러나, 도 6에 도시된 제1 비선형 연산(NL1_OP)은 일 예에 불과하고, 본 발명은 이에 한정되지 않는다. 실시예에 따라서, 제1 비선형 연산(NL1_OP)은 임의의 비선형 연산일 수 있다.However, the first nonlinear operation (NL1_OP) shown in Fig. 6 is merely an example, and the present invention is not limited thereto. Depending on the embodiment, the first nonlinear operation NL1_OP may be any nonlinear operation.

다시 도 5를 참조하면, 제1 비선형 레이어(300)는 아래의 [수학식 4]에 표현된 바와 같이, 제2 현재 피처(C2_F(t))에서 제2 레지스터(310)에 저장된 제2 이전 피처(P2_F(t-1))를 감산하여 제2 델타 피처(D2_F(t))를 생성할 수 있다(단계 S143).Referring again to FIG. 5, the first non-linear layer 300 includes a second non-linear layer 300 stored in the second register 310 at the second current feature C2_F (t), as represented in Equation 4 below. The second delta feature D2_F (t) may be generated by subtracting the feature P2_F (t-1) (step S143).

[수학식 4]&Quot; (4) "

D2_F(t) = C2_F(t) - P2_F(t-1)D2_F (t) = C2_F (t) - P2_F (t-1)

또한, 제1 비선형 레이어(300)는 제2 현재 피처(C2_F(t))를 제2 레지스터(310)에 저장함으로써, 제2 레지스터(310)에 저장된 제2 이전 피처(P2_F(t-1))를 제2 현재 피처(C2_F(t))로 업데이트할 수 있다(단계 S145).The first nonlinear layer 300 also stores the second current feature P2_F (t-1) stored in the second register 310 by storing the second current feature C2_F (t) ) To the second current feature C2_F (t) (step S145).

이후, 제1 비선형 레이어(300)는 제2 델타 피처(D2_F(t))를 제2 선형 레이어(400)에 제공할 수 있다.The first non-linear layer 300 may then provide a second delta feature D2_F (t) to the second linear layer 400. [

상술한 바와 같이, 복수의 입력 데이터들(IDATA)이 비디오 스트림(video stream)에 포함되는 복수의 프레임 데이터들인 경우, 현재 입력 데이터(IDATA(t))와 이전 입력 데이터(IDATA(t-1))는 높은 유사성을 가지므로, 제2 현재 피처(C2_F(t))와 제2 이전 피처(P2_F(t-1))의 차이에 상응하는 제2 델타 피처(D2_F(t))에 포함되는 값들 중에서 대부분의 값들은 "0"일 수 있다.As described above, when the plurality of input data IDATA is a plurality of frame data included in the video stream, the current input data IDATA (t) and the previous input data IDATA (t-1) ) Has a high similarity so that the values included in the second delta feature D2_F (t) corresponding to the difference between the second current feature C2_F (t) and the second previous feature P2_F (t-1) Most of the values can be "0 ".

다시 도 2를 참조하면, 제2 선형 레이어(400)는 제1 비선형 레이어(300)로부터 제공되는 제2 델타 피처(D2_F(t))에 대해 제2 선형 연산을 수행하여 제3 델타 피처(D3_F(t))를 생성하고, 제3 델타 피처(D3_F(t))와 제3 레지스터(410)에 저장된 제3 이전 피처(P3_F(t-1))에 기초하여 제2 현재 피처(C2_F(t))에 대해 상기 제2 선형 연산을 수행한 결과에 상응하는 제3 현재 피처(C3_F(t))를 생성할 수 있다(단계 S150). Referring again to FIG. 2, the second linear layer 400 performs a second linear operation on the second delta feature D2_F (t) provided from the first non-linear layer 300 to form a third delta feature D3_F (t)) and generates a second current feature C2_F (t-1) based on the third previous feature P3_F (t-1) stored in the third register 410 and the third delta feature D3_F ) (S350 (t)) corresponding to the result of performing the second linear operation on the third current feature (C3_F (t)).

여기서, 제3 레지스터(410)에 저장된 제3 이전 피처(P3_F(t-1))는 제1 비선형 레이어(300)의 제2 레지스터(310)에 저장된 제2 이전 피처(P2_F(t-1))에 대해 상기 제2 선형 연산을 수행한 결과에 상응할 수 있다.Here, the third previous feature P3_F (t-1) stored in the third register 410 is the second previous feature P2_F (t-1) stored in the second register 310 of the first non-linear layer 300, ) Of the second linear operation.

도 7은 도 2의 뉴럴 네트워크 장치의 동작 방법에 포함되는 제2 선형 레이어가 제3 현재 피처를 생성하는 단계의 일 예를 나타내는 순서도이다.FIG. 7 is a flowchart showing an example of a step in which a second linear layer included in the method of operation of the neural network device of FIG. 2 generates a third current feature.

도 7을 참조하면, 제2 선형 레이어(400)는 제1 비선형 레이어(300)로부터 제공되는 제2 델타 피처(D2_F(t))에 대해 상기 제2 선형 연산을 수행하여 제3 델타 피처(D3_F(t))를 생성할 수 있다(단계 S151).7, the second linear layer 400 performs the second linear operation on the second delta feature D2_F (t) provided from the first non-linear layer 300 to form a third delta feature D3_F (t)) (step S151).

일 실시예에 있어서, 제2 선형 레이어(400)는 뉴럴 네트워크의 풀리 커넥티드(fully connected) 레이어에 상응할 수 있다. 이 경우, 상기 제2 선형 연산은 미리 정해진 제2 웨이트에 상응하는 행렬을 이용한 행렬 곱 연산일 수 있다. 따라서 상기 제2 선형 연산을 통해 생성되는 제3 델타 피처(D3_F(t))에 포함되는 값들 각각은 제2 델타 피처(D2_F(t))에 포함되는 모든 값들과 연관될 수 있다.In one embodiment, the second linear layer 400 may correspond to a fully connected layer of a neural network. In this case, the second linear operation may be a matrix multiplication operation using a matrix corresponding to a predetermined second weight. Therefore, each of the values included in the third delta feature D3_F (t) generated through the second linear operation may be associated with all values included in the second delta feature D2_F (t).

도 8은 도 7에 도시된 상기 제2 선형 레이어가 상기 제2 델타 피처에 대해 제2 선형 연산을 수행하여 제3 델타 피처를 생성하는 과정의 일 예를 설명하기 위한 도면이다.FIG. 8 is a view for explaining an example of a process in which the second linear layer shown in FIG. 7 performs a second linear operation on the second delta feature to generate a third delta feature.

도 8에서, 제2 델타 피처(D2_F(t))는 n3*m3개의 값들을 가지고, 제3 델타 피처(D3_F(t))는 n4*m4개의 값들을 가지는 것으로 도시된다. 여기서, n4 및 m4는 각각 양의 정수를 나타낸다.8, the second delta feature D2_F (t) has n3 * m3 values and the third delta feature D3_F (t) has n4 * m4 values. Here, n4 and m4 represent positive integers, respectively.

도 8에 도시된 바와 같이, 제2 선형 레이어(400)는 제2 델타 피처(D2_F(t))에 포함되는 모든 값들과 상기 제2 웨이트에 상응하는 행렬에 대해 행렬 곱 연산을 수행하여 제3 델타 피처(D3_F(t))에 포함되는 값들 각각을 생성함으로써 제2 선형 연산(L2_OP)을 수행할 수 있다. 따라서 제2 선형 연산(L2_OP)을 통해 생성되는 제3 델타 피처(D3_F(t))에 포함되는 값들 각각은 제2 델타 피처(D2_F(t))에 포함되는 모든 값들과 연관될 수 있다.8, the second linear layer 400 performs a matrix multiplication operation on all the values included in the second delta feature D2_F (t) and the matrix corresponding to the second weight, Can perform a second linear operation (L2_OP) by generating each of the values contained in the delta feature D3_F (t). Thus, each of the values contained in the third delta feature D3_F (t) generated through the second linear operation L2_OP may be associated with all values included in the second delta feature D2_F (t).

그러나, 도 8에 도시된 제2 선형 연산(L2_OP)은 일 예에 불과하고, 본 발명은 이에 한정되지 않는다. 실시예에 따라서, 제2 선형 연산(L2_OP)은 임의의 선형 연산일 수 있다.However, the second linear operation (L2_OP) shown in FIG. 8 is merely an example, and the present invention is not limited thereto. Depending on the embodiment, the second linear operation (L2_OP) may be any linear operation.

다시 도 7을 참조하면, 제2 선형 연산(L2_OP)은 제2 델타 피처(D2_F(t))에 포함되는 값들과 상기 제2 웨이트에 상응하는 행렬에 포함되는 값들 사이의 덧셈 연산 및 곱셈 연산을 포함하므로, 제2 선형 연산(L2_OP)은 교환법칙(commutative law), 분배법칙(distributive law), 및 결합법칙(associated law)을 만족할 수 있다.Referring again to FIG. 7, the second linear operation (L2_OP) performs an addition operation and a multiplication operation between the values included in the second delta feature (D2_F (t)) and the values included in the matrix corresponding to the second weight The second linear operation L2_OP can satisfy the commutative law, the distributive law, and the associated law.

따라서 아래의 [수학식 5]에 표현된 바와 같이, 제2 현재 피처(C2_F(t))에 대해 제2 선형 연산(L2_OP)을 수행한 결과에 상응하는 제3 현재 피처(C3_F(t))는 제2 이전 피처(P2_F(t-1))에 대해 제2 선형 연산(L2_OP)을 수행한 결과에 상응하는 제3 레지스터(410)에 저장된 제3 이전 피처(P3_F(t-1))와 제2 델타 피처(D2_F(t))에 대해 제2 선형 연산(L2_OP)을 수행한 결과에 상응하는 제3 델타 피처(D3_F(t))의 합으로 표현될 수 있다. (T)) corresponding to the result of performing the second linear operation (L2_OP) on the second current feature (C2_F (t)), as represented in the following equation (5) (T-1) stored in the third register 410 corresponding to the result of performing the second linear operation (L2_OP) on the second previous feature P2_F (t-1) and the third previous feature P3_F Can be expressed by the sum of the third delta feature D3_F (t) corresponding to the result of performing the second linear operation (L2_OP) on the second delta feature D2_F (t).

[수학식 5]&Quot; (5) "

C3_F(t) = C2_F(t)xM2 C3_F (t) = C2_F (t) xM2

= (P2_F(t-1) + D2_F(t))xM2        = (P2_F (t-1) + D2_F (t)) xM2

= P2_F(t-1)xM2 + D2_F(t)xM2         = P2_F (t-1) xM2 + D2_F (t) xM2

= P3_F(t-1) + D3_F(t)        = P3_F (t-1) + D3_F (t)

여기서, x는 제2 선형 연산(L2_OP)을 나타내고, M2는 상기 제2 웨이트에 상응하는 행렬을 나타낸다.Here, x represents a second linear operation (L2_OP), and M2 represents a matrix corresponding to the second weight.

따라서 제2 선형 레이어(400)는 제3 델타 피처(D3_F(t))와 제3 레지스터(410)에 저장된 제3 이전 피처(P3_F(t-1))를 합산하여 제3 현재 피처(C3_F(t))를 생성할 수 있다(단계 S153).Thus the second linear layer 400 sums the third delta feature D3_F (t) and the third previous feature P3_F (t-1) stored in the third register 410 to produce a third current feature C3_F t)) (step S153).

또한, 제2 선형 레이어(400)는 제3 현재 피처(C3_F(t))를 제3 레지스터(410)에 저장함으로써, 제3 레지스터(410)에 저장된 제3 이전 피처(P3_F(t-1))를 제3 현재 피처(C3_F(t))로 업데이트할 수 있다(단계 S155).The second linear layer 400 also stores the third current feature P3_F (t-1) stored in the third register 410 by storing the third current feature C3_F (t) ) To the third current feature (C3_F (t)) (step S155).

도 7 및 8을 참조하여 상술한 바와 같이, 제2 선형 레이어(400)는 제2 현재 피처(C2_F(t))에 대해 제2 선형 연산(L2_OP)을 직접 수행하여 제3 현재 피처(C3_F(t))를 생성하는 것이 아니라, 제2 델타 피처(D2_F(t))에 대해 제2 선형 연산(L2_OP)을 수행한 후 제3 이전 피처(P3_F(t-1))에 합산하는 재귀적인 방법을 사용하여 제3 현재 피처(C3_F(t))를 생성할 수 있다.As described above with reference to Figures 7 and 8, the second linear layer 400 directly performs a second linear operation (L2_OP) on the second current feature C2_F (t) to generate a third current feature C3_F (t-1)) after performing a second linear operation (L2_OP) on the second delta feature (D2_F (t)) instead of generating the second delta feature May be used to generate a third current feature (C3_F (t)).

상술한 바와 같이, 복수의 입력 데이터들(IDATA)이 비디오 스트림(video stream)에 포함되는 복수의 프레임 데이터들인 경우, 제2 현재 피처(C2_F(t))와 제2 이전 피처(P2_F(t-1))의 차이에 상응하는 제2 델타 피처(D2_F(t))에 포함되는 값들 중에서 대부분의 값들은 "0"일 수 있다. 따라서 제2 선형 레이어(400)는 제2 델타 피처(D2_F(t))에 대한 제2 선형 연산(L2_OP)을 아주 빠른 속도로 수행할 수 있다. 따라서 제2 선형 레이어(400)는 제2 현재 피처(C2_F(t))에 대해 제2 선형 연산(L2_OP)을 수행한 결과에 상응하는 제3 현재 피처(C3_F(t))를 빠른 속도로 생성할 수 있다.As described above, when the plurality of input data IDATA is a plurality of frame data included in the video stream, the second current feature C2_F (t) and the second previous feature P2_F (t- 1)) of the second delta feature D2_F (t) may be "0 ". Thus, the second linear layer 400 can perform the second linear operation (L2_OP) on the second delta feature D2_F (t) at a very high speed. Accordingly, the second linear layer 400 generates the third current feature C3_F (t) corresponding to the result of performing the second linear operation (L2_OP) on the second current feature C2_F (t) at a high speed can do.

이후, 제2 선형 레이어(400)는 제3 현재 피처(C3_F(t))를 출력 레이어(700)에 제공할 수 있다.The second linear layer 400 may then provide the third current feature C3_F (t) to the output layer 700. [

상술한 바와 같이, 제3 현재 피처(C3_F(t))는 현재 입력 데이터(IDATA(t))에 대해 제1 선형 연산(L1_OP), 제1 비선형 연산(NL1_OP), 및 제2 선형 연산(L2_OP)을 순차적으로 수행한 결과에 상응하므로, 제3 현재 피처(C3_F(t))는 현재 입력 데이터(IDATA(t))에 포함되는 정보를 함축적으로 포함할 수 있다.As described above, the third current feature C3_F (t) includes a first linear operation L1_OP, a first nonlinear operation NL1_OP, and a second linear operation L2_OP (t) for the current input data IDATA ), The third current feature C3_F (t) may implicitly include information included in the current input data IDATA (t).

따라서 출력 레이어(700)는 제2 선형 레이어(400)로부터 제공되는 제3 현재 피처(C3_F(t))를 사용하여 현재 입력 데이터(IDATA(t))에 포함되는 정보를 인식하고, 상기 인식된 정보에 상응하는 인식 신호(REC)를 생성할 수 있다(단계 S180).The output layer 700 thus recognizes the information included in the current input data IDATA (t) using the third current feature C3_F (t) provided from the second linear layer 400, It is possible to generate the recognition signal REC corresponding to the information (step S180).

일 실시예에 있어서, 복수의 입력 데이터들(IDATA)은 비디오 스트림(video stream)에 포함되는 복수의 프레임 데이터들에 상응할 수 있다. 이 경우, 출력 레이어(700)는 제2 선형 레이어(400)로부터 제공되는 제3 현재 피처(C3_F(t))를 사용하여 상기 복수의 프레임 데이터들 중에서 현재 입력 데이터(IDATA(t))에 상응하는 프레임 데이터에 포함되는 사물을 인식하고, 상기 인식된 사물에 상응하는 인식 신호(REC)를 생성할 수 있다.In one embodiment, the plurality of input data IDATA may correspond to a plurality of frame data included in a video stream. In this case, the output layer 700 corresponds to the current input data IDATA (t) among the plurality of frame data using the third current feature C3_F (t) provided from the second linear layer 400 Recognizes an object included in the frame data, and generates a recognition signal REC corresponding to the recognized object.

도 1 내지 8을 참조하여 상술한 바와 같이, 본 발명에 따른 뉴럴 네트워크 장치(10)는 연속되는 입력 데이터들(IDATA) 사이의 높은 유사성을 활용하여 선형 연산을 빠른 속도로 수행함으로써, 전체적인 동작 속도를 효과적으로 향상시킬 수 있다. 따라서 본 발명에 따른 뉴럴 네트워크 장치(10)는 복수의 입력 데이터들(IDATA)이 빠른 속도로 제공되는 경우에도 복수의 입력 데이터들(IDATA)에 포함되는 정보를 빠르게 인식할 수 있다.As described above with reference to Figs. 1 to 8, the neural network apparatus 10 according to the present invention performs linear operation at a high speed utilizing the high similarity between successive input data IDATA, Can be effectively improved. Therefore, the neural network apparatus 10 according to the present invention can quickly recognize information included in a plurality of input data IDATA even when a plurality of input data IDATA is provided at a high speed.

또한, 본 발명에 따른 뉴럴 네트워크 장치(10)는 제1 선형 레이어(200) 및 제2 선형 레이어(400)에서 수행되는 연산량을 감소시킴으로써 소비 전력을 효과적으로 감소시킬 수 있다.In addition, the neural network apparatus 10 according to the present invention can effectively reduce the power consumption by reducing the amount of computation performed in the first linear layer 200 and the second linear layer 400. [

도 9는 본 발명의 일 실시예에 따른 뉴럴 네트워크(neural network) 장치를 나타내는 블록도이다.9 is a block diagram illustrating a neural network device in accordance with an embodiment of the present invention.

도 9를 참조하면, 뉴럴 네트워크 장치(20)는 입력 레이어(IN_L)(100), 제1 선형 레이어(L1_L)(200), 제1 비선형 레이어(NL1_L)(300), 제2 선형 레이어(L2_L)(400), 제2 비선형 레이어(NL2_L)(500), 제3 선형 레이어(L3_L)(600), 및 출력 레이어(O_L)(700)를 포함한다.9, the neural network device 20 includes an input layer IN_L 100, a first linear layer L1_L 200, a first non-linear layer NL1_L 300, a second linear layer L2_L A third nonlinear layer NL2_L 500, a third linear layer L3_L 600, and an output layer O_L

도 10은 본 발명의 일 실시예에 따른 뉴럴 네트워크 장치의 동작 방법을 나타내는 순서도이다.10 is a flowchart illustrating an operation method of a neural network device according to an embodiment of the present invention.

도 10에 도시된 뉴럴 네트워크 장치의 동작 방법은 도 9의 뉴럴 네트워크 장치(20)를 통해 수행될 수 있다.The method of operation of the neural network device shown in FIG. 10 may be performed through the neural network device 20 of FIG.

도 9에 도시된 뉴럴 네트워크 장치(20)는 도 1에 도시된 뉴럴 네트워크 장치(10)에서 제2 비선형 레이어(500) 및 제3 선형 레이어(600)를 더 포함하는 것이다. The neural network device 20 shown in FIG. 9 further includes a second non-linear layer 500 and a third linear layer 600 in the neural network device 10 shown in FIG.

도 1에 도시된 뉴럴 네트워크 장치(10)에서는, 제1 선형 레이어(200)는 뉴럴 네트워크의 컨볼루션(convolution) 레이어에 상응하고, 제2 선형 레이어(400)는 뉴럴 네트워크의 풀리 커넥티드(fully connected) 레이어에 상응하는 반면에, 도 9에 도시된 뉴럴 네트워크 장치(20)에서는, 제1 선형 레이어(200) 및 제2 선형 레이어(400)는 뉴럴 네트워크의 컨볼루션(convolution) 레이어에 상응하고, 제3 선형 레이어(600)는 뉴럴 네트워크의 풀리 커넥티드(fully connected) 레이어에 상응한다는 차이점을 제외하고는, 도 9에 도시된 뉴럴 네트워크 장치(20)는 도 1에 도시된 뉴럴 네트워크 장치(10)와 유사하게 동작할 수 있다.1, the first linear layer 200 corresponds to a convolution layer of a neural network, the second linear layer 400 corresponds to a convolution layer of a neural network, 9, the first linear layer 200 and the second linear layer 400 correspond to a convolution layer of a neural network, while in the neural network device 20 shown in FIG. 9, the first linear layer 200 and the second linear layer 400 correspond to a convolution layer of a neural network , The third linear layer 600 corresponds to a fully connected layer of the neural network, the neural network device 20 shown in Fig. 9 is similar to the neural network device 20 shown in Fig. 1 10). ≪ / RTI >

따라서 여기서는 도 9 및 10을 참조하여 제2 비선형 레이어(500) 및 제3 선형 레이어(600)의 동작에 대해서만 설명한다.Therefore, only the operation of the second non-linear layer 500 and the third linear layer 600 will be described with reference to FIGS. 9 and 10. FIG.

제2 비선형 레이어(500)는 제2 선형 레이어(400)로부터 제공되는 제3 현재 피처(C3_F(t))에 대해 제2 비선형 연산을 수행하여 제4 현재 피처(C4_F(t))를 생성하고, 제4 현재 피처(C4_F(t))와 제4 레지스터(510)에 저장된 제4 이전 피처(P4_F(t-1))에 기초하여 제4 델타 피처(D4_F(t))를 생성할 수 있다(단계 S160). The second nonlinear layer 500 performs a second nonlinear operation on the third current feature C3_F (t) provided from the second linear layer 400 to produce a fourth current feature C4_F (t) (T) based on the fourth current feature C4_F (t) and the fourth previous feature P4_F (t-1) stored in the fourth register 510 (Step S160).

여기서, 제4 레지스터(510)에 저장된 제4 이전 피처(P4_F(t-1))는 직전 단계에서 제2 비선형 레이어(500)에 제공된 제3 현재 피처에 대해 상기 제2 비선형 연산을 수행한 결과에 상응할 수 있다.Here, the fourth previous feature P4_F (t-1) stored in the fourth register 510 is the result of performing the second nonlinear operation on the third current feature provided to the second non-linear layer 500 in the previous step ≪ / RTI >

일 실시예에 있어서, 제2 비선형 레이어(500)는 뉴럴 네트워크의 활성(activation) 레이어 및 풀링(pooling) 레이어 중의 하나에 상응할 수 있다. In one embodiment, the second non-linear layer 500 may correspond to one of an activation layer and a pooling layer of the neural network.

도 5 및 6을 참조하여 상술한 제1 비선형 레이어(300)가 제1 현재 피처(C1_F(t))와 제2 레지스터(310)에 저장된 제2 이전 피처(P2_F(t-1))에 기초하여 제2 델타 피처(D2_F(t))를 생성하는 방법과 동일한 방법으로, 제2 비선형 레이어(500)는 제3 현재 피처(C3_F(t))와 제4 레지스터(510)에 저장된 제4 이전 피처(P4_F(t-1))에 기초하여 제4 델타 피처(D4_F(t))를 생성할 수 있다.The first nonlinear layer 300 described above with reference to Figures 5 and 6 is based on the first current feature C1_F (t) and the second previous feature P2_F (t-1) stored in the second register 310 The second nonlinear layer 500 includes the third current feature C3_F (t) and the fourth current position (C2_F (t)) stored in the fourth register 510, in the same manner as the method for generating the second delta feature D2_F The fourth delta feature D4_F (t) may be generated based on the feature P4_F (t-1).

제1 비선형 레이어(300)의 동작에 대해서는 도 5 및 6을 참조하여 상술하였으므로, 여기서는 제2 비선형 레이어(500)의 동작에 대한 상세한 설명은 생략한다.The operation of the first non-linear layer 300 has been described above with reference to FIGS. 5 and 6. Therefore, detailed description of the operation of the second non-linear layer 500 is omitted here.

제3 선형 레이어(600)는 제2 비선형 레이어(500)로부터 제공되는 제4 델타 피처(D4_F(t))에 대해 제3 선형 연산을 수행하여 제5 델타 피처(D5_F(t))를 생성하고, 제5 델타 피처(D5_F(t))와 제5 레지스터(610)에 저장된 제5 이전 피처(P5_F(t-1))에 기초하여 제4 현재 피처(C4_F(t))에 대해 상기 제3 선형 연산을 수행한 결과에 상응하는 제5 현재 피처(C5_F(t))를 생성할 수 있다(단계 S170). The third linear layer 600 performs a third linear operation on the fourth delta feature D4_F (t) provided from the second non-linear layer 500 to generate a fifth delta feature D5_F (t) (T)) for the fourth current feature (C4_F (t)) based on the fifth current feature (D5_F (t)), the fifth delta feature (D5_F The fifth current feature C5_F (t) corresponding to the result of performing the linear operation (step S170).

여기서, 제5 레지스터(610)에 저장된 제5 이전 피처(P5_F(t-1))는 제2 비선형 레이어(500)의 제4 레지스터(510)에 저장된 제4 이전 피처(P4_F(t-1))에 대해 상기 제3 선형 연산을 수행한 결과에 상응할 수 있다.Here, the fifth previous feature P5_F (t-1) stored in the fifth register 610 is the fourth previous feature P4_F (t-1) stored in the fourth register 510 of the second non-linear layer 500, ) ≪ / RTI > for the second linear operation.

일 실시예에 있어서, 제3 선형 레이어(600)는 뉴럴 네트워크의 풀리 커넥티드(fully connected) 레이어에 상응할 수 있다. In one embodiment, the third linear layer 600 may correspond to a fully connected layer of a neural network.

도 7 및 8을 참조하여 상술한 제2 선형 레이어(400)가 제2 델타 피처(D2_F(t))와 제3 레지스터(410)에 저장된 제3 이전 피처(P3_F(t-1))에 기초하여 제3 현재 피처(C3_F(t))를 생성하는 방법과 동일한 방법으로, 제3 선형 레이어(600)는 제4 델타 피처(D4_F(t))와 제5 레지스터(510)에 저장된 제5 이전 피처(P5_F(t-1))에 기초하여 제5 현재 피처(C5_F(t))를 생성할 수 있다.The second linear layer 400 described above with reference to Figures 7 and 8 is based on the second delta feature D2_F (t) and the third previous feature P3_F (t-1) stored in the third register 410 The third linear layer 600 includes the fourth delta feature D4_F (t) and the fifth delta feature D4_F (t) stored in the fifth register 510, in the same manner as the method for generating the third current feature C3_F And may generate a fifth current feature C5_F (t) based on the feature P5_F (t-1).

제2 선형 레이어(400)의 동작에 대해서는 도 7 및 8을 참조하여 상술하였으므로, 여기서는 제3 선형 레이어(600)의 동작에 대한 상세한 설명은 생략한다.The operation of the second linear layer 400 has been described above with reference to FIGS. 7 and 8. Therefore, detailed description of the operation of the third linear layer 600 is omitted here.

상술한 바와 같이, 제5 현재 피처(C5_F(t))는 현재 입력 데이터(IDATA(t))에 대해 제1 선형 연산(L1_OP), 제1 비선형 연산(NL1_OP), 제2 선형 연산(L2_OP), 상기 제2 비선형 연산, 및 상기 제3 선형 연산을 순차적으로 수행한 결과에 상응하므로, 제5 현재 피처(C5_F(t))는 현재 입력 데이터(IDATA(t))에 포함되는 정보를 함축적으로 포함할 수 있다.As described above, the fifth current feature C5_F (t) includes a first linear operation L1_OP, a first nonlinear operation NL1_OP, a second linear operation L2_OP, for the current input data IDATA (t) The fifth current feature C5_F (t) implies information contained in the current input data IDATA (t) implicitly because the fifth current feature C5_F (t) corresponds to the result of sequentially performing the second nonlinear operation, the third linear operation, .

따라서 출력 레이어(700)는 제3 선형 레이어(600)로부터 제공되는 제5 현재 피처(C5_F(t))를 사용하여 현재 입력 데이터(IDATA(t))에 포함되는 정보를 인식하고, 상기 인식된 정보에 상응하는 인식 신호(REC)를 생성할 수 있다(단계 S180).Therefore, the output layer 700 recognizes the information included in the current input data IDATA (t) using the fifth current feature C5_F (t) provided from the third linear layer 600, It is possible to generate the recognition signal REC corresponding to the information (step S180).

일 실시예에 있어서, 복수의 입력 데이터들(IDATA)은 비디오 스트림(video stream)에 포함되는 복수의 프레임 데이터들에 상응할 수 있다. 이 경우, 출력 레이어(700)는 제3 선형 레이어(600)로부터 제공되는 제5 현재 피처(C5_F(t))를 사용하여 상기 복수의 프레임 데이터들 중에서 현재 입력 데이터(IDATA(t))에 상응하는 프레임 데이터에 포함되는 사물을 인식하고, 상기 인식된 사물에 상응하는 인식 신호(REC)를 생성할 수 있다.In one embodiment, the plurality of input data IDATA may correspond to a plurality of frame data included in a video stream. In this case, the output layer 700 corresponds to the current input data IDATA (t) among the plurality of frame data using the fifth current feature C5_F (t) provided from the third linear layer 600 Recognizes an object included in the frame data, and generates a recognition signal REC corresponding to the recognized object.

도 1 내지 10을 참조하여 상술한 바와 같이, 본 발명에 따른 뉴럴 네트워크 장치(20)는 연속되는 입력 데이터들(IDATA) 사이의 높은 유사성을 활용하여 선형 연산을 빠른 속도로 수행함으로써, 전체적인 동작 속도를 효과적으로 향상시킬 수 있다. 따라서 본 발명에 따른 뉴럴 네트워크 장치(20)는 복수의 입력 데이터들(IDATA)이 빠른 속도로 제공되는 경우에도 복수의 입력 데이터들(IDATA)에 포함되는 정보를 빠르게 인식할 수 있다.As described above with reference to Figs. 1 to 10, the neural network apparatus 20 according to the present invention performs linear operation at a high speed utilizing the high similarity between successive input data IDATA, Can be effectively improved. Therefore, the neural network device 20 according to the present invention can quickly recognize information included in a plurality of input data IDATA even when a plurality of input data IDATA is provided at a high speed.

또한, 본 발명에 따른 뉴럴 네트워크 장치(20)는 제1 선형 레이어(200), 제2 선형 레이어(400), 및 제3 선형 레이어(600)에서 수행되는 연산량을 감소시킴으로써 소비 전력을 효과적으로 감소시킬 수 있다.Also, the neural network device 20 according to the present invention reduces the amount of computation performed in the first linear layer 200, the second linear layer 400, and the third linear layer 600, thereby effectively reducing power consumption .

본 발명은 뉴럴 네트워크(neural network) 기술을 구현하는 임의의 전자 시스템에 유용하게 이용될 수 있다.The present invention may be usefully employed in any electronic system that implements neural network technology.

상술한 바와 같이, 본 발명의 바람직한 실시예를 참조하여 설명하였지만 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.Although the preferred embodiments of the present invention have been disclosed for illustrative purposes, those skilled in the art will appreciate that various modifications, additions and substitutions are possible, without departing from the scope and spirit of the invention as disclosed in the accompanying claims. It will be understood that the invention may be modified and varied without departing from the scope of the invention.

Claims (20)

입력 레이어, 제1 선형 레이어, 제1 비선형 레이어, 및 제2 선형 레이어를 포함하는 뉴럴 네트워크(neural network) 장치의 동작 방법에서,
상기 입력 레이어가 복수의 입력 데이터들을 순차적으로 수신하는 단계;
상기 입력 레이어에서 상기 복수의 입력 데이터들 중에서 현재 입력 데이터와 이전 입력 데이터의 차이를 델타 데이터로서 생성하는 단계;
상기 제1 선형 레이어에서 상기 델타 데이터에 대해 제1 선형 연산을 수행하여 생성되는 제1 델타 피처(feature)와 제1 레지스터에 저장된 제1 이전 피처에 기초하여 상기 현재 입력 데이터에 대해 상기 제1 선형 연산을 수행한 결과에 상응하는 제1 현재 피처를 생성하는 단계;
상기 제1 비선형 레이어에서 상기 제1 현재 피처에 대해 제1 비선형 연산을 수행하여 생성되는 제2 현재 피처와 제2 레지스터에 저장된 제2 이전 피처에 기초하여 제2 델타 피처를 생성하는 단계; 및
상기 제2 선형 레이어에서 상기 제2 델타 피처에 대해 제2 선형 연산을 수행하여 생성되는 제3 델타 피처와 제3 레지스터에 저장된 제3 이전 피처에 기초하여 상기 제2 현재 피처에 대해 상기 제2 선형 연산을 수행한 결과에 상응하는 제3 현재 피처를 생성하는 단계를 포함하는 뉴럴 네트워크 장치의 동작 방법.
In a method of operating a neural network device including an input layer, a first linear layer, a first non-linear layer, and a second linear layer,
The input layer sequentially receiving a plurality of input data;
Generating a difference between the current input data and the previous input data among the plurality of input data in the input layer as delta data;
And a second linear function for generating a first linear function for the current input data based on a first delta feature generated by performing a first linear operation on the delta data in the first linear layer and a first previous feature stored in a first register, Generating a first current feature corresponding to a result of performing the operation;
Generating a second delta feature based on a second current feature generated by performing a first nonlinear operation on the first current feature in the first nonlinear layer and a second previous feature stored in a second register; And
And a third delta feature that is generated by performing a second linear operation on the second delta feature in the second linear layer and a second linear feature on the second linear feature based on a third previous feature stored in a third register, And generating a third current feature corresponding to a result of performing the operation.
제1 항에 있어서, 상기 입력 레이어는 상기 복수의 입력 데이터들 중의 첫 번째 입력 데이터를 상기 델타 데이터로서 생성하고, 상기 첫 번째 입력 데이터 이후에 수신되는 상기 입력 데이터들에 대해서는 현재 수신되는 상기 현재 입력 데이터에서 상기 현재 입력 데이터의 직전에 수신된 상기 이전 입력 데이터를 감산하여 상기 델타 데이터를 생성하는 뉴럴 네트워크 장치의 동작 방법.The method of claim 1, wherein the input layer generates first input data of the plurality of input data as the delta data, and for the input data received after the first input data, And subtracting the previous input data received immediately before the current input data from the data to generate the delta data. 제1 항에 있어서, 상기 입력 레이어는 상기 델타 데이터만을 상기 제1 선형 레이어에 제공하는 뉴럴 네트워크 장치의 동작 방법.2. The method of claim 1, wherein the input layer provides only the delta data to the first linear layer. 제1 항에 있어서, 상기 제1 선형 레이어에서 상기 제1 현재 피처를 생성하는 단계는,
상기 델타 데이터에 대해 상기 제1 선형 연산을 수행하여 상기 제1 델타 피처를 생성하는 단계;
상기 제1 델타 피처와 상기 제1 레지스터에 저장된 상기 제1 이전 피처를 합산하여 상기 제1 현재 피처를 생성하는 단계; 및
상기 제1 레지스터에 저장된 상기 제1 이전 피처를 상기 제1 현재 피처로 업데이트하는 단계를 포함하는 뉴럴 네트워크 장치의 동작 방법.
2. The method of claim 1, wherein generating the first current feature in the first linear layer comprises:
Performing the first linear operation on the delta data to generate the first delta feature;
Summing the first delta feature and the first previous feature stored in the first register to generate the first current feature; And
And updating the first previous feature stored in the first register with the first current feature.
제1 항에 있어서, 상기 제1 레지스터에 저장된 상기 제1 이전 피처는 상기 이전 입력 데이터에 대해 상기 제1 선형 연산을 수행한 결과에 상응하는 뉴럴 네트워크 장치의 동작 방법.2. The method of claim 1, wherein the first previous feature stored in the first register corresponds to a result of performing the first linear operation on the previous input data. 제1 항에 있어서, 상기 제1 선형 레이어는 뉴럴 네트워크의 컨볼루션(convolution) 레이어에 상응하는 뉴럴 네트워크 장치의 동작 방법.2. The method of claim 1, wherein the first linear layer corresponds to a convolution layer of a neural network. 제1 항에 있어서, 상기 제1 선형 레이어는 상기 제1 현재 피처만을 상기 제1 비선형 레이어에 제공하는 뉴럴 네트워크 장치의 동작 방법.2. The method of claim 1, wherein the first linear layer provides only the first current feature to the first non-linear layer. 제1 항에 있어서, 상기 제1 비선형 레이어에서 상기 제2 델타 피처를 생성하는 단계는,
상기 제1 현재 피처에 대해 상기 제1 비선형 연산을 수행하여 상기 제2 현재 피처를 생성하는 단계;
상기 제2 현재 피처에서 상기 제2 레지스터에 저장된 상기 제2 이전 피처를 감산하여 상기 제2 델타 피처를 생성하는 단계; 및
상기 제2 레지스터에 저장된 상기 제2 이전 피처를 상기 제2 현재 피처로 업데이트하는 단계를 포함하는 뉴럴 네트워크 장치의 동작 방법.
2. The method of claim 1, wherein generating the second delta feature in the first non-
Performing the first non-linear operation on the first current feature to generate the second current feature;
Subtracting the second previous feature stored in the second register from the second current feature to generate the second delta feature; And
And updating the second previous feature stored in the second register with the second current feature.
제1 항에 있어서, 상기 제2 레지스터에 저장된 상기 제2 이전 피처는 직전 단계에서 상기 제1 비선형 레이어에 제공된 상기 제1 현재 피처에 대해 상기 제1 비선형 연산을 수행한 결과에 상응하는 뉴럴 네트워크 장치의 동작 방법.2. The method of claim 1, wherein the second previous feature stored in the second register is associated with a neural network device corresponding to a result of performing the first nonlinear operation on the first current feature provided in the first non- Lt; / RTI > 제1 항에 있어서, 상기 제1 비선형 레이어는 뉴럴 네트워크의 활성(activation) 레이어 및 풀링(pooling) 레이어 중의 하나에 상응하는 뉴럴 네트워크 장치의 동작 방법.2. The method of claim 1, wherein the first non-linear layer corresponds to one of an activation layer and a pooling layer of a neural network. 제1 항에 있어서, 상기 제1 비선형 레이어는 상기 제2 델타 피처만을 상기 제2 선형 레이어에 제공하는 뉴럴 네트워크 장치의 동작 방법.2. The method of claim 1, wherein the first non-linear layer provides only the second delta feature to the second linear layer. 제1 항에 있어서, 상기 제2 선형 레이어에서 상기 제3 현재 피처를 생성하는 단계는,
상기 제2 델타 데이터에 대해 상기 제2 선형 연산을 수행하여 상기 제3 델타 피처를 생성하는 단계;
상기 제3 델타 피처와 상기 제3 레지스터에 저장된 상기 제3 이전 피처를 합산하여 상기 제3 현재 피처를 생성하는 단계; 및
상기 제3 레지스터에 저장된 상기 제3 이전 피처를 상기 제3 현재 피처로 업데이트하는 단계를 포함하는 뉴럴 네트워크 장치의 동작 방법.
2. The method of claim 1, wherein generating the third current feature in the second linear layer comprises:
Performing the second linear operation on the second delta data to generate the third delta feature;
Summing the third delta feature and the third previous feature stored in the third register to generate the third current feature; And
And updating the third previous feature stored in the third register to the third current feature.
제1 항에 있어서, 상기 제3 레지스터에 저장된 상기 제3 이전 피처는 상기 제1 비선형 레이어의 상기 제2 레지스터에 저장된 상기 제2 이전 피처에 대해 상기 제2 선형 연산을 수행한 결과에 상응하는 뉴럴 네트워크 장치의 동작 방법.2. The method of claim 1, wherein the third previous feature stored in the third register is associated with a result of performing the second linear operation on the second previous feature stored in the second register of the first non- A method of operating a network device. 제1 항에 있어서, 상기 제2 선형 레이어는 뉴럴 네트워크의 풀리 커넥티드(fully connected) 레이어에 상응하는 뉴럴 네트워크 장치의 동작 방법.2. The method of claim 1, wherein the second linear layer corresponds to a fully connected layer of a neural network. 제1 항에 있어서,
상기 제3 현재 피처를 사용하여 상기 현재 입력 데이터에 포함되는 정보를 인식하는 단계를 더 포함하는 뉴럴 네트워크 장치의 동작 방법.
The method according to claim 1,
And recognizing information included in the current input data using the third current feature.
제1 항에 있어서, 상기 복수의 입력 데이터들은 비디오 스트림에 포함되는 복수의 프레임 데이터들에 상응하는 뉴럴 네트워크 장치의 동작 방법.The method of claim 1, wherein the plurality of input data correspond to a plurality of frame data included in a video stream. 제16 항에 있어서,
상기 제3 현재 피처를 사용하여 상기 현재 입력 데이터에 상응하는 프레임 데이터에 포함되는 사물을 인식하는 단계를 더 포함하는 뉴럴 네트워크 장치의 동작 방법.
17. The method of claim 16,
And using the third current feature to recognize objects included in frame data corresponding to the current input data.
복수의 입력 데이터들을 순차적으로 수신하고, 상기 복수의 입력 데이터들 중에서 현재 입력 데이터와 이전 입력 데이터의 차이를 델타 데이터로서 생성하는 입력 레이어;
상기 델타 데이터에 대해 제1 선형 연산을 수행하여 제1 델타 피처(feature)를 생성하고, 상기 제1 델타 피처와 제1 레지스터에 저장된 제1 이전 피처에 기초하여 상기 현재 입력 데이터에 대해 상기 제1 선형 연산을 수행한 결과에 상응하는 제1 현재 피처를 생성하는 제1 선형 레이어;
상기 제1 현재 피처에 대해 제1 비선형 연산을 수행하여 제2 현재 피처를 생성하고, 상기 제2 현재 피처와 제2 레지스터에 저장된 제2 이전 피처에 기초하여 제2 델타 피처를 생성하는 제1 비선형 레이어; 및
상기 제2 델타 피처에 대해 제2 선형 연산을 수행하여 제3 델타 피처를 생성하고, 상기 제3 델타 피처와 제3 레지스터에 저장된 제3 이전 피처에 기초하여 상기 제2 현재 피처에 대해 상기 제2 선형 연산을 수행한 결과에 상응하는 제3 현재 피처를 생성하는 제2 선형 레이어를 포함하는 뉴럴 네트워크 장치.
An input layer for sequentially receiving a plurality of input data and generating a difference between the current input data and previous input data among the plurality of input data as delta data;
Generating a first delta feature by performing a first linear operation on the delta data to generate a first delta feature based on the first delta feature and the first previous feature stored in the first register; A first linear layer for generating a first current feature corresponding to a result of performing a linear operation;
Performing a first nonlinear operation on the first current feature to generate a second current feature and generating a second delta feature based on the second current feature and a second previous feature stored in a second register, Layer; And
Performing a second linear operation on the second delta feature to generate a third delta feature and generating a third delta feature for the second current feature based on a third previous feature stored in the third delta feature and a third register, And a second linear layer for generating a third current feature corresponding to a result of performing the linear operation.
제18 항에 있어서, 상기 제1 선형 레이어는 상기 제1 현재 피처를 생성한 이후 상기 제1 레지스터에 저장된 상기 제1 이전 피처를 상기 제1 현재 피처로 업데이트하고,
상기 제1 비선형 레이어는 상기 제2 현재 피처를 생성한 이후 상기 제2 레지스터에 저장된 상기 제2 이전 피처를 상기 제2 현재 피처로 업데이트하고,
상기 제2 선형 레이어는 상기 제3 현재 피처를 생성한 이후 상기 제3 레지스터에 저장된 상기 제3 이전 피처를 상기 제3 현재 피처로 업데이트하는 뉴럴 네트워크 장치.
19. The method of claim 18, wherein the first linear layer updates the first previous feature stored in the first register with the first current feature after creating the first current feature,
Wherein the first nonlinear layer updates the second previous feature stored in the second register with the second current feature after generating the second current feature,
Wherein the second linear layer updates the third previous feature stored in the third register with the third current feature after generating the third current feature.
제18 항에 있어서,
상기 제3 현재 피처를 사용하여 상기 현재 입력 데이터에 포함되는 정보를 인식하는 출력 레이어를 더 포함하는 뉴럴 네트워크 장치.
19. The method of claim 18,
And an output layer for recognizing information included in the current input data using the third current feature.
KR1020160177466A 2016-09-23 2016-12-23 Neural network device and method of operating neural network device KR20180033032A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US15/657,950 US10963775B2 (en) 2016-09-23 2017-07-24 Neural network device and method of operating neural network device
CN201710826342.2A CN107871159B (en) 2016-09-23 2017-09-14 Neural network device and method of operating a neural network device

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020160122471 2016-09-23
KR20160122471 2016-09-23

Publications (1)

Publication Number Publication Date
KR20180033032A true KR20180033032A (en) 2018-04-02

Family

ID=61976217

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160177466A KR20180033032A (en) 2016-09-23 2016-12-23 Neural network device and method of operating neural network device

Country Status (1)

Country Link
KR (1) KR20180033032A (en)

Similar Documents

Publication Publication Date Title
US20200320369A1 (en) Image recognition method, apparatus, electronic device and storage medium
CN107301453B (en) Artificial neural network forward operation device and method supporting discrete data representation
Yan QS synchronization in 3D Hénon-like map and generalized Hénon map via a scalar controller
Yang et al. Synchronization for chaotic systems and chaos-based secure communications via both reduced-order and step-by-step sliding mode observers
CN111967568B (en) Adaptation method and device for deep learning model and electronic equipment
Shukla et al. Control and synchronization of a class of uncertain fractional order chaotic systems via adaptive backstepping control
CN111524166B (en) Video frame processing method and device
CN109308520B (en) FPGA circuit and method for realizing softmax function calculation
Agrawal et al. Function projective synchronization between four dimensional chaotic systems with uncertain parameters using modified adaptive control method
CN112528995B (en) Method for training target detection model, target detection method and device
Faieghi et al. Sampled-data nonlinear observer design for chaos synchronization: A Lyapunov-based approach
CN108875416B (en) Elliptic curve multiple point operation method and device
Aydin et al. Robust adaptive filtering algorithms for/spl alpha/-stable random processes
CN112631775A (en) Model training method and device, electronic equipment and computer readable storage medium
US20190378001A1 (en) Neural network hardware acceleration with stochastic adaptive resource allocation
CN112615852A (en) Data processing method, related device and computer program product
CN107871159B (en) Neural network device and method of operating a neural network device
CN114549728A (en) Training method of image processing model, image processing method, device and medium
CN116432012A (en) Method, electronic device and computer program product for training a model
CN111027704A (en) Quantum resource estimation method and device and electronic equipment
CN112162723B (en) Quantum subtraction operation method, device, electronic device and storage medium
JP2015530649A (en) A method for sampling image colors of video sequences and its application to color clustering
CN112214200B (en) Quantum subtraction operation method, device, electronic device and storage medium
CN111177479B (en) Method and device for acquiring feature vector of node in relational network graph
KR20180033032A (en) Neural network device and method of operating neural network device

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