KR20240060522A - Neuromorphic device implementing neural network and operation method of the same - Google Patents
Neuromorphic device implementing neural network and operation method of the same Download PDFInfo
- Publication number
- KR20240060522A KR20240060522A KR1020240006036A KR20240006036A KR20240060522A KR 20240060522 A KR20240060522 A KR 20240060522A KR 1020240006036 A KR1020240006036 A KR 1020240006036A KR 20240006036 A KR20240006036 A KR 20240006036A KR 20240060522 A KR20240060522 A KR 20240060522A
- Authority
- KR
- South Korea
- Prior art keywords
- neural network
- audio signal
- mel
- layer
- data
- Prior art date
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 113
- 238000000034 method Methods 0.000 title claims description 32
- 230000005236 sound signal Effects 0.000 claims abstract description 78
- 230000015654 memory Effects 0.000 claims abstract description 65
- 230000004044 response Effects 0.000 claims description 8
- 238000012549 training Methods 0.000 abstract description 7
- 239000010410 layer Substances 0.000 description 113
- 210000000225 synapse Anatomy 0.000 description 40
- 230000006870 function Effects 0.000 description 29
- 210000002569 neuron Anatomy 0.000 description 29
- 238000004364 calculation method Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 19
- 210000005215 presynaptic neuron Anatomy 0.000 description 18
- 230000001242 postsynaptic effect Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 14
- 239000011159 matrix material Substances 0.000 description 13
- 230000004913 activation Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000004590 computer program Methods 0.000 description 8
- 230000000946 synaptic effect Effects 0.000 description 7
- 210000004027 cell Anatomy 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000005291 magnetic effect Effects 0.000 description 4
- 210000004556 brain Anatomy 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- 230000001537 neural effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000003518 presynaptic effect Effects 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 206010037660 Pyrexia Diseases 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 210000003050 axon Anatomy 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003925 brain function Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 239000005387 chalcogenide glass Substances 0.000 description 1
- 150000004770 chalcogenides Chemical class 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000003302 ferromagnetic material Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000006386 memory function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 210000000653 nervous system Anatomy 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 239000012782 phase change material Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 229910000314 transition metal oxide Inorganic materials 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
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/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
- G06N3/065—Analogue means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/08—Speech classification or search
- G10L15/16—Speech classification or search using artificial neural networks
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/28—Constructional details of speech recognition systems
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/02—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using spectral analysis, e.g. transform vocoders or subband vocoders
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/04—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis using predictive techniques
- G10L19/06—Determination or coding of the spectral characteristics, e.g. of the short-term prediction coefficients
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L25/00—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
- G10L25/27—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique
- G10L25/30—Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 characterised by the analysis technique using neural networks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Computational Linguistics (AREA)
- Acoustics & Sound (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Multimedia (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Evolutionary Computation (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Molecular Biology (AREA)
- Neurology (AREA)
- Spectroscopy & Molecular Physics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
뉴럴 네트워크를 구현하는 뉴로모픽 장치로서, 적어도 하나의 프로그램이 저장된 메모리; 크로스바 어레이 회로를 포함하는 온-칩 메모리(on-chip memory); 및 상기 적어도 하나의 프로그램을 실행함으로써 상기 뉴럴 네트워크를 구동하는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 오디오 신호를 수신하고, 소정의 학습 데이터에 기초하여 학습된 상기 뉴럴 네트워크에 상기 오디오 신호를 입력하여 음성 인식 결과를 출력하며, 상기 뉴럴 네트워크는, 상기 오디오 신호를 시간 대역에서 주파수 대역으로 변환하여 주파수 신호를 생성하는 푸리에 변환 레이어, 상기 주파수 신호로부터 멜 스펙트로그램을 생성하는 멜 생성 레이어 및 상기 멜 스펙트로그램의 음성 특징에 기초하여 상기 음성 인식 결과를 출력하는 출력 레이어를 포함할 수 있다.A neuromorphic device implementing a neural network, comprising: a memory storing at least one program; on-chip memory including crossbar array circuitry; and at least one processor that drives the neural network by executing the at least one program, wherein the at least one processor receives an audio signal and transmits the neural network to the neural network learned based on predetermined training data. An audio signal is input and a voice recognition result is output, and the neural network includes a Fourier transform layer that converts the audio signal from a time band to a frequency band to generate a frequency signal, and a Mel generator that generates a Mel spectrogram from the frequency signal. It may include an output layer that outputs the voice recognition result based on the voice characteristics of the layer and the mel spectrogram.
Description
본 발명은 뉴럴 네트워크를 구현하는 뉴로모픽 장치 및 그 동작 방법에 관한 것으로, 보다 상세하게는 클라우드 서버 또는 물리적 서버를 이용하지 않고 Edge AI 칩을 이용하여 음성 인식을 수행하는 시스템 및 그 동작 방법에 관한 것이다.The present invention relates to a neuromorphic device implementing a neural network and a method of operating the same. More specifically, to a system that performs voice recognition using an edge AI chip without using a cloud server or physical server and a method of operating the same. It's about.
인터넷 기술의 발전과 더불어, 사람과 컴퓨터 장치와의 인터랙션은 더욱 빈번해지고 있다. 사람의 발화를 통한 컴퓨터 장치와의 인터랙션 과정에서 자연 언어를 정확하게 인식하여 사용자의 의도를 결정하는 것이 매우 중요해지고 있다.With the development of Internet technology, interaction between people and computer devices is becoming more frequent. In the process of interacting with a computer device through human speech, it has become very important to accurately recognize natural language and determine the user's intention.
그러나, 현재 음성 인식은 클라우드 환경에서 이루어지고 있으며, 클라우드 기반의 음성 인식 시스템의 경우, 입력된 음성이 클라우드로 전송해야 하므로 실시간 음성 인식에는 한계가 있다. 특히, 음성 인식 시점에 통신 연결이 불안하거나, 통신 연결에 문제가 생기는 경우 음성 인식 자체가 불가능해지는 문제가 있다.However, voice recognition is currently carried out in a cloud environment, and in the case of cloud-based voice recognition systems, real-time voice recognition has limitations because the input voice must be transmitted to the cloud. In particular, if the communication connection is unstable at the time of voice recognition or a problem occurs in the communication connection, there is a problem in which voice recognition itself becomes impossible.
전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.The above-mentioned background technology is technical information that the inventor possessed for deriving the present invention or acquired in the process of deriving the present invention, and cannot necessarily be said to be known art disclosed to the general public before filing the application for the present invention.
본 개시의 목적은 뉴럴 네트워크를 구현하는 뉴로모픽 장치 및 그 동작 방법을 제공하는 데 있다. 본 개시가 해결하고자 하는 과제는 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 본 발명의 기재로부터 당해 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있고, 본 개시의 실시예에 의해 보다 분명하게 이해될 것이다. 또한, 본 개시가 해결하고자 하는 과제 및 장점들은 특허 청구범위에 나타난 수단 및 그 조합에 의해 실현될 수 있음을 알 수 있을 것이다.The purpose of the present disclosure is to provide a neuromorphic device that implements a neural network and a method of operating the same. The problem to be solved by the present disclosure is not limited to the technical problems mentioned above, and other technical problems not mentioned can be clearly understood by those skilled in the art from the description of the present invention. The present disclosure will be understood more clearly by the examples. In addition, it will be appreciated that the problems and advantages to be solved by the present disclosure can be realized by the means and combinations thereof indicated in the patent claims.
전술한 기술적 과제를 해결하기 위한 수단으로서, 본 개시의 제1 측면은, 적어도 하나의 프로그램이 저장된 메모리; 크로스바 어레이 회로를 포함하는 온-칩 메모리(on-chip memory); 및 상기 적어도 하나의 프로그램을 실행함으로써 상기 뉴럴 네트워크를 구동하는 적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는, 오디오 신호를 수신하고, 소정의 학습 데이터에 기초하여 학습된 뉴럴 네트워크에 상기 오디오 신호를 입력하여 음성 인식 결과를 출력하며, 상기 뉴럴 네트워크는, 상기 오디오 신호를 시간 대역에서 주파수 대역으로 변환하여 주파수 신호를 생성하는 푸리에 변환 레이어, 상기 주파수 신호로부터 멜 스펙트로그램을 생성하는 멜 생성 레이어 및 상기 멜 스펙트로그램의 음성 특징에 기초하여 상기 음성 인식 결과를 출력하는 출력 레이어를 포함하는, 뉴로모픽 장치를 제공할 수 있다.As a means for solving the above-described technical problem, a first aspect of the present disclosure includes: a memory storing at least one program; on-chip memory including crossbar array circuitry; and at least one processor that drives the neural network by executing the at least one program, wherein the at least one processor receives an audio signal and transmits the audio to a neural network learned based on predetermined training data. A voice recognition result is output by inputting a signal, and the neural network includes a Fourier transform layer that converts the audio signal from a time band to a frequency band to generate a frequency signal, and a Mel generation layer that generates a Mel spectrogram from the frequency signal. and an output layer that outputs the voice recognition result based on the voice characteristics of the Mel spectrogram.
본 개시의 제2 측면은, 오디오 신호를 수신하는 단계; 및 소정의 학습 데이터에 기초하여 학습된 뉴럴 네트워크에 상기 오디오 신호를 입력하여 음성 인식 결과를 출력하는 단계;를 포함하고, 상기 뉴럴 네트워크는, 상기 오디오 신호를 시간 대역에서 주파수 대역으로 변환하여 주파수 신호를 생성하는 푸리에 변환 레이어, 상기 주파수 신호로부터 멜 스펙트로그램을 생성하는 멜 생성 레이어 및 상기 멜 스펙트로그램의 음성 특징에 기초하여 상기 음성 인식 결과를 출력하는 출력 레이어를 포함하는, 뉴럴 네트워크를 구현하는 뉴로모픽 장치를 동작하는 방법을 제공할 수 있다.A second aspect of the present disclosure includes receiving an audio signal; And inputting the audio signal to a neural network learned based on predetermined learning data to output a voice recognition result, wherein the neural network converts the audio signal from a time band to a frequency band to produce a frequency signal. A new layer that implements a neural network, including a Fourier transform layer that generates a Mel, a Mel generation layer that generates a Mel spectrogram from the frequency signal, and an output layer that outputs the voice recognition result based on the voice characteristics of the Mel spectrogram. A method of operating a lomorphic device may be provided.
본 개시의 제 3 측면은, 제 2 측면의 방법을 컴퓨터에서 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.A third aspect of the present disclosure may provide a computer-readable recording medium recording a program for executing the method of the second aspect on a computer.
이 외에도, 본 발명을 구현하기 위한 다른 방법, 다른 장치 및 상기 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 더 제공될 수 있다.In addition, another method for implementing the present invention, another device, and a computer-readable recording medium recording a program for executing the method may be further provided.
전술한 것 외의 다른 측면, 특징, 이점이 이하의 도면, 특허 청구범위 및 발명의 상세한 설명으로부터 명확해질 것이다.Other aspects, features and advantages in addition to those described above will become apparent from the following drawings, claims and detailed description of the invention.
전술한 본 개시의 과제 해결 수단에 의하면, 서버에의 의존도가 낮고 통신 비용이 절감되며 개인 정보에 대한 보안이 향상된 뉴로모픽 장치를 제공할 수 있다.According to the means for solving the problems of the present disclosure described above, it is possible to provide a neuromorphic device that is less dependent on servers, reduces communication costs, and improves security for personal information.
또한, 본 개시의 과제 해결 수단에 따르면, 데이터 송수신에 따른 병목 현상을 방지하여 속도가 향상된 뉴로모픽 장치를 제공할 수 있다.In addition, according to the problem solving means of the present disclosure, it is possible to provide a neuromorphic device with improved speed by preventing bottlenecks due to data transmission and reception.
실시예들에 의한 효과가 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 본 발명의 기재로부터 당해 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.The effects of the examples are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description of the present invention.
도 1은 일 실시예에 따른 뉴로모픽 칩 구조를 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 완전 연결 계층(Fully-connected Neural Network, FCNN)의 아키텍처를 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 뉴로모픽 장치의 하드웨어 구성을 도시한 블록도이다.
도 4a 내지 도 4b는 폰 노이만(Von Neumann) 구조와 PIM(Processing-In Memory) 구조를 비교하기 위한 예시도이다.
도 5a 내지 도 5b는 일 실시예에 따른 뉴럴 네트워크의 동작 방법을 설명하기 위한 도면이다.
도 6a 내지 도 6b는 일 실시예에 따른 벡터-행렬 곱셈과 뉴럴 네트워크에서 수행되는 연산을 비교하기 위한 도면이다.
도 7은 일 실시예에 따른 뉴럴 네트워크에서 컨벌루션 연산이 수행되는 예시를 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 뉴럴 네트워크의 구현 예시도이다.
도 9는 일 실시예에 따른 크로스바 어레이 회로의 구현 예시도이다.
도 10은 일 실시예에 따른 뉴로모픽 장치를 동작하는 방법의 흐름도이다.
도 11은 본 발명의 일 실시예에 따른 뉴로모픽 장치의 블록도이다.Figure 1 is a diagram for explaining a neuromorphic chip structure according to an embodiment.
FIG. 2 is a diagram illustrating the architecture of a fully-connected neural network (FCNN) according to an embodiment.
Figure 3 is a block diagram showing the hardware configuration of a neuromorphic device according to an embodiment.
Figures 4a and 4b are exemplary diagrams for comparing the von Neumann structure and the PIM (Processing-In Memory) structure.
5A to 5B are diagrams for explaining a method of operating a neural network according to an embodiment.
6A to 6B are diagrams for comparing vector-matrix multiplication and operations performed in a neural network according to one embodiment.
FIG. 7 is a diagram for explaining an example of a convolution operation being performed in a neural network according to an embodiment.
Figure 8 is an example of a neural network implementation according to an embodiment.
Figure 9 is an exemplary implementation diagram of a crossbar array circuit according to an embodiment.
Figure 10 is a flowchart of a method of operating a neuromorphic device according to one embodiment.
Figure 11 is a block diagram of a neuromorphic device according to an embodiment of the present invention.
본 발명을 설명함에 있어 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략할 수 있으며, 다르게 정의되지 않는 한 본 명세서에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다.In describing the present invention, if it is judged that a detailed description of related known technology may obscure the gist of the present invention, the detailed description may be omitted, and unless otherwise defined, all terms used in this specification refer to the present invention. It has the same meaning as generally understood by those with ordinary knowledge in the relevant technical field.
본 명세서에의 "일 실시예에 따른", "일 실시예에 관한" 또는 "일 실시예의 구현에 따라" 등의 어구는 반드시 모두 동일한 실시 예를 가리키는 것은 아니다.Phrases such as “according to one embodiment,” “related to one embodiment,” or “according to an implementation of an embodiment” in this specification do not necessarily all refer to the same embodiment.
실시예들은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 일부 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나 이는 실시예들을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 실시예들의 사상 및 기술범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 명세서에서 사용한 용어들은 단지 실시예들의 설명을 위해 사용된 것으로, 실시예들을 한정하려는 의도가 아니다.Since the embodiments can be subject to various changes and have various forms, some embodiments will be illustrated in the drawings and described in detail. However, this is not intended to limit the embodiments to a specific disclosed form, and should be understood to include all changes, equivalents, and substitutes included in the spirit and technical scope of the embodiments. The terms used in the specification are merely used to describe the embodiments and are not intended to limit the embodiments.
실시예들에서 사용되는 용어는 본 실시예들에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 실시예들이 속하는 기술 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 부분에서 상세히 그 의미를 기재할 것이다. 따라서 실시예들에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 실시예들 전반에 걸친 내용을 토대로 정의되어야 한다. The terms used in the embodiments are general terms that are currently widely used as much as possible while considering the functions in the embodiments, but this is due to the intention or precedent of technicians working in the technical field to which the embodiments belong, the emergence of new technology, etc. It may vary depending on In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the relevant section. Therefore, the terms used in the embodiments should be defined based on the meaning of the term and the overall content of the embodiments, rather than simply the name of the term.
본 개시의 일부 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. Some embodiments of the present disclosure may be represented by functional block configurations and various processing steps. Some or all of these functional blocks may be implemented in various numbers of hardware and/or software configurations that perform specific functions. For example, the functional blocks of the present disclosure may be implemented by one or more microprocessors, or may be implemented by circuit configurations for certain functions.
또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다.Additionally, for example, functional blocks of the present disclosure may be implemented in various programming or scripting languages. Functional blocks may be implemented as algorithms running on one or more processors. Additionally, the present disclosure may employ conventional technologies for electronic environment setup, signal processing, and/or data processing.
"데이터베이스", “요소”, “수단” 및 “구성”등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다. 또한, 명세서에 기재된 "-부", "-모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.Terms such as “database,” “element,” “means,” and “configuration” may be used broadly and are not limited to mechanical or physical configurations. Additionally, terms such as “-unit” and “-module” used in the specification refer to a unit that processes at least one function or operation, which may be implemented as hardware or software, or as a combination of hardware and software.
또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.Additionally, connection lines or connection members between components shown in the drawings merely exemplify functional connections and/or physical or circuit connections. In an actual device, connections between components may be represented by various replaceable or additional functional connections, physical connections, or circuit connections.
또한, 본 명세서에서 사용되는 '제 1' 또는 '제 2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.Additionally, terms including ordinal numbers such as 'first' or 'second' used in this specification may be used to describe various components, but the components should not be limited by the terms. Terms are used only to distinguish one component from another.
또한, 도면 상의 일부 구성 요소는 그 크기나 비율 등이 다소 과장되어 도시 되었을 수 있다. 또한, 어떤 도면 상에 도시된 구성 요소가 다른 도면 상에는 도시 되지 않을 수 있다.Additionally, some components in the drawing may be depicted with their size or proportions somewhat exaggerated. Additionally, components shown in one drawing may not be shown in other drawings.
명세서 전체에서 '실시예'는 본 개시에서 발명을 용이하게 설명하기 위한 임의의 구분으로서, 실시예 각각이 서로 배타적일 필요는 없다. 예를 들어, 일 실시예에 개시된 구성들은 다른 실시예에 적용 및/또는 구현될 수 있으며, 본 개시의 범위를 벗어나지 않는 한도에서 변경되어 적용 및/또는 구현될 수 있다.Throughout the specification, 'examples' is an arbitrary division for easily explaining the invention in the present disclosure, and each embodiment does not need to be mutually exclusive. For example, configurations disclosed in one embodiment may be applied and/or implemented in another embodiment, and may be applied and/or implemented with changes without departing from the scope of the present disclosure.
또한, 본 개시에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 실시예들을 제한하고자 하는 것은 아니다. 본 개시에서 단수형은 특별히 언급하지 않는 한 복수형도 포함한다. Additionally, the terms used in this disclosure are for describing the embodiments and are not intended to limit the embodiments. In this disclosure, the singular form also includes the plural form unless otherwise specified.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시예들에 대하여 해당 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시의 실시예들은 여러 가지 상이한 형태로 구현될 수 있으며, 본 개시에서 설명하는 실시예에 한정되지 않는다.Below, with reference to the attached drawings, embodiments of the present disclosure will be described in detail so that those skilled in the art can easily implement them. However, embodiments of the present disclosure may be implemented in various different forms and are not limited to the embodiments described in the present disclosure.
이하에서는 이를 기반으로 도면을 참조하여 본 발명을 상세히 설명한다.Hereinafter, the present invention will be described in detail with reference to the drawings.
도 1은 일 실시예에 따른 뉴로모픽 칩 구조를 설명하기 위한 도면이다.Figure 1 is a diagram for explaining a neuromorphic chip structure according to an embodiment.
도 1을 참조하면, 뉴로모픽(Neuromorphic) 칩(1)은 뉴런의 형태를 모방한 회로를 만들어 인간의 뇌 기능을 모사하는 하드웨어이다. 즉, 뉴로모픽 칩(1)은 신경계의 구조를 모방한 컴퓨터 칩을 의미한다.Referring to FIG. 1, a
뉴로모픽 칩(1)은 신경망 연산을 위해 필요한 회로만으로 구성되므로 전력, 면적, 속도 측면에서 수백 배 이상의 이득을 볼 수 있다. 기존의 컴퓨터와 달리 인간의 뇌가 수많은 데이터를 처리하더라도 전력을 많이 소모하지 않는 것과 같이, 뉴로모픽 칩(1)은 이러한 뇌의 작동 방식을 모사하여 뉴런과 시냅스를 잇는 구조가 병렬로 구성되고 데이터 처리를 하지 않을 때 이어졌다 끊어짐으로서 에너지를 절약할 수 있다.Since the neuromorphic chip (1) consists of only the circuits necessary for neural network calculation, it can achieve hundreds of times more gains in terms of power, area, and speed. Unlike conventional computers, the human brain does not consume a lot of power even when processing a large amount of data. The neuromorphic chip (1) mimics the way the brain operates and has a structure connecting neurons and synapses in parallel. Energy can be saved by switching on and off when data is not being processed.
예를 들어, 기존의 컴퓨터인 폰 노이만 구조에서는 데이터가 입력되면 데이터를 순차적으로 처리하기 때문에 정밀하게 작성된 프로그램을 실행하는 데 탁월하나 전력소모 한계를 비롯하여 패턴 인식, 실시간 인식 등에서 효율성이 낮다는 문제가 있다.For example, the von Neumann architecture of the existing computer is excellent for executing precisely written programs because it processes data sequentially when data is input, but has problems such as limitations in power consumption and low efficiency in pattern recognition and real-time recognition. there is.
반면에, 뉴로모픽 칩(1)은 데이터를 0, 1과 같은 디지털이 아닌 다양한 상태가 점진적으로 변하는 아날로그 동작을 사용한다. 즉, 병렬로 구성된 인공 뉴런들은 클럭(Clock) 동작 없이 이벤트 구동 방식으로 작동된다. 따라서 기존 컴퓨터가 직관적으로 인식하기 어려운 비정형적인 문자, 음성, 영상 등을 효율적으로 처리할 수 있다. 구체적으로, 신경세포인 뉴런과 연결선인 시냅스를 실리콘 트랜지스터 회로와 메모리 소자로 분산 구현하여 데이터를 병렬로 처리할 수 있다.On the other hand, the
일 실시예에서, 도 1의 뉴로모픽 칩(1)에 이미지, 영상 또는 음성 등 입력 데이터가 입력된 경우, 입력 데이터는 뉴로모픽 칩(1) 내부의 연산을 통해 소정의 출력 데이터가 출력될 수 있다. 소정의 출력 데이터는 입력 데이터의 특징 분류를 통한 음성/이미지/영상 인식 결과를 포함될 수 있다. 예를 들어, 음성 신호가 입력 데이터로 입력된 경우 소정의 출력 데이터는 입력 데이터에 기 설정된 키워드가 포함되어 있는지 여부를 이진 분류(Binary Classification)한 음성 인식 결과를 포함할 수 있다.In one embodiment, when input data such as an image, video, or voice is input to the
한편, 뉴로모픽 칩(1)에 입력되는 데이터는 전술한 이미지, 영상 또는 음성에 제한되지 않으며, 텍스트 등을 다양한 형태의 데이터를 포함할 수 있다.Meanwhile, data input to the
도 2는 일 실시예에 따른 완전 연결 계층(Fully-connected Neural Network, FCNN)의 아키텍처를 설명하기 위한 도면이다.FIG. 2 is a diagram illustrating the architecture of a fully-connected neural network (FCNN) according to an embodiment.
도 2를 참조하면, 완전 연결 계층인 FCNN은 한 층(Layer)의 모든 뉴런이 다음 층의 모든 뉴런과 연결된 상태의 컨볼루션 뉴럴 네트워크(Convolution Neural Network)를 의미한다. 1차원 배열의 형태로 평탄화 된 행렬을 통해 데이터를 분류하는 데 사용되는 계층이다.Referring to Figure 2, FCNN, a fully connected layer, refers to a convolution neural network in which all neurons in one layer are connected to all neurons in the next layer. This is a layer used to classify data through a flattened matrix in the form of a one-dimensional array.
FCNN에서는 각 노드마다 값이 존재하며 각 뉴런마다 가중치(Weight)와 편향 값(Bias)이 존재한다. 한 층에서 다른 층으로 넘어갈 때 각 노드에 가중치를 곱하고 Bias를 더한 값이 다음 층의 노드 값이 되는데, 이 때 해당 산출 값이 특정 조건을 만족하면 활성화 함수를 거친 출력 값을 다음 층의 노드 값으로 입력하여 활성화하고 해당 산출 값이 특정 조건을 만족하지 못하면 활성화 함수를 거쳐 해당 노드를 비활성화하는 활성화 함수(Activation Function)가 개입된다.In FCNN, there is a value for each node and a weight and bias value for each neuron. When moving from one layer to another, the value of each node multiplied by the weight and the bias added becomes the node value of the next layer. At this time, if the calculated value satisfies a specific condition, the output value after going through the activation function is used as the node value of the next layer. It is activated by inputting, and if the calculated value does not meet certain conditions, an activation function is involved to deactivate the node through the activation function.
따라서, 활성화 함수의 종류에 따라 그 출력 값이 달라지므로 필요에 따라 적절한 활성화 함수를 사용하는 것이 중요하다. 대표적으로 ReLU 함수와 Softmax 함수가 있다.Therefore, since the output value varies depending on the type of activation function, it is important to use an appropriate activation function as needed. Representative examples include the ReLU function and Softmax function.
FCNN의 입력은 1차원 배열의 데이터만 가능하므로, 입력 데이터가 세로, 가로, 채널(색상)로 이루어진 3차원 배열의 이미지인 경우 1차원 데이터로 평탄화 시켜 FCNN에 입력해주어야 하는 단점이 있다. 즉, 이미지의 공간적 정보가 무시됨에 따라 형상에 담긴 특징을 추출할 수 없는 단점이 있다. 따라서, FCNN의 경우 음성 데이터 등 1차원 배열의 데이터로 구현할 수 있는 데이터를 입력으로 할 때 활용도가 높을 수 있다. 일 실시예에 따르면, 후술할 뉴럴 네트워크는 FCNN일 수 있다.FCNN's input can only be 1-dimensional array data, so if the input data is a 3-dimensional array image consisting of vertical, horizontal, and channel (color), it has the disadvantage of having to be flattened into 1-dimensional data and then input it to FCNN. In other words, there is a disadvantage in that the features contained in the shape cannot be extracted because the spatial information of the image is ignored. Therefore, in the case of FCNN, it can be highly useful when inputting data that can be implemented as one-dimensional array data, such as voice data. According to one embodiment, the neural network to be described later may be FCNN.
도 3은 일 실시예에 따른 뉴로모픽 장치의 하드웨어 구성을 도시한 블록도이다.Figure 3 is a block diagram showing the hardware configuration of a neuromorphic device according to an embodiment.
뉴로모픽 장치(300)는 PC(personal computer), 서버 디바이스, 모바일 디바이스, 임베디드 디바이스 등의 다양한 종류의 디바이스들로 구현될 수 있고, 구체적인 예로서 뉴럴 네트워크를 이용한 음성 인식, 영상 인식, 영상 분류 등을 수행하는 스마트폰, 태블릿 디바이스, AR(Augmented Reality) 디바이스, IoT(Internet of Things) 디바이스, 자율주행 자동차, 로보틱스, 의료기기 등에 해당될 수 있으나, 이에 제한되지 않는다. 나아가서, 뉴로모픽 장치(300)는 위와 같은 디바이스에 탑재되는 전용 하드웨어 가속기(HW accelerator)에 해당될 수 있고, 뉴로모픽 장치(300)는 뉴럴 네트워크 구동을 위한 전용 모듈인 NPU(neural processing unit), TPU(Tensor Processing Unit), Neural Engine 등과 같은 하드웨어 가속기일 수 있으나, 이에 제한되지 않는다.The
뉴로모픽 장치(300)는 프로세서 및 메모리를 포함할 수 있다. 도 3에 도시된 뉴로모픽 장치(300)에는 본 실시예들와 관련된 구성요소들만이 도시되어 있으며, 뉴로모픽 장치(300)에는 도 3에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당해 기술분야의 통상의 기술자에게 자명하다.
일 실시예에 따른 뉴로모픽 장치(300)는 입출력 인터페이스(310)를 포함할 수 있다.The
일 실시예에 따른 입출력 인터페이스(310)는, 데이터를 뉴로모픽 장치(300) 내부에서 외부 소스로 전송하고 데이터를 외부 소스로부터 뉴로모픽 장치(300) 내부로 수신할 수 있다. 입출력 인터페이스(310)의 신호는 단방향 또는 양방향 신호일 수 있으며 단일 종단(Single-Ended) 또는 차동 모드(Differential-Mode)일 수 있으며 다른 입출력 인터페이스 표준 중 하나를 따를 수 있다.The input/
일 실시예에 따른 입출력 인터페이스(310)는 오디오 수신부를 더 포함할 수 있다. 예를 들어, 오디오 ADC 혹은 DAC를 더 포함할 수 있다. 오디오 수신부는 마이크에서 입력되는 음성을 디지털화 할 수 있으며, 또한, 오디오 수신부는 증폭기가 포함되어 있을 수 있고 다중 샘플링 속도를 지원할 수 있다.The input/
일 실시예에서, 입출력 인터페이스(310)는 뉴로모픽 장치(300) 외부의 오디오 신호를 수신할 수 있다. 또한, 입출력 인터페이스(310)는 뉴럴 네트워크(330)의 출력 값인 음성 인식 결과를 입력 받아 연산 회로(350) 또는 외부의 다른 유닛(미도시)로 전송할 수 있다.In one embodiment, input/
일 실시예에 따른 입출력 인터페이스(310)에는, GPIO(General-Purpose Input/Output), I2S(Integrated Interchip Sound, Inter-IC Sound), I2C(Inter-Integrated Circuit), SPI(Serial Peripheral Interface), UART(Universal asynchronous receiver/transmitter), PWM(Pulse Width Modulation) 등이 더 포함될 수 있다.The input/
일 실시예에 따른 뉴로모픽 장치(300)는 아날로그 장치(320, 340)를 포함할 수 있다.
아날로그 장치(320, 340)는 Edge AI chip에서 안정적인 전원 공급, 시스템의 감시 및 감독을 위한 기능을 제공할 수 있다.The
구체적으로, 아날로그 장치(320, 340)는 감시 제어, 데이터 수집 및 자동 제어에서 전압, 저항, 회전, 압력 등과 같이 연속적인 물리량에 따라 나타나는 파라미터로 작동하는 장치이다. 아날로그 장치(320, 340)는 아날로그 표시 장치 및 아날로그 입출력 장치를 포함할 수 있으며, 아날로그-디지털 컨버터 및 디지털-아날로그 컨버터를 더 포함할 수 있다.Specifically, the
또한, 아날로그 장치(320, 340)는 뉴로모픽 장치(300)의 전원 관리 및 감독 기능을 수행할 수 있다. 아날로그 장치(320, 340)는 저전압 감지기(Low Voltage Detector, LVD)를 더 포함하여, 디지털 전력 공급 장치(VDD)가 안전한 작동 레벨 이하로 떨어지면 POR(Power-On Reset)을 작동하여 뉴로모픽 장치(300)의 불안정한 동작을 방지할 수 있다.Additionally, the
일 실시예에 따른 뉴로모픽 장치(300)는 연산 회로(350)를 포함할 수 있다.The
연산 회로(350)는 MCU(Micro Controller Unit), DMA(Direct Memory Access) 등을 포함할 수 있다.The
MCU는 PIM 구조에서 효율적인 알고리즘을 실행할 수 있도록 제어 및 관리의 역할을 수행할 수 있다. PIM 구조는 MAC(Multiply And Accumulate) 작업의 효율성이 높으므로 본 발명의 일 실시예에 따른 신경망 계산에 적합할 수 있다. PIM 구조에 관하여는 도 4b를 통해 후술하기로 한다.The MCU can play a control and management role to execute efficient algorithms in the PIM structure. The PIM structure has high efficiency in MAC (Multiply And Accumulate) operations, so it may be suitable for neural network calculations according to an embodiment of the present invention. The PIM structure will be described later with reference to FIG. 4B.
DMA는 주변 장치와 메모리 간, 또는 메모리 간의 고속 데이터 전송을 수행할 수 있다. 데이터는 CPU 없이 DMA로 빠르게 이동할 수 있으며 CPU는 다른 작업을 위하여 활용될 수 있다. DMA는 SRAM 내부에 위치하며 신경망의 데이터 이동을 가속화하는 데 기여할 수 있다.DMA can perform high-speed data transfer between peripheral devices and memory, or between memories. Data can be quickly moved to DMA without the CPU and the CPU can be utilized for other tasks. DMA is located inside SRAM and can contribute to accelerating data movement in neural networks.
일 실시예에 따른 뉴로모픽 장치(300)는 Edge AI Chip으로 구현될 수 있다. Edge AI는 시스템에서 생성된 데이터를 기반으로 하는 엣지 컴퓨팅(Edge computing)을 사용하여 하드웨어 장치에서 AI 알고리즘을 실행하는 기술을 의미한다. AI 프로세싱은 주로 막대한 컴퓨팅 용량을 필요로 하는 클라우드 기반 데이터 센터에서 이루어져 서버 의존도가 높다. 반면에 Edge AI를 사용하게 되면 AI 알고리즘 연산의 수행이 로컬(Local)로 이루어져 클라우드(서버)에의 의존도가 낮아지고 이에 따른 통신 비용 또한 절감되며, 민감한 개인 정보가 클라우드에 전송되지 않아 프라이버시가 보호될 수 있다. 따라서, 뉴로모픽 장치(300)를 Edge AI Chip으로 구성함에 따라 비용 절감 및 보안 향상 뿐만 아니라 연산의 수행이 동일한 하드웨어 내에서 즉시 처리되어 높은 응답성을 가지는 시스템을 구현할 수 있다.
도 4a 내지 도 4b는 폰 노이만(Von Neumann) 구조와 PIM(Processing-In Memory) 구조를 비교하기 위한 예시도이다.Figures 4a and 4b are exemplary diagrams for comparing the von Neumann structure and the PIM (Processing-In Memory) structure.
도 4a를 참조하면, 폰 노이만 구조는 존 폰 노이만이 제시한 컴퓨터 구조로써 주기억 장치, 중앙 처리 장치 및 입출력 장치의 전형적인 3단계 구조로 이루어진 프로그램 내장형 컴퓨터 구조이다.Referring to Figure 4a, the von Neumann architecture is a computer architecture proposed by John von Neumann and is a program-embedded computer architecture consisting of a typical three-level structure of a main memory, a central processing unit, and an input/output device.
폰 노이만 구조는, 컴퓨팅 장치에서 다른 작업으로 변경하는 경우 하드웨어(전선 등)를 재배치할 필요 없이 소프트웨어(프로그램)만 변경하면 되므로 범용성이 크게 향상된다는 장점이 있으나, 나열된 명령을 순차적으로 수행하고 그 명령은 일정한 기억 장소의 값을 변경하는 작업으로 구성되기 때문에 고속 컴퓨터의 설계에서 심각한 문제를 일으키게 된다. 이를 폰 노이만 병목(von-Neumann bottleneck)현상이라고 한다.The von Neumann structure has the advantage of greatly improving versatility because only the software (program) needs to be changed without the need to rearrange the hardware (wires, etc.) when changing from one computing device to another, but the listed commands are performed sequentially and the commands are Because it consists of changing the value of a certain memory location, it causes serious problems in the design of high-speed computers. This is called the von-Neumann bottleneck phenomenon.
폰노이만 병목현상을 해결하기 위하여, 메모리를 명령어가 저장되는 곳과 데이터를 저장하는 곳으로 구분한 하버드 아키텍처, 또는 메모리에서 데이터 저장 뿐만 아니라 데이터 연산까지 수행하는 PIM 아키텍처 및 고등동물의 뇌 구조를 모방한 인공신경망 형태의 집적회로로, 연산과 기억 기능이 통합된 유닛을 수없이 많이 구성하여 그물망처럼 병렬적으로 연결한 다음 각 유닛을 이벤트 구동(event-driven) 방식으로 작동시키는 뉴로모픽 컴퓨팅 등이 그 대안으로 제시되고 있다.In order to solve the von Neumann bottleneck, the Harvard architecture divides memory into where instructions are stored and where data is stored, or the PIM architecture that not only stores data in memory but also performs data operations, and imitates the brain structure of higher animals. Neuromorphic computing, which is an integrated circuit in the form of an artificial neural network that consists of numerous units with integrated calculation and memory functions, connects them in parallel like a mesh, and then operates each unit in an event-driven manner, etc. This is being presented as an alternative.
도 4b를 참조하면 PIM 구조는 프로세서 및 컴퓨팅 기능을 갖는 메모리로 구성되는 것을 알 수 있다.Referring to Figure 4b, it can be seen that the PIM structure is composed of a processor and a memory with a computing function.
기존의 폰 노이만 구조에서는 연산을 위해 메모리 내부의 모든 데이터가 프로세서로 이동하는 것과 달리, PIM 구조에서는 프로세서의 명령어가 전달되면 메모리 내에서 연산을 수행하고 결과 데이터만 프로세서에 전송하여 대량의 데이터의 이동이 없어 전술한 폰 노이만 병목현상을 효과적으로 해결할 수 있다. 또한, 전력 소모가 현저히 낮아진다는 장점이 있다.Unlike in the existing von Neumann structure, all data inside the memory is moved to the processor for calculation, in the PIM structure, when the processor's command is delivered, the calculation is performed within the memory and only the result data is sent to the processor, thereby moving a large amount of data. Without this, the aforementioned von Neumann bottleneck can be effectively solved. Additionally, there is an advantage that power consumption is significantly lowered.
다시 도 3으로 돌아와서, 일 실시예에 따른 뉴로모픽 장치(300)는 뉴럴 네트워크(330)를 포함할 수 있다.Returning to FIG. 3 , the
일 실시예에서, 뉴럴 네트워크(330)는 복수의 레이어를 이용하여 입력 데이터에 대한 특징을 추출함으로써 출력 데이터를 출력할 수 있다. 예를 들어, 뉴럴 네트워크(330)는 오디오 신호를 입력 받아 음성 인식 결과를 출력할 수 있다. 전술한 바와 같이, 뉴럴 네트워크(330)는 입력 받은 오디오 신호의 특징을 필터링 또는 분류(Classification)하여 해당 오디오 신호가 특정 키워드를 포함하고 있는지 여부 등 오디오 신호의 유형을 판단하여 음성 인식 결과로 출력할 수 있다. 이 때, 뉴럴 네트워크(330)는 직교 행렬로 구성되며 행 방향을 통해 입력되고 열 방향을 통해 출력이 생성될 수 있다.In one embodiment, the
일 실시예에서, 뉴럴 네트워크(330)는 소정의 학습 데이터에 기초하여 학습된 모델일 수 있다. 뉴럴 네트워크(330)를 구성하는 각 레이어는 가중치 및/또는 바이어스 값을 가지는데 한 레이어의 노드 수는 입력되는 텐서의 크기이므로 한 층마다 수백 또는 수천 개의 노드가 존재할 수 있고 이러한 레이어가 여러 개 쌓이게 되면 다음 레이어의 노드로 연결되는 가중치의 수가 무수히 많아지므로 모든 가중치 및/또는 바이어스 값을 설정해두기에는 어려움이 있다. 따라서 학습을 통하여 방대한 데이터 양에 대하여 분류하고자 하는 바에 가장 최적화 된 레이어(즉, 가중치 및/또는 바이어스)를 찾을 수 있다.In one embodiment, the
예를 들어, 뉴럴 네트워크(330)의 학습 방법으로서 딥러닝은, 손실 함수(Loss Function) 또는 비용 함수(Cost Function), 최적화(Optimization) 및 역전파(Back propagation)의 세 가지 방법의 조합으로 신경망에서 가장 적합한 가중치를 찾아 설정할 수 있다.For example, deep learning as a learning method for the
뉴럴 네트워크(330)는 외부 메모리를 이용하지 않고 온-칩 메모리(on-chip memory)만을 이용하여 연산을 수행할 수 있다. 예를 들면, 뉴럴 네트워크(330)는 외부 메모리(예: 오프칩 메모리 등)를 이용하지 않고 온-칩 메모리만을 이용하여 PIM 기반으로 각 레이어에 대한 연산을 수행함으로써, 오디오 신호를 처리하는 동안 메모리 업데이트 없이 연산을 수행할 수 있다. 구체적으로, 뉴럴 네트워크(330)는 각 메모리 셀과 프로세서가 직접 연결된, PIM 기반의 연산이 이루어질 수 있다.The
다만, PIM은 높은 메모리 대역폭을 필요로 하는데 메모리는 높은 온도에 민감하기 때문에 컴퓨팅 장치가 소모할 수 있는 전력이 제한될 수 있다. 따라서 고성능의 PIM 구조 칩을 생산하기 위해서 새로운 하드웨어 구조가 필요할 수 있고, 이에 따라 제조 비용 등이 높아질 수 있다. 따라서 PIM 구조는 비교적 적은 양 또는 단순한 계산을 수행하는 데에 유리한 구조일 수 있다. 반면, 뉴럴 네트워크(330)는 이러한 PIM 구조의 단점을 극복하기 위하여 멀티비트(Multi-bit) 구현이 가능한 메모리로 구성될 수 있다. 예를 들어, 뉴럴 네트워크(330)는 7 bits 128 analog memory states 구현이 가능한 메모리로 구성될 수 있다. 뉴럴 네트워크(330)를 대용량으로 구성함에 따라, 일반적인 PIM 칩에서 발열 또는 성능저하 등의 문제를 보이는 것과 달리 장시간 사용에도 방대한 양의 데이터 처리를 저전력, 고성능으로 수행할 수 있다.However, PIM requires high memory bandwidth, and since memory is sensitive to high temperatures, the power that a computing device can consume may be limited. Therefore, in order to produce high-performance PIM structure chips, a new hardware structure may be required, which may increase manufacturing costs. Therefore, the PIM structure may be advantageous for performing relatively small amounts or simple calculations. On the other hand, the
도 5a 내지 도 5b는 일 실시예에 따른 뉴럴 네트워크의 동작 방법을 설명하기 위한 도면이다.5A to 5B are diagrams for explaining a method of operating a neural network according to an embodiment.
도 5a를 참조하면, 뉴럴 네트워크는 복수의 코어들을 포함할 수 있으며, 각각의 코어들은 RCA(Resistive Crossbar Memory Arrays)로 구현될 수 있다. 구체적으로, 각각의 코어는 복수의 프리 시냅틱 뉴런(presynaptic neuron, 510), 복수의 포스트 시냅틱 뉴런(postsynaptic neuron, 520), 및 복수의 프리 시냅틱 뉴런(510)과 복수의 포스트 시냅틱 뉴런(520) 사이의 각각의 연결을 제공하는 시냅스(530)를 포함할 수 있다. Referring to FIG. 5A, the neural network may include a plurality of cores, and each core may be implemented as RCA (Resistive Crossbar Memory Arrays). Specifically, each core includes a plurality of presynaptic neurons (510), a plurality of postsynaptic neurons (520), and a plurality of presynaptic neurons (510) and a plurality of postsynaptic neurons (520). It may include a
일 실시예에서 뉴럴 네트워크의 코어는, 4개의 프리 시냅틱 뉴런(510), 4개의 포스트 시냅틱 뉴런(520) 및 16개의 시냅스(530)를 포함하고 있으나, 이들 개수는 다양하게 변형될 수 있다. 프리 시냅틱 뉴런(510)의 개수가 N개(여기서, N은 2 이상의 자연수임)이고, 포스트 시냅틱 뉴런(520)의 개수가 M개(여기서, M은 2 이상의 자연수이고, N과 같거나 다를 수 있음)인 경우, N*M개의 시냅스(530)가 매트릭스 형태로 배열될 수 있다. In one embodiment, the core of the neural network includes 4
구체적으로, 복수의 프리 시냅틱 뉴런(510) 각각과 연결되고 제1 방향(예를 들어, 가로 방향)으로 연장하는 배선(512)과, 복수의 포스트 시냅틱 뉴런(520) 각각과 연결되고 제1 방향과 교차하는 제2 방향(예를 들어, 세로 방향)으로 연장하는 배선(522)이 제공될 수 있다. 이하, 설명의 편의를 위하여, 제1 방향으로 연장하는 배선(512)을 로우 배선(row line)이라 하고, 제2 방향으로 연장하는 배선(522)을 컬럼 배선(column line)이라 하기로 한다. 복수의 시냅스(530)는 로우 배선(512)과 컬럼 배선(522)의 교차점마다 배치되어 대응하는 로우 배선(512)과 대응하는 컬럼 배선(522)을 서로 연결시킬 수 있다.Specifically, a
프리 시냅틱 뉴런(510)은 신호 예컨대, 특정 데이터에 해당하는 신호를 생성하여 로우 배선(512)으로 보내는 역할을 수행하고, 포스트 시냅틱 뉴런(520)은 시냅스 소자(530)를 거친 시냅틱 신호를 컬럼 배선(522)을 통하여 수신하고 처리하는 역할을 수행할 수 있다. 프리 시냅틱 뉴런(510)은 액손(axon)에 대응하고, 포스트 시냅틱 뉴런(520)은 뉴런(neuron)에 대응할 수 있다. 그러나, 프리 시냅틱 뉴런인지 포스트 시냅틱 뉴런인지 여부는 다른 뉴런과의 상대적인 관계에 의해 결정될 수 있다. 예컨대, 프리 시냅틱 뉴런(510)이 다른 뉴런과의 관계에서 시냅틱 신호를 수신하는 경우 포스트 시냅틱 뉴런으로 기능할 수 있다. 유사하게, 포스트 시냅틱 뉴런(520)이 다른 뉴런과의 관계에서 신호를 보내는 경우 프리 시냅틱 뉴런으로 기능할 수 있다. 프리 시냅틱 뉴런(510) 및 포스트 시냅틱 뉴런(520)은 CMOS 등 다양한 회로로 구현될 수 있다.The
프리 시냅틱 뉴런(510)과 포스트 시냅틱 뉴런(520) 사이의 연결은 시냅스(530)를 통하여 이루어질 수 있다. 여기서, 시냅스(530)는 양단에 인가되는 전기적 펄스 예컨대, 전압 또는 전류에 따라 전기적 전도도(electrical conductance) 혹은 웨이트(weight)가 변하는 소자이다.The connection between the
뉴럴 네트워크의 코어는, 시냅스(530)가 가변 저항으로 구성된 ReRAM(Resistive RAM), 시냅스(530)가 강유전체로 구성된 FeRAM(Ferroelectric RAM), 시냅스(530)가 열을 가함에 따라 비정질 상태에서 결정질 상태로 바뀌는 칼코게나이드 유리로 구성된 PRAM(Phase-change RAM), 시냅스(530)가 자성체 소자로 구성된 MRAM(Magnetic RAM), NAND/NOR 플래시 메모리 등 멀티레벨(multi-level) 메모리를 사용하여 구성될 수 있다.The core of the neural network is ReRAM (Resistive RAM), where the
시냅스(530)는 예컨대, 가변 저항 소자를 포함할 수 있다. 가변 저항 소자는 양단에 인가되는 전압 또는 전류에 따라 서로 다른 저항 상태 사이에서 스위칭할 수 있는 소자로서, 복수의 저항 상태를 가질 수 있는 다양한 물질 예컨대, 전이 금속 산화물, 페로브스카이트(perovskite)계 물질 등과 같은 금속 산화물, 칼코게나이드(chalcogenide)계 물질 등과 같은 상변화 물질, 강유전 물질, 강자성 물질 등을 포함하는 단일막 구조 또는 다중막 구조를 가질 수 있다. The
코어의 시냅스(530)는, 셋 동작과 리셋 동작에서 급격한(abrupt) 저항 변화가 없고, 입력되는 전기적 펄스의 개수에 따라 전도도가 점진적으로 변화하는 아날로그 거동(analog behavior)을 보이는 등, 메모리에서의 가변 저항 소자와 구별되는 여러가지 특성을 갖도록 구현될 수 있다. 이는 메모리에서 가변 저항 소자에 요구되는 특성과 뉴럴 네트워크의 코어에서 시냅스(530)에 요구되는 특성이 서로 상이하기 때문이다. The
구체적으로, 뉴로모픽 칩은 코어의 시냅스(530) 아날로그 장치를 통해 다변화된 전압을 인가할 수 있다. 이에 따라 시냅스(530)의 저항값 또는 가중치가 점진적으로 변화될 수 있다.Specifically, the neuromorphic chip can apply diversified voltages through the
위와 같은 뉴럴 네트워크의 동작을 도 5b를 참조하여 설명하면 아래와 같다. 설명의 편의를 위하여 로우 배선(512)을 위쪽에서부터 순서대로 제1 로우 배선(512A), 제2 로우 배선(512B), 제3 로우 배선(512C) 및 제4 로우 배선(512D)이라 칭할 수 있고, 컬럼 배선(522)을 좌측에서부터 순서대로 제1 컬럼 배선(522A), 제2 컬럼 배선(522B), 제3 컬럼 배선(522C) 및 제4 컬럼 배선(522D)이라 칭할 수 있다.The operation of the above neural network is explained with reference to FIG. 5b as follows. For convenience of explanation, the
도 5b를 참조하면, 최초 상태에서, 시냅스(530) 전부는 전도도가 상대적으로 낮은 상태 즉, 고저항 상태에 있을 수 있다. 복수의 시냅스(530)의 적어도 일부가 저저항 상태인 경우, 이들을 고저항 상태로 만드는 초기화 동작이 추가로 필요할 수 있다. 복수의 시냅스(530) 각각은 저항 및/또는 전도도 변화에 요구되는 소정의 임계값을 가질 수 있다. 보다 구체적으로, 각 시냅스(530)의 양단에 소정 임계값보다 작은 크기의 전압 또는 전류가 인가되면 시냅스(530)의 전도도는 변하지 않고, 시냅스(530)에 소정 임계값보다 큰 전압 또는 전류가 인가되면 시냅스(530)의 전도도는 변화할 수 있다.Referring to FIG. 5B, in the initial state, all of the
이 상태에서, 특정 데이터를 특정 컬럼 배선(522)의 결과로 출력하는 동작을 수행하기 위하여, 프리 시냅틱 회로(510)의 출력에 대응하여 특정 데이터에 해당하는 입력 신호가 로우 배선(512)으로 들어올 수 있다. 예를 들어, 입력 신호는 로우 배선(512) 각각에 대한 전기적 펄스의 인가로 나타날 수 있다. 또한, 컬럼 배선(522)은 출력을 위하여 적절한 전압 또는 전류로 구동될 수 있다.In this state, in order to perform an operation of outputting specific data as a result of the
다른 일례로서, 특정 데이터를 출력할 컬럼 배선(522)이 정하여져 있지 않을 수도 있다. 이러한 경우, 특정 데이터에 해당하는 전기적 펄스를 로우 배선(512)으로 인가하면서 컬럼 배선(522) 각각에 흐르는 전류를 측정하여 가장 먼저 소정 임계 전류에 도달하는 컬럼 배선(522) 예컨대, 제3 컬럼 배선(522C)이 이 특정 데이터를 출력한 컬럼 배선(522)이 될 수 있다.As another example, the
이상으로 설명한 방식에 의하여, 서로 다른 데이터가 서로 다른 컬럼 배선(522)에 각각 출력될 수 있다.Using the method described above, different data can be output to
도 6a 내지 도 6b는 일 실시예에 따른 벡터-행렬 곱셈과 뉴럴 네트워크에서 수행되는 연산을 비교하기 위한 도면이다.6A to 6B are diagrams for comparing vector-matrix multiplication and operations performed in a neural network according to one embodiment.
도 6a 내지 도 6b는 일 실시예에 따른 벡터-행렬 곱셈과 뉴럴 네트워크에서 수행되는 연산을 비교하기 위한 도면이다.6A to 6B are diagrams for comparing vector-matrix multiplication and operations performed in a neural network according to one embodiment.
먼저 도 6a를 참조하면, 입력 데이터와 커널 간의 컨벌루션 연산은 벡터-행렬 곱셈(vector-matrix multiplication)을 이용하여 수행될 수 있다. 예를 들어, 입력 데이터의 픽셀 데이터는 행렬 X(610)로 표현될 수 있고, 커널 값들은 행렬 W(611)로 표현될 수 있다. 출력 데이터의 픽셀 데이터는, 행렬 X(610)와 행렬 W(611) 간의 곱셈 연산 결과 값인 행렬 Y(612)로 표현될 수 있다. First, referring to FIG. 6A, the convolution operation between input data and the kernel can be performed using vector-matrix multiplication. For example, pixel data of input data can be expressed as a matrix X (610), and kernel values can be expressed as a matrix W (611). Pixel data of the output data can be expressed as a matrix Y (612), which is the result of a multiplication operation between the matrix X (610) and the matrix W (611).
도 6b를 참조하면, 뉴럴 네트워크의 코어를 이용하여 벡터 곱셈 연산이 수행될 수 있다. 도 6a와 비교하여 설명하면, 입력 데이터의 픽셀 데이터는 코어의 입력 값으로 수신될 수 있으며, 입력 값은 전압(620)일 수 있다. 또한, 커널 값들은 코어의 시냅스 즉, 메모리 셀에 저장될 수 있으며, 메모리 셀에 저장된 커널 값들은 컨덕턴스(621)일 수 있다. 따라서, 코어의 출력 값은, 전압(620) 및 컨덕턴스(621) 간의 곱셈 연산 결과 값인 전류(622)로 표현될 수 있다.Referring to FIG. 6B, a vector multiplication operation can be performed using the core of a neural network. 6A , pixel data of the input data may be received as an input value of the core, and the input value may be a
도 7은 일 실시예에 따른 뉴럴 네트워크에서 컨벌루션 연산이 수행되는 예시를 설명하기 위한 도면이다.FIG. 7 is a diagram for explaining an example of a convolution operation being performed in a neural network according to an embodiment.
뉴럴 네트워크는 오디오 신호(710)를 수신할 수 있고, 뉴럴 네트워크의 코어(700)는 RCA(Resistive Crossbar Memory Arrays)로 구현될 수 있다. 이 때, 오디오 신호(710)는 뉴럴 네트워크의 코어(700)로 구현되는 푸리에 변환 레이어에 의해 시간 대역에서 주파수 대역으로 변환되고, 뉴럴 네트워크의 코어(700)로 구현되는 멜 생성 레이어에 의해 멜 스펙트로그램(mel-spectrogram)으로 변환되어, 상기 멜 스펙트로그램에 대응되는 픽셀 데이터에 대한 컨벌루션 연산을 수행할 수 있다. 따라서, 이하 도 7에 관한 설명에서 오디오 신호(710)의 픽셀 데이터는, 변환된 주파수 대역의 픽셀 데이터 또는 생성된 멜 스펙트로그램의 픽셀 데이터를 의미할 수 있다.The neural network can receive an
일 실시예에서 코어(700)가 NxM 크기의 행렬인 경우(N 및 M은 2 이상의 자연수임), 오디오 신호(710)의 픽셀 데이터 개수는 코어(700)의 열(M)의 개수보다 작거나 같을 수 있다. 오디오 신호(710)의 픽셀 데이터는 부동 소수점 포맷 또는 고정 소수점 포맷의 파라미터일 수 있다.In one embodiment, when the
뉴럴 네트워크는 디지털 신호 형태의 픽셀 데이터를 수신할 수 있으며, DAC(Digital Analog Converter)(720)를 이용하여, 수신된 픽셀 데이터를 아날로그 신호 형태의 전압으로 변환할 수 있다. 오디오 신호(710)의 픽셀 데이터는 1비트, 4비트 및 8비트 해상도(resolution) 등 다양한 비트 해상도 값을 가질 수 있다. 일 실시예에서, 뉴럴 네트워크는 DAC(720)를 이용하여 픽셀 데이터를 전압으로 변환한 후, 전압을 코어(700)의 입력 값(701)으로 수신할 수 있다.The neural network can receive pixel data in the form of a digital signal, and can convert the received pixel data into voltage in the form of an analog signal using a DAC (Digital Analog Converter) 720. Pixel data of the
또한, 뉴럴 네트워크의 코어(700)에는 학습된 커널 값들이 저장될 수 있다. 커널 값들은 코어의 메모리 셀에 저장될 수 있으며 메모리 셀에 저장된 커널 값들은 컨덕턴스(702)일 수 있다. 이 때, 뉴럴 네트워크는 전압(701)과 컨덕턴스(702) 간의 벡터 곱셈 연산을 수행함으로써 출력 값을 산출할 수 있으며, 출력 값은 전류(703)로 표현될 수 있다. 즉, 뉴럴 네트워크는 코어(700)를 이용하여 오디오 신호와 커널 간의 컨벌루션 연산 결과와 동일한 결과 값을 출력할 수 있다.Additionally, learned kernel values may be stored in the
코어(700)에서 출력된 전류(703)는 아날로그 신호이므로, 전류(703)를 다른 코어의 입력 데이터로 사용하기 위해 뉴럴 네트워크는 ADC(Analog Digital Converter)(730)를 이용할 수 있다. 뉴럴 네트워크는 ADC(730)를 이용하여, 아날로그 신호인 전류(703)를 디지털 신호로 변환할 수 있다. 일 실시예에서 뉴럴 네트워크는 ADC(730)를 이용하여, 오디오 신호(710)의 픽셀 데이터와 동일한 비트 해상도를 갖도록 전류(703)를 디지털 신호로 변환할 수 있다. 예를 들어, 오디오 신호(710)의 픽셀 데이터가 1비트 해상도인 경우, 뉴럴 네트워크는 ADC(730)를 이용하여 전류(703)를 1비트 해상도의 디지털 신호로 변환할 수 있다.Since the current 703 output from the
뉴럴 네트워크는 활성화 유닛(740)을 이용하여, ADC(730)에서 변환된 디지털 신호에 활성화 함수를 적용할 수 있다. 활성화 함수로는 Sigmoid 함수, Tanh 함수 및 ReLU(Rectified Linear Unit) 함수를 이용할 수 있으나, 디지털 신호에 적용할 수 있는 활성화 함수는 이에 제한되지 않는다.The neural network can apply an activation function to the digital signal converted in the
활성화 함수가 적용된 디지털 신호는 다른 코어(750)의 입력 값으로 이용될 수 있다. 활성화 함수가 적용된 디지털 신호가 다른 코어(750)의 입력 값으로 이용되는 경우, 다른 코어(750)에서 상술한 과정이 동일하게 적용될 수 있다.The digital signal to which the activation function is applied can be used as an input value for another
한편, 코어(700)와 다른 코어(750)는 물리적으로 분리된 것이 아닌, 각 코어(700, 750)가 갖는 가중치 및/또는 바이어스 값에 따라 시냅스의 가변 저항 소자 값이 변경된 각각의 코어(700, 750)를 의미할 수 있다.Meanwhile, the
도 8은 일 실시예에 따른 뉴럴 네트워크의 구현 예시도이다.Figure 8 is an example of a neural network implementation according to an embodiment.
도 8을 참조하면, 뉴럴 네트워크는 수신한 오디오 신호를 시간 대역에서 주파수 대역으로 변환하여 주파수 신호를 생성하는 푸리에 변환(Fourier Transform) 레이어(810), 주파수 신호로부터 멜 스펙트로그램을 생성하는 멜 생성 레이어(820), 멜 스펙트로그램에 기초하여 오디오 신호의 특징을 분류하는 하나 이상의 히든(hidden) 레이어(830, 840) 및 음성 인식 결과를 출력하는 출력 레이어(850)를 포함할 수 있다. 각 레이어의 순서는 도 8에 도시한 바와 같을 수 있으나, 이에 제한되는 것은 아니다.Referring to Figure 8, the neural network includes a
일 실시예에서, 푸리에 변환 레이어(810)는 시간 대역의 오디오 신호를 푸리에 변환하여 주파수 대역의 주파수 신호를 생성할 수 있다. 전술한 바와 같이, 오디오 신호는 입출력 인터페이스(또는 입출력 인터페이스에 포함된 오디오 수신부)가 마이크에서 입력되는 음성을 디지털화 한 데이터일 수 있으므로, 시간 대역을 가질 수 있다. 따라서, 푸리에 변환 레이어(810)는 오디오 신호의 분류를 위한 다른 레이어(820 내지 850)에의 입력에 적합하도록, 푸리에 연산을 통해 주파수 대역의 데이터로 변환할 수 있다. 예를 들어, 푸리에 변환 레이어(810)는 불연속의 이산적 함수에 대한 푸리에 변환인 DFT(Discrete Fourier Transform)를 통해 주파수 신호를 생성할 수 있다.In one embodiment, the
일 실시예에서, 뉴럴 네트워크는 디지털 신호에 해당하는 오디오 신호를 아날로그 신호로 변환하는 디지털-아날로그 컨버터(DAC)를 더 포함하여, 수신된 오디오 신호는 디지털-아날로그 컨버터를 통해 아날로그 신호로 변환된 후 상기 푸리에 변환 레이어(810)에 입력될 수 있다.In one embodiment, the neural network further includes a digital-to-analog converter (DAC) that converts an audio signal corresponding to a digital signal into an analog signal, and the received audio signal is converted to an analog signal through the digital-to-analog converter and then converted to an analog signal. It may be input to the
일 실시예에서, 멜 생성 레이어(820)는 푸리에 변환 레이어(810)로부터 주파수 신호를 입력 받아 오디오 신호에 대응하는 멜 스펙트로그램을 생성할 수 있다.In one embodiment, the
스펙트로그램은 음성 신호의 스펙트럼을 시각화하여 그래프로 표현한 것이다. 스펙트로그램의 x축은 시간, y축은 주파수를 나타내며 각 시간당 주파수가 가지는 값을 값의 크기에 따라 색으로 표현할 수 있다. 이 때, 오디오 신호에 푸리에 변환을 수행한 결과물은 복소수 값이기 때문에, 복소수 값에 절대값을 취해 위상(phase) 정보를 소실시키고 크기(magnitude) 정보만을 포함하는 스펙트로그램을 생성할 수 있다.A spectrogram is a visualization of the spectrum of a voice signal and expressed as a graph. The x-axis of the spectrogram represents time, the y-axis represents frequency, and the value of each time frequency can be expressed in color according to the size of the value. At this time, since the result of performing Fourier transform on the audio signal is a complex value, the absolute value of the complex value can be taken to lose phase information and generate a spectrogram containing only magnitude information.
한편, 멜 스펙트로그램은 스펙트로그램의 주파수 간격을 멜 스케일(Mel Scale)로 재조정한 것이다. 사람의 청각기관은 고주파수(high frequency) 보다 저주파수(low frequency) 대역에서 더 민감하며, 이러한 특성을 반영해 물리적인 주파수와 실제 사람이 인식하는 주파수의 관계를 표현한 것이 멜 스케일이다. 멜 스펙트로그램은 멜 스케일에 기반한 필터 뱅크(filter bank)를 스펙트로그램에 적용하여 생성될 수 있다.Meanwhile, the Mel spectrogram is a re-adjustment of the frequency interval of the spectrogram into Mel Scale. The human auditory system is more sensitive to low frequencies than to high frequencies, and the Mel scale reflects this characteristic and expresses the relationship between physical frequencies and frequencies perceived by humans. A Mel spectrogram can be generated by applying a filter bank based on the Mel scale to the spectrogram.
일 실시예에서, 하나 이상의 히든 레이어(830, 840)는 멜 생성 레이어(820)로부터 오디오 신호에 대응하는 멜 스펙트로그램을 입력 받아 오디오 신호 또는 멜 스펙트로그램의 음성 특징을 분류할 수 있다.In one embodiment, one or more
하나 이상의 히든 레이어(830, 840)는 입력된 멜 스펙트로그램에 대응되는 텐서를 프리 시냅틱 뉴런으로 하고, 프리 시냅틱 뉴런에 가중치를 반영함으로써 멜 스펙트로그램을 소정의 기준에 따라 분류할 수 있다. 따라서, 히든 레이어의 개수가 많을수록 입력되는 데이터를 보다 정교하게 처리하여 알고리즘의 기능을 향상시킬 수 있다.One or more
일 실시예에서, 하나 이상의 히든 레이어(830, 840)는 멜 생성 레이어(820)와 출력 레이어(850) 사이에 위치할 수 있다. 따라서, 하나 이상의 히든 레이어(830, 840)는 멜 생성 레이어(820)로부터 멜 스펙트로그램을 입력 받아 특징을 분류하고, 분류 결과를 출력하여 출력 레이어(850)로 전달할 수 있다.In one embodiment, one or more
일 실시예에서, 출력 레이어(850)는 멜 생성 레이어(820) 또는 하나 이상의 히든 레이어(830, 840)로부터 음성 특징 또는 음성 특징을 분류한 결과를 입력 받아 음성 인식 결과를 출력할 수 있다. 예를 들어, 출력 레이어(850)는 하나 이상의 히든 레이어(830, 840)가 음성 특징을 분류한 결과, 기 설정된 복수의 키워드 중 어느 하나에 해당하는지 여부를 결정함으로써 음성 인식 결과를 출력할 수 있다. 구체적으로, 뉴로모픽 장치는 기 설정된 복수의 키워드를 저장할 수 있다. 이 때, 히든 레이어(830, 840)가 오디오 신호의 특징을 분류하고 출력 레이어(850)가 분류 결과를 전달받아 기 설정된 복수의 키워드 중 어느 하나에 해당하는지 여부를 결정할 수 있다.In one embodiment, the
예를 들어, 복수의 키워드는 "불 켜", "불 꺼", "조명 밝게", "조명 어둡게", "청광 차단", "따듯한 조명" 등 소정의 음절 개수로 이루어진 명령어일 수 있다. 따라서, 입출력 인터페이스가 생활 소음 및 자연 언어를 포함한 오디오 신호를 수신하고, 푸리에 변환 레이어(810), 멜 생성 레이어(820) 및 하나 이상의 히든 레이어(830, 840)를 통해 오디오 신호의 특징을 분류함으로써, 출력 레이어(850)가 분류 결과가 수신한 오디오 신호가 상기 기 설정된 복수의 키워드 중 어느 하나에 해당하는지를 결정할 수 있다. 즉, 뉴로모픽 장치는, 수신한 오디오 신호가 기 설정된 복수의 키워드 중 어느 하나에 해당하는 경우 해당 키워드를 출력 레이어(850)를 통해 음성 인식 결과로써 출력하고, 수신한 오디오 신호가 기 설정된 복수의 키워드 중 어느 것에도 해당하지 않는 경우 빈 값(null)을 출력하거나, 출력 없이 다음 오디오 신호를 수신하여 상술한 각 레이어에 의한 연산을 반복적으로 수행할 수 있다. 일 실시예에서, 상기 복수의 키워드는 20개 내외 또는 20개 이내로 설정된 것일 수 있다.For example, a plurality of keywords may be commands consisting of a predetermined number of syllables, such as “turn on the light,” “turn off the light,” “brighten the light,” “dim the light,” “block blue light,” and “warm light.” Therefore, the input/output interface receives audio signals including living noise and natural language, and classifies the features of the audio signal through the
일 실시예에서, 출력 레이어(850)는 오디오 신호가 기 설정된 복수의 키워드 중 적어도 하나와 유사한 네거티브 신호에 해당하는 경우, 빈 값을 음성 인식 결과로 출력하거나, 출력 없이 다음 오디오 신호를 수신하여 상술한 각 레이어에 의한 연산을 반복적으로 수행할 수 있다. 네거티브 신호는 기 설정된 복수의 키워드 중 어느 하나와 유사하여 뉴럴 네트워크가 유사한 키워드로 인식할 가능성이 높은 키워드를 의미할 수 있다. 예를 들어, 기 설정된 키워드가 "auto care"일 때 "어떡해"가 네거티브 신호일 수 있다. 따라서, 네거티브 신호는 뉴럴 네트워크가 키워드와 유사한 네거티브 신호를, 키워드로 잘못 인식하는 결과를 방지하기 위하여 기 설정된 것일 수 있다.In one embodiment, when the audio signal corresponds to a negative signal similar to at least one of a plurality of preset keywords, the
일 실시예에서, 뉴럴 네트워크는 아날로그 신호에 해당하는 음성 인식 결과를 디지털 신호로 변환하는 아날로그-디지털 컨버터(ADC)를 더 포함하여, 출력 레이어로부터 출력된 특징 분류 결과 또는 음성 인식 결과는 아날로그-디지털 컨버터를 통해 디지털 신호로 변환된 후 입출력 인터페이스를 통해 출력될 수 있다.In one embodiment, the neural network further includes an analog-to-digital converter (ADC) that converts a voice recognition result corresponding to an analog signal into a digital signal, so that the feature classification result or voice recognition result output from the output layer is analog-to-digital. It can be converted into a digital signal through a converter and then output through an input/output interface.
일 실시예에서, 뉴럴 네트워크는, 멜 생성 레이어(820)로부터 출력된 멜 스펙트로그램에 기초하여 오디오 신호가 기 설정된 복수의 키워드 중 어느 것에도 해당하지 않는 것으로 결정된 경우, 멜 스펙트로그램을 히든 레이어(830, 840)에 입력하지 않고 빈 값을 음성 인식 결과로 출력하거나, 출력 없이 다음 오디오 신호를 수신하여 상술한 각 레이어에 의한 연산을 반복적으로 수행할 수 있다. 다시 말해, 뉴럴 네트워크는 오디오 신호를 수신한 경우 푸리에 변환 레이어(810) 및 멜 생성 레이어(820)까지는 기본 값(Default)으로 데이터에 대한 연산을 수행하되, 멜 스펙트로그램에 기초하여 오디오 신호가 사람의 음성이 아니거나, 기 설정된 복수의 키워드 중 어느 하나에 해당하지 않는 것으로 결정된 경우 히든 레이어(830, 840) 및/또는 출력 레이어(850)로는 데이터를 전송하지 않을 수 있다. 모든 오디오 신호에 대한 히든 레이어(830, 840) 및/또는 출력 레이어(850)의 연산이 수행될 필요가 없으므로 이에 대한 연산량을 줄임으로써 뉴로모픽 장치의 연산 효율을 높이고, PIM 구조를 갖는 경우 과한 발열도 방지할 수 있다.In one embodiment, when it is determined that the audio signal does not correspond to any of a plurality of preset keywords based on the Mel spectrogram output from the
구체적으로, 뉴럴 네트워크는 오디오 신호를 수신하고, 소정의 학습 데이터로 학습된 추론 모델을 통해 수신한 입력 신호가 학습된 모델 데이터에 포함되어 있지 않은 경우 연산작용을 중단하고, 저전력 모드(슬립 모드)로 전환할 수 있다. 즉, 입력 신호가 주변 환경의 일상적 소음을 포함한 노이즈에 불과한 경우 히든 레이어(830, 840)를 통한 연산을 수행하지 않음으로써 불필요한 전력 소모를 최소화할 수 있다. 반대로, 뉴럴 네트워크는 수신한 입력 신호가 학습된 모델 데이터에 포함된 경우 다음 히든 레이어(830, 840) 및 출력 레이어(850)에 의한 분류 및 음성 인식 결과의 출력을 수행한 후, 저전력 모드(슬립 모드)로 전환할 수 있다.Specifically, the neural network receives an audio signal, and if the input signal received through an inference model learned with predetermined training data is not included in the learned model data, it stops calculating and enters a low-power mode (sleep mode). can be converted to . That is, if the input signal is nothing more than noise including everyday noise from the surrounding environment, unnecessary power consumption can be minimized by not performing calculations through the
한편, 뉴럴 네트워크의 각 레이어(810 내지 850)는 물리적으로 분리된 것이 아닌, 각 레이어가 갖는 가중치에 따라 시냅스의 가변 저항 소자 값이 변경된 코어를 의미할 수 있다. 설명을 위하여 다시 도 3을 참조하면, 뉴럴 네트워크의 각 레이어(810 내지 850)는 모두 뉴럴 네트워크(330)로 구현될 수 있다.Meanwhile, each
예를 들어, 오디오 신호가 입출력 인터페이스(310)를 통하여 수신되면, 디지털-아날로그 컨버터(320)를 통해 아날로그 신호로 변환된 오디오 신호는 푸리에 변환 레이어(810)가 갖는 가중치에 대응하여 시냅스의 가변 저항 소자 값이 설정된 뉴럴 네트워크(330)에 입력되고, 오디오 신호의 시간 대역이 주파수 대역으로 변경된 주파수 신호가 생성될 수 있다. 이후, 주파수 신호는 아날로그-디지털 컨버터(340)를 통해 디지털 신호로 변환되어 연산 회로(350)에 입력될 수 있다. 또한, 연산 회로(350)의 출력이 디지털-아날로그 컨버터(320)를 통해 아날로그 신호로 변환된 주파수 신호는 멜 생성 레이어(820)가 갖는 가중치에 대응하여 시냅스의 가변 저항 소자 값이 설정된 뉴럴 네트워크(330)에 입력되고, 주파수 신호의 멜 스펙트로그램이 생성될 수 있다. 이후, 멜 스펙트로그램은 아날로그-디지털 컨버터(340)를 통해 디지털 신호로 변환되어 연산 회로(350)에 입력될 수 있다. 마찬가지로, 하나 이상의 히든 레이어(830, 840) 및 출력 레이어(850) 각각이 갖는 가중치에 대응하여 시냅스의 가변 저항 소자 값이 설정된 뉴럴 네트워크(330)에 기초하여 오디오 신호의 특징을 분류하고, 음성 인식 결과를 출력하는 과정은 상술한 과정과 중복되므로 설명을 생략하기로 한다.For example, when an audio signal is received through the input/
일 실시예에서, 뉴럴 네트워크는 소정의 학습 데이터로 학습된 것일 수 있다. 예를 들어, 소정의 학습 데이터는, 기 설정된 복수의 키워드 및 노이즈 세트의 조합으로 생성된 오디오 데이터일 수 있다. 음성 인식 분야에서, 뉴럴 네트워크를 학습하는 데 활용되는 학습 데이터는 기 설정된 복수의 키워드와 생활 소음 등 노이즈가 섞인 데이터를 주로 사용하여 여러 번 학습함으로써 인식 성능이 좋은 뉴럴 네트워크를 구축할 수 있다. 그러나, 심한 노이즈 환경에서의 키워드 음성을 학습 데이터로 사용하여 키워드를 인식 성능이 좋은 뉴럴 네트워크를 구축하기 위해서는 무수히 많은 학습 데이터와 학습 과정이 필요할 수 있다. 반면에, 먼저 기 설정된 복수의 키워드 음성을 학습 데이터로 하여 뉴럴 네트워크를 학습하고, 이후에 상기 기 설정된 복수의 키워드 음성과 노이즈 데이터의 조합으로 생성된 데이터 세트를 학습 데이터로 하여 뉴럴 네트워크를 학습하는 경우 전술한 학습 방법에 비하여 학습 데이터 양이 적어 효율적이며 학습 데이터 생성을 위한 비용도 절감할 수 있다.In one embodiment, the neural network may be trained with certain training data. For example, predetermined learning data may be audio data generated by combining a plurality of preset keywords and noise sets. In the field of speech recognition, the learning data used to learn a neural network is mainly data mixed with noise such as a plurality of preset keywords and household noise, and by learning multiple times, a neural network with good recognition performance can be built. However, in order to build a neural network with good keyword recognition performance by using keyword voices in a severe noisy environment as learning data, countless learning data and learning processes may be required. On the other hand, first, a neural network is learned using a plurality of preset keyword voices as training data, and then a neural network is learned using a data set generated by a combination of the preset plurality of keyword voices and noise data as learning data. In this case, compared to the above-mentioned learning method, the amount of learning data is small, so it is efficient and the cost for generating learning data can also be reduced.
일 실시예에서, 하나 이상의 히든 레이어(830, 840)는 소정의 학습 데이터에 기초하여 조정된 웨이트로 구성되는 것일 수 있다. 하나 이상의 히든 레이어(830, 840)의 연산은 뉴럴 네트워크의 시냅스가 갖는 가변 저항 소자의 각각의 저항 값이 가중치가 되어 수행된다. 이 때, 각 가중치는 전술한 소정의 학습 데이터, 즉 기 설정된 복수의 키워드 음성 및 노이즈 세트의 조합으로 생성된 오디오 데이터에 기초하여 조정될 수 있다.In one embodiment, one or more
도 9는 일 실시예에 따른 크로스바 어레이 회로의 구현 예시도이다.Figure 9 is an exemplary implementation diagram of a crossbar array circuit according to an embodiment.
도 9를 참조하면, 뉴럴 네트워크를 구현하는 크로스바 어레이 회로(900)는 복수의 서브 회로(910, 920, 930)를 포함할 수 있다. 서브 회로(910, 920, 930)는 크로스바 어레이 회로(900)를 구성하는 복수의 코어의 조합으로 이루어진 회로로써, 각 서브 회로(910, 920, 930)가 뉴럴 네트워크를 구성하는 각 레이어에 대응되도록 시냅스의 웨이트가 설정될 수 있다.Referring to FIG. 9, a
일 실시예에서, 크로스바 어레이 회로(900)는 제1 서브 회로(910), 제2 서브 회로(920) 및 제3 서브 회로(930)를 포함할 수 있다. 이 때, 제1 서브 회로(910)는 푸리에 변환 레이어, 제2 서브 회로(920)는 멜 생성 레이어, 제3 서브 회로(930)는 출력 레이어를 구현할 수 있다.In one embodiment, the
일 실시예에서, 푸리에 변환 레이어에 대응하는 웨이트가 제1 서브 회로(910)의 시냅스에 저장될 수 있다. 예를 들어, 제1 서브 회로(910)는 시간 대역의 오디오 신호를 프리 시냅틱 뉴런을 통하여 입력 데이터로 수신하고, 푸리에 변환 레이어에 대응하는 웨이트가 저장된 시냅스를 거친 시냅틱 신호를 포스트 시냅스 뉴런을 통하여 출력 데이터로 전송함으로써, 주파수 신호를 생성할 수 있다.In one embodiment, weights corresponding to the Fourier transform layer may be stored in the synapse of the
일 실시예에서, 멜 생성 레이어에 대응하는 웨이트가 제2 서브 회로(920)의 시냅스에 저장될 수 있다. 예를 들어, 제2 서브 회로(920)는 주파수 신호를 프리 시냅틱 뉴런을 통하여 입력 데이터로 수신하고, 멜 생성 레이어에 대응하는 웨이트가 저장된 시냅스를 거친 시냅틱 신호를 포스트 시냅스 뉴런을 통하여 출력 데이터로 전송함으로써, 멜 스펙트로그램을 생성할 수 있다.In one embodiment, weights corresponding to the mel generation layer may be stored in the synapse of the
일 실시예에서, 출력 레이어에 대응하는 웨이트가 제3 서브 회로(930)의 시냅스에 저장될 수 있다. 예를 들어, 제3 서브 회로(930)는 멜 스펙트로그램 또는 멜 스펙트로그램의 특징을 프리 시냅틱 뉴런을 통하여 입력 데이터로 수신하고, 출력 레이어에 대응하는 웨이트가 저장된 시냅스를 거친 시냅틱 신호를 포스트 시냅스 뉴런을 통하여 출력 데이터로 전송함으로써, 음성 인식 결과를 출력할 수 있다.In one embodiment, weights corresponding to the output layer may be stored in the synapse of the
마찬가지로, 크로스바 어레이 회로(900)는 제1 내지 제3 서브 회로(910, 920, 930) 이외에 히든 레이어를 구현하는 다른 서브 회로(미도시)를 더 포함할 수 있다. 히든 레이어를 구현하는 다른 서브 회로(미도시)는 히든 레이어에 대응하는 웨이트가 시냅스에 저장된 회로일 수 있다. 예를 들어, 서브 회로(미도시)는 멜 스펙트로그램을 프리 시냅틱 뉴런을 통하여 입력 데이터로 수신하고, 히든 레이어에 대응하는 웨이트가 저장된 시냅스를 거친 시냅틱 신호를 포스트 시냅스 뉴런을 통하여 출력 데이터로 전송함으로써, 멜 스펙트로그램의 음성 특징을 분류할 수 있다.Likewise, the
한편, 각 서브 회로(910, 920, 930)가 입력 데이터를 수신하는 것은 프리 시냅틱 뉴런이 아닌, 이전 레이어를 구현하는 서브 회로와 연결된 로우 배선 또는 컬럼 배선을 통하여 수신할 수 있다. 또한, 마찬가지로 각 서브 회로(910, 920, 930)가 출력 데이터를 전송하는 것은 포스트 시냅틱 뉴런이 아닌, 다음 레이어를 구현하는 서브 회로와 연결된 로우 배선 또는 컬럼 배선을 통하여 전송할 수 있다. 각 서브 회로(910, 920, 930)가 입력 데이터 및 출력 데이터를 송수신 하는 방식은 이에 제한되지 않는다. 또한, 도 9에는 크로스바 어레이 회로(900)에 3개의 서브 회로(910, 920, 930)가 포함되는 것으로 도시하였으나 서브 회로의 개수는 이에 제한되지 않으며, 크로스바 어레이 회로(900)에서 서브 회로(910, 920, 930)의 영역, 시냅스 구성 및 위치 또한 이에 제한되지 않는다.Meanwhile, each sub-circuit (910, 920, 930) may receive input data not through pre-synaptic neurons, but through row wiring or column wiring connected to the sub-circuit implementing the previous layer. Additionally, similarly, each sub-circuit (910, 920, 930) can transmit output data not through a post-synaptic neuron, but through a row wire or column wire connected to a sub-circuit implementing the next layer. The method by which each sub-circuit (910, 920, and 930) transmits and receives input data and output data is not limited to this. In addition, FIG. 9 shows that the
전술한 일 실시예에 따른 크로스바 어레이 회로(900)는 온-칩 메모리에 포함되어 PIM 기반의 연산을 통해 뉴럴 네트워크를 구현할 수 있다. 이러한 뉴로모픽 장치에 의하면 칩 부피를 줄일 수 있을 뿐만 아니라 소모 전력 대비 고성능을 발휘할 수 있어 비교적 적은 개수의 키워드에 대한 음성 인식 결과를 매우 효율적으로 출력할 수 있다.The
도 10은 일 실시예에 따른 뉴로모픽 장치를 동작하는 방법의 흐름도이다.Figure 10 is a flowchart of a method of operating a neuromorphic device according to one embodiment.
단계 1010에서, 뉴로모픽 장치(이하, "장치")는 오디오 신호를 수신할 수 있다.At
단계 1020에서, 장치는 소정의 학습 데이터에 기초하여 학습된 뉴럴 네트워크에 오디오 신호를 입력하여 음성 인식 결과를 출력할 수 있다.In
일 실시예에서, 뉴럴 네트워크는 오디오 신호를 시간 대역에서 주파수 대역으로 변환하여 주파수 신호를 생성하는 푸리에 변환 레이어, 주파수 신호로부터 멜 스펙트로그램을 생성하는 멜 생성 레이어 및 멜 스펙트로그램의 음성 특징에 기초하여 음성 인식 결과를 출력하는 출력 레이어를 포함할 수 있다.In one embodiment, the neural network includes a Fourier transform layer that converts the audio signal from a time band to a frequency band to generate a frequency signal, a Mel generation layer that generates a Mel spectrogram from the frequency signal, and a Mel spectrogram based on speech features of the Mel spectrogram. It may include an output layer that outputs voice recognition results.
일 실시예에서, 뉴럴 네트워크는 멜 스펙트로그램의 음성 특징을 분류하는 하나 이상의 히든 레이어를 더 포함할 수 있다. 이 때, 하나 이상의 히든 레이어는 멜 생성 레이어 및 출력 레이어 사이에 위치할 수 있다.In one embodiment, the neural network may further include one or more hidden layers that classify voice features of the mel spectrogram. At this time, one or more hidden layers may be located between the mel generation layer and the output layer.
일 실시예에서, 출력 레이어는 히든 레이어가 음성 특징을 분류한 결과, 오디오 신호가 기 설정된 복수의 키워드 중 어느 하나에 해당하는지 여부를 결정함으로써 음성 인식 결과를 출력할 수 있다.In one embodiment, the output layer may output a voice recognition result by determining whether the audio signal corresponds to one of a plurality of preset keywords as a result of the hidden layer classifying voice features.
일 실시예에서, 소정의 학습 데이터는 기 설정된 복수의 키워드 및 노이즈 세트의 조합으로 생성된 오디오 데이터이고 하나 이상의 히든 레이어는 소정의 학습 데이터에 기초하여 조정된 웨이트로 구성될 수 있다.In one embodiment, the predetermined learning data is audio data generated by combining a plurality of preset keywords and noise sets, and one or more hidden layers may be composed of weights adjusted based on the predetermined learning data.
일 실시예에서, 뉴럴 네트워크는 오디오 신호가 기 설정된 복수의 키워드 중 적어도 하나와 유사한 네거티브 신호에 해당하는 경우, 빈 값(null)을 음성 인식 결과로 출력할 수 있다.In one embodiment, the neural network may output an empty value (null) as a voice recognition result when the audio signal corresponds to a negative signal similar to at least one of a plurality of preset keywords.
일 실시예에서, 장치는 메모리 셀(또는 온-칩 메모리)과 프로세서가 직접 연결되어 PIM(Processing-in-Memory) 기반의 연산을 수행하는 것일 수 있다.In one embodiment, the device may be one in which a memory cell (or on-chip memory) and a processor are directly connected to perform a processing-in-memory (PIM)-based operation.
일 실시예에서, 장치는 디지털 신호에 해당하는 오디오 신호를 아날로그 신호로 변환하여 푸리에 변환 레이어에 입력하고 출력 레이어로부터 출력된 아날로그 신호에 해당하는 음성 인식 결과를 디지털 신호로 변환할 수 있다.In one embodiment, the device may convert an audio signal corresponding to a digital signal into an analog signal, input it to a Fourier transform layer, and convert the voice recognition result corresponding to the analog signal output from the output layer into a digital signal.
일 실시예에서, 장치는 멜 스펙트로그램에 기초하여 오디오 신호가 기 설정된 복수의 키워드 중 어느 것에도 해당하지 않는 것으로 결정된 것에 응답하여 멜 스펙트로그램을 히든 레이어에 입력하지 않을 수 있다.In one embodiment, the device may not input the Mel spectrogram to the hidden layer in response to determining that the audio signal does not correspond to any of a plurality of preset keywords based on the Mel spectrogram.
도 11은 본 발명의 일 실시예에 따른 뉴로모픽 장치의 블록도이다. 이하의 설명에 있어서, 상술한 도 1 내지 10에 대한 설명과 중복되는 설명은 생략하기로 한다.Figure 11 is a block diagram of a neuromorphic device according to an embodiment of the present invention. In the following description, descriptions that overlap with those of FIGS. 1 to 10 described above will be omitted.
프로세서는 뉴로모픽 장치(1100)를 실행하기 위한 전반적인 기능들을 제어하는 역할을 한다. 예를 들어, 프로세서(1110)는 뉴로모픽 장치(1100) 내의 메모리(1120)에 저장된 프로그램들을 실행함으로써, 뉴로모픽 장치(1100)를 전반적으로 제어한다. 프로세서(1110)는 뉴로모픽 장치(1100) 내에 구비된 CPU(central processing unit), GPU(graphics processing unit), AP(application processor) 등으로 구현될 수 있으나, 이에 제한되지 않는다.The processor serves to control overall functions for executing the
메모리(1120)는 뉴로모픽 장치(1100) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 예를 들어, 메모리는 뉴로모픽 장치(1100)에서 처리된 데이터들 및 처리될 데이터들을 저장할 수 있다. 또한, 메모리(1120)는 뉴로모픽 장치(1100)에 의해 구동될 애플리케이션들, 드라이버들 등을 저장할 수 있다. 메모리는 DRAM(dynamic random access memory), SRAM(static random access memory) 등과 같은 RAM(random access memory), ROM(read-only memory), EEPROM(electrically erasable programmable read-only memory), CD-ROM, 블루레이 또는 다른 광학 디스크 스토리지, HDD(hard disk drive), SSD(solid state drive), 또는 플래시 메모리를 포함할 수 있다.The memory 1120 is hardware that stores various data processed within the
도 1에 도시된 뉴럴 네트워크(1)와 달리, 뉴로모픽 장치(1100)에서 구동되는 실제 뉴럴 네트워크는 보다 복잡한 아키텍처로 구현될 수 있다. 이에 따라 프로세서(1110)는 수억에서 수백억에 다다를 정도로 매우 많은 연산량(operation count)에 해당하는 연산을 수행하게 되고, 프로세서(1110)가 연산을 위해 메모리(1130)에 액세스하는 빈도가 함께 비약적으로 증가될 수 있다.Unlike the
따라서, 메모리(1120)는 온-칩 메모리일 수 있다. 일 실시예에 따른 뉴로모픽 장치(1100)는 메모리(1120)를 온-칩 메모리 형태로만 구비하여, 외부 메모리(1130)에 대한 접근 없이 연산을 수행할 수 있다. 예를 들면, 메모리(1120)는 온-칩 메모리 형태로 구현된 SRAM일 수 있다. 이 경우 상술된 바와 달리 DRAM, ROM, HDD, SSD 등 외부 메모리(1130)로 주로 이용되는 종류의 메모리는 메모리(1120)로 이용되지 않을 수 있다.Accordingly, memory 1120 may be an on-chip memory. The
프로세서(1110)는 메모리(1120)로부터 뉴럴 네트워크 데이터, 예를 들어 음성 데이터(오디오 신호) 등을 읽기/쓰기(read/write)하고, 읽기/쓰기된 데이터를 이용하여 뉴럴 네트워크를 실행할 수 있다. 뉴럴 네트워크가 실행될 때, 프로세서(1110)는 출력에 관한 데이터를 생성하기 위하여, 오디오 신호에 대한 연산을 반복적으로 수행할 수 있다. 즉, 소정의 주기에 따라 오디오 신호를 수신하고 상술한 레이어에 관한 연산을 상기 소정의 주기마다 반복적으로 수행할 수 있다.The
일 실시예에서, 뉴로모픽 장치(1100)는 서버일 수 있다. 서버는 네트워크를 통해 통신하여 명령, 코드, 파일, 컨텐츠, 서비스 등을 제공하는 컴퓨터 장치 또는 복수의 컴퓨터 장치들로 구현될 수 있다. 서버는 음성 인식을 위해 필요한 데이터를 수신하고, 수신한 데이터에 기초하여 음성 인식을 수행할 수 있다.In one embodiment,
한편, 본 발명에 따른 실시예는 컴퓨터 상에서 다양한 구성요소를 통하여 실행될 수 있는 컴퓨터 프로그램의 형태로 구현될 수 있으며, 이와 같은 컴퓨터 프로그램은 컴퓨터로 판독 가능한 매체에 기록될 수 있다. 이때, 매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM 및 DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical medium), 및 ROM, RAM, 플래시 메모리 등과 같은, 프로그램 명령어를 저장하고 실행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다.Meanwhile, embodiments according to the present invention may be implemented in the form of a computer program that can be executed through various components on a computer, and such a computer program may be recorded on a computer-readable medium. At this time, the media includes magnetic media such as hard disks, floppy disks, and magnetic tapes, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floptical disks, and ROM. , RAM, flash memory, etc., may include hardware devices specifically configured to store and execute program instructions.
한편, 상기 컴퓨터 프로그램은 본 발명을 위하여 특별히 설계되고 구성된 것이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수 있다. 컴퓨터 프로그램의 예에는, 컴파일러에 의하여 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용하여 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함될 수 있다.Meanwhile, the computer program may be designed and configured specifically for the present invention, or may be known and available to those skilled in the art of computer software. Examples of computer programs may include not only machine language code such as that created by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like.
일 실시예에 따르면, 본 개시의 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to one embodiment, methods according to various embodiments of the present disclosure may be included and provided in a computer program product. Computer program products are commodities and can be traded between sellers and buyers. The computer program product may be distributed in the form of a machine-readable storage medium (e.g. compact disc read only memory (CD-ROM)) or through an application store (e.g. Play StoreTM) or between two user devices. It may be distributed in person or online (e.g., downloaded or uploaded). In the case of online distribution, at least a portion of the computer program product may be at least temporarily stored or temporarily created in a machine-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.
본 발명에 따른 방법을 구성하는 단계들에 대하여 명백하게 순서를 기재하거나 반하는 기재가 없다면, 상기 단계들은 적당한 순서로 행해질 수 있다. 반드시 상기 단계들의 기재 순서에 따라 본 발명이 한정되는 것은 아니다. 본 발명에서 모든 예들 또는 예시적인 용어의 사용은 단순히 본 발명을 상세히 설명하기 위한 것으로서 특허청구범위에 의해 한정되지 않는 이상 상기 예들 또는 예시적인 용어로 인해 본 발명의 범위가 한정되는 것은 아니다. 또한, 당업자는 다양한 수정, 조합 및 변경이 부가된 특허청구범위 또는 그 균등물의 범주 내에서 설계 조건 및 팩터에 따라 구성될 수 있음을 알 수 있다.Unless there is an explicit order or statement to the contrary regarding the steps constituting the method according to the invention, the steps may be performed in any suitable order. The present invention is not necessarily limited by the order of description of the above steps. The use of all examples or illustrative terms in the present invention is simply for explaining the present invention in detail, and the scope of the present invention is not limited by the examples or illustrative terms unless limited by the claims. Additionally, those skilled in the art will recognize that various modifications, combinations and changes may be made depending on design conditions and factors within the scope of the appended claims or their equivalents.
따라서, 본 발명의 사상은 상기 설명된 실시 예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 또는 이로부터 등가적으로 변경된 모든 범위는 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the above-described embodiments, and the scope of the patent claims described below as well as all scopes equivalent to or equivalently changed from the scope of the claims are within the scope of the spirit of the present invention. It will be said to belong to
Claims (10)
상기 뉴럴 네트워크를 구동하는 적어도 하나의 프로세서; 및
상기 적어도 하나의 프로세서로부터 명령을 수신하여 메모리 내 연산을 수행하는 크로스바 어레이 회로를 포함하는 온-칩 메모리(on-chip memory);를 포함하고,
상기 적어도 하나의 프로세서는,
오디오 신호를 수신하고,
소정의 학습 데이터에 기초하여 학습된 상기 뉴럴 네트워크에 상기 오디오 신호를 입력하여 음성 인식 결과를 출력하며,
상기 뉴럴 네트워크는,
상기 오디오 신호를 시간 대역에서 주파수 대역으로 변환하여 주파수 신호를 생성하는 푸리에 변환 레이어, 상기 주파수 신호로부터 멜 스펙트로그램을 생성하는 멜 생성 레이어 및 상기 멜 스펙트로그램의 음성 특징에 기초하여 상기 음성 인식 결과를 출력하는 출력 레이어를 포함하고,
상기 뉴럴 네트워크는,
상기 멜 스펙트로그램의 상기 음성 특징을 분류하는 하나 이상의 히든 레이어 -상기 하나 이상의 히든 레이어는 상기 멜 생성 레이어 및 상기 출력 레이어 사이에 위치함- 를 포함하는, 뉴로모픽 장치.In a neuromorphic device implementing a neural network,
At least one processor running the neural network; and
An on-chip memory including a crossbar array circuit that receives instructions from the at least one processor and performs in-memory operations,
The at least one processor,
receive an audio signal,
Input the audio signal to the neural network learned based on predetermined learning data and output a voice recognition result,
The neural network is,
A Fourier transform layer that converts the audio signal from a time band to a frequency band to generate a frequency signal, a Mel generation layer that generates a Mel spectrogram from the frequency signal, and a voice recognition result based on the voice characteristics of the Mel spectrogram. Contains an output layer that outputs,
The neural network is,
A neuromorphic device comprising one or more hidden layers that classify the speech features of the Mel spectrogram, wherein the one or more hidden layers are located between the Mel generation layer and the output layer.
상기 적어도 하나의 프로세서는,
상기 멜 스펙트로그램에 기초하여 상기 오디오 신호가 기 설정된 복수의 키워드 중 어느 것에도 해당하지 않는 것으로 결정된 것에 응답하여, 상기 멜 스펙트로그램을 상기 히든 레이어에 입력하지 않는, 뉴로모픽 장치.According to claim 1,
The at least one processor,
A neuromorphic device that does not input the Mel spectrogram to the hidden layer in response to determining that the audio signal does not correspond to any of a plurality of preset keywords based on the Mel spectrogram.
상기 적어도 하나의 프로세서는,
상기 오디오 신호가 상기 기 설정된 복수의 키워드 중 어느 것에도 해당하지 않는 것으로 결정된 것에 응답하여, 빈(null) 값을 상기 음성 인식 결과로 출력하는, 뉴로모픽 장치.According to claim 2,
The at least one processor,
A neuromorphic device that outputs a null value as the voice recognition result in response to determining that the audio signal does not correspond to any of the plurality of preset keywords.
상기 적어도 하나의 프로세서는,
상기 오디오 신호가 상기 기 설정된 복수의 키워드 중 어느 것에도 해당하지 않는 것으로 결정된 것에 응답하여, 상기 음성 인식 결과의 출력 없이 다음 오디오 신호를 수신하는, 뉴로모픽 장치.According to claim 2,
The at least one processor,
A neuromorphic device, in response to determining that the audio signal does not correspond to any of the plurality of preset keywords, receiving a next audio signal without outputting the voice recognition result.
상기 적어도 하나의 프로세서는,
상기 오디오 신호가 상기 기 설정된 복수의 키워드 중 어느 것에도 해당하지 않는 것으로 결정된 것에 응답하여, 저전력 모드로 전환하는, 뉴로모픽 장치.According to claim 2,
The at least one processor,
A neuromorphic device, switching to a low power mode in response to determining that the audio signal does not correspond to any of the plurality of preset keywords.
상기 소정의 학습 데이터는,
기 설정된 복수의 키워드 및 노이즈 세트 중 적어도 하나에 기초하여 생성된 오디오 데이터인, 뉴로모픽 장치.According to claim 1,
The predetermined learning data is,
A neuromorphic device, which is audio data generated based on at least one of a plurality of preset keywords and noise sets.
상기 뉴럴 네트워크는,
상기 기 설정된 복수의 키워드의 오디오 데이터를 학습 데이터로 하여 1차 학습되고, 상기 1차 학습 이후 상기 기 설정된 복수의 키워드 및 상기 노이즈 세트의 조합으로 생성된 오디오 데이터 세트를 학습 데이터로 하여 2차 학습되는, 뉴로모픽 장치.According to claim 6,
The neural network is,
First learning is performed using the audio data of the plurality of preset keywords as learning data, and after the first learning, secondary learning is performed using the audio data set generated by a combination of the plurality of preset keywords and the noise set as learning data. A neuromorphic device.
상기 적어도 하나의 프로세서는,
상기 오디오 신호가 기 설정된 복수의 키워드 중 적어도 하나와 유사한 네거티브 신호에 해당하는 경우, 빈 값(null)을 상기 음성 인식 결과로 출력하거나, 출력 없이 다음 오디오 신호를 수신하는, 뉴로모픽 장치.According to claim 1,
The at least one processor,
When the audio signal corresponds to a negative signal similar to at least one of a plurality of preset keywords, a neuromorphic device outputs an empty value (null) as the voice recognition result or receives the next audio signal without output.
오디오 신호를 수신하는 단계; 및
소정의 학습 데이터에 기초하여 학습된 뉴럴 네트워크에 상기 오디오 신호를 입력하여 음성 인식 결과를 출력하는 단계;를 포함하고,
상기 뉴럴 네트워크는,
상기 오디오 신호를 시간 대역에서 주파수 대역으로 변환하여 주파수 신호를 생성하는 푸리에 변환 레이어, 상기 주파수 신호로부터 멜 스펙트로그램을 생성하는 멜 생성 레이어 및 상기 멜 스펙트로그램의 음성 특징에 기초하여 상기 음성 인식 결과를 출력하는 출력 레이어를 포함하되,
상기 뉴럴 네트워크는,
상기 멜 스펙트로그램의 상기 음성 특징을 분류하는 하나 이상의 히든 레이어 -상기 하나 이상의 히든 레이어는 상기 멜 생성 레이어 및 상기 출력 레이어 사이에 위치함- 를 포함하는, 방법.In a method of operating a neuromorphic device implementing a neural network,
Receiving an audio signal; and
Including the step of inputting the audio signal to a neural network learned based on predetermined learning data and outputting a voice recognition result,
The neural network is,
A Fourier transform layer that converts the audio signal from a time band to a frequency band to generate a frequency signal, a Mel generation layer that generates a Mel spectrogram from the frequency signal, and a voice recognition result based on the voice characteristics of the Mel spectrogram. Includes an output layer that outputs,
The neural network is,
A method comprising one or more hidden layers that classify the speech features of the Mel spectrogram, wherein the one or more hidden layers are located between the Mel generation layer and the output layer.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220141864 | 2022-10-28 | ||
KR20220141864 | 2022-10-28 | ||
KR1020220170681A KR102627460B1 (en) | 2022-10-28 | 2022-12-08 | Neuromorphic device implementing neural network and operation method of the same |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220170681A Division KR102627460B1 (en) | 2022-10-28 | 2022-12-08 | Neuromorphic device implementing neural network and operation method of the same |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20240060522A true KR20240060522A (en) | 2024-05-08 |
KR102666882B1 KR102666882B1 (en) | 2024-05-20 |
Family
ID=
Also Published As
Publication number | Publication date |
---|---|
WO2024090858A1 (en) | 2024-05-02 |
KR102627460B1 (en) | 2024-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11361216B2 (en) | Neural network circuits having non-volatile synapse arrays | |
Chen et al. | A survey of accelerator architectures for deep neural networks | |
US10692570B2 (en) | Neural network matrix multiplication in memory cells | |
Long et al. | ReRAM-based processing-in-memory architecture for recurrent neural network acceleration | |
Cheng et al. | TIME: A training-in-memory architecture for RRAM-based deep neural networks | |
US10346347B2 (en) | Field-programmable crossbar array for reconfigurable computing | |
US11620505B2 (en) | Neuromorphic package devices and neuromorphic computing systems | |
US11604974B2 (en) | Neural network computation circuit including non-volatile semiconductor memory element | |
US11531871B2 (en) | Stacked neuromorphic devices and neuromorphic computing systems | |
US11615299B2 (en) | Neural network computation circuit including non-volatile semiconductor memory element | |
JP2021185479A (en) | Apparatus for performing in-memory processing, and computing device including the same | |
Jawandhiya | Hardware design for machine learning | |
JP7157893B2 (en) | Programmable circuitry for performing machine learning operations on edge devices | |
US20210383203A1 (en) | Apparatus and method with neural network | |
Yoo | 1.2 intelligence on silicon: From deep-neural-network accelerators to brain mimicking AI-SoCs | |
TW202139074A (en) | Neuromorphic device and operating method of the same | |
TW201937413A (en) | Neural network circuits having non-volatile synapse arrays | |
Hendy et al. | Review of spike-based neuromorphic computing for brain-inspired vision: biology, algorithms, and hardware | |
Yin | Deep learning with the random neural network and its applications | |
Mikhaylov et al. | Neuromorphic computing based on CMOS-integrated memristive arrays: current state and perspectives | |
Donahue et al. | Design and analysis of neuromemristive echo state networks with limited-precision synapses | |
KR102666882B1 (en) | Neuromorphic device implementing neural network and operation method of the same | |
KR102627460B1 (en) | Neuromorphic device implementing neural network and operation method of the same | |
Sun et al. | Quaternary synapses network for memristor-based spiking convolutional neural networks | |
Ames et al. | Persuading computers to act more like brains |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |