[go: up one dir, main page]

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

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

Info

Publication number
KR102548718B1
KR102548718B1 KR1020170144071A KR20170144071A KR102548718B1 KR 102548718 B1 KR102548718 B1 KR 102548718B1 KR 1020170144071 A KR1020170144071 A KR 1020170144071A KR 20170144071 A KR20170144071 A KR 20170144071A KR 102548718 B1 KR102548718 B1 KR 102548718B1
Authority
KR
South Korea
Prior art keywords
filter
electronic device
pattern
main pattern
optimization data
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020170144071A
Other languages
English (en)
Other versions
KR20180133770A (ko
Inventor
조한수
김경훈
박영환
김석진
김현중
권동욱
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to PCT/KR2018/006400 priority Critical patent/WO2018226014A1/ko
Priority to EP18812967.0A priority patent/EP3582152B1/en
Priority to CN201880034791.6A priority patent/CN110678883B/zh
Priority to US16/617,967 priority patent/US11450086B2/en
Publication of KR20180133770A publication Critical patent/KR20180133770A/ko
Application granted granted Critical
Publication of KR102548718B1 publication Critical patent/KR102548718B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2219Large Object storage; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/264Microinstruction selection based on results of processing
    • G06F9/267Microinstruction selection based on results of processing by instruction selection on output of storage
    • 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
    • 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/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

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

Abstract

전자 장치가 개시된다. 전자 장치는 메모리 및, 뉴럴 네트워크에 의한 학습에 따라 생성된 복수의 필터에서 선정된 주요 패턴의 필터 별로, 뉴럴 네트워크의 입력 데이터를 필터링하기 위한 연산 명령어를 확인하고, 확인된 연산 명령어를 메모리에 저장하는 프로세서를 포함한다.

Description

전자 장치 및 그 제어 방법 { ELECTRONIC APPARATUS AND CONTROL METHOD THEREOF }
본 발명은 전자 장치 및 그 제어 방법에 관한 것으로, 보다 상세하게는 뉴럴 네트워크에 의한 학습을 수행하는 과정에서 요구되는 연산량을 감소시키기 위한 전자 장치 및 그 제어 방법에 관한 것이다.
인공지능의 한 분야인 머신 러닝(machine learning)은 대규모의 빅데이터를 수집 및 분석하여 미래를 예측하고 스스로의 성능을 향상시키는 시스템과 이를 위한 알고리즘을 연구하고 구축하는 기술을 의미한다.
최근, 하드웨어 기술의 발전에 힘입어 빅데이터의 수집과 저장이 가능해지고, 이를 분석하는 컴퓨터 능력과 기술이 정교해지고 빨라짐에 따라, 인간처럼 사물을 인식하고 정보를 이해할 수 있는 알고리즘인 머신러닝에 대한 연구가 활발히 진행되고 있다. 특히, 머신 러닝 기술분야에서도 뉴럴 네트워크(neural network)를 이용한 자율학습 방식의 딥 러닝에 대한 연구가 활발하다.
뉴럴 네트워크는 인간의 뇌의 기능을 적극적으로 모방하려는 의도에 기초하여, 복수의 입력에 가중치를 곱한 총합에 대하여 활성 함수가 특정 경계값과 비교하여 최종 출력을 결정하는 알고리즘으로, 일반적으로 복수의 레이어로 구성되어 있다. 이미지 인식에 많이 이용되는 컨볼루셔널 뉴럴 네트워크(Convolutional Neural Network, 이하 CNN), 음성 인식에 많이 이용되는 리커런트 뉴럴 네트워크(Recurrent Neural Network, 이하 RNN) 등이 대표적이다.
그러나, 기존의 CNN에서는 기본적으로 콘볼루션에 의한 필터링 연산이 수행되므로, 복수 개의 필터가 입력 데이터에 적용됨에 따라 많은 연산이 필요하다. 즉, 피쳐맵 생성을 위한 콘볼루션 연산의 반복에 따라, 수없이 많은 연산량과 대용량의 뉴럴 네트워크 파라미터가 요구되므로 이는 곧, 연산 속도의 저하와 메모리 사용의 비효율성의 문제로 귀결되었다.
따라서, 머신러닝에 있어서, 이러한 연산의 부담을 감소시키기 위한 방안이 요구되고 있다.
본 발명은 상술한 문제점을 해결하기 위한 것으로, 본 발명의 목적은 뉴럴네트워크의 연산 과정에 있어서, 연산속도 및 메모리의 사용량을 개선시키기 위한 전자 장치 및 그 제어 방법을 제공함에 있다.
상술한 문제점을 해결하기 위한 본 발명의 일 실시 예에 따른, 전자 장치는 메모리 및, 뉴럴 네트워크에 의한 학습에 따라 생성된 복수의 필터에서 선정된 주요 패턴의 필터 별로, 상기 뉴럴 네트워크의 입력 데이터를 필터링하기 위한 연산 명령어를 확인하고, 상기 확인된 연산 명령어를 상기 메모리에 저장하는 프로세서를 포함한다.
이때, 프로세서는 상기 저장된 연산 명령어를 이용하여, 상기 주요 패턴의 필터에 의한 필터링 연산을 수행할 수 있다.
또한, 상기 주요 패턴의 필터는 상기 생성된 복수의 필터에 있어서, 논제로 엘리먼트가 배치되는 패턴 별로 각 패턴이 차지하는 연산량의 통계적인 비중에 기초하여 선정된 필터일 수 있다.
또한, 상기 프로세서는 상기 생성된 복수의 필터에 있어서, 논제로 엘리먼트가 배치되는 패턴 별 빈도에 기초하여 상기 주요 패턴을 선정할 수 있다.
또한, 상기 전자 장치는 통신부를 더 포함하고, 상기 프로세서는, 상기 통신부를 통해, 상기 연산 명령어를 타 전자 장치로 전송하며, 상기 타 전자 장치는, 상기 연산 명령어를 이용하여 상기 주요 패턴의 필터에 의한 필터링 연산을 수행할 수 있다.
또한, 상기 프로세서는 상기 선정된 주요 패턴의 필터에서 제로(zero) 엘리먼트가 제거된 최적화 데이터 및 상기 최적화 데이터에 대응되는 연산 명령어를 확인하고, 상기 확인된 최적화 데이터 및 연산 명령어를 상기 메모리에 저장할 수 있다.
또한, 상기 프로세서는 상기 저장된 최적화 데이터 및 상기 최적화 데이터에 포함된 식별 정보에 대응되는 연산 명령어를 이용하여, 상기 주요 패턴의 필터에 의한 필터링 연산을 수행할 수 있다.
또한, 상기 프로세서는 상기 통신부를 통해, 상기 최적화 데이터 및 연산 명령어를 타 전자 장치로 전송하며, 상기 타 전자 장치는 상기 수신된 최적화 데이터 및 상기 최적화 데이터에 포함된 식별 정보에 대응되는 연산 명령어를 이용하여, 상기 주요 패턴의 필터에 의한 필터링 연산을 수행할 수 있다.
한편, 본 발명의 일 실시 예에 따른 전자 장치의 제어 방법은 뉴럴 네트워크에 의한 학습에 따라 생성된 복수의 필터에서 선정된 주요 패턴의 필터 별로 상기 뉴럴 네트워크의 입력 데이터를 필터링하기 위한 연산 명령어를 확인하는 단계 및 상기 확인된 연산 명령어를 저장하는 단계를 포함한다.
이때, 상기 제어 방법은 상기 저장된 연산 명령어를 이용하여, 상기 주요 패턴의 필터에 의한 필터링 연산을 수행하는 단계를 더 포함할 수 있다.
또한, 상기 주요 패턴의 필터는 상기 생성된 복수의 필터에 있어서, 논제로 엘리먼트가 배치되는 패턴 별로 각 패턴이 차지하는 연산량의 통계적인 비중에 기초하여 선정된 필터일 수 있다.
또한, 상기 확인하는 단계는 상기 생성된 복수의 필터에 있어서, 논제로 엘리먼트가 배치되는 패턴 별 빈도에 기초하여 상기 주요 패턴을 선정할 수 있다.
또한, 상기 제어 방법은 상기 저장된 연산 명령어를 타 전자 장치로 전송하는 단계를 더 포함하고, 상기 타 전자 장치는 상기 연산 명령어를 이용하여 상기 주요 패턴의 필터에 의한 필터링 연산을 수행할 수 있다.
또한, 상기 확인하는 단계는 상기 선정된 주요 패턴의 필터에서 제로(zero) 엘리먼트가 제거된 최적화 데이터 및 상기 최적화 데이터에 대응되는 연산 명령어를 확인하고, 상기 저장하는 단계는, 상기 확인된 최적화 데이터 및 연산 명령어를 저장할 수 있다.
또한, 상기 제어 방법은 상기 저장된 최적화 데이터 및 상기 최적화 데이터에 포함된 연산 명령어를 이용하여, 상기 주요 패턴의 필터에 의한 필터링 연산을 수행하는 단계를 더 포함할 수 있다.
또한, 상기 제어 방법은 상기 저장된 최적화 데이터 및 연산 명령어를 타 전자 장치로 전송하는 단계를 더 포함하고, 상기 타 전자 장치는 상기 최적화 데이터 및 상기 최적화 데이터에 포함된 식별 정보에 대응되는 연산 명령어를 이용하여, 상기 주요 패턴의 필터에 의한 필터링 연산을 수행할 수 있다.
상술한 본 발명의 다양한 실시 예에 따르면, 머신 러닝에 필요한 연산에 있어서, 연산 속도 및 연산량을 크게 감소시킬 수 있으며, 메모리 사용량 또한 기존에 비해 감소시킬 수 있는 효과가 있다.
도 1a 및 1b는 본 발명의 서로 다른 실시 예에 따른, 전자 장치의 구성을 간략히 도시한 블록도,
도 2는 본 발명의 일 실시 예에 따른, 입력 데이터에 복수의 필터를 적용하여 분류 동작을 수행하는 일반적인 CNN의 연산 과정을 도시한 도면,
도 3a 및 3b는 본 발명의 일 실시 예에 따른, 주요 패턴의 필터들을 설명하기 위한 도면,
도 4는 본 발명의 일 실시 예에 따른, 주요 패턴 중 하나인 A 패턴을 가지는 필터에 대한 최적화 데이터의 구조를 도시한 도면,
도 5는 본 발명의 일 실시 예에 따른, 타 전자 장치의 구성을 간략히 도시한 블록도,
도 6은 본 발명의 일 실시 예에 따른, 서버로부터 주요 필터에 대한 연산 명령어를 수신하고, 이를 이용하여 콘볼루션 연산을 수행하는 머신 러닝 시스템을 나타낸 도면,
도 7a 및 7b는 본 발명의 일 실시 예에 따른, 여러 가지 종류의 입력 이미지를 학습하고, 학습된 데이터를 이용하여 입력 이미지를 인식하는 방법을 설명하기 위한 도면,
도 8은 본 발명의 일 실시 예에 따른, 뉴럴 네트워크에 의한 학습을 수행하는 방법을 설명하기 위한 흐름도이다.
본 발명에 대하여 구체적으로 설명하기에 앞서, 본 명세서 및 도면의 기재 방법에 대하여 설명한다.
먼저, 본 명세서 및 청구범위에서 사용되는 용어는 본 발명의 다양한 실시 예들에서의 기능을 고려하여 일반적인 용어들을 선택하였다. 하지만, 이러한 용어들은 당 분야에 종사하는 기술자의 의도나 법률적 또는 기술적 해석 및 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 일부 용어는 출원인이 임의로 선정한 용어일 수 있다. 이러한 용어에 대해서는 본 명세서에서 정의된 의미로 해석될 수 있으며, 구체적인 용어 정의가 없으면 본 명세서의 전반적인 내용 및 당해 기술 분야의 통상적인 기술 상식을 토대로 해석될 수도 있다.
또한, 본 명세서에 첨부된 각 도면에 기재된 동일한 참조 번호 또는 부호는 실질적으로 동일한 기능을 수행하는 부품 또는 구성요소를 나타낸다. 설명 및 이해의 편의를 위해서 서로 다른 실시 예들에서도 동일한 참조번호 또는 부호를 사용하여 설명하도록 한다. 즉, 복수의 도면에서 동일한 참조 번호를 가지는 구성 요소를 모두 도시하고 있다고 하더라도, 복수의 도면들이 하나의 실시 예를 의미하는 것은 아니다.
또한, 본 명세서 및 청구범위에서는 구성요소들 간의 구별을 위하여 “제1”, “제2” 등과 같이 서수를 포함하는 용어가 사용될 수 있다. 이러한 서수는 동일 또는 유사한 구성 요소들을 서로 구별하기 위하여 사용하는 것이며, 이러한 서수 사용으로 인하여 용어의 의미가 한정 해석되어서는 안될 것이다. 일 예로, 이러한 서수와 결합된 구성 요소는 그 숫자에 의해 사용 순서나 배치 순서 등이 제한 해석되어서는 안된다. 필요에 따라서는, 각 서수들은 서로 교체되어 사용될 수도 있다.
본 명세서에서 단수의 표현은 문맥상 명백하게 다름을 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, “포함하다” 또는 “구성하다” 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명의 실시 예에서 “모듈”, “유닛”, “부(Part)” 등과 같은 용어는 적어도 하나의 기능이나 동작을 수행하는 구성 요소를 지칭하기 위한 용어이며, 이러한 구성 요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수도 있다. 또한, 복수의 “모듈”, “유닛”, “부(part)” 등은 각각이 개별적인 특정한 하드웨어로 구현될 필요가 있는 경우를 제외하고는, 적어도 하나의 모듈이나 칩으로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
또한, 본 발명의 실시 예에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적인 연결뿐 아니라, 다른 매체를 통한 간접적인 연결의 경우도 포함한다. 또한 어떤 부분이 어떤 구성 요소를 포함한다는 의미는, 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있다는 것을 의미한다.
이하, 첨부된 도면을 이용하여 본 발명에 대하여 구체적으로 설명한다.
도 1a 및 1b는 본 발명의 일 실시 예에 따른, 전자 장치의 구성을 간략히 도시한 블록도이다.
도 1a를 참조하면, 뉴럴 네트워크(neural network)에 의한 학습을 수행하는 전자 장치(100)는 메모리(110) 및 프로세서(120)를 포함한다.
메모리(110)는 뉴럴 네트워크에 의한 학습 데이터를 저장하는 구성이다. 여기서, 학습 데이터는 뉴럴 네트워크에 의한 학습에 따라 생성된 복수의 필터를 포함할 수 있다. 이때, 메모리(110)는 생성된 복수의 필터에 대하여 전처리가 수행된 데이터를 저장할 수 있으며, 이에 대하여는 후술하도록 한다.
메모리(110)는 HDD(Hard Disk Drive), SSD(Solid State Drive), DRAM 메모리, SRAM 메모리, FRAM 메모리 또는 플래시 메모리 등 다양한 포맷의 메모리로 구현될 수 있다.
프로세서(120)는 전자 장치(100)의 전반적인 동작을 제어하는 구성이다. 프로세서(120)는 뉴럴 네트워크의 학습에 의해 생성된 복수의 필터에서 선정된 주요 패턴의 필터에 대하여 전처리를 수행한다.
여기서, 필터는 가중치를 갖는 마스크로서 가중치의 행렬로 정의된다. 필터는 윈도우(windows) 또는 커널(kernel)이라고도 한다. 필터에서 행렬을 구성하는 가중치는 0(zero value) 또는 0으로 근사될 수 있는 제로 엘리먼트 및 0과 1 사이의 일정한 값을 갖는 논제로 엘리먼트로 구성되며, 그 기능에 따라 다양한 패턴을 가질 수 있다.
뉴럴 네트워크가 이미지를 인식하기 위한 콘볼루션 뉴럴 네트워크(Convolution Neural Network, 이하 CNN)로 구현되는 경우를 예로 들면, 프로세서(120)는 가중치를 갖는 필터를 입력되는 영상에 씌우고, 영상과 필터의 가중치를 각각 곱한 값에 대한 합(콘볼루션 연산)을 출력영상의 픽셀값으로 결정하여 피쳐맵(feature map)을 추출할 수 있다. 입력 영상은 강인한 특징을 추출하기 위해 다중 필터를 통해 복수 개로 추출될 수 있으며, 필터의 개수에 따라 복수 개의 피쳐 맵이 추출될 수 있다. 이와 같은 콘볼루션 영상은 다중 레이어에 의해 반복될 수 있다. 이때, CNN의 학습 대상에 따라 학습되는 필터들이 달라지며, 선정되는 필터들의 패턴 또한 달라지게 된다. 즉, CNN의 학습 대상이 고양이, 강아지, 돼지, 소 등 무엇인지에 따라, 학습되는 필터 및 선정되는 필터가 달라진다.
이와 같이 프로세서(120)는 각기 다른 특징을 추출할 수 있는 다중 필터를 조합하여 CNN에 적용함으로써, 입력되는 원본 데이터가 어떤 형태의 특징을 가지고 있는지 판단할 수 있다.
한편, 주요 패턴의 필터는 학습된 복수의 필터 중 논제로(non-zero) 엘리먼트가 주요한 패턴으로 배치된 필터로서, 필터링 연산 과정에서 기설정된 비율 이상의 연산량을 차지하는 패턴으로 이루어진 필터 또는 학습된 복수의 필터 중 기설정된 비율 이상의 빈도를 차지하는 패턴으로 이루어진 필터를 의미한다. 이에 대하여는 도 3a 및 3b를 참조하여 구체적으로 설명하도록 한다.
한편, 프로세서(120)가 수행하는 전처리는 선정된 주요 패턴의 필터 별로, 선정된 주요 패턴의 필터를 이용하여 뉴럴 네트워크의 입력 데이터를 필터링하기 위한 연산 명령어를 각각 확인하는 과정을 포함한다. 연산 명령어는 뉴럴 네트워크의 입력 데이터를 필터링하기 위한 콘볼루션 연산을 대체하는 명령어로서, 컴파일링되어 식별될 수 있다. 확인된 연산 명령어는 메모리(110)에 저장될 수 있다.
프로세서(120)는 저장된 연산 명령어에 따라, 주요 패턴의 필터에 의한 필터링 연산을 수행할 수 있다. 이를 위하여, 일 실시 예에 따른 프로세서(120)는 필터링 연산을 수행하기 위한 연산 모듈(미도시)을 더 포함할 수 있다.
또한, 다른 실시 예에 따른 전자 장치(100’)는 도 1b에 도시된 바와 같이, 통신부(130)를 더 포함할 수 있고, 프로세서(120)는 통신부(130)를 통해, 연산 명령어를 타 전자 장치(200)로 전송할 수 있다. 타 전자 장치(200)는 연산 모듈을 포함하며, 연산 명령어를 이용하여 주요 패턴의 필터에 의한 필터링 연산을 수행할 수 있다.
통신부(130)는 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), CDMA2000(Code Division Multi Access 2000), EV-DO(Enhanced Voice-Data Optimized or Enhanced Voice-Data Only), WCMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등에 따라 구축된 이동 통신망에서 타 전자 장치(200)와 무선 신호를 송수신할 수 있다.
또한, 통신부(130)는 와이파이(Wi-Fi), 블루투스(Blue-tooth), 와이파이 다이렉트(Wi-Fi Direct) 등을 지원할 수 있으며, 유선 네트워크와의 접속을 위해 이더넷(Ethernet) 단자 등을 포함할 수 있다.
또한, 통신부(130)는 타 전자 장치(200)와 유선으로 연산 명령어를 전송할 수도 있으며, 이 경우, 타 전자 장치(200)와 유선으로 연결되기 위한 커넥터를 포함할 수 있다.
한편, 프로세서(120)는 선정된 주요 패턴의 필터에서 제로(zero) 엘리먼트가 제거된 최적화 데이터를 획득하고, 획득한 최적화 데이터에 따라 필터링 연산을 수행하기 위한 연산 명령어를 확인할 수 있다. 프로세서(120)는 선정된 주요 패턴의 필터에서 제로(zero) 엘리먼트를 제거하고, 논제로(non-zero) 엘리먼트 및 패턴을 식별할 수 있는 식별 정보로 이루어진, 주요 패턴의 필터에 대한 최적화 데이터를 생성할 수 있다. 이때, 최적화 데이터는 식별 정보 및 논제로 엘리먼트가 일렬로 배열된 데이터 구조를 가진다.
또한, 연산 명령어는 뉴럴 네트워크의 입력 데이터를 필터링하기 위한 연산 모듈에 있어서, 연산 모듈에 포함된 복수의 연산 소자 중 특정 연산 소자가 특정 연산을 수행하도록 하는 명령어이다. 복수의 연산 소자는 기 설정된 구조로 배열되어 연산 모듈을 구성할 수 있다.
이러한 연산 모듈은 상술한 바와 같이, 전자 장치(100’)와 통신을 수행하는 타 전자 장치(200)에 포함될 수 있고, 전자 장치(100’)는 메모리(110)에 저장된 최적화 데이터 및 연산 명령어를 타 전자 장치(100’)로 전송할 수 있다. 타 전자 장치(200)는 전자 장치(100’)로부터 수신된 최적화 데이터 및 연산 명령어를 이용하여, 주요 패턴의 필터에 의한 뉴럴 네트워크의 필터링 연산을 수행할 수 있다.
한편, 프로세서(120)는 주요 패턴의 유형별로, 주요 패턴의 필터에 대응되는 최적화 데이터 및 연산 명령어를 메모리(110)에 각각 저장할 수 있다.
도 2는 본 발명의 일 실시 예에 따른, 입력 데이터에 복수의 필터를 적용하여 분류 동작을 수행하는 일반적인 CNN의 연산 과정을 도시한 것이다.
도 2에 도시된 바와 같이, CNN의 입력 이미지(21)에 복수 개의 필터(22-1 ~ 22-n)가 적용될 수 있다. 이때, 필터(22-1 ~ 22-n)는 CNN의 종류에 따라 차이는 있으나, 일반적으로 64개 내지 512개 종류의 필터로 구성될 수 있다. 한편, 입력 이미지(21)는 CNN에 입력되기 전에 복수 개의 이미지로 분할되어 입력될 수도 있다.
여기서, 입력 이미지(21)는 색상을 표현하기 위한 일정한 뎁스(depth)를 가질 수 있으며, 예를 들어 R(red), G(green), B(blue)로 표현되는 3개의 데이터로 구성될 수 있다.
CNN은 기본적으로 콘볼루셔널 레이어(convolutional layer)와 풀링 레이어(pooling layer)가 반복되는 구조를 가진다. 콘볼루셔널 레이어에서는, 적용되는 필터(22-1 ~ 22-n)의 개수에 기초하여, 입력 이미지(21)에 대한 복수 개의 피쳐맵(23-1 ~ 23-n)이 생성되며, 생성된 복수 개의 피쳐맵은 풀링 레이어에서 샘플링된다. 이러한 과정이 반복됨에 따라 크기가 감소된 복수 개의 피쳐맵(24-1 ~ 24-n)이 생성될 수 있다. 최종적으로는 풀리 커넥티드 레이어(fully connected layer)에 의해 입력 이미지(21)가 특정 대상으로 분류되게 된다. 도 2는 입력 이미지(21)가 "고양이(cat)"으로 분류된 예를 나타낸 것이다.
도 3a 및 3b는 본 발명의 일 실시 예에 따른, 주요 패턴의 필터들을 설명하기 위한 도면이다.
도 3a에 도시된 바와 같이, 뉴럴 네트워크에서는 제로값(zero value) 또는 제로값으로 근사될 수 있는 제로 엘리먼트 및 제로값이 아닌 0과 1사이의 일정한 값을 갖는 논제로 엘리먼트가 배치된 형태에 기반한 일정한 패턴을 가지는 필터가 사용된다.
이때, 도 3b에 도시된 바와 같이, 뉴럴 네트워크에서 사용되는 필터 중 특별히 큰 빈도수로 사용되는 패턴, 즉 주요 패턴을 가지는 필터가 존재한다. 이러한 주요 패턴을 가지는 필터는 뉴럴 네트워크의 종류를 막론하고 널리 사용되며, 이러한 주요 패턴을 가지는 필터를 이용하여 일정하게 높은 확률로 이미지를 분류할 수 있다. 이러한 주요 패턴을 가지는 필터에 대한 연산량은 뉴럴 네트워크의 전체 연산량 중 통계적으로 높은 연산 비중을 차지하기 때문에, 이러한 주요 필터들에 대해 전처리를 수행하여 연산 효율을 높일 수 있다.
프로세서(120)는 뉴럴 네트워크에 의한 학습에 따라 생성된 복수의 필터에 있어서, 논제로 엘리먼트가 배치되는 패턴 별 빈도에 기초하여 주요 패턴을 선정할 수 있다. 즉, 생성된 복수의 필터의 각 패턴 중에서 출현하는 빈도가 상대적으로 높은 패턴의 순으로 기설정된 개수의 패턴이 주요 패턴으로 선정될 수 있다. 또한, 생성된 복수의 필터의 각 패턴 중에서 출현하는 빈도가 기설정된 횟수 이상인 패턴이 주요 패턴으로 선정될 수도 있다.
한편, 주요 패턴의 필터는 뉴럴 네트워크에 의한 학습에 따라 생성된 복수의 필터에 있어서, 논제로 엘리먼트가 배치되는 패턴 별로 각 패턴이 차지하는 연산량의 통계적인 비중에 기초하여 선정될 수도 있다. 즉, 입력 데이터의 처리에 필요한 전체 연산량 중 차지하는 연산량의 비율이 높은 순서에 따라 기 설정된 개수의 서로 다른 주요 패턴을 가지는 필터가 선정될 수 있으며, 이때, 연산량의 합이 일정한 비율 이상을 넘는 특정 개수의 필터가 선정될 수 있다.
예를 들어, 뉴럴 네트워크의 한 종류인 VGG16의 경우 인식 객체수를 10개라고 가정하면, VGG16에서 사용되는 215개 패턴의 필터 중 20개 패턴의 필터가 입력 데이터에 적용되는 데에 필요한 연산량이 전체 연산량의 60%를 차지한다. 이때, 프로세서(120)는 60%의 연산량을 차지하는 20개 패턴의 필터를 전처리를 수행할 필터로 선정할 수 있다. 또한, 뉴럴 네트워크의 다른 종류인 ResNet의 경우 인식 객체수를 80개라고 가정하면, ResNet에서 사용되는 277개 패턴의 필터 중 20개 패턴의 필터가 입력 데이터에 적용되는 데에 필요한 연산량이 전체 연산량의 40%를 차지한다. 이때, 프로세서(120)는 40%의 연산량을 차지하는 20개 패턴의 필터를 전처리를 수행할 필터로 선정할 수 있다.
즉, 뉴럴 네트워크에서 사용되는 필터의 종류가 몇백 개라고 하더라도, 그 중에서 기 설정된 임계 비율의 연산량을 차지하는 패턴은 몇십 개 남짓이라고 할 수 있다. 본 발명은 이러한 경향에 착안하여, 주요 패턴을 가지는 필터가 입력 데이터에 적용될 때, 적용되는 필터에 의한 입력 데이터의 필터링에 대응되는 연산 명령어를 미리 저장함으로써, 주요 패턴의 필터의 콘볼루션 연산에 따른 연산량을 감소시키는 것을 목적으로 한다.
한편, 상술한 실시 예들에서는 필터의 2차원 면(x, y)에서의 논제로 엘리먼트의 위치가 기설정된 패턴을 가지는 경우를 상정하였으나, 전처리의 대상을 '필터' 단위가 아닌 '패턴' 단위로 확장시킬 수 있다. 이 경우, 필터의 일 영역에 논제로 엘리먼트의 주요 패턴이 존재하는 경우, 주요 패턴이 존재하는 영역에 대한 연산 명령어를 미리 저장할 수 있다. 이 경우, 주요 패턴이 존재하는 영역에 대하여는 기 저장된 연산 명령어를 이용하여 연산이 수행되고, 주요 패턴이 존재하는 영역 외 나머지 영역은 종래의 콘볼루션에 의한 필터링 연산을 수행되는 실시 예 또한, 본 발명의 기술적 사상에 포함시킬 수 있다. 또한, 필터의 뎁스(z) 방향으로 논제로 엘리먼트의 주요 패턴이 존재하는 경우에도, 주요 패턴이 존재하는 영역에 대한 연산 명령어를 미리 저장할 수 있다.
도 4는 주요 패턴 중 하나인 A 패턴을 가지는 필터에 대한 최적화 데이터의 구조를 도시한 것이다.
복수의 패턴을 가지는 필터들(41-1 ~ 41-n) 중 주요 패턴인 A 패턴을 가지는 필터(이하, A 필터)를 이용하여 뉴럴 네트워크의 입력 데이터를 필터링하는 경우, 도 4의 (a)에 도시된 바와 같이 입력 데이터에 적용되는 A 필터는 A 필터에 포함된 논제로 엘리먼트 및 제로 엘리먼트가 직렬로 배치된 형태인 데이터 어레이(array) 구조를 가질 수 있다.
본 발명에서 제안하는 A 필터의 최적화 데이터는 도 4의 (b)에 도시된 바와 같이, 적용되는 필터가 A 패턴임을 나타내는 태그가 데이터 어레이 중 첫 번째 필드 영역에 포함되고, 나머지 필드 영역은 A 필터의 논제로 엘리먼트만으로 이루어진 구조를 가진다. 여기서 태그는, A 패턴을 식별하기 위한 식별 정보로 기능한다. 결론적으로, 최적화 데이터는 기존의 데이터 어레이 구조에서 제로 엘리먼트가 모두 제거되고, 패턴의 유형을 나타내는 태그만이 추가된 구조이다.
도 5는 본 발명의 일 실시 예에 따른 타 전자 장치의 구성을 간략히 도시한 블록도이다.
타 전자 장치(200)는 전자 장치(100’)로부터 수신된 학습 데이터를 CNN에 적용하여 입력 데이터로부터 판단 또는 예측된 결과를 출력 데이터로 생성하기 위한 구성이다. 이하에서는, 편의상 전자 장치(100’)를 제1 전자 장치, 타 전자 장치(200)를 제2 전자 장치로 호칭하도록 한다.
도 5를 참조하면, 제2 전자 장치(200)는 통신부(210), 연산 모듈(220), 메모리(230) 및 프로세서(240)를 포함한다.
통신부(210)는 뉴럴 네트워크에 의한 학습을 수행하는 제1 전자 장치(100’)와 통신을 수행하는 구성이다. 제2 전자 장치(200)는 통신부(210)를 통해 제1 전자 장치(100)로부터, 제1 전자 장치(100’)에서 선정된 필터의 연산 명령어를 수신할 수 있다.
또한, 다른 실시 예에 따른 제2 전자 장치(200)는 제1 전자 장치(100’)로부터, 선정된 필터의 최적화 데이터 및 최적화 데이터에 대응되는 연산 명령어를 수신할 수도 있다. 또한, 통신부(210)는 제1 전자 장치(100’)의 학습에 따라 연산 명령어가 업데이트될 때마다, 업데이트된 연산 명령어를 수신할 수 있다.
또한, 다른 실시 예에 따른 제2 전자 장치(200)의 통신부(210)는 제1 전자 장치(100’)의 학습에 따라 주요 필터의 최적화 데이터 및 최적화 데이터에 대응되는 연산 명령어가 업데이트될 때마다, 업데이트된 최적화 데이터 및 연산 명령어를 수신할 수 있다.
통신부(210)는 GSM(Global System for Mobile communication), CDMA(Code Division Multi Access), CDMA2000(Code Division Multi Access 2000), EV-DO(Enhanced Voice-Data Optimized or Enhanced Voice-Data Only), WCMA(Wideband CDMA), HSDPA(High Speed Downlink Packet Access), HSUPA(High Speed Uplink Packet Access), LTE(Long Term Evolution), LTE-A(Long Term Evolution-Advanced) 등에 따라 구축된 이동 통신망에서 제1 전자 장치(100’)와 무선 신호를 송수신할 수 있다.
또한, 통신부(210)는 와이파이(Wi-Fi), 블루투스(Blue-tooth), 와이파이 다이렉트(Wi-Fi Direct) 등을 지원할 수 있다.
연산 모듈(220)은 기 설정된 구조로 배열된 복수의 연산 소자(Processing Element, 이하 PE)를 포함하며, 서로 인접하는 연산 소자 간에 데이터를 공유하여 연산을 수행하는 구성이다. 예를 들어, PE는 메쉬 토폴로지 네트워크(mesh topology network), 트리 토폴로지 네트워크(tree topology network) 등 다양한 형태의 네트워크의 구조로 배열될 수 있다. 메모리(230)는 주요 패턴의 필터에 대하여 전처리가 수행된 데이터를 저장하는 구성이다. 구체적으로, 메모리(230)는 제1 전자 장치(100’)로부터 수신된, 주요 패턴의 필터에 대한 최적화 데이터 및 최적화 데이터에 대응되는 연산 명령어를 저장한다.
메모리(230)는 HDD(Hard Disk Drive), SSD(Solid State Drive), DRAM 메모리, SRAM 메모리, FRAM 메모리 또는 플래시 메모리 등 다양한 포맷의 메모리로 구현될 수 있다.
프로세서(240)는 제2 전자 장치(200)의 전반적인 동작을 제어하는 구성이다. 구체적으로 프로세서(240)는 제1 전자 장치(100’)로부터, 뉴럴 네트워크의 학습에 의해 생성된 복수의 필터 중 주요 패턴의 필터를 수신하고, 주요 패턴에 대응되는 연산 명령어 즉, 주요 패턴의 필터에 의해 뉴럴 네트워크의 입력 데이터를 필터링하기 위한 연산 명령어를 수신하도록 통신부(230)를 제어할 수 있다. 프로세서(240)는 수신된 산 명령어를 메모리(230)에 저장한다. 제1 전자 장치(100’)에서 주요 패턴의 필터가 최적화 데이터로 전처리되고, 제1 전자 장치(100’)로부터 최적화 데이터 및 최적화 데이터에 대응되는 연산 명령어를 수신하는 경우에는, 최적화 데이터 및 최적화 데이터에 대응되는 연산 명령어를 메모리(230)에 저장한다.
한편, 프로세서(240)는 복수의 필터 중 주요 패턴의 필터가 입력 데이터에 적용될 때, 메모리(230)에 저장된 연산 명령어 중, 적용되는 주요 패턴에 대응되는 연산 명령어를 확인할 수 있다.
프로세서(240)는 확인된 연산 명령어에 따라서, 입력 데이터 및 전처리된 최적화 데이터에 기초한 연산 값을 도출한다. 구체적으로, 프로세서(240)는 최적화 데이터에 포함된 식별 정보에 기초하여, 식별 정보에 대응되는 연산 명령어를 메모리로부터 획득하고, 획득한 연산 명령어에 따라 필터링 연산을 수행하도록 연산 모듈(220)을 제어할 수 있다.
이때, 프로세서(240)는 최적화 데이터에 포함된 식별 정보에 대응되는 연산 명령어를 메모리(230)로부터 획득하고, 획득한 연산 명령어에 따라 필터링 연산을 수행하도록 연산 모듈(220)을 제어할 수 있다. 도출된 연산 값은 일반적으로 입력 데이터가 기 설정된 패턴의 필터에 의해 콘볼루션 연산에 기초하여 필터링되는 연산 값과 동일한 값이 될 것이다.
도 6은 본 발명의 일 실시 예에 따른, 제1 전자 장치로부터 주요 필터에 대한 연산 명령어를 수신하고, 이를 이용하여 콘볼루션 연산을 수행하는 머신 러닝 시스템을 나타낸 것이다. 도 6에서, 뉴럴 네트워크에 의한 학습을 수행하는 제1 전자 장치(100’)가 서버로, 제1 전자 장치에서 학습된 데이터를 이용하여 입력 데이터에 대한 필터링 연산을 수행하는 제2 전자 장치(200)가 사용자 디바이스로 구현되는 실시 예를 도시하였다. 또한, 도 6에서는 편의상 주요 패턴으로 구성된 필터를 주요 필터라고 명명하였다.
서버(100’)는 주요 필터에 대한 전처리를 수행하는 구성으로, 주요 필터에 대응되는 최적화 데이터 및 연산 명령어를 생성한다.
도 6에 도시된 바와 같이, 서버(100’)는 메모리(110), 프로세서(120) 및 통신부(130)를 포함한다. 프로세서(120)는 뉴럴 네트워크에 적용되는 복수의 필터를 학습하고, 학습된 복수의 필터 중 주요 필터를 선정하여 메모리(110)에 저장한다. 프로세서(120)는 학습된 필터 중 패턴의 빈도수가 높은 순으로 적어도 하나의 기 설정된 패턴의 필터를 주요 필터로 선정할 수 있다. 예를 들어, 도 6에 도시된 바와 같이, 프로세서(120)는 주요 필터인 제1 내지 제3 필터에 대해 학습된 제1 데이터 내지 제3 데이터를 메모리(110)에 저장할 수 있다.
도 6을 참조하면, 프로세서(120)는 데이터 분석 소프트웨어 툴을 이용하여 제1 내지 제3 필터가 최적화된 제1 내지 제3 최적화 데이터를 각각 생성할 수 있다. 제1 내지 제3 최적화 데이터는, 제1 내지 제3 필터 각각에 포함된 논제로 엘리먼트의 배열 패턴에 따라 결정된 제1 내지 제3 필터의 패턴 유형을 나타내는 태그를 각각 포함한다.
한편, 제1 내지 제3 최적화 데이터는 필터에 포함된 제로 엘리먼트가 제거된 데이터일 수도 있다. 이 경우, 제1 내지 제3 최적화 데이터는 원래의 학습된 데이터에 비해, 차지하는 비트수가 작을 수 있다. 즉, 이 경우 제1 내지 제3 최적화 데이터는 논제로 엘리먼트 및 필터의 패턴 유형을 나타내는 태그만을 포함할 뿐이므로, 필터의 종류에 관계 없이 일정한 비트수를 차지하는 원래의 학습된 데이터에 비해 차지하는 비트수가 절약될 수 있다. 이때, 최적화 데이터를 표현하는 비트수는 논제로 엘리먼트의 값에 따라 다르게 결정될 수 있다. 예를 들어, 제1 최적화 데이터에서 ‘1’, ‘4’ 및 ‘7’ 위치의 논제로 엘리먼트는 각 논제로 엘리먼트를 표현하기 위한 최적의 비트수인 8비트로 각각 표현될 수 있다. 반면, 제2 최적화 데이터에서 ‘1’ 및 ‘9’ 위치의 논제로 엘리먼트는 각 논제로 엘리먼트를 표현하기 위한 최적의 비트수인 16비트로 각각 표현될 수 있다.
한편, 프로세서(120)는 제1 내지 제3 최적화 데이터를 기반으로, 제1 내지 제3 필터들에 대한 연산 명령어인 제1 내지 제3 연산 명령어를 각각 생성할 수 있다. 이때, 연산 명령어는 사용자 디바이스(200)에 포함된 연산 모듈(220)에 포함된 복수의 연산 소자 중 주요 패턴에 따라 결정되는 연산 소자가 주요 패턴에 따라 결정되는 연산을 수행하도록 하는 명령어이다. 제1 내지 제3 연산 명령어는 제1 내지 제3 필터의 패턴 유형에 따라 결정될 수 있다.
프로세서(120)는 통신부(130)를 통해, 제1 내지 제3 최적화 데이터 및 제1 내지 제3 연산 명령어를 사용자 디바이스(200)로 전송할 수 있다.
도 6을 참조하면, 사용자 디바이스(200)는 통신부를 통해, 제1 내지 3 최적화 데이터 및 제1 내지 제3 연산 명령어를 수신할 수 있다. 프로세서(240)는 수신된 제1 내지 제3 최적화 데이터 및 제1 내지 제 3 연산 명령어를 메모리(230)에 저장할 수 있다. 이때, 제1 내지 제3 최적화 데이터 및 제1 내지 제3 연산 명령어는 메모리(230)의 서로 다른 영역(데이터 메모리, 연산 명령어 메모리)에 구분되어 저장될 수 있다.
메모리(230)에 저장된 제1 내지 제3 최적화 데이터는 연산 모듈(220)에 입력되며, 연산 모듈(220)은 입력된 제1 내지 제3 최적화 데이터를 입력 이미지에 적용할 때에, 각각 제1 내지 제3 연산 명령어에 따른 연산을 수행할 수 있다. 프로세서(240)는 연산 모듈(220)에 포함된 복수의 연산 소자들 중 제1 내지 제3 최적화 데이터 각각에 대하여 제1 내지 제3 연산 명령어에 의해 정해진 연산 소자를 이용하여 콘볼루션에 의한 필터링 연산을 수행한다.
한편, 프로세서(240)는 서버(100’)에 저장된 제1 내지 3 최적화 데이터가 변경될 때마다, 서버(100’)로부터 변경된 제1 내지 3 최적화 데이터를 수신하여 업데이트를 수행할 수 있다. 또한, 서버(100’)에서 선정한 주요 필터가 변경되는 경우, 프로세서(240)는 변경된 주요 필터에 대한 최적화 데이터 및 연산 명령어를 수신하여 업데이트를 수행할 수 있다.
도 7a 및 7b는 본 발명의 일 실시 예에 따른, 여러 가지 종류의 입력 이미지를 학습하고, 학습된 데이터를 이용하여 입력 이미지를 인식하는 방법을 설명하기 위한 도면이다.
도 7a에 도시된 바에 따르면, 제2 전자 장치(200)의 프로세서(240)는 이미지 인식을 위한 CNN 알고리즘에 따른 연산을 수행하도록 연산 모듈(220)을 제어할 수 있으며, "고양이", "다람쥐", "사슴", "강아지" 등 다양한 동물 이미지에 대한 인식을 수행할 수 있다.
이때, 제2 전자 장치(200)의 메모리(230)에는 주요 패턴에 대하여 학습된 최적화 데이터가 미리 저장되어 있을 수 있다. 최적화 데이터는, 예를 들어, 각각 A 패턴, B 패턴 및 C 패턴으로 구성되는 필터의 주요 패턴의 유형을 나타내는 태그 및 논제로 엘리먼트에 대한 각각의 데이터를 포함할 수 있다. 또한, 메모리(230)는 A 패턴, B 패턴 및 C 패턴 유형을 나타내는 태그에 각각 대응되는 연산 명령어를 저장할 수 있다.
이미지 데이터가 연산 모듈(220)에 입력되면, 다양한 패턴의 필터가 이미지 데이터에 적용되게 되는데, 주요 패턴의 필터에 대하여는, 연산 모듈(220)이 학습된 최적화 데이터 및 연산 명령어를 이용하여 연산을 수행하게 된다. 프로세서(240)는 이미지 데이터의 필터링에 이용되는 복수의 학습된 필터 중에서 적어도 하나의 A 패턴의 필터를 선별하고, 선별된 A 패턴의 필터를 이미지 데이터에 적용할 때에 A 패턴의 필터에 대한 전처리 데이터를 이용한다. 즉, 프로세서(240)는 A 패턴의 필터가 이미지 데이터에 적용될 때에, A 패턴의 필터에 대응되는 최적화 데이터에 포함된 논제로 엘리먼트를 연산 모듈(110)에 입력한다. 이때, 프로세서(240)는 A 패턴의 유형을 나타내는 태그에 기초하여, A 패턴에 대응되는 연산 명령어를 메모리(230)로부터 추출할 수 있다. 프로세서(240)는 추출된 연산 명령어를 연산 모듈(220)에 입력하여, A 패턴을 포함하는 필터에 의한 필터링 연산이 수행되도록 제어할 수 있다.
이때, 프로세서(240)는 도 7a에 도시된 바와 같이, 연산 모듈(220)에 순차적으로 적용될 복수의 필터(학습된 데이터)를 주요 패턴의 필터별로 재배치할 수 있다. 구체적으로, 도 7b를 참조하면, 프로세서(240)는 학습에 의해 생성된 복수의 필터 중에서 복수의 A 패턴의 필터(71)를 선별한다. 콘볼루션 연산의 특성상 필터링 연산이 수행된 결과 값은 필터의 순서에 영향을 받지 않으므로, 프로세서(240)는 선별된 복수의 A 필터(71)가 우선적으로 연산 모듈(220)에 적용되도록 복수의 필터를 재배치할 수 있다. 즉, 프로세서(240)는 A 패턴에 대응되는 연산 명령어를 메모리(230)로부터 1회만 획득하고, 획득한 연산 명령어를 이용하여 같은 패턴의 복수의 A 패턴의 필터(71)에 의한 필터링 연산을 일괄적으로 처리할 수 있다. 이러한 방식으로, 프로세서(240)는 입력 데이터의 필터링에 순차적으로 적용되는 복수의 필터 중에서 동일한 패턴 별로 복수의 B 패턴의 필터(72) 및 C 패턴의 필터(73)를 각각 선별하여 재배치하고, B 패턴의 필터(72) 및 C 패턴의 필터(73)에 대응되는 연산 명령어를 각각 1회씩만 획득하여 B 패턴의 필터(72) 및 C 패턴의 필터(73)에 의한 필터링 연산을 일괄적으로 처리할 수 있다.
이에 따라, 프로세서(240)는 연산 명령어를 메모리(230)로부터 반복적으로 로드(load)함에 따른 부하 및 연산속도 저하를 감소시킬 수 있다.
도 8은 본 발명의 일 실시 예에 따른, 제1 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
먼저, 뉴럴 네트워크에 의한 학습에 따라 생성된 복수의 필터에서 선정된 주요 패턴의 필터 별로 뉴럴 네트워크의 입력 데이터를 필터링하기 위한 연산 명령어를 확인한다(S1110). 이때, 주요 패턴의 필터는 생성된 복수의 필터에 있어서, 논제로 엘리먼트가 배치되는 패턴 별로 각 패턴이 차지하는 연산량의 통계적인 비중에 기초하여 선정된 필터일 수 있다. 또는, 생성된 복수의 필터에 있어서, 논제로 엘리먼트가 배치되는 패턴 별 빈도에 기초하여 주요 패턴을 선정할 수 있다. 이때, 학습에 의해 생성되는 복수의 필터는 뉴럴 네트워크의 학습 대상에 따라 서로 다를 수 있다.
이후, 선정된 주요 패턴의 필터 별로 뉴럴 네트워크의 입력 데이터를 필터링하기 위한 연산 명령어를 확인한다(S820). 이때, 선정된 주요 패턴의 필터에서 제로 엘리먼트가 제거된 최적화 데이터 및 최적화 데이터에 대응되는 연산 명령어를 확인할 수 있다.
이후, 확인된 연산 명령어를 저장한다(S830).
일 실시 예에서, 저장된 연산 명령어에 따라, 주요 패턴의 필터에 의한 필터링 연산을 수행할 수 있다.
또한, 다른 실시 예에서, 저장된 연산 명령어를 제2 전자 장치로 전송할 수 있다. 이때, 제2 전자 장치는 연산 명령어를 이용하여 뉴럴 네트워크의 입력 데이터를 필터링할 수 있다.
상술한 바와 같이, 주요한 연산량을 차지하는 주요 패턴의 필터에 대하여 전처리를 미리 수행함으로써, 메모리의 부담이 낮아지고, 연산 효율이 높아지게 된다.
상술한 다양한 실시 예에 따른 뉴럴 네트워크에 의한 학습 방법은 프로그램으로 구현되어 다양한 기록 매체에 저장될 수 있다. 즉, 각종 프로세서에 의해 처리되어 상술한 다양한 디스플레이 방법을 실행할 수 있는 컴퓨터 프로그램이 기록 매체에 저장된 상태로 사용될 수도 있다. 일 예로, 뉴럴 네트워크에 의한 학습에 따라 생성된 복수의 필터에서 선정된 주요 패턴의 필터 별로 뉴럴 네트워크의 입력 데이터를 필터링하기 위한 연산 명령어를 확인하는 단계, 확인된 연산 명령어를 저장하는 단계를 수행하는 프로그램이 저장된 비일시적 판독 가능 매체(non-transitory computer readable medium)가 제공될 수 있다.
비일시적 판독 가능 매체한 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상술한 다양한 어플리케이션 또는 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크 USB, 메모리카드, ROM 등과 같은 비일시적 판독 가능 매체에 저장되어 제공될 수 있다.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형 실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100: 전자 장치 110: 메모리
120: 프로세서 130: 통신부
200: 타 전자 장치 210: 통신부
220: 연산 모듈 230: 메모리
240: 프로세서

Claims (16)

  1. 전자 장치에 있어서,
    메모리; 및
    뉴럴 네트워크에 의한 학습에 따라 생성된 복수의 필터에서 선정된 주요 패턴의 필터 별로, 상기 뉴럴 네트워크의 입력 데이터를 필터링하기 위한 연산 명령어를 확인하고, 상기 확인된 연산 명령어를 상기 메모리에 저장하는 프로세서;를 포함하고,
    상기 프로세서는,
    상기 생성된 복수의 필터에 있어서, 논제로 엘리먼트가 배치되는 패턴 별 빈도에 기초하여 상기 주요 패턴을 선정하는, 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 저장된 연산 명령어를 이용하여 상기 주요 패턴의 필터에 의한 필터링 연산을 수행하는, 전자 장치.
  3. 제1항에 있어서,
    상기 주요 패턴의 필터는,
    상기 생성된 복수의 필터에 있어서, 논제로 엘리먼트가 배치되는 패턴 별로 각 패턴이 차지하는 연산량의 통계적인 비중에 기초하여 선정된 필터인, 전자 장치.
  4. 삭제
  5. 제1항에 있어서,
    통신부;를 더 포함하고,
    상기 프로세서는,
    상기 통신부를 통해, 상기 연산 명령어를 타 전자 장치로 전송하며,
    상기 타 전자 장치는,
    상기 연산 명령어를 이용하여 상기 주요 패턴의 필터에 의한 필터링 연산을 수행하는, 전자 장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 선정된 주요 패턴의 필터에서 제로(zero) 엘리먼트가 제거된 최적화 데이터 및 상기 최적화 데이터에 대응되는 연산 명령어를 확인하고, 상기 확인된 최적화 데이터 및 연산 명령어를 상기 메모리에 저장하는, 전자 장치.
  7. 제6항에 있어서,
    상기 프로세서는,
    상기 저장된 최적화 데이터 및 상기 최적화 데이터에 포함된 식별 정보에 대응되는 연산 명령어를 이용하여, 상기 주요 패턴의 필터에 의한 필터링 연산을 수행하는, 전자 장치.
  8. 제6항에 있어서,
    통신부;를 더 포함하고,
    상기 프로세서는,
    상기 통신부를 통해, 상기 최적화 데이터 및 연산 명령어를 타 전자 장치로 전송하며,
    상기 타 전자 장치는,
    수신된 상기 최적화 데이터 및 상기 최적화 데이터에 포함된 식별 정보에 대응되는 연산 명령어를 이용하여, 상기 주요 패턴의 필터에 의한 필터링 연산을 수행하는, 전자 장치.
  9. 전자 장치의 제어 방법에 있어서,
    뉴럴 네트워크에 의한 학습에 따라 생성된 복수의 필터에서 선정된 주요 패턴의 필터 별로 상기 뉴럴 네트워크의 입력 데이터를 필터링하기 위한 연산 명령어를 확인하는 단계; 및
    상기 확인된 연산 명령어를 저장하는 단계;를 포함하고,
    상기 확인하는 단계는,
    상기 생성된 복수의 필터에 있어서, 논제로 엘리먼트가 배치되는 패턴 별 빈도에 기초하여 상기 주요 패턴을 선정하는, 제어 방법.
  10. 제9항에 있어서,
    상기 저장된 연산 명령어를 이용하여 상기 주요 패턴의 필터에 의한 필터링 연산을 수행하는 단계;를 더 포함하는, 제어 방법.
  11. 제9항에 있어서,
    상기 주요 패턴의 필터는,
    상기 생성된 복수의 필터에 있어서, 논제로 엘리먼트가 배치되는 패턴 별로 각 패턴이 차지하는 연산량의 통계적인 비중에 기초하여 선정된 필터인, 제어 방법.
  12. 삭제
  13. 제9항에 있어서,
    상기 저장된 연산 명령어를 타 전자 장치로 전송하는 단계;를 더 포함하고,
    상기 타 전자 장치는,
    상기 연산 명령어를 이용하여 상기 주요 패턴의 필터에 의한 필터링 연산을 수행하는, 제어 방법.
  14. 제9항에 있어서,
    상기 확인하는 단계는,
    상기 선정된 주요 패턴의 필터에서 제로(zero) 엘리먼트가 제거된 최적화 데이터 및 상기 최적화 데이터에 대응되는 연산 명령어를 확인하고,
    상기 저장하는 단계는,
    상기 확인된 최적화 데이터 및 연산 명령어를 저장하는, 제어 방법.
  15. 제14항에 있어서,
    상기 저장된 최적화 데이터 및 상기 최적화 데이터에 포함된 식별 정보에 대응되는 연산 명령어를 이용하여, 상기 주요 패턴의 필터에 의한 필터링 연산을 수행하는 단계;를 더 포함하는, 제어 방법.
  16. 제14항에 있어서,
    상기 저장된 최적화 데이터 및 연산 명령어를 타 전자 장치로 전송하는 단계;를 더 포함하고,
    상기 타 전자 장치는,
    상기 최적화 데이터 및 상기 최적화 데이터에 포함된 식별 정보에 대응되는 연산 명령어를 이용하여, 상기 주요 패턴의 필터에 의한 필터링 연산을 수행하는, 제어 방법.
KR1020170144071A 2017-06-07 2017-10-31 전자 장치 및 그 제어 방법 Active KR102548718B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/KR2018/006400 WO2018226014A1 (ko) 2017-06-07 2018-06-05 전자 장치 및 그 제어 방법
EP18812967.0A EP3582152B1 (en) 2017-06-07 2018-06-05 Electronic device and method for controlling same
CN201880034791.6A CN110678883B (zh) 2017-06-07 2018-06-05 电子装置和用于控制该电子装置的方法
US16/617,967 US11450086B2 (en) 2017-06-07 2018-06-05 Electronic device and method for controlling same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201762516389P 2017-06-07 2017-06-07
US62/516,389 2017-06-07

Publications (2)

Publication Number Publication Date
KR20180133770A KR20180133770A (ko) 2018-12-17
KR102548718B1 true KR102548718B1 (ko) 2023-06-28

Family

ID=65007448

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170144071A Active KR102548718B1 (ko) 2017-06-07 2017-10-31 전자 장치 및 그 제어 방법

Country Status (4)

Country Link
US (1) US11450086B2 (ko)
EP (1) EP3582152B1 (ko)
KR (1) KR102548718B1 (ko)
CN (1) CN110678883B (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12026942B2 (en) * 2020-08-20 2024-07-02 Si Analytics Co., Ltd Method to detect object

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100166315A1 (en) * 2008-12-26 2010-07-01 Paquier Williams J F Method and apparatus for creating a pattern recognizer

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1393196A4 (en) * 2001-05-07 2007-02-28 Health Discovery Corp CORES AND METHODS FOR SELECTING CORES FOR USE IN TEACHING MACHINES
KR20030009682A (ko) 2001-07-23 2003-02-05 엘지전자 주식회사 가산기 기반 분산 연산의 가산 공유 정보 추출을 위한신경망 알고리즘 구현 방법
DE60234900D1 (de) 2001-12-21 2010-02-11 Ibm Verfahren und Schaltungen zur Bildskalierung mit Hilfe neuronaler Netzwerke
KR100442434B1 (ko) 2002-03-07 2004-07-30 엘지전자 주식회사 학습된 신경망 설계를 위한 어레이 구조 연산 방법
US7016529B2 (en) 2002-03-15 2006-03-21 Microsoft Corporation System and method facilitating pattern recognition
JP4314017B2 (ja) 2002-11-06 2009-08-12 キヤノン株式会社 階層処理装置
US7359576B1 (en) 2004-02-27 2008-04-15 Adobe Systems Incorporated Using difference kernels for image filtering
JP2006098151A (ja) * 2004-09-29 2006-04-13 Dainippon Screen Mfg Co Ltd パターン検査装置およびパターン検査方法
US20060224532A1 (en) * 2005-03-09 2006-10-05 Case Western Reserve University Iterative feature weighting with neural networks
WO2010030794A1 (en) * 2008-09-10 2010-03-18 Digital Infuzion, Inc. Machine learning methods and systems for identifying patterns in data
US8442927B2 (en) 2009-07-30 2013-05-14 Nec Laboratories America, Inc. Dynamically configurable, multi-ported co-processor for convolutional neural networks
US8620853B2 (en) * 2011-07-19 2013-12-31 Smartsignal Corporation Monitoring method using kernel regression modeling with pattern sequences
KR101910576B1 (ko) 2011-11-08 2018-12-31 삼성전자주식회사 인공신경망을 이용하여 신속하게 입력 패턴을 분류하는 방법 및 장치
JP2014063359A (ja) * 2012-09-21 2014-04-10 Sony Corp 信号処理装置および信号処理方法、出力装置および出力方法、並びにプログラム
US9020248B2 (en) * 2013-02-22 2015-04-28 Nec Laboratories America, Inc. Window dependent feature regions and strict spatial layout for object detection
US9042601B2 (en) * 2013-03-14 2015-05-26 Nec Laboratories America, Inc. Selective max-pooling for object detection
US10417525B2 (en) 2014-09-22 2019-09-17 Samsung Electronics Co., Ltd. Object recognition with reduced neural network weight precision
US9786036B2 (en) * 2015-04-28 2017-10-10 Qualcomm Incorporated Reducing image resolution in deep convolutional networks
US10013652B2 (en) * 2015-04-29 2018-07-03 Nuance Communications, Inc. Fast deep neural network feature transformation via optimized memory bandwidth utilization
US20160358069A1 (en) * 2015-06-03 2016-12-08 Samsung Electronics Co., Ltd. Neural network suppression
US11423311B2 (en) * 2015-06-04 2022-08-23 Samsung Electronics Co., Ltd. Automatic tuning of artificial neural networks
US10460230B2 (en) * 2015-06-04 2019-10-29 Samsung Electronics Co., Ltd. Reducing computations in a neural network
KR102325602B1 (ko) 2015-07-06 2021-11-12 삼성전자주식회사 데이터를 병렬적으로 처리하는 장치 및 방법
US10182244B2 (en) * 2016-03-02 2019-01-15 MatrixView, Inc. Fast encoding loss metric
CN109479135B (zh) * 2016-08-10 2021-10-15 松下电器(美国)知识产权公司 编码装置、解码装置、编码方法及解码方法
KR102683756B1 (ko) * 2016-12-26 2024-07-10 삼성전자주식회사 멀티미디어 신호의 프로세싱 방법, 장치 및 시스템
KR102642853B1 (ko) * 2017-01-05 2024-03-05 한국전자통신연구원 컨볼루션 회로, 그것을 포함하는 어플리케이션 프로세서 및 그것의 동작 방법
JP6767660B2 (ja) * 2017-01-27 2020-10-14 富士通株式会社 プロセッサ、情報処理装置及びプロセッサの動作方法
US9952831B1 (en) * 2017-02-16 2018-04-24 Google Llc Transposing in a matrix-vector processor
US11164071B2 (en) * 2017-04-18 2021-11-02 Samsung Electronics Co., Ltd. Method and apparatus for reducing computational complexity of convolutional neural networks
CN107633295B (zh) * 2017-09-25 2020-04-28 南京地平线机器人技术有限公司 用于适配神经网络的参数的方法和装置
JP2019074967A (ja) * 2017-10-17 2019-05-16 キヤノン株式会社 フィルタ処理装置およびその制御方法
KR20190048491A (ko) * 2017-10-31 2019-05-09 삼성전자주식회사 식각 효과 예측 방법 및 입력 파라미터 결정 방법
CN107832839B (zh) * 2017-10-31 2020-02-14 南京地平线机器人技术有限公司 执行卷积神经网络中的运算的方法和装置
US10481914B2 (en) * 2017-11-08 2019-11-19 Arm Limited Predicting detected branches as taken when cumulative weight values in a weight table selected by history register bits exceed a threshold value
US11132605B2 (en) * 2017-11-20 2021-09-28 International Business Machines Corporation Cardinal sine as an activation function for universal classifier training data
US10740659B2 (en) * 2017-12-14 2020-08-11 International Business Machines Corporation Fusing sparse kernels to approximate a full kernel of a convolutional neural network
US11354791B2 (en) * 2018-12-19 2022-06-07 General Electric Company Methods and system for transforming medical images into different styled images with deep neural networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100166315A1 (en) * 2008-12-26 2010-07-01 Paquier Williams J F Method and apparatus for creating a pattern recognizer

Also Published As

Publication number Publication date
EP3582152A4 (en) 2020-04-22
EP3582152B1 (en) 2022-11-02
US20200117942A1 (en) 2020-04-16
CN110678883B (zh) 2024-04-26
CN110678883A (zh) 2020-01-10
KR20180133770A (ko) 2018-12-17
EP3582152A1 (en) 2019-12-18
US11450086B2 (en) 2022-09-20

Similar Documents

Publication Publication Date Title
CN107832839B (zh) 执行卷积神经网络中的运算的方法和装置
US12198041B2 (en) Efficient utilization of processing element array
KR102419136B1 (ko) 다채널 특징맵을 이용하는 영상 처리 장치 및 방법
US11694081B2 (en) Accelerating neural networks with one shot skip layer pruning
KR102390379B1 (ko) 뉴럴 네트워크 프로세서, 뉴럴 네트워크 프로세서의 동작 방법, 및 뉴럴 네트워크 장치
JP6961640B2 (ja) データ処理のシステムおよび方法
US11734554B2 (en) Pooling processing method and system applied to convolutional neural network
CN109843401A (zh) 一种ai对象行为模型优化方法以及装置
US20210326687A1 (en) Neural Network System and Data Processing Technology
KR102470027B1 (ko) 다수 컨벌루션 윈도우 중의 이미지 데이터를 추출하는 방법, 장치, 기기 및 컴퓨터 판독 가능한 저장매체
KR102808580B1 (ko) 데이터를 처리하는 방법 및 장치
KR20210024865A (ko) 데이터를 처리하는 방법 및 장치
US12243300B2 (en) Efficient object detection using deep learning techniques
KR102522296B1 (ko) 인공신경망 모델을 이용한 데이터 분석 방법 및 장치
KR102548718B1 (ko) 전자 장치 및 그 제어 방법
CN112990453A (zh) 利用神经网络处理的方法和装置
US10762602B2 (en) Methods and apparatus to enable parallel processing when solving linear equations in a computer vision processing system
KR20210073300A (ko) 뉴럴 네트워크 장치, 이의 동작 방법 및, 이를 포함하는 뉴럴 네트워크 시스템
WO2019212455A1 (en) Convolutional neural network
CN106504293B (zh) 一种指纹图像压缩方法及装置
JP2023076839A (ja) 機械学習装置およびプルーニング方法
KR20240131392A (ko) 이미지 데이터로부터 객체를 식별하기 위한 전자 장치, 방법 및 컴퓨터 판독 가능 저장 매체
US20240169703A1 (en) Apparatus for collecting a training image of a deep learning model and a method for the same
US20230071417A1 (en) Image processing device and operation method thereof
CN109670598A (zh) 一种基于深度学习的数据处理方法

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20171031

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20201026

Comment text: Request for Examination of Application

Patent event code: PA02011R01I

Patent event date: 20171031

Comment text: Patent Application

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20221226

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20230608

PG1601 Publication of registration