KR20220023490A - 전자 장치 및 그 제어 방법 - Google Patents
전자 장치 및 그 제어 방법 Download PDFInfo
- Publication number
- KR20220023490A KR20220023490A KR1020200105273A KR20200105273A KR20220023490A KR 20220023490 A KR20220023490 A KR 20220023490A KR 1020200105273 A KR1020200105273 A KR 1020200105273A KR 20200105273 A KR20200105273 A KR 20200105273A KR 20220023490 A KR20220023490 A KR 20220023490A
- Authority
- KR
- South Korea
- Prior art keywords
- threshold range
- neural network
- network operation
- weights
- value
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/52—Multiplying; Dividing
- G06F7/523—Multiplying only
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
- G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
-
- 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/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
-
- 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
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Neurology (AREA)
- Image Analysis (AREA)
Abstract
신경망(Neural Network) 연산을 수행하는 전자 장치가 개시된다. 본 전자 장치는 입력부, 인공 지능 모델에 의해 학습된 복수의 가중치가 저장된 메모리, 복수의 가중치에 기초하여 입력부를 통해 입력된 입력 데이터에 대한 신경망 연산을 수행하는 프로세서를 포함하며, 프로세서는 입력 데이터, 복수의 가중치 또는 신경망 연산의 수행 과정에서 획득되는 연산 결과 중 적어도 하나가 임계 범위 내이면, 임계 범위 내의 값을 기설정된 값으로 변경하여 신경망 연산을 수행할 수 있다.
Description
본 개시는 전자 장치 및 그 제어 방법에 대한 것으로, 더욱 상세하게는 인공 지능 모델에 기초하여 입력 데이터에 대한 신경망 연산을 수행하는 전자 장치 및 그 제어 방법에 대한 것이다.
최근 디스플레이 장치는 4K (3840×2160) 해상도를 넘어서 8K (7680×4320) 해상도를 지원하고 있다. 다만, 기존에 제작된 영상 소스의 해상도는 여전히 2K (1920×1080) 해상도 이하인 경우가 많다.
이 경우, 고해상도를 지원하는 디스플레이 장치는 저해상도의 영상 소스가 입력되면 영상 소소를 디스플레이 장치의 해상도에 대응되는 해상도로 업 스케일링을 수행할 수 있다. 예를 들어, 도 1에 도시된 바와 같이, 디스플레이 장치는 저해상도 영상 소스를 노이즈 제거(Noise Reduction), 디테일 개선(Detail Enhancement), 콘트라스트 개선(Contrast Enhancement) 등 영상 신호의 화질을 개선한 후, 디스플레이 장치의 해상도에 대응되는 해상도로 업 스케일링을 수행할 수 있다.
이후, 디스플레이 장치는 딥러닝 슈퍼레졸루션(Deep Learning Super Resolution, DLSR)을 통해 영상 화질을 개선한 후, 디스플레이 패널에 대응되도록 프레임 레이트를 변환하여 출력하게 된다.
여기서, 딥러닝 슈퍼레졸루션은 도 1b에 도시된 바와 같이, YUV 또는 RGB 영상 소스를 입력받아 요인(feature)을 추출하여 다층(multi-layer) 퍼셉트론(perceptron)으로 이루어진 심층 인공 신경망(deep neural network)의 연산을 통해 디테일 정보를 획득하고, 입력 영상(YUV 또는 RGB)에 디테일 정보를 부가하여 디테일이 개선된 입력 영상(YUV 또는 RGB)을 획득할 수 있다.
이때, 심층 인공 신경망 연산의 핵심 구조인 퍼셉트론은 다양한 회로 구성을 포함할 수 있다. 도 1c는 심층 인공 신경망 연산의 핵심 구조인 퍼셉트론의 일 예를 나타낸다. 퍼셉트론은 입력 신호와 가중치를 곱하여 누적하는 MAC(multiply and accumulate unit), MAC의 출력을 바이어스와 더하는 덧셈기 및 활성 함수(activation function)를 수행하는 구성을 포함할 수 있다. 도 1c의 퍼셉트론을 총 m개의 입력 신호와 가중치가 입력되는 하드웨어 구조로 구성하면 도 1d와 같이 도시할 수도 있다.
이러한 퍼셉트론을 구성하는 MAC, 덧셈기 및 활성 함수를 수행하는 구성은 모두 전력을 소모하며, 영상 소스의 해상도에 따라 전력 소비는 기하급수적으로 증가할 수 있다. 즉, 전력 소비에 따른 발열 문제 및 처리 속도의 저하 문제가 해결될 필요가 있다.
본 개시는 상술한 필요성에 따른 것으로, 본 개시의 목적은 신경망 연산 과정에서 발생하는 전력 소비를 저감하기 위한 전자 장치 및 그 제어 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따르면, 신경망(Neural Network) 연산을 수행하는 전자 장치는 입력부, 인공 지능 모델에 의해 학습된 복수의 가중치가 저장된 메모리, 상기 복수의 가중치에 기초하여 상기 입력부를 통해 입력된 입력 데이터에 대한 상기 신경망 연산을 수행하는 프로세서를 포함하며, 상기 프로세서는 상기 입력 데이터, 상기 복수의 가중치 또는 상기 신경망 연산의 수행 과정에서 획득되는 연산 결과 중 적어도 하나가 임계 범위 내이면, 상기 임계 범위 내의 값을 기설정된 값으로 변경하여 상기 신경망 연산을 수행할 수 있다.
또한, 상기 프로세서는 상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 상기 임계 범위 내이면, 상기 임계 범위 내의 값을 0으로 변경하여 상기 신경망 연산을 수행할 수 있다.
그리고, 상기 임계 범위는 상기 변경된 값을 이용하여 수행된 상기 신경망 연산의 결과 및 상기 변경 전의 값을 이용하여 수행된 상기 신경망 연산의 결과에 기초하여 획득될 수 있다.
또는, 상기 임계 범위는 -a 부터 a 사이의 범위이며, 상기 a는 상기 입력 데이터, 상기 복수의 가중치 또는 상기 신경망 연산의 수행 과정에서 획득되는 연산 결과 중 적어도 하나의 최대값보다 작은 양수일 수 있다.
또한, 상기 프로세서는 상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 상기 임계 범위보다 큰 제1 임계 범위 내이면, 상기 제1 임계 범위 내의 값을 복수의 제1 대표 값 중 하나로 변경하고, 상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 상기 임계 범위보다 작은 제2 임계 범위 내이면, 상기 제2 임계 범위 내의 값을 복수의 제2 대표 값 중 하나로 변경하여 상기 신경망 연산을 수행할 수 있다.
그리고, 상기 복수의 제1 대표 값 및 상기 복수의 제2 대표 값 각각은 2의 승수이고, 상기 프로세서는 상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나를 상기 복수의 제1 대표 값 및 상기 복수의 제2 대표 값 중 크기 차이가 가장 작은 대표 값으로 변경하여 상기 신경망 연산을 수행할 수 있다.
또한, 상기 프로세서는 시프트 연산에 기초하여 상기 신경망 연산의 수행 과정에서 상기 복수의 제1 대표 값 또는 상기 복수의 제2 대표 값 중 하나를 이용한 곱셈 연산 결과를 획득할 수 있다.
그리고, 상기 프로세서는 상기 복수의 제1 대표 값 및 상기 복수의 제2 대표 값에 기초하여 결정된 임계 수치 미만의 비트 수 연산이 가능한 곱셈기를 포함하며, 상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 상기 임계 범위, 상기 제1 임계 범위 및 상기 제2 임계 범위 내에 속하지 않으면, 상기 곱셈기를 이용하여 곱셈 연산 결과를 획득할 수 있다.
또한, 상기 임계 범위, 상기 제1 임계 범위 및 상기 제2 임계 범위는 상기 변경된 값을 이용하여 수행된 상기 신경망 연산의 결과 및 상기 변경 전의 값을 이용하여 수행된 상기 신경망 연산의 결과에 기초하여 획득될 수 있다.
또는, 상기 임계 범위는 -a 부터 a 사이의 범위이며, 상기 a는 양수이고, 상기 제1 임계 범위 및 상기 제2 임계 범위는 각각 b 부터 c 사이의 범위 및 ?c 부터 ?b 사이의 범위이며, 상기 b는, 상기 a보다 크고 상기 c보다 작은 양수이고, 상기 c는 상기 입력 데이터, 상기 복수의 가중치 또는 상기 신경망 연산의 수행 과정에서 획득되는 연산 결과 중 적어도 하나의 최대값보다 작은 양수일 수 있다.
그리고, 상기 임계 범위는 상기 인공 지능 모델에 포함된 레이어 별로 상이할 수 있다.
또한, 사용자 인터페이스를 더 포함하며, 상기 프로세서는 상기 사용자 인터페이스를 통해 사용자 명령이 수신되면, 상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 임계 범위 내인지 식별할 수 있다.
한편, 본 개시의 일 실시 예에 따르면, 신경망(Neural Network) 연산을 수행하는 전자 장치의 제어 방법은 인공 지능 모델에 의해 학습된 복수의 가중치에 기초하여 입력 데이터에 대한 신경망 연산을 수행하는 단계 및 상기 입력 데이터, 상기 복수의 가중치 또는 상기 신경망 연산의 수행 과정에서 획득되는 연산 결과 중 적어도 하나가 임계 범위 내이면, 상기 임계 범위 내의 값을 기설정된 값으로 변경하여 상기 신경망 연산을 수행하는 단계를 포함한다.
또한, 상기 변경하여 상기 신경망 연산을 수행하는 단계는 상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 상기 임계 범위 내이면, 상기 임계 범위 내의 값을 0으로 변경하여 상기 신경망 연산을 수행할 수 있다.
그리고, 상기 임계 범위는 상기 변경된 값을 이용하여 수행된 상기 신경망 연산의 결과 및 상기 변경 전의 값을 이용하여 수행된 상기 신경망 연산의 결과에 기초하여 획득될 수 있다.
또한, 상기 변경하여 상기 신경망 연산을 수행하는 단계는 상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 상기 임계 범위보다 큰 제1 임계 범위 내이면, 상기 제1 임계 범위 내의 값을 복수의 제1 대표 값 중 하나로 변경하고, 상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 상기 임계 범위보다 작은 제2 임계 범위 내이면, 상기 제2 임계 범위 내의 값을 복수의 제2 대표 값 중 하나로 변경하여 상기 신경망 연산을 수행할 수 있다.
그리고, 상기 복수의 제1 대표 값 및 상기 복수의 제2 대표 값 각각은 2의 승수이고, 상기 변경하여 상기 신경망 연산을 수행하는 단계는 상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나를 상기 복수의 제1 대표 값 및 상기 복수의 제2 대표 값 중 크기 차이가 가장 작은 대표 값으로 변경하여 상기 신경망 연산을 수행할 수 있다.
또한, 상기 변경하여 상기 신경망 연산을 수행하는 단계는 시프트 연산에 기초하여 상기 신경망 연산의 수행 과정에서 상기 복수의 제1 대표 값 또는 상기 복수의 제2 대표 값 중 하나를 이용한 곱셈 연산 결과를 획득할 수 있다.
그리고, 상기 입력 데이터에 대한 신경망 연산을 수행하는 단계는 상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 상기 임계 범위, 상기 제1 임계 범위 및 상기 제2 임계 범위 내에 속하지 않으면, 곱셈기를 이용하여 곱셈 연산 결과를 획득하며, 상기 곱셈기는 상기 복수의 제1 대표 값 및 상기 복수의 제2 대표 값에 기초하여 결정된 임계 수치 미만의 비트 수 연산이 가능할 수 있다.
또한, 상기 임계 범위, 상기 제1 임계 범위 및 상기 제2 임계 범위는 상기 변경된 값을 이용하여 수행된 상기 신경망 연산의 결과 및 상기 변경 전의 값을 이용하여 수행된 상기 신경망 연산의 결과에 기초하여 획득될 수 있다.
그리고, 상기 임계 범위는 상기 인공 지능 모델에 포함된 레이어 별로 상이할 수 있다.
또한, 사용자 명령을 수신하는 단계를 더 포함하며, 상기 변경하여 상기 신경망 연산을 수행하는 단계는 상기 사용자 명령이 수신되면, 상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 임계 범위 내인지 식별할 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 전자 장치는 입력 데이터, 인공 지능 모델에 의해 학습된 복수의 가중치 또는 신경망 연산의 수행 과정에서 획득되는 연산 결과 중 일부를 기설정된 값으로 변경하여 전력 소비를 절감할 수 있다.
그리고, 전자 장치는 신경망 연산의 수행 과정에서 복수의 곱셈 연산 중 일부를 시프트 연산으로 대체하여 전력 소비를 절감할 수 있다.
또한, 복수의 곱셈 연산 중 일부가 시프트 연산으로 대체됨에 따라 곱셈기의 크기를 줄일 수 있어 제조 비용이 감소될 수 있다.
도 1a 내지 도 1d는 종래기술을 설명하기 위한 도면들이다.
도 2a는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블럭도이다.
도 2b는 전자 장치의 세부 구성의 일 예를 나타내는 블럭도이다.
도 3a 및 도 3b는 본 개시의 일 실시 예에 따른 맵퍼가 부가된 퍼셉트론을 나타낸다.
도 4는 본 개시의 일 실시 예에 따른 임계 범위를 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 활성 스위치를 포함한 맵핑 동작을 설명하기 위한 흐름도이다.
도 6은 본 개시의 일 실시 예에 따른 임계 범위, 제1 임계 범위 및 제2 임계 범위를 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 복수의 임계 범위에서 활성 스위치를 포함한 맵핑 동작을 설명하기 위한 흐름도이다.
도 2a는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블럭도이다.
도 2b는 전자 장치의 세부 구성의 일 예를 나타내는 블럭도이다.
도 3a 및 도 3b는 본 개시의 일 실시 예에 따른 맵퍼가 부가된 퍼셉트론을 나타낸다.
도 4는 본 개시의 일 실시 예에 따른 임계 범위를 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따른 활성 스위치를 포함한 맵핑 동작을 설명하기 위한 흐름도이다.
도 6은 본 개시의 일 실시 예에 따른 임계 범위, 제1 임계 범위 및 제2 임계 범위를 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 복수의 임계 범위에서 활성 스위치를 포함한 맵핑 동작을 설명하기 위한 흐름도이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 명세서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공 지능 전자 장치)를 지칭할 수 있다.
이하 첨부된 도면들을 참조하여 본 개시의 다양한 실시 예를 보다 상세하게 설명한다.
도 2a는 본 개시의 일 실시 예에 따른 전자 장치(100)의 구성을 나타내는 블럭도이다.
전자 장치(100)는 신경망 연산을 수행하는 장치로서, TV, 데스크탑 PC, 노트북, 스마트폰, 태블릿 PC, 모니터, 스마트 안경, 스마트 워치, 셋탑박스(STB), 스피커, 컴퓨터 본체, 비디오 월(video wall), LFD(large format display), Digital Signage(디지털 간판), DID(Digital Information Display), 프로젝터 디스플레이, DVD(digital video disk) 플레이어 등과 같은 장치일 수 있다. 다만, 이에 한정되는 것은 아니며, 전자 장치(100)는 신경망 연산을 수행할 수 있는 장치라면 어떠한 장치라도 무방하다.
도 2a에 따르면, 전자 장치(100)는 메모리(110), 프로세서(120) 및 입력부(130)를 포함한다. 다만, 이에 한정되는 것은 아니며, 전자 장치(100)는 일부 구성이 제외된 형태로 구현될 수도 있고, 다른 구성을 더 포함할 수도 있다.
메모리(110)는 프로세서(120) 등이 접근할 수 있도록 데이터 등의 정보를 전기 또는 자기 형태로 저장하는 하드웨어를 지칭할 수 있다. 이를 위해, 메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(Flash Memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD), RAM, ROM 등 중에서 적어도 하나의 하드웨어로 구현될 수 있다.
메모리(110)에는 인공 지능 모델에 의해 학습된 가중치가 저장될 수 있다. 여기서, 인공 지능 모델은 CNN(Convolutional Neural Network), DNN(Deep Neural Network), RNN(Recurrent Neural Network), RBM(Restricted Boltzmann Machine), DBN(Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크(Deep Q-Networks) 등일 수 있으며, 본 개시에서는 이상의 언급한 신경망 뿐만 아니라 얼마든지 다양한 형태의 인공 지능 모델에 의해 학습된 가중치가 메모리(110)에 저장될 수 있다.
인공 지능 모델은 다양한 학습 알고리즘을 통해 전자 장치(100) 또는 별도의 서버/시스템을 통해 학습된 것일 수 있다. 학습 알고리즘은 다수의 학습 데이터들을 이용하여 소정의 대상 기기(예컨대, 로봇)를 훈련시켜 소정의 대상 기기 스스로 결정을 내리거나 예측을 할 수 있도록 하는 방법이다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으며, 얼마든지 다양한 학습 알고리즘이 이용될 수 있다.
메모리(110)에는 임계 범위에 대한 정보 및 임계 범위 내의 값이 변환될 기설정된 값에 대한 정보가 저장될 수 있다. 또한, 메모리(110)에는 복수의 임계 범위에 대한 정보 및 각 임계 범위 내의 값이 변환될 값에 대한 정보가 저장될 수도 있다. 이러한 임계 범위에 대한 정보는 인공 지능 모델에 포함된 레이어 별로 상이할 수 있다.
메모리(110)는 프로세서(120)에 의해 액세스되며, 프로세서(120)에 의해 인스트럭션, 모듈, 인공 지능 모델 또는 데이터에 대한 독취/기록/수정/삭제/갱신 등이 수행될 수 있다.
입력부(130)는 입력 데이터를 수신하기 위한 어떠한 구성이라도 무방하다. 예를 들어, 입력부(130)는 유무선 통신을 통해 입력 데이터를 수신하는 구성일 수 있다. 또는, 입력부(130)는 카메라와 같이 이미지를 촬영하는 구성으로서, 이미지가 입력 데이터일 수 있다.
프로세서(120)는 전자 장치(100)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(120)는 전자 장치(100)의 각 구성과 연결되어 전자 장치(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(120)는 디스플레이(미도시) 등과 같은 구성과 연결되어 전자 장치(100)의 동작을 제어할 수 있다.
일 실시 예에 따라 프로세서(120)는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(120)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.
프로세서(120)는 인공 지능 모델에 기초하여 입력부(130)를 통해 입력된 입력 데이터에 대한 신경망 연산을 수행할 수 있다. 특히, 프로세서(120)는 입력 데이터, 인공 지능 모델에 의해 학습된 복수의 가중치 또는 신경망 연산의 수행 과정에서 획득되는 연산 결과 중 적어도 하나가 임계 범위 내이면, 임계 범위 내의 값을 기설정된 값으로 변경하여 신경망 연산을 수행할 수 있다.
예를 들어, 프로세서(120)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 임계 범위 내이면, 임계 범위 내의 값을 0으로 변경하여 신경망 연산을 수행할 수 있다.
여기서, 임계 범위는 변경된 값을 이용하여 수행된 신경망 연산의 결과 및 변경 전의 값을 이용하여 수행된 신경망 연산의 결과에 기초하여 획득될 수 있다. 예를 들어, 변경된 값을 이용하여 수행된 신경망 연산의 결과의 최대 신호 대 잡음비(Peak Signal-to-noise ratio, PSNR)가 변경 전의 값을 이용하여 수행된 신경망 연산의 결과의 최대 신호 대 잡음비의 일정 수준 이상이 유지되도록 임계 범위가 설정될 수 있다.
또한, 임계 범위는 입력 데이터, 복수의 가중치, 연산 결과의 비트에 따른 최대 최소 범위 내에서 결정될 수도 있다. 또한, 임계 범위는 입력 데이터, 복수의 가중치 또는 연산 결과의 비트 수에 기초하여 결정될 수도 있다. 예를 들어, 입력 데이터, 복수의 가중치 또는 연산 결과의 비트 수가 16비트인 경우, 임계 범위는 -16 부터 16로 결정될 수 있다. 또는, 입력 데이터, 복수의 가중치 또는 연산 결과의 비트 수가 8비트인 경우, 임계 범위는 -4 부터 4로 결정될 수도 있다.
그리고, 임계 범위는 인공 지능 모델에 포함된 레이어 별로 상이할 수 있다. 예를 들어, 인공 지능 모델에 포함된 제1 레이어의 임계 범위는 -4 부터 4이고, 인공 지능 모델에 포함된 제2 레이어의 임계 범위는 -8에서 8일 수도 있다.
프로세서(120)는 입력 데이터, 복수의 가중치 또는 연산 결과가 임계 범위 내에 속하지 않으면, 입력 데이터, 복수의 가중치 또는 연산 결과를 그대로 이용하여 신경망 연산을 수행할 수 있다.
이상과 같이, 임계 범위 내의 값이 0으로 변경되는 경우, 곱셈 연산 또는 덧셈 연산을 수행할 필요가 없이 0이 출력되며, 그에 따라 전력 소비를 절감할 수 있다.
추가적으로, 프로세서(120)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 임계 범위보다 큰 제1 임계 범위 내이면, 제1 임계 범위 내의 값을 복수의 제1 대표 값 중 하나로 변경하고, 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 임계 범위보다 작은 제2 임계 범위 내이면, 제2 임계 범위 내의 값을 복수의 제2 대표 값 중 하나로 변경하여 신경망 연산을 수행할 수도 있다.
예를 들어, 입력 데이터, 복수의 가중치 또는 연산 결과의 비트 수가 8비트인 경우, 임계 범위는 -4 부터 4이고, 제1 임계 범위는 10 부터 127이며, 제2 임계 범위는 -10부터 -128일 수 있다.
여기서, 복수의 제1 대표 값 및 복수의 제2 대표 값 각각은 2의 승수이고, 프로세서(120)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나를 복수의 제1 대표 값 및 복수의 제2 대표 값 중 크기 차이가 가장 작은 대표 값으로 변경하여 신경망 연산을 수행할 수 있다.
상술한 예에서, 복수의 제1 대표 값은 16, 32, 64이고, 복수의 제2 대표 값은 -16, -32, -64, -128이며, 프로세서(120)는 가중치 또는 연산 결과가 18이면 18을 16으로 변경하고, 60이면 60을 64로 변경하여 신경망 연산을 수행할 수 있다.
이 경우, 프로세서(120)는 시프트 연산에 기초하여 신경망 연산의 수행 과정에서 복수의 제1 대표 값 또는 복수의 제2 대표 값 중 하나를 이용한 곱셈 연산 결과를 획득할 수 있다. 즉, 복수의 제1 대표 값 또는 복수의 제2 대표 값이 2의 승수이므로, 프로세서(120)는 곱셈 연산을 수행하지 않고 시프트 연산으로 대체할 수 있다.
프로세서(120)는 복수의 제1 대표 값 및 복수의 제2 대표 값에 기초하여 결정된 임계 수치 미만의 비트 수 연산이 가능한 곱셈기를 포함하며, 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 임계 범위, 제1 임계 범위 및 제2 임계 범위 내에 속하지 않으면, 곱셈기를 이용하여 곱셈 연산 결과를 획득할 수 있다.
상술한 예에서, 프로세서(120)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 임계 범위 내이면 임계 범위 내의 값을 0으로 변경하여 신경망 연산을 수행하고, 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 제1 임계 범위 또는 제2 임계 범위 내이면 해당 값을 이용한 시프트 연산을 수행하게 되며, 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 임계 범위, 제1 임계 범위 및 제2 임계 범위 내에 속하지 않으면, 곱셈기 또는 덧셈기를 이용하여 연산 결과를 획득할 수 있다.
즉, 프로세서(120)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 임계 범위, 제1 임계 범위 및 제2 임계 범위 내에 속하지 않는 경우에만 연산을 수행할 수 있다. 또한, 상술한 예와 같이 입력 데이터, 복수의 가중치 또는 연산 결과의 비트 수가 8비트이면 프로세서(120)는 8비트 곱셈기가 필요하나, 제1 임계 범위 및 제2 임계 범위 내의 곱셈 연산이 시프트 연산으로 대체됨에 따라 8비트 곱셈기가 필요하지 않다. 상술한 예의 경우, 입력 데이터, 복수의 가중치 또는 연산 결과가 5부터 9 및 -5부터 -9 내인 경우, 곱셈 연산이 수행되므로, 프로세서(120)는 4비트 곱셈기가 필요할 뿐이다.
임계 범위, 제1 임계 범위 및 제2 임계 범위는 변경된 값을 이용하여 수행된 신경망 연산의 결과 및 변경 전의 값을 이용하여 수행된 신경망 연산의 결과에 기초하여 획득될 수 있다.
이상과 같이, 일부 곱셈 연산이 시프트 연산으로 대체됨에 따라 전력 소모를 절감할 수 있다. 또한, 곱셈기의 크기를 줄일 수도 있어 하드웨어 제조 비용도 절감할 수 있다.
도 2b는 전자 장치(100)의 세부 구성의 일 예를 나타내는 블럭도이다. 전자 장치(100)는 메모리(110), 프로세서(120) 및 입력부(130)를 포함할 수 있다. 또한, 도 2b에 따르면, 전자 장치(100)는 사용자 인터페이스(140), 통신 인터페이스(150), 디스플레이(160)를 더 포함할 수도 있다. 도 2b에 도시된 구성요소들 중 도 2a에 도시된 구성요소와 중복되는 부분에 대해서는 자세한 설명을 생략하도록 한다.
사용자 인터페이스(140)는 버튼, 터치 패드, 마우스 및 키보드와 같은 장치로 구현되거나, 디스플레이 기능 및 조작 입력 기능도 함께 수행 가능한 터치 스크린으로도 구현될 수 있다. 여기서, 버튼은 전자 장치(100)의 본체 외관의 전면부나 측면부, 배면부 등의 임의의 영역에 형성된 기계적 버튼, 터치 패드, 휠 등과 같은 다양한 유형의 버튼이 될 수 있다.
프로세서(120)는 사용자 인터페이스(140)를 통해 사용자 명령이 수신되면, 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 임계 범위 내인지 식별할 수 있다. 즉, 프로세서(120)는 사용자 명령이 있는 경우에만 전력 절감 동작을 수행할 수도 있다.
통신 인터페이스(150)는 다양한 장치와 통신을 수행하기 위한 구성이다. 예를 들어, 통신 인터페이스(150)는 HDMI, MHL, USB, RGB, D-SUB, DVI 등과 같이 다양한 유선 통신 방식을 지원할 수 있다. 또한, 통신 인터페이스(150)는 BT(BlueTooth), BLE(Bluetooth Low Energy), WI-FI(Wireless Fidelity), Zigbee 등과 같이 다양한 무선 통신 방식을 지원할 수도 있다. 다만, 이에 한정되는 것은 아니며, 외부 장치와의 통신이 가능한 통신 규격이라면 어떤 것이라도 무방하다.
프로세서(120)는 통신 인터페이스(150)를 통해 외부 장치로부터 영상 소스를 수신하고, 수신된 영상 소스를 영상 처리할 수 있다.
디스플레이(160)는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(160) 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이(160)는 터치 센서와 결합된 터치 스크린, 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display) 등으로 구현될 수 있다.
프로세서(120)는 인공 지능 모델을 통해 신경망 연산이 수행된 입력 데이터의 프레임 레이트를 변경하여 디스플레이(160)를 통해 디스플레이할 수 있다.
한편, 프로세서(120)는 맵퍼(Mapper, 121), MAC(122), 덧셈기(123), 활성 함수(124), 시프터(125)를 포함할 수 있다.
맵퍼(121)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 특정 범위 내인 경우, 해당 값을 다른 값으로 변경할 수 있다.
MAC(122)는 컨볼루션 연산을 수행하기 위한 구성으로, 입력 데이터 및 가중치를 곱셈 연산한 후 누적할 수 있다. 프로세서(120)는 복수의 MAC를 포함하여 병렬 연산을 통해 컨볼루션 연산 속도를 향상시킬 수 있다.
덧셈기(123)는 복수일 수 있으며, 제1 덧셈기는 복수의 MAC의 출력을 더할 수 있다. 제2 덧셈기는 제1 덧셈기의 출력과 바이어스를 더할 수 있다.
활성 함수(124)는 Relu, Sigmoid와 같은 연산을 수행하기 위한 구성으로, 얼마든지 다양한 형태로 구현될 수 있다.
시프터(125)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 제1 임계 범위 또는 제2 임계 범위 내인 경우, 해당 값을 2의 승수로 변경하고, 시프트 연산을 통해 곱셈 연산을 대체하기 위한 구성이다.
이상의 맵퍼(121), MAC(122), 덧셈기(123), 활성 함수(124), 시프터(125)는 레이어 별로 구비될 수 있다.
한편, 이상에서는 임계 범위를 이용하는 경우와 임계 범위, 제1 임계 범위 및 제2 임계 범위를 이용하는 경우를 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 프로세서(120)는 임계 범위를 이용하지 않고, 제1 임계 범위 및 제2 임계 범위만을 이용할 수도 있다. 또한, 프로세서(120)는 전체 범위에서 2의 승수로 변경하는 방법을 이용할 수도 있다. 또한, 프로세서(120)는 임계 범위와 제1 임계 범위가 인접하고, 임계 범위와 제2 임계 범위가 인접할 수도 있다. 이 경우, 프로세서(120)는 곱셈 연산을 수행하지 않을 수도 있다.
이하에서는 다양한 도면을 통해 프로세서(120)의 동작을 좀더 구체적으로 설명한다. 이하의 도면에서 각각의 실시 예는 개별적으로 구현될 수도 있고, 조합된 형태로 구현될 수도 있다.
도 3a 및 도 3b는 본 개시의 일 실시 예에 따른 맵퍼가 부가된 퍼셉트론을 나타낸다.
도 3a에 도시된 바와 같이, 제1 맵퍼(310)는 인공 지능 모델에 의해 학습된 복수의 가중치가 특정 범위 내인지 식별하고, 특정 범위 내의 가중치 값을 변경할 수 있다. 이하에서는 가중치 값의 변경 동작을 맵핑 동작이라고 설명한다.
제2 맵퍼(320)는 입력 데이터 또는 신경망 연산의 수행 과정에서 획득되는 피쳐 맵 데이터 중 적어도 하나가 특정 범위 내인지 식별하고, 특정 범위 내의 값을 변경할 수 있다.
제3 맵퍼(330), 제4 맵퍼(340) 및 제5 맵퍼(350)는 각각 신경망 연산의 수행 과정에서 획득되는 연산 결과가 특정 범위 내인지 식별하고, 특정 범위 내의 연산 결과 값을 변경할 수 있다.
각 맵퍼는 사용자 명령에 따라 동작할 수 있다. 예를 들어, 사용자 명령에 따라, 제1 맵퍼(310)만이 맵핑 동작을 수행하고, 나머지 맵퍼는 맵핑 동작을 수행하지 않을 수 있다. 또한, 제1 맵퍼(310) 내지 제5 맵퍼(350)의 특정 범위 및 변경되는 값은 서로 상이할 수 있다.
또한, 경우에 따라서 복수의 제1 맵퍼(310) 중 일부만이 맵핑 동작을 수행하고, 복수의 제1 맵퍼(310) 중 나머지 맵퍼는 맵핑 동작을 수행하지 않을 수도 있다. 그리고, 복수의 제1 맵퍼(310)의 특정 범위 및 변경되는 값은 서로 상이할 수 있다.
도 3a의 퍼셉트론을 총 m개의 입력 신호와 가중치가 입력되는 하드웨어 구조로 구성하면 도 3b와 같이 도시할 수도 있으며, 중복되는 설명은 생략한다.
도 4는 본 개시의 일 실시 예에 따른 임계 범위를 설명하기 위한 도면이다.
도 4에 도시된 바와 같이, 프로세서(120)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 문턱값_M0 및 문턱값_M1 내이면, 해당 값을 맵핑값_M으로 변경할 수 있다. 즉, 프로세서(120)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 ② 구간 내이면, 해당 값을 맵핑값_M으로 변경할 수 있으며, 맵핑값_M이 0이라면 곱셈 또는 덧셈 연산을 수행하지 않고 0을 곱셈 결과로서 출력할 수 있다.
프로세서(120)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 ① 또는 ③ 구간 내이면, 맵핑 동작 없이 곱셈 또는 덧셈 연산을 수행할 수 있다.
이상과 같은 동작을 통해 ② 구간 내의 연산을 최소화하여 전력 소모를 절감할 수 있다.
도 5는 본 개시의 일 실시 예에 따른 활성 스위치를 포함한 맵핑 동작을 설명하기 위한 흐름도이다.
프로세서(120)는 M_맵핑 활성 스위치의 활성 여부를 식별할 수 있다(S510). 즉, 프로세서(120)는 사용자 명령이 있으면, M_맵핑 활성 스위치가 활성화된 것으로 식별하고, 입력과 문턱값_M1을 비교할 수 있다(S520).
프로세서(120)는 비교 결과, 입력이 문턱값_M1보다 크면 맵핑 동작 없이 입력을 그대로 출력할 수 있다(S530).
또는, 프로세서(120)는 M_맵핑 활성 스위치가 활성화되지 않았거나, 비교 결과 입력이 문턱값_M1보다 작으면, M_맵핑 활성 스위치의 활성 여부를 식별할 수 있다(S540).
프로세서(120)는 M_맵핑 활성 스위치가 활성화되지 않았으면, 입력을 그대로 출력할 수 있다(S530).
또는, 프로세서(120)는 M_맵핑 활성 스위치가 활성화된 것으로 식별되면, 입력과 문턱값_M0을 비교할 수 있다(S550). 프로세서(120)는 비교 결과, 입력이 문턱값_M0보다 작으면 맵핑 동작 없이 입력을 그대로 출력할 수 있다(S530).
또는, 프로세서(120)는 비교 결과 입력이 문턱값_M1보다 크면, 입력을 맵핑값_M으로 변경하여 출력할 수 있다(S560).
도 6은 본 개시의 일 실시 예에 따른 임계 범위, 제1 임계 범위 및 제2 임계 범위를 설명하기 위한 도면이다. 도 6은 도 4의 임계 범위를 포함하는 개념으로, 중복되는 설명은 생략한다.
도 6에 도시된 바와 같이, 프로세서(120)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 문턱값_H0 및 문턱값_Hmax 내이면 해당 값을 복수의 제1 대표 값 중 하나로 변경하고, 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 문턱값_L0 및 문턱값_Lmin 내이면 해당 값을 복수의 제2 대표 값 중 하나로 변경할 수 있다.
즉, 제1 임계 범위는 문턱값_H0 및 문턱값_Hmax 내이고, 제2 임계 범위는 문턱값_L0 및 문턱값_Lmin 내일 수 있다. 제1 임계 범위와 제2 임계 범위는 유사한 개념으로 제1 임계 범위를 기준으로 설명한다.
복수의 제1 대표 값(맵핑값_H0 내지 맵핑값_Hmax)은 제1 임계 범위 내의 2의 승수일 수 있다. 또한, 제1 임계 범위 내에는 복수의 구간이 있으며, 복수의 구간의 경계는 인접한 맵핑값의 중간 값일 수 있다.
프로세서(120)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나를 문턱값들과 순차적으로 비교함으로써 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나를 대응되는 맵핑값으로 변경할 수 있다.
프로세서(120)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 제1 임계 범위 또는 제2 임계 범위 내이면, 맵핑 동작을 수행하고 시프트 연산을 통해 곱셈 연산 결과를 획득할 수 있다.
한편, 프로세서(120)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 임계 범위, 제1 임계 범위 및 제2 임계 범위 내에 속하지 않으면, 맵핑 동작을 수행하지 않고 곱셈 연산을 수행하게 된다.
이상과 같이 시프트 연산을 통해 전력 소모의 절감이 가능하고, 곱셈 연산의 유효 비트를 줄여 곱셈기의 소형화가 가능하다.
도 7은 본 개시의 일 실시 예에 따른 복수의 임계 범위에서 활성 스위치를 포함한 맵핑 동작을 설명하기 위한 흐름도이다.
도 7에 도시된 바와 같이, 프로세서(120)는 활성 스위치 동작 및 복수의 임계 범위와의 비교 동작에 기초하여 맵핑 동작을 수행할 수 있으며, 도 5의 동작을 좀더 구체적으로 기재한 것에 불과하여 중복되는 설명을 생략한다.
도 8은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
먼저, 인공 지능 모델에 기초하여 입력 데이터에 대한 신경망 연산을 수행한다(S810). 그리고, 입력 데이터, 인공 지능 모델에 의해 학습된 복수의 가중치 또는 신경망 연산의 수행 과정에서 획득되는 연산 결과 중 적어도 하나가 임계 범위 내이면, 임계 범위 내의 값을 기설정된 값으로 변경하여 신경망 연산을 수행한다(S820).
그리고, 변경하여 신경망 연산을 수행하는 단계(S820)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 임계 범위 내이면, 임계 범위 내의 값을 0으로 변경하여 신경망 연산을 수행할 수 있다.
여기서, 임계 범위는 변경된 값을 이용하여 수행된 신경망 연산의 결과 및 변경 전의 값을 이용하여 수행된 신경망 연산의 결과에 기초하여 획득될 수 있다.
또는, 변경하여 신경망 연산을 수행하는 단계(S820)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 임계 범위보다 큰 제1 임계 범위 내이면, 제1 임계 범위 내의 값을 복수의 제1 대표 값 중 하나로 변경하고, 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 임계 범위보다 작은 제2 임계 범위 내이면, 제2 임계 범위 내의 값을 복수의 제2 대표 값 중 하나로 변경하여 신경망 연산을 수행할 수 있다.
여기서, 복수의 제1 대표 값 및 복수의 제2 대표 값 각각은 2의 승수이고, 변경하여 신경망 연산을 수행하는 단계(S820)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나를 복수의 제1 대표 값 및 복수의 제2 대표 값 중 크기 차이가 가장 작은 대표 값으로 변경하여 신경망 연산을 수행할 수 있다.
그리고, 변경하여 신경망 연산을 수행하는 단계(S820)는 시프트 연산에 기초하여 신경망 연산의 수행 과정에서 복수의 제1 대표 값 또는 복수의 제2 대표 값 중 하나를 이용한 곱셈 연산 결과를 획득할 수 있다.
한편, 입력 데이터에 대한 신경망 연산을 수행하는 단계(S810)는 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 임계 범위, 제1 임계 범위 및 제2 임계 범위 내에 속하지 않으면, 곱셈기를 이용하여 곱셈 연산 결과를 획득하며, 곱셈기는 복수의 제1 대표 값 및 복수의 제2 대표 값에 기초하여 결정된 임계 수치 미만의 비트 수 연산이 가능할 수 있다.
여기서, 임계 범위, 제1 임계 범위 및 제2 임계 범위는 변경된 값을 이용하여 수행된 신경망 연산의 결과 및 변경 전의 값을 이용하여 수행된 신경망 연산의 결과에 기초하여 획득될 수 있다.
그리고, 임계 범위는 인공 지능 모델에 포함된 레이어 별로 상이할 수 있다.
한편, 사용자 명령을 수신하는 단계를 더 포함하며, 변경하여 신경망 연산을 수행하는 단계(S820)는 사용자 명령이 수신되면, 입력 데이터, 복수의 가중치 또는 연산 결과 중 적어도 하나가 임계 범위 내인지 식별할 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 전자 장치는 입력 데이터, 인공 지능 모델에 의해 학습된 복수의 가중치 또는 신경망 연산의 수행 과정에서 획득되는 연산 결과 중 일부를 기설정된 값으로 변경하여 전력 소비를 절감할 수 있다.
그리고, 전자 장치는 신경망 연산의 수행 과정에서 복수의 곱셈 연산 중 일부를 시프트 연산으로 대체하여 전력 소비를 절감할 수 있다.
또한, 복수의 곱셈 연산 중 일부가 시프트 연산으로 대체됨에 따라 곱셈기의 크기를 줄일 수 있어 제조 비용이 감소될 수 있다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치(예: 전자 장치(A))를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 전자 장치
110 : 메모리
120 : 프로세서 121 : 맵퍼
122 : MAC 123 : 덧셈기
124 : 활성 함수 125 : 시프터
130 : 입력부 140 : 사용자 인터페이스
150 : 통신 인터페이스 160 : 디스플레이
120 : 프로세서 121 : 맵퍼
122 : MAC 123 : 덧셈기
124 : 활성 함수 125 : 시프터
130 : 입력부 140 : 사용자 인터페이스
150 : 통신 인터페이스 160 : 디스플레이
Claims (20)
- 신경망(Neural Network) 연산을 수행하는 전자 장치에 있어서,
입력부;
인공 지능 모델에 의해 학습된 복수의 가중치가 저장된 메모리;
상기 복수의 가중치에 기초하여 상기 입력부를 통해 입력된 입력 데이터에 대한 상기 신경망 연산을 수행하는 프로세서;를 포함하며,
상기 프로세서는,
상기 입력 데이터, 상기 복수의 가중치 또는 상기 신경망 연산의 수행 과정에서 획득되는 연산 결과 중 적어도 하나가 임계 범위 내이면, 상기 임계 범위 내의 값을 기설정된 값으로 변경하여 상기 신경망 연산을 수행하는, 전자 장치. - 제1항에 있어서,
상기 프로세서는,
상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 상기 임계 범위 내이면, 상기 임계 범위 내의 값을 0으로 변경하여 상기 신경망 연산을 수행하는, 전자 장치. - 제2항에 있어서,
상기 임계 범위는,
상기 변경된 값을 이용하여 수행된 상기 신경망 연산의 결과 및 상기 변경 전의 값을 이용하여 수행된 상기 신경망 연산의 결과에 기초하여 획득된, 전자 장치. - 제1항에 있어서,
상기 임계 범위는,
-a 부터 a 사이의 범위이며,
상기 a는,
상기 입력 데이터, 상기 복수의 가중치 또는 상기 신경망 연산의 수행 과정에서 획득되는 연산 결과 중 적어도 하나의 최대값보다 작은 양수인, 전자 장치. - 제1항에 있어서,
상기 프로세서는,
상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 상기 임계 범위보다 큰 제1 임계 범위 내이면, 상기 제1 임계 범위 내의 값을 복수의 제1 대표 값 중 하나로 변경하고,
상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 상기 임계 범위보다 작은 제2 임계 범위 내이면, 상기 제2 임계 범위 내의 값을 복수의 제2 대표 값 중 하나로 변경하여 상기 신경망 연산을 수행하는, 전자 장치. - 제5항에 있어서,
상기 복수의 제1 대표 값 및 상기 복수의 제2 대표 값 각각은, 2의 승수이고,
상기 프로세서는,
상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나를 상기 복수의 제1 대표 값 및 상기 복수의 제2 대표 값 중 크기 차이가 가장 작은 대표 값으로 변경하여 상기 신경망 연산을 수행하는, 전장 장치. - 제6항에 있어서,
상기 프로세서는,
시프트 연산에 기초하여 상기 신경망 연산의 수행 과정에서 상기 복수의 제1 대표 값 또는 상기 복수의 제2 대표 값 중 하나를 이용한 곱셈 연산 결과를 획득하는, 전자 장치. - 제5항에 있어서,
상기 프로세서는,
상기 복수의 제1 대표 값 및 상기 복수의 제2 대표 값에 기초하여 결정된 임계 수치 미만의 비트 수 연산이 가능한 곱셈기를 포함하며,
상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 상기 임계 범위, 상기 제1 임계 범위 및 상기 제2 임계 범위 내에 속하지 않으면, 상기 곱셈기를 이용하여 곱셈 연산 결과를 획득하는, 전자 장치. - 제5항에 있어서,
상기 임계 범위, 상기 제1 임계 범위 및 상기 제2 임계 범위는,
상기 변경된 값을 이용하여 수행된 상기 신경망 연산의 결과 및 상기 변경 전의 값을 이용하여 수행된 상기 신경망 연산의 결과에 기초하여 획득된, 전자 장치. - 제5항에 있어서,
상기 임계 범위는,
-a 부터 a 사이의 범위이며,
상기 a는, 양수이고,
상기 제1 임계 범위 및 상기 제2 임계 범위는,
각각 b 부터 c 사이의 범위 및 ?c 부터 ?b 사이의 범위이며,
상기 b는, 상기 a보다 크고 상기 c보다 작은 양수이고,
상기 c는,
상기 입력 데이터, 상기 복수의 가중치 또는 상기 신경망 연산의 수행 과정에서 획득되는 연산 결과 중 적어도 하나의 최대값보다 작은 양수인, 전자 장치. - 제1항에 있어서,
상기 임계 범위는,
상기 인공 지능 모델에 포함된 레이어 별로 상이한, 전자 장치. - 제1항에 있어서,
사용자 인터페이스;를 더 포함하며,
상기 프로세서는,
상기 사용자 인터페이스를 통해 사용자 명령이 수신되면, 상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 임계 범위 내인지 식별하는, 전자 장치. - 신경망(Neural Network) 연산을 수행하는 전자 장치의 제어 방법에 있어서,
인공 지능 모델에 의해 학습된 복수의 가중치에 기초하여 입력 데이터에 대한 신경망 연산을 수행하는 단계; 및
상기 입력 데이터, 상기 복수의 가중치 또는 상기 신경망 연산의 수행 과정에서 획득되는 연산 결과 중 적어도 하나가 임계 범위 내이면, 상기 임계 범위 내의 값을 기설정된 값으로 변경하여 상기 신경망 연산을 수행하는 단계;를 포함하는 제어 방법. - 제13항에 있어서,
상기 변경하여 상기 신경망 연산을 수행하는 단계는,
상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 상기 임계 범위 내이면, 상기 임계 범위 내의 값을 0으로 변경하여 상기 신경망 연산을 수행하는, 제어 방법. - 제14항에 있어서,
상기 임계 범위는,
상기 변경된 값을 이용하여 수행된 상기 신경망 연산의 결과 및 상기 변경 전의 값을 이용하여 수행된 상기 신경망 연산의 결과에 기초하여 획득된, 제어 방법. - 제13항에 있어서,
상기 변경하여 상기 신경망 연산을 수행하는 단계는,
상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 상기 임계 범위보다 큰 제1 임계 범위 내이면, 상기 제1 임계 범위 내의 값을 복수의 제1 대표 값 중 하나로 변경하고,
상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 상기 임계 범위보다 작은 제2 임계 범위 내이면, 상기 제2 임계 범위 내의 값을 복수의 제2 대표 값 중 하나로 변경하여 상기 신경망 연산을 수행하는, 제어 방법. - 제16항에 있어서,
상기 복수의 제1 대표 값 및 상기 복수의 제2 대표 값 각각은, 2의 승수이고,
상기 변경하여 상기 신경망 연산을 수행하는 단계는,
상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나를 상기 복수의 제1 대표 값 및 상기 복수의 제2 대표 값 중 크기 차이가 가장 작은 대표 값으로 변경하여 상기 신경망 연산을 수행하는, 제어 방법. - 제17항에 있어서,
상기 변경하여 상기 신경망 연산을 수행하는 단계는,
시프트 연산에 기초하여 상기 신경망 연산의 수행 과정에서 상기 복수의 제1 대표 값 또는 상기 복수의 제2 대표 값 중 하나를 이용한 곱셈 연산 결과를 획득하는, 제어 방법. - 제16항에 있어서,
상기 입력 데이터에 대한 신경망 연산을 수행하는 단계는,
상기 입력 데이터, 상기 복수의 가중치 또는 상기 연산 결과 중 적어도 하나가 상기 임계 범위, 상기 제1 임계 범위 및 상기 제2 임계 범위 내에 속하지 않으면, 곱셈기를 이용하여 곱셈 연산 결과를 획득하며,
상기 곱셈기는,
상기 복수의 제1 대표 값 및 상기 복수의 제2 대표 값에 기초하여 결정된 임계 수치 미만의 비트 수 연산이 가능한, 제어 방법. - 제16항에 있어서,
상기 임계 범위, 상기 제1 임계 범위 및 상기 제2 임계 범위는,
상기 변경된 값을 이용하여 수행된 상기 신경망 연산의 결과 및 상기 변경 전의 값을 이용하여 수행된 상기 신경망 연산의 결과에 기초하여 획득된, 제어 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200105273A KR20220023490A (ko) | 2020-08-21 | 2020-08-21 | 전자 장치 및 그 제어 방법 |
US17/425,216 US20230153068A1 (en) | 2020-08-21 | 2021-07-07 | Electronic apparatus and control method thereof |
PCT/KR2021/008631 WO2022039385A1 (ko) | 2020-08-21 | 2021-07-07 | 전자 장치 및 그 제어 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200105273A KR20220023490A (ko) | 2020-08-21 | 2020-08-21 | 전자 장치 및 그 제어 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220023490A true KR20220023490A (ko) | 2022-03-02 |
Family
ID=80323484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200105273A KR20220023490A (ko) | 2020-08-21 | 2020-08-21 | 전자 장치 및 그 제어 방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230153068A1 (ko) |
KR (1) | KR20220023490A (ko) |
WO (1) | WO2022039385A1 (ko) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180111271A (ko) * | 2017-03-31 | 2018-10-11 | 삼성전자주식회사 | 신경망 모델을 이용하여 노이즈를 제거하는 방법 및 장치 |
CA3072045A1 (en) * | 2017-08-02 | 2019-02-07 | Strong Force Iot Portfolio 2016, Llc | Methods and systems for detection in an industrial internet of things data collection environment with large data sets |
EP3667569A1 (en) * | 2017-10-20 | 2020-06-17 | Shanghai Cambricon Information Technology Co., Ltd | Processing method and device, operation method and device |
KR102137329B1 (ko) * | 2018-12-24 | 2020-07-23 | 주식회사 포스코아이씨티 | 딥러닝 기반의 얼굴인식모델을 이용하여 특징벡터를 추출하는 얼굴인식시스템 |
US11714397B2 (en) * | 2019-02-05 | 2023-08-01 | Samsung Display Co., Ltd. | System and method for generating machine learning model with trace data |
-
2020
- 2020-08-21 KR KR1020200105273A patent/KR20220023490A/ko unknown
-
2021
- 2021-07-07 WO PCT/KR2021/008631 patent/WO2022039385A1/ko active Application Filing
- 2021-07-07 US US17/425,216 patent/US20230153068A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022039385A1 (ko) | 2022-02-24 |
US20230153068A1 (en) | 2023-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11688341B2 (en) | Method of controlling the transition between different refresh rates on a display device | |
US11132775B2 (en) | Image processing apparatus and method of operating the same | |
US9342135B2 (en) | Accelerated thermal mitigation for multi-core processors | |
US11694078B2 (en) | Electronic apparatus and controlling method thereof | |
US9390682B2 (en) | Adjustment of display intensity | |
US20200234131A1 (en) | Electronic apparatus and control method thereof | |
US11676419B2 (en) | Electronic apparatus and control method thereof | |
US20220301312A1 (en) | Electronic apparatus for identifying content based on an object included in the content and control method thereof | |
US11520413B2 (en) | Electronic apparatus, controlling method of electronic apparatus and computer readable medium | |
US20210248326A1 (en) | Electronic apparatus and control method thereof | |
US20190371268A1 (en) | Electronic device and control method thereof | |
WO2019062411A1 (zh) | 后台应用程序管控方法、存储介质及电子设备 | |
KR102234795B1 (ko) | 디스플레이 전력의 감소를 위한 이미지 데이터의 프로세싱 방법 및 디스플레이 시스템 | |
KR20220023490A (ko) | 전자 장치 및 그 제어 방법 | |
US20220164923A1 (en) | Electronic apparatus and controlling method thereof | |
WO2022082363A1 (en) | Processing image data by prioritizing layer property | |
KR20200050880A (ko) | 전자 장치, 전자 장치의 제어 방법 및 컴퓨터 판독 가능 매체. | |
US20220092735A1 (en) | Electronic apparatus and controlling method thereof | |
US20230229128A1 (en) | Electronic apparatus and control method thereof | |
US20240256843A1 (en) | Electronic apparatus for quantizing neural network model and control method thereof | |
US20230109358A1 (en) | Electronic apparatus and control method thereof | |
US20220222716A1 (en) | Electronic apparatus and control method thereof | |
US20230114954A1 (en) | Display device and operating method of the same | |
CN115904054A (zh) | 用于控制显示面板功率和保真度的积极性的方法和装置 | |
KR20240038404A (ko) | 아이콘을 표시하는 전자 장치 및 이의 제어 방법 |