KR102514932B1 - 기계 학습용 아날로그 내적 연산기, 이를 이용한 기계 학습 프로세서 및 학습 방법 - Google Patents

기계 학습용 아날로그 내적 연산기, 이를 이용한 기계 학습 프로세서 및 학습 방법 Download PDF

Info

Publication number
KR102514932B1
KR102514932B1 KR1020210049917A KR20210049917A KR102514932B1 KR 102514932 B1 KR102514932 B1 KR 102514932B1 KR 1020210049917 A KR1020210049917 A KR 1020210049917A KR 20210049917 A KR20210049917 A KR 20210049917A KR 102514932 B1 KR102514932 B1 KR 102514932B1
Authority
KR
South Korea
Prior art keywords
machine learning
input
voltage
analog
data
Prior art date
Application number
KR1020210049917A
Other languages
English (en)
Other versions
KR20220143423A (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 KR1020210049917A priority Critical patent/KR102514932B1/ko
Publication of KR20220143423A publication Critical patent/KR20220143423A/ko
Application granted granted Critical
Publication of KR102514932B1 publication Critical patent/KR102514932B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Biomedical Technology (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Neurology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Image Processing (AREA)

Abstract

본 발명은 기계 학습용 아날로그 내적 연산기, 이를 이용한 기계 학습 프로세서 및 학습 방법을 공개한다. 기계 학습용 아날로그 내적 연산기는 신경망에서의 입력 정보를 인버터의 문턱전압을 이용하여 시간 정보로 변환하는 전압-시간 변환기; 신경망에서의 가중치 정보를 변환한 전류를 상기 시간 정보에 응답하여 공급하는 전류-DAC; 및 상기 전압-시간 변환기 및 상기 전류-DAC의 복수개 쌍에 병렬 연결되어, 상기 공급되는 전류를 합산하여 출력 전압으로 출력하는 누산 커패시터; 를 구비하는 것을 특징으로 한다. 본 발명에 의할 경우, 비교기를 사용할 필요가 없어 소비되는 전력 소모가 감소되어 에너지 효율이 극대화되고, 출력 전압 데이터가 비트로 나누어지지 않으므로 연산 과정에서 데이터의 손실이 없어 신호 대 잡음비를 향상시킬 수 있게 된다. 또한, 디지털 곱셈 및 누산기가 불필요해짐으로써, 비트 수에 비례하여 곱셈 및 누산기의 면적이 증가하지 않게 되어, 기계 학습 인공 신경망의 전체 사이즈가 커지는 현상을 방지하게 된다.

Description

기계 학습용 아날로그 내적 연산기, 이를 이용한 기계 학습 프로세서 및 학습 방법{Analog dot product calculator for machine learning, machine learning processor and learning method using the same}
본 발명은 기계 학습용 내적 연산기 및 학습 방법에 관한 것으로서, 보다 상세하게는 기계 학습용 내적 연산기에 아날로그 회로로 구성된 곱셈 및 누산기를 사용하여 전류 도메인에서 바로 누산된 결과가 출력 전압으로 나타나게 하고, 기계 학습의 훈련 단계에서 내적 연산기의 비선형성과 공정 등에 의한 변동을 미리 모델링하여 훈련하는 알고리즘을 구현할 수 있는 기계 학습용 아날로그 내적 연산기, 이를 이용한 기계 학습 프로세서 및 학습 방법에 관한 것이다.
일반적으로, 인공 지능(Artificial Intelligence, AI)은 인간의 뇌와 뉴런 신경망을 모방해 언젠가는 컴퓨터나 로봇들이 인간처럼 사고하고 행동하게 하는 것이다.
예를 들어, 우리는 사진만으로 개와 고양이를 아주 쉽게 구분할 수 있지만 컴퓨터는 구분하지 못한다.
이를 위해 “머신 러닝(Machine Learning, ML)” 기법이 고안되었는데, 이 기법은 많은 데이터를 컴퓨터에 입력하고 비슷한 것끼리 분류하도록 하는 기술로서, 저장된 개 사진과 비슷한 사진이 입력되면, 이를 개 사진이라고 컴퓨터가 분류하도록 하는 것이다.
데이터를 어떻게 분류할 것인가에 따라, 의사결정 나무(Decision Tree)나 베이지안 망(Bayesian network), 서포트 벡터 머신(support vector machine, SVM), 그리고 인공 신경망(Artificial neural network) 등 많은 머신 러닝 알고리즘이 등장했다.
통상적으로, 입력으로부터 값을 계산하는 뉴런 시스템의 상호 연결로 표현되고 적응성이 있어 패턴 인식과 같은 기계 학습을 수행할 수 있다.
데이터로부터 학습하는 다른 기계 학습과 같이, 신경망은 일반적으로 규칙 기반 프로그래밍으로 풀기 어려운 컴퓨터 비전(vision) 또는 음성 인식과 같은 다양한 범위의 문제를 푸는 데 이용된다.
특히, 최근에 컨볼루션 신경망(convolutional neural network)은 이미지 인식, 물체 탐지, 이미지 분할 분야에서 관심을 끌고 있다.
컨볼루션 신경망 기법은 컴퓨터 비전 작업에 뛰어난 성능을 제공하지만, 임베디드(embedded) 환경에서 채택하기 전에 몇 가지 장애물이 존재한다.
즉, 컨볼루션 신경망 기법에는 대개 많은 컨볼루션 계층(convolutional layer)과 완전히 연결된 몇 개의 계층으로 구성되는데, 컨볼루션 계층은 일반적으로 산술 연산의 90 % 이상을 차지하는 등 과도한 데이터 량의 저장 및 산술 연산이 필요하다.
한편, 기계 학습의 다양한 애플리케이션(이미지 인식, 특징 추출 등)을 모바일 장치(mobile device) 등의 기기에서 사용하려면 클라우드(cloud) 통신을 통해 다량의 데이터를 송신해 원격으로 학습(training)을 한 후에 그 결과값을 수신한다.
하지만, 이 경우 데이터 통신을 위한 전력 소모가 심각한 수준으로 발생하므로, 스마트 폰이나 사물 인터넷 장치(IoT device) 등 배터리 전원으로 구동되는 기기에서는 치명적인 약점으로 작용하게 된다.
따라서, 최근에 원격으로 데이터를 송수신하는 대신 기계 학습을 시스템 온-칩(system on-chip)으로 구현하여, 전력 소모를 줄이고 구동 속도를 획기적으로 증가시키는 온-디바이스 러닝(on-device learning) 또는 임베디드 딥 러닝(embedded deep learning)의 연구가 활발히 진행 중이다.
예를 들어, 미국의 퀄컴 사에서 모바일 CPU의 일종인 애플리케이션 프로세서(Application Processor, AP)인 스냅 드래곤에서 온-디바이스 러닝을 구현한 플랫폼 'Zeroth'를 발표한 바 있으나, 이는 마이크로프로세서에 뉴럴 프로세싱 유닛(Neural processing unit, NPU)이라 칭하는 디지털 회로로 구현된 곱셈 및 누산기(Multiply and Accumulating Cell, MAC)를 삽입한 것에 불과하다.
또한, 미국의 구글 사에서 자사의 딥 러닝 프로그래밍 언어인 텐서플로우(TensorFlow)를 기반으로 이를 빠르게 처리하는 텐서 프로세싱 유닛(Tensor Processing Unit, TPU)을 개발했으나, 이 역시 퀄컴 사의 뉴럴 프로세싱 유닛과 유사한 방식이 적용되었다.
통상적으로, 인공 신경망은 인공 뉴런이라 불리는 내적 연산기를 기본 단위로 구성된다.
내적 연산은 벡터들이 직교하는 3차원의 공간인 유클리드 공간에 존재하는 두 벡터의 내적(inner product)을 다른 말로 스칼라 곱(scalar product) 또는 도트 프로덕트(dot product)라고 한다.
인공 뉴런은 곱셈 및 누산 연산인 내적 연산을 연산해야 하므로, 상기 두 회사의 뉴럴 프로세싱 유닛과 텐서 프로세싱 유닛을 포함한 대부분의 애플리케이션 프로세서의 경우, 디지털 회로로 구성된 곱셈 및 누산기를 기반으로 인공 뉴런 회로를 설계하였다.
도 1은 종래의 비교기 기반 기계 학습 연산기 입력단에 대한 회로도이다.
도 2는 도 1에 도시된 종래의 기계 학습 연산기 내 전압-시간 변환기(20-0)의 내부 회로도이다.
도 1 및 도 2를 참조하여 종래의 기계 학습 연산기 입력단 회로의 동작을 개략적으로 설명하면 다음과 같다.
복수개의 가중치 전류원(10-0, 10-1, …)에서 공급되는 전류는 쌍(pair)을 이루는 전압-시간 변환기(Voltage-to-time converter, VTC0, VTC1, …)의 제어에 응답하여 턴 온되는 스위치의 동작에 의해 합해져서 누산 커패시터(accumulating capacitor, CMAC)에 충전되어 출력 전압(VOUT)으로 출력된다.
여기에서, 가중치 전류원(10-0, 10-1, …)은 신경망에서의 가중치 정보(Dw)를 전류(Iw)로 변환하여 공급하는 전류 소스라는 의미에서 편의상 지칭한 용어일 뿐, 외부에 별도로 구비된 전류 전원을 의미하는 것은 아니다.
이때, 전압-시간 변환기(VTC0, 20-0)는 도 2에서 보는 바와 같이, 외부 전류원(21)으로부터 공급되는 전류(I0)가 입력 커패시터(C0)에 충전된 입력 전압(VIN)을 인가받아 비교기(22)를 통하여 일정한 펄스폭(PIN)을 가진 입력 펄스로 변환하여 출력한다.
도 1에서 보는 바와 같이, 전압-시간 변환기(VTC0, VTC1, …)에서 출력된 입력 펄스는 스위치(SW0, SW1, …)의 턴 온/턴 오프 동작을 제어한다.
그런데, 기계 학습 연산기 입력단 회로의 곱셈 및 누산기를 도 1 및 도 2와 같이 디지털 회로로 구현할 경우, 비교기(22)를 사용하므로 기준 전압을 불가피하게 인가받아야 하고, 전력 소모가 매우 크다는 단점이 있으며, 비트-폭(bit-width)의 감소로 인해 정확성(accuracy) 면에서도 손해를 보는 한계가 있었다.
또한, 디지털 곱셈 및 누산기의 방식에서는 비트 수에 비례하여 곱셈 및 누산기의 면적이 배로 증가하는데, 네트워크의 전체 사이즈가 상당히 큰 기계 학습 인공 신경망에서는 면적의 증가가 큰 장애 요소로 작용할 수 밖에 없고, 메모리로의 접근에 필요한 전력의 소모도 상당히 큰 단점이 있었다.
JP 2008-129033 A
본 발명의 목적은 기계 학습용 내적 연산기의 입력단에 아날로그 회로로 구성된 곱셈 및 누산기를 사용하고, 별도의 누산 블록 없이 전류 도메인에서 바로 누산된 결과가 출력 전압으로 나타나게 할 수 있는 기계 학습용 아날로그 내적 연산기 및 이를 이용한 기계 학습 프로세서를 제공하는 것이다.
본 발명의 다른 목적은 기계 학습의 훈련 단계에서 내적 연산기의 비선형성과 공정, 인가 전압, 온도 등에 의한 변동을 미리 모델링하여 훈련하는 비-이상성 모델링 훈련 알고리즘을 구현하는 기계 학습용 아날로그 내적 연산기를 이용한 학습 방법을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 기계 학습용 아날로그 내적 연산기는 신경망에서의 입력 정보를 인버터의 문턱전압을 이용하여 시간 정보로 변환하는 전압-시간 변환기; 신경망에서의 가중치 정보를 변환한 전류를 상기 시간 정보에 응답하여 공급하는 전류-DAC; 및 상기 전압-시간 변환기 및 상기 전류-DAC의 복수개 쌍에 병렬 연결되어, 상기 공급되는 전류를 합산하여 출력 전압으로 출력하는 누산 커패시터; 를 구비하는 것을 특징으로 한다.
상기 목적을 달성하기 위한 본 발명의 기계 학습용 아날로그 내적 연산기를 이용한 기계 학습 프로세서는 신경망에서의 입력 정보를 인가받아 시간 정보로 변환하고, 가중치 정보를 변환한 전류를 인가받아 상기 시간 정보의 제어에 응답하여 인버터의 문턱전압에 따라 공급 및 합산해서 출력 전압으로 출력하는 곱셈 및 누산기 어레이; 상기 출력 전압을 인가받아 정규화하고, 신경망의 2차원 데이터를 인가받아 상기 시간 정보의 제어에 응답하여 풀링 동작을 수행하는 정규화 및 풀링부; 상기 정규화 및 풀링부의 출력을 인가받아, 제어 로직의 제1 제어 신호에 응답하여 신경망의 활성화 레이어 동작을 수행하는 활성화부; 호스트 컴퓨터로부터 입력 데이터 및 가중치 데이터를 로드하는 입출력 인터페이스; 상기 로드된 입력 데이터 중 이미지에 대한 입력 데이터를 임시 저장하는 이미지 버퍼; 및 상기 로드된 가중치 데이터 중 이미지에 대한 가중치 데이터를 임시 저장하는 가중치 버퍼; 를 구비하는 것을 특징으로 한다.
상기 다른 목적을 달성하기 위한 본 발명의 기계 학습용 아날로그 내적 연산기를 이용한 학습 방법은 호스트 컴퓨터가 훈련용 데이터를 입력받고, 신경망 모델링부로부터 모델링된 입력 이미지 데이터를 입력받는 단계; 상기 호스트 컴퓨터가 상기 훈련용 데이터 및 상기 모델링된 입력 이미지 데이터에 비-이상성 모델링 훈련 알고리즘을 적용하여 훈련하고 가중치 매트릭스를 추출하는 단계; 필드 프로그래머블 게이트 어레이가 테스팅 데이터 및 상기 가중치 매트릭스를 입력받아, 프로그래밍하여 입력 이미지 데이터 및 가중치 데이터를 출력하는 단계; 및 기계 학습 프로세서가 상기 입력 이미지 데이터 및 상기 가중치 데이터를 인가받아 곱셈 및 누산 동작을 수행하여 입력 이미지를 추론하는 단계; 를 포함하는 것을 특징으로 한다.
기타 실시예의 구체적인 사항은 "발명을 실시하기 위한 구체적인 내용" 및 첨부 "도면"에 포함되어 있다.
본 발명의 이점 및/또는 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 각종 실시예를 참조하면 명확해질 것이다.
그러나, 본 발명은 이하에서 개시되는 각 실시예의 구성만으로 한정되는 것이 아니라 서로 다른 다양한 형태로도 구현될 수도 있으며, 단지 본 명세서에서 개시한 각각의 실시예는 본 발명의 게시가 완전하도록 하며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구범위의 각 청구항의 범주에 의해 정의될 뿐임을 알아야 한다.
본 발명에 의할 경우, 비교기를 사용할 필요가 없어 소비되는 전력 소모가 감소되어 에너지 효율이 극대화되고, 출력 전압 데이터가 비트로 나누어지지 않으므로 연산 과정에서 데이터의 손실이 없어 신호 대 잡음비를 향상시킬 수 있게 된다.
또한, 디지털 곱셈 및 누산기가 불필요해짐으로써, 비트 수에 비례하여 곱셈 및 누산기의 면적이 증가하지 않게 되어, 기계 학습 인공 신경망의 전체 사이즈가 커지는 현상을 방지하게 된다.
또한, 시간 도메인의 아날로그 신호를 이용하여 연산하므로 높은 선형성을 얻을 수 있고, 입력과 출력의 정보 형태가 전압으로 동일하여 연속적 계산이 가능해 짐에 따라 기계 학습 프로세서에서 신경망의 멀티-레이어 연산이 가능해진다.
또한, 아날로그 내적 연산기의 비선형성과 공정, 인가 전압, 온도 등에 의한 변동에 따라 발생하는 연산 결과의 불확정성 없이 안정적으로 동작하게 되어 성능이 현저하게 향상된다.
도 1은 종래의 비교기 기반 기계 학습 연산기 입력단에 대한 회로도이다.
도 2는 도 1에 도시된 종래의 기계 학습 연산기 내 전압-시간 변환기(20-0)의 내부 회로도이다.
도 3은 본 발명에 따른 기계 학습용 아날로그 내적 연산기의 개략적인 블록도이다.
도 4는 도 3에 도시된 회로를 구동시켰을 때, 시간의 변화에 따른 샘플링 전압(Vsamp) 및 입력 펄스의 파형을 나타낸 타이밍 다이어그램이다.
도 5는 도 3에 도시된 회로를 구동시켰을 때, 시간의 변화에 따른 전압-시간 변환기의 출력 및 곱셈 및 누산기의 출력 파형을 나타낸 타이밍 다이어그램이다.
도 6은 본 발명의 일 실시예에 따른 기계 학습용 아날로그 내적 연산기를 이용한 기계 학습 프로세서의 블록도이다.
도 7은 도 6에 도시된 기계 학습 프로세서 내 곱셈 및 누산기의 개략적인 내부 배열도이다.
도 8은 도 7에 도시된 곱셈 및 누산기 내 복수개의 곱셈 및 누산 셀 중 마지막 셀의 내부 회로도이다.
도 9는 본 발명의 기계 학습용 아날로그 내적 연산기를 포함한 아날로그 CNN 프로세서를 이용하여 손글씨 숫자를 인식하는 일 실시예의 동작을 설명하기 위한 시스템의 개략적인 구성도이다.
도 10은 도 9에 도시된 시스템에서 비선형성 및 PVT 변동을 개선하기 위한 본 발명의 손글씨 숫자를 인식하는 다른 실시예의 동작을 설명하기 위한 시스템의 개략적인 구성도이다.
도 11은 도 10에 도시된 시스템 내 신경망 모델링부의 동작을 설명하기 위한 개략적인 구성도이다.
도 12는 본 발명의 다른 실시예에 따라 기계 학습용 아날로그 내적 연산기를 이용한 학습 방법의 동작을 설명하기 위한 순서도이다.
도 13은 본 발명의 기계 학습용 아날로그 내적 연산기를 포함한 아날로그 CNN 프로세서를 이용한 다른 실시예에 따른 비-이상성 모델링 훈련 알고리즘의 개략적인 동작 흐름도이다.
도 14는 도 12에 도시된 기계 학습용 아날로그 내적 연산기를 이용한 학습 방법 중 비-이상성 모델링 훈련 알고리즘의 동작을 설명하기 위한 순서도이다.
도 15는 도 14에 도시된 본 발명의 다른 실시예에 따른 비-이상성 모델링 훈련 방법 내 단계(S420)의 세부 동작을 설명하기 위한 순서도이다.
도 16은 본 발명의 일 실시예에 따른 기계 학습용 아날로그 내적 연산기를 구동하여 측정한 에너지 효율 및 성능을 종래의 기계 학습용 내적 연산기들과 비교한 표이다.
이하, 첨부한 도면을 참고로 하여 본 발명의 바람직한 실시예에 대하여 상세히 설명하면 다음과 같다.
본 발명을 상세하게 설명하기 전에, 본 명세서에서 사용된 용어나 단어는 통상적이거나 사전적인 의미로 무조건 한정하여 해석되어서는 아니되며, 본 발명의 발명자가 자신의 발명을 가장 최선의 방법으로 설명하기 위해서 각종 용어의 개념을 적절하게 정의하여 사용할 수 있다.
더 나아가 이들 용어나 단어는 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 함을 알아야 한다.
즉, 본 명세서에서 사용된 용어는 본 발명의 바람직한 실시예를 설명하기 위해서 사용되는 것일 뿐이고, 본 발명의 내용을 구체적으로 한정하려는 의도로 사용된 것이 아니다.
이들 용어는 본 발명의 여러 가지 가능성을 고려하여 정의된 용어임을 알아야 한다.
또한, 본 명세서에 있어서, 단수의 표현은 문맥상 명확하게 다른 의미로 지시하지 않는 이상, 복수의 표현을 포함할 수 있다.
또한, 유사하게 복수로 표현되어 있다고 하더라도 단수의 의미를 포함할 수 있음을 알아야 한다.
본 명세서의 전체에 걸쳐서 어떤 구성 요소가 다른 구성 요소를 "포함"한다고 기재하는 경우에는, 특별히 반대되는 의미의 기재가 없는 한 임의의 다른 구성 요소를 제외하는 것이 아니라 임의의 다른 구성 요소를 더 포함할 수도 있다는 것을 의미할 수 있다.
더 나아가서, 어떤 구성 요소가 다른 구성 요소의 "내부에 존재하거나, 연결되어 설치된다"고 기재한 경우에는, 이 구성 요소가 다른 구성 요소와 직접적으로 연결되어 있거나 접촉하여 설치되어 있을 수 있다.
또한, 일정한 거리를 두고 이격되어 설치되어 있을 수도 있으며, 일정한 거리를 두고 이격되어 설치되어 있는 경우에 대해서는 해당 구성 요소를 다른 구성 요소에 고정 내지 연결시키기 위한 제 3의 구성 요소 또는 수단이 존재할 수 있다.
한편, 상기 제 3의 구성 요소 또는 수단에 대한 설명은 생략될 수도 있음을 알아야 한다.
반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결"되어 있다거나, 또는 "직접 접속"되어 있다고 기재되는 경우에는, 제 3의 구성 요소 또는 수단이 존재하지 않는 것으로 이해하여야 한다.
마찬가지로, 각 구성 요소 간의 관계를 설명하는 다른 표현들, 즉 " ~ 사이에"와 "바로 ~ 사이에", 또는 " ~ 에 이웃하는"과 " ~ 에 직접 이웃하는" 등도 마찬가지의 취지를 가지고 있는 것으로 해석되어야 한다.
또한, 본 명세서에 있어서 "일면", "타면", "일측", "타측", "제 1", "제 2" 등의 용어는, 하나의 구성 요소에 대해서 이 하나의 구성 요소가 다른 구성 요소로부터 명확하게 구별될 수 있도록 하기 위해서 사용된다.
하지만, 이와 같은 용어에 의해서 해당 구성 요소의 의미가 제한적으로 사용되는 것은 아님을 알아야 한다.
또한, 본 명세서에서 "상", "하", "좌", "우" 등의 위치와 관련된 용어는, 사용된다면, 해당 구성 요소에 대해서 해당 도면에서의 상대적인 위치를 나타내고 있는 것으로 이해하여야 한다.
또한, 이들의 위치에 대해서 절대적인 위치를 특정하지 않는 이상은, 이들 위치 관련 용어가 절대적인 위치를 언급하고 있는 것으로 이해하여서는 아니된다.
더욱이, 본 발명의 명세서에서는, "…부", "…기", "모듈", "장치" 등의 용어는, 사용된다면, 하나 이상의 기능이나 동작을 처리할 수 있는 단위를 의미한다.
이는 하드웨어 또는 소프트웨어, 또는 하드웨어와 소프트웨어의 결합으로 구현될 수 있음을 알아야 한다.
본 명세서에 첨부된 도면에서 본 발명을 구성하는 각 구성 요소의 크기, 위치, 결합 관계 등은 본 발명의 사상을 충분히 명확하게 전달할 수 있도록 하기 위해서 또는 설명의 편의를 위해서 일부 과장 또는 축소되거나 생략되어 기술되어 있을 수 있고, 따라서 그 비례나 축척은 엄밀하지 않을 수 있다.
또한, 이하에서, 본 발명을 설명함에 있어서, 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 구성, 예를 들어, 종래 기술을 포함하는 공지 기술에 대한 상세한 설명은 생략될 수도 있다.
도 3은 본 발명의 일 실시예에 따른 기계 학습용 아날로그 내적 연산기 내 입력단의 회로도로서, 복수개의 전압-시간 변환기(100-1, 100-2,…), 복수개의 전류 DAC(200-1, 200-2,…) 및 누산 커패시터(CMAC)를 포함한다.
제1 전압-시간 변환기(100-1)는 제1 및 제2 입력 스위치(SW1, SW2)의, 제1 샘플링 커패시터(CF), 제1 외부 전류원(110-1), 제1 인버터부(120-1) 및 제1 AND 게이트(130-1)를 구비한다.
제1 전류 DAC(200-1)는 제1 가중치 전류원(210-1) 및 제1 출력 스위치(220-1)를 구비한다.
여기에서, 제1 인버터부(120-1)는 2개의 인버터 직렬 연결로 도시되어 있으나, 인버터 개수는 4개 이상의 복수개(단, 짝수 개)일 수 있다.
도 3을 참조하여 본 발명에 따른 기계 학습용 아날로그 내적 연산기의 각 구성요소의 구조 및 기능을 개략적으로 설명하면 다음과 같다.
전압-시간 변환기(100-1)는 신경망에서의 입력 정보를 인가받아 인버터의 문턱전압을 이용하여 시간 정보로 변환한다.
즉, 제1 입력 스위치(SW1)는 제1 펄스(
Figure 112021044755169-pat00001
1)에 응답하여 턴 온되어 후술하는 입력 전압 발생부(도 8의 50-1)로부터 입력 전압(VIN0)을 전달한다.
제2 입력 스위치(SW2)는 제2 펄스(
Figure 112021044755169-pat00002
2)에 응답하여 턴 온되어 외부 전류원(110-1)의 전원 전류(iCH)를 전달한다.
샘플링 커패시터(CF)는 제1 입력 스위치(SW1)를 통해 입력 전압(VIN0)을 전달받아 제2 입력 스위치(SW2)를 통해 전달되는 외부 전류원(110-1)의 전원 전류(iCH)를 합하여 샘플링 전압(Vsamp)으로 충전한다.
인버터부(120-1)는 일정한 문턱 전압(VITH)을 가지고, 샘플링 커패시터(CF)로부터 샘플링 전압(Vsamp)을 인가받아 샘플링 전압(Vsamp)이 문턱 전압(VITH)을 초과하면, 하이 레벨값을 출력한다.
AND 게이트(130-1)는 인버터부(120-1)의 출력 및 제2 펄스(
Figure 112021044755169-pat00003
2)를 입력받아 논리곱 연산하여 입력 펄스(PIN0)를 출력한다.
전류-DAC(200-1)는 신경망에서의 가중치 정보(w0)를 변환한 전류(iw0)를 인가받아 전압-시간 변환기(100-1)에서 변환된 시간 정보에 응답하여 공급한다.
즉, 가중치 전류원(210-1)은 신경망에서의 가중치(w0)를 전류(iw0)로 변환하여 공급한다.
출력 스위치(220-1)는 전압-시간 변환기(100-1)에서 생성된 입력 펄스(PIN0)에 응답하여 턴 온되어, 가중치 전류원(210-1)으로부터 가중치 전류(iw0)를 누산 커패시터(CMAC)로 도통시킨다.
누산 커패시터(CMAC)는 전압-시간 변환기(100-1) 및 전류-DAC(200-1)의 복수개 쌍에 병렬 연결되어, 복수개의 전류-DAC(200-1 내지 200-n)에서 공급되는 전류를 합산하여 출력 전압으로 출력한다.
도 4는 도 3에 도시된 회로를 구동시켰을 때, 시간의 변화에 따른 샘플링 전압(Vsamp) 및 입력 펄스(PIN)의 파형을 나타낸 타이밍 다이어그램이다.
도 3 및 도 4를 참조하여 본 발명의 일 실시예에 따른 기계 학습용 아날로그 내적 연산기 내 입력단의 동작을 상세하게 설명하면 다음과 같다.
본 발명의 아날로그 내적 연산기는 복수쌍의 전압-시간 변환기 및 전류 DAC를 포함한다.
전압-시간 변환기(Voltage-to-time converter, 100-n)는 신경망에서의 입력 정보(X)를 인가받아 인버터의 문턱전압을 이용하여 시간 정보로 변환한다.
즉, 도 3에서 제1 펄스값(
Figure 112021044755169-pat00004
1)이 시점(t1)에서 하이 레벨로 인가되는 경우, 제1 입력 스위치(SW1)가 턴 온되어 샘플링 전압(Vsamp)은 도 4에서 보는 바와 같이, 입력 전압(VIN)으로 증가하여 샘플링 커패시터(CF)에 충전되면서 포화(saturation)된다.
시점(t2)에서 제1 펄스값(
Figure 112021044755169-pat00005
1)이 로우 레벨로 천이(transition)되고, 제2 펄스값(
Figure 112021044755169-pat00006
2)이 하이 레벨로 천이되는 경우, 제1 입력 스위치(SW1)는 턴 오프되고 제2 입력 스위치(SW2)는 턴 온되어 전류원(110-1)의 전원 전류(iCH)가 공급됨에 따라 샘플링 전압(Vsamp)은 입력 전압(VIN)에 합해져 도 4에서 보는 바와 같이, 선형적으로 증가한다.
시점(t3)에서 샘플링 전압(Vsamp)이 인버터부(120-1)의 문턱 전압(VITH)을 초과하면, 인버터부(120-1)의 출력과 제2 펄스값(
Figure 112021044755169-pat00007
2)이 하이 레벨로서 AND 게이트(130-1)에 인가되므로 입력 펄스(PIN)는 하이 레벨로 천이된다.
시점(t4)에서 제2 입력 스위치(SW2)가 턴 오프되면, 외부 전류원(110-1)의 전류(iCH) 공급이 차단됨에 따라 샘플링 전압(Vsamp)은 도 4에서 보는 바와 같이, 더 이상 증가하지 않고 포화된다.
이에 따라, 입력 펄스(PIN)는 로우 레벨로 천이되어, 펄스폭의 값이 PIN 인 펄스가 생성된다.
이때, 샘플링 전압(Vsamp)이 선형적으로 증가하는 구간(t2~t4)은 샘플링 커패시터(CF)의 충전 시간(TCH,F)으로서, 전하량 = 전류 x 시간 = 커패시턴스 x 전압 의 관계식에 의해, 다음의 수학식 1과 같이 표현되고, 외부 전류원(110-1)에서 공급되는 전류값(ICH)에 의해 조절된다.
[수학식 1]
Figure 112021044755169-pat00008
여기에서, CF 는 샘플링 커패시터의 커패시턴스값, VITH 는 인버터부(120-1)의 문턱 전압값이며, ICH 는 외부 전류원(110-1)에서 공급되는 전류값을 의미한다.
또한, 도 3에 도시된 본 발명의 기계 학습용 아날로그 내적 연산기 내 입력단의 전달함수는 다음의 수학식 2와 같이 표현된다.
[수학식 2]
Figure 112021044755169-pat00009
여기에서, TCH,F 는 샘플링 커패시터(CF)의 충전 시간, ICH 는 외부 전류원(110-1)에서 공급되는 전류값, CF 는 샘플링 커패시터의 커패시턴스값, VITH 는 인버터부(120-1)의 문턱 전압값, VIN 은 입력 전압값을 의미한다.
이와 같이, 본 발명에서는 도 2에 도시된 종래의 기계 학습 연산기처럼 기준 전압을 인가 받는 비교기를 구비하는 대신, 일정한 문턱 전압(threshold voltage)이 있는 복수개의 인버터를 구비하여, 입력 펄스폭을 조절하는 문턱 전압(VITH)을 활용함으로써 전력 소모를 크게 줄이고, 에너지 효율을 높일 수 있다.
이로 인해, 입력 펄스가 하이 레벨로 상승하기 위해 필요한 트리거링 요소가, 기준 전압과 같은 외부 입력이 아닌 인버터의 문턱 전압(VITH)으로 고정된다.
이에 따라, 전압-시간 변환기의 출력인 입력 펄스(PIN)의 시간 정보가 입력 전압의 정보와 비례하는 값을 가지기 위해서는 상기 수학식 1과 같은 특정 조건을 만족시켜 주어야 한다.
한편, 전류-DAC(200-n)는 신경망에서의 가중치 정보(w)를 변환한 전류(iw)를 인가받아, 인버터의 문턱전압 값에 따라 전압-시간 변환기(100-n)의 제어에 응답하여 공급 및 합산해서 누산 커패시터(CMAC)에 충전하고 출력 전압(VOUT)으로 출력한다.
즉, 도 3과 같이 구성된 전압-시간 변환기(100-1)는 전류-DAC(200-1)와 함께 쌍을 이루면서 복수개가 누산 커패시터(CMAC)와 병렬 연결된다.
제1 전류-DAC(200-1)는 제1 가중치 전류원(210-1) 및 제1 출력 스위치(220-1)를 구비한다.
여기에서, 가중치 전류원은 도 1에 도시된 종래의 기계 학습 연산기에서와 마찬가지로, 신경망에서의 가중치 정보(w)를 전류(iw)로 변환하여 공급하는 전류 소스라는 의미에서 편의상 지칭한 용어이다.
도 4의 과정을 통해 제1 전압-시간 변환기(100-1)에서 생성된 입력 펄스(PIN0)는 제1 출력 스위치(220-1)에 인가되어 하이 레벨일 때 제1 출력 스위치(220-1)를 턴 온시키고, 로우 레벨일 때 제1 출력 스위치(220-1)를 턴 오프시킨다.
제1 출력 스위치(220-1)가 턴 온되는 경우, 제1 가중치 전류원(210-1)으로부터 가중치 전류(IW,0)가 공급되어 다음의 수학식 3에 의해 제1 입력 펄스(PIN0)의 펄스폭 값(PIN,0)과 곱해져 제1 전하량(Q0)을 산출한다.
[수학식 3]
Figure 112021044755169-pat00010
이는 곧 신경망에서의 입력(x)과 가중치(w)의 곱을 의미한다.
나머지 전류-DAC(200-2 내지 200-N)에서도 마찬가지 과정을 거쳐 가중치 전류가 공급되고 해당 전하량이 산출된다.
누산 커패시터(CMAC)는 전압-시간 변환기(100-1) 및 전류-DAC의 복수개의 쌍에 병렬 연결되어 있으므로, 산출된 복수개의 전하량을 동시에 충전하게 되고, 최종 출력 전압(VOUT)은 내적 연산의 결과로서, 다음의 수학식 4와 같이 표현된다.
[수학식 4]
Figure 112021044755169-pat00011
여기에서, Qi 는 복수개의 전류-DAC 중 i 번째 전류-DAC에서 산출되는 전하량, PIN,i 는 i 번째 입력 펄스의 펄스폭 값, IW,i 는 i 번째 가중치 전류원(210-i)에서 공급되는 가중치 전류 값, CMAC 은 누산 커패시터(CMAC)의 커패시턴스 값을 의미한다.
도 5는 도 3에 도시된 회로를 구동시켰을 때, 시간의 변화에 따른 전압-시간 변환기의 출력 및 곱셈 및 누산기의 출력 파형을 나타낸 타이밍 다이어그램이다.
하나의 예시로서, 뉴런(neuron)의 입력 및 가중치(w) 쌍이 2개일 경우, 도 5(a)에서 보는 바와 같이, 구간(t1~t2)에서 전압-시간 변환기(100-1)의 출력인 제1 입력 펄스폭(청색, IN0)과 제2 입력 펄스폭(분홍색, IN1)이 모두 하이 레벨(보라색)일 때, 곱셈 및 누산기의 출력 파형은 도 5(b)에서 보는 바와 같이, 제1 가중치(w0)와 제2 가중치(w1)가 합산되어 기울기가 크다.
반면, 구간(t2~t3)에서 전압-시간 변환기(100-1)의 출력인 제2 입력 펄스폭(IN1)이 로우 레벨로 천이되고, 제1 입력 펄스폭(IN0)만 하이 레벨일 때, 곱셈 및 누산기의 출력 파형은 도 5(b)에서 보는 바와 같이, 제1 가중치(w0)만 인가되므로 기울기가 작다.
이와 같은 방식으로 뉴런(neuron)의 입력 및 가중치 쌍이 9개일 경우, 컨볼루션 신경망(convolutional neural network, CNN)은 1개의 3x3 컨볼루션 필터로서 연산할 수 있게 된다.
이와 같이 본 발명의 기계 학습용 아날로그 내적 연산기 내 입력단에는 아날로그 회로로 구성된 곱셈 및 누산기를 사용하기 때문에 소비되는 전력 소모가 낮고, 별도의 누산 블록(accumulation block) 없이 전류 도메인에서 바로 누산된 결과가 출력 전압으로 나타나게 된다.
또한, 출력 전압 데이터가 비트로 나누어지지 않았으므로 연산 과정에서 데이터의 손실이 없고, 높은 신호 대 잡음비(SNR)도 얻을 수 있다.
입력 전압이 시간 정보로 변환된 시간 도메인의 아날로그 신호를 이용하여 연산하므로 높은 선형성을 얻을 수 있고, 입력(VIN)과 출력(VOUT)의 정보 형태가 전압으로 동일하기 때문에 연속적 계산이 가능한 시퀀싱(sequencing) 연산을 할 수 있고, 이는 곧 신경망의 멀티-레이어(multi-layer) 연산이 가능함을 의미한다.
도 6은 본 발명의 일 실시예에 따른 기계 학습용 아날로그 내적 연산기를 이용한 기계 학습 프로세서의 블록도로서, 입출력 인터페이스(1000), 이미지 버퍼(2000), 클럭 발생기(3000), 곱셈 및 누산기 어레이(4000), 정규화 및 풀링부(5000), 제어 로직(6000), 활성화부(7000) 및 가중치 버퍼(8000)를 포함한다.
도 7은 도 6에 도시된 기계 학습 프로세서 내 곱셈 및 누산기 어레이(4000)의 개략적인 내부 배열도로서, 복수개의 곱셈 및 누산 셀(4000-1 내지 4000-N)을 포함한다.
도 8은 도 7에 도시된 곱셈 및 누산기 어레이(4000) 내 복수개의 곱셈 및 누산 셀(4000-1 내지 4000-N) 중 마지막 셀(4000-N)의 내부 회로도로서, 복수개의 입력전압 발생부(50-1 내지 50-n), 복수개의 전압-시간 변환부(100-1 내지 100-n) 및 복수개의 전류-DAC(200-1 내지 200-n) 각각이 쌍을 이루면서 출력단이 누산 커패시터(CMAC)에 병렬 연결된다.
제n 입력전압 발생부(50-n)는 제n DA 컨버터(51-n), 제n 입력 커패시터(CP-n) 및 제n OP AMP(52-n)를 포함한다.
도 3 내지 도 8을 참조하여 본 발명의 일 실시예에 따른 기계 학습용 아날로그 내적 연산기를 이용한 기계 학습 프로세서의 동작을 개략적으로 설명하면 다음과 같다.
입출력 인터페이스(1000)는 외부의 호스트 컴퓨터 및 FPGA로부터 이미지, 비디오, 오디오 등에 대한 입력 데이터 및 가중치 데이터를 로드한다.
이미지 버퍼(2000)는 입출력 인터페이스(1000)를 통해 호스트 컴퓨터 및 FPGA로부터 로드된 이미지(본 실시예)에 대한 입력 데이터를 임시 저장하고, 가중치 버퍼(8000)는 로드된 이미지에 대한 가중치 데이터를 임시 저장한다.
클럭 발생기(3000)는 연산 시작 신호에 해당하는 클럭과 제1 펄스(
Figure 112021044755169-pat00012
1) 및 제2 펄스(
Figure 112021044755169-pat00013
2)를 생성하여 출력한다.
곱셈 및 누산기 어레이(4000)는 신경망에서의 입력 정보(X)를 인가받아 시간 정보로 변환하고, 가중치 정보(w)를 변환한 전류(iw)를 인가받아 시간 정보의 제어에 응답하여 인버터의 문턱전압에 따라 공급 및 합산해서 출력 전압(VOUT)으로 출력한다.
즉, 도 7 및 도 8에서 보는 바와 같이, 본 발명의 기계 학습 프로세서 내 곱셈 및 누산기 어레이(4000)는 복수개의 곱셈 및 누산 셀(4000-1 내지 4000-N)을 포함하는데, 그 중 마지막 셀(4000-N)은 도 3에 도시된 기계 학습용 아날로그 내적 연산기 내 복수개의 전압-시간 변환부(100-1 내지 100-n)의 입력단에 복수개의 입력전압 발생부(50-1 내지 50-n) 각각이, 쌍을 이루면서 연결된다.
따라서, 본 발명의 기계 학습용 아날로그 내적 연산기 내 복수쌍의 전압-시간 변환기(100-1, 100-2,…), 전류 DAC(200-1, 200-2,…) 및 누산 커패시터(CMAC)의 동작은 도 3을 참조한 앞 부분에서 상세하게 설명했으므로 여기에서는 생략하고, 예시적으로 제1 입력전압 발생부(50-1)의 동작에 대해서만 간략하게 설명한다.
제1 입력전압 발생부(50-1)는 제1 입력 데이터를 인가받아 제1 DA 컨버터(51-1)를 통해 디지털-아날로그 변환하여 제1 프리 입력전압을 출력한다.
제1 입력 커패시터(CP-1)는 제1 DA 컨버터(51-1)에 병렬 연결되어 제1 DA 컨버터(51-1)에서 출력된 제1 프리 입력전압을 인가받아 충전한다.
제1 OP AMP(52-1)는 입력 커패시터에 병렬 연결되어 제1 입력 커패시터(CP-1)에 충전된 제1 프리 입력전압을 인가받아 증폭하여 제1 입력 전압(VIN0)을 출력한다.
정규화 및 풀링부(5000)는 곱셈 및 누산기 어레이(4000)로부터 출력 전압(VOUT)을 인가받아 정규화(μ=0, σ=1)하고, 신경망의 2차원 데이터를 인가받아 시간 정보의 제어에 응답하여 도 11에서 보는 바와 같이, 가로 및 세로 방향 공간을 줄이는 연산인 풀링(pooling) 동작을 수행한다.
제어 로직(6000)은 정규화 및 풀링부(5000)의 출력을 활성화부(7000)로 인가할지, 이미지 버퍼(2000)에 인가할지 제어하는 제1 및 제2 제어 신호를 출력한다.
활성화부(7000)는 정규화 및 풀링부(5000)의 출력을 인가받아, 제어 로직(6000)의 제1 제어 신호에 응답하여 신경망의 비선형 함수(nonlinear function) 연산인 활성화 레이어(activation layer) 동작을 수행한다.
이때, 제어 로직(6000)의 제어 신호가 정규화 및 풀링부(5000)의 출력을 이미지 버퍼(2000)에 인가하도록 제어하는 제2 제어 신호라면, 이미지 버퍼(2000)에 기 저장된 입력 데이터에 정규화 및 풀링부(5000)의 출력을 덮어쓰게 된다.
이는 해당 계층에서의 레이어 연산이 끝나면, 해당 계층에 사용된 입력이 더 이상 필요하지 않기 때문이다.
본 발명의 기계 학습 프로세서는 기계 학습용 아날로그 내적 연산기를 내장하고 있어, 자연스러운 ReLU 활성화(ReLU activation)의 역할도 같이 수행하고 있으므로, 사용자는 제어 로직(6000)을 통하여 활성화부(7000)를 활성화할지 여부를 선택할 수 있다.
여기에서, ReLU 활성화는 미리 훈련된 CNN 모델에 테스트하고자 하는 이미지를 피드 포워드(Feed Forward)시켜 어떤 부류(Class)의 확률이 가장 높은 지 추출하고, 완전 연결된(Fully connected, FC) 레이어에서 가장 확률이 높은 레벨의 벡터를 추출한다.
또한, CNN의 마지막 레이어의 전체 필터를 추출한 후에, 각 필터들이 완전 연결된 레이어의 결과를 주는데 얼마나 영향을 주었는지 가중치를 계산한다.
이와 같이 계산된 가중치를 CNN의 마지막 레이어에 적용하여, 복수 필터를 평균하여 하나의 필터로 만들어 주는 동작이 ReLU 활성화이다.
활성화부(7000)가 상기 비선형 함수 연산 동작을 수행하고 나면, 신경망의 첫 번째 레이어 동작이 완료된 것이다.
이상과 같은 단계를 거쳐 첫 번째 레이어의 동작이 완료되면, 제어 로직(6000)으로부터의 제어신호에 따라 이미지 버퍼(2000)에 저장된 최종 출력값은 입출력 인터페이스를 통해 호스트 컴퓨터로 전송되거나, 상기 동작들을 반복하여 두 번째 이후 레이어 동작을 수행하게 된다.
도 9는 본 발명의 기계 학습용 아날로그 내적 연산기를 포함한 아날로그 CNN 프로세서를 이용하여 손글씨 숫자를 인식하는 일 실시예의 동작을 설명하기 위한 시스템의 개략적인 구성도로서, 호스트 컴퓨터, FPGA 및 아날로그 CNN 프로세서를 포함한다.
도 3 내지 도 9를 참조하여 본 발명의 기계 학습용 아날로그 내적 연산기를 포함한 아날로그 CNN 프로세서를 이용하여 손글씨 숫자를 인식하는 일 실시예의 동작을 개략적으로 설명하면 다음과 같다.
본 발명의 기계 학습용 아날로그 내적 연산기를 이용한 기계 학습 프로세서는 일반적인 기계 학습의 추론 어플리케이션에 다양하게 이용될 수 있다.
예를 들어, 손글씨 숫자 인식(Modified National Institute of Standards and Technology, MNIST)을 위한 기계 학습의 추론 어플리케이션의 경우, 도 9에서 보는 바와 같이, 호스트 컴퓨터(Host PC)는 인식 대상 손글씨 숫자를 입력받아 입력 이미지 데이터 및 가중치 데이터를 출력한다.
필드 프로그래머블 게이트 어레이(field programmable gate array, FPGA)는 호스트 컴퓨터로부터 입력 이미지 데이터 및 가중치 데이터를 인가받아 내장된 복수개의 다양한 논리 소자를 이용하여 활자 인식용 용도에 맞게 프로그래밍하여 출력한다.
아날로그 컨볼루션 신경망 프로세서는 본 발명의 기계 학습용 아날로그 내적 연산기를 구비하고, 인버터의 문턱전압을 이용해 숫자 인식에 대한 내적 연산을 수행하여 기계 학습 결과값인 분류화된 숫자를 출력한다.
즉, 기계 학습용 아날로그 내적 연산기는 필드 프로그래머블 게이트 어레이로부터 프로그래밍된 입력 데이터 및 가중치 데이터가 입력되어 DA 변환된 데이터를 인가받고, DA 변환된 데이터가 피드백되어 제어기의 제어에 응답하여 선택된 데이터를 인가받아 곱셈 및 누산 연산하여 기계 학습을 통해 정확하게 인식된 숫자를 출력한다.
이때, 아날로그 컨볼루션 신경망 프로세서는 아날로그 내적 연산기 기반으로 제작되므로 곱셈 및 누산기를 디지털 회로로 구현한 종래의 기계 학습용 프로세서와 달리, 메모리로의 접근 및 데이터 통신에 필요한 전력의 소모를 줄일 수 있고, 네트워크의 전체 사이즈를 감소시켜 에너지 효율을 극대화할 수 있다.
다만, 도 9와 같은 아날로그 내적 연산기를 기계 학습 프로세서에서 이용할 때 가장 문제가 되는 부분은, 아날로그 내적 연산기의 비선형성 및 PVT 변동(variation)에 따라 발생하는 연산 결과의 불확정성이다.
여기에서, PVT(Process, Voltage, Temperature) 변화는 병렬 인터페이스 방식의 단점 중 하나로서, 공정, 인가 전압, 온도에 의한 칩 내부에 구비된 스위칭 소자의 스위칭 속도 변화가 생겨 기준 클럭의 셋업 시간 및/또는 홀드 시간 흔들림으로 인해 데이터 획득에 오류가 생기는 것을 의미한다.
이는, 기계 학습 프로세서에서 연산이 디지털로 수행될 경우에는 노이즈 마진(noise margin)을 두고 설계할 수 있기 때문에 환경 변화에 상대적으로 둔감한 반면, 연산이 아날로그로 수행될 경우에는 결과값이 회로의 환경 변화를 그대로 반영하기 때문이다.
이때, 기계 학습의 훈련(training) 단계에서 내적 연산기의 비선형성 및 PVT 변동을 미리 모델링하여 훈련하게 되면, 신경망은 이 특성을 가지고 손실 함수(loss function)를 최소화하는 방향으로 훈련되기 때문에, 비선형성 및 PVT 변동에 의해 발생하는 연산의 불확정성을 상쇄할 수 있다.
도 10은 도 9에 도시된 시스템에서 비선형성 및 PVT 변동을 개선하기 위한 본 발명의 손글씨 숫자를 인식하는 다른 실시예의 동작을 설명하기 위한 시스템의 개략적인 구성도로서, 호스트 컴퓨터, 신경망 모델링부, FPGA 및 아날로그 CNN 프로세서를 포함한다.
도 11은 도 10에 도시된 시스템 내 신경망 모델링부의 동작을 설명하기 위한 개략적인 구성도이다.
도 12는 본 발명의 다른 실시예에 따라 기계 학습용 아날로그 내적 연산기를 이용한 학습 방법의 동작을 설명하기 위한 순서도이다.
도 13은 본 발명의 기계 학습용 아날로그 내적 연산기를 포함한 아날로그 CNN 프로세서를 이용한 다른 실시예에 따른 비-이상성 모델링 훈련 알고리즘의 개략적인 동작 흐름도이다.
도 3 내지 도 13을 참조하여 본 발명의 다른 실시예에 따라 기계 학습용 아날로그 내적 연산기를 이용한 학습 방법의 동작을 개략적으로 설명하면 다음과 같다.
신경망 모델링부가 모델링된 입력 이미지 데이터를 출력한다(S1000).
호스트 컴퓨터가 훈련용 데이터를 입력받고, 신경망 모델링부로부터 모델링된 입력 이미지 데이터를 입력받는다(S2000).
호스트 컴퓨터가 상기 훈련용 데이터 및 상기 모델링된 입력 이미지 데이터에 비-이상성 모델링 훈련 알고리즘을 적용하여 훈련하고(S3000), 가중치 매트릭스를 추출한다(S4000).
필드 프로그래머블 게이트 어레이가 테스팅 데이터 및 상기 가중치 매트릭스를 입력받아(S5000), 프로그래밍하여 입력 이미지 데이터 및 가중치 데이터를 출력한다(S6000).
기계 학습 프로세서가 상기 입력 이미지 데이터 및 상기 가중치 데이터를 인가받아 곱셈 및 누산 동작을 수행하여 입력 이미지를 추론한다(S7000).
도 3 내지 도 13을 참조하여 본 발명의 기계 학습용 아날로그 내적 연산기를 포함한 아날로그 CNN 프로세서를 이용하여 손글씨 숫자를 인식하는 다른 실시예의 동작을 상세하게 설명하면 다음과 같다.
도 10에서 보는 바와 같이, 필드 프로그래머블 게이트 어레이(field programmable gate array, FPGA)는 테스팅 데이터인 인식 대상 손글씨 숫자를 입력받고, 호스트 컴퓨터로부터 훈련 완료된 가중치 데이터를 입력받아, 내장된 복수개의 다양한 논리 소자를 이용하여 활자 인식용 용도에 맞게 프로그래밍하여 입력 이미지 데이터 및 가중치 데이터를 출력한다.
호스트 컴퓨터는 도 9에서와는 다르게, 훈련용 데이터를 입력받고, 신경망 모델링부로부터 가로 및 세로 방향 공간을 줄이는 연산인 풀링(pooling) 과정 및 플랫팅(flatting) 과정을 거쳐 생성된 입력 이미지 데이터를 입력받는다.
호스트 컴퓨터는 입력받은 훈련용 데이터 및 모델링된 입력 이미지 데이터를 본 발명의 다른 실시예에 따른 비-이상성 모델링 훈련 알고리즘에 적용하여 훈련하고 가중치 매트릭스를 추출한다.
도 11에서 보는 바와 같이, 28x28 입력 이미지는 3x3 커널에 의해 26x26 출력 특징(feature)으로 축소되고, 26x26 출력 특징은 3x3 커널에 의해 24x24 출력 특징으로 축소된다.
24x24 출력 특징은 2x2 풀링 과정에 의해 12x12 출력 특징으로 축소되고, 12x12 출력 특징은 플랫팅 과정에 의해 720개의 가속기 노드가 10개로 축소된다.
상기 비-이상성 모델링 훈련 알고리즘의 동작은 다음과 같다.
도 13에서 보는 바와 같이, 본 발명의 비-이상성 모델링 훈련 알고리즘의 동작은 소프트웨어 계산과 하드웨어 계산을 포함한다.
소프트웨어 계산은 신경망 아날로그 가속기가 복수개의 훈련 데이터를 인가받아 모델을 생성하고 훈련하는 단계에서 시작한다.
모델 테스팅부가 신경망 아날로그 가속기에서 훈련된 복수개의 훈련 데이터를 인가받고 테스트 데이터를 인가받아 테스팅한다.
제어 로직(6000)은 테스팅 동작이 완료되었는지 판단하여, 긍정인 경우 가중치 데이터를 하드웨어인 아날로그 CNN 프로세서로 전달하고, 부정인 경우 신경망 아날로그 가속기로 피드백시켜 재훈련시킨다.
테스팅 동작이 완료되어 가중치 데이터가 전달된 아날로그 CNN 프로세서에서는 하드웨어 계산을 수행한다.
즉, 기계 학습 프로세서의 일종인 아날로그 CNN 프로세서는 모델 테스팅부로부터 가중치 데이터를 전달받아 별도의 코어 로직 없이 메모리 상에서 곱셈 및 누산 동작을 수행하여, 입력 이미지를 추론한다.
이를 통해, 본 발명의 기계 학습용 아날로그 내적 연산기를 포함한 아날로그 CNN 프로세서를 이용하여 손글씨 숫자를 인식하는 다른 실시예는 아날로그 내적 연산기의 단점인 비선형성 및 PVT 변동에 의한 연산 결과의 불확정성 없이 안정적으로 동작하게 된다.
도 14는 도 12에 도시된 기계 학습용 아날로그 내적 연산기를 이용한 학습 방법 중 비-이상성 모델링 훈련 알고리즘의 동작을 설명하기 위한 순서도이다.
도 3 내지 도 14를 참조하여 본 발명의 다른 실시예에 따라 기계 학습용 아날로그 내적 연산기를 이용한 학습 방법 중 비-이상성 모델링 훈련 알고리즘의 동작을 개략적으로 설명하면 다음과 같다.
필드 프로그래머블 게이트 어레이가 테스팅 데이터를 로딩한다(S100).
기계 학습 프로세서 내 제어 로직(6000)이 비-이상성 모델링 훈련을 위한 파라미터를 정의 및 초기화한다(S200).
제어 로직(6000)이 비-이상성 내적 연산 여부를 판단하여(S300), 비-이상성 내적 연산으로 판단된 경우 비-이상성 모델 구축 단계를 수행하고(S400), 비-이상성 내적 연산으로 판단되지 않은 경우 일반적인 모델 구축 단계를 수행한다(S500).
제어 로직(6000)이 해당 레이어가 아웃 레이어인지 여부를 판단하여(S410, S510), 해당 레이어가 아웃 레이어로 판단된 경우, 상기 아웃 레이어에 대하여 모델 컴파일링하고(S600), 제어 로직(6000)이 훈련을 수행한 후에 정확도를 판단한다(S700).
만일, 단계(S410)에서, 해당 레이어가 아웃 레이어로 판단되지 않은 경우, 모델에 레이어를 추가하여 i+1 번째 입력 데이터를 비선형성 변동 함수를 이용하여 산출하고(S420), 제어 로직(6000)이 레이어 개수를 '1' 증가시켜 단계(S410)로 회귀하여 해당 레이어가 아웃 레이어로 판단될 때까지 이후 동작을 반복한다.
도 15는 도 14에 도시된 비-이상성 모델링 훈련 방법 내 단계(S420)의 세부 동작을 설명하기 위한 순서도이다.
도 16은 본 발명의 일 실시예에 따른 기계 학습용 아날로그 내적 연산기를 구동하여 측정한 에너지 효율 및 성능을 종래의 기계 학습용 내적 연산기들과 비교한 표이다.
도 3 내지 도 16을 참조하여 본 발명의 다른 실시예에 따라 기계 학습용 아날로그 내적 연산기를 이용한 학습 방법의 동작을 상세하게 설명하면 다음과 같다.
필드 프로그래머블 게이트 어레이는 테스팅 데이터인 인식 대상 손글씨 숫자를 로딩한다(S100).
여기에서, 인식 대상 손글씨 숫자는 이해의 편의를 위한 하나의 실시예로서, 이미지, 비디오, 오디오 등 기계 학습을 통해 인식하기 위한 다양한 다른 테스팅 데이터일 수 있다.
기계 학습 프로세서 내 제어 로직(6000)은 비-이상성 모델링 훈련을 위한 파라미터를 정의 및 초기화한다(S200).
이때, 비-이상성 모델링 훈련을 위한 파라미터는 비선형성 요소(Nonlinearity factor, nl), 노이즈 요소(noise factor, no), 변동 요소(variation factor, var), 레이어 갯수(layer Number, Layer-num), 노드 갯수(Node Number, Node-num), 비-이상성 내적 연산 여부(Non-ideality, is NI) 등이다.
제어 로직(6000)은 비-이상성 내적 연산 여부를 판단하여(S300), 긍정인 경우 비-이상성 모델 구축 단계(S400)를 수행하고, 부정인 경우 일반적인 모델 구축 단계(S500)를 수행한다.
비-이상성 모델 구축 단계(S400)의 수행 동작은 다음과 같다.
제어 로직(6000)은 해당 레이어가 아웃 레이어인지 여부를 판단하여(S400), 긍정인 경우 모델 컴파일링하고(S600), 훈련을 수행한 후에 정확도 판단 단계(S700)를 수행하고, 부정인 경우 모델에 레이어를 추가하여 i+1 번째 입력 데이터(xi+1)를 다음의 수학식 5로 표현된 비선형성 변동 함수를 이용하여 산출(S420)한 후에, 레이어 개수를 '1' 증가시켜(S430) 단계(S410)로 회귀하여 동작을 반복한다.
[수학식 5]
Figure 112021044755169-pat00014
여기에서, W는 가중치, xi 는 i 번째 입력 데이터, nl 은 비선형성 요소, no 는 노이즈 요소, var 는 변동 요소를 의미한다.
단계(S420)에서, 모델에 레이어를 추가하는 세부 동작은 다음과 같다.
입출력 인터페이스(1000)는 입력 및 가중치에 대한 매트릭스를 입력(S421)받는 동시에, 비-이상성 모델링 훈련을 위한 파라미터(nl, no, var)를 입력받는다(S422).
제어 로직(6000)은 입출력 인터페이스(1000)로부터 가중치 및 입력에 대한 매트릭스와 비-이상성 모델링 훈련을 위한 파라미터(nl, no, var)를 전달받아, 다음의 수학식 6으로 표현된 변동 함수 연산을 수행한다(S423).
[수학식 6]
Figure 112021044755169-pat00015
여기에서, W는 가중치, X는 입력 데이터, nl 은 비선형성 요소, no 는 노이즈 요소, var 는 변동 요소를 의미한다.
제어 로직(6000)은 활성화부(7000)를 활성화할지 여부를 판단하여(S424), 긍정인 경우 활성화부(7000)는 비선형 함수 연산인 활성화 레이어 동작을 수행(S425)한 후에 매트릭스를 출력하고(S426), 부정인 경우 바로 매트릭스를 출력한다(S426).
한편, 단계(S300)에서, 제어 로직(6000)이 비-이상성 내적 연산 여부 판단시, 부정인 경우 수행하는 일반적인 모델 구축 단계(S500)의 수행 동작은 다음과 같다.
제어 로직(6000)은 해당 레이어가 아웃 레이어인지 여부를 판단하여(S510), 긍정인 경우 모델 컴파일링하고(S600), 훈련을 수행한 후에 정확도 판단 단계(S700)를 수행하고, 부정인 경우 모델에 레이어를 추가하여 i+1 번째 입력 데이터(xi+1)를 다음의 수학식 7로 표현된 비선형성 변동 함수를 이용하여 산출한 후에(S520), 레이어 개수를 '1' 증가시켜(S530) 단계(S510)로 회귀하여 동작을 반복한다.
[수학식 7]
Figure 112021044755169-pat00016
여기에서, PVT 함수는 공정- 전압-온도에 의한 변동 함수, W는 가중치, xi 는 i 번째 입력 데이터를 의미하고, 이때 비선형성 요소(nl), 노이즈 요소(no) 및 변동 요소(var)값은 모두 '0'이다.
도 16에서 보는 바와 같이, 본 발명의 기계 학습용 아날로그 내적 연산기의 에너지 효율은 33.3 TOPS/W 로서, 0.09775 TOPS/W 인 디지털 곱셈 및 누산기에 비해 약 340 배 높고, 다른 아날로그 내적 연산기들과 비교할 때도 현저하게 높은 수치임을 보여준다.
또한, 본 발명의 일 실시예에 따른 손글씨 숫자 인식에 대한 기계 학습용 아날로그 내적 연산기의 성능은 97.47 % 로서, 88 % 인 F. N. Buhler의 아날로그 디지털 인터페이스보다 9.47 % 가 높은 수치임을 알 수 있다.
이와 같이, 본 발명은 기계 학습용 내적 연산기의 입력단에 아날로그 회로로 구성된 곱셈 및 누산기를 사용하고, 별도의 누산 블록 없이 전류 도메인에서 바로 누산된 결과가 출력 전압으로 나타나게 할 수 있는 기계 학습용 아날로그 내적 연산기를 제공한다.
이를 통하여, 비교기를 사용할 필요가 없어 소비되는 전력 소모가 감소되어 에너지 효율이 극대화되고, 출력 전압 데이터가 비트로 나누어지지 않으므로 연산 과정에서 데이터의 손실이 없어 신호 대 잡음비를 향상시킬 수 있게 된다.
또한, 디지털 곱셈 및 누산기가 불필요해짐으로써, 비트 수에 비례하여 곱셈 및 누산기의 면적이 증가하지 않게 되어, 기계 학습 인공 신경망의 전체 사이즈가 커지는 현상을 방지하게 된다.
또한, 시간 도메인의 아날로그 신호를 이용하여 연산하므로 높은 선형성을 얻을 수 있고, 입력과 출력의 정보 형태가 전압으로 동일하여 연속적 계산이 가능해 짐에 따라 신경망의 멀티-레이어 연산이 가능해진다.
아울러, 본 발명은 기계 학습의 훈련 단계에서 내적 연산기의 비선형성과 공정, 인가 전압, 온도 등에 의한 변동을 미리 모델링하여 훈련하는 비-이상성 모델링 훈련 알고리즘을 구현하는 기계 학습용 아날로그 내적 연산기를 이용한 학습 방법을 제공한다.
이를 통하여, 아날로그 내적 연산기의 비선형성과 공정, 인가 전압, 온도 등에 의한 변동에 따라 발생하는 연산 결과의 불확정성 없이 안정적으로 동작하게 되어 성능이 현저하게 향상된다.
이상, 일부 예를 들어서 본 발명의 바람직한 여러 가지 실시예에 대해서 설명하였지만, 본 "발명을 실시하기 위한 구체적인 내용" 항목에 기재된 여러 가지 다양한 실시예에 관한 설명은 예시적인 것에 불과한 것이며, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 이상의 설명으로부터 본 발명을 다양하게 변형하여 실시하거나 본 발명과 균등한 실시를 행할 수 있다는 점을 잘 이해하고 있을 것이다.
또한, 본 발명은 다른 다양한 형태로 구현될 수 있기 때문에 본 발명은 상술한 설명에 의해서 한정되는 것이 아니며, 이상의 설명은 본 발명의 개시 내용이 완전해지도록 하기 위한 것으로 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이며, 본 발명은 청구범위의 각 청구항에 의해서 정의될 뿐임을 알아야 한다.
100-1, 100-2,…: 복수개의 전압-시간 변환기
110-1: 제1 외부 전류원
120-1: 제1 인버터부
130-1: 제1 AND 게이트
200-1, 200-2,…: 복수개의 전류 DAC
210-1: 제1 가중치 전류원
220-1: 제1 출력 스위치
CF: 샘플링 커패시터
CMAC: 누산 커패시터

Claims (17)

  1. 신경망에서의 입력 정보를 인버터의 문턱전압을 이용하여 시간 정보로 변환하는 전압-시간 변환기;
    신경망에서의 가중치 정보를 변환한 전류를 상기 시간 정보에 응답하여 공급하는 전류-DAC; 및
    상기 전압-시간 변환기 및 상기 전류-DAC의 복수개 쌍에 병렬 연결되어, 상기 공급되는 전류를 합산하여 출력 전압으로 출력하는 누산 커패시터;
    를 구비하는 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기.
  2. 제1항에 있어서,
    상기 전압-시간 변환기는
    제1 펄스에 응답하여 턴 온되어 입력 전압을 전달하는 제1 입력 스위치;
    제2 펄스에 응답하여 턴 온되어 전원 전류를 전달하는 제2 입력 스위치;
    상기 입력 전압을 전달받아 상기 전달되는 전원 전류를 합하여 샘플링 전압으로 충전하는 샘플링 커패시터;
    일정한 문턱 전압을 가지고, 상기 샘플링 전압을 인가받아 상기 샘플링 전압이 상기 문턱 전압을 초과하면, 하이 레벨값을 출력하는 인버터부; 및
    상기 인버터부의 출력 및 상기 제2 펄스를 입력받아 논리곱 연산하여 입력 펄스를 출력하는 AND 게이트;
    를 구비하는 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기.
  3. 제2항에 있어서,
    상기 입력 펄스는
    상기 전원 전류의 조절에 의해, 상기 시간 정보가 펄스폭이 되는 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기.
  4. 제3항에 있어서,
    상기 샘플링 커패시터는
    상기 전원 전류의 공급에 의해, 상기 샘플링 전압이 선형적으로 증가하는 구간동안 충전되고, 상기 충전 시간은 다음의 수학식과 같이 표현되며,
    Figure 112021044755169-pat00017

    CF 는 샘플링 커패시터의 커패시턴스값, VITH 는 인버터부의 문턱 전압값, ICH 는 전류원에서 공급되는 전류값인 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기.
  5. 제2항에 있어서,
    상기 전류-DAC는
    신경망에서의 가중치를 전류로 변환하여 공급하는 가중치 전류원; 및
    상기 전압-시간 변환기에서 생성된 상기 입력 펄스를 인가받아 턴 온되어, 상기 가중치 전류원으로부터 가중치 전류를 상기 누산 커패시터로 도통시키는 출력 스위치;
    를 구비하는 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기.
  6. 신경망에서의 입력 정보를 인가받아 시간 정보로 변환하고, 가중치 정보를 변환한 전류를 인가받아 상기 시간 정보의 제어에 응답하여 인버터의 문턱전압에 따라 공급 및 합산해서 출력 전압으로 출력하는 곱셈 및 누산기 어레이;
    상기 출력 전압을 인가받아 정규화하고, 신경망의 2차원 데이터를 인가받아 상기 시간 정보의 제어에 응답하여 풀링 동작을 수행하는 정규화 및 풀링부; 및
    상기 정규화 및 풀링부의 출력을 인가받아, 제어 로직의 제1 제어 신호에 응답하여 신경망의 활성화 레이어 동작을 수행하는 활성화부;
    를 구비하는 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기를 이용한 기계 학습 프로세서.
  7. 제6항에 있어서,
    호스트 컴퓨터로부터 입력 데이터 및 가중치 데이터를 로드하는 입출력 인터페이스;
    상기 로드된 입력 데이터 중 이미지에 대한 입력 데이터를 임시 저장하는 이미지 버퍼; 및
    상기 로드된 가중치 데이터 중 이미지에 대한 가중치 데이터를 임시 저장하는 가중치 버퍼;
    를 더 구비하는 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기를 이용한 기계 학습 프로세서.
  8. 제7항에 있어서,
    상기 이미지 버퍼는
    상기 제어 로직의 제2 제어 신호에 응답하여 상기 임시 저장된 입력 데이터에 상기 정규화 및 풀링부의 출력을 덮어쓰는 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기를 이용한 기계 학습 프로세서.
  9. 제7항에 있어서,
    상기 곱셈 및 누산기 어레이는
    복수개의 곱셈 및 누산 셀을 구비하고, 상기 복수개의 곱셈 및 누산 셀 중 마지막 셀은,
    상기 입력 데이터를 인가받아 DA 변환 및 증폭하여 입력전압을 출력하는 입력전압 발생부;
    상기 입력 전압을 상기 인버터의 문턱전압을 이용하여 상기 시간 정보로 변환하는 전압-시간 변환기;
    상기 가중치를 변환한 전류를 상기 시간 정보에 응답하여 공급하는 전류-DAC; 및
    상기 전압-시간 변환기 및 상기 전류-DAC의 복수개 쌍에 병렬 연결되어, 상기 공급되는 전류를 합산하여 상기 출력 전압으로 출력하는 누산 커패시터;
    를 포함하는 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기를 이용한 기계 학습 프로세서.
  10. 제9항에 있어서,
    상기 입력전압 발생부는
    상기 입력 데이터를 인가받아 디지털-아날로그 변환하여 프리 입력전압을 출력하는 DA 컨버터;
    상기 DA 컨버터에 병렬 연결되어 상기 프리 입력전압을 충전하는 입력 커패시터; 및
    상기 입력 커패시터에 병렬 연결되어 상기 프리 입력전압을 인가받아 증폭하여 상기 입력전압을 출력하는 OP AMP;
    를 구비하는 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기를 이용한 기계 학습 프로세서.
  11. 호스트 컴퓨터가 훈련용 데이터를 입력받고, 신경망 모델링부로부터 모델링된 입력 이미지 데이터를 입력받는 단계;
    상기 호스트 컴퓨터가 상기 훈련용 데이터 및 상기 모델링된 입력 이미지 데이터에 비-이상성 모델링 훈련 알고리즘을 적용하여 훈련하고 가중치 매트릭스를 추출하는 단계;
    필드 프로그래머블 게이트 어레이가 테스팅 데이터 및 상기 가중치 매트릭스를 입력받아, 프로그래밍하여 입력 이미지 데이터 및 가중치 데이터를 출력하는 단계; 및
    기계 학습 프로세서가 상기 입력 이미지 데이터 및 상기 가중치 데이터를 인가받아 곱셈 및 누산 동작을 수행하여 입력 이미지를 추론하는 단계;
    를 포함하는 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기를 이용한 학습 방법.
  12. 제 11 항에 있어서,
    상기 비-이상성 모델링 훈련 알고리즘은
    (a) 상기 필드 프로그래머블 게이트 어레이가 상기 테스팅 데이터를 로딩하는 단계;
    (b) 상기 기계 학습 프로세서 내 제어 로직이 비-이상성 모델링 훈련을 위한 파라미터를 정의 및 초기화하는 단계;
    (c) 상기 제어 로직이 비-이상성 내적 연산 여부를 판단하는 단계; 및
    (d) 비-이상성 내적 연산으로 판단된 경우 비-이상성 모델 구축 단계를 수행하고, 비-이상성 내적 연산으로 판단되지 않은 경우 일반적인 모델 구축 단계를 수행하는 단계;
    를 포함하는 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기를 이용한 학습 방법.
  13. 제 12 항에 있어서,
    상기 (d) 단계 이후에,
    (e) 상기 제어 로직이 해당 레이어가 아웃 레이어인지 여부를 판단하는 단계;
    를 더 포함하는 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기를 이용한 학습 방법.
  14. 제 13 항에 있어서,
    상기 (e) 단계에서,
    상기 해당 레이어가 아웃 레이어로 판단된 경우,
    상기 아웃 레이어에 대하여 모델 컴파일링하는 단계; 및
    상기 제어 로직이 훈련을 수행한 후에 정확도를 판단하는 단계;
    를 더 포함하는 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기를 이용한 학습 방법.
  15. 제 13 항에 있어서,
    상기 (d) 단계에서,
    상기 비-이상성 모델 구축 단계는,
    상기 해당 레이어가 아웃 레이어로 판단되지 않은 경우, 모델에 레이어를 추가하여 i+1 번째 입력 데이터를 다음의 수학식으로 표현된 비선형성 변동 함수를 이용하여 산출하는 단계;
    Figure 112021044755169-pat00018

    (W는 가중치, xi 는 i 번째 입력 데이터, nl 은 비선형성 요소, no 는 노이즈 요소, var 는 변동 요소) 및
    상기 제어 로직이 레이어 개수를 '1' 증가시켜 상기 (e) 단계로 회귀하는 단계;
    를 포함하는 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기를 이용한 학습 방법.
  16. 제 15 항에 있어서,
    상기 모델에 레이어를 추가하는 단계는,
    (a) 입출력 인터페이스가 입력 및 가중치에 대한 매트릭스와 비-이상성 모델링 훈련을 위한 파라미터를 입력받는 단계;
    (b) 상기 제어 로직이 상기 매트릭스 및 상기 파라미터를 전달받아, 다음의 수학식으로 표현된 변동 함수 연산을 수행하는 단계;
    Figure 112021044755169-pat00019

    (W는 가중치, X는 입력 데이터, nl 은 비선형성 요소, no 는 노이즈 요소, var 는 변동 요소)
    (c) 상기 제어 로직이 활성화부를 활성화할지 여부를 판단하는 단계; 및
    (d) 상기 활성화부를 활성화할 것으로 판단된 경우 상기 활성화부가 활성화 레이어 동작을 수행한 후에 매트릭스를 출력하고, 상기 활성화부를 활성화할 것으로 판단되지 않은 경우 바로 매트릭스를 출력하는 단계;
    를 포함하는 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기를 이용한 학습 방법.
  17. 제 13 항에 있어서,
    상기 (d) 단계에서,
    상기 일반적인 모델 구축 단계는,
    상기 해당 레이어가 아웃 레이어로 판단되지 않은 경우, 모델에 레이어를 추가하여 i+1 번째 입력 데이터를 다음의 수학식으로 표현된 비선형성 변동 함수를 이용하여 산출하는 단계;
    Figure 112021044755169-pat00020

    (W는 가중치, xi 는 i 번째 입력 데이터) 및
    상기 제어 로직이 레이어 개수를 '1' 증가시켜 상기 (e) 단계로 회귀하는 단계;
    를 포함하는 것을 특징으로 하는,
    기계 학습용 아날로그 내적 연산기를 이용한 학습 방법.
KR1020210049917A 2021-04-16 2021-04-16 기계 학습용 아날로그 내적 연산기, 이를 이용한 기계 학습 프로세서 및 학습 방법 KR102514932B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210049917A KR102514932B1 (ko) 2021-04-16 2021-04-16 기계 학습용 아날로그 내적 연산기, 이를 이용한 기계 학습 프로세서 및 학습 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210049917A KR102514932B1 (ko) 2021-04-16 2021-04-16 기계 학습용 아날로그 내적 연산기, 이를 이용한 기계 학습 프로세서 및 학습 방법

Publications (2)

Publication Number Publication Date
KR20220143423A KR20220143423A (ko) 2022-10-25
KR102514932B1 true KR102514932B1 (ko) 2023-03-29

Family

ID=83803608

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210049917A KR102514932B1 (ko) 2021-04-16 2021-04-16 기계 학습용 아날로그 내적 연산기, 이를 이용한 기계 학습 프로세서 및 학습 방법

Country Status (1)

Country Link
KR (1) KR102514932B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115729189B (zh) * 2022-11-21 2024-02-27 无锡雪浪数制科技有限公司 一种融合数据模型和机理模型的生产控制方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008129033A (ja) 2006-11-16 2008-06-05 Funai Electric Co Ltd 撮像装置
US10580492B2 (en) * 2017-09-15 2020-03-03 Silicon Storage Technology, Inc. System and method for implementing configurable convoluted neural networks with flash memories
KR20210029071A (ko) * 2019-09-05 2021-03-15 에스케이하이닉스 주식회사 Mac 연산 동작을 수행하는 비휘발성 메모리 장치

Also Published As

Publication number Publication date
KR20220143423A (ko) 2022-10-25

Similar Documents

Publication Publication Date Title
CN112183739B (zh) 基于忆阻器的低功耗脉冲卷积神经网络的硬件架构
KR20210144417A (ko) 인-메모리 프로세싱을 수행하는 장치 및 이를 포함하는 컴퓨팅 장치
US11620505B2 (en) Neuromorphic package devices and neuromorphic computing systems
KR20180028966A (ko) 신경망 하드웨어 가속기 아키텍처 및 그 동작 방법
US20210049448A1 (en) Neural network and its information processing method, information processing system
WO2019100036A1 (en) Memristive neural network computing engine using cmos-compatible charge-trap-transistor (ctt)
CN111448573A (zh) 用于混合信号计算的系统和方法
CN105637539A (zh) 用于修改神经动态的自动化方法
CN114402339A (zh) 以存储器内计算阵列进行神经网络的卷积层的并行处理
KR102514932B1 (ko) 기계 학습용 아날로그 내적 연산기, 이를 이용한 기계 학습 프로세서 및 학습 방법
CN114207628A (zh) 通过调整存储器内计算阵列的列阈值来执行xnor等效运算
JP2021047530A (ja) 処理装置および推論システム
CN106133763B (zh) 可塑性突触管理
Apolinario et al. Hardware/software co-design with adc-less in-memory computing hardware for spiking neural networks
KR102191346B1 (ko) 버스트 스파이크에 기반한 스파이킹 신경망 생성 방법 및 스파이킹 신경망 기반 추론 장치
US11803742B2 (en) Artificial neural networks
Wang et al. Deep neural network mapping and performance analysis on tiled rram architecture
CN114861902A (zh) 处理单元及其操作方法、计算芯片
US20210049462A1 (en) Computer system and model training method
KR102420356B1 (ko) 인공지능 네트워크를 사용하여 재난을 감지하기 위한 전자 장치
US20040083193A1 (en) Expandable on-chip back propagation learning neural network with 4-neuron 16-synapse
Dadras et al. An efficient analog convolutional neural network hardware accelerator enabled by a novel memoryless architecture for insect-sized robots
KR20190045044A (ko) 뉴럴 네트워크 변환 방법 및 장치
Eberhardt et al. Considerations for hardware implementations of neural networks
US20240202513A1 (en) Compact CMOS Spiking Neuron Circuit that works with an Analog Memory-Based Synaptic Array

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right