KR20200027085A - 전자 장치 및 그 제어 방법 - Google Patents

전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR20200027085A
KR20200027085A KR1020180102647A KR20180102647A KR20200027085A KR 20200027085 A KR20200027085 A KR 20200027085A KR 1020180102647 A KR1020180102647 A KR 1020180102647A KR 20180102647 A KR20180102647 A KR 20180102647A KR 20200027085 A KR20200027085 A KR 20200027085A
Authority
KR
South Korea
Prior art keywords
data
matrix
groups
processor
clustering
Prior art date
Application number
KR1020180102647A
Other languages
English (en)
Inventor
파리차이 카푸르
이세형
이동수
김병욱
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020180102647A priority Critical patent/KR20200027085A/ko
Priority to PCT/KR2019/010988 priority patent/WO2020045977A1/en
Priority to CN201980054821.4A priority patent/CN112585628A/zh
Priority to EP19855239.0A priority patent/EP3776389A4/en
Priority to US16/555,331 priority patent/US11475281B2/en
Publication of KR20200027085A publication Critical patent/KR20200027085A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3059Digital compression and data reduction techniques where the original information is represented by a subset or similar information, e.g. lossy compression
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • H03M7/3077Sorting
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/60General implementation details not specific to a particular type of compression
    • H03M7/6041Compression optimized for errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/454Vector or matrix data
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6312Error control coding in combination with data compression

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Neurology (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

전자 장치가 개시된다. 본 전자 장치는 인공지능 모델에 포함된 매트릭스가 저장된 스토리지 및 매트릭스의 적어도 일부에 포함된 데이터를 매트릭스의 행 및 열 중 하나를 기준으로 복수의 그룹으로 식별하고, 각 그룹에 포함된 데이터에 기초하여 복수의 그룹을 복수의 클러스터로 클러스터링하며, 각 클러스터에 포함된 복수의 서브 그룹에 포함된 데이터를 매트릭스의 행 및 열 중 다른 하나를 기준으로 양자화하는 프로세서를 포함한다.

Description

전자 장치 및 그 제어 방법 { ELECTRONIC APPARATUS AND CONTROL METHOD THEREOF }
본 개시는 딥러닝 등의 기계 학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 인공지능(Artificial Intelligence, AI) 시스템 및 그 응용 중 인공지능 모델을 압축하기 위한 전자 장치 및 그 제어 방법에 대한 것으로, 더욱 상세하게는 인공지능 모델을 양자화(quantization)하기 위한 전자 장치 및 그 제어 방법에 대한 것이다.
근래에는 인간 수준의 지능을 구현하는 인공 지능 시스템이 다양한 분야에서 이용되고 있다. 인공 지능 시스템은 기존의 룰(rule) 기반 스마트 시스템과 달리 기계가 스스로 학습하고 판단하며 똑똑해지는 시스템이다. 인공 지능 시스템은 사용할수록 인식률이 향상되고 사용자 취향을 보다 정확하게 이해할 수 있게 되어, 기존 룰 기반 스마트 시스템은 점차 딥러닝 기반 인공 지능 시스템으로 대체되고 있다.
인공 지능 기술은 기계학습(예로, 딥러닝) 및 기계학습을 활용한 요소 기술들로 구성된다.
기계학습은 입력 데이터들의 특징을 스스로 분류/학습하는 알고리즘 기술이며, 요소기술은 딥러닝 등의 기계학습 알고리즘을 활용하여 인간 두뇌의 인지, 판단 등의 기능을 모사하는 기술로서, 언어적 이해, 시각적 이해, 추론/예측, 지식 표현, 동작 제어 등의 기술 분야로 구성된다.
인공 지능 기술이 응용되는 다양한 분야는 다음과 같다. 언어적 이해는 인간의 언어/문자를 인식하고 응용/처리하는 기술로서, 자연어 처리, 기계 번역, 대화시스템, 질의 응답, 음성 인식/합성 등을 포함한다. 시각적 이해는 사물을 인간의 시각처럼 인식하여 처리하는 기술로서, 객체 인식, 객체 추적, 영상 검색, 사람 인식, 장면 이해, 공간 이해, 영상 개선 등을 포함한다. 추론 예측은 정보를 판단하여 논리적으로 추론하고 예측하는 기술로서, 지식/확률 기반 추론, 최적화 예측, 선호 기반 계획, 추천 등을 포함한다. 지식 표현은 인간의 경험정보를 지식데이터로 자동화 처리하는 기술로서, 지식 구축(데이터 생성/분류), 지식 관리(데이터 활용) 등을 포함한다. 동작 제어는 차량의 자율 주행, 로봇의 움직임을 제어하는 기술로서, 움직임 제어(항법, 충돌, 주행), 조작 제어(행동 제어) 등을 포함한다.
다만, 인공지능 모델은 데이터 용량이 방대하여, 데이터 저장을 위한 고용량의 메모리가 필요하고, 연산 지연 및 에너지 소모량이 많은 문제가 있다. 반면, 인공지능 모델을 양자화하는 경우, 데이터 용량을 줄일 수 있으나, 성능이 낮아지는 문제가 있다.
본 개시는 상술한 필요성에 따른 것으로, 본 개시의 목적은 성능 저하를 최소화하면서도 인공지능 모델의 데이터 용량을 줄일 수 있는 전자 장치 및 그 제어 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자 장치는 인공지능 모델에 포함된 매트릭스가 저장된 스토리지 및 상기 매트릭스의 적어도 일부에 포함된 데이터를 상기 매트릭스의 행 및 열 중 하나를 기준으로 복수의 그룹으로 식별하고, 각 그룹에 포함된 데이터에 기초하여 상기 복수의 그룹을 복수의 클러스터로 클러스터링하며, 각 클러스터에 포함된 복수의 서브 그룹에 포함된 데이터를 상기 매트릭스의 행 및 열 중 다른 하나를 기준으로 양자화하는 프로세서를 포함한다.
또한, 상기 프로세서는 상기 매트릭스의 행 및 열 중 다른 하나를 기준으로 상기 복수의 서브 그룹 중 제1 서브 그룹에 속한 제1 데이터 및 제2 서브 그룹에 속한 데이터 중 상기 제1 데이터에 대응되는 제2 데이터를, 상기 제1 데이터 및 상기 제2 데이터의 크기에 기초하여 양자화할 수 있다.
그리고, 상기 프로세서는 상기 제1 데이터 및 상기 제2 데이터의 크기에 기초하여 적어도 하나의 대표값을 획득하고, 상기 적어도 하나의 대표값에 기초하여 상기 제1 데이터 및 상기 제2 데이터를 바이너리 코드로 변환하여 상기 제1 데이터 및 상기 제2 데이터를 양자화할 수 있다.
또한, 상기 프로세서는 상기 복수의 클러스터 각각에 포함된 복수의 서브 그룹의 개수에 기초하여 상기 적어도 하나의 대표값의 개수를 결정할 수 있다.
그리고, 상기 프로세서는 상기 복수의 그룹 각각을 다차원 공간에 맵핑하고, 상기 다차원 공간에서 그룹 간의 거리에 기초하여 상기 복수의 그룹을 복수의 클러스터로 클러스터링할 수 있다.
또한, 상기 프로세서는 K-평균 알고리즘(K-means algorithm)에 기초하여 상기 복수의 그룹을 복수의 클러스터로 클러스터링할 수 있다.
그리고, 상기 프로세서는 상기 양자화된 매트릭스에 기초하여 입력 데이터에 대한 출력 데이터가 획득되면, 상기 출력 데이터를 클러스터링 정보에 기초하여 재정렬하고, 상기 클러스터링 정보는 상기 복수의 그룹을 복수의 클러스터로 클러스터링하는 동작에 기초하여 획득된 정보일 수 있다.
또한, 상기 복수의 그룹 각각은 상기 매트릭스의 행 및 열 중 하나 단위의 데이터를 포함할 수 있다.
그리고, 상기 매트릭스의 적어도 일부는 상기 매트릭스를 상기 매트릭스의 행 및 열 중 상기 다른 하나에 기초하여 식별된 상기 매트릭스의 서브 영역일 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법은 인공지능 모델에 포함된 매트릭스의 적어도 일부에 포함된 데이터를 상기 매트릭스의 행 및 열 중 하나를 기준으로 복수의 그룹으로 식별하는 단계, 각 그룹에 포함된 데이터에 기초하여 상기 복수의 그룹을 복수의 클러스터로 클러스터링하는 단계 및 각 클러스터에 포함된 복수의 서브 그룹에 포함된 데이터를 상기 매트릭스의 행 및 열 중 다른 하나를 기준으로 양자화하는 단계를 포함한다.
또한, 상기 양자화하는 단계는 상기 매트릭스의 행 및 열 중 다른 하나를 기준으로 상기 복수의 서브 그룹 중 제1 서브 그룹에 속한 제1 데이터 및 제2 서브 그룹에 속한 데이터 중 상기 제1 데이터에 대응되는 제2 데이터를, 상기 제1 데이터 및 상기 제2 데이터의 크기에 기초하여 양자화할 수 있다.
그리고, 상기 양자화하는 단계는 상기 제1 데이터 및 상기 제2 데이터의 크기에 기초하여 적어도 하나의 대표값을 획득하고, 상기 적어도 하나의 대표값에 기초하여 상기 제1 데이터 및 상기 제2 데이터를 바이너리 코드로 변환하여 상기 제1 데이터 및 상기 제2 데이터를 양자화할 수 있다.
또한, 상기 양자화하는 단계는 상기 복수의 클러스터 각각에 포함된 복수의 서브 그룹의 개수에 기초하여 상기 적어도 하나의 대표값의 개수를 결정할 수 있다.
그리고, 상기 클러스터링하는 단계는 상기 복수의 그룹 각각을 다차원 공간에 맵핑하고, 상기 다차원 공간에서 그룹 간의 거리에 기초하여 상기 복수의 그룹을 복수의 클러스터로 클러스터링할 수 있다.
또한, 상기 클러스터링하는 단계는 K-평균 알고리즘(K-means algorithm)에 기초하여 상기 복수의 그룹을 복수의 클러스터로 클러스터링할 수 있다.
그리고, 상기 양자화된 매트릭스에 기초하여 입력 데이터에 대한 출력 데이터가 획득되면, 상기 출력 데이터를 클러스터링 정보에 기초하여 재정렬하는 단계를 더 포함하고, 상기 클러스터링 정보는 상기 복수의 그룹을 복수의 클러스터로 클러스터링하는 동작에 기초하여 획득된 정보일 수 있다.
또한, 상기 복수의 그룹 각각은 상기 매트릭스의 행 및 열 중 하나 단위의 데이터를 포함할 수 있다.
그리고, 상기 매트릭스의 적어도 일부는 상기 매트릭스를 상기 매트릭스의 행 및 열 중 상기 다른 하나에 기초하여 식별된 상기 매트릭스의 서브 영역일 수 있다.
한편, 본 개시의 일 실시 예에 따른 전자 장치의 동작 방법을 실행하기 위한 프로그램이 저장된 비일시적 컴퓨터 판독가능 기록매체에 있어서, 상기 동작 방법은 인공지능 모델에 포함된 매트릭스의 적어도 일부에 포함된 데이터를 상기 매트릭스의 행 및 열 중 하나를 기준으로 복수의 그룹으로 식별하는 단계, 각 그룹에 포함된 데이터에 기초하여 상기 복수의 그룹을 복수의 클러스터로 클러스터링하는 단계 및 각 클러스터에 포함된 복수의 서브 그룹에 포함된 데이터를 상기 매트릭스의 행 및 열 중 다른 하나를 기준으로 양자화하는 단계를 포함한다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 전자 장치는 인공지능 모델을 양자화하여 데이터 용량을 줄이는 반면, 양자화에 따른 오차를 줄여 성능 저하를 최소화할 수 있다.
도 1a는 본 개시의 일 실시 예에 따른 전자 장치의 구성을 나타내는 블럭도이다.
도 1b는 본 개시의 일 실시 예에 따른 전자 장치의 세부 구성을 나타내는 블럭도이다.
도 2a 및 도 2b 본 개시의 일 실시 예에 따른 인공지능 모델을 설명하기 위한 도면들이다.
도 3a 내지 도 3c은 본 개시의 일 실시 예에 따른 클러스터링 방법을 설명하기 위한 도면들이다.
도 4a 내지 도 4c는 본 개시의 일 실시 예에 따른 양자화 방법을 설명하기 위한 도면들이다.
도 5a 내지 도 5c는 본 개시의 다른 실시 예에 따른 양자화 방법을 설명하기 위한 도면들이다.
도 6a 및 도 6b는 본 개시의 일 실시 예에 따른 클러스터링에 따른 이점을 설명하기 위한 도면들이다.
도 7a 및 도 7b는 본 개시의 일 실시 예에 따른 클러스터링에 따른 부가 동작을 설명하기 위한 도면들이다.
도 8a 및 도 8b는 본 개시의 일 실시 예에 따른 매트릭스를 분할하여 양자화하는 방법을 설명하기 위한 도면들이다.
도 9a 내지 도 9c는 본 개시의 일 실시 예에 따른 WER(word error rate) 및 정확도를 설명하기 위한 도면들이다.
도 10a 내지 도 10c는 본 개시의 다양한 실시 예에 따른 WER을 그래프로 나타낸 도면들이다.
도 11은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
이하에서, 첨부된 도면을 이용하여 본 개시의 다양한 실시 예들에 대하여 구체적으로 설명한다.
도 1a는 본 개시의 일 실시 예에 따른 전자 장치(100)의 구성을 나타내는 블럭도이다. 도 1a에 도시된 바와 같이, 전자 장치(100)는 스토리지(110) 및 프로세서(120)를 포함한다.
전자 장치(100)는 인공지능 모델을 양자화(quantization)하는 장치일 수 있다. 예를 들어, 전자 장치(100)는 인공지능 모델에 포함된 매트릭스(matrix)를 양자화하는 장치로서, 서버, 데스크탑 PC, 노트북, 스마트폰, 태블릿 PC 등일 수 있다. 또한, 인공지능 모델에는 복수의 매트릭스가 포함될 수 있으며, 전자 장치(100)는 복수의 매트릭스 전체를 양자화할 수 있다. 즉, 전자 장치(100)는 인공지능 모델을 양자화하여 인공지능 모델의 데이터 크기를 줄일 수 있는 장치라면 어떠한 장치라도 무방하다. 여기서, 매트릭스는 웨이트(weight) 매트릭스일 수 있다.
스토리지(110)는 프로세서(120)와는 별도로 구비되며, 하드디스크, 비휘발성 메모리 및 휘발성 메모리 등으로 구현될 수 있다.
스토리지(110)는 인공지능 모델에 포함된 매트릭스를 저장할 수 있다. 여기서, 매트릭스는 인공지능 모델을 구성하는 필터 데이터, 커널(kernel) 데이터 등일 수 있다. 또한, 스토리지(110)는 인공지능 모델에 포함된 복수의 매트릭스를 저장할 수도 있다.
또는, 스토리지(110)는 인공지능 모델에 이용될 수 있는 데이터를 저장하고, 프로세서(120)는 스토리지(110)에 저장된 데이터를 매트릭스로서 식별할 수도 있다.
프로세서(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 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(140)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다.
프로세서(120)는 매트릭스의 적어도 일부에 포함된 데이터를 매트릭스의 행 및 열 중 하나를 기준으로 복수의 그룹으로 식별하고, 각 그룹에 포함된 데이터에 기초하여 복수의 그룹을 복수의 클러스터로 클러스터링하며, 각 클러스터에 포함된 복수의 서브 그룹에 포함된 데이터를 매트릭스의 행 및 열 중 다른 하나를 기준으로 양자화할 수 있다. 여기서, 복수의 그룹 각각은 매트릭스의 행 및 열 중 하나 단위의 데이터를 포함할 수 있다.
예를 들어, 프로세서(120)는 4 × 4의 매트릭스 전체에 포함된 데이터를 매트릭스의 행을 기준으로 1 × 4의 4개의 그룹으로 식별할 수 있다. 이하에서는, 설명의 편의를 위해 4 × 4의 매트릭스에서 첫 번째 행의 1 × 4의 그룹을 제1 그룹, 두 번째 행의 1 × 4의 그룹을 제2 그룹, 세 번째 행의 1 × 4의 그룹을 제3 그룹, 네 번째 행의 1 × 4의 그룹을 제4 그룹으로 설명한다.
그리고, 프로세서(120)는 각 그룹에 포함된 데이터에 기초하여 4개의 그룹을 2개의 클러스터로 클러스터링할 수 있다. 가령, 프로세서(120)는 4개의 그룹 중 제1 그룹 및 제3 그룹을 제1 클러스터로, 제2 그룹 및 제4 그룹을 제2 클러스터로 클러스터링할 수 있다. 이하에서는 설명의 편의를 위해, 제1 클러스터에 포함된 제1 그룹 및 제3 그룹을 제1 서브 그룹 및 제3 서브 그룹으로, 제2 클러스터에 포함된 제2 그룹 및 제4 그룹을 제2 서브 그룹 및 제4 서브 그룹으로 설명한다.
그리고, 프로세서(120)는 각 클러스터에 포함된 복수의 서브 그룹에 포함된 데이터를 매트릭스의 열을 기준으로 양자화할 수 있다. 여기서, 양자화를 수행하기 위한 기준은 그룹을 식별할 때의 기준과 다를 수 있다. 가령, 프로세서(120)가 매트릭스의 적어도 일부에 포함된 데이터를 매트릭스의 "열"을 기준으로 복수의 그룹으로 식별하는 경우, 프로세서(120)는 각 클러스터에 포함된 복수의 서브 그룹에 포함된 데이터를 매트릭스의 "행"을 기준으로 양자화할 수 있다. 또는, 프로세서(120)가 매트릭스의 적어도 일부에 포함된 데이터를 매트릭스의 "행"을 기준으로 복수의 그룹으로 식별하는 경우, 프로세서(120)는 각 클러스터에 포함된 복수의 서브 그룹에 포함된 데이터를 매트릭스의 "열"을 기준으로 양자화할 수 있다.
양자화하는 방법을 구체적으로 설명하면, 프로세서(120)는 매트릭스의 행 및 열 중 다른 하나를 기준으로 복수의 서브 그룹 중 제1 서브 그룹에 속한 제1 데이터 및 제2 서브 그룹에 속한 데이터 중 제1 데이터에 대응되는 제2 데이터를, 제1 데이터 및 제2 데이터의 크기에 기초하여 양자화할 수 있다.
구체적으로, 프로세서(120)는 제1 데이터 및 제2 데이터의 크기에 기초하여 적어도 하나의 대표값을 획득하고, 적어도 하나의 대표값에 기초하여 제1 데이터 및 제2 데이터를 바이너리 코드로 변환하여 제1 데이터 및 제2 데이터를 양자화할 수 있다.
상술한 예에서, 프로세서(120)는 매트릭스의 열을 기준으로 제1 서브 그룹에 속한 제1 데이터 및 제2 서브 그룹에 속한 데이터 중 제1 데이터에 대응되는 제2 데이터를 양자화할 수 있다. 가령, 프로세서(120)는 1 × 4의 제1 서브 그룹에 속한 데이터 중 첫 번째 데이터와 1 × 4의 제3 서브 그룹에 속한 데이터 중 첫 번째 데이터를 양자화할 수 있다. 그리고, 프로세서(120)는 1 × 4의 제1 서브 그룹에 속한 데이터 중 두 번째 데이터와 1 × 4의 제3 서브 그룹에 속한 데이터 중 두 번째 데이터를 양자화할 수 있다.
이러한 방법으로, 프로세서(120)는 제1 서브 그룹 및 제3 서브 그룹에 포함된 데이터를 양자화할 수 있으며, 총 4쌍의 데이터를 양자화할 수 있다. 동일한 방방법으로, 프로세서(120)는 제2 서브 그룹 및 제4 서브 그룹에 포함된 데이터를 양자화할 수 있으며, 총 4쌍의 데이터를 양자화할 수 있다. 프로세서(120)는 복수의 그룹 전체를 양자화하기 위해 총 8쌍의 데이터를 양자화할 수 있다.
프로세서(120)는 제1 데이터 및 제2 데이터의 크기에 기초하여 제1 데이터 및 제2 데이터를 양자화할 수 있다. 예를 들어, 프로세서(120)는 제1 데이터가 3이고, 제2 데이터가 -1이면, 대표값을 2로 설정하고, 제1 데이터를 1로, 제2 데이터를 -1로 설정할 수 있다. 매트릭스에 포함된 데이터 각각이 32 비트라면, 제1 데이터 및 제2 데이터를 표현하기 위해 총 64 비트가 필요하다. 그러나, 1 비트 양자화 이후에는 대표값 32 비트와 바이너리 코드로 변환된 제1 데이터 1 비트, 바이너리 코드로 변환된 제2 데이터 1 비트만이 필요하며, 총 34 비트가 필요하게 된다. 즉, 데이터 용량의 축소가 가능하다. 다만, 제1 데이터가 3에서 2로, 제2 데이터가 -1에서 -2로 표현됨에 따라 양자화 오차가 발생할 수 있다.
한편, 프로세서(120)는 복수의 클러스터 각각에 포함된 복수의 서브 그룹의 개수에 기초하여 적어도 하나의 대표값의 개수를 결정할 수 있다. 상술한 예에서는 제1 클러스터에 두 개의 서브 그룹이 포함된 상태이므로, 하나의 대표값으로 양자화하였으나, 클러스터에 포함된 서브 그룹이 10개면 10개의 데이터를 양자화해야 하며, 이 경우 하나의 대표값으로 양자화하면 양자화 오차가 매우 커지게 된다. 따라서, 프로세서(120)는 클러스터에 포함된 서브 그룹이 많을수록 대표값의 개수를 늘릴 수 있다.
한편, 프로세서(120)는 복수의 그룹 각각을 다차원 공간에 맵핑하고, 다차원 공간에서 그룹 간의 거리에 기초하여 복수의 그룹을 복수의 클러스터로 클러스터링할 수 있다. 예를 들어, 프로세서(120)는 K-평균 알고리즘(K-means algorithm)에 기초하여 복수의 그룹을 복수의 클러스터로 클러스터링할 수 있다. 다만, 이에 한정되는 것은 아니며, 프로세서(120)는 얼마든지 다른 방법으로 복수의 그룹을 복수의 클러스터로 클러스터링할 수도 있다.
한편, 프로세서(120)는 양자화된 매트릭스에 기초하여 입력 데이터에 대한 출력 데이터가 획득되면, 출력 데이터를 클러스터링 정보에 기초하여 재정렬하고, 클러스터링 정보는 복수의 그룹을 복수의 클러스터로 클러스터링하는 동작에 기초하여 획득된 정보일 수 있다. 이에 대한 구체적인 설명은 도 7a 및 도 7b를 통해 설명한다.
그리고, 매트릭스의 적어도 일부는 매트릭스를 매트릭스의 행 및 열 중 다른 하나에 기초하여 식별된 매트릭스의 서브 영역일 수 있다. 이에 대한 구체적인 설명은 도 8a 및 도 8b를 통해 설명한다.
도 1b는 본 개시의 일 실시 예에 따른 전자 장치(100)의 세부 구성을 나타내는 블럭도이다. 도 1b에 따르면, 전자 장치(100)는 스토리지(110), 프로세서(120), 통신부(130), 사용자 인터페이스부(140), 디스플레이(150), 오디오 처리부(160), 비디오 처리부(170)를 포함한다. 도 1b에 도시된 구성요소들 중 도 1a에 도시된 구성요소와 중복되는 부분에 대해서는 자세한 설명을 생략하도록 한다.
프로세서(120)는 스토리지(110)에 저장된 각종 프로그램을 이용하여 전자 장치(100)의 동작을 전반적으로 제어한다.
구체적으로, 프로세서(120)는 RAM(121), ROM(122), 메인 CPU(123), 그래픽 처리부(124), 제1 내지 n 인터페이스(125-1 ~ 125-n), 버스(126)를 포함한다.
RAM(121), ROM(122), 메인 CPU(123), 그래픽 처리부(124), 제1 내지 n 인터페이스(125-1 ~ 125-n) 등은 버스(126)를 통해 서로 연결될 수 있다.
제1 내지 n 인터페이스(125-1 내지 125-n)는 상술한 각종 구성요소들과 연결된다. 인터페이스들 중 하나는 네트워크를 통해 외부 장치와 연결되는 네트워크 인터페이스가 될 수도 있다.
메인 CPU(123)는 스토리지(110)에 액세스하여, 스토리지(110)에 저장된 O/S를 이용하여 부팅을 수행한다. 그리고, 스토리지(110)에 저장된 각종 프로그램 등을 이용하여 다양한 동작을 수행한다.
ROM(122)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 턴온 명령이 입력되어 전원이 공급되면, 메인 CPU(123)는 ROM(122)에 저장된 명령어에 따라 스토리지(110)에 저장된 O/S를 RAM(121)에 복사하고, O/S를 실행시켜 시스템을 부팅시킨다. 부팅이 완료되면, 메인 CPU(123)는 스토리지(110)에 저장된 각종 어플리케이션 프로그램을 RAM(121)에 복사하고, RAM(121)에 복사된 어플리케이션 프로그램을 실행시켜 각종 동작을 수행한다.
그래픽 처리부(124)는 연산부(미도시) 및 렌더링부(미도시)를 이용하여 아이콘, 이미지, 텍스트 등과 같은 다양한 객체를 포함하는 화면을 생성한다. 연산부(미도시)는 수신된 제어 명령에 기초하여 화면의 레이아웃에 따라 각 객체들이 표시될 좌표값, 형태, 크기, 컬러 등과 같은 속성값을 연산한다. 렌더링부(미도시)는 연산부(미도시)에서 연산한 속성값에 기초하여 객체를 포함하는 다양한 레이아웃의 화면을 생성한다. 렌더링부(미도시)에서 생성된 화면은 디스플레이(150)의 디스플레이 영역 내에 표시된다.
한편, 상술한 프로세서(120)의 동작은 스토리지(110)에 저장된 프로그램에 의해 이루어질 수 있다.
스토리지(110)는 전자 장치(100)를 구동시키기 위한 O/S(Operating System) 소프트웨어 모듈, 인공지능 모델과 양자화된 인공지능 모델을 포함하는 인공지능 모듈 및 인공지능 모델을 양자화하기 위한 양자화 모듈 등과 같이 다양한 데이터를 저장한다.
통신부(130)는 다양한 유형의 통신방식에 따라 다양한 유형의 외부 장치와 통신을 수행하는 구성이다. 통신부(130)는 와이파이 칩(131), 블루투스 칩(132), 무선 통신 칩(133), NFC 칩(134) 등을 포함한다. 프로세서(120)는 통신부(130)를 이용하여 각종 외부 장치와 통신을 수행한다.
와이파이 칩(131), 블루투스 칩(132)은 각각 WiFi 방식, 블루투스 방식으로 통신을 수행한다. 와이파이 칩(131)이나 블루투스 칩(132)을 이용하는 경우에는 SSID 및 세션 키 등과 같은 각종 연결 정보를 먼저 송수신하여, 이를 이용하여 통신 연결한 후 각종 정보들을 송수신할 수 있다. 무선 통신 칩(133)은 IEEE, 지그비(zigbee), 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evoloution) 등과 같은 다양한 통신 규격에 따라 통신을 수행하는 칩을 의미한다. NFC 칩(134)은 135kHz, 13.56MHz, 433MHz, 860~960MHz, 2.45GHz 등과 같은 다양한 RF-ID 주파수 대역들 중에서 13.56MHz 대역을 사용하는 NFC(Near Field Communication) 방식으로 동작하는 칩을 의미한다.
프로세서(130)는 통신부(130)를 통해 외부 장치로부터 인공지능 모듈 또는 인공지능 모델에 포함된 매트릭스를 수신하고, 수신된 데이터를 스토리지(110)에 저장할 수 있다. 또는, 프로세서(130)는 인공지능 알고리즘을 통해 인공지능 모델을 직접 학습하고, 학습된 인공지능 모델을 스토리지(110)에 저장할 수도 있다. 여기서, 인공지능 모델은 적어도 하나의 매트릭스를 포함할 수 있다.
사용자 인터페이스부(140)는 다양한 사용자 인터랙션(interaction)을 수신한다. 여기서, 사용자 인터페이스부(140)는 전자 장치(100)의 구현 예에 따라 다양한 형태로 구현 가능하다. 예를 들어, 사용자 인터페이스부(140)는 전자 장치(100)에 구비된 버튼, 사용자 음성을 수신하는 마이크, 사용자 모션을 감지하는 카메라 등일 수 있다. 또는, 전자 장치(100)가 터치 기반의 전자 장치로 구현되는 경우 사용자 인터페이스부(140)는 터치패드와 상호 레이어 구조를 이루는 터치 스크린 형태로 구현될 수도 있다. 이 경우, 사용자 인터페이스부(140)는 상술한 디스플레이(150)로 사용될 수 있게 된다.
오디오 처리부(160)는 오디오 데이터에 대한 처리를 수행하는 구성요소이다. 오디오 처리부(160)에서는 오디오 데이터에 대한 디코딩이나 증폭, 노이즈 필터링 등과 같은 다양한 처리가 수행될 수 있다.
비디오 처리부(170)는 비디오 데이터에 대한 처리를 수행하는 구성요소이다. 비디오 처리부(170)에서는 비디오 데이터에 대한 디코딩, 스케일링, 노이즈 필터링, 프레임 레이트 변환, 해상도 변환 등과 같은 다양한 이미지 처리를 수행할 수 있다.
이상과 같은 방법을 통해 프로세서(120)는 인공지능 모델에 포함된 매트릭스를 양자화할 수 있다.
이하에서는 도면을 통해 전자 장치(100)의 동작을 좀더 구체적으로 설명한다.
도 2a 및 도 2b 본 개시의 일 실시 예에 따른 인공지능 모델을 설명하기 위한 도면들이다.
도 2a는 세 개의 레이어와 두 개의 매트릭스를 포함하는 인공지능 모델의 일 예를 나타내는 도면으로, 프로세서(120)는 Li-1의 입력값들을 W12에 입력하여 Li의 중간값을 획득하며, Li의 중간값들을 W23에 입력하여 Li+1의 최종값을 획득할 수 있다. 다만, 도 2a는 인공지능 모델을 매우 간략하게 도시한 것으로, 실제로는 도 2a보다 더 많은 레이어들을 포함할 수 있다.
도 2b는 매트릭스의 일 예를 나타내는 도면으로, 매트릭스는 m × n의 형태일 수 있다. 예를 들어, 매트릭스는 10000 × 8000의 형태일 수 있다. 그리고, 매트릭스 내의 데이터는 각각 32 비트일 수 있다. 즉, 매트릭스는 32 비트인 데이터를 10000 × 8000개 포함할 수 있다. 다만, 이에 한정되는 것은 아니며, 매트릭스의 크기 및 각 데이터의 비트수는 얼마든지 다를 수도 있다.
도 2a 및 도 2b에 도시된 바와 같이, 매트릭스에 포함된 데이터 각각의 크기, 매트릭스에 포함된 데이터의 개수 및 인공지능 모델에 포함된 매트릭스의 개수를 고려하면, 인공지능 모델을 저장하기 위한 매우 큰 저장 공간이 필요하며, 인공지능 모델의 연산을 위해서도 상당한 전력이 소모될 수 있다. 그에 따라, 프로세서(120)는 매트릭스의 데이터를 양자화하여 저장 공간을 축소하고, 연산량을 감소시킬 수 있다.
도 3a 내지 도 3c은 본 개시의 일 실시 예에 따른 클러스터링 방법을 설명하기 위한 도면들이다.
먼저, 도 3a에서는, 설명의 편의를 위하여 4 × 4의 매트릭스가 16개의 데이터를 포함하며, 각 데이터는 32 비트인 것으로 설명한다.
프로세서(120)는 4 × 4의 매트릭스에서 행을 기준으로 매트릭스에 포함된 데이터를 4개의 그룹(311 ~ 314)으로 식별할 수 있다.
그리고, 프로세서(120)는 4개의 그룹 각각을 4차원의 공간에 맵핑하고, 4차원 공간에서 그룹 간의 거리를 도 3b와 같은 방법으로 산출할 수 있다. 프로세서(120)는 거리가 가까운 그룹을 클러스터링할 수 있다. 예를 들어, 프로세서(120)는 도 3c와 같이 제1 그룹(311) 및 제3 그룹(313)을 제1 클러스터로서 클러스터링하고, 제2 그룹(312) 및 제4 그룹(314)을 제2 클러스터로서 클러스터링할 수 있다. 프로세서(120)는 클러스터링에 따라 매트릭스 내의 데이터 위치를 변경할 수 있다. 이러한 동작은 리오더링(reordering)이라고도 불리며, 리오더링은 계산량 및 정확도에 영향을 미치지 않는다. 이하에서는 설명의 편의를 위하여 클러스터링 동작에 리오더링이 포함되는 것으로 설명한다.
다만, 이에 한정되는 것은 아니며, 프로세서(120)는 K-평균 알고리즘(K-means algorithm)에 기초하여 복수의 그룹(311 ~ 314)을 복수의 클러스터로 클러스터링할 수도 있다.
또한, 프로세서(120)는 제1 그룹(311), 제2 그룹(312) 및 제3 그룹(313)을 제1 클러스터로서 클러스터링하고, 제4 그룹(314)을 제2 클러스터로서 클러스터링할 수도 있다.
클러스터링에 따른 이점은 후술한다.
도 4a 내지 도 4c는 본 개시의 일 실시 예에 따른 양자화 방법을 설명하기 위한 도면들이다.
도 4a는 설명의 편의를 위해 제1 클러스터에 포함된 데이터만을 도시하였다. 프로세서(120)는 도 4a에 도시된 바와 같이, 제1 클러스터에 포함된 데이터 중 제1 그룹(311)의 제1 데이터 및 제2 그룹(312)의 제2 데이터를 포함하는 데이터쌍들(411 ~ 414)을 각각 양자화할 수 있다.
제1 데이터쌍(411)을 양자화하는 방법을 설명하기 위해, 먼저 a는 3이고, i는 -1에 대한 1 비트 양자화를 가정한다. 프로세서(120)는 a 및 i에 기초하여 대표값 α를 획득할 수 있다. 가령, 프로세서(120)는 a의 절대값 및 i의 절대값을 평균하여 α를 획득할 수 있다. 다만, 이에 한정되는 것은 아니며, 프로세서(120)는 얼마든지 다른 방법으로 α를 획득할 수도 있다.
프로세서(120)는 도 4b에 도시된 바와 같이, α에 기초하여 a 및 i를 각각 +1 및 -1로서 양자화할 수 있다. 즉, 프로세서(120)는 +α 및 -α 중 +α에 가까운 a는 +1로 변환하고, -α에 가까운 i는 -1로 변환할 수 있다.
즉, 프로세서(120)는 도 4c에 도시된 바와 같이, a 및 i를 α와 +1 및 -1로 변환할 수 있다. 그리고, 프로세서(120)는 각각 32 비트인 a 및 i의 총 64 비트의 데이터를, 32 비트인 α, 각각 1 비트인 +1 및 -1의 총 34 비트의 데이터로 변환할 수 있다.
프로세서(120)는 제2 데이터쌍(412) 내지 제4 데이터쌍(414)에 대하여도 동일한 방법으로 양자화를 수행할 수 있다. 여기서, 제1 데이터쌍(411) 내지 제4 데이터쌍(414)의 대표값은 서로 다를 수 있다. 다만, 이에 한정되는 것은 아니며, 프로세서(120)는 일부 데이터쌍을 결합하여 하나의 대표값으로 양자화할 수도 있다. 예를 들어, 프로세서(120)는 제1 데이터쌍(411) 및 제2 데이터쌍(412)을 하나의 대표값으로 양자화할 수도 있다. 이 경우, 프로세서(120)는 총 128 비트의 데이터를, 총 38 비트의 데이터로 변환할 수도 있다. 다만, 이 경우 양자화 오차가 커져서 인공지능 모델의 정확도가 낮아질 수 있다. 따라서, 프로세서(120)는 인공지능 모델의 정확도가 유지되는 한에서 복수의 데이터쌍을 결합하여 양자화함에 따라 양자화 효율을 향상시킬 수 있다.
도 4a 내지 도 4c에서 설명한 양자화 방법은 제2 클러스터에 대하여도 동일하게 수행될 수 있다.
도 5a 내지 도 5c는 본 개시의 다른 실시 예에 따른 양자화 방법을 설명하기 위한 도면들이다.
도 5a는 설명의 편의를 위해 제1 클러스터에 4개의 그룹이 포함된 것으로 가정하였다. 프로세서(120)는 도 5a에 도시된 바와 같이, 제1 클러스터에 포함된 데이터 중 각 그룹에 포함된 제1 열에 포함된 데이터쌍(511)을 양자화할 수 있다.
프로세서(120)는 a, b, c, d에 기초하여 2 비트 양자화를 수행했을 때 대표값 α1 및 α2를 획득할 수 있다. 그리고, 프로세서(120)는 도 5b에 도시된 바와 같이, α1 및 α2에 기초하여 a, b, c, d를 각각 -α1 + α2, α1 + α2, α1 - α2, -α1 - α2로 변환할 수 있다.
그리고, 프로세서(120)는 도 4c에 도시된 바와 같이, a, b, c, d를 각각 (-1, 1), (1, 1), (1, -1), (-1, -1)로 변환할 수 있다. 즉, 프로세서(120)는 각각 32 비트인 a, b, c, d의 총 128 비트의 데이터를, 각각 32 비트인 α1, α2 및 각각 2 비트인 (-1, 1), (1, 1), (1, -1), (-1, -1)의 총 72 비트의 데이터로 변환할 수 있다.
즉, 프로세서(120)는 α1, α2를 이용함에 따라 α를 이용하는 경우보다 양자화 오차를 줄일 수 있다.
여기서, 대표값의 개수는 클러스터에 포함된 그룹의 개수에 기초하여 결정될 수 있다. 즉, 프로세서(120)는 클러스터에 포함된 그룹이 많을수록 대표값의 개수를 증가시킨 후, 양자화를 수행할 수 있다.
도 6a 및 도 6b는 본 개시의 일 실시 예에 따른 클러스터링에 따른 이점을 설명하기 위한 도면들이다.
도 6a는 초기 매트릭스가 클러스터링에 따라 데이터의 위치가 변경된 것을 나타내는 도면이다. 상술한 예와 동일하게 제2 그룹 및 제3 그룹의 위치가 변경된 것을 가정하였으며, 설명의 편의를 위하여 제1 열에 대하여만 설명한다.
도 6b는 리오더링 없이 초기 매트릭스를 그대로 그룹 지어 1 비트 양자화한 경우이다. 프로세서(120)는 도 6b의 좌측과 같이, 제1 행과 제2 행의 데이터쌍을 양자화하기 위해 α1을 5로 설정하고, 데이터쌍을 1, 1로 변환할 수 있다. 그리고, 프로세서(120)는 도 6b의 우측과 같이, 제3 행과 제4 행의 데이터쌍을 양자화하기 위해 α2를 3으로 설정하고, 데이터쌍을 -1, -1로 변환할 수 있다.
도 6c는 클러스터링된 매트릭스를 이용하여 양자화한 경우이다. 프로세서(120)는 도 6c의 좌측과 같이, 제1 행과 제2 행의 데이터쌍을 양자화하기 위해 α1'을 2로 설정하고, 데이터쌍을 1, -1로 변환할 수 있다. 그리고, 프로세서(120)는 도 6c의 우측과 같이, 제3 행과 제4 행의 데이터쌍을 양자화하기 위해 α2'을 6으로 설정하고, 데이터쌍을 1, -1로 변환할 수 있다.
도 6b와 6c의 양자화 효율은 동일할 수 있다. 구체적으로, 도 6b의 좌측 및 우측은 각각 64 비트의 데이터가 34 비트의 데이터로 변환되고, 도 6c의 좌측 및 우측도 각각 64 비트의 데이터가 34 비트의 데이터로 변환된다.
다만, 양자화 오차는 최초 데이터 값과 양자화된 값의 차이이며, 도 6b 및 도 6c의 각 도면에서 화살표로 표시되어 있다. 그리고, 도 6c에서의 화살표의 길이는 도 6b에서의 화살표의 길이보다 짧다. 즉, 클러스터링에 따라 양자화 오차를 축소시키고, 양자화에 따른 인공지능 모델의 정확도 저하를 최소화할 수 있다.
도 7a 및 도 7b는 본 개시의 일 실시 예에 따른 클러스터링에 따른 부가 동작을 설명하기 위한 도면들이다.
도 7a는 클러스터링 없이 초기 매트릭스들을 그대로 이용하여 연산하는 순서를 도시하였다. 구체적으로, 프로세서(120)는 입력 데이터 a, b, c를 제1 매트릭스에 입력하여 X, Y, Z를 출력하고, X, Y, Z를 제2 매트릭스에 입력하여 최종 데이터 A, B, C를 출력할 수 있다.
다만, 클러스터링에 따라 매트릭스의 데이터 위치가 변경되면, 프로세서(120)는 출력 데이터를 클러스터링 정보에 기초하여 재정렬할 수 있다. 여기서, 클러스터링 정보는 복수의 그룹을 복수의 클러스터로 클러스터링하는 동작에 기초하여 획득된 정보일 수 있다.
예를 들어, 프로세서(120)는 도 7b에 도시된 바와 같이, w12가 w13과 위치가 변경되면, a, b, c와 제1 매트릭스의 연산에 따라 X, Z, Y가 출력되었음을 식별하고, X, Z, Y를 X, Y, Z로 변환하여 제2 매트릭스에 입력할 수 있다.
그리고, 제1 매트릭스에 이어 제2 매트릭스를 클러스터링하는 경우, 프로세서(120)는 제2 매트릭스의 클러스터링에 따라 순서가 바뀌는 A, B, C 출력만을 재정렬하고, 제1 매트릭스 연산의 출력 X, Z, Y에 대해서는 제2 매트릭스의 열을 X, Z, Y 순서에 따라 재정렬하여 X, Y, Z로 변환한 것과 동일한 결과를 획득할 수 있다.
도 8a 및 도 8b는 본 개시의 일 실시 예에 따른 매트릭스를 분할하여 양자화하는 방법을 설명하기 위한 도면들이다.
이상에서는 설명의 편의를 위하여 사이즈가 작은 매트릭스를 이용하여 양자화 방법을 설명하였으나, 실제로 매트릭스의 사이즈는 매우 클 수 있다. 가령, 도 8a에 도시된 바와 같이, 열의 개수가 10개라고 하면, a와 k는 거리가 가까워 양자화 효율이 높을 수 있으나, h와 r은 거리가 멀어 양자화 효율이 낮을 수 있다.
그에 따라, 프로세서(120)는 도 8b에 도시된 바와 같이, 매트릭스를 열에 기초하여 두 개의 서브 영역으로 구분하고, 각 서브 영역 별로 클러스터링 및 양자화를 수행할 수도 있다. 이러한 방법을 통해 양자화 효율이 좀더 향상될 수 있다.
연산 결과를 병합하는 방법은 간단한 수학이므로 구체적인 설명은 생략한다.
도 9a 내지 도 9c는 본 개시의 일 실시 예에 따른 WER(word error rate) 및 정확도를 설명하기 위한 도면들이다.
도 9a는 하나의 매트릭스를 양자화함에 따른 WER을 나타내며, WER이 낮을수록 성능이 좋다. 테이블은 클러스터의 개수를 나타내며, 클러스터의 개수가 증가할수록 양자화 오차가 감소하여 WER이 낮아진다. 그리고, 비트는 클러스터당 대표값의 개수를 나타내며, 비트의 개수가 증가할수록 양자화 오차가 더 감소하여 WER이 낮아진다.
도 9b는 도 8b에서 설명한 바와 같이 매트릭스를 4개의 서브 영역으로 구분하여 양자화함에 따른 WER을 나타낸다. 도 9b의 경우 도 9a의 경우보다 양자화 효율이 향상될 수 있다.
도 9c는 리오더링에 따른 효율을 나타내는 도면으로, K-평균 알고리즘(K-means algorithm)을 이용함에 따라 양자화 오차가 감소하여 정확도가 향상될 수 있다. 그리고, 테이블은 클러스터의 개수를 나타내며, 클러스터의 개수가 증가할수록 양자화 오차가 감소하여 정확도가 향상될 수 있다.
도 10a 내지 도 10c는 본 개시의 다양한 실시 예에 따른 WER을 그래프로 나타낸 도면들이다.
도 10a 내지 도 10c는 각각 클러스터당 대표값의 개수가 1, 2, 4인 경우를 나타내며, 대표값의 개수가 증가할수록 WER이 낮아질 수 있다. 그리고, 도 10a 내지 도 10c는 각각에서 클러스터의 개수를 나타내는 테이블이 증가할수록 WER이 낮아질 수 있다.
또한, 도 10a 내지 도 10c에는 종래기술에 따른 제1 WER(original), 클러스터링 및 양자화 후의 제2 WER(Kmeans), 및 도 8b에 따른 매트릭스의 분할 후 분할된 매트릭스 각각의 클러스터링 및 양자화 후의 제3 WER(Kmeans Column Transpose)가 도시되어 있다. 대체로 제3 WER이 제2 WER보다 낮으며, 제2 WER이 제1 WER보다 낮아, 본 개시에 따라 WER이 개선됨을 확인할 수 있다.
도 11은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
먼저, 인공지능 모델에 포함된 매트릭스의 적어도 일부에 포함된 데이터를 매트릭스의 행 및 열 중 하나를 기준으로 복수의 그룹으로 식별한다(S1110). 그리고, 각 그룹에 포함된 데이터에 기초하여 복수의 그룹을 복수의 클러스터로 클러스터링한다(S1120). 그리고, 각 클러스터에 포함된 복수의 서브 그룹에 포함된 데이터를 매트릭스의 행 및 열 중 다른 하나를 기준으로 양자화한다(S1130).
여기서, 양자화하는 단계(S1130)는 매트릭스의 행 및 열 중 다른 하나를 기준으로 복수의 서브 그룹 중 제1 서브 그룹에 속한 제1 데이터 및 제2 서브 그룹에 속한 데이터 중 제1 데이터에 대응되는 제2 데이터를, 제1 데이터 및 제2 데이터의 크기에 기초하여 양자화할 수 있다.
그리고, 양자화하는 단계(S1130)는 제1 데이터 및 제2 데이터의 크기에 기초하여 적어도 하나의 대표값을 획득하고, 적어도 하나의 대표값에 기초하여 제1 데이터 및 제2 데이터를 바이너리 코드로 변환하여 제1 데이터 및 제2 데이터를 양자화할 수 있다.
여기서, 양자화하는 단계(S1130)는 복수의 클러스터 각각에 포함된 복수의 서브 그룹의 개수에 기초하여 적어도 하나의 대표값의 개수를 결정할 수 있다.
한편, 클러스터링하는 단계(S1120)는 복수의 그룹 각각을 다차원 공간에 맵핑하고, 다차원 공간에서 그룹 간의 거리에 기초하여 복수의 그룹을 복수의 클러스터로 클러스터링할 수 있다.
또는, 클러스터링하는 단계(S1120)는 K-평균 알고리즘(K-means algorithm)에 기초하여 복수의 그룹을 복수의 클러스터로 클러스터링할 수 있다.
한편, 양자화된 매트릭스에 기초하여 입력 데이터에 대한 출력 데이터가 획득되면, 출력 데이터를 클러스터링 정보에 기초하여 재정렬하는 단계를 더 포함할 수 있다. 여기서, 클러스터링 정보는 복수의 그룹을 복수의 클러스터로 클러스터링하는 동작에 기초하여 획득된 정보일 수 있다.
그리고, 복수의 그룹 각각은 매트릭스의 행 및 열 중 하나 단위의 데이터를 포함할 수 있다.
한편, 매트릭스의 적어도 일부는 매트릭스를 매트릭스의 행 및 열 중 다른 하나에 기초하여 식별된 매트릭스의 서브 영역일 수 있다.
이상과 같은 본 개시의 다양한 실시 예에 따르면, 전자 장치는 인공지능 모델을 양자화하여 데이터 용량을 줄이는 반면, 양자화에 따른 오차를 줄여 성능 저하를 최소화할 수 있다.
한편, 이상에서는 하나의 매트릭스가 양자화되는 것으로 설명하였으나, 인공지능 모델에 포함된 모든 매트릭스가 동일한 방법으로 양자화될 수도 있다.
또한, 이상에서는 프로세서가 행을 기준으로 클러스터링하고, 열을 기준으로 양자화하며, 열을 기준으로 매트릭스를 서브 영역으로 분할하는 것으로 설명하였으나, 이에 한정되는 것은 아니다. 예를 들어, 프로세서는 열을 기준으로 클러스터링하고, 행을 기준으로 양자화하며, 행을 기준으로 매트릭스를 서브 영역으로 분할할 수도 있다.
한편, 이상에서는 Alternating multi-bit quantization 방법에 따른 양자화 방법만을 설명하였으나, 얼마든지 다른 양자화 방법에도 동일한 기술이 적용될 수 있다. 즉, 다른 양자화 방법의 경우에도 클러스터링 및 리오더링을 통해 데이터 용량을 줄이는 반면, 양자화에 따른 오차를 줄여 성능 저하를 최소화할 수 있다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(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 : 스토리지
120 : 프로세서 130 : 통신부
140 : 사용자 인터페이스부 150 : 디스플레이
160 : 오디오 처리부 170 : 비디오 처리부

Claims (19)

  1. 인공지능 모델에 포함된 매트릭스가 저장된 스토리지; 및
    상기 매트릭스의 적어도 일부에 포함된 데이터를 상기 매트릭스의 행 및 열 중 하나를 기준으로 복수의 그룹으로 식별하고,
    각 그룹에 포함된 데이터에 기초하여 상기 복수의 그룹을 복수의 클러스터로 클러스터링하며,
    각 클러스터에 포함된 복수의 서브 그룹에 포함된 데이터를 상기 매트릭스의 행 및 열 중 다른 하나를 기준으로 양자화하는 프로세서;를 포함하는 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 매트릭스의 행 및 열 중 다른 하나를 기준으로 상기 복수의 서브 그룹 중 제1 서브 그룹에 속한 제1 데이터 및 제2 서브 그룹에 속한 데이터 중 상기 제1 데이터에 대응되는 제2 데이터를, 상기 제1 데이터 및 상기 제2 데이터의 크기에 기초하여 양자화하는, 전자 장치.
  3. 제2항에 있어서,
    상기 프로세서는,
    상기 제1 데이터 및 상기 제2 데이터의 크기에 기초하여 적어도 하나의 대표값을 획득하고, 상기 적어도 하나의 대표값에 기초하여 상기 제1 데이터 및 상기 제2 데이터를 바이너리 코드로 변환하여 상기 제1 데이터 및 상기 제2 데이터를 양자화하는, 전자 장치.
  4. 제3항에 있어서,
    상기 프로세서는,
    상기 복수의 클러스터 각각에 포함된 복수의 서브 그룹의 개수에 기초하여 상기 적어도 하나의 대표값의 개수를 결정하는, 전자 장치.
  5. 제1항에 있어서,
    상기 프로세서는,
    상기 복수의 그룹 각각을 다차원 공간에 맵핑하고, 상기 다차원 공간에서 그룹 간의 거리에 기초하여 상기 복수의 그룹을 복수의 클러스터로 클러스터링하는, 전자 장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    K-평균 알고리즘(K-means algorithm)에 기초하여 상기 복수의 그룹을 복수의 클러스터로 클러스터링하는, 전자 장치.
  7. 제1항에 있어서,
    상기 프로세서는,
    상기 양자화된 매트릭스에 기초하여 입력 데이터에 대한 출력 데이터가 획득되면, 상기 출력 데이터를 클러스터링 정보에 기초하여 재정렬하고,
    상기 클러스터링 정보는,
    상기 복수의 그룹을 복수의 클러스터로 클러스터링하는 동작에 기초하여 획득된 정보인, 전자 장치.
  8. 제1항에 있어서,
    상기 복수의 그룹 각각은,
    상기 매트릭스의 행 및 열 중 하나 단위의 데이터를 포함하는, 전자 장치.
  9. 제1항에 있어서,
    상기 매트릭스의 적어도 일부는,
    상기 매트릭스를 상기 매트릭스의 행 및 열 중 상기 다른 하나에 기초하여 식별된 상기 매트릭스의 서브 영역인, 전자 장치.
  10. 전자 장치의 제어 방법에 있어서,
    인공지능 모델에 포함된 매트릭스의 적어도 일부에 포함된 데이터를 상기 매트릭스의 행 및 열 중 하나를 기준으로 복수의 그룹으로 식별하는 단계;
    각 그룹에 포함된 데이터에 기초하여 상기 복수의 그룹을 복수의 클러스터로 클러스터링하는 단계; 및
    각 클러스터에 포함된 복수의 서브 그룹에 포함된 데이터를 상기 매트릭스의 행 및 열 중 다른 하나를 기준으로 양자화하는 단계;를 포함하는 제어 방법.
  11. 제10항에 있어서,
    상기 양자화하는 단계는,
    상기 매트릭스의 행 및 열 중 다른 하나를 기준으로 상기 복수의 서브 그룹 중 제1 서브 그룹에 속한 제1 데이터 및 제2 서브 그룹에 속한 데이터 중 상기 제1 데이터에 대응되는 제2 데이터를, 상기 제1 데이터 및 상기 제2 데이터의 크기에 기초하여 양자화하는, 제어 방법.
  12. 제11항에 있어서,
    상기 양자화하는 단계는,
    상기 제1 데이터 및 상기 제2 데이터의 크기에 기초하여 적어도 하나의 대표값을 획득하고, 상기 적어도 하나의 대표값에 기초하여 상기 제1 데이터 및 상기 제2 데이터를 바이너리 코드로 변환하여 상기 제1 데이터 및 상기 제2 데이터를 양자화하는, 제어 방법.
  13. 제12항에 있어서,
    상기 양자화하는 단계는,
    상기 복수의 클러스터 각각에 포함된 복수의 서브 그룹의 개수에 기초하여 상기 적어도 하나의 대표값의 개수를 결정하는, 제어 방법.
  14. 제10항에 있어서,
    상기 클러스터링하는 단계는,
    상기 복수의 그룹 각각을 다차원 공간에 맵핑하고, 상기 다차원 공간에서 그룹 간의 거리에 기초하여 상기 복수의 그룹을 복수의 클러스터로 클러스터링하는, 제어 방법.
  15. 제10항에 있어서,
    상기 클러스터링하는 단계는,
    K-평균 알고리즘(K-means algorithm)에 기초하여 상기 복수의 그룹을 복수의 클러스터로 클러스터링하는, 제어 방법.
  16. 제10항에 있어서,
    상기 양자화된 매트릭스에 기초하여 입력 데이터에 대한 출력 데이터가 획득되면, 상기 출력 데이터를 클러스터링 정보에 기초하여 재정렬하는 단계;를 더 포함하고,
    상기 클러스터링 정보는,
    상기 복수의 그룹을 복수의 클러스터로 클러스터링하는 동작에 기초하여 획득된 정보인, 제어 방법.
  17. 제10항에 있어서,
    상기 복수의 그룹 각각은,
    상기 매트릭스의 행 및 열 중 하나 단위의 데이터를 포함하는, 제어 방법.
  18. 제10항에 있어서,
    상기 매트릭스의 적어도 일부는,
    상기 매트릭스를 상기 매트릭스의 행 및 열 중 상기 다른 하나에 기초하여 식별된 상기 매트릭스의 서브 영역인, 제어 방법.
  19. 전자 장치의 동작 방법을 실행하기 위한 프로그램이 저장된 비일시적 컴퓨터 판독가능 기록매체에 있어서,
    상기 동작 방법은,
    인공지능 모델에 포함된 매트릭스의 적어도 일부에 포함된 데이터를 상기 매트릭스의 행 및 열 중 하나를 기준으로 복수의 그룹으로 식별하는 단계;
    각 그룹에 포함된 데이터에 기초하여 상기 복수의 그룹을 복수의 클러스터로 클러스터링하는 단계; 및
    각 클러스터에 포함된 복수의 서브 그룹에 포함된 데이터를 상기 매트릭스의 행 및 열 중 다른 하나를 기준으로 양자화하는 단계;를 포함하는 기록 매체.
KR1020180102647A 2018-08-30 2018-08-30 전자 장치 및 그 제어 방법 KR20200027085A (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020180102647A KR20200027085A (ko) 2018-08-30 2018-08-30 전자 장치 및 그 제어 방법
PCT/KR2019/010988 WO2020045977A1 (en) 2018-08-30 2019-08-28 Electronic apparatus and control method thereof
CN201980054821.4A CN112585628A (zh) 2018-08-30 2019-08-28 电子装置及其控制方法
EP19855239.0A EP3776389A4 (en) 2018-08-30 2019-08-28 ELECTRONIC DEVICE AND ITS CONTROL PROCESS
US16/555,331 US11475281B2 (en) 2018-08-30 2019-08-29 Electronic apparatus and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180102647A KR20200027085A (ko) 2018-08-30 2018-08-30 전자 장치 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20200027085A true KR20200027085A (ko) 2020-03-12

Family

ID=69641376

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180102647A KR20200027085A (ko) 2018-08-30 2018-08-30 전자 장치 및 그 제어 방법

Country Status (5)

Country Link
US (1) US11475281B2 (ko)
EP (1) EP3776389A4 (ko)
KR (1) KR20200027085A (ko)
CN (1) CN112585628A (ko)
WO (1) WO2020045977A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200027085A (ko) * 2018-08-30 2020-03-12 삼성전자주식회사 전자 장치 및 그 제어 방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR920007504B1 (ko) 1989-02-02 1992-09-04 정호선 신경회로망을 이용한 이진 가산기
WO1992020029A1 (en) 1991-04-29 1992-11-12 Intel Corporation Neural network incorporating difference neurons
US5204899A (en) * 1991-11-19 1993-04-20 Scientific-Atlanta, Inc. Vector quantization method employing mirrored input vectors to search codebook
US7885473B2 (en) * 2007-04-26 2011-02-08 Texas Instruments Incorporated Method of CABAC coefficient magnitude and sign decoding suitable for use on VLIW data processors
US8897586B2 (en) * 2012-06-15 2014-11-25 Comcast Cable Communications, Llc Dynamic generation of a quantization matrix for compression of a digital object
US20150347927A1 (en) * 2014-06-03 2015-12-03 Nec Laboratories America, Inc. Canonical co-clustering analysis
US10621486B2 (en) * 2016-08-12 2020-04-14 Beijing Deephi Intelligent Technology Co., Ltd. Method for optimizing an artificial neural network (ANN)
US10048826B2 (en) * 2016-10-04 2018-08-14 Sas Institute Inc. Interactive visualizations of a convolutional neural network
US11321609B2 (en) * 2016-10-19 2022-05-03 Samsung Electronics Co., Ltd Method and apparatus for neural network quantization
US20180107926A1 (en) * 2016-10-19 2018-04-19 Samsung Electronics Co., Ltd. Method and apparatus for neural network quantization
US10949736B2 (en) * 2016-11-03 2021-03-16 Intel Corporation Flexible neural network accelerator and methods therefor
US10691886B2 (en) * 2017-03-09 2020-06-23 Samsung Electronics Co., Ltd. Electronic apparatus for compressing language model, electronic apparatus for providing recommendation word and operation methods thereof
KR102606200B1 (ko) * 2018-03-06 2023-11-24 삼성전자주식회사 전자 장치 및 그 제어 방법
US11636319B2 (en) * 2018-08-22 2023-04-25 Intel Corporation Iterative normalization for machine learning applications
KR20200027080A (ko) * 2018-08-28 2020-03-12 삼성전자주식회사 전자 장치 및 그 제어 방법
KR20200027085A (ko) * 2018-08-30 2020-03-12 삼성전자주식회사 전자 장치 및 그 제어 방법
US11010132B2 (en) * 2018-09-28 2021-05-18 Tenstorrent Inc. Processing core with data associative adaptive rounding
KR102659494B1 (ko) * 2019-01-21 2024-04-23 삼성전자주식회사 전자 장치 및 그 제어 방법

Also Published As

Publication number Publication date
WO2020045977A1 (en) 2020-03-05
US20200074283A1 (en) 2020-03-05
US11475281B2 (en) 2022-10-18
CN112585628A (zh) 2021-03-30
EP3776389A1 (en) 2021-02-17
EP3776389A4 (en) 2021-05-26

Similar Documents

Publication Publication Date Title
US11307864B2 (en) Data processing apparatus and method
EP3627397B1 (en) Processing method and apparatus
US11922313B2 (en) Partitioned machine learning architecture
US10691886B2 (en) Electronic apparatus for compressing language model, electronic apparatus for providing recommendation word and operation methods thereof
CN109934792B (zh) 电子装置及其控制方法
JP6182242B1 (ja) データのラベリングモデルに係る機械学習方法、コンピュータおよびプログラム
KR102488338B1 (ko) 언어 모델을 압축하기 위한 전자 장치, 추천 워드를 제공하기 위한 전자 장치 및 그 동작 방법들
CN111178507B (zh) 图谱卷积神经网络数据处理方法及装置
US11568254B2 (en) Electronic apparatus and control method thereof
KR20190105745A (ko) 전자 장치 및 그 제어 방법
US11074671B2 (en) Electronic apparatus and control method thereof
KR20210136706A (ko) 전자 장치 및 이의 제어 방법
US20210279589A1 (en) Electronic device and control method thereof
US20200196007A1 (en) Display apparatus and control method thereof
KR20200027085A (ko) 전자 장치 및 그 제어 방법
US20230214695A1 (en) Counterfactual inference management device, counterfactual inference management method, and counterfactual inference management computer program product
KR20200139909A (ko) 전자 장치 및 그의 연산 수행 방법
CN116348905A (zh) 电子设备及其控制方法
CN113055546A (zh) 处理图像的系统和方法
CN112241786B (zh) 模型超参数的确定方法及设备、计算设备和介质
US11734574B1 (en) Neural Bregman divergences for distance learning
WO2024012171A1 (zh) 二值量化方法、神经网络的训练方法、设备以及存储介质
US20220375240A1 (en) Method for detecting cells in images using autoencoder, computer device, and storage medium
Anton Fu Using Quantization and Serialization to Improve AI Super-Resolution Inference Time on Cloud Platform
KR20190100487A (ko) 전자 장치 및 그 제어 방법

Legal Events

Date Code Title Description
A201 Request for examination