KR20210051288A - Neural network learning device comprising analog batch normalization device - Google Patents
Neural network learning device comprising analog batch normalization device Download PDFInfo
- Publication number
- KR20210051288A KR20210051288A KR1020190136351A KR20190136351A KR20210051288A KR 20210051288 A KR20210051288 A KR 20210051288A KR 1020190136351 A KR1020190136351 A KR 1020190136351A KR 20190136351 A KR20190136351 A KR 20190136351A KR 20210051288 A KR20210051288 A KR 20210051288A
- Authority
- KR
- South Korea
- Prior art keywords
- neural network
- signal
- capacitor
- input
- integrator
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/15—Correlation function computation including computation of convolution operations
- G06F17/153—Multidimensional correlation or convolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
Abstract
Description
다양한 실시예들은 아날로그 배치 정규화 장치를 포함하는 신경망 학습 장치에 관한 것이다. 구체적으로는, 신경망 학습 장치는, 배치 정규화를 위하여 저항성 메모리 배열 및 정규화를 위한 능동소자를 가지는 회로 배열을 포함할 수 있다.Various embodiments relate to a neural network training apparatus including an analog batch normalization apparatus. Specifically, the neural network learning apparatus may include a resistive memory arrangement for batch normalization and a circuit arrangement having an active element for normalization.
인공 지능과 관련된 기술이 발전함에 따라 다양한 산업에서 인공 지능 기술이 적용되고 있다. 최근 프로세서 및 전용 가속기 등의 처리 장치의 성능 향상으로 많은 연산량이 필요한 신경망 학습 장치 또는 신경망 학습 알고리즘을 구동할 수 있어, 인공 지능을 적용한 전자 장치는 종래에 제한적인 기능을 동작시킬 수 있게 되었다.As technology related to artificial intelligence develops, artificial intelligence technology is being applied in various industries. Recently, as the performance of processing devices such as a processor and a dedicated accelerator can be improved, a neural network learning device or a neural network learning algorithm requiring a large amount of computation can be driven, so that an electronic device to which artificial intelligence is applied can operate a limited function in the related art.
딥 러닝을 사용하는 사물 인식 알고리즘은 합성곱 레이어(convolution layer)로 구성된 합성곱 신경망(CNN, convolution neral network) 또는 심층 신경망 (DNN, deep neral network) 모델을 채용하고 있다.The object recognition algorithm using deep learning employs a convolution neral network (CNN) or a deep neral network (DNN) model composed of a convolution layer.
합성곱 레이어 또는 컨벌루션 레이어를 이용하는 모델의 경우, 각 레이어의 입력값들의 분포(distribution)의 변화에 의한 영향을 많이 받는 문제 점이 있다. In the case of a model using a convolutional layer or a convolutional layer, there is a problem that is greatly affected by a change in distribution of input values of each layer.
예를 들면, 입력 값들의 분포의 변화에 따라 다음 레이어의 출력값 분포 차이를 야기시키고, 결과값의 에러(error) 양을 증가시킨다. 인공 신경망 학습 장치는 분포의 변화 때문에 인공 신경망 학습 과정에서 가중치 소실 또는 폭발의 우려를 가지고 있다. 이를 해결하기 위하여, 인공 신경망 학습 장치는 정규화(normalization) 알고리즘을 도입하고 있다.For example, according to a change in the distribution of the input values, a difference in the distribution of the output values of the next layer is caused, and an error amount of the result value is increased. The artificial neural network learning apparatus has a fear of loss or explosion in the artificial neural network training process due to the change in distribution. To solve this problem, the artificial neural network learning apparatus introduces a normalization algorithm.
배치 정규화 방법은 배치 단위로 정규화를 통하여 학습을 진행하고 있으므로, 내부 공변량 (internal covariate) 이동을 감소시킬 수 있고, 결과값 역시 빠른 속도로 수렴하여 널리 사용되고 있다. 각각의 내부 공변량에 의한 공변량 시프트 (covariate shift) 문제를 각 레이어의 출력값을 정규화 시키는 방법을 통하여 출력값 분산을 해결할 수 있다.Since the batch normalization method is trained through normalization in batch units, it is possible to reduce the movement of internal covariates, and the result values are also rapidly converged and widely used. The covariate shift problem due to each internal covariate can be solved by a method of normalizing the output values of each layer.
학습단계에서부터 배치 정규화를 적용해 합성곱 신경망을 학습시킨 후, 합성곱 신경망 하드웨어의 각 레이어의 출력값 또는 입력값 마다 배치 정규화를 적용할 수 있다.After the convolutional neural network is trained by applying batch normalization from the learning stage, batch normalization can be applied to each output value or input value of each layer of the convolutional neural network hardware.
배치 정규화 방법은 배치 단위의 데이터들의 통계값을 이용하기 때문에 많은 연산과 연산값들을 저장할 수 있는 저장 공간이 필요하다. 배치 정규화 방법은 방대한 연산으로 근사화(approximation)을 통하여 배치 정규화를 구현한다. 과도한 근사화는 전체 신경망 학습 시스템의 성능 저하를 불러올 수 있다.Since the batch normalization method uses statistical values of data in batch units, a storage space for storing many operations and calculation values is required. The batch normalization method implements batch normalization through approximation with extensive operations. Excessive approximation can lead to performance degradation of the entire neural network learning system.
디지털 방식의 배치 정규화 방법은 레이어간에 디지털 신호 처리기(DSP, digital signal processor)가 필요하기 때문에 추가적인 하드웨어를 요구하고, 이에 따라 신호 경로가 복잡해질 수 있다.Since the digital arrangement normalization method requires a digital signal processor (DSP) between layers, additional hardware is required, and a signal path may be complicated accordingly.
따라서, 배치 정규화 방법의 이용에서도, 신경망 학습 장치는 과도한 근사화를 줄이고, 디지털 신호 처리기와 같은 하드웨어를 감소시킬 방안이 요구된다.Therefore, even in the use of the batch normalization method, a neural network learning apparatus is required to reduce excessive approximation and reduce hardware such as a digital signal processor.
다양한 실시예에 따른 신경망 학습 장치는 인공 신경망 모델 학습을 위한 훈련 데이터를 입력하기 위한 입력부와, 상기 훈련 데이터를 이용하여 상기 인공 신경망 모델을 훈련시키는 러닝 프로세서를 포함하고, 상기 인공 신경망 모델은, 상기 입력부로부터 전달받은 데이터에 대응되는 신호를 전달받는 복수의 레이어들 및, 상기 복수의 레이어들 사이에 배치되는 적어도 하나의 배치 정규화 장치 (batch normalization device)를 포함하고, 상기 배치 정규화 장치는 상기 복수의 레이어들 중 제1 레이어로부터 전달된 제1 아날로그 신호를 합성곱 처리하는 저항 메모리 배열(RRAM array) 및 상기 저항 메모리 배열로부터 합성곱 처리된 제2 아날로그 신호를 정규화하여 제2 레이어로 제3 아날로그 신호를 전달하는 복수의 능동소자를 포함하는 회로 배열을 포함할 수 있다.A neural network training apparatus according to various embodiments includes an input unit for inputting training data for training an artificial neural network model, and a learning processor for training the artificial neural network model using the training data, and the artificial neural network model comprises: A plurality of layers receiving a signal corresponding to the data received from the input unit, and at least one batch normalization device disposed between the plurality of layers, wherein the batch normalization device comprises the plurality of layers. A third analog signal to a second layer by normalizing a resistive memory array (RRAM array) that performs convolutional processing of the first analog signal transmitted from the first layer among the layers, and a second analog signal that is convolutional-processed from the resistive memory array. It may include a circuit arrangement including a plurality of active elements for transmitting.
다양한 실시예에 따르는 전자 장치는 인공 신경망 모델을 정규화 하는 배치 정규화 장치를 포함하고, 상기 배치 정규화 장치는 상기 복수의 레이어들 중 제1 레이어로부터 전달된 제1 아날로그 신호를 합성곱 처리하는 저항 메모리 배열(RRAM array), 상기 저항 메모리 배열로부터 합성곱 처리된 제2 아날로그 신호를 정규화하여 제2 레이어로 제3 아날로그 신호를 전달하는 복수의 능동소자를 포함하는 회로 배열 및 상기 회로 배열을 제어하도록 설정된 제어부를 포함할 수 있다.An electronic device according to various embodiments of the present disclosure includes a batch normalizing device for normalizing an artificial neural network model, and the batch normalizing device is a resistive memory array for convolutional processing a first analog signal transmitted from a first layer among the plurality of layers. (RRAM array), a circuit arrangement including a plurality of active elements for transmitting a third analog signal to a second layer by normalizing a second analog signal subjected to convolution from the resistive memory array, and a control unit configured to control the circuit arrangement It may include.
다양한 실시예에 따르는 신경망 학습 장치는, 배치 정규화를 능동소자로 구현하여, 아날로그 신호를 출력할 수 있어, 디지털 신호 처리장치의 사용을 줄일 수 있다.The neural network learning apparatus according to various embodiments can output an analog signal by implementing batch normalization as an active device, thereby reducing the use of a digital signal processing device.
다양한 실시예에 따르는 신경망 학습 장치는, 프로세서의 연산량을 줄여, 하드웨어에 가해지는 부하를 줄일 수 있다.The apparatus for learning a neural network according to various embodiments may reduce the amount of computation of a processor, thereby reducing a load applied to hardware.
다양한 실시예에 따르는 신경망 학습 장치는, 네트워크 성능 저하 없이 배치정규화를 구현할 수 있다.The apparatus for learning a neural network according to various embodiments may implement batch normalization without deteriorating network performance.
다양한 실시예에 따르는 신경망 학습 장치는, 저항 메모리의 내부 공변량에 의한 공변 이동문제를 줄일 수 있다.The neural network training apparatus according to various embodiments may reduce a covariate movement problem caused by an internal covariate of a resistance memory.
도 1은, 다양한 실시예들에 따른, 인공 신경망 학습 장치의 블록도이다.
도 2는, 다양한 실시예에 따르는 신경망 학습 장치를 구성하는 인공 신경망 모델의 개념도이다.
도 3a 및 3b는, 발생하는 오차를 줄이기 위한 정규화 동작을 도시한다.
도 4는, 다양한 실시예에 따른 인공 신경망 모델에 포함되는 커널 매트릭스의 블록도이다.
도 5는, 다양한 실시예에 따르는, 인공 신경망 모델에 포함되는 커널 매트릭스를 구현하는 저항성 메모리 배열의 개념도이다.
도 6a, 및 6b는 다양한 실시예에 따르는, 배치 정규화 장치의 회로도이다.
도 7a 내지 도 7e는, 다양한 실시예에 따르는 신경망 학습 장치의 각 단계에서의 스위칭 동작을 도시한다.
도 8은 다양한 실시예에 따르는 신경망 학습 장치를 통한 결과 값의 편차를 비교한 그래프이다.1 is a block diagram of an apparatus for learning an artificial neural network, according to various embodiments.
2 is a conceptual diagram of an artificial neural network model constituting a neural network training apparatus according to various embodiments.
3A and 3B illustrate a normalization operation to reduce an error that occurs.
4 is a block diagram of a kernel matrix included in an artificial neural network model according to various embodiments.
5 is a conceptual diagram of a resistive memory arrangement implementing a kernel matrix included in an artificial neural network model, according to various embodiments.
6A and 6B are circuit diagrams of a batch normalization apparatus, according to various embodiments.
7A to 7E illustrate switching operations in each step of an apparatus for learning a neural network according to various embodiments.
8 is a graph comparing deviations of result values through a neural network learning apparatus according to various embodiments.
도 1은, 다양한 실시예들에 따른, 신경망 학습 장치(100)의 블럭도이다. 1 is a block diagram of an
인공 신경망은 입력에 대하여 일반화된 출력(generalized output)을 제공하기 위한 하드웨어, 소프트웨어 또는 이들의 조합을 의미할 수 있다.The artificial neural network may refer to hardware, software, or a combination thereof for providing a generalized output for an input.
예를 들어, 인공 신경망은, 합성곱 신경망 (CNN, Convolutional Neural Network), 마르코프 체인(Markov Chain), 또는 이진화 신경망 (BNN, binarized neural network) 등을 시뮬레이션하기 위한 어플리케이션 및 상기 어플리케이션을 실행하기 위한 프로세서에 기반하여 작동할 수 있다.For example, an artificial neural network is an application for simulating a convolutional neural network (CNN), a Markov chain, or a binarized neural network (BNN), and a processor for executing the application. Can work based on
도 1을 참조하면, 신경망 학습 장치(100)는 훈련을 통하여 머신 러닝을 수행할 수 있는 장치로서, 인공 신경망으로 구성된 모델을 이용하여 학습하는 장치를 포함할 수 있다. 예를 들면, 신경망 장치(100)는 데이터 마이닝, 데이터 분석, 및 머신 러닝 알고리즘(예: 딥 러닝 알고리즘 (deep learning algorithm))을 위해 이용되는 정보를 입력, 출력, 데이터 베이스 구축 및 저장하도록 구성될 수 있다. Referring to FIG. 1, the
신경망 장치(100)는 통신부(미도시)를 통하여 외부 전자 장치(미도시)와 데이터를 송수신할 수 있고, 외부 전자 장치로부터 전달받은 데이터를 분석하거나 학습하여 결과값을 도출할 수 있다. 신경망 장치(100)는 외부 전자 장치의 연산을 분산하여 처리할 수 있다.The
신경망 장치(100)는 서버로 구현될 수 있다. 또한 신경망 장치(100)는 복수로 구성되어 신경망 장치 세트를 이룰 수 있다. 각각의 신경망 장치(100)는 연산을 분산하여 처리할 수 있고, 분산 처리된 데이터를 바탕으로 데이터 분석 및 학습을 통하여 결과값을 도출할 수 있다. 신경망 장치(100)는 머신 러닝 알고리즘 등을 이용하여 획득한 결과값을 외부 전자 장치 또는 다른 신경망 장치로 전송할 수 있다.The
다양한 실시예에 따르면, 신경망 장치(100)는 입력부(110), 프로세서(120), 메모리(130), 및 러닝 프로세서(140)를 포함할 수 있다.According to various embodiments, the
다양한 실시예에 따르면, 입력부(110)는 인공 신경망 모델 학습을 통한 출력값을 도출하기 위한 입력 데이터를 획득할 수 있다. 입력부(110)는 가공되지 않은 입력 데이터를 획득할 수 있다. 프로세서(120) 또는 러닝 프로세서(140)는 가공되지 않은 입력데이터를 전처리하여 인공 신경망 모델 학습에 입력 가능한 훈련 데이터를 생성할 수 있다. 상기 전처리는 입력 데이터로부터 특징점을 추출하는 것일 수 있다. 상술한 바와 같이 입력부(110)는 통신부(미도시)를 통하여 데이터를 수신하여 입력 데이터를 획득하거나 데이터를 전처리할 수 있다.According to various embodiments, the
다양한 실시예에 따르면, 프로세서(120)는 신경망 학습 장치(100)에서 사용 히스토리 정보를 수집하여 메모리(130)에 저장할 수 있다. 프로세서(120)는 저장된 사용 히스토리 정보 및 예측 모델링을 통하여 특정 기능을 실행하기 위한 최상의 조합을 결정할 수 있다. 프로세서(120)는 입력부(110)로부터 이미지 정보, 오디오 정보, 데이터 또는 사용자 입력 정보를 수신할 수 있다. According to various embodiments, the
다양한 실시예에 따르면, 프로세서(120)는 정보를 실시간으로 수집하고 정보를 처리 또는 분류하고, 처리된 정보를 메모리(130), 메모리(130)의 데이터 베이스 또는 러닝 프로세서(140)에 저장할 수 있다. According to various embodiments, the
다양한 실시예에 따르면, 신경망 학습 장치(100)의 동작이 데이터 분석 및 머신 러닝 알고리즘을 바탕으로 결정될 때, 프로세서(120)는 결정된 동작을 실행하기 위해 신경망 학습 장치(100)의 구성요소를 제어할 수 있다. 그리고, 프로세서(120)는 제어 명령에 따라 신경망 학습 장치(100)를 제어하여 결정된 동작을 수행할 수 있다.According to various embodiments, when the operation of the neural
프로세서(120)는 특정 동작이 수행되는 경우, 데이터 분석 및 머신 러닝 알고리즘 및 기법을 통해 특정 동작의 실행을 나타내는 이력 정보를 분석하고, 분석된 정보에 기초하여 이전에 학습한 정보의 업데이트를 수행할 수 있다. 프로세서(120)는 러닝 프로세서(140)과 함께, 업데이트 된 정보에 기초하여 데이터 분석 및 머신 러닝 알고리즘 및 성능의 정확성을 향상시킬 수 있다.When a specific operation is performed, the
다양한 실시예에 따르면, 메모리(130)는 입력부(110)에서 획득한 입력 데이터, 학습된 데이터, 또는 학습 히스토리 등을 저장할 수 있다. 메모리(130)는 인공 신경망 모델(131)을 저장할 수 있다. According to various embodiments, the
다양한 실시예에 따르면, 인공 신경망 모델(131)은 메모리(130)에 할당된 공간에 저장될 수 있다. 상기 메모리(130)에 할당된 공간은 러닝 프로세서(140)를 통하여 학습 중 또는 학습된 인공 신경망 모델(131)을 저장하며, 학습을 통하여 인공 신경망 모델(131)이 갱신되면, 갱신된 인공 신경망 모델(131)을 저장할 수 있다. 상기 메모리(130)에 할당된 공간은 학습된 모델을 학습 시점 또는 학습 진척도 등에 따라 복수의 버전으로 구분하여 저장할 수 있다. According to various embodiments, the artificial neural network model 131 may be stored in a space allocated to the
다양한 실시예에 따르면, 메모리(130)는 입력부(110)에서 획득한 입력 데이터, 학습된 데이터를 저장, 분류가능한 데이터 베이스를 포함할 수 있다. According to various embodiments, the
다양한 실시예에 따르면, 러닝 프로세서(140)는 프로세서(120)가 입력부(110)를 통해 획득한 입력 데이터를 전처리한 데이터를 바로 획득하여 인공 신경망 모델(131)을 학습하거나, 메모리(130)의 데이터 베이스에 저장된 전처리된 입력 데이터를 획득하여 인공 신경망 모델(131)을 학습할 수 있다. 예를 들면, 러닝 프로세서(140)는 다양한 학 습 기법을 이용하여 인공 신경망 모델(131)을 반복적으로 학습시켜 최적화된 인경 신경망 모델(131) 파라미터를 획득할 수 있다.According to various embodiments, the learning
다양한 실시예에 따르면, 학습된 모델은 데이터 베이스에서 인공 신경망 모델(131)을 갱신할 수 있다. 러닝 프로세서(140)는 신경망 학습 장치(100)에 통합되거나, 메모리(130)에 구현될 수 있다. 구체적으로 러닝 프로세서(140)는 메모리(130)를 사용하여 구현될 수 있다. According to various embodiments, the learned model may update the artificial neural network model 131 in a database. The learning
다양한 실시예에 따르면, 러닝 프로세서(140)는 일반적으로 감독 또는 감독되지 않은 학습, 데이터 마이닝, 예측 분석 또는 다른 장치에서 사용하기 위해 데이터를 식별, 색인화, 카테고리화, 조작, 저장, 검색 및 출력하기 위해 데이터를 하나 이상의 데이터베이스에 저장하도록 구성될 수 있다. 여기서, 데이터베이스는 메모리(130), 클라우드 컴퓨팅 환경에서 유지되는 메모리, 또는 네트워크와 같은 통신 방식을 통해 단말기에 의해 액세스 가능한 다른 원격 메모리 위치를 이용하여 구현될 수 있다 러닝 프로세서(140)에 저장된 정보는 다양한 상이한 유형의 데이터 분석 알고리즘 및 기계 학습 알고리즘 중 임의의 것을 사용하여 프로세서(120)에 의해 이용될 수 있다. 예를 들면, 이러한, 알고리즘의 예로는, k-최근 인접 시스템, 퍼지 논리 (예: 가능성 이론), 신경 회로망, 볼츠만 기계, 벡터 양자화, 펄스 신경망, 지원 벡터 기계, 최대 마진 분류기, 힐 클라이밍, 유도 논리 시스템 베이지안 네트워크, 페리트넷 (예: 유한 상태 머신, 밀리 머신, 무어 유한 상태 머신), 분류기 트리 (예: 퍼셉트론 트리, 지원 벡터 트리, 마코프 트리, 의사 결정 트리 포리스트, 임의의 포리스트), 판독 모델 및 시스템, 인공 융합, 센서 융합, 이미지 융합, 보강 학습, 증강 현실, 패턴 인식, 자동화 된 계획 등을 포함한다.According to various embodiments, the learning
본 문서에 개시된 다양한 실시예들에 따른 외부 전자 장치 또는 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.An external electronic device or an electronic device according to various embodiments disclosed in this document may be various types of devices. The electronic device may include, for example, a portable communication device (eg, a smartphone), a computer device, a portable medical device, a camera, a wearable device, or a home appliance. The electronic device according to the embodiment of the present document is not limited to the above-described devices.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나,""A, B 또는 C," "A, B 및 C 중 적어도 하나,"및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.Various embodiments of the present document and terms used therein are not intended to limit the technical features described in this document to specific embodiments, and should be understood to include various modifications, equivalents, or substitutes of the corresponding embodiment. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of the above items unless clearly indicated otherwise in a related context. In this document, “A or B”, “at least one of A and B”, “at least one of A or B,” “A, B or C,” “at least one of A, B and C,” and “A Each of phrases such as "at least one of B, or C" may include all possible combinations of items listed together in the corresponding phrase among the phrases. Terms such as "first", "second", or "first" or "second" may be used simply to distinguish the component from other Order) is not limited. Some (eg, a first) component is referred to as “coupled” or “connected” to another (eg, a second) component, with or without the terms “functionally” or “communicatively”. When mentioned, it means that any of the above components may be connected to the other components directly (eg by wire), wirelessly, or via a third component.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다. The term "module" used in this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic blocks, parts, or circuits. The module may be an integrally configured component or a minimum unit of the component or a part thereof that performs one or more functions. For example, according to an embodiment, the module may be implemented in the form of an application-specific integrated circuit (ASIC).
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적'은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.Various embodiments of the present document include one or more instructions stored in a storage medium (eg, internal memory 136 or external memory 138) that can be read by a machine (eg, electronic device 101). It may be implemented as software (for example, the program 140) including them. For example, the processor (eg, the processor 120) of the device (eg, the electronic device 101) may call and execute at least one command among one or more commands stored from a storage medium. This enables the device to be operated to perform at least one function according to the at least one command invoked. The one or more instructions may include code generated by a compiler or code executable by an interpreter. A storage medium that can be read by a device may be provided in the form of a non-transitory storage medium. Here,'non-transitory' only means that the storage medium is a tangible device and does not contain a signal (e.g., electromagnetic waves), and this term refers to the case where data is semi-permanently stored in the storage medium. It does not distinguish between temporary storage cases.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to an embodiment, a method according to various embodiments disclosed in the present document may be provided by being included in a computer program product. Computer program products can be traded between sellers and buyers as commodities. The computer program product is distributed in the form of a device-readable storage medium (e.g. compact disc read only memory (CD-ROM)), or through an application store (e.g. Play Store TM ) or two user devices It can be distributed (e.g., downloaded or uploaded) directly between, e.g. smartphones), online. In the case of online distribution, at least some of the computer program products may be temporarily stored or temporarily generated in a storage medium that can be read by a device such as a server of a manufacturer, a server of an application store, or a memory of a relay server.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.According to various embodiments, each component (eg, module or program) of the above-described components may include a singular number or a plurality of entities. According to various embodiments, one or more components or operations among the above-described corresponding components may be omitted, or one or more other components or operations may be added. Alternatively or additionally, a plurality of components (eg, a module or program) may be integrated into one component. In this case, the integrated component may perform one or more functions of each component of the plurality of components in the same or similar to that performed by the corresponding component among the plurality of components prior to the integration. . According to various embodiments, operations performed by a module, program, or other component may be sequentially, parallel, repeatedly, or heuristically executed, or one or more of the operations may be executed in a different order or omitted. Or one or more other actions may be added.
도 2는, 다양한 실시예에 따르는 신경망 학습 장치를 구성하는 인공 신경망 모델의 개념도이다.2 is a conceptual diagram of an artificial neural network model constituting a neural network training apparatus according to various embodiments.
도 2를 참조하면, 일반적인 합성곱 신경망은 컨벌루션 레이어(201), 및 풀링 레이어(pooling layer)(202)를 이용한 입력 데이터(210)의 특성 추출(11) 및 완전 연결 레이어(290)를 이용한 입력 데이터(210)의 분류(12)에 사용될 수 있다.Referring to FIG. 2, in a general convolutional neural network,
다양한 실시예에 따르면, 컨벌루션 레이어(101)는 합성곱 연산을 통해 입력 데이터(210)의 의미있는 특징들을 추출하는 레이어일 수 있다. 예를 들면, 컨벌루션 레이어(201)는 입력데이터(210)에 특정 크기의 필터 또는 커널 매트릭스(kernel(weight) matrix)(230)를 적용하여 다음 레이어에 전달할 새로운 데이터를 생성할 수 있다. 이와 같은 컨벌루션 레이어(201)의 입출력 데이터는 특징 맵(feature maps)으로 지칭될 수 있다.According to various embodiments, the convolutional layer 101 may be a layer for extracting meaningful features of the
합성곱 신경망 모델에 입력된느 데이터가 RGB 성분과 같이 복수의 성분을 포함하는 입력 이미지인 경우, 입력 데이터는 복수의 채널로 구성될 수 있다. 예를 들면, 컨벌루션 레이어(201)의 입출력 데이터가 2차원 이미지의 공간 이외에 채널을 포함하고, 입출ㄹ력 데이터의 특징 맵은 3차원 형태로 이루어 질 수 있다.When data input to the convolutional neural network model is an input image including a plurality of components such as an RGB component, the input data may be composed of a plurality of channels. For example, input/output data of the
다양한 실시예에 따르면, 풀링 레이어(202)는 서브 샘플링(Sub-sampling)을 통하여 입력받은 데이터를 축소할 수 있다. 예를 들면, 풀링 레이어(202)는 최대 풀링(max pooling) 및 평균 풀링(average pooling)과 같은 풀링 기법을 통해 데이터를 샘플링 함으로써 데이터의 크기를 축소할 수 있다.According to various embodiments, the
다양한 실시예에 따르면, 완전 연결 레이어(290)는 컨벌루션 레이어(201) 및 풀링 레이어(202)를 통해 전달된 특징을 바탕으로 데이터 분류를 수행하기 위한 레이어로서, 3차원 형태의 특징 맵을 평탄화된 1차원 형태의 데이터를 입력 받을 수 있다. 이와 같이 완전 연결 레이어(290)를 통과한 1차원 형태의 데이터는 활성화 함수를 통해 출력신호로 변환될 수 있다. 합성곱 신경망은 컨벌루션 레이어 및 풀링 레이어를 사용하여 입력 데이터(예: 입력 이미지)에 대한 특징 맵의 3차원 형상을 유지할 수 있으므로, 입력 이미지의 화소 또는 채널 사이의 관련성에 관한 정보가 손실되는 것을 방지하여 이미지 인식률을 높일 수 있다.According to various embodiments, the fully connected
도 3a 및 3b는, 발생하는 오차를 줄이기 위한 정규화 동작을 도시한다.3A and 3B illustrate a normalization operation to reduce an error that occurs.
합성곱 신경망 모델의 측면에서 내부 공변량은 각각의 레이어에서 예상치 못한 출력 값의 분산을 야기시킬 수 있다. 머신 러닝 동작에서 각 레이어의 출력 값은 오프라인 출력 값과 차이를 보일 수 있다. 각각의 레이어의 출력 값의 공변량 이동(corariate shift)은 다음 레이어의 입력 값으로 사용되기 때문에 출력값의 분산 량은 최종 결과 값의 오차(error)를 발생시킬 수 있다.In terms of convolutional neural network models, internal covariates can cause unexpected variance of output values in each layer. In machine learning operations, the output value of each layer may show a difference from the offline output value. Since the corariate shift of the output value of each layer is used as the input value of the next layer, the amount of variance of the output value may cause an error of the final result value.
합성곱 신경망은 내부 공변량에 의한 공변량 시프트 문제를 각각의 레이어로부터 도출되는 결과 값을 배치 정규화(batch normalization)시키는 방법으로 해결할 수 있다. 학습 단계에서부터 배치 정규화를 적용해 신경망 학습 모델을 학습시킨 후 합성 신경망 모델의 각각의 레이어의 출력값 마다 배치정규화를 적용시킬 수 있다.The convolutional neural network can solve the problem of covariate shift due to internal covariates by batch normalizing the result values derived from each layer. After training a neural network training model by applying batch normalization from the learning stage, batch normalization can be applied to each output value of each layer of the synthetic neural network model.
도 3a를 참조하면, 오프라인 학습 단계에서 입력 레이어(310)는 입력 벡터 매트릭스를 전달받아, 제1 결과값을 도출할 수 있다. 제1 컨벌루션 레이어(320) 및 제2 컨벌루션 레이어(330)는 초기 모델에서는 공변량 이동이 발생하지 않고, 출력값을 생성할 수 있다. 제2 컨벌루션 레이어(330)는 출력값을 바탕으로 완전 연결 레이어(340)로 값을 전달할 수 있다. 완전 연결 레이어로부터 획득된 출력 값 분산이 일정하게 발생할 수 있다.Referring to FIG. 3A, in the offline learning step, the
다양한 실시예에 따르면, 가중치 추출(weight extraction)을 통한 추론동작을 거치게 되면, 각각의 레이어에서 공변량 이동이 발생할 수 있다. 예를 들면, 입력레이어(310)를 통과한 입력 벡터 매트릭스는 합성곱 과정을 통하여 출력 값이 이동되어 원하지 않는 분산이 발생할 수 있다. 입력레이어(310)의 출력값은 제1 컨벌루션 레이어(320)의 입력값으로 사용되고, 이에 따른 출력 값 분산이 추가될 수 있다. 각각의 레이어를 거치는 동안 출력값들의 이동은 더 커지게 되고, 최종 결과 값의 오차는 더욱 증가할 수 있다. According to various embodiments, when an inference operation is performed through weight extraction, covariate movement may occur in each layer. For example, an input vector matrix that has passed through the
도 3b를 참조하면, 배치 정규화 과정을 포함하는 합성곱 신경망은 정규화 과정을 거치면서, 오차를 줄이는 동작을 도시한다.Referring to FIG. 3B, a convolutional neural network including a batch normalization process shows an operation of reducing an error while undergoing a normalization process.
정규화 이전엔는 입력 레이어(310)에 입력되는 값의 평균은 0(μ=0)이고, 편차는 1(σ=1) 인 상태로 입력된다. 입력 레이어(310)에 처리된 입력 레이어(310)의 출력 값 또는 제1 컨벌루션 레이어(320)의 입력 값의 평균은 μ'(μ= μ')이고, 편차는 σ'(σ=σ')인 상태로 획득된다. Before normalization, the average of the values input to the
제1 컨벌루션 레이어(320)에 입력되는 값의 평균은 μ' (μ= μ')이고, 편차는 σ'(σ= σ') 인 상태로 입력된다. 제1 컨벌루션 레이어(320)에 처리된 제2 컨벌루션 레이어(330)의 출력 값 또는 제2 컨벌루션 레이어(330)의 입력 값의 평균은 μ"(μ= μ")이고, 편차는 σ"(σ=σ")인 상태로 획득된다. 따라서, 제2 컨벌루션 레이어(330)로부터 전달된 결과 값을 바탕으로 획득된 완전 연결 레이어(340)의 오차는 발생하게 된다.The average of values input to the first
각각의 레이어에 정규화 과정을 거치게 되면, 입력 레이어(310)에 입력되는 값의 평균은 0(μ=0)이고, 편차는 1(σ=1) 인 상태로 입력된다. 정규화 동작을 거쳐, 입력 레이어(310)에 처리된 입력 레이어(310)의 출력 값 또는 제1 컨벌루션 레이어(320)의 입력 값의 평균은 0(μ=0)이고, 편차는 1(σ=1)인 상태로 획득된다. When each layer undergoes a normalization process, the average of the values input to the
제1 컨벌루션 레이어(320)에 입력되는 값의 평균은 0(μ=0)이고, 편차는 1(σ=1) 인 상태로 입력된다. 정규화 동작을 거쳐, 제1 컨벌루션 레이어(320)에 처리된 제2 컨벌루션 레이어(330)의 출력 값 또는 제2 컨벌루션 레이어(330)의 입력 값의 평균은 0(μ=0)이고, 편차는 1(σ=1) 인 상태로 획득된다. 따라서, 제2 컨벌루션 레이어(330)로부터 전달된 결과 값을 바탕으로 획득된 완전 연결 레이어(340)의 값은 오차없이 균일한 분산 값으로 획득될 수 있다.The average of the values input to the first
도 4는, 다양한 실시예에 따른 인공 신경망 모델에 포함되는 커널 매트릭스의 블록도이다.4 is a block diagram of a kernel matrix included in an artificial neural network model according to various embodiments.
도 4를 참조하면, 배치 정규화 장치(400)는 커널 매트릭스(430), 정규화 회로 배열(410) 및 제어부(420)를 포함할 수 있다. 커널 매트릭스(430)은 입력되는 데이터에 가중치를 부여하여, 특징 값을 추출할 수 있다. 예를 들면, 제1 레이어(480)로부터 전달되는 입력 벡터(input vector)(431)를 합성곱 연산을 통해 특징들을 추출해 낼 수 있다. 커널 매트릭스(430)는 제2 레이어(490)로 전달되는 제1 출력 데이터(411)를 생성할 수 있다. 커널 매트릭스(430)를 통해 획득된 출력 데이터는 특징 맵으로 지칭될 수 있다. Referring to FIG. 4, the arrangement normalization apparatus 400 may include a
다양한 실시예에 따르면, 커널 매트릭스(430)는 저항성 메모리의 교차 배열(RRAM crossbar array)(또는 RRAM 시냅스 어레이)을 통하여 구현될 수 있다. 저항성 메모리(ReRAM, resistive RAM)는 외부에서 인가하는 전압 펄스에 따라 저항 값이 변하는 특성을 이용하여 시냅스 학습을 구현할 수 있다. 저항성 메모리의 교차 배열로 형성되는 커널 매트릭스(430)는 인가되는 전압 펄스에 의해 출력되는 출력 값을 획득할 수 있다.According to various embodiments, the
다양한 실시예에 따르면, 제1 출력 데이터(411)는 가중치 부여를 위한 합성곱 연산 과정에서 내부 공변량 시프트가 발생할 수 있다. 정규화 회로 배열(410)은 제1 출력 데이터(411)의 파라미터 변화로 인한 분포 변화에 의해 발생한 가중치 소실 또는 가중치 폭발을 감소시키기 위하여 제1 출력 데이터(411)를 정규화 시키고, 정규화된 제2 출력 데이터(412)를 획득하여 제2 레이어(490)으로 전달한다.According to various embodiments, the
다양한 실시예에 따르면, 정규화 회로 배열(410)은 능동소자인 OP-AMP와 커패시터, 복수의 스위치로 형성된 회로 배열을 포함할 수 있다. 회로 배열(410)은 스위칭 동작에 의하여, 출력값의 평균을 구하고, 입렵 값과 평균값 간의 편차, 편차의 배수값 등을 구할 수 있고, 획득된 값들의 조합으로 정규화를 구현할 수 있다.According to various embodiments, the
다양한 실시예에 따르면, 아날로그 신호(예: 전압)를 전달받아, 저항성 메모리 배열로 형성된 커널 매트릭스는 가중치를 주고, 이를 회로 배열을 통해서 정규화 시킬 수 있다. 예를 들면, 아날로그 신호를 전달받은 커널은 데이터를 처리하여, 디지털 시호의 변환 과정없이 아날로그 출력 신호를 전달할 수 있다.According to various embodiments, by receiving an analog signal (eg, voltage), a kernel matrix formed of a resistive memory array may be given a weight and normalized through a circuit array. For example, a kernel receiving an analog signal may process data and transmit an analog output signal without converting a digital time signal.
다양한 실시예에 따르면, 제어부(420)는 상기 정규화 회로 배열(410)의 스위칭 동작을 제어하는 신호를 전달하도록 구성될 수 있다. 제어부(420)는 프로세서(120)과 전기적으로 연결될 수 있다.According to various embodiments, the controller 420 may be configured to transmit a signal for controlling the switching operation of the
다양한 실시예에 따르면, 프로세서(120)는 제어부(420)로 클럭 신호 및 가중치 신호들을 포함하는 제어 신호(421)를 전달할 수 있다. 제어부(420)는 제어 신호(421)에 기반하여, 스위치 동작을 제어하기 위한 복수의 클럭 신호(422)를 전달할 수 있다. 클럭 신호에 따라 스위칭이 동작하고, 정규화 회로 배열(410)은 평균값, 편차, 및 가중치가 부여된 값을 획득할 수 있다. According to various embodiments, the
다양한 실시예에 따르면, 정규화 회로 배열(410)은 전달된 클럭 신호(422)에 따라 제1 출력 데이터(411)를 정규화하여 제2 출력 데이터(412)를 획득할 수 있다. 제2 출력데이터(412)는 제2 레이어(490)의 입력 데이터로 활용될 수 있다.According to various embodiments, the
도 5는, 다양한 실시예에 따르는, 인공 신경망 모델에 포함되는 커널 매트릭스를 구현하는 저항성 메모리 배열의 개념도이다.5 is a conceptual diagram of a resistive memory arrangement implementing a kernel matrix included in an artificial neural network model, according to various embodiments.
도 5를 참조하면, 커널 매트릭스(430)(또는 저항 메모리 배열)는 저항 메모리를 격자 형태로 배열시킬 수 있다.Referring to FIG. 5, the kernel matrix 430 (or the resistive memory array) may arrange resistive memories in a lattice form.
다양한 실시예에 따르면, 저항성 메모리(531)는 외부에서 인가하는 전압 펄스에 따라 저항 값이 변하는 특성을 이용하여 시냅스 학습을 구현할 수 있다. 저항성 메모리의 교차 배열로 형성되는 커널 매트릭스(430)는 인가되는 전압 펄스에 의해 출력되는 출력 값을 획득할 수 있다. 출력 값은 입력 레이어로부터 획득된 특징 점들일 수 있다. 예를 들면, 출력 값은 가중치가 부여된 커널 매트릭스(430)를 통하여 입력 데이터(예: 도 2의 입력 데이터(210))로부터 변환된 컨벌루션 레이어(예: 도 2의 컨럴루션 레이어(201))의 입력 값일 수 있다.According to various embodiments, the
다양한 실시예에 따르면, 집적할 수 있는 어레이가 제한적이면, 다수의 저항성 메모리 배열들은 상호 연결을 통해 합성곱 신경망의 필요한 커널을 확장할 수 있다.According to various embodiments, if the number of arrays that can be integrated is limited, the plurality of resistive memory arrays may extend the required kernel of the convolutional neural network through interconnection.
도 6a, 및 6b는 다양한 실시예에 따르는, 배치 정규화 장치의 회로도이다.6A and 6B are circuit diagrams of a batch normalization apparatus, according to various embodiments.
도 6a 및 도 6b를 참조하면, 배치 정규화 장치(batch normalization device)(600)는 저항성 메모리(531)의 교차 배열로 형성된 커널 매트릭스(430)와 커널 매트릭스(430)의 일단에 연결되는 적분기(611)의 배열(610), 적분기(611)의 출력단에 연결되는 커패시터(620) 및 적분기(611)의 출력단에서 커패시터(620)와 병렬로 연결되는 스위치 배열(630)을 포함할 수 있다.6A and 6B, a batch normalization device 600 includes a
정규화 동작은 다음과 같이 동작할 수 있다. 적분기 출력단의 전압은 적분기(611)의 배열(610)을 지나 각각의 출력단에서 V1, V2, V3, V4의 값을 가질 수 있다(S601). 각각의 적분기(611) 출력단의 전압의 평균은 스위치 배열(630)의 스위칭 동작을 통하여, 커패시터(620)는 서로 병렬 연결될 수 있다. CL1, CL2, CL3, CL4값을 가지는 커패시터(620)들의 일단은 전압 Vμ가 인가될 수 있다(S602). 각각의 커패시터의 CL1, CL2, CL3, CL4값은 동일할 수 있다. 전압의 평균 값 Vμ는 아래의 수식을 통하여 획득될 수 있다.The normalization operation can be operated as follows. The voltage at the output terminal of the integrator passes through the
, ,
스위치 배열(630)내에 포함된 커패시터들과 OP AMP를 이용하여, 커패시터에 Vμ 및 Vi를 충전할 수 있다(S603). OP AMP의 출력단과 입력단에 병렬 연결되는 커패시터에 의해 출력단에 Vi'이 인가될 수 있고, 이 값들을 출력 값으로 사용할 수 있다(S604). Vi-Vμ값의 가중치 α는 커패시터들의 값을 조절하여 결정할 수 있다. 동작 S604에서의, OP AMP의 출력단에 인가되는 전압Vi'은 아래의 수식을 통하여 획득될 수 있다.Using the capacitors included in the
, ,
도 6b의 배치 정규화 장치는 전력 소모가 많은 OP AMP의 개수를 줄이기 위해서, 스위치 배열(630)회로와 적분기(610) 회로를 겹합 한 것을 도시한다. The arrangement normalization apparatus of FIG. 6B shows a combination of a
다양한 실시예에 따르면, 결합된 스위치 배열(630')회로는 스위치 배열(630)의 회로에 포함된 OP AMP를 줄일 수 있다. 구체적인 스위치 배열의 동작은 후술할 도 7a 내지 도 7e를 통해 설명한다.According to various embodiments, the combined switch arrangement 630' circuit can reduce the OP AMP included in the circuit of the
도 7a 내지 도 7e는, 다양한 실시예에 따르는 신경망 학습 장치의 각 단계에서의 스위칭 동작을 도시한다.7A to 7E illustrate switching operations in each step of an apparatus for learning a neural network according to various embodiments.
스위치 회로 배열(630)은 제어부로부터 제어 신호를 받아 스위칭 동작을 제어할 수 있다. 스위치 회로 배열은, 적분기(750a, 750b), 및 커패시터(720a)를 포함하고, 스위칭 동작에 따라, 적분기(750a, 750b) 및 커패시터(720a, 720b) 사이의 전기적 경로를 변경할 수 있다.The
도 7a를 참조하면, 스위치 회로 배열(630)은 제어부로부터 적분(integration)을 위한 제1 신호를 수신하면, 커패시터(720a, 720b)는 적분기(750a, 750b)의 출력단과 전기적으로 연결시키고, 복수의 스위칭 회로(701a, 701b)는 서로 단락될 수 있다. 구체적으로, 스위치 회로 배열(630)에 포함된 적분기(750a, 750b)의 출력단에 연결된 스위치(721a, 721b)는 단락될 수 있다. 스위치 회로 배열(630)에 포함된 각각의 스위칭 회로(701a, 701b)는 스위치(722)의 개방으로 개방상태로 유지될 수 있다. 스위치 회로 배열(630)은 저항 메모리 배열(예: 도 4의 커널 매트릭스(430))로부터 발생한 전류를 적분기(750a, 750b)에 포함된 커패시터(715a) 및 추가 커패시터(720a)에 전하를 충전할 수 있다. 적분기(750a, 750b)에 포함된 커패시터(715a) 및 추가 커패시터(720a)의 크기는 동일할 수 있다. 따라서, 커패시터(715a)에 충전된 전하량은 동일할 수 있다. Referring to FIG. 7A, when the
도 7b를 참조하면, 스위치 회로 배열(630)은 제어부로부터 평균값을 구하기 위한 제2 신호를 수신하면, 커패시터(720a, 720b)의 일단을 적분기(750a, 750b)의 입력단과 전기적으로 연결시키고, 복수의 스위칭 회로(701a, 701b)는 병렬로 연결될 수 있다. 구체적으로, 스위치 회로 배열(630)에 포함된 각각의 채널의 커패시터(720a, 720b)는 적분기(750a, 750b)의 출력단에서 개방되고, 각각의 커패시터(720a, 720b)는 서로 단락될 수 있다. 예를 들면, 적분기(750a, 750b)의 출력단에 연결된 스위치(721a, 721b)는 개방되고, 각각의 스위칭 회로(701a, 701b)의 커패시터(720a, 720b)는 스위치(722a)의 단락으로 서로 연결될 수 있다.Referring to FIG. 7B, when the
다양한 실시예에 따르면, 각각의 커패시터(720a, 720b)들은 도 7a에서 V1, V2, V3??로 충전될 수 있다. 도 7b의 스위칭 동작이후, 각각의 커패시터(720a, 720b)들은 동일한 커패시턴스를 가지고 있으므로, 전압의 평균값 Vμ로 충전되게 되고, 각각의 적분기(750a, 750b)의 출력단은 도 7a와 동일하게 V1, V2, V3??로 유지될 수 있다.According to various embodiments, each of the
도 7c를 참조하면, 스위치 회로 배열(630)은 제어부로부터 평균값만큼 시프팅을 위한 제3 신호를 수신하면, 커패시터(720a, 720b)의 일단을 적분기(750a, 750b)의 입력단과 전기적으로 연결시키고 커패시터(720a, 720b)의 타단을 접지시킬 수 있다.Referring to FIG. 7C, when receiving a third signal for shifting by an average value from the control unit, the
다양한 실시예에 따르면, 도 7b의 동작 이후, 각각의 채널의 커패시터(720a, 720b)들은 출력단의 평균 값 Vμ만큼 저장되어 있다. 이때, 평균 값 Vμ만큼 저장된 커패시터(720a, 720b)는 스위치(723a, 723b)의 단락으로, 적분기(750a, 750b)의 입력단과 연결될 수 있다. 또한, 적분기(750a, 750b)의 입력단으로 유입되는 전류는 커패시터(720a, 720b)로 일부 유입되어, 적분기(750a, 750b)에서의 출력 값은 평균 값 Vμ만큼 시프팅되어, V1- Vμ, V2- Vμ일 수 있다.According to various embodiments, after the operation of FIG. 7B, the
도 7d를 참조하면, 스위치 회로 배열(630)은 제어부로부터 샘플링을 위한 제4 신호를 수신하면, 상기 스위치는 제어부로부터 전달된 신호가 제4 신호이면, 상기 커패시터의 타단을 상기 적분기의 입력단과 전기적으로 연결시키되, 상기 커패시터의 일단을 접지시키고, 복수의 회로는 서로 개방될 수 있다.Referring to FIG. 7D, when the
다양한 실시예에 따르면, 각각의 채널의 커패시터(720a, 720b)들은 적분기(750a, 750b)의 출력단과 전기적으로 연결시키고, 복수의 스위칭 회로(701a, 701b)는 서로 단락될 수 있다. 구체적으로, 스위치 회로 배열(630)에 포함된 적분기(750a, 750b)의 출력단과 커패시터(720a, 720b)의 일단에 연결된 스위치(724a, 724b)는 단락될 수 있다. 커패시터(720a, 720b)의 타단에 연결된 스위치(725a, 725b)는 단락되어 접지될 수 있다. 스위치 회로 배열(630)에 포함된 각각의 스위칭 회로(701a, 701b)는 스위치(722)의 개방으로 개방상태로 유지될 수 있다. 적분기(750a, 750b)에 포함된 커패시터(715a,715b) 및 추가 커패시터(720a,720b)의 크기는 동일할 수 있다. 따라서, 커패시터(720a, 720b)에 충전된 전하량은 CL(V1- Vμ), CL(V2- Vμ)값일 수 있다.According to various embodiments, the
스위치 회로 배열(630)은 제어부로부터 증폭을 위한 제5 신호를 수신하면, 제4 신호에 의한 스위칭 동작 이후, 커패시터(720a, 720b)의 일단을 상기 적분기의 입력단과 전기적으로 연결시키고 커패시터(720a, 720b)의 타단을 접지시킬 수 있다. When the
다양한 실시예에 따르면, 제4 신호에 의한 스위칭 동작 이후, 각각의 채널의 커패시터(720a, 720b)들은 V1- Vμ, V2- Vμ 만큼 저장될 수 있다. 제4 신호에 의한 스위칭 동작에 의해 연결되었던 스위치(724a, 724b, 725a, 725b)들은 개방되고, 동시에 평균 값 V1- Vμ, V2-Vμ만큼 저장된 커패시터(720a, 720b)는 스위치(723a, 723b)의 단락으로, 적분기(750a, 750b)의 입력단과 연결될 수 있다. 이때, 제4 신호에 의한 스위칭 동작에서와 상이하게 커패시터(720a, 720b)는 접지부와 연결되는 단자부는 반대로 연결될 수 있다. 또한, 적분기(750a, 750b)의 입력단으로 유입되는 전류는 커패시터(720a, 720b)로 일부 유입되어, 적분기(750a, 750b)에서의 출력 값은 평균 값 V1- Vμ 만큼 증폭되어, 2(V1- Vμ), 2(V2- Vμ)일 수 있다.According to various embodiments, after the switching operation by the fourth signal, the
다양한 실시예에 따르면, 제4 신호 및 제5 신호 동작은 반복적으로 수행될 수 있으며, 1회 반복될 때의 적분기(750a, 750b)에서의 출력 값은 2(V1- Vμ), 2(V2- Vμ), 2회 반복될 때의 적분기(750a, 750b)에서의 출력 값은 4(V1- Vμ), 4(V2- Vμ), 3회 반복될 때의 적분기(750a, 750b)에서의 출력 값은 8(V1- Vμ), 8(V2- Vμ)을 획득할 수 있다.According to various embodiments, the fourth and fifth signal operations may be repeatedly performed, and output values from the
다양한 실시예에 따르면, 이러한 사이클의 수는 제어부(120)에서 인가되는 제어 신호(예: 도 4의 제어 신호(421))에 의해 결정될 수 있다. 사이클 수는 정규화 가정에서의 증폭 인자일 수 있다.According to various embodiments, the number of cycles may be determined by a control signal (eg, the
도 7e를 참조하면, 스위치 회로 배열(630)은 제어부로부터 리셋을 위한 제6 신호를 수신하면, 상기 커패시터 및 상기 적분기의 출력단을 접지시킬 수 있다.Referring to FIG. 7E, when the
다양한 실시예에 따르면, 커패시터(720a, 720b)의 양단에 연결된 스위치(726a, 726b)를 단락시킬 수 있다. 커패시터(720a, 720b)는 양단을 모두 접지되어 저장된 전하를 모두 방전할 수 있다. According to various embodiments, the
적분기(750a, 750b)의 출력부와 일단이 연결된 스위치(727a, 727b)를 단락 시킬 수 있다. 스위치(727a, 727b)의 타단은 접지되어, 적분기(750a, 750b)에 배치된 커패시터(715a, 715b)도 방전될 수 있다. 이를 통하여, 정규화 동작이후에 입력된 신호를 초기화할 수 있다.
상술한 다양한 실시예에 따르는 신경망 학습 장치는, 디지털 처리 장치없이 아날로그 신호만으로 배치 정규화를 수행할 수 있다. 다양한 실시예에 따르면, 배치 정규화 장치는 OP AMP, 복수의 커패시터 및 복수의 스위치로 형성되어, 스위칭 동작으로, 평균 값, 편차, 가중치 부여를 수여할 수 있도록 설계될 수 있다.The neural network training apparatus according to the various embodiments described above may perform batch normalization only with an analog signal without a digital processing device. According to various embodiments of the present disclosure, the arrangement normalization device may be formed of an OP AMP, a plurality of capacitors, and a plurality of switches, and may be designed to grant an average value, a deviation, and a weighting by switching operation.
도 8은 다양한 실시예에 따르는 신경망 학습 장치를 통한 결과 값의 편차를 비교한 그래프이다.8 is a graph comparing deviations of result values through a neural network learning apparatus according to various embodiments.
첫번째 행에 있는 그래프는 공변량이 없음을 가정하고, 시뮬레이션한 제1 레이어 및 제2 레이어의 출력 값 분포를 나타낸 그래프이다. 두번째 행에 있는 그래프는 장치에 따른 공변량이 존재하는 경우, 시뮬레이션한 제1 레이어 및 제2 레이어의 출력 값 분포를 나타낸 그래프이다. 두 그래프를 참조하면, 장치에 의한 공변량이 존재하는 경우, 첫번째 그래프와의 분포에 관한 편차가 심하게 남을 알 수 있다.The graph in the first row is a graph showing the distribution of the simulated output values of the first layer and the second layer, assuming that there is no covariate. The graph in the second row is a graph showing the distribution of simulated output values of the first layer and the second layer when there is a device-dependent covariate. Referring to the two graphs, when there is a covariate due to the device, it can be seen that the deviation from the first graph remains severe.
세번째 행에 있는 그래프는 정규화를 통하여, 획득된 제1 레이어 및 제2 레이어의 출력 값 분포를 나타낸 그래프이다. 첫번째 행에 배치된 그래프와 비교할 때, 편차가 거의 존재하지 않고, 각각의 출력 값의 빈도도 유사하게 나타남을 알 수 있다. 상기의 시뮬레이션을 통하여 다양한 실시예에 따르는, 신경망 학습 장치는 정확성이 높은 결과를 가질 수 있음을 알 수 있다.The graph in the third row is a graph showing the distribution of output values of the first layer and the second layer obtained through normalization. Compared to the graph arranged in the first row, there is almost no deviation, and it can be seen that the frequency of each output value is similar. Through the above simulation, it can be seen that the neural network learning apparatus according to various embodiments may have a result with high accuracy.
상술한 다양한 실시예에 따르는 신경망 학습 장치는, 인공 신경망 모델 학습을 위한 훈련 데이터를 입력하기 위한 입력부와, 상기 훈련 데이터를 이용하여 상기 인공 신경망 모델을 훈련시키는 러닝 프로세서를 포함하고, 상기 인공 신경망 모델은, 상기 입력부로부터 전달받은 데이터에 대응되는 신호를 전달받는 복수의 레이어들 및, 상기 복수의 레이어들 사이에 배치되는 적어도 하나의 배치 정규화 장치 (batch normalization device)를 포함하고, 상기 배치 정규화 장치는 상기 복수의 레이어들 중 제1 레이어로부터 전달된 제1 아날로그 신호를 합성곱 처리하는 저항 메모리 배열(RRAM array) 및 상기 저항 메모리 배열로부터 합성곱 처리된 제2 아날로그 신호를 정규화하여 제2 레이어로 제3 아날로그 신호를 전달하는 복수의 전기 소자 및 복수의 스위치를 포함하는 회로 배열을 포함할 수 있다.The neural network training apparatus according to the various embodiments described above includes an input unit for inputting training data for training an artificial neural network model, and a learning processor for training the artificial neural network model using the training data, and the artificial neural network model Includes a plurality of layers receiving a signal corresponding to the data received from the input unit, and at least one batch normalization device disposed between the plurality of layers, wherein the batch normalization device comprises: A resistive memory array (RRAM array) that performs convolutional processing of a first analog signal transmitted from a first layer among the plurality of layers, and a second analog signal convolutional-processed from the resistive memory array is normalized to form a second layer. 3 A circuit arrangement including a plurality of electrical elements and a plurality of switches for transmitting analog signals may be included.
다양한 실시예에 따르면, 상기 회로 배열은, 상기 저항 메모리 배열의 각 채널을 통해 전달되는 전압 값을 제어할 수 있다.According to various embodiments, the circuit arrangement may control a voltage value transmitted through each channel of the resistive memory arrangement.
다양한 실시예에 따르면, 상기 배치 정규화 장치는, 상기 저항 메모리 배열의 각 채널에 인가되는 신호를 정규화 하도록 상기 회로 배열을 제어하는 제어부를 포함할 수 있다.According to various embodiments, the arrangement normalization apparatus may include a control unit that controls the circuit arrangement to normalize signals applied to each channel of the resistive memory arrangement.
다양한 실시예에 따르면, 상기 제어부는, 상기 회로 배열의 스위치 동작을 위한 제어 신호를 상기 회로 배열로 전달할 수 있다.According to various embodiments, the control unit may transmit a control signal for a switch operation of the circuit arrangement to the circuit arrangement.
다양한 실시예에 따르면, 상기 회로 배열의 복수의 전기 소자는, 복수의 적분기, 및 복수의 커패시터를 포함하고, 상기 스위치는 상기 제어부의 상기 제어 신호를 바탕으로 적분기 및 커패시터 사이의 전기적 경로를 변경할 수 있다.According to various embodiments, the plurality of electrical elements of the circuit arrangement include a plurality of integrators and a plurality of capacitors, and the switch may change an electrical path between the integrator and the capacitor based on the control signal of the controller. have.
다양한 실시예에 따르면, 상기 회로 배열은 출력되는 제2 아날로그 신호 또는 제3 아날로그 신호를 전달받는 채널에 대응되는 복수의 회로가 병렬 연결되고, 상기 커패시터는 상기 적분기의 입력단 또는 출력단에 연결될 수 있다.According to various embodiments, in the circuit arrangement, a plurality of circuits corresponding to a channel receiving an output second analog signal or a third analog signal may be connected in parallel, and the capacitor may be connected to an input terminal or an output terminal of the integrator.
다양한 실시예에 따르면, 상기 스위치는 제어부로부터 전달된 신호가 제1 신호이면, 상기 커패시터를 상기 적분기의 출력단과 전기적으로 연결시키고, 복수의 회로는 서로 단락될 수 있다.According to various embodiments, when the signal transmitted from the control unit is a first signal, the switch may electrically connect the capacitor to the output terminal of the integrator, and a plurality of circuits may be shorted to each other.
다양한 실시예에 따르면, 상기 스위치는 제어부로부터 전달된 신호가 제2 신호이면, 상기 커패시터의 일단을 상기 적분기의 입력단과 전기적으로 연결시키고, 복수의 회로는 병렬로 연결될 수 있다.According to various embodiments, when the signal transmitted from the controller is the second signal, the switch may electrically connect one end of the capacitor to the input terminal of the integrator, and a plurality of circuits may be connected in parallel.
다양한 실시예에 따르면, 상기 스위치는 제어부로부터 전달된 신호가 제3 신호이면, 상기 커패시터의 일단을 상기 적분기의 입력단과 전기적으로 연결시키고 상기 커패시터의 타단을 접지시킬 수 있다.According to various embodiments, when the signal transmitted from the controller is a third signal, the switch may electrically connect one end of the capacitor to the input terminal of the integrator and ground the other end of the capacitor.
다양한 실시예에 따르면, 상기 스위치는 제어부로부터 전달된 신호가 제4 신호이면, 상기 커패시터의 타단을 상기 적분기의 입력단과 전기적으로 연결시키되, 상기 커패시터의 일단을 접지시키고, 복수의 회로는 서로 개방될 수 있다.According to various embodiments, when the signal transmitted from the controller is a fourth signal, the switch electrically connects the other end of the capacitor to the input terminal of the integrator, grounds one end of the capacitor, and the plurality of circuits are opened to each other. I can.
다양한 실시예에 따르면, 상기 스위치는 제어부로부터 전달된 신호가 제5 신호이면, 상기 커패시터의 일단을 상기 적분기의 입력단과 전기적으로 연결시키고 상기 커패시터의 타단을 접지시킬 수 있다.According to various embodiments, when the signal transmitted from the controller is a fifth signal, the switch may electrically connect one end of the capacitor to the input terminal of the integrator and ground the other end of the capacitor.
다양한 실시예에 따르면, 상기 스위치는 제어부로부터 전달된 신호가 제6 신호이면, 상기 커패시터 및 상기 적분기의 출력단을 접지시킬 수 있다.According to various embodiments, the switch may ground the capacitor and the output terminal of the integrator when the signal transmitted from the controller is a sixth signal.
다양한 실시예에 따르면, 상기 인공 신경망 모델은, CNN (convolution neural network) 또는 BNN (binarized neural network)을 포함할 수 있다.According to various embodiments, the artificial neural network model may include a convolution neural network (CNN) or a binarized neural network (BNN).
다양한 실시예에 따르는 전자 장치는 인공 신경망 모델을 정규화 하는 배치 정규화 장치를 포함하고, 상기 배치 정규화 장치는 상기 복수의 레이어들 중 제1 레이어로부터 전달된 제1 아날로그 신호를 합성곱 처리하는 저항 메모리 배열(RRAM array), 상기 저항 메모리 배열로부터 합성곱 처리된 제2 아날로그 신호를 정규화하여 제2 레이어로 제3 아날로그 신호를 전달하는 복수의 능동소자를 포함하는 회로 배열 및 상기 회로 배열을 제어하도록 설정된 제어부를 포함할 수 있다.An electronic device according to various embodiments of the present disclosure includes a batch normalizing device for normalizing an artificial neural network model, and the batch normalizing device is a resistive memory array for convolutional processing a first analog signal transmitted from a first layer among the plurality of layers. (RRAM array), a circuit arrangement including a plurality of active elements for transmitting a third analog signal to a second layer by normalizing a second analog signal subjected to convolution from the resistive memory array, and a control unit configured to control the circuit arrangement It may include.
본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다. The methods according to the embodiments described in the claims or the specification of the present disclosure may be implemented in the form of hardware, software, or a combination of hardware and software.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다. When implemented in software, a computer-readable storage medium storing one or more programs (software modules) may be provided. One or more programs stored in a computer-readable storage medium are configured to be executable by one or more processors in an electronic device (device). The one or more programs include instructions for causing the electronic device to execute methods according to embodiments described in the claims or specification of the present disclosure.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM: Read Only Memory), 전기적 삭제가능 프로그램가능 롬(EEPROM: Electrically Erasable Programmable Read Only Memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM: Compact Disc-ROM), 디지털 다목적 디스크(DVDs: Digital Versatile Discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다. These programs (software modules, software) include random access memory, non-volatile memory including flash memory, read only memory (ROM), and electrically erasable programmable ROM. (EEPROM: Electrically Erasable Programmable Read Only Memory), magnetic disc storage device, Compact Disc-ROM (CD-ROM), Digital Versatile Discs (DVDs), or other types of It may be stored in an optical storage device or a magnetic cassette. Alternatively, it may be stored in a memory composed of a combination of some or all of them. In addition, a plurality of configuration memories may be included.
또한, 상기 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(Local Area Network), WLAN(Wide LAN), 또는 SAN(Storage Area Network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다. In addition, the program is through a communication network composed of a communication network such as the Internet, an intranet, a local area network (LAN), a wide LAN (WLAN), or a storage area network (SAN), or a combination thereof. It may be stored in an accessible storage device. Such a storage device may access a device performing an embodiment of the present disclosure through an external port. In addition, a separate storage device on the communication network may access a device performing an embodiment of the present disclosure.
상술한 본 개시의 구체적인 실시 예들에서, 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다. In the above-described specific embodiments of the present disclosure, components included in the disclosure are expressed in the singular or plural according to the presented specific embodiments. However, the singular or plural expression is selected appropriately for the situation presented for convenience of description, and the present disclosure is not limited to the singular or plural constituent elements, and even constituent elements expressed in plural are composed of the singular or Even the expressed constituent elements may be composed of pluralities.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다. Meanwhile, although specific embodiments have been described in the detailed description of the present disclosure, various modifications may be made without departing from the scope of the present disclosure. Therefore, the scope of the present disclosure is limited to the described embodiments and should not be defined, and should be determined by the scope of the claims and equivalents as well as the scope of the claims to be described later.
100 : 입력부
120: 프로세서
130 : 메모리
131 : 인공 신경망 모델
140 : 러닝 프로세서
230: 커널 매트릭스 또는 저항 메모리 배열
410 : 정규화 회로 배열
420 : 제어부100: input
120: processor
130: memory
131: artificial neural network model
140: running processor
230: kernel matrix or resistive memory array
410: normalization circuit arrangement
420: control unit
Claims (13)
상기 훈련 데이터를 이용하여 상기 인공 신경망 모델을 훈련시키는 러닝 프로세서를 포함하고,
상기 인공 신경망 모델은,
상기 입력부로부터 전달받은 데이터에 대응되는 신호를 전달받는 복수의 레이어들 및, 상기 복수의 레이어들 사이에 배치되는 적어도 하나의 배치 정규화 장치 (batch normalization device)를 포함하고,
상기 배치 정규화 장치는 상기 복수의 레이어들 중 제1 레이어로부터 전달된 제1 아날로그 신호를 합성곱 처리하는 저항 메모리 배열(RRAM array) 및 상기 저항 메모리 배열로부터 합성곱 처리된 제2 아날로그 신호를 정규화하여 제2 레이어로 제3 아날로그 신호를 전달하는 복수의 전기 소자 및 복수의 스위치를 포함하는 회로 배열을 포함하는, 신경망 학습 장치.
An input unit for inputting training data for training an artificial neural network model; And
Including a learning processor for training the artificial neural network model using the training data,
The artificial neural network model,
A plurality of layers receiving a signal corresponding to the data received from the input unit, and at least one batch normalization device disposed between the plurality of layers,
The arrangement normalization device normalizes a resistive memory array (RRAM array) for convolutional processing a first analog signal transmitted from a first layer among the plurality of layers, and a second analog signal convolutional processing from the resistive memory array. A neural network learning apparatus comprising a circuit arrangement including a plurality of switches and a plurality of electrical elements for transmitting a third analog signal to a second layer.
상기 회로 배열은,
상기 저항 메모리 배열의 각 채널을 통해 전달되는 전압 값을 제어하는 신경망 학습 장치.
The method of claim 1,
The circuit arrangement,
Neural network training apparatus for controlling a voltage value transmitted through each channel of the resistive memory array.
상기 배치 정규화 장치는,
상기 저항 메모리 배열의 각 채널에 인가되는 신호를 정규화 하도록 상기 회로 배열을 제어하는 제어부를 포함하는 신경망 학습 장치.
The method of claim 1,
The batch normalization device,
And a control unit for controlling the circuit arrangement to normalize signals applied to each channel of the resistive memory arrangement.
상기 제어부는,
상기 회로 배열의 스위치 동작을 위한 제어 신호를 상기 회로 배열로 전달하는 신경망 학습 장치.
The method of claim 3,
The control unit,
Neural network learning apparatus for transmitting a control signal for a switch operation of the circuit arrangement to the circuit arrangement.
상기 회로 배열의 복수의 전기 소자는, 복수의 적분기, 및 복수의 커패시터를 포함하고,
상기 스위치는 상기 제어부의 상기 제어 신호를 바탕으로 적분기 및 커패시터 사이의 전기적 경로를 변경하는 신경망 학습 장치.
The method of claim 4,
The plurality of electric elements of the circuit arrangement includes a plurality of integrators and a plurality of capacitors,
The switch is a neural network learning apparatus for changing an electrical path between an integrator and a capacitor based on the control signal of the controller.
상기 회로 배열은 출력되는 제2 아날로그 신호 또는 제3 아날로그 신호를 전달받는 채널에 대응되는 복수의 회로가 병렬 연결되고,
상기 커패시터는 상기 적분기의 입력단 또는 출력단에 연결되는 신경망 학습 장치.
The method of claim 5,
In the circuit arrangement, a plurality of circuits corresponding to a channel receiving an output second analog signal or a third analog signal are connected in parallel,
The capacitor is a neural network learning device connected to an input terminal or an output terminal of the integrator.
상기 스위치는 제어부로부터 전달된 신호가 제1 신호이면, 상기 커패시터를 상기 적분기의 출력단과 전기적으로 연결시키고, 복수의 회로는 서로 단락되는 신경망 학습 장치.
The method of claim 6,
The switch electrically connects the capacitor to the output terminal of the integrator when the signal transmitted from the control unit is a first signal, and a plurality of circuits are short-circuited to each other.
상기 스위치는 제어부로부터 전달된 신호가 제2 신호이면, 상기 커패시터의 일단을 상기 적분기의 입력단과 전기적으로 연결시키고, 복수의 회로는 병렬로 연결되는 신경망 학습 장치.
The method of claim 6,
The switch electrically connects one end of the capacitor to the input terminal of the integrator, and a plurality of circuits are connected in parallel when the signal transmitted from the controller is a second signal.
상기 스위치는 제어부로부터 전달된 신호가 제3 신호이면, 상기 커패시터의 일단을 상기 적분기의 입력단과 전기적으로 연결시키고 상기 커패시터의 타단을 접지시키는 신경망 학습 장치.
The method of claim 6,
The switch is a neural network learning apparatus for electrically connecting one end of the capacitor to an input terminal of the integrator and grounding the other end of the capacitor when the signal transmitted from the controller is a third signal.
상기 스위치는 제어부로부터 전달된 신호가 제4 신호이면, 상기 커패시터의 타단을 상기 적분기의 입력단과 전기적으로 연결시키되, 상기 커패시터의 일단을 접지시키고, 복수의 회로는 서로 개방되는 신경망 학습 장치.
The method of claim 9,
When the signal transmitted from the controller is a fourth signal, the switch electrically connects the other end of the capacitor to the input terminal of the integrator, grounds one end of the capacitor, and opens a plurality of circuits to each other.
상기 스위치는 제어부로부터 전달된 신호가 제5 신호이면, 상기 커패시터의 일단을 상기 적분기의 입력단과 전기적으로 연결시키고 상기 커패시터의 타단을 접지시키는 신경망 학습 장치.
The method of claim 10,
The switch is a neural network learning apparatus for electrically connecting one end of the capacitor to an input terminal of the integrator and grounding the other end of the capacitor if the signal transmitted from the controller is a fifth signal.
상기 스위치는 제어부로부터 전달된 신호가 제6 신호이면, 상기 커패시터 및 상기 적분기의 출력단을 접지시키는 신경망 학습 장치.
The method of claim 6,
The switch is a neural network learning device for grounding the capacitor and the output terminal of the integrator when the signal transmitted from the controller is a sixth signal.
상기 인공 신경망 모델은,
CNN (convolution neural network) 또는 BNN (binarized neural network)을 포함하는 신경망 학습 장치.
The method of claim 1,
The artificial neural network model,
A neural network training device including a convolution neural network (CNN) or a binarized neural network (BNN).
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190136351A KR102293820B1 (en) | 2019-10-30 | 2019-10-30 | Neural network learning device comprising analog batch normalization device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190136351A KR102293820B1 (en) | 2019-10-30 | 2019-10-30 | Neural network learning device comprising analog batch normalization device |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210051288A true KR20210051288A (en) | 2021-05-10 |
KR102293820B1 KR102293820B1 (en) | 2021-08-25 |
Family
ID=75917845
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190136351A KR102293820B1 (en) | 2019-10-30 | 2019-10-30 | Neural network learning device comprising analog batch normalization device |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102293820B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190080231A1 (en) * | 2017-09-08 | 2019-03-14 | Analog Devices, Inc. | Analog switched-capacitor neural network |
-
2019
- 2019-10-30 KR KR1020190136351A patent/KR102293820B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190080231A1 (en) * | 2017-09-08 | 2019-03-14 | Analog Devices, Inc. | Analog switched-capacitor neural network |
Non-Patent Citations (1)
Title |
---|
Hyungjun Kim, et al., "In-Memory Batch-Normalization for Resistive Memory based Binary Neural Network Hardware," ASPDAC '19 (2019.01.21.)* * |
Also Published As
Publication number | Publication date |
---|---|
KR102293820B1 (en) | 2021-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112651511B (en) | Model training method, data processing method and device | |
Adedoja et al. | Deep learning based on nasnet for plant disease recognition using leave images | |
Stollenga et al. | Deep networks with internal selective attention through feedback connections | |
US9146546B2 (en) | Systems and apparatus for implementing task-specific learning using spiking neurons | |
CN112446476A (en) | Neural network model compression method, device, storage medium and chip | |
CN112445823A (en) | Searching method of neural network structure, image processing method and device | |
CN112418392A (en) | Neural network construction method and device | |
WO2013184688A1 (en) | Stochastic apparatus and methods for implementing generalized learning rules | |
KR20200052182A (en) | Method and apparatus for compressing/decompressing deep learning model | |
WO2022012668A1 (en) | Training set processing method and apparatus | |
CN107223260B (en) | Method for dynamically updating classifier complexity | |
CN110222718B (en) | Image processing method and device | |
CN113065635A (en) | Model training method, image enhancement method and device | |
CN113570029A (en) | Method for obtaining neural network model, image processing method and device | |
KR20180123810A (en) | Data enrichment processing technology and method for decoding x-ray medical image | |
CN113536970A (en) | Training method of video classification model and related device | |
CN115081588A (en) | Neural network parameter quantification method and device | |
US20240078428A1 (en) | Neural network model training method, data processing method, and apparatus | |
CN112464930A (en) | Target detection network construction method, target detection method, device and storage medium | |
US20190042942A1 (en) | Hybrid spiking neural network and support vector machine classifier | |
Hossain et al. | Multiobjective evolution of deep learning parameters for robot manipulator object recognition and grasping | |
Zhou et al. | Test generation algorithm for fault detection of analog circuits based on extreme learning machine | |
Paul et al. | Non-iterative online sequential learning strategy for autoencoder and classifier | |
KR102293820B1 (en) | Neural network learning device comprising analog batch normalization device | |
WO2023273934A1 (en) | Method for selecting hyper-parameter of model, and related apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |