KR102293820B1 - 아날로그 배치 정규화 장치를 포함하는 신경망 학습 장치 - Google Patents

아날로그 배치 정규화 장치를 포함하는 신경망 학습 장치 Download PDF

Info

Publication number
KR102293820B1
KR102293820B1 KR1020190136351A KR20190136351A KR102293820B1 KR 102293820 B1 KR102293820 B1 KR 102293820B1 KR 1020190136351 A KR1020190136351 A KR 1020190136351A KR 20190136351 A KR20190136351 A KR 20190136351A KR 102293820 B1 KR102293820 B1 KR 102293820B1
Authority
KR
South Korea
Prior art keywords
neural network
signal
capacitor
learning
circuit arrangement
Prior art date
Application number
KR1020190136351A
Other languages
English (en)
Other versions
KR20210051288A (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 KR1020190136351A priority Critical patent/KR102293820B1/ko
Publication of KR20210051288A publication Critical patent/KR20210051288A/ko
Application granted granted Critical
Publication of KR102293820B1 publication Critical patent/KR102293820B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/15Correlation function computation including computation of convolution operations
    • G06F17/153Multidimensional correlation or convolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Abstract

신경망 학습 장치가 개시된다. 다양한 실시예에 따른 신경망 학습 장치는, 인공 신경망 모델 학습을 위한 훈련 데이터를 입력하기 위한 입력부와, 훈련 데이터를 이용하여 인공 신경망 모델을 훈련시키는 러닝 프로세서를 포함하고, 인공 신경망 모델은, 입력부로부터 전달받은 데이터에 대응되는 신호를 전달받는 복수의 레이어들 및, 복수의 레이어들 사이에 배치되는 적어도 하나의 배치 정규화 장치 (batch normalization device)를 포함하고, 배치 정규화 장치는 복수의 레이어들 중 제1 레이어로부터 전달된 제1 아날로그 신호를 합성곱 처리하는 저항 메모리 배열(RRAM array) 및 저항 메모리 배열로부터 합성곱 처리된 제2 아날로그 신호를 정규화하여 제2 레이어로 제3 아날로그 신호를 전달하는 복수의 능동소자를 포함하는 회로 배열을 포함하는 것을 특징으로 한다.

Description

아날로그 배치 정규화 장치를 포함하는 신경망 학습 장치{NEURAL NETWORK LEARNING DEVICE COMPRISING ANALOG BATCH NORMALIZATION DEVICE}
다양한 실시예들은 아날로그 배치 정규화 장치를 포함하는 신경망 학습 장치에 관한 것이다. 구체적으로는, 신경망 학습 장치는, 배치 정규화를 위하여 저항성 메모리 배열 및 정규화를 위한 능동소자를 가지는 회로 배열을 포함할 수 있다.
인공 지능과 관련된 기술이 발전함에 따라 다양한 산업에서 인공 지능 기술이 적용되고 있다. 최근 프로세서 및 전용 가속기 등의 처리 장치의 성능 향상으로 많은 연산량이 필요한 신경망 학습 장치 또는 신경망 학습 알고리즘을 구동할 수 있어, 인공 지능을 적용한 전자 장치는 종래에 제한적인 기능을 동작시킬 수 있게 되었다.
딥 러닝을 사용하는 사물 인식 알고리즘은 합성곱 레이어(convolution layer)로 구성된 합성곱 신경망(CNN, convolution neral network) 또는 심층 신경망 (DNN, deep neral network) 모델을 채용하고 있다.
합성곱 레이어 또는 컨벌루션 레이어를 이용하는 모델의 경우, 각 레이어의 입력값들의 분포(distribution)의 변화에 의한 영향을 많이 받는 문제 점이 있다.
예를 들면, 입력 값들의 분포의 변화에 따라 다음 레이어의 출력값 분포 차이를 야기시키고, 결과값의 에러(error) 양을 증가시킨다. 인공 신경망 학습 장치는 분포의 변화 때문에 인공 신경망 학습 과정에서 가중치 소실 또는 폭발의 우려를 가지고 있다. 이를 해결하기 위하여, 인공 신경망 학습 장치는 정규화(normalization) 알고리즘을 도입하고 있다.
배치 정규화 방법은 배치 단위로 정규화를 통하여 학습을 진행하고 있으므로, 내부 공변량 (internal covariate) 이동을 감소시킬 수 있고, 결과값 역시 빠른 속도로 수렴하여 널리 사용되고 있다. 각각의 내부 공변량에 의한 공변량 시프트 (covariate shift) 문제를 각 레이어의 출력값을 정규화 시키는 방법을 통하여 출력값 분산을 해결할 수 있다.
학습단계에서부터 배치 정규화를 적용해 합성곱 신경망을 학습시킨 후, 합성곱 신경망 하드웨어의 각 레이어의 출력값 또는 입력값 마다 배치 정규화를 적용할 수 있다.
배치 정규화 방법은 배치 단위의 데이터들의 통계값을 이용하기 때문에 많은 연산과 연산값들을 저장할 수 있는 저장 공간이 필요하다. 배치 정규화 방법은 방대한 연산으로 근사화(approximation)을 통하여 배치 정규화를 구현한다. 과도한 근사화는 전체 신경망 학습 시스템의 성능 저하를 불러올 수 있다.
디지털 방식의 배치 정규화 방법은 레이어간에 디지털 신호 처리기(DSP, digital signal processor)가 필요하기 때문에 추가적인 하드웨어를 요구하고, 이에 따라 신호 경로가 복잡해질 수 있다.
따라서, 배치 정규화 방법의 이용에서도, 신경망 학습 장치는 과도한 근사화를 줄이고, 디지털 신호 처리기와 같은 하드웨어를 감소시킬 방안이 요구된다.
다양한 실시예에 따른 신경망 학습 장치는 인공 신경망 모델 학습을 위한 훈련 데이터를 입력하기 위한 입력부와, 상기 훈련 데이터를 이용하여 상기 인공 신경망 모델을 훈련시키는 러닝 프로세서를 포함하고, 상기 인공 신경망 모델은, 상기 입력부로부터 전달받은 데이터에 대응되는 신호를 전달받는 복수의 레이어들 및, 상기 복수의 레이어들 사이에 배치되는 적어도 하나의 배치 정규화 장치 (batch normalization device)를 포함하고, 상기 배치 정규화 장치는 상기 복수의 레이어들 중 제1 레이어로부터 전달된 제1 아날로그 신호를 합성곱 처리하는 저항 메모리 배열(RRAM array) 및 상기 저항 메모리 배열로부터 합성곱 처리된 제2 아날로그 신호를 정규화하여 제2 레이어로 제3 아날로그 신호를 전달하는 복수의 능동소자를 포함하는 회로 배열을 포함할 수 있다.
다양한 실시예에 따르는 전자 장치는 인공 신경망 모델을 정규화 하는 배치 정규화 장치를 포함하고, 상기 배치 정규화 장치는 상기 복수의 레이어들 중 제1 레이어로부터 전달된 제1 아날로그 신호를 합성곱 처리하는 저항 메모리 배열(RRAM array), 상기 저항 메모리 배열로부터 합성곱 처리된 제2 아날로그 신호를 정규화하여 제2 레이어로 제3 아날로그 신호를 전달하는 복수의 능동소자를 포함하는 회로 배열 및 상기 회로 배열을 제어하도록 설정된 제어부를 포함할 수 있다.
다양한 실시예에 따르는 신경망 학습 장치는, 배치 정규화를 능동소자로 구현하여, 아날로그 신호를 출력할 수 있어, 디지털 신호 처리장치의 사용을 줄일 수 있다.
다양한 실시예에 따르는 신경망 학습 장치는, 프로세서의 연산량을 줄여, 하드웨어에 가해지는 부하를 줄일 수 있다.
다양한 실시예에 따르는 신경망 학습 장치는, 네트워크 성능 저하 없이 배치정규화를 구현할 수 있다.
다양한 실시예에 따르는 신경망 학습 장치는, 저항 메모리의 내부 공변량에 의한 공변 이동문제를 줄일 수 있다.
도 1은, 다양한 실시예들에 따른, 인공 신경망 학습 장치의 블록도이다.
도 2는, 다양한 실시예에 따르는 신경망 학습 장치를 구성하는 인공 신경망 모델의 개념도이다.
도 3a 및 3b는, 발생하는 오차를 줄이기 위한 정규화 동작을 도시한다.
도 4는, 다양한 실시예에 따른 인공 신경망 모델에 포함되는 커널 매트릭스의 블록도이다.
도 5는, 다양한 실시예에 따르는, 인공 신경망 모델에 포함되는 커널 매트릭스를 구현하는 저항성 메모리 배열의 개념도이다.
도 6a, 및 6b는 다양한 실시예에 따르는, 배치 정규화 장치의 회로도이다.
도 7a 내지 도 7e는, 다양한 실시예에 따르는 신경망 학습 장치의 각 단계에서의 스위칭 동작을 도시한다.
도 8은 다양한 실시예에 따르는 신경망 학습 장치를 통한 결과 값의 편차를 비교한 그래프이다.
도 1은, 다양한 실시예들에 따른, 신경망 학습 장치(100)의 블럭도이다.
인공 신경망은 입력에 대하여 일반화된 출력(generalized output)을 제공하기 위한 하드웨어, 소프트웨어 또는 이들의 조합을 의미할 수 있다.
예를 들어, 인공 신경망은, 합성곱 신경망 (CNN, Convolutional Neural Network), 마르코프 체인(Markov Chain), 또는 이진화 신경망 (BNN, binarized neural network) 등을 시뮬레이션하기 위한 어플리케이션 및 상기 어플리케이션을 실행하기 위한 프로세서에 기반하여 작동할 수 있다.
도 1을 참조하면, 신경망 학습 장치(100)는 훈련을 통하여 머신 러닝을 수행할 수 있는 장치로서, 인공 신경망으로 구성된 모델을 이용하여 학습하는 장치를 포함할 수 있다. 예를 들면, 신경망 장치(100)는 데이터 마이닝, 데이터 분석, 및 머신 러닝 알고리즘(예: 딥 러닝 알고리즘 (deep learning algorithm))을 위해 이용되는 정보를 입력, 출력, 데이터 베이스 구축 및 저장하도록 구성될 수 있다.
신경망 장치(100)는 통신부(미도시)를 통하여 외부 전자 장치(미도시)와 데이터를 송수신할 수 있고, 외부 전자 장치로부터 전달받은 데이터를 분석하거나 학습하여 결과값을 도출할 수 있다. 신경망 장치(100)는 외부 전자 장치의 연산을 분산하여 처리할 수 있다.
신경망 장치(100)는 서버로 구현될 수 있다. 또한 신경망 장치(100)는 복수로 구성되어 신경망 장치 세트를 이룰 수 있다. 각각의 신경망 장치(100)는 연산을 분산하여 처리할 수 있고, 분산 처리된 데이터를 바탕으로 데이터 분석 및 학습을 통하여 결과값을 도출할 수 있다. 신경망 장치(100)는 머신 러닝 알고리즘 등을 이용하여 획득한 결과값을 외부 전자 장치 또는 다른 신경망 장치로 전송할 수 있다.
다양한 실시예에 따르면, 신경망 장치(100)는 입력부(110), 프로세서(120), 메모리(130), 및 러닝 프로세서(140)를 포함할 수 있다.
다양한 실시예에 따르면, 입력부(110)는 인공 신경망 모델 학습을 통한 출력값을 도출하기 위한 입력 데이터를 획득할 수 있다. 입력부(110)는 가공되지 않은 입력 데이터를 획득할 수 있다. 프로세서(120) 또는 러닝 프로세서(140)는 가공되지 않은 입력데이터를 전처리하여 인공 신경망 모델 학습에 입력 가능한 훈련 데이터를 생성할 수 있다. 상기 전처리는 입력 데이터로부터 특징점을 추출하는 것일 수 있다. 상술한 바와 같이 입력부(110)는 통신부(미도시)를 통하여 데이터를 수신하여 입력 데이터를 획득하거나 데이터를 전처리할 수 있다.
다양한 실시예에 따르면, 프로세서(120)는 신경망 학습 장치(100)에서 사용 히스토리 정보를 수집하여 메모리(130)에 저장할 수 있다. 프로세서(120)는 저장된 사용 히스토리 정보 및 예측 모델링을 통하여 특정 기능을 실행하기 위한 최상의 조합을 결정할 수 있다. 프로세서(120)는 입력부(110)로부터 이미지 정보, 오디오 정보, 데이터 또는 사용자 입력 정보를 수신할 수 있다.
다양한 실시예에 따르면, 프로세서(120)는 정보를 실시간으로 수집하고 정보를 처리 또는 분류하고, 처리된 정보를 메모리(130), 메모리(130)의 데이터 베이스 또는 러닝 프로세서(140)에 저장할 수 있다.
다양한 실시예에 따르면, 신경망 학습 장치(100)의 동작이 데이터 분석 및 머신 러닝 알고리즘을 바탕으로 결정될 때, 프로세서(120)는 결정된 동작을 실행하기 위해 신경망 학습 장치(100)의 구성요소를 제어할 수 있다. 그리고, 프로세서(120)는 제어 명령에 따라 신경망 학습 장치(100)를 제어하여 결정된 동작을 수행할 수 있다.
프로세서(120)는 특정 동작이 수행되는 경우, 데이터 분석 및 머신 러닝 알고리즘 및 기법을 통해 특정 동작의 실행을 나타내는 이력 정보를 분석하고, 분석된 정보에 기초하여 이전에 학습한 정보의 업데이트를 수행할 수 있다. 프로세서(120)는 러닝 프로세서(140)과 함께, 업데이트 된 정보에 기초하여 데이터 분석 및 머신 러닝 알고리즘 및 성능의 정확성을 향상시킬 수 있다.
다양한 실시예에 따르면, 메모리(130)는 입력부(110)에서 획득한 입력 데이터, 학습된 데이터, 또는 학습 히스토리 등을 저장할 수 있다. 메모리(130)는 인공 신경망 모델(131)을 저장할 수 있다.
다양한 실시예에 따르면, 인공 신경망 모델(131)은 메모리(130)에 할당된 공간에 저장될 수 있다. 상기 메모리(130)에 할당된 공간은 러닝 프로세서(140)를 통하여 학습 중 또는 학습된 인공 신경망 모델(131)을 저장하며, 학습을 통하여 인공 신경망 모델(131)이 갱신되면, 갱신된 인공 신경망 모델(131)을 저장할 수 있다. 상기 메모리(130)에 할당된 공간은 학습된 모델을 학습 시점 또는 학습 진척도 등에 따라 복수의 버전으로 구분하여 저장할 수 있다.
다양한 실시예에 따르면, 메모리(130)는 입력부(110)에서 획득한 입력 데이터, 학습된 데이터를 저장, 분류가능한 데이터 베이스를 포함할 수 있다.
다양한 실시예에 따르면, 러닝 프로세서(140)는 프로세서(120)가 입력부(110)를 통해 획득한 입력 데이터를 전처리한 데이터를 바로 획득하여 인공 신경망 모델(131)을 학습하거나, 메모리(130)의 데이터 베이스에 저장된 전처리된 입력 데이터를 획득하여 인공 신경망 모델(131)을 학습할 수 있다. 예를 들면, 러닝 프로세서(140)는 다양한 학 습 기법을 이용하여 인공 신경망 모델(131)을 반복적으로 학습시켜 최적화된 인경 신경망 모델(131) 파라미터를 획득할 수 있다.
다양한 실시예에 따르면, 학습된 모델은 데이터 베이스에서 인공 신경망 모델(131)을 갱신할 수 있다. 러닝 프로세서(140)는 신경망 학습 장치(100)에 통합되거나, 메모리(130)에 구현될 수 있다. 구체적으로 러닝 프로세서(140)는 메모리(130)를 사용하여 구현될 수 있다.
다양한 실시예에 따르면, 러닝 프로세서(140)는 일반적으로 감독 또는 감독되지 않은 학습, 데이터 마이닝, 예측 분석 또는 다른 장치에서 사용하기 위해 데이터를 식별, 색인화, 카테고리화, 조작, 저장, 검색 및 출력하기 위해 데이터를 하나 이상의 데이터베이스에 저장하도록 구성될 수 있다. 여기서, 데이터베이스는 메모리(130), 클라우드 컴퓨팅 환경에서 유지되는 메모리, 또는 네트워크와 같은 통신 방식을 통해 단말기에 의해 액세스 가능한 다른 원격 메모리 위치를 이용하여 구현될 수 있다 러닝 프로세서(140)에 저장된 정보는 다양한 상이한 유형의 데이터 분석 알고리즘 및 기계 학습 알고리즘 중 임의의 것을 사용하여 프로세서(120)에 의해 이용될 수 있다. 예를 들면, 이러한, 알고리즘의 예로는, k-최근 인접 시스템, 퍼지 논리 (예: 가능성 이론), 신경 회로망, 볼츠만 기계, 벡터 양자화, 펄스 신경망, 지원 벡터 기계, 최대 마진 분류기, 힐 클라이밍, 유도 논리 시스템 베이지안 네트워크, 페리트넷 (예: 유한 상태 머신, 밀리 머신, 무어 유한 상태 머신), 분류기 트리 (예: 퍼셉트론 트리, 지원 벡터 트리, 마코프 트리, 의사 결정 트리 포리스트, 임의의 포리스트), 판독 모델 및 시스템, 인공 융합, 센서 융합, 이미지 융합, 보강 학습, 증강 현실, 패턴 인식, 자동화 된 계획 등을 포함한다.
본 문서에 개시된 다양한 실시예들에 따른 외부 전자 장치 또는 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나,""A, B 또는 C," "A, B 및 C 중 적어도 하나,"및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다.
본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적'은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
도 2는, 다양한 실시예에 따르는 신경망 학습 장치를 구성하는 인공 신경망 모델의 개념도이다.
도 2를 참조하면, 일반적인 합성곱 신경망은 컨벌루션 레이어(201), 및 풀링 레이어(pooling layer)(202)를 이용한 입력 데이터(210)의 특성 추출(11) 및 완전 연결 레이어(290)를 이용한 입력 데이터(210)의 분류(12)에 사용될 수 있다.
다양한 실시예에 따르면, 컨벌루션 레이어(101)는 합성곱 연산을 통해 입력 데이터(210)의 의미있는 특징들을 추출하는 레이어일 수 있다. 예를 들면, 컨벌루션 레이어(201)는 입력데이터(210)에 특정 크기의 필터 또는 커널 매트릭스(kernel(weight) matrix)(230)를 적용하여 다음 레이어에 전달할 새로운 데이터를 생성할 수 있다. 이와 같은 컨벌루션 레이어(201)의 입출력 데이터는 특징 맵(feature maps)으로 지칭될 수 있다.
합성곱 신경망 모델에 입력된느 데이터가 RGB 성분과 같이 복수의 성분을 포함하는 입력 이미지인 경우, 입력 데이터는 복수의 채널로 구성될 수 있다. 예를 들면, 컨벌루션 레이어(201)의 입출력 데이터가 2차원 이미지의 공간 이외에 채널을 포함하고, 입출ㄹ력 데이터의 특징 맵은 3차원 형태로 이루어 질 수 있다.
다양한 실시예에 따르면, 풀링 레이어(202)는 서브 샘플링(Sub-sampling)을 통하여 입력받은 데이터를 축소할 수 있다. 예를 들면, 풀링 레이어(202)는 최대 풀링(max pooling) 및 평균 풀링(average pooling)과 같은 풀링 기법을 통해 데이터를 샘플링 함으로써 데이터의 크기를 축소할 수 있다.
다양한 실시예에 따르면, 완전 연결 레이어(290)는 컨벌루션 레이어(201) 및 풀링 레이어(202)를 통해 전달된 특징을 바탕으로 데이터 분류를 수행하기 위한 레이어로서, 3차원 형태의 특징 맵을 평탄화된 1차원 형태의 데이터를 입력 받을 수 있다. 이와 같이 완전 연결 레이어(290)를 통과한 1차원 형태의 데이터는 활성화 함수를 통해 출력신호로 변환될 수 있다. 합성곱 신경망은 컨벌루션 레이어 및 풀링 레이어를 사용하여 입력 데이터(예: 입력 이미지)에 대한 특징 맵의 3차원 형상을 유지할 수 있으므로, 입력 이미지의 화소 또는 채널 사이의 관련성에 관한 정보가 손실되는 것을 방지하여 이미지 인식률을 높일 수 있다.
도 3a 및 3b는, 발생하는 오차를 줄이기 위한 정규화 동작을 도시한다.
합성곱 신경망 모델의 측면에서 내부 공변량은 각각의 레이어에서 예상치 못한 출력 값의 분산을 야기시킬 수 있다. 머신 러닝 동작에서 각 레이어의 출력 값은 오프라인 출력 값과 차이를 보일 수 있다. 각각의 레이어의 출력 값의 공변량 이동(corariate shift)은 다음 레이어의 입력 값으로 사용되기 때문에 출력값의 분산 량은 최종 결과 값의 오차(error)를 발생시킬 수 있다.
합성곱 신경망은 내부 공변량에 의한 공변량 시프트 문제를 각각의 레이어로부터 도출되는 결과 값을 배치 정규화(batch normalization)시키는 방법으로 해결할 수 있다. 학습 단계에서부터 배치 정규화를 적용해 신경망 학습 모델을 학습시킨 후 합성 신경망 모델의 각각의 레이어의 출력값 마다 배치정규화를 적용시킬 수 있다.
도 3a를 참조하면, 오프라인 학습 단계에서 입력 레이어(310)는 입력 벡터 매트릭스를 전달받아, 제1 결과값을 도출할 수 있다. 제1 컨벌루션 레이어(320) 및 제2 컨벌루션 레이어(330)는 초기 모델에서는 공변량 이동이 발생하지 않고, 출력값을 생성할 수 있다. 제2 컨벌루션 레이어(330)는 출력값을 바탕으로 완전 연결 레이어(340)로 값을 전달할 수 있다. 완전 연결 레이어로부터 획득된 출력 값 분산이 일정하게 발생할 수 있다.
다양한 실시예에 따르면, 가중치 추출(weight extraction)을 통한 추론동작을 거치게 되면, 각각의 레이어에서 공변량 이동이 발생할 수 있다. 예를 들면, 입력레이어(310)를 통과한 입력 벡터 매트릭스는 합성곱 과정을 통하여 출력 값이 이동되어 원하지 않는 분산이 발생할 수 있다. 입력레이어(310)의 출력값은 제1 컨벌루션 레이어(320)의 입력값으로 사용되고, 이에 따른 출력 값 분산이 추가될 수 있다. 각각의 레이어를 거치는 동안 출력값들의 이동은 더 커지게 되고, 최종 결과 값의 오차는 더욱 증가할 수 있다.
도 3b를 참조하면, 배치 정규화 과정을 포함하는 합성곱 신경망은 정규화 과정을 거치면서, 오차를 줄이는 동작을 도시한다.
정규화 이전엔는 입력 레이어(310)에 입력되는 값의 평균은 0(μ=0)이고, 편차는 1(σ=1) 인 상태로 입력된다. 입력 레이어(310)에 처리된 입력 레이어(310)의 출력 값 또는 제1 컨벌루션 레이어(320)의 입력 값의 평균은 μ'(μ= μ')이고, 편차는 σ'(σ=σ')인 상태로 획득된다.
제1 컨벌루션 레이어(320)에 입력되는 값의 평균은 μ' (μ= μ')이고, 편차는 σ'(σ= σ') 인 상태로 입력된다. 제1 컨벌루션 레이어(320)에 처리된 제2 컨벌루션 레이어(330)의 출력 값 또는 제2 컨벌루션 레이어(330)의 입력 값의 평균은 μ"(μ= μ")이고, 편차는 σ"(σ=σ")인 상태로 획득된다. 따라서, 제2 컨벌루션 레이어(330)로부터 전달된 결과 값을 바탕으로 획득된 완전 연결 레이어(340)의 오차는 발생하게 된다.
각각의 레이어에 정규화 과정을 거치게 되면, 입력 레이어(310)에 입력되는 값의 평균은 0(μ=0)이고, 편차는 1(σ=1) 인 상태로 입력된다. 정규화 동작을 거쳐, 입력 레이어(310)에 처리된 입력 레이어(310)의 출력 값 또는 제1 컨벌루션 레이어(320)의 입력 값의 평균은 0(μ=0)이고, 편차는 1(σ=1)인 상태로 획득된다.
제1 컨벌루션 레이어(320)에 입력되는 값의 평균은 0(μ=0)이고, 편차는 1(σ=1) 인 상태로 입력된다. 정규화 동작을 거쳐, 제1 컨벌루션 레이어(320)에 처리된 제2 컨벌루션 레이어(330)의 출력 값 또는 제2 컨벌루션 레이어(330)의 입력 값의 평균은 0(μ=0)이고, 편차는 1(σ=1) 인 상태로 획득된다. 따라서, 제2 컨벌루션 레이어(330)로부터 전달된 결과 값을 바탕으로 획득된 완전 연결 레이어(340)의 값은 오차없이 균일한 분산 값으로 획득될 수 있다.
도 4는, 다양한 실시예에 따른 인공 신경망 모델에 포함되는 커널 매트릭스의 블록도이다.
도 4를 참조하면, 배치 정규화 장치(400)는 커널 매트릭스(430), 정규화 회로 배열(410) 및 제어부(420)를 포함할 수 있다. 커널 매트릭스(430)은 입력되는 데이터에 가중치를 부여하여, 특징 값을 추출할 수 있다. 예를 들면, 제1 레이어(480)로부터 전달되는 입력 벡터(input vector)(431)를 합성곱 연산을 통해 특징들을 추출해 낼 수 있다. 커널 매트릭스(430)는 제2 레이어(490)로 전달되는 제1 출력 데이터(411)를 생성할 수 있다. 커널 매트릭스(430)를 통해 획득된 출력 데이터는 특징 맵으로 지칭될 수 있다.
다양한 실시예에 따르면, 커널 매트릭스(430)는 저항성 메모리의 교차 배열(RRAM crossbar array)(또는 RRAM 시냅스 어레이)을 통하여 구현될 수 있다. 저항성 메모리(ReRAM, resistive RAM)는 외부에서 인가하는 전압 펄스에 따라 저항 값이 변하는 특성을 이용하여 시냅스 학습을 구현할 수 있다. 저항성 메모리의 교차 배열로 형성되는 커널 매트릭스(430)는 인가되는 전압 펄스에 의해 출력되는 출력 값을 획득할 수 있다.
다양한 실시예에 따르면, 제1 출력 데이터(411)는 가중치 부여를 위한 합성곱 연산 과정에서 내부 공변량 시프트가 발생할 수 있다. 정규화 회로 배열(410)은 제1 출력 데이터(411)의 파라미터 변화로 인한 분포 변화에 의해 발생한 가중치 소실 또는 가중치 폭발을 감소시키기 위하여 제1 출력 데이터(411)를 정규화 시키고, 정규화된 제2 출력 데이터(412)를 획득하여 제2 레이어(490)으로 전달한다.
다양한 실시예에 따르면, 정규화 회로 배열(410)은 능동소자인 OP-AMP와 커패시터, 복수의 스위치로 형성된 회로 배열을 포함할 수 있다. 회로 배열(410)은 스위칭 동작에 의하여, 출력값의 평균을 구하고, 입렵 값과 평균값 간의 편차, 편차의 배수값 등을 구할 수 있고, 획득된 값들의 조합으로 정규화를 구현할 수 있다.
다양한 실시예에 따르면, 아날로그 신호(예: 전압)를 전달받아, 저항성 메모리 배열로 형성된 커널 매트릭스는 가중치를 주고, 이를 회로 배열을 통해서 정규화 시킬 수 있다. 예를 들면, 아날로그 신호를 전달받은 커널은 데이터를 처리하여, 디지털 시호의 변환 과정없이 아날로그 출력 신호를 전달할 수 있다.
다양한 실시예에 따르면, 제어부(420)는 상기 정규화 회로 배열(410)의 스위칭 동작을 제어하는 신호를 전달하도록 구성될 수 있다. 제어부(420)는 프로세서(120)과 전기적으로 연결될 수 있다.
다양한 실시예에 따르면, 프로세서(120)는 제어부(420)로 클럭 신호 및 가중치 신호들을 포함하는 제어 신호(421)를 전달할 수 있다. 제어부(420)는 제어 신호(421)에 기반하여, 스위치 동작을 제어하기 위한 복수의 클럭 신호(422)를 전달할 수 있다. 클럭 신호에 따라 스위칭이 동작하고, 정규화 회로 배열(410)은 평균값, 편차, 및 가중치가 부여된 값을 획득할 수 있다.
다양한 실시예에 따르면, 정규화 회로 배열(410)은 전달된 클럭 신호(422)에 따라 제1 출력 데이터(411)를 정규화하여 제2 출력 데이터(412)를 획득할 수 있다. 제2 출력데이터(412)는 제2 레이어(490)의 입력 데이터로 활용될 수 있다.
도 5는, 다양한 실시예에 따르는, 인공 신경망 모델에 포함되는 커널 매트릭스를 구현하는 저항성 메모리 배열의 개념도이다.
도 5를 참조하면, 커널 매트릭스(430)(또는 저항 메모리 배열)는 저항 메모리를 격자 형태로 배열시킬 수 있다.
다양한 실시예에 따르면, 저항성 메모리(531)는 외부에서 인가하는 전압 펄스에 따라 저항 값이 변하는 특성을 이용하여 시냅스 학습을 구현할 수 있다. 저항성 메모리의 교차 배열로 형성되는 커널 매트릭스(430)는 인가되는 전압 펄스에 의해 출력되는 출력 값을 획득할 수 있다. 출력 값은 입력 레이어로부터 획득된 특징 점들일 수 있다. 예를 들면, 출력 값은 가중치가 부여된 커널 매트릭스(430)를 통하여 입력 데이터(예: 도 2의 입력 데이터(210))로부터 변환된 컨벌루션 레이어(예: 도 2의 컨럴루션 레이어(201))의 입력 값일 수 있다.
다양한 실시예에 따르면, 집적할 수 있는 어레이가 제한적이면, 다수의 저항성 메모리 배열들은 상호 연결을 통해 합성곱 신경망의 필요한 커널을 확장할 수 있다.
도 6a, 및 6b는 다양한 실시예에 따르는, 배치 정규화 장치의 회로도이다.
도 6a 및 도 6b를 참조하면, 배치 정규화 장치(batch normalization device)(600)는 저항성 메모리(531)의 교차 배열로 형성된 커널 매트릭스(430)와 커널 매트릭스(430)의 일단에 연결되는 적분기(611)의 배열(610), 적분기(611)의 출력단에 연결되는 커패시터(620) 및 적분기(611)의 출력단에서 커패시터(620)와 병렬로 연결되는 스위치 배열(630)을 포함할 수 있다.
정규화 동작은 다음과 같이 동작할 수 있다. 적분기 출력단의 전압은 적분기(611)의 배열(610)을 지나 각각의 출력단에서 V1, V2, V3, V4의 값을 가질 수 있다(S601). 각각의 적분기(611) 출력단의 전압의 평균은 스위치 배열(630)의 스위칭 동작을 통하여, 커패시터(620)는 서로 병렬 연결될 수 있다. CL1, CL2, CL3, CL4값을 가지는 커패시터(620)들의 일단은 전압 Vμ가 인가될 수 있다(S602). 각각의 커패시터의 CL1, CL2, CL3, CL4값은 동일할 수 있다. 전압의 평균 값 Vμ는 아래의 수식을 통하여 획득될 수 있다.
Figure 112019111086179-pat00001
,
Figure 112019111086179-pat00002
스위치 배열(630)내에 포함된 커패시터들과 OP AMP를 이용하여, 커패시터에 Vμ 및 Vi를 충전할 수 있다(S603). OP AMP의 출력단과 입력단에 병렬 연결되는 커패시터에 의해 출력단에 Vi'이 인가될 수 있고, 이 값들을 출력 값으로 사용할 수 있다(S604). Vi-Vμ값의 가중치 α는 커패시터들의 값을 조절하여 결정할 수 있다. 동작 S604에서의, OP AMP의 출력단에 인가되는 전압Vi'은 아래의 수식을 통하여 획득될 수 있다.
Figure 112019111086179-pat00003
,
Figure 112019111086179-pat00004
도 6b의 배치 정규화 장치는 전력 소모가 많은 OP AMP의 개수를 줄이기 위해서, 스위치 배열(630)회로와 적분기(610) 회로를 겹합 한 것을 도시한다.
다양한 실시예에 따르면, 결합된 스위치 배열(630')회로는 스위치 배열(630)의 회로에 포함된 OP AMP를 줄일 수 있다. 구체적인 스위치 배열의 동작은 후술할 도 7a 내지 도 7e를 통해 설명한다.
도 7a 내지 도 7e는, 다양한 실시예에 따르는 신경망 학습 장치의 각 단계에서의 스위칭 동작을 도시한다.
스위치 회로 배열(630)은 제어부로부터 제어 신호를 받아 스위칭 동작을 제어할 수 있다. 스위치 회로 배열은, 적분기(750a, 750b), 및 커패시터(720a)를 포함하고, 스위칭 동작에 따라, 적분기(750a, 750b) 및 커패시터(720a, 720b) 사이의 전기적 경로를 변경할 수 있다.
도 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)에 충전된 전하량은 동일할 수 있다.
도 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)의 단락으로 서로 연결될 수 있다.
다양한 실시예에 따르면, 각각의 커패시터(720a, 720b)들은 도 7a에서 V1, V2, V3??로 충전될 수 있다. 도 7b의 스위칭 동작이후, 각각의 커패시터(720a, 720b)들은 동일한 커패시턴스를 가지고 있으므로, 전압의 평균값 Vμ로 충전되게 되고, 각각의 적분기(750a, 750b)의 출력단은 도 7a와 동일하게 V1, V2, V3??로 유지될 수 있다.
도 7c를 참조하면, 스위치 회로 배열(630)은 제어부로부터 평균값만큼 시프팅을 위한 제3 신호를 수신하면, 커패시터(720a, 720b)의 일단을 적분기(750a, 750b)의 입력단과 전기적으로 연결시키고 커패시터(720a, 720b)의 타단을 접지시킬 수 있다.
다양한 실시예에 따르면, 도 7b의 동작 이후, 각각의 채널의 커패시터(720a, 720b)들은 출력단의 평균 값 Vμ만큼 저장되어 있다. 이때, 평균 값 Vμ만큼 저장된 커패시터(720a, 720b)는 스위치(723a, 723b)의 단락으로, 적분기(750a, 750b)의 입력단과 연결될 수 있다. 또한, 적분기(750a, 750b)의 입력단으로 유입되는 전류는 커패시터(720a, 720b)로 일부 유입되어, 적분기(750a, 750b)에서의 출력 값은 평균 값 Vμ만큼 시프팅되어, V1- Vμ, V2- Vμ일 수 있다.
도 7d를 참조하면, 스위치 회로 배열(630)은 제어부로부터 샘플링을 위한 제4 신호를 수신하면, 상기 스위치는 제어부로부터 전달된 신호가 제4 신호이면, 상기 커패시터의 타단을 상기 적분기의 입력단과 전기적으로 연결시키되, 상기 커패시터의 일단을 접지시키고, 복수의 회로는 서로 개방될 수 있다.
다양한 실시예에 따르면, 각각의 채널의 커패시터(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μ)값일 수 있다.
스위치 회로 배열(630)은 제어부로부터 증폭을 위한 제5 신호를 수신하면, 제4 신호에 의한 스위칭 동작 이후, 커패시터(720a, 720b)의 일단을 상기 적분기의 입력단과 전기적으로 연결시키고 커패시터(720a, 720b)의 타단을 접지시킬 수 있다.
다양한 실시예에 따르면, 제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μ)일 수 있다.
다양한 실시예에 따르면, 제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μ)을 획득할 수 있다.
다양한 실시예에 따르면, 이러한 사이클의 수는 제어부(120)에서 인가되는 제어 신호(예: 도 4의 제어 신호(421))에 의해 결정될 수 있다. 사이클 수는 정규화 가정에서의 증폭 인자일 수 있다.
도 7e를 참조하면, 스위치 회로 배열(630)은 제어부로부터 리셋을 위한 제6 신호를 수신하면, 상기 커패시터 및 상기 적분기의 출력단을 접지시킬 수 있다.
다양한 실시예에 따르면, 커패시터(720a, 720b)의 양단에 연결된 스위치(726a, 726b)를 단락시킬 수 있다. 커패시터(720a, 720b)는 양단을 모두 접지되어 저장된 전하를 모두 방전할 수 있다.
적분기(750a, 750b)의 출력부와 일단이 연결된 스위치(727a, 727b)를 단락 시킬 수 있다. 스위치(727a, 727b)의 타단은 접지되어, 적분기(750a, 750b)에 배치된 커패시터(715a, 715b)도 방전될 수 있다. 이를 통하여, 정규화 동작이후에 입력된 신호를 초기화할 수 있다.
상술한 다양한 실시예에 따르는 신경망 학습 장치는, 디지털 처리 장치없이 아날로그 신호만으로 배치 정규화를 수행할 수 있다. 다양한 실시예에 따르면, 배치 정규화 장치는 OP AMP, 복수의 커패시터 및 복수의 스위치로 형성되어, 스위칭 동작으로, 평균 값, 편차, 가중치 부여를 수여할 수 있도록 설계될 수 있다.
도 8은 다양한 실시예에 따르는 신경망 학습 장치를 통한 결과 값의 편차를 비교한 그래프이다.
첫번째 행에 있는 그래프는 공변량이 없음을 가정하고, 시뮬레이션한 제1 레이어 및 제2 레이어의 출력 값 분포를 나타낸 그래프이다. 두번째 행에 있는 그래프는 장치에 따른 공변량이 존재하는 경우, 시뮬레이션한 제1 레이어 및 제2 레이어의 출력 값 분포를 나타낸 그래프이다. 두 그래프를 참조하면, 장치에 의한 공변량이 존재하는 경우, 첫번째 그래프와의 분포에 관한 편차가 심하게 남을 알 수 있다.
세번째 행에 있는 그래프는 정규화를 통하여, 획득된 제1 레이어 및 제2 레이어의 출력 값 분포를 나타낸 그래프이다. 첫번째 행에 배치된 그래프와 비교할 때, 편차가 거의 존재하지 않고, 각각의 출력 값의 빈도도 유사하게 나타남을 알 수 있다. 상기의 시뮬레이션을 통하여 다양한 실시예에 따르는, 신경망 학습 장치는 정확성이 높은 결과를 가질 수 있음을 알 수 있다.
상술한 다양한 실시예에 따르는 신경망 학습 장치는, 인공 신경망 모델 학습을 위한 훈련 데이터를 입력하기 위한 입력부와, 상기 훈련 데이터를 이용하여 상기 인공 신경망 모델을 훈련시키는 러닝 프로세서를 포함하고, 상기 인공 신경망 모델은, 상기 입력부로부터 전달받은 데이터에 대응되는 신호를 전달받는 복수의 레이어들 및, 상기 복수의 레이어들 사이에 배치되는 적어도 하나의 배치 정규화 장치 (batch normalization device)를 포함하고, 상기 배치 정규화 장치는 상기 복수의 레이어들 중 제1 레이어로부터 전달된 제1 아날로그 신호를 합성곱 처리하는 저항 메모리 배열(RRAM array) 및 상기 저항 메모리 배열로부터 합성곱 처리된 제2 아날로그 신호를 정규화하여 제2 레이어로 제3 아날로그 신호를 전달하는 복수의 전기 소자 및 복수의 스위치를 포함하는 회로 배열을 포함할 수 있다.
다양한 실시예에 따르면, 상기 회로 배열은, 상기 저항 메모리 배열의 각 채널을 통해 전달되는 전압 값을 제어할 수 있다.
다양한 실시예에 따르면, 상기 배치 정규화 장치는, 상기 저항 메모리 배열의 각 채널에 인가되는 신호를 정규화 하도록 상기 회로 배열을 제어하는 제어부를 포함할 수 있다.
다양한 실시예에 따르면, 상기 제어부는, 상기 회로 배열의 스위치 동작을 위한 제어 신호를 상기 회로 배열로 전달할 수 있다.
다양한 실시예에 따르면, 상기 회로 배열의 복수의 전기 소자는, 복수의 적분기, 및 복수의 커패시터를 포함하고, 상기 스위치는 상기 제어부의 상기 제어 신호를 바탕으로 적분기 및 커패시터 사이의 전기적 경로를 변경할 수 있다.
다양한 실시예에 따르면, 상기 회로 배열은 출력되는 제2 아날로그 신호 또는 제3 아날로그 신호를 전달받는 채널에 대응되는 복수의 회로가 병렬 연결되고, 상기 커패시터는 상기 적분기의 입력단 또는 출력단에 연결될 수 있다.
다양한 실시예에 따르면, 상기 스위치는 제어부로부터 전달된 신호가 제1 신호이면, 상기 커패시터를 상기 적분기의 출력단과 전기적으로 연결시키고, 복수의 회로는 서로 단락될 수 있다.
다양한 실시예에 따르면, 상기 스위치는 제어부로부터 전달된 신호가 제2 신호이면, 상기 커패시터의 일단을 상기 적분기의 입력단과 전기적으로 연결시키고, 복수의 회로는 병렬로 연결될 수 있다.
다양한 실시예에 따르면, 상기 스위치는 제어부로부터 전달된 신호가 제3 신호이면, 상기 커패시터의 일단을 상기 적분기의 입력단과 전기적으로 연결시키고 상기 커패시터의 타단을 접지시킬 수 있다.
다양한 실시예에 따르면, 상기 스위치는 제어부로부터 전달된 신호가 제4 신호이면, 상기 커패시터의 타단을 상기 적분기의 입력단과 전기적으로 연결시키되, 상기 커패시터의 일단을 접지시키고, 복수의 회로는 서로 개방될 수 있다.
다양한 실시예에 따르면, 상기 스위치는 제어부로부터 전달된 신호가 제5 신호이면, 상기 커패시터의 일단을 상기 적분기의 입력단과 전기적으로 연결시키고 상기 커패시터의 타단을 접지시킬 수 있다.
다양한 실시예에 따르면, 상기 스위치는 제어부로부터 전달된 신호가 제6 신호이면, 상기 커패시터 및 상기 적분기의 출력단을 접지시킬 수 있다.
다양한 실시예에 따르면, 상기 인공 신경망 모델은, CNN (convolution neural network) 또는 BNN (binarized neural network)을 포함할 수 있다.
다양한 실시예에 따르는 전자 장치는 인공 신경망 모델을 정규화 하는 배치 정규화 장치를 포함하고, 상기 배치 정규화 장치는 상기 복수의 레이어들 중 제1 레이어로부터 전달된 제1 아날로그 신호를 합성곱 처리하는 저항 메모리 배열(RRAM array), 상기 저항 메모리 배열로부터 합성곱 처리된 제2 아날로그 신호를 정규화하여 제2 레이어로 제3 아날로그 신호를 전달하는 복수의 능동소자를 포함하는 회로 배열 및 상기 회로 배열을 제어하도록 설정된 제어부를 포함할 수 있다.
본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시 예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (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)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 상기 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(Local Area Network), WLAN(Wide LAN), 또는 SAN(Storage Area Network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다.
상술한 본 개시의 구체적인 실시 예들에서, 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
100 : 입력부
120: 프로세서
130 : 메모리
131 : 인공 신경망 모델
140 : 러닝 프로세서
230: 커널 매트릭스 또는 저항 메모리 배열
410 : 정규화 회로 배열
420 : 제어부

Claims (13)

  1. 인공 신경망 모델 학습을 위한 훈련 데이터를 입력하기 위한 입력부; 및
    상기 훈련 데이터를 이용하여 상기 인공 신경망 모델을 훈련시키는 러닝 프로세서를 포함하고,
    상기 인공 신경망 모델은,
    상기 입력부로부터 전달받은 데이터에 대응되는 신호를 전달받는 복수의 레이어들 및, 상기 복수의 레이어들 사이에 배치되는 적어도 하나의 배치 정규화 장치 (batch normalization device)를 포함하고,
    상기 배치 정규화 장치는 상기 복수의 레이어들 중 제1 레이어로부터 전달된 제1 아날로그 신호를 합성곱 처리하는 저항 메모리 배열(RRAM array);
    상기 저항 메모리 배열로부터 합성곱 처리된 제2 아날로그 신호를 정규화하여 제2 레이어로 제3 아날로그 신호를 전달하는 복수의 전기 소자 및 상기 복수의 전기 소자 내 적분기 및 커패시터 사이의 전기적 경로를 변경하는 복수의 스위치를 포함하는 회로 배열; 및
    상기 저항 메모리 배열의 각 채널에 인가되는 신호를 정규화하도록 상기 회로 배열을 제어하고, 상기 회로 배열의 복수의 스위치들의 동작 제어를 위한 제어 신호를 상기 회로 배열로 전달하는 제어부; 를 포함하는, 신경망 학습 장치.
  2. 제1항에 있어서,
    상기 회로 배열은,
    상기 저항 메모리 배열의 각 채널을 통해 전달되는 전압 값을 제어하는 신경망 학습 장치.
  3. 제1항에 있어서,
    상기 배치 정규화 장치는,
    상기 저항 메모리 배열의 각 채널에 인가되는 신호를 정규화 하도록 상기 회로 배열을 제어하는 제어부를 포함하는 신경망 학습 장치.
  4. 삭제
  5. 제1항에 있어서,
    상기 회로 배열의 복수의 전기 소자는, 복수의 적분기, 및 복수의 커패시터를 포함하고,
    상기 스위치는 상기 제어부의 상기 제어 신호를 바탕으로 적분기 및 커패시터 사이의 전기적 경로를 변경하는 신경망 학습 장치.
  6. 제5항에 있어서,
    상기 회로 배열은 출력되는 제2 아날로그 신호 또는 제3 아날로그 신호를 전달받는 채널에 대응되는 복수의 회로가 병렬 연결되고,
    상기 커패시터는 상기 적분기의 입력단 또는 출력단에 연결되는 신경망 학습 장치.
  7. 제6항에 있어서,
    상기 스위치는 제어부로부터 전달된 신호가 제1 신호이면, 상기 커패시터를 상기 적분기의 출력단과 전기적으로 연결시키고, 복수의 회로는 서로 단락되는 신경망 학습 장치.
  8. 제6항에 있어서,
    상기 스위치는 제어부로부터 전달된 신호가 제2 신호이면, 상기 커패시터의 일단을 상기 적분기의 입력단과 전기적으로 연결시키고, 복수의 회로는 병렬로 연결되는 신경망 학습 장치.
  9. 제6항에 있어서,
    상기 스위치는 제어부로부터 전달된 신호가 제3 신호이면, 상기 커패시터의 일단을 상기 적분기의 입력단과 전기적으로 연결시키고 상기 커패시터의 타단을 접지시키는 신경망 학습 장치.
  10. 제9항에 있어서,
    상기 스위치는 제어부로부터 전달된 신호가 제4 신호이면, 상기 커패시터의 타단을 상기 적분기의 입력단과 전기적으로 연결시키되, 상기 커패시터의 일단을 접지시키고, 복수의 회로는 서로 개방되는 신경망 학습 장치.
  11. 제10항에 있어서,
    상기 스위치는 제어부로부터 전달된 신호가 제5 신호이면, 상기 커패시터의 일단을 상기 적분기의 입력단과 전기적으로 연결시키고 상기 커패시터의 타단을 접지시키는 신경망 학습 장치.
  12. 제6항에 있어서,
    상기 스위치는 제어부로부터 전달된 신호가 제6 신호이면, 상기 커패시터 및 상기 적분기의 출력단을 접지시키는 신경망 학습 장치.
  13. 제1항에 있어서,
    상기 인공 신경망 모델은,
    CNN (convolution neural network) 또는 BNN (binarized neural network)을 포함하는 신경망 학습 장치.
KR1020190136351A 2019-10-30 2019-10-30 아날로그 배치 정규화 장치를 포함하는 신경망 학습 장치 KR102293820B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190136351A KR102293820B1 (ko) 2019-10-30 2019-10-30 아날로그 배치 정규화 장치를 포함하는 신경망 학습 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190136351A KR102293820B1 (ko) 2019-10-30 2019-10-30 아날로그 배치 정규화 장치를 포함하는 신경망 학습 장치

Publications (2)

Publication Number Publication Date
KR20210051288A KR20210051288A (ko) 2021-05-10
KR102293820B1 true KR102293820B1 (ko) 2021-08-25

Family

ID=75917845

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190136351A KR102293820B1 (ko) 2019-10-30 2019-10-30 아날로그 배치 정규화 장치를 포함하는 신경망 학습 장치

Country Status (1)

Country Link
KR (1) KR102293820B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190080231A1 (en) * 2017-09-08 2019-03-14 Analog Devices, Inc. Analog switched-capacitor neural network

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
KR20210051288A (ko) 2021-05-10

Similar Documents

Publication Publication Date Title
Kim et al. Emi: Exploration with mutual information
Adedoja et al. Deep learning based on nasnet for plant disease recognition using leave images
Smithson et al. Neural networks designing neural networks: multi-objective hyper-parameter optimization
CN105447498B (zh) 配置有神经网络的客户端设备、系统和服务器系统
Stollenga et al. Deep networks with internal selective attention through feedback connections
US9239985B2 (en) Apparatus and methods for processing inputs in an artificial neuron network
CN112651511A (zh) 一种训练模型的方法、数据处理的方法以及装置
US20130325774A1 (en) Learning stochastic apparatus and methods
CN112434462A (zh) 一种模型的获取方法及设备
WO2013184688A1 (en) Stochastic apparatus and methods for implementing generalized learning rules
CN107223260B (zh) 用于动态地更新分类器复杂度的方法
US20230095606A1 (en) Method for training classifier, and data processing method, system, and device
US10853738B1 (en) Inference circuit for improving online learning
WO2022012668A1 (zh) 一种训练集处理方法和装置
US20190286989A1 (en) Distributed neural network model utilization system
US20240078428A1 (en) Neural network model training method, data processing method, and apparatus
KR20180123810A (ko) X-Ray 의료 영상 판독을 위한 데이터 심화학습 처리 기술 및 그 방법
CN113536970A (zh) 一种视频分类模型的训练方法及相关装置
CN116830122A (zh) 用于联合学习的方法、系统和装置
Paul et al. Non-iterative online sequential learning strategy for autoencoder and classifier
KR102293820B1 (ko) 아날로그 배치 정규화 장치를 포함하는 신경망 학습 장치
Lotfi et al. A novel single neuron perceptron with universal approximation and XOR computation properties
WO2023273934A1 (zh) 一种模型超参数的选择方法及相关装置
Lee et al. Exact gradient computation for spiking neural networks via forward propagation
US11748632B2 (en) Analysis of anomalies in a facility

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