KR20190118332A - 전자 장치 및 그 제어 방법 - Google Patents
전자 장치 및 그 제어 방법 Download PDFInfo
- Publication number
- KR20190118332A KR20190118332A KR1020180041533A KR20180041533A KR20190118332A KR 20190118332 A KR20190118332 A KR 20190118332A KR 1020180041533 A KR1020180041533 A KR 1020180041533A KR 20180041533 A KR20180041533 A KR 20180041533A KR 20190118332 A KR20190118332 A KR 20190118332A
- Authority
- KR
- South Korea
- Prior art keywords
- elements
- output
- artificial intelligence
- memory
- processor
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 48
- 238000013473 artificial intelligence Methods 0.000 claims abstract description 124
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 12
- 238000010586 diagram Methods 0.000 description 23
- 238000004364 calculation method Methods 0.000 description 16
- 239000011159 matrix material Substances 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 6
- 238000005265 energy consumption Methods 0.000 description 5
- 230000033001 locomotion Effects 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 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/08—Learning methods
-
- 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
- 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/04—Architecture, e.g. interconnection topology
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Neurology (AREA)
- Image Processing (AREA)
- Complex Calculations (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
전자 장치가 개시된다. 본 전자 장치는 복수의 제1 엘리먼트를 포함하는 제1 인공지능 모델이 저장된 제1 메모리 및 복수의 제2 엘리먼트를 포함하는 제2 인공지능 모델이 저장된 제2 메모리를 구비하며, 제2 인공지능 모델에 기초하여 입력 데이터에 대한 출력 데이터를 획득하는 프로세서를 포함하고, 제1 인공지능 모델은 인공지능 알고리즘을 통해 학습(training)되며, 복수의 제2 엘리먼트 각각은 복수의 제1 엘리먼트 각각에 포함된 복수의 비트 중 적어도 하나의 상위 비트를 포함한다.
Description
본 개시는 전자 장치 및 그 제어 방법에 대한 것으로, 더욱 상세하게는 입력 데이터를 인공지능 모델에 적용하는 전자 장치 및 그 제어 방법에 대한 것이다.
근래에는 인간 수준의 지능을 구현하는 인공 지능 시스템이 다양한 분야에서 이용되고 있다. 인공 지능 시스템은 기존의 룰(rule) 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공 지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 룰 기반 스마트 시스템은 점차 딥러닝 기반 인공 지능 시스템으로 대체되고 있다.
인공 지능 기술은 기계학습(예로, 딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다.
기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
인공 지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
예를 들어, 인공지능 시스템은 음성 인식을 위한 인공지능 모델의 생성에도 이용될 수 있으며, 특히 RNN(Recurrent Neural Network)의 경우 시계열 데이터와 같이 시간의 흐름에 따라 변화하는 데이터를 학습하기 위해 적절한 모델로서 평가되고 있다.
다만, RNN 학습된 인공지능 모델은 CNN 학습된 인공지능 모델 등과 비교하여 학습된 데이터 용량이 방대하여, DRAM 등, 외부에서 가져와야 하는 데이터 양이 많기 때문에 데이터 이동으로 인한 연산 지연과 에너지 소모량이 많은 문제가 있다.
본 개시는 상술한 필요성에 따른 것으로, 본 개시의 목적은 프로세서 및 프로세서의 외부에 구비된 외부 메모리와의 데이터 전송을 최소화하기 위한 전자 장치 및 그 제어 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자 장치는 복수의 제1 엘리먼트를 포함하는 제1 인공지능 모델이 저장된 제1 메모리 및 복수의 제2 엘리먼트를 포함하는 제2 인공지능 모델이 저장된 제2 메모리를 구비하며, 상기 제2 인공지능 모델에 기초하여 입력 데이터에 대한 출력 데이터를 획득하는 프로세서를 포함하고, 상기 제1 인공지능 모델은 인공지능 알고리즘을 통해 학습(training)되며, 상기 복수의 제2 엘리먼트 각각은 상기 복수의 제1 엘리먼트 각각에 포함된 복수의 비트 중 적어도 하나의 상위 비트를 포함할 수 있다.
또한, 상기 프로세서는 상기 입력 데이터를 상기 제2 인공지능 모델에 적용하여 복수의 제1 출력 엘리먼트를 획득하고, 상기 복수의 제1 출력 엘리먼트의 크기에 기초하여 상기 복수의 제1 출력 엘리먼트 중 하나를 상기 출력 데이터로서 획득할 수 있다.
그리고, 상기 프로세서는 상기 복수의 제1 출력 엘리먼트 중 크기가 가장 큰 제1 출력 엘리먼트 및 두 번째로 크기가 큰 제1 출력 엘리먼트의 차이가 기설정된 크기 이상이면, 상기 크기가 가장 큰 제1 출력 엘리먼트를 상기 출력 데이터로서 획득할 수 있다.
또한, 상기 제2 메모리는 복수의 제3 엘리먼트를 포함하는 제3 인공지능 모델을 저장하며, 상기 프로세서는 상기 제1 출력 엘리먼트 간의 차이가 상기 기설정된 크기 미만이면, 상기 복수의 제1 출력 엘리먼트를 상기 제2 메모리에 저장하며, 상기 입력 데이터를 상기 제3 인공지능 모델에 적용하여 복수의 제1 중간 엘리먼트를 획득하고, 상기 제1 출력 엘리먼트 및 상기 제1 중간 엘리먼트에 기초하여 복수의 제2 출력 엘리먼트를 획득하며, 상기 복수의 제2 출력 엘리먼트의 크기에 기초하여 상기 복수의 제2 출력 엘리먼트 중 하나를 상기 출력 데이터로서 획득하고, 상기 복수의 제3 엘리먼트 각각은 상기 복수의 제1 엘리먼트 각각에 포함된 복수의 비트 중 상기 복수의 제2 엘리먼트 각각에 포함된 적어도 하나의 비트를 제외한, 적어도 하나의 상위 비트를 포함할 수 있다.
그리고, 상기 프로세서는 상기 복수의 제2 출력 엘리먼트 중 크기가 가장 큰 제2 출력 엘리먼트 및 두 번째로 크기가 큰 제2 출력 엘리먼트의 차이가 상기 기설정된 크기 이상이면, 상기 크기가 가장 큰 제2 출력 엘리먼트를 상기 출력 데이터로서 획득할 수 있다.
또한, 상기 프로세서는 상기 제2 출력 엘리먼트 간의 차이가 상기 기설정된 크기 미만이면, 상기 복수의 제2 출력 엘리먼트를 상기 제2 메모리에 저장하며, 상기 복수의 제1 엘리먼트 중 상기 복수의 제2 엘리먼트 및 상기 복수의 제3 엘리먼트를 제외한 나머지를 상기 제1 메모리로부터 획득하고, 상기 획득된 나머지 제1 엘리먼트 및 상기 입력 데이터를 연산하여 복수의 제2 중간 엘리먼트를 획득하며, 상기 제2 출력 엘리먼트 및 상기 제2 중간 엘리먼트에 기초하여 복수의 제3 출력 엘리먼트를 획득하고, 상기 복수의 제3 출력 엘리먼트 중 크기가 가장 큰 제3 출력 엘리먼트를 상기 출력 데이터로서 획득할 수 있다.
그리고, 상기 프로세서는 상기 복수의 제2 출력 엘리먼트 각각의 크기, 기울기, 이동 평균 및 소프트맥스(softmax) 중 적어도 하나에 기초하여 상기 복수의 제2 출력 엘리먼트 중 하나를 상기 출력 데이터로 획득할 수 있다.
또한, 상기 프로세서는 상기 입력 데이터를 상기 제2 인공지능 모델에 적용하는 적어도 하나의 곱셈기를 포함할 수 있다.
그리고, 상기 적어도 하나의 곱셈기는 상기 입력 데이터에 포함된 복수의 엘리먼트 중 하나를 입력받고, 상기 입력된 엘리먼트를 싸이클에 따라 시프트하여 출력하는 시프터, 상기 복수의 제2 엘리먼트 중 상기 시프터에 입력된 엘리먼트에 대응되는 제2 엘리먼트를 입력받고, 상기 제2 입력된 엘리먼트에 포함된 적어도 하나의 비트를 상기 싸이클에 따라 출력하는 FIFO 메모리 및 상기 싸이클에 따라 상기 시프터로부터 출력되는 엘리먼트 및 상기 FIFO 메모리로부터 출력되는 제2 엘리먼트의 연산 결과를 입력받아 누적하는 어큐뮬레이터(accumulator)를 포함할 수 있다.
한편, 본 개시의 일 실시 예에 따른 제1 메모리 및 프로세서를 포함하는 전자 장치의 제어 방법은 복수의 제1 엘리먼트를 포함하는 제1 인공지능 모델을 상기 제1 메모리에 저장하는 단계, 복수의 제2 엘리먼트를 포함하는 제2 인공지능 모델을 상기 프로세서에 구비된 제2 메모리에 저장하는 단계 및 상기 제2 인공지능 모델에 기초하여 입력 데이터에 대한 출력 데이터를 획득하는 단계를 포함하고, 상기 제1 인공지능 모델은 인공지능 알고리즘을 통해 학습(training)되며, 상기 복수의 제2 엘리먼트 각각은 상기 복수의 제1 엘리먼트 각각에 포함된 복수의 비트 중 적어도 하나의 상위 비트를 포함할 수 있다.
또한, 상기 획득하는 단계는 상기 입력 데이터를 상기 제2 인공지능 모델에 적용하여 복수의 제1 출력 엘리먼트를 획득하는 단계 및 상기 복수의 제1 출력 엘리먼트의 크기에 기초하여 상기 복수의 제1 출력 엘리먼트 중 하나를 상기 출력 데이터로서 획득하는 단계를 포함할 수 있다.
그리고, 상기 복수의 제1 출력 엘리먼트 중 하나를 상기 출력 데이터로서 획득하는 단계는 상기 복수의 제1 출력 엘리먼트 중 크기가 가장 큰 제1 출력 엘리먼트 및 두 번째로 크기가 큰 제1 출력 엘리먼트의 차이가 기설정된 크기 이상이면, 상기 크기가 가장 큰 제1 출력 엘리먼트를 상기 출력 데이터로서 획득할 수 있다.
또한, 복수의 제3 엘리먼트를 포함하는 제3 인공지능 모델을 상기 제2 메모리에 저장하는 단계, 상기 제1 출력 엘리먼트 간의 차이가 상기 기설정된 크기 미만이면, 상기 복수의 제1 출력 엘리먼트를 상기 제2 메모리에 저장하는 단계, 상기 입력 데이터를 상기 제3 인공지능 모델에 적용하여 복수의 제1 중간 엘리먼트를 획득하는 단계, 상기 제1 출력 엘리먼트 및 상기 제1 중간 엘리먼트에 기초하여 복수의 제2 출력 엘리먼트를 획득하는 단계 및 상기 복수의 제2 출력 엘리먼트의 크기에 기초하여 상기 복수의 제2 출력 엘리먼트 중 하나를 상기 출력 데이터로서 획득하는 단계를 더 포함하고, 상기 복수의 제3 엘리먼트 각각은 상기 복수의 제1 엘리먼트 각각에 포함된 복수의 비트 중 상기 복수의 제2 엘리먼트 각각에 포함된 적어도 하나의 비트를 제외한, 적어도 하나의 상위 비트를 포함할 수 있다.
그리고, 상기 복수의 제2 출력 엘리먼트 중 하나를 상기 출력 데이터로서 획득하는 단계는 상기 복수의 제2 출력 엘리먼트 중 크기가 가장 큰 제2 출력 엘리먼트 및 두 번째로 크기가 큰 제2 출력 엘리먼트의 차이가 상기 기설정된 크기 이상이면, 상기 크기가 가장 큰 제2 출력 엘리먼트를 상기 출력 데이터로서 획득할 수 있다.
또한, 상기 제2 출력 엘리먼트 간의 차이가 상기 기설정된 크기 미만이면, 상기 복수의 제2 출력 엘리먼트를 상기 제2 메모리에 저장하는 단계, 상기 복수의 제1 엘리먼트 중 상기 복수의 제2 엘리먼트 및 상기 복수의 제3 엘리먼트를 제외한 나머지를 상기 제1 메모리로부터 획득하는 단계, 상기 획득된 나머지 제1 엘리먼트 및 상기 입력 데이터를 연산하여 복수의 제2 중간 엘리먼트를 획득하는 단계, 상기 제2 출력 엘리먼트 및 상기 제2 중간 엘리먼트에 기초하여 복수의 제3 출력 엘리먼트를 획득하는 단계 및 상기 복수의 제3 출력 엘리먼트 중 크기가 가장 큰 제3 출력 엘리먼트를 상기 출력 데이터로서 획득하는 단계를 더 포함할 수 있다.
그리고, 상기 복수의 제2 출력 엘리먼트 중 하나를 상기 출력 데이터로서 획득하는 단계는 상기 복수의 제2 출력 엘리먼트 각각의 크기, 기울기, 이동 평균 및 소프트맥스(softmax) 중 적어도 하나에 기초하여 상기 복수의 제2 출력 엘리먼트 중 하나를 상기 출력 데이터로 획득할 수 있다.
또한, 상기 획득하는 단계는 적어도 하나의 곱셈 연산을 통해 상기 입력 데이터를 상기 제2 인공지능 모델에 적용할 수 있다.
한편, 본 개시의 일 실시 예에 따른 제1 메모리 및 프로세서를 포함하는 전자 장치의 동작 방법을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서, 상기 동작은 복수의 제1 엘리먼트를 포함하는 제1 인공지능 모델을 상기 제1 메모리에 저장하는 단계, 복수의 제2 엘리먼트를 포함하는 제2 인공지능 모델을 상기 프로세서에 구비된 제2 메모리에 저장하는 단계 및 상기 제2 인공지능 모델에 기초하여 입력 데이터에 대한 출력 데이터를 획득하는 단계를 포함하고, 상기 제1 인공지능 모델은 인공지능 알고리즘을 통해 학습(training)되며, 상기 복수의 제2 엘리먼트 각각은 상기 복수의 제1 엘리먼트 각각에 포함된 복수의 비트 중 적어도 하나의 상위 비트를 포함할 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 전자 장치의 프로세서는 압축된 인공지능 모델이 저장된 내부 메모리를 구비하고, 압축된 인공지능 모델을 이용하여 연산을 수행함에 따라 연산 속도를 향상시키고, 인공지능 모델이 저장된 외부 메모리와의 데이터 전송을 최소화함에 따라 에너지 효율을 향상시킬 수 있다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블럭도이다.
도 2a 내지 도 2d는 본 개시의 일 실시 예에 따른 제1 메모리 및 제2 메모리에 저장된 데이터를 설명하기 위한 도면들이다.
도 3은 본 개시의 일 실시 예에 따른 입력 데이터를 나타내는 도면이다.
도 4a 및 도 4b는 본 개시의 일 실시 예에 따른 연산의 정확도를 향상시키는 방법을 설명하기 위한 도면들이다.
도 5a 및 도 5b는 본 개시의 다른 실시 예에 따른 연산의 정확도를 향상시키는 방법을 설명하기 위한 도면들이다.
도 6은 본 개시의 일 실시 예에 따른 제1 인공지능 모델을 이용하는 경우를 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 RNN 연산을 설명하기 위한 도면이다.
도 8a 및 도 8b는 곱셈 연산을 설명하기 위한 도면들이다.
도 9a 및 도 9b는 본 개시의 일 실시 예에 따른 연산 속도 및 에너지 소모량을 설명하기 위한 도면들이다.
도 10a 내지 도 10c는 본 개시의 다양한 실시 예에 따른 제2 메모리에 저장될 인공지능 모델을 분류하는 방법을 설명하기 위한 도면들이다.
도 11은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 2a 내지 도 2d는 본 개시의 일 실시 예에 따른 제1 메모리 및 제2 메모리에 저장된 데이터를 설명하기 위한 도면들이다.
도 3은 본 개시의 일 실시 예에 따른 입력 데이터를 나타내는 도면이다.
도 4a 및 도 4b는 본 개시의 일 실시 예에 따른 연산의 정확도를 향상시키는 방법을 설명하기 위한 도면들이다.
도 5a 및 도 5b는 본 개시의 다른 실시 예에 따른 연산의 정확도를 향상시키는 방법을 설명하기 위한 도면들이다.
도 6은 본 개시의 일 실시 예에 따른 제1 인공지능 모델을 이용하는 경우를 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 RNN 연산을 설명하기 위한 도면이다.
도 8a 및 도 8b는 곱셈 연산을 설명하기 위한 도면들이다.
도 9a 및 도 9b는 본 개시의 일 실시 예에 따른 연산 속도 및 에너지 소모량을 설명하기 위한 도면들이다.
도 10a 내지 도 10c는 본 개시의 다양한 실시 예에 따른 제2 메모리에 저장될 인공지능 모델을 분류하는 방법을 설명하기 위한 도면들이다.
도 11은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
이하에서, 첨부된 도면을 이용하여 본 개시의 다양한 실시 예들에 대하여 구체적으로 설명한다.
도 1은 본 개시의 일 실시 예에 따른 전자 장치(100)의 구성을 나타내는 블럭도이다. 도 1에 도시된 바와 같이, 전자 장치(100)는 제1 메모리(110) 및 프로세서(120)를 포함한다.
전자 장치(100)는 인공지능 모델에 기초하여 입력 데이터에 대한 출력 데이터를 획득하는 장치일 수 있다. 예를 들어, 전자 장치(100)는 데스크탑 PC, 노트북, 스마트폰, 태블릿 PC, 서버 등일 수 있다. 또는, 전자 장치(100)는 클라우딩 컴퓨팅 환경이 구축된 시스템 자체일 수도 있다. 다만, 이에 한정되는 것은 아니며, 전자 장치(100)는 인공지능 모델을 이용한 연산이 가능한 장치라면 어떤 장치라도 무방하다.
제1 메모리(110)는 프로세서(120)와는 별도로 구비되며, 하드디스크, 비휘발성 메모리 및 휘발성 메모리 등으로 구현될 수 있다.
제1 메모리(110)는 제1 인공지능 모델을 저장할 수 있다. 여기서, 제1 인공지능 모델은 인공지능 알고리즘을 통해 학습(training)될 수 있다.
예를 들어, 제1 인공지능 모델은 RNN(Recurrent Neural Network) 학습된 언어 모델일 수 있다. 여기서, RNN은 순환 신경망을 의미하며, 시계열 데이터와 같이 시간의 흐름에 따라 변화하는 데이터를 학습하기 위한 딥 러닝 모델의 일종이다.
다만, 이에 한정되는 것은 아니며, 제1 인공지능 모델은 CNN(Convolutional Neural Network) 학습된 모델일 수도 있다. 또는, 제1 메모리(110)는 인공지능 알고리즘을 통해 학습된 모델이 아닌 룰(rule) 기반으로 생성된 모델을 저장할 수도 있으며, 제1 메모리(110)에 저장된 모델에는 특별한 제한이 없다. 이하에서는 설명의 편의를 위하여 제1 언어 모델이 RNN 학습된 언어 모델인 것으로 설명한다.
RNN 학습된 제1 언어 모델은 후술할 제2 메모리(125)의 저장 용량보다 데이터 용량이 클 수 있다. 그에 따라, RNN 학습된 제1 언어 모델은 제2 메모리(125)보다 저장 용량이 큰 제1 메모리(110)에 저장될 수 있다.
제1 메모리(110)는 복수의 제1 엘리먼트를 포함하는 제1 인공지능 모델을 저장할 수 있다. 예를 들어, 제1 인공지능 모델은 m × n의 매트릭스 형태일 수 있고, 복수의 제1 엘리먼트는 m × n개의 매트릭스를 형성하는 데이터일 수 있다. 그리고, 복수의 제1 엘리먼트 각각의 비트(bit) 수는 동일할 수 있다.
제1 메모리(110)는 프로세서(120)의 내부에 구비된 제2 메모리(125)로 데이터를 제공하거나 제2 메모리(125)로부터 데이터를 입력받을 수 있다. 예를 들어, 제1 메모리에 저장된 제1 인공지능 모델의 일부 데이터가 제2 메모리(125)로 제공될 수 있다.
프로세서(120)는 전자 장치(100)의 동작을 전반적으로 제어한다.
프로세서(120)는 제2 메모리(125)를 구비할 수 있다. 여기서, 제2 메모리(125)는 프로세서(120) 내부에 구비된 캐시 메모리, 레지스터 파일 및 버퍼 등으로 구현될 수 있다.
제2 메모리(125)는 제1 메모리(110)보다 작은 용량일 수 있다. 또한, 제2 메모리(125)에 저장된 데이터 A가 프로세서(120) 내의 연산 소자로 전송되는 경우의 전력 소모는 제1 메모리(110)에 저장된 데이터 A가 프로세서(120) 내의 연산 소자로 전송되는 경우의 전력 소모보다 작을 수 있다.
제2 메모리(125)는 복수의 제2 엘리먼트를 포함하는 제2 인공지능 모델을 저장할 수 있다. 여기서, 제2 인공지능 모델은 제1 인공지능 모델의 일부 데이터만을 포함할 수 있다. 다만, 제2 인공지능 모델의 형태는 제1 인공지능 모델의 형태와 동일할 수 있다.
예를 들어, 제1 인공지능 모델이 m × n의 매트릭스 형태인 경우, 제2 인공지능 모델 역시 m × n의 매트릭스 형태일 수 있다. 그리고, 제1 인공지능 모델에 포함된 복수의 제1 엘리먼트 각각이 10 비트라면, 제2 인공지능 모델에 포함된 복수의 제2 엘리먼트 각각은 10 비트보다 작을 수 있다.
복수의 제2 엘리먼트 각각은 복수의 제1 엘리먼트 각각에 포함된 복수의 비트 중 적어도 하나의 상위 비트를 포함할 수 있다. 예를 들어, 제1 인공지능 모델에서 1 × 1의 엘리먼트가 1110000000인 경우, 제2 인공지능 모델의 1 × 1의 엘리먼트는 111일 수 있고, 제1 인공지능 모델에서 3 × 2의 엘리먼트가 0001111111인 경우, 제2 인공지능 모델의 3 × 2의 엘리먼트는 000일 수 있다. 그리고, 복수의 제2 엘리먼트 각각의 비트 수는 동일할 수 있다.
여기서, 적어도 하나의 상위 비트는 바이너리 데이터에서 최고값을 갖는 비트 위치부터 기설정된 개수의 연속된 비트를 의미할 수 있다. 상술한 예에서 하나의 상위 비트는 1이고, 두 개의 상위 비트는 11이며, 세 개의 상위 비트는 111이고, 네 개의 상위 비트는 1110일 수 있다.
한편, 이상에서는 제1 인공지능 모델 및 제2 인공지능 모델이 각각 m × n의 매트릭스 형태인 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 제1 인공지능 모델 및 제2 인공지능 모델 각각은 m × n의 제1 매트릭스 및 n × p의 제2 매트릭스 형태일 수도 있으며, 학습 과정에서 인공지능 모델의 레이어의 개수에 따라 얼마든지 다른 형태일 수 있다.
프로세서(120)는 제2 인공지능 모델에 기초하여 입력 데이터에 대한 출력 데이터를 획득할 수 있다. 여기서, 입력 데이터는 음소(phonemes) 단위의 사용자 음성이 디지털 신호로 변환한 데이터일 수 있다. 다만, 이에 한정되는 것은 아니며, 입력 데이터는 제1 인공지능 모델에 따라 달라질 수 있다. 예를 들어, 제1 인공지능 모델이 이미지 인식을 위한 모델이라면, 입력 데이터는 이미지일 수 있다. 여기서, 음소는 의미를 분화시키는 소리의 단위일 수 있다. 그리고, 입력 데이터는 음소 뿐만 아니라 알파벳, 단어, 음절 등의 단위일 수도 있다.
출력 데이터는 음소 단위의 사용자 음성의 인식 결과일 수 있다. 예를 들어, 사용자 음성이 "good"이면, 마이크를 통해 "good"에 대응되는 디지털 신호가 프로세서(120)로 제공되며, 이때 프로세서(120)는 디지털 신호를 입력받을 뿐 입력된 신호가 "good"임은 인식할 수 없다. 이후, 프로세서(120)는 제2 인공지능 모델에 기초하여 디지털 신호에 대한 출력 데이터를 획득하며, 이때 프로세서(120)는 출력 데이터가 "good"임을 인식할 수 있다.
프로세서(120)는 입력 데이터를 제2 인공지능 모델에 적용하여 복수의 제1 출력 엘리먼트를 획득하고, 복수의 제1 출력 엘리먼트의 크기에 기초하여 복수의 제1 출력 엘리먼트 중 하나를 출력 데이터로서 획득할 수 있다.
예를 들어, 프로세서(120)는 복수의 제1 출력 엘리먼트 중 크기가 가장 큰 제1 출력 엘리먼트 및 두 번째로 크기가 큰 제1 출력 엘리먼트의 차이가 기설정된 크기 이상이면, 크기가 가장 큰 제1 출력 엘리먼트를 출력 데이터로서 획득할 수 있다.
또한, 제2 메모리(125)는 복수의 제3 엘리먼트를 포함하는 제3 인공지능 모델을 저장할 수 있다. 여기서, 제3 인공지능 모델은 제1 인공지능 모델의 일부 데이터만을 포함할 수 있다. 다만, 제3 인공지능 모델의 형태는 제1 인공지능 모델의 형태와 동일할 수 있다.
예를 들어, 제1 인공지능 모델이 m × n의 매트릭스 형태인 경우, 제3 인공지능 모델 역시 m × n의 매트릭스 형태일 수 있다. 그리고, 제1 인공지능 모델에 포함된 복수의 제1 엘리먼트 각각이 10 비트라면, 제3 인공지능 모델에 포함된 복수의 제2 엘리먼트 각각은 10 비트보다 작을 수 있다.
복수의 제3 엘리먼트 각각은 복수의 제1 엘리먼트 각각에 포함된 복수의 비트 중 복수의 제2 엘리먼트 각각에 포함된 적어도 하나의 비트를 제외한, 적어도 하나의 상위 비트를 포함할 수 있다.
예를 들어, 제1 인공지능 모델에서 1 × 1의 엘리먼트가 1110001111이고 제2 인공지능 모델의 1 × 1의 엘리먼트가 111인 경우, 제3 인공지능 모델의 1 × 1의 엘리먼트는 000이고, 제1 인공지능 모델에서 3 × 2의 엘리먼트가 0001010000이고 제2 인공지능 모델의 3 × 2의 엘리먼트가 000인 경우, 제3 인공지능 모델의 3 × 2의 엘리먼트는 101일 수 있다. 그리고, 복수의 제3 엘리먼트 각각의 비트 수는 동일할 수 있다.
프로세서(120)는 제1 출력 엘리먼트 간의 차이가 기설정된 크기 미만이면, 복수의 제1 출력 엘리먼트를 제2 메모리(125)에 저장하며, 입력 데이터를 제3 인공지능 모델에 적용하여 복수의 제1 중간 엘리먼트를 획득하고, 제1 출력 엘리먼트 및 제1 중간 엘리먼트에 기초하여 복수의 제2 출력 엘리먼트를 획득하며, 복수의 제2 출력 엘리먼트의 크기에 기초하여 복수의 제2 출력 엘리먼트 중 하나를 출력 데이터로서 획득할 수 있다.
제2 인공지능 모델은 제1 인공지능 모델보다 정확도가 떨어지며, 프로세서(120)는 제2 인공지능 모델에 의한 출력 데이터의 정확도가 낮다고 판단할 수 있다. 이 경우, 프로세서(120)는 제1 인공지능 모델보다는 정확도가 떨어지나, 제2 인공지능 모델보다는 정확도가 향상된 제3 인공지능 모델을 이용하여 출력 데이터를 획득할 수 있다.
프로세서(120)는 복수의 제2 출력 엘리먼트 중 크기가 가장 큰 제2 출력 엘리먼트 및 두 번째로 크기가 큰 제2 출력 엘리먼트의 차이가 기설정된 크기 이상이면, 크기가 가장 큰 제2 출력 엘리먼트를 출력 데이터로서 획득할 수 있다.
프로세서(120)는 제2 출력 엘리먼트 간의 차이가 기설정된 크기 미만이면, 복수의 제2 출력 엘리먼트를 제2 메모리(125)에 저장하며, 복수의 제1 엘리먼트 중 복수의 제2 엘리먼트 및 복수의 제3 엘리먼트를 제외한 나머지를 제1 메모리로부터 획득하고, 획득된 나머지 제1 엘리먼트 및 입력 데이터를 연산하여 복수의 제2 중간 엘리먼트를 획득하며, 제2 출력 엘리먼트 및 제2 중간 엘리먼트에 기초하여 복수의 제3 출력 엘리먼트를 획득하고, 복수의 제3 출력 엘리먼트 중 크기가 가장 큰 제3 출력 엘리먼트를 출력 데이터로서 획득할 수 있다.
제3 인공지능 모델은 제1 인공지능 모델보다 정확도가 떨어지며, 프로세서(120)는 제3 인공지능 모델에 의한 출력 데이터의 정확도가 낮다고 판단할 수 있다. 이 경우, 프로세서(120)는 제1 인공지능 모델을 이용하여 출력 데이터를 획득할 수 있다.
이상에서는 복수의 출력 엘리먼트의 크기에 기초하여 출력 데이터를 획득하거나 추가 연산을 수행하는 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 프로세서(120)는 복수의 제2 출력 엘리먼트 각각의 크기, 기울기, 이동 평균 및 소프트맥스(softmax) 중 적어도 하나에 기초하여 복수의 제2 출력 엘리먼트 중 하나를 출력 데이터로 획득할 수도 있다.
한편, 프로세서(120)는 입력 데이터를 제2 인공지능 모델에 적용하는 적어도 하나의 곱셈기를 포함할 수 있다.
적어도 하나의 곱셈기는 입력 데이터에 포함된 복수의 엘리먼트 중 하나를 입력받고, 입력된 엘리먼트를 싸이클에 따라 시프트하여 출력하는 시프터, 복수의 제2 엘리먼트 중 시프터에 입력된 엘리먼트에 대응되는 제2 엘리먼트를 입력받고, 제2 입력된 엘리먼트에 포함된 적어도 하나의 비트를 싸이클에 따라 출력하는 FIFO 메모리 및 싸이클에 따라 시프터로부터 출력되는 엘리먼트 및 FIFO 메모리로부터 출력되는 제2 엘리먼트의 연산 결과를 입력받아 누적하는 어큐뮬레이터(accumulator)를 포함할 수 있다. 이에 대한 구체적인 설명은 후술한다.
이상과 같은 방법을 통해 프로세서(120)는 연산 속도 및 에너지 효율을 향상시킬 수 있다.
이하에서는 도면을 통해 프로세서(120)의 동작을 좀더 구체적으로 설명한다.
도 2a 내지 도 2d는 본 개시의 일 실시 예에 따른 제1 메모리(110) 및 제2 메모리(125)에 저장된 데이터를 설명하기 위한 도면들이다.
도 2a는 제1 메모리(110)에 저장된 제1 인공지능 모델을 나타내는 도면이다. 제1 인공지능 모델은 m × n의 매트릭스 형태일 수 있다. 제1 인공지능 모델은 m × n개의 제1 엘리먼트를 포함할 수 있으며, 제1 엘리먼트 각각은 5 비트일 수 있다.
도 2b의 상단은 제2 메모리(125)에 저장된 인공지능 모델을 나타내는 도면이다. 제2 메모리(125)에 저장된 인공지능 모델은 제1 인공지능 모델과 동일한 형태의 m × n의 매트릭스 형태일 수 있다. 제2 메모리(125)에 저장된 인공지능 모델은 m × n개의 엘리먼트를 포함할 수 있으며, 엘리먼트 각각은 3 비트일 수 있다. 여기서, 3 비트의 엘리먼트 각각은 대응되는 제1 엘리먼트 중 상위 3개의 비트일 수 있다.
제2 메모리(125)에 저장된 인공지능 모델은 도 2b의 하단과 같이, 제2 인공지능 모델 및 제3 인공지능 모델로 분류될 수 있다. 도 2b 하단의 좌측(A)에 도시된 바와 같이, 제2 인공지능 모델은 m × n개의 제2 엘리먼트를 포함할 수 있고, 제2 엘리먼트 각각은 1 비트일 수 있다. 여기서, 1 비트의 제2 엘리먼트 각각은 제2 메모리(125)에 저장된 인공지능 모델에서 대응되는 3 비트의 엘리먼트 중 상위 1개의 비트일 수 있다.
도 2b 하단의 우측(B)에 도시된 바와 같이, 제3 인공지능 모델은 m × n개의 제3 엘리먼트를 포함할 수 있고, 제3 엘리먼트 각각은 2 비트일 수 있다. 여기서, 2 비트의 제3 엘리먼트 각각은 제2 메모리(125)에 저장된 인공지능 모델에서 대응되는 3 비트의 엘리먼트 중 제2 엘리먼트를 제외한 2개의 비트일 수 있다.
이상에서는 제1 엘리먼트가 5 비트이고, 제2 엘리먼트가 1 비트이며, 제3 엘리먼트가 2 비트인 것으로 설명하였으나, 이에 한정되는 것은 아니다. 즉, 제2 엘리먼트 및 제3 엘리먼트의 비트 수의 합이 제1 엘리먼트의 비트 수 이내이면, 제1 엘리먼트 내지 제3 엘리먼트는 얼마든지 다른 개수의 비트로 구성될 수도 있다.
프로세서(120)는 연산의 정확도에 기초하여 제1 인공지능 모델의 일부를 제2 메모리(125)에 저장할 수 있다. 예를 들어, 제1 인공지능 모델에 포함된 복수의 제1 엘리먼트의 비트 중 상위 3 개의 비트만으로 90% 이상의 정확도를 확보할 수 있다면, 프로세서(120)는 제1 인공지능 모델에 포함된 복수의 제1 엘리먼트의 비트 중 상위 3 개의 비트만을 포함하는 인공지능 모델을 제2 메모리(125)에 저장할 수 있다. 연산의 정확도에 대하여는 후술한다.
또는, 프로세서(120)는 제2 메모리(125)의 용량에 기초하여 제1 인공지능 모델의 일부를 제2 메모리(125)에 저장할 수 있다. 예를 들어, 제2 메모리(125)가 제1 인공지능 모델의 용량 중 절반만을 저장할 수 있다면, 프로세서(120)는 제1 인공지능 모델에 포함된 복수의 제1 엘리먼트의 비트 중 상위 절반의 비트만을 포함하는 인공지능 모델을 제2 메모리(125)에 저장할 수 있다.
프로세서(120)는 그 밖에 다양한 방법으로 제2 메모리(125)에 저장될 인공지능 모델을 제1 인공지능 모델로부터 획득할 수 있다.
도 2c는 제1 인공지능 모델에 따른 음소 분류 경계면(hyperplane)을 간략하게 나타낸 도면이고, 도 2d는 제2 인공지능 모델에 따른 음소 분류 경계면을 간략하게 나타낸 도면이다.
먼저, 도 2c에 따르면, 프로세서(120)는 제1 인공지능 모델에 기초하여 입력 데이터를 제1 출력 데이터(210), 제2 출력 데이터(211), 제3 출력 데이터(212), 제4 출력 데이터(213) 중 하나로 분류할 수 있다. 즉, 프로세서(120)는 입력 데이터를 제1 인공지능 모델에 적용하여 도 2c의 평면 중 한 지점으로 매핑할 수 있으며, 매핑된 지점에 따라 대응되는 출력 데이터를 획득할 수 있다.
예를 들어, 프로세서(120)는 도 2c에 따르면, 제1 입력 데이터(220)를 제2 출력 데이터(211)로 분류하고, 제2 입력 데이터(230)를 제3 출력 데이터(212)로 분류할 수 있다.
그리고, 도 2d에 따르면, 프로세서(120)는 제2 인공지능 모델에 기초하여 입력 데이터를 제1 출력 데이터(210), 제2 출력 데이터(211), 제3 출력 데이터(212), 제4 출력 데이터(213) 중 하나로 분류할 수 있으나, 경계면에서는 입력 데이터가 정확하게 분류되지 않을 수 있다.
예를 들어, 프로세서(120)는 도 2d에 따르면, 제1 입력 데이터(220)를 제2 출력 데이터(211)로 분류하나, 제2 입력 데이터(230)를 제2 출력 데이터(211)로 분류하게 되어, 도 2c와는 다른 결과를 도출할 수도 있다.
즉, 제2 인공지능 모델을 이용하는 경우 제1 인공지능 모델의 일부 데이터만을 포함하기 때문에 연산량이 감소하고, 저장 용량도 낮출 수 있다. 또한, 제2 인공지능 모델은 프로세서(120) 내부의 제2 메모리(125)에 저장되기 때문에, 프로세서(120) 외부의 제1 메모리(110)에 저장되는 제1 인공지능 모델을 이용하는 경우보다 프로세서(120)의 연산 속도가 향상될 수 있다.
다만, 도 2d에 도시된 바와 같이, 일부 입력 데이터에 대한 연산의 정확도가 낮아질 수 있다. 이하에서는 연산의 정확도를 향상시키는 방법에 대하여 설명한다.
도 3은 본 개시의 일 실시 예에 따른 입력 데이터를 나타내는 도면이다.
입력 데이터는 인공지능 모델과의 연산이 가능한 형태일 수 있다. 예를 들어, 인공지능 모델이 m × n의 매트릭스 형태인 경우, 입력 데이터는 n × 1의 매트릭스 형태 또는 1 × m의 매트릭스 형태일 수 있다. 입력 데이터에 포함된 복수의 엘리먼트는 복수의 비트로 표현될 수 있다.
다만, 입력 데이터는 얼마든지 다른 형태일 수 있다. 또한, 입력 데이터의 형태가 다르면 인공지능 모델의 학습 시 형태가 다른 입력 데이터에 기초하여 학습이 이루어지기 때문에 인공지능 모델의 형태도 달라질 수 있다.
즉, 입력 데이터의 형태는 인공지능 모델의 학습 시 이용된 입력 데이터와 형태가 동일하다면 어떠한 형태라도 무방하다.
도 4a 및 도 4b는 본 개시의 일 실시 예에 따른 연산의 정확도를 향상시키는 방법을 설명하기 위한 도면들이다.
먼저, 프로세서(120)는 도 4a에 도시된 바와 같이, 제2 인공지능 모델(A) 및 입력 데이터를 연산하여 복수의 제1 출력 엘리먼트(out 1 내지 out n)를 획득할 수 있다. 프로세서(120)는 복수의 제1 출력 엘리먼트(out 1 내지 out n) 중 크기가 가장 큰 제1 출력 엘리먼트 및 두 번째로 크기가 큰 제1 출력 엘리먼트의 차이가 기설정된 크기 이상이면, 크기가 가장 큰 제1 출력 엘리먼트를 출력 데이터로서 획득할 수 있다.
또는, 복수의 제1 출력 엘리먼트(out 1 내지 out n) 중 크기가 가장 큰 제1 출력 엘리먼트 및 두 번째로 크기가 큰 제1 출력 엘리먼트의 차이가 기설정된 크기 미만일 수 있으며, 이 경우 프로세서(120)는 복수의 제1 출력 엘리먼트(out 1 내지 out n)를 제2 메모리(125)에 저장할 수 있다.
그리고, 프로세서(120)는 도 4b에 도시된 바와 같이, 제3 인공지능 모델(B) 및 입력 데이터를 연산하여 복수의 제1 중간 엘리먼트(out' 1 내지 out' n)를 획득할 수 있다.
프로세서(120)는 복수의 제1 출력 엘리먼트(out 1 내지 out n) 및 복수의 제1 중간 엘리먼트(out' 1 내지 out' n)에 기초하여 복수의 제2 출력 엘리먼트를 획득할 수 있다. 여기서, 프로세서(120)는 제2 인공지능 모델 및 제3 인공지능 모델에 포함된 비트가 제1 인공지능 모델에서 위치하는 상대적인 자릿수에 기초하여 복수의 제1 출력 엘리먼트(out 1 내지 out n) 및 복수의 제1 중간 엘리먼트(out' 1 내지 out' n)로부터 복수의 제2 출력 엘리먼트를 획득할 수 있다.
예를 들어, 제1 인공지능 모델에 포함된 복수의 제1 엘리먼트는 각각 3 비트이고, 제2 인공지능 모델에 포함된 복수의 제2 엘리먼트 각각은 대응되는 3 비트의 제1 엘리먼트 중 상위 1 비트이며, 제3 인공지능 모델에 포함된 복수의 제3 엘리먼트 각각은 대응되는 3 비트의 제1 엘리먼트 중 가운데 1 비트라고 가정하면, 프로세서(120)는 복수의 제1 출력 엘리먼트(out 1 내지 out n) 각각의 자리를 1 비트 이동시켜 복수의 제1 중간 엘리먼트(out' 1 내지 out' n)와 덧셈 연산을 수행할 수 있다. 예를 들어, 프로세서(120)는 out 1 × 2 + out' 1을 수행하여 복수의 제2 출력 엘리먼트 중 하나를 획득할 수 있고, 나머지에 대하여도 동일하게 연산을 수행하여 복수의 제2 출력 엘리먼트를 획득할 수 있다.
프로세서(120)는 복수의 제2 출력 엘리먼트의 크기에 기초하여 복수의 제2 출력 엘리먼트 중 하나를 출력 데이터로서 획득할 수 있으며, 복수의 제1 출력 엘리먼트로부터 하나를 출력 데이터로서 획득하는 방법과 동일하므로 구체적인 설명은 생략한다.
프로세서(120)는 기 연산된 결과를 제2 메모리(125)에 저장하고, 기 연산에 이용된 제2 인공지능 모델에 포함된 비트를 제외한 제3 인공지능 모델을 이용하여 추가 연산을 수행하기 때문에 연산 속도를 향상시킬 수 있다.
이상에서는 출력 데이터를 획득하기 위해 출력 엘리먼트 중 크기가 가장 큰 출력 엘리먼트 및 두 번째로 크기가 큰 출력 엘리먼트의 차이를 이용하는 것으로 설명하였으나, 얼마든지 다른 방법이 이용될 수도 있다. 특히, 프로세서(120)는 복수의 언어 모델을 이용할 수 있으며, 이 경우 더욱 다양한 방법으로 연산의 정확도를 검토할 수 있다. 이에 대하여는 도 5a 및 도 5b에서 설명한다.
도 5a 및 도 5b는 본 개시의 다른 실시 예에 따른 연산의 정확도를 향상시키는 방법을 설명하기 위한 도면들이다.
도 5a 및 도 5b의 x축은 입력 데이터를 연산하기 위해 제1 인공지능 모델에 포함된 복수의 제1 엘리먼트에서 이용된 상위 비트의 개수를 나타낸다. 예를 들어, 도 5a 및 도 5b의 x축이 1인 경우는 제1 인공지능 모델에 포함된 복수의 제1 엘리먼트에서 상위 1 비트만이 이용된 경우를 나타내고, 도 5a 및 도 5b의 x축이 2인 경우는 제1 인공지능 모델에 포함된 복수의 제1 엘리먼트에서 상위 2 비트만이 이용된 경우를 나타내며, 나머지도 동일하므로 중복되는 설명은 생략한다.
도 5a 및 도 5b의 y축은 복수의 출력 엘리먼트를 나타내며, 설명의 편의를 위하여 복수의 출력 엘리먼트 중 3개만을 도시하였다. 복수의 출력 엘리먼트는 3개보다 많을 수도 있고, 적을 수도 있으며, 이는 인공지능 모델의 학습 시에 결정될 수 있다.
프로세서(120)는 도 5a 및 도 5b에 도시된 바와 같이, 연산에서 이용되는 인공지능 모델에 포함된 복수의 엘리먼트의 비트 수에 대한 복수의 출력 엘리먼트 각각의 크기, 기울기, 이동 평균 및 소프트맥스(softmax)를 획득할 수 있다. 그리고, 프로세서(120)는 복수의 출력 엘리먼트 각각의 크기, 기울기, 이동 평균 및 소프트맥스 중 적어도 하나에 기초하여 복수의 출력 엘리먼트 중 하나를 출력 데이터로 획득할 수 있다.
특히, 연산에서 이용되는 인공지능 모델에 포함된 복수의 엘리먼트의 비트 수가 늘어날수록 복수의 출력 엘리먼트의 경향성이 파악될 수 있다.
예를 들어, 프로세서(120)는 도 5a에 도시된 바와 같이, 1 비트의 복수의 엘리먼트를 포함하는 인공지능 모델을 이용했을 때, 크기가 가장 큰 출력 엘리먼트와 두 번째로 크기가 큰 출력 엘리먼트의 차이가 크면, 경향성이 유지될 것으로 판단하고, 추가 연산 없이 크기가 가장 큰 출력 엘리먼트를 출력 데이터로서 획득할 수 있다.
반면, 프로세서(120)는 도 5b에 도시된 바와 같이, 1 비트의 복수의 엘리먼트를 포함하는 인공지능 모델을 이용했을 때, 크기가 가장 큰 출력 엘리먼트와 두 번째로 크기가 큰 출력 엘리먼트의 차이가 크지 않으면, 경향성이 유지되지 않을 수도 있다고 판단하고, 추가 연산을 수행하게 된다. 이때, 프로세서(120)는 2 비트의 복수의 엘리먼트를 포함하는 인공지능 모델을 이용할 수도 있으나, 곧바로 5 비트의 복수의 엘리먼트를 포함하는 인공지능 모델을 이용할 수도 있다. 인공지능 모델에 포함된 복수의 엘리먼트의 비트 수가 증가함에 따라 두 번째로 크기가 큰 출력 엘리먼트의 크기가 가장 커지면, 프로세서(120)는 크기가 가장 커진 출력 엘리먼트를 출력 데이터로서 획득할 수 있다.
한편, 프로세서(120)는 제1 메모리(110)에 저장된 제1 인공지능 모델의 일부를 제2 메모리(125)에 저장할 수 있다. 그리고, 프로세서(120)는 제2 메모리(125)에 저장된 데이터로부터 일부만을 독출하여 연산을 수행할 수도 있다.
예를 들어, 제1 인공지능 모델에 포함된 복수의 제1 엘리먼트는 각각 10 비트이고, 프로세서(120)는 제1 엘리먼트 각각에서 상위 5 비트만을 제2 메모리(125)에 저장할 수 있다. 프로세서(120)는 제2 메모리(125)에 저장된 데이터 중 상위 1 비트를 독출하여 인공지능 모델을 형성하고, 형성된 인공지능 모델로 입력 데이터에 대한 복수의 출력 엘리먼트를 획득할 수 있다. 그리고, 연산의 정확도가 부정확하다고 판단되면, 프로세서(120)는 제2 메모리(125)에 저장된 데이터 중 두 번째 상위 1 비트를 독출하여 인공지능 모델을 형성하고, 형성된 인공지능 모델로 입력 데이터에 대한 복수의 중간 엘리먼트를 획득하며, 이전 연산에서 획득된 복수의 출력 엘리먼트 및 복수의 중간 엘리먼트를 이용하여 복수의 출력 엘리먼트를 획득할 수 있다.
즉, 제2 메모리(125)는 제1 메모리(110)에 저장된 제1 인공지능 모델의 일부만을 저장하고, 프로세서(120)는 제2 메모리(125)에 저장된 데이터 중 일부만을 독출하여 다양한 인공지능 모델로서 입력 데이터에 대한 출력 데이터를 획득할 수 있다.
도 6은 본 개시의 일 실시 예에 따른 제1 인공지능 모델을 이용하는 경우를 설명하기 위한 도면이다.
프로세서(120)는 제2 메모리(125)에 저장된 인공지능 모델을 이용하여 도 5a 및 도 5b에서 설명한 바와 같은 경향성이 파악되지 않는 경우, 제1 메모리(110)에 저장된 제1 인공지능 모델을 이용할 수 있다.
이때, 프로세서(120)는 제2 메모리(125)에 저장된 인공지능 모델을 이용하여 연산된 결과를 제2 메모리(125)에 저장할 수 있다. 그리고, 프로세서(120)는 복수의 제1 엘리먼트 중 복수의 제2 엘리먼트 및 복수의 제3 엘리먼트를 제외한 나머지를 제1 메모리(110)로부터 획득할 수 있다. 즉, 프로세서(120)는 제1 메모리(110)에 저장된 제1 인공지능 모델에서 제2 메모리(125)에 저장된 인공지능 모델을 제외한 나머지를 제1 메모리(110)로부터 획득할 수 있다. 도 6에 도시된 인공지능 모델은 도 2a의 제1 인공지능 모델에서 도 2b의 제2 메모리(125)에 저장된 인공지능 모델을 제외한 나머지일 수 있다.
그리고, 프로세서(120)는 획득된 나머지 제1 엘리먼트 및 입력 데이터를 연산하여 복수의 제2 중간 엘리먼트(out'' 1 내지 out'' n)를 획득할 수 있다. 프로세서(120)는 복수의 제2 출력 엘리먼트 및 복수의 제2 중간 엘리먼트(out'' 1 내지 out'' n)에 기초하여 복수의 제3 출력 엘리먼트를 획득할 수 있다. 복수의 제3 출력 엘리먼트를 획득하는 방법은 복수의 제2 출력 엘리먼트를 획득하는 방법과 동일하므로 중복되는 설명은 생략한다.
프로세서(120)는 복수의 제3 출력 엘리먼트 중 크기가 가장 큰 제3 출력 엘리먼트를 출력 데이터로서 획득할 수 있다. 도 6에서는 복수의 제1 엘리먼트 각각에 포함된 모든 비트를 이용하기 때문에 프로세서(120)는 추가 연산을 수행할 수 없다. 즉, 프로세서(120)는 복수의 제3 출력 엘리먼트를 획득한 후 추가 연산을 수행할 수 없다. 그에 따라, 복수의 제3 출력 엘리먼트 중 크기가 가장 큰 제3 출력 엘리먼트가 출력 데이터일 수 있다.
한편, 도 6에서는 제1 인공지능 모델에서 제2 메모리(125)에 저장된 인공지능 모델을 제외한 나머지를 이용하여 연산을 수행하는 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 프로세서(120)는 제1 인공지능 모델에서 제2 메모리(125)에 저장된 인공지능 모델을 제외한 나머지 중 상위 1 비트만을 독출하여 인공지능 모델을 형성하고, 형성된 인공지능 모델을 이용하여 입력 데이터에 대한 복수의 출력 엘리먼트를 획득할 수도 있다. 이 경우, 프로세서(120)는 복수의 출력 엘리먼트의 크기에 기초하여 추가 연산을 수행할 수도 있다.
도 7은 본 개시의 일 실시 예에 따른 RNN 연산을 설명하기 위한 도면이다.
이상에서는 도 2a와 같이 제1 인공지능 모델이 하나의 매트릭스 형성되는 것으로 설명하였으나, 이는 설명의 편의를 위한 것으로 제1 인공지능 모델은 복수의 매트릭스를 포함할 수 있다.
예를 들어, 도 7에 도시된 바와 같이, 제1 인공지능 모델은 W0, W1, W2, R1, R2의 매트릭스를 포함할 수 있다. 또한, 프로세서(120)는 W0, W1, W2, R1, R2를 포함하는 제1 레이어(710)를 이용하여 동일한 연산을 반복하여 출력 데이터를 획득할 수 있다. 즉, 제1 인공지능 모델은 복수의 레이어를 포함할 수도 있다.
그리고, 프로세서(120)는 입력 데이터(720)를 W0에 입력하여 제1 출력 데이터(730)를 획득하고, 제1 출력 데이터(730)를 W1에 입력하여 제2 출력 데이터(740)를 획득할 수 있다. 프로세서(120)는 제2 출력 데이터(740)를 W2 및 R1에 입력할 수 있다. 즉, 프로세서(120)는 중간 연산 결과를 복수의 입력으로 이용할 수 있다. 또한, 프로세서(120)는 중간 연산 결과를 제2 메모리(125)에 저장할 수 있다.
도 7은 제1 인공지능 모델의 일 예를 나타낸 것으로, 제1 인공지능 모델은 얼마든지 다른 형태일 수도 있다.
도 8a 및 도 8b는 곱셈 연산을 설명하기 위한 도면들이다.
프로세서(120)는 도 8a에 도시된 바와 같이, 복수의 연산 소자(Processing Element, PE)를 포함할 수 있다. 복수의 연산 소자는 매트릭스 형태로 배열되며, 연산 소자 각각은 기본적으로 곱셈기(multiplier) 및 산술 논리 연산 장치(Arithmetic Logic Unit, ALU)를 포함하며, ALU는 적어도 하나 이상의 가산기(adder)를 포함할 수 있다. 연산 소자는 곱셈기 및 ALU를 이용하여 사칙 연산을 수행할 수 있다. 다만, 이에 한정되는 것은 아니며, 사칙 연산 및 시프트 등과 같은 기능을 수행할 수 있다면 얼마든지 다른 구조로 형성될 수도 있다.
적어도 하나의 곱셈기는 도 8b에 도시된 바와 같이, 입력 데이터에 포함된 복수의 엘리먼트 중 하나를 입력받고, 입력된 엘리먼트를 싸이클에 따라 시프트하여 출력하는 시프터(810), 복수의 제2 엘리먼트 중 시프터(810)에 입력된 엘리먼트에 대응되는 제2 엘리먼트를 입력받고, 제2 입력된 엘리먼트에 포함된 적어도 하나의 비트를 싸이클에 따라 출력하는 FIFO 메모리(820) 및 싸이클에 따라 시프터(810)로부터 출력되는 엘리먼트 및 FIFO 메모리(820)로부터 출력되는 제2 엘리먼트의 연산 결과를 입력받아 누적하는 어큐뮬레이터(accumulator, 830)를 포함할 수 있다.
즉, FIFO 메모리(820)에서 출력되는 데이터가 0이면 0이 어큐뮬레이터(830)로 입력되고, FIFO 메모리(820)에서 출력되는 데이터가 1이면, 시프터(810)를 통해 출력되는 데이터가 어큐뮬레이터(830)로 입력되어 누적될 수 있다.
도 9a 및 도 9b는 본 개시의 일 실시 예에 따른 연산 속도 및 에너지 소모량을 설명하기 위한 도면들이다.
상술한 바와 같이, 프로세서(120)는 제1 인공지능 모델이 아닌 제1 인공지능 모델의 일부만을 이용함에 따라 연산 속도가 향상될 수 있다. 도 9a에서 제1 인공지능 모델은 A + B + C + D이고, 프로세서(120)는 먼저 비트 수가 가장 적은 A 인공지능 모델을 이용하여 연산을 수행할 수 있다. 그리고, 프로세서(120)는 A 인공지능 모델에 의한 연산 결과가 부정확하다고 판단되면, B 인공지능 모델을 추가로 이용할 수 있다.
즉, 도 9a에 도시된 바와 같이, A 인공지능 모델만을 이용하여 대부분의 입력 데이터에 대한 출력 데이터의 획득이 가능하며, 도 9b와 같이 모든 입력 데이터에 대하여 제1 인공지능 모델 전체를 이용하는 경우보다 연산 속도 및 에너지 소모량에서 향상된 퍼포먼스를 갖는다.
도 10a 내지 도 10c는 본 개시의 다양한 실시 예에 따른 제2 메모리(125)에 저장될 인공지능 모델을 분류하는 방법을 설명하기 위한 도면들이다.
이상에서는 각 그룹에 포함되는 복수의 엘리먼트의 비트 수가 동일한 것으로 설명하였다. 예를 들어, 도 10a에 도시된 바와 같이, A 그룹은 복수의 제1 엘리먼트 각각에서 상위 1 비트를 포함하고, B 그룹은 복수의 제1 엘리먼트 각각에서 상위 두 번째부터 네 번째 비트를 포함하고, C 그룹은 복수의 제1 엘리먼트 각각에서 상위 다섯 번째부터 아홉 번째 비트를 포함하고, D 그룹은 복수의 제1 엘리먼트 각각에서 상위 열 번째부터 나머지 비트를 포함할 수 있다.
다만, 이에 한정되는 것은 아니며, 도 10b와 같이 복수의 제1 엘리먼트 각각에서 각 그룹에 포함되는 비트의 개수가 다를 수도 있다. 또는, 도 10c와 같이 복수의 제1 엘리먼트 중 일부만이 A 그룹에 포함되고, 나머지 그룹에는 포함되지 않을 수도 있다.
도 11은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
먼저, 복수의 제1 엘리먼트를 포함하는 제1 인공지능 모델을 전자 장치의 제1 메모리에 저장한다(S1110). 그리고, 복수의 제2 엘리먼트를 포함하는 제2 인공지능 모델을 전자 장치의 프로세서에 구비된 제2 메모리에 저장한다(S1120). 그리고, 제2 인공지능 모델에 기초하여 입력 데이터에 대한 출력 데이터를 획득한다(S1130). 여기서, 제1 인공지능 모델은 인공지능 알고리즘을 통해 학습(training)되며, 복수의 제2 엘리먼트 각각은 복수의 제1 엘리먼트 각각에 포함된 복수의 비트 중 적어도 하나의 상위 비트를 포함할 수 있다.
여기서, 획득하는 단계(S1130)는 입력 데이터를 제2 인공지능 모델에 적용하여 복수의 제1 출력 엘리먼트를 획득하는 단계 및 복수의 제1 출력 엘리먼트의 크기에 기초하여 복수의 제1 출력 엘리먼트 중 하나를 출력 데이터로서 획득하는 단계를 포함할 수 있다.
그리고, 복수의 제1 출력 엘리먼트 중 하나를 출력 데이터로서 획득하는 단계는 복수의 제1 출력 엘리먼트 중 크기가 가장 큰 제1 출력 엘리먼트 및 두 번째로 크기가 큰 제1 출력 엘리먼트의 차이가 기설정된 크기 이상이면, 크기가 가장 큰 제1 출력 엘리먼트를 출력 데이터로서 획득할 수 있다.
또는, 복수의 제3 엘리먼트를 포함하는 제3 인공지능 모델을 제2 메모리에 저장하는 단계, 제1 출력 엘리먼트 간의 차이가 기설정된 크기 미만이면, 복수의 제1 출력 엘리먼트를 제2 메모리에 저장하는 단계, 입력 데이터를 제3 인공지능 모델에 적용하여 복수의 제1 중간 엘리먼트를 획득하는 단계, 제1 출력 엘리먼트 및 제1 중간 엘리먼트에 기초하여 복수의 제2 출력 엘리먼트를 획득하는 단계 및 복수의 제2 출력 엘리먼트의 크기에 기초하여 복수의 제2 출력 엘리먼트 중 하나를 출력 데이터로서 획득하는 단계를 더 포함하고, 복수의 제3 엘리먼트 각각은 복수의 제1 엘리먼트 각각에 포함된 복수의 비트 중 복수의 제2 엘리먼트 각각에 포함된 적어도 하나의 비트를 제외한, 적어도 하나의 상위 비트를 포함할 수 있다.
그리고, 복수의 제2 출력 엘리먼트 중 하나를 출력 데이터로서 획득하는 단계는 복수의 제2 출력 엘리먼트 중 크기가 가장 큰 제2 출력 엘리먼트 및 두 번째로 크기가 큰 제2 출력 엘리먼트의 차이가 기설정된 크기 이상이면, 크기가 가장 큰 제2 출력 엘리먼트를 출력 데이터로서 획득할 수 있다.
여기서, 제2 출력 엘리먼트 간의 차이가 기설정된 크기 미만이면, 복수의 제2 출력 엘리먼트를 제2 메모리에 저장하는 단계, 복수의 제1 엘리먼트 중 복수의 제2 엘리먼트 및 복수의 제3 엘리먼트를 제외한 나머지를 제1 메모리로부터 획득하는 단계, 획득된 나머지 제1 엘리먼트 및 입력 데이터를 연산하여 복수의 제2 중간 엘리먼트를 획득하는 단계, 제2 출력 엘리먼트 및 제2 중간 엘리먼트에 기초하여 복수의 제3 출력 엘리먼트를 획득하는 단계 및 복수의 제3 출력 엘리먼트 중 크기가 가장 큰 제3 출력 엘리먼트를 출력 데이터로서 획득하는 단계를 더 포함할 수 있다.
복수의 제2 출력 엘리먼트 중 하나를 출력 데이터로서 획득하는 단계는 복수의 제2 출력 엘리먼트 각각의 크기, 기울기, 이동 평균 및 소프트맥스(softmax) 중 적어도 하나에 기초하여 복수의 제2 출력 엘리먼트 중 하나를 출력 데이터로 획득할 수 있다.
한편, 획득하는 단계(S1130)는 적어도 하나의 곱셈 연산을 통해 입력 데이터를 제2 인공지능 모델에 적용할 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 전자 장치의 프로세서는 압축된 인공지능 모델이 저장된 내부 메모리를 구비하고, 압축된 인공지능 모델을 이용하여 연산을 수행함에 따라 연산 속도를 향상시키고, 인공지능 모델이 저장된 외부 메모리와의 데이터 전송을 최소화함에 따라 에너지 효율을 향상시킬 수 있다.
한편, 이상에서는 복수의 출력 엘리먼트 중 크기가 가장 큰 엘리먼트 및 두 번째로 크기가 큰 엘리먼트의 차이와 기설정된 크기를 비교하는 것으로 설명하였으나, 기설정된 크기는 단계마다 다를 수 있다. 상술한 예에서 프로세서(120)는 복수의 제1 출력 엘리먼트 중 크기가 가장 큰 제1 출력 엘리먼트 및 두 번째로 크기가 큰 제1 출력 엘리먼트의 차이는 기설정된 제1 크기와 비교하고, 복수의 제2 출력 엘리먼트 중 크기가 가장 큰 제2 출력 엘리먼트 및 두 번째로 크기가 큰 제2 출력 엘리먼트의 차이는 기설정된 제2 크기와 비교할 수 있다.
한편, LSTM(Long-Short term Memory) 방식에서도 이상과 같이 인공지능 모델에 포함된 복수의 엘리먼트 중 일부 비트만을 이용하여 출력 데이터를 획득할 수도 있으며, 이 경우 LSTM 방식의 각 단계에서 연산 속도가 향상되고, 에너지 소모량이 감소할 수 있다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.
한편, 상술한 다양한 실시 예들에 따른 기기의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium)에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 기기에서의 처리 동작을 특정 기기가 수행하도록 한다. 비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 전자 장치
110 : 제1 메모리
120 : 프로세서 125 : 제2 메모리
120 : 프로세서 125 : 제2 메모리
Claims (18)
- 복수의 제1 엘리먼트를 포함하는 제1 인공지능 모델이 저장된 제1 메모리; 및
복수의 제2 엘리먼트를 포함하는 제2 인공지능 모델이 저장된 제2 메모리를 구비하며, 상기 제2 인공지능 모델에 기초하여 입력 데이터에 대한 출력 데이터를 획득하는 프로세서;를 포함하고,
상기 제1 인공지능 모델은, 인공지능 알고리즘을 통해 학습(training)되며,
상기 복수의 제2 엘리먼트 각각은, 상기 복수의 제1 엘리먼트 각각에 포함된 복수의 비트 중 적어도 하나의 상위 비트를 포함하는, 전자 장치. - 제1항에 있어서,
상기 프로세서는,
상기 입력 데이터를 상기 제2 인공지능 모델에 적용하여 복수의 제1 출력 엘리먼트를 획득하고, 상기 복수의 제1 출력 엘리먼트의 크기에 기초하여 상기 복수의 제1 출력 엘리먼트 중 하나를 상기 출력 데이터로서 획득하는, 전자 장치. - 제2항에 있어서,
상기 프로세서는,
상기 복수의 제1 출력 엘리먼트 중 크기가 가장 큰 제1 출력 엘리먼트 및 두 번째로 크기가 큰 제1 출력 엘리먼트의 차이가 기설정된 크기 이상이면, 상기 크기가 가장 큰 제1 출력 엘리먼트를 상기 출력 데이터로서 획득하는, 전자 장치. - 제3항에 있어서,
상기 제2 메모리는, 복수의 제3 엘리먼트를 포함하는 제3 인공지능 모델을 저장하며,
상기 프로세서는,
상기 제1 출력 엘리먼트 간의 차이가 상기 기설정된 크기 미만이면, 상기 복수의 제1 출력 엘리먼트를 상기 제2 메모리에 저장하며,
상기 입력 데이터를 상기 제3 인공지능 모델에 적용하여 복수의 제1 중간 엘리먼트를 획득하고,
상기 제1 출력 엘리먼트 및 상기 제1 중간 엘리먼트에 기초하여 복수의 제2 출력 엘리먼트를 획득하며,
상기 복수의 제2 출력 엘리먼트의 크기에 기초하여 상기 복수의 제2 출력 엘리먼트 중 하나를 상기 출력 데이터로서 획득하고,
상기 복수의 제3 엘리먼트 각각은, 상기 복수의 제1 엘리먼트 각각에 포함된 복수의 비트 중 상기 복수의 제2 엘리먼트 각각에 포함된 적어도 하나의 비트를 제외한, 적어도 하나의 상위 비트를 포함하는, 전자 장치. - 제4항에 있어서,
상기 프로세서는,
상기 복수의 제2 출력 엘리먼트 중 크기가 가장 큰 제2 출력 엘리먼트 및 두 번째로 크기가 큰 제2 출력 엘리먼트의 차이가 상기 기설정된 크기 이상이면, 상기 크기가 가장 큰 제2 출력 엘리먼트를 상기 출력 데이터로서 획득하는, 전자 장치. - 제5항에 있어서,
상기 프로세서는,
상기 제2 출력 엘리먼트 간의 차이가 상기 기설정된 크기 미만이면, 상기 복수의 제2 출력 엘리먼트를 상기 제2 메모리에 저장하며,
상기 복수의 제1 엘리먼트 중 상기 복수의 제2 엘리먼트 및 상기 복수의 제3 엘리먼트를 제외한 나머지를 상기 제1 메모리로부터 획득하고,
상기 획득된 나머지 제1 엘리먼트 및 상기 입력 데이터를 연산하여 복수의 제2 중간 엘리먼트를 획득하며,
상기 제2 출력 엘리먼트 및 상기 제2 중간 엘리먼트에 기초하여 복수의 제3 출력 엘리먼트를 획득하고,
상기 복수의 제3 출력 엘리먼트 중 크기가 가장 큰 제3 출력 엘리먼트를 상기 출력 데이터로서 획득하는, 전자 장치. - 제4항에 있어서,
상기 프로세서는,
상기 복수의 제2 출력 엘리먼트 각각의 크기, 기울기, 이동 평균 및 소프트맥스(softmax) 중 적어도 하나에 기초하여 상기 복수의 제2 출력 엘리먼트 중 하나를 상기 출력 데이터로 획득하는, 전자 장치. - 제1항에 있어서,
상기 프로세서는,
상기 입력 데이터를 상기 제2 인공지능 모델에 적용하는 적어도 하나의 곱셈기를 포함하는, 전자 장치. - 제8항에 있어서,
상기 적어도 하나의 곱셈기는,
상기 입력 데이터에 포함된 복수의 엘리먼트 중 하나를 입력받고, 상기 입력된 엘리먼트를 싸이클에 따라 시프트하여 출력하는 시프터;
상기 복수의 제2 엘리먼트 중 상기 시프터에 입력된 엘리먼트에 대응되는 제2 엘리먼트를 입력받고, 상기 제2 입력된 엘리먼트에 포함된 적어도 하나의 비트를 상기 싸이클에 따라 출력하는 FIFO 메모리; 및
상기 싸이클에 따라 상기 시프터로부터 출력되는 엘리먼트 및 상기 FIFO 메모리로부터 출력되는 제2 엘리먼트의 연산 결과를 입력받아 누적하는 어큐뮬레이터(accumulator);를 포함하는, 전자 장치. - 제1 메모리 및 프로세서를 포함하는 전자 장치의 제어 방법에 있어서,
복수의 제1 엘리먼트를 포함하는 제1 인공지능 모델을 상기 제1 메모리에 저장하는 단계;
복수의 제2 엘리먼트를 포함하는 제2 인공지능 모델을 상기 프로세서에 구비된 제2 메모리에 저장하는 단계; 및
상기 제2 인공지능 모델에 기초하여 입력 데이터에 대한 출력 데이터를 획득하는 단계;를 포함하고,
상기 제1 인공지능 모델은, 인공지능 알고리즘을 통해 학습(training)되며,
상기 복수의 제2 엘리먼트 각각은, 상기 복수의 제1 엘리먼트 각각에 포함된 복수의 비트 중 적어도 하나의 상위 비트를 포함하는, 제어 방법. - 제10항에 있어서,
상기 획득하는 단계는,
상기 입력 데이터를 상기 제2 인공지능 모델에 적용하여 복수의 제1 출력 엘리먼트를 획득하는 단계; 및
상기 복수의 제1 출력 엘리먼트의 크기에 기초하여 상기 복수의 제1 출력 엘리먼트 중 하나를 상기 출력 데이터로서 획득하는 단계;를 포함하는, 제어 방법. - 제11항에 있어서,
상기 복수의 제1 출력 엘리먼트 중 하나를 상기 출력 데이터로서 획득하는 단계는,
상기 복수의 제1 출력 엘리먼트 중 크기가 가장 큰 제1 출력 엘리먼트 및 두 번째로 크기가 큰 제1 출력 엘리먼트의 차이가 기설정된 크기 이상이면, 상기 크기가 가장 큰 제1 출력 엘리먼트를 상기 출력 데이터로서 획득하는, 제어 방법. - 제12항에 있어서,
복수의 제3 엘리먼트를 포함하는 제3 인공지능 모델을 상기 제2 메모리에 저장하는 단계;
상기 제1 출력 엘리먼트 간의 차이가 상기 기설정된 크기 미만이면, 상기 복수의 제1 출력 엘리먼트를 상기 제2 메모리에 저장하는 단계;
상기 입력 데이터를 상기 제3 인공지능 모델에 적용하여 복수의 제1 중간 엘리먼트를 획득하는 단계;
상기 제1 출력 엘리먼트 및 상기 제1 중간 엘리먼트에 기초하여 복수의 제2 출력 엘리먼트를 획득하는 단계; 및
상기 복수의 제2 출력 엘리먼트의 크기에 기초하여 상기 복수의 제2 출력 엘리먼트 중 하나를 상기 출력 데이터로서 획득하는 단계;를 더 포함하고,
상기 복수의 제3 엘리먼트 각각은, 상기 복수의 제1 엘리먼트 각각에 포함된 복수의 비트 중 상기 복수의 제2 엘리먼트 각각에 포함된 적어도 하나의 비트를 제외한, 적어도 하나의 상위 비트를 포함하는, 제어 방법. - 제13항에 있어서,
상기 복수의 제2 출력 엘리먼트 중 하나를 상기 출력 데이터로서 획득하는 단계는,
상기 복수의 제2 출력 엘리먼트 중 크기가 가장 큰 제2 출력 엘리먼트 및 두 번째로 크기가 큰 제2 출력 엘리먼트의 차이가 상기 기설정된 크기 이상이면, 상기 크기가 가장 큰 제2 출력 엘리먼트를 상기 출력 데이터로서 획득하는, 제어 방법. - 제14항에 있어서,
상기 제2 출력 엘리먼트 간의 차이가 상기 기설정된 크기 미만이면, 상기 복수의 제2 출력 엘리먼트를 상기 제2 메모리에 저장하는 단계;
상기 복수의 제1 엘리먼트 중 상기 복수의 제2 엘리먼트 및 상기 복수의 제3 엘리먼트를 제외한 나머지를 상기 제1 메모리로부터 획득하는 단계;
상기 획득된 나머지 제1 엘리먼트 및 상기 입력 데이터를 연산하여 복수의 제2 중간 엘리먼트를 획득하는 단계;
상기 제2 출력 엘리먼트 및 상기 제2 중간 엘리먼트에 기초하여 복수의 제3 출력 엘리먼트를 획득하는 단계; 및
상기 복수의 제3 출력 엘리먼트 중 크기가 가장 큰 제3 출력 엘리먼트를 상기 출력 데이터로서 획득하는 단계;를 더 포함하는, 제어 방법. - 제13항에 있어서,
상기 복수의 제2 출력 엘리먼트 중 하나를 상기 출력 데이터로서 획득하는 단계는,
상기 복수의 제2 출력 엘리먼트 각각의 크기, 기울기, 이동 평균 및 소프트맥스(softmax) 중 적어도 하나에 기초하여 상기 복수의 제2 출력 엘리먼트 중 하나를 상기 출력 데이터로 획득하는, 제어 방법. - 제10항에 있어서,
상기 획득하는 단계는,
적어도 하나의 곱셈 연산을 통해 상기 입력 데이터를 상기 제2 인공지능 모델에 적용하는, 제어 방법. - 제1 메모리 및 프로세서를 포함하는 전자 장치의 동작 방법을 수행하도록 하는 컴퓨터 명령을 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서, 상기 동작은,
복수의 제1 엘리먼트를 포함하는 제1 인공지능 모델을 상기 제1 메모리에 저장하는 단계;
복수의 제2 엘리먼트를 포함하는 제2 인공지능 모델을 상기 프로세서에 구비된 제2 메모리에 저장하는 단계; 및
상기 제2 인공지능 모델에 기초하여 입력 데이터에 대한 출력 데이터를 획득하는 단계;를 포함하고,
상기 제1 인공지능 모델은, 인공지능 알고리즘을 통해 학습(training)되며,
상기 복수의 제2 엘리먼트 각각은, 상기 복수의 제1 엘리먼트 각각에 포함된 복수의 비트 중 적어도 하나의 상위 비트를 포함하는, 비일시적 컴퓨터 판독 가능 매체.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180041533A KR20190118332A (ko) | 2018-04-10 | 2018-04-10 | 전자 장치 및 그 제어 방법 |
US16/153,135 US11568303B2 (en) | 2018-04-10 | 2018-10-05 | Electronic apparatus and control method thereof |
PCT/KR2018/014374 WO2019198900A1 (en) | 2018-04-10 | 2018-11-21 | Electronic apparatus and control method thereof |
CN201880089689.6A CN111788582A (zh) | 2018-04-10 | 2018-11-21 | 电子设备及其控制方法 |
EP18914851.3A EP3707646A4 (en) | 2018-04-10 | 2018-11-21 | ELECTRONIC DEVICE AND ASSOCIATED CONTROL PROCEDURE |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180041533A KR20190118332A (ko) | 2018-04-10 | 2018-04-10 | 전자 장치 및 그 제어 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20190118332A true KR20190118332A (ko) | 2019-10-18 |
Family
ID=68097280
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180041533A KR20190118332A (ko) | 2018-04-10 | 2018-04-10 | 전자 장치 및 그 제어 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11568303B2 (ko) |
EP (1) | EP3707646A4 (ko) |
KR (1) | KR20190118332A (ko) |
CN (1) | CN111788582A (ko) |
WO (1) | WO2019198900A1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021125517A1 (ko) * | 2019-12-19 | 2021-06-24 | 주식회사 유니온플레이스 | 전용 인공 지능 시스템 |
KR102417702B1 (ko) * | 2021-01-06 | 2022-07-07 | (주)유엠로직스 | 설명 가능한 인공지능 기법을 이용한 유해물질 처리 최적 공정 데이터 산출 시스템 및 그 방법 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0991430A (ja) * | 1995-09-27 | 1997-04-04 | Hitachi Ltd | パターン認識装置 |
JP2006201265A (ja) | 2005-01-18 | 2006-08-03 | Matsushita Electric Ind Co Ltd | 音声認識装置 |
WO2011102432A1 (ja) | 2010-02-18 | 2011-08-25 | Inoue Katsumi | 情報絞り込み検出機能を備えたメモリ、このメモリを用いた情報検出方法、このメモリを含む装置、情報の検出方法、メモリの使用方法、およびメモリアドレス比較回路 |
JP4588114B1 (ja) | 2010-02-18 | 2010-11-24 | 克己 井上 | 情報絞り込み検出機能を備えたメモリ、その使用方法、このメモリを含む装置。 |
KR101862352B1 (ko) | 2010-10-19 | 2018-05-30 | 삼성전자주식회사 | 음성 인식을 위한 전처리 장치, 및 이를 이용한 음성 인식 장치 및 방법 |
US9263036B1 (en) | 2012-11-29 | 2016-02-16 | Google Inc. | System and method for speech recognition using deep recurrent neural networks |
US20140337274A1 (en) | 2013-05-10 | 2014-11-13 | Random Logics Llc | System and method for analyzing big data in a network environment |
US20160275146A1 (en) | 2013-10-04 | 2016-09-22 | Koutin Technology Inc. Ltd | Use a parallel hardware search device to implement big databases efficiently |
JP2015087903A (ja) * | 2013-10-30 | 2015-05-07 | ソニー株式会社 | 情報処理装置及び情報処理方法 |
US9620108B2 (en) | 2013-12-10 | 2017-04-11 | Google Inc. | Processing acoustic sequences using long short-term memory (LSTM) neural networks that include recurrent projection layers |
US9721562B2 (en) | 2013-12-17 | 2017-08-01 | Google Inc. | Generating representations of acoustic sequences |
JP6291844B2 (ja) * | 2014-01-06 | 2018-03-14 | 日本電気株式会社 | データ処理装置 |
US9728185B2 (en) | 2014-05-22 | 2017-08-08 | Google Inc. | Recognizing speech using neural networks |
US20160035344A1 (en) | 2014-08-04 | 2016-02-04 | Google Inc. | Identifying the language of a spoken utterance |
US9508340B2 (en) | 2014-12-22 | 2016-11-29 | Google Inc. | User specified keyword spotting using long short term memory neural network feature extractor |
US10127904B2 (en) | 2015-05-26 | 2018-11-13 | Google Llc | Learning pronunciations from acoustic sequences |
US10115055B2 (en) | 2015-05-26 | 2018-10-30 | Booking.Com B.V. | Systems methods circuits and associated computer executable code for deep learning based natural language understanding |
US9811379B2 (en) | 2015-06-01 | 2017-11-07 | Samsung Electronics Co., Ltd. | Highly efficient inexact computing storage device |
US10515307B2 (en) | 2015-06-05 | 2019-12-24 | Google Llc | Compressed recurrent neural network models |
US9818409B2 (en) | 2015-06-19 | 2017-11-14 | Google Inc. | Context-dependent modeling of phonemes |
US9786270B2 (en) | 2015-07-09 | 2017-10-10 | Google Inc. | Generating acoustic models |
JP6346128B2 (ja) | 2015-07-28 | 2018-06-20 | ファナック株式会社 | 最適な操作条件を算出できる射出成形システム及び機械学習器 |
KR102313028B1 (ko) | 2015-10-29 | 2021-10-13 | 삼성에스디에스 주식회사 | 음성 인식 시스템 및 방법 |
WO2017090098A1 (ja) * | 2015-11-25 | 2017-06-01 | 株式会社日立製作所 | 設備管理装置および方法 |
JP6182242B1 (ja) * | 2016-06-13 | 2017-08-16 | 三菱電機インフォメーションシステムズ株式会社 | データのラベリングモデルに係る機械学習方法、コンピュータおよびプログラム |
US9747083B1 (en) | 2017-01-23 | 2017-08-29 | Essential Products, Inc. | Home device application programming interface |
US11216250B2 (en) * | 2017-12-06 | 2022-01-04 | Advanced Micro Devices, Inc. | Dynamic, variable bit-width numerical precision on field-programmable gate arrays for machine learning tasks |
-
2018
- 2018-04-10 KR KR1020180041533A patent/KR20190118332A/ko not_active Application Discontinuation
- 2018-10-05 US US16/153,135 patent/US11568303B2/en active Active
- 2018-11-21 WO PCT/KR2018/014374 patent/WO2019198900A1/en unknown
- 2018-11-21 EP EP18914851.3A patent/EP3707646A4/en active Pending
- 2018-11-21 CN CN201880089689.6A patent/CN111788582A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021125517A1 (ko) * | 2019-12-19 | 2021-06-24 | 주식회사 유니온플레이스 | 전용 인공 지능 시스템 |
KR102417702B1 (ko) * | 2021-01-06 | 2022-07-07 | (주)유엠로직스 | 설명 가능한 인공지능 기법을 이용한 유해물질 처리 최적 공정 데이터 산출 시스템 및 그 방법 |
Also Published As
Publication number | Publication date |
---|---|
WO2019198900A1 (en) | 2019-10-17 |
EP3707646A4 (en) | 2021-02-17 |
CN111788582A (zh) | 2020-10-16 |
US20190311302A1 (en) | 2019-10-10 |
US11568303B2 (en) | 2023-01-31 |
EP3707646A1 (en) | 2020-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7349835B2 (ja) | ニューラルネットワークにおいてパラメータを処理する方法及び装置 | |
KR102071582B1 (ko) | 딥 뉴럴 네트워크(Deep Neural Network)를 이용하여 문장이 속하는 클래스(class)를 분류하는 방법 및 장치 | |
US20210004663A1 (en) | Neural network device and method of quantizing parameters of neural network | |
KR102589303B1 (ko) | 고정 소수점 타입의 뉴럴 네트워크를 생성하는 방법 및 장치 | |
KR102492318B1 (ko) | 모델 학습 방법 및 장치, 및 데이터 인식 방법 | |
WO2020088330A1 (en) | Latent space and text-based generative adversarial networks (latext-gans) for text generation | |
US11651214B2 (en) | Multimodal data learning method and device | |
US20180018555A1 (en) | System and method for building artificial neural network architectures | |
JP6293963B1 (ja) | ニューロモルフィック素子を含むアレイの制御装置、離散化ステップサイズの演算方法およびプログラム | |
KR20200022739A (ko) | 데이터 증강에 기초한 인식 모델 트레이닝 방법 및 장치, 이미지 인식 방법 및 장치 | |
KR20200129639A (ko) | 모델 학습 방법 및 장치 | |
KR20190099930A (ko) | 완전 연결 네트워크의 데이터 입력 및 출력을 제어하는 방법 및 장치 | |
KR20190099931A (ko) | 시스톨릭 배열(Systolic Array)을 이용하여 딥 러닝(Deep Learning) 연산을 수행하는 방법 및 장치 | |
US11468313B1 (en) | Systems and methods for quantizing neural networks via periodic regularization functions | |
US11720788B2 (en) | Calculation scheme decision system, calculation scheme decision device, calculation scheme decision method, and storage medium | |
US20240071070A1 (en) | Algorithm and method for dynamically changing quantization precision of deep-learning network | |
CN114925320B (zh) | 一种数据处理方法及相关装置 | |
CN112446888A (zh) | 图像分割模型的处理方法和处理装置 | |
JP2016218513A (ja) | ニューラルネットワーク及びそのためのコンピュータプログラム | |
KR20190140841A (ko) | 확률 적응적 자원 할당을 통한 신경망 하드웨어 가속 | |
KR20220098991A (ko) | 음성 신호에 기반한 감정 인식 장치 및 방법 | |
EP3855388A1 (en) | Image processing device and operation method thereof | |
US20230004816A1 (en) | Method of optimizing neural network model and neural network model processing system performing the same | |
CN113052303A (zh) | 用于控制神经网络电路的数据输入和输出的设备 | |
KR20190118332A (ko) | 전자 장치 및 그 제어 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal |