KR20200088198A - 뉴럴 네트워크의 레이어 축소를 이용하여 입력 데이터를 처리하는 방법 및 장치 - Google Patents

뉴럴 네트워크의 레이어 축소를 이용하여 입력 데이터를 처리하는 방법 및 장치 Download PDF

Info

Publication number
KR20200088198A
KR20200088198A KR1020190087099A KR20190087099A KR20200088198A KR 20200088198 A KR20200088198 A KR 20200088198A KR 1020190087099 A KR1020190087099 A KR 1020190087099A KR 20190087099 A KR20190087099 A KR 20190087099A KR 20200088198 A KR20200088198 A KR 20200088198A
Authority
KR
South Korea
Prior art keywords
reference sample
layer
input
neural network
inference
Prior art date
Application number
KR1020190087099A
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 US16/739,543 priority Critical patent/US20200226451A1/en
Publication of KR20200088198A publication Critical patent/KR20200088198A/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/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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

Landscapes

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

Abstract

뉴럴 네트워크의 레이어 축소(layer contraction)를 이용하여 입력 데이터를 처리하는 방법 및 장치는, 뉴럴 네트워크에 의해 처리될 입력 샘플들 중에서 참조 샘플을 결정하고, 참조 샘플에 대한 추론 프로세스를 수행하고, 추론 프로세스의 근사화를 위하여 입력 레이어 및 출력 레이어 간의 어파인 변환(affine transformation)의 관계를 정의하는 레이어 축소 파라미터들을 결정하고, 참조 샘플에 대해 결정된 레이어 축소 파라미터들에 기초한 어파인 변환을 이용하여 나머지 일련의 입력 샘플들에 대한 추론을 수행한다.

Description

뉴럴 네트워크의 레이어 축소를 이용하여 입력 데이터를 처리하는 방법 및 장치 {Method and apparatus for processing input data using layer contraction of neural network}
뉴럴 네트워크의 레이어 축소를 이용하여 입력 데이터를 처리하는 방법 및 장치에 관한다.
뉴럴 네트워크(neural network)는 컴퓨터 과학적 아키텍쳐(computational architecture)를 참조하여 구현된다. 최근 뉴럴 네트워크 기술이 발전함에 따라, 다양한 종류의 전자 시스템에서 뉴럴 네트워크를 활용하여 입력 데이터를 분석하고 유효한 정보를 추출하는 연구가 활발히 진행되고 있다. 뉴럴 네트워크를 처리하는 장치는 복잡한 입력 데이터에 대한 많은 양의 연산을 필요로 한다. 따라서, 뉴럴 네트워크를 이용하여 대량의 입력 데이터를 실시간으로 분석하여, 원하는 정보를 추출하기 위해서는 뉴럴 네트워크에 관한 연산을 효율적으로 처리할 수 있는 기술이 요구된다.
뉴럴 네트워크의 레이어 축소를 이용하여 입력 데이터를 처리하는 방법 및 장치를 제공하는데 있다. 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
일 측면에 따르면, 컴퓨팅 장치에서 뉴럴 네트워크의 레이어 축소(layer contraction)를 이용하여 입력 데이터를 처리하는 방법은, 입력 레이어, 하나 이상의 히든 레이어들 및 출력 레이어를 포함하는 뉴럴 네트워크에 의해 처리될 일련의 입력 샘플들 중에서 참조 샘플을 결정하는 단계; 상기 입력 레이어로 입력된 상기 참조 샘플에 대한 상기 히든 레이어들에서의 연산들에 기초하여 상기 출력 레이어의 출력 액티베이션을 획득하는, 추론(inference) 프로세스를 수행하는 단계; 상기 추론 프로세스의 근사화를 위하여, 상기 입력 레이어 및 상기 출력 레이어 간의 어파인 변환(affine transformation)의 관계를 정의하는 레이어 축소 파라미터들을 결정하는 단계; 및 상기 참조 샘플에 대해 결정된 상기 레이어 축소 파라미터들에 기초한 어파인 변환을 이용하여 나머지 일련의 입력 샘플들에 대한 추론을 수행하는 단계를 포함한다.
다른 측면에 따르면, 컴퓨터로 읽을 수 있는 기록매체는 상술한 방법을 실행하는 명령어들을 포함하는 하나 이상의 프로그램이 기록된 기록매체를 포함할 수 있다.
또 다른 측면에 따르면, 적어도 하나의 프로그램이 저장된 메모리; 및 상기 적어도 하나의 프로그램을 실행함으로써, 뉴럴 네트워크의 레이어 축소를 이용하여 입력 데이터를 처리하는 적어도 하나의 프로세서를 포함하고, 상기 프로세서는 입력 레이어, 하나 이상의 히든 레이어들 및 출력 레이어를 포함하는 뉴럴 네트워크에 의해 처리될 일련의 입력 샘플들 중에서 참조 샘플을 결정하고, 상기 입력 레이어로 입력된 상기 참조 샘플에 대한 상기 히든 레이어들에서의 연산들에 기초하여 상기 출력 레이어의 출력 액티베이션을 획득하는, 추론(inference) 프로세스를 수행하고, 상기 추론 프로세스의 근사화를 위하여, 상기 입력 레이어 및 상기 출력 레이어 간의 어파인 변환(affine transformation)의 관계를 정의하는 레이어 축소 파라미터들을 결정하고, 상기 참조 샘플에 대해 결정된 상기 레이어 축소 파라미터들에 기초한 어파인 변환을 이용하여 나머지 일련의 입력 샘플들에 대한 추론을 수행하는, 컴퓨팅 장치를 제공한다.
도 1은 일 실시예에 따른 뉴럴 네트워크를 이용하여 입력 데이터를 처리하는 컴퓨팅 시스템을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 뉴럴 네트워크의 레이어 축소(layer contraction)를 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 컴퓨팅 장치의 하드웨어 구성을 설명하기 위한 블록도이다.
도 4는 일 실시예에 따른 뉴럴 네트워크의 레이어 축소를 이용하여 입력 데이터를 처리하는 방법의 흐름도이다.
도 5는 일 실시예에 따른 뉴럴 네트워크의 레이어 축소를 이용하여 추론을 수행하는 방법을 설명하기 위한 알고리즘이다.
도 6a 내지 도 6d는 일 실시예들에 따른 참조 샘플의 갱신이 필요한지 여부를 판단하는 방식들을 설명하기 위한 도면들이다.
도 7은 일 실시예에 따라 원본 뉴럴 네트워크를 이용한 추론과 레이어-축소 뉴럴 네트워크를 이용한 추론을 비교하여 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 전자 시스템을 나타내는 블록도이다.
도 9는 일 실시예에 따른 뉴럴 네트워크의 레이어 축소를 이용하여 입력 데이터를 처리하는 방법의 흐름도이다.
실시예들에서 사용되는 용어는 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 명세서의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 실시예들에서 사용되는 “구성된다” 또는 “포함한다” 등의 용어는 명세서 상에 기재된 여러 구성 요소들, 또는 여러 단계들을 반드시 모두 포함하는 것으로 해석되지 않아야 하며, 그 중 일부 구성 요소들 또는 일부 단계들은 포함되지 않을 수도 있고, 또는 추가적인 구성 요소 또는 단계들을 더 포함할 수 있는 것으로 해석되어야 한다.
아래에서는 첨부한 도면을 참고하여 실시예에 대하여 상세히 설명한다. 그러나 실시예는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 예에 한정되지 않는다.
도 1은 일 실시예에 따른 뉴럴 네트워크를 이용하여 입력 데이터를 처리하는 컴퓨팅 시스템을 설명하기 위한 도면이다.
도 1을 참고하면, 뉴럴 네트워크를 처리하는 컴퓨팅 시스템(1)은 이미지 데이터, 비디오 데이터, 오디오/음성 데이터, 외부/내부 센서를 이용하여 측정된 센싱 데이터, 네트워크를 통해 수신된 네트워크 데이터 등과 같은 다양한 종류들의 입력 데이터에 대하여, 뉴럴 네트워크를 이용하여 추론(inference)을 수행하는 시스템이다. 이때, 뉴럴 네트워크의 추론 결과는, 이미지 인식 결과, 비디오 감시(video surveillance), 음성 인식 결과, 이상 감지(anomaly detection), 생체신호 모니터링 등과 같은 다양한 종류들일 수 있으므로, 컴퓨팅 시스템(1)은 자율주행, Internet of Things (IoT), 의학적 모니터링 등 여러 기술 분야들에 채용되어 활용 가능한 시스템이다.
컴퓨팅 장치(10)는 입력 데이터의 추론을 수행하기 위하여, 뉴럴 네트워크를 활용한다. 여기서, 뉴럴 네트워크는 인공 뉴럴 네트워크(Artificial Neural Network, ANN)로서, 딥 뉴럴 네트워크(Deep Neural Network, DNN) 또는 n-계층 뉴럴 네트워크(n-layers neural networks)의 아키텍처로 구현될 수 있다. DNN 또는 n-계층 뉴럴 네트워크는 컨볼루션 뉴럴 네트워크(Convolutional Neural Networks, CNN), 피드-포워드 뉴럴 네트워크(Feed-Forward Neural Networks), Deep Belief Networks, AutoEncoder 등에 해당될 수 있다. 즉, 컴퓨팅 장치(10)는 뉴럴 네트워크의 종류에 구애받지 않고 다양한 타입의 뉴럴 네트워크를 채용하여 입력 데이터의 추론을 수행할 수 있다.
컴퓨팅 장치(10)는 PC(personal computer), 서버 디바이스, 모바일 디바이스 등에 해당될 수 있고, 나아가서 뉴럴 네트워크를 이용한 음성 인식, 영상 인식 등을 수행하는 자율주행 자동차, 로보틱스, 스마트폰, 태블릿 디바이스, AR(Augmented Reality) 디바이스, IoT(Internet of Things) 디바이스 등에 구비된 장치일 수 있으나, 이에 제한되지 않고 다양한 종류의 디바이스들에 해당될 수 있다.
도 2는 일 실시예에 따른 뉴럴 네트워크의 레이어 축소(layer contraction)를 설명하기 위한 도면이다.
도 2를 참고하면, 뉴럴 네트워크(210)는 입력 레이어, 하나 이상의 히든 레이어들 및 출력 레이어를 포함하는 DNN 또는 n-계층 뉴럴 네트워크일 수 있다. 예를 들어, 도 2에 도시된 바와 같이, 뉴럴 네트워크(210)는 입력 레이어, 2개의 히든 레이어들(Hidden Layer 1 및 Hidden Layer 2) 및 출력 레이어를 포함하는 DNN일 수 있으나, 뉴럴 네트워크(210)는 보다 많은 히든 레이어들을 포함하는 것으로 구현될 수 있다. 뉴럴 네트워크(210)에 포함된 레이어들의 개수가 많아질수록 복잡한 데이터 집합들의 처리가 가능하게 되므로, 보다 정확하고 다양한 추론이 가능해 질 수 있다. 하지만, 뉴럴 네트워크(210)의 레이어들 간에는 복잡하게 상호 연결된 복수의 뉴런들(또는 채널들) 간의 수많은 연산 과정이 수행되므로, 레이어들의 개수가 증가하거나 뉴런들의 개수가 증가하는 경우, 뉴럴 네트워크(210)의 추론을 위한 연산량이 급격히 증가하고 연산 속도가 저하될 수 있다. 특히, 뉴럴 네트워크(210)는 부동 소수점에 기반한 연산을 수행하므로, 뉴럴 네트워크(210)의 네트워크 복잡도에 따라 추론에 소요되는 연산량 및 시간이 비효율적일 수 있다.
한편, 뉴럴 네트워크(210)와 같은 n-계층 완전 연결 ANN(n-layer fully-connected ANN)은 수학식 1과 같은 모델로 일반화되어 표현될 수 있다.
Figure pat00001
수학식 1에서, F는 뉴럴 네트워크 출력이고, x는 뉴럴 네트워크 입력이고, (Wk, Bk) 쌍은 레이어 k (k ∈ [1, n], k 및 n은 자연수)에서의 웨이트들 및 바이어스들이다.
히든 레이어 각각에서는 활성화 함수(activation function)를 이용하여 각 레이어에서의 출력 액티베이션이 계산될 수 있다. 활성화 함수는 예를 들어, 수학식 2와 같은 모델로 일반화되어 표현될 수 있다.
Figure pat00002
수학식 2는 시그모이드 함수로서,
Figure pat00003
는 레이어 k에서 뉴런 i의 프리-액티베이션(pre-activation)이고, 레이어 k에서의 출력 액티베이션은 레이어 k 내 전체 뉴런들의 출력 합(summed output)에 의해 계산될 수 있다. α는 leak parameter이다. 전형적으로, leak parameter α는 작은 값(예를 들어, α=0.1)을 갖는 것이 바람직하다. leak parameter α가 0인 경우, 수학식 2는 표준 ReLU(standard Rectified Linear Unit)의 모델에 해당될 수 있다. leak parameter α가 0이 아닌 경우, 수학식 2는 leaky ReLU를 의미한다. 한편, 시그모이드 함수로서는 softmax가 이용될 수도 있다.
본 실시예에 따르면, 뉴럴 네트워크(210)는 레이어 축소에 의해 뉴럴 네트워크(220)와 같이 변형될 수 있다. 즉, 레이어-축소된(layer-contracted) 뉴럴 네트워크(220)는 입력 레이어 및 출력 레이어만으로 축소되고, 출력 레이어는 입력 레이어와 단일 웨이트 행렬 Q에 의해 계산될 수 있다. 다시 말하면, 뉴럴 네트워크(210)에서 히든 레이어들에서의 다양한 연산들(행렬 곱셈, 바이어스 덧셈, 시그모이드 연산)은 단일 웨이트 행렬 Q에 의한 간단한 연산으로 치환 또는 대체될 수 있다. 단일 웨이트 행렬 Q는 레이어 축소 파라미터이고, 단일 웨이트 행렬 Q의 차원은 (N_0, N_n)이며, 여기서 N_0은 입력 레이어의 뉴런 수이고 N_n은 출력 레이어의 뉴런 수이다. 한편, 레이어 축소 파라미터에는 다른 종류의 파라미터도 포함될 수 있으며, 이는 이하에서 자세히 설명하도록 한다.
Figure pat00004
수학식 3은, 뉴럴 네트워크(210)의 모델인 수학식 1로부터 유도된, 레이어-축소된 뉴럴 네트워크(220)의 모델이다.
수학식 3에서, 바이너리 마스크 m k는 레이어 k의 뉴런 개수와 동일한 길이를 갖는 벡터이다. 바이너리 마스크 m k는 각 레이어의 활성화 함수를 대체하는 벡터로서, 수학식 4와 같이 정의될 수 있다.
Figure pat00005
한편, 수학식 3에서 ⊙ 기호는 아마다르 곱(Hadamard product)을 나타내는 기호이다. 레이어-축소된 뉴럴 네트워크(220)의 모델은, 수학식 3과 같은 레이어 축소 파라미터들을 이용한 아마다르 곱의 폼(form)에 기초한다.
나아가서, 수학식 3의 레이어-축소된 뉴럴 네트워크(220)의 모델은 수학식 5와 같은 어파인 변환(affine transformation)으로 정의될 수 있다.
Figure pat00006
Figure pat00007
Figure pat00008
수학식 5에서, Q는 단일 웨이트 행렬이고, q는 바이어스 벡터이다.
즉, 뉴럴 네트워크(210)의 모델은, 입력 레이어로부터 어파인 변환의 관계를 정의하는 레이어 축소 파라미터들(단일 웨이트 행렬 Q, 바이어스 벡터 q 및 바이너리 마스크 m)에 의해 레이어-축소된 뉴럴 네트워크(220)의 모델(수학식 5)로 변환될 수 있다.
본 실시예에 따르면, 위와 같은 레이어 축소를 통해, 히든 레이어들에서의 연산량이 감소되고 연산 속도가 증대될 수 있으므로, 보다 효율적인 뉴럴 네트워크 추론이 가능할 수 있다.
도 3은 일 실시예에 따른 컴퓨팅 장치의 하드웨어 구성을 설명하기 위한 블록도이다.
도 3을 참고하면, 컴퓨팅 장치(10)는 앞서 설명된 뉴럴 네트워크를 처리하는 컴퓨팅 시스템(1) 상에서 뉴럴 네트워크 추론을 수행하는 장치에 해당한다. 컴퓨팅 장치(10)는 프로세서(110) 및 메모리(120)를 포함한다. 도 3에 도시된 컴퓨팅 장치(10)에는 본 실시예들와 관련된 구성요소들만이 도시되어 있다. 따라서, 컴퓨팅 장치(10)에는 도 3에 도시된 구성요소들 외에 다른 범용적인 구성요소들이 더 포함될 수 있음은 당업자에게 자명하다.
프로세서(110)는 프로세서(110)가 구비된 컴퓨팅 장치(10)를 제어하기 위한 전반적인 기능들을 수행하는 역할을 한다. 프로세서(110)는 메모리(120)에 저장된 프로그램들을 실행함으로써, 컴퓨팅 장치(100)를 전반적으로 제어할 수 있다. 예를 들어, 프로세서(110)는 입력 데이터에 대한 뉴럴 네트워크 추론을 수행하기 위한 다양한 추론 프로세스들을 실행할 수 있다.
프로세서(110)는 CPU(central processing unit), GPU(graphics processing unit), AP(application processor), NPU(neural processing unit) 등과 같은 프로세서에 해당할 수 있으나, 이에 제한되지 않는다.
메모리(120)는 프로세서(110) 내에서 처리되는 각종 데이터들을 저장하는 하드웨어로서, 예를 들어, 메모리(120)는 뉴럴 네트워크(210)에 관한 뉴럴 네트워크 데이터들, 프로세서(110)가 뉴럴 네트워크(210)를 학습하는 동안 생성된 데이터들, 프로세서(110)에 의해 생성된 레이어-축소된 뉴럴 네트워크(220)의 데이터들 등을 저장할 수 있다. 또한, 메모리(120)는 프로세서(110)에 의해 구동될 다양한 애플리케이션들, 예를 들어 뉴럴 네트워크 추론 및 학습을 위한 애플리케이션, 이상 신호를 판단하기 위한 알고리즘에 관한 애플리케이션 등을 저장할 수 있다.
메모리(120)는 휘발성 메모리(volatile memory) 또는 불휘발성 메모리(nonvolatile memory) 중 적어도 하나를 포함할 수 있다. 불휘발성 메모리는 ROM (Read Only Memory), PROM (Programmable ROM), EPROM (Electrically Programmable ROM), EEPROM (Electrically Erasable and Programmable ROM), 플래시 메모리, PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FRAM (Ferroelectric RAM) 등을 포함한다. 휘발성 메모리는 DRAM (Dynamic RAM), SRAM (Static RAM), SDRAM (Synchronous DRAM), PRAM (Phase-change RAM), MRAM (Magnetic RAM), RRAM (Resistive RAM), FeRAM (Ferroelectric RAM) 등을 포함한다. 실시예에 있어서, 메모리(120)는 HDD(Hard Disk Drive), SSD(Solid State Drive), CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital) 또는 Memory Stick 중 적어도 하나로 구현될 수 있다.
프로세서(110)는 메모리(120)에 저장된 뉴럴 네트워크(210)에 대하여 레이어 축소를 위한 프로세스들을 수행함으로써, 레이어-축소된 뉴럴 네트워크(220)를 생성할 수 있다. 이에 따라, 프로세서(110)는 컴퓨팅 장치(10)의 외부 또는 내부로부터 획득된 입력 데이터에 대하여 레이어-축소된 뉴럴 네트워크(220)를 이용한 추론 결과를 출력할 수 있다.
프로세서(110)에서 레이어-축소된 뉴럴 네트워크(220)를 생성하고, 입력 데이터에 대하여 추론을 수행하는 프로세스들에 대해서는 이하 보다 상세히 설명하도록 한다.
도 4는 일 실시예에 따른 뉴럴 네트워크의 레이어 축소를 이용하여 입력 데이터를 처리하는 방법의 흐름도이다.
도 4를 참고하면, 401 단계에서, 프로세서(110)는 입력 데이터로서, 입력 레이어, 하나 이상의 히든 레이어들 및 출력 레이어를 포함하는 뉴럴 네트워크에 의해 처리될 일련의(sequential) 입력 샘플들을 획득한다. 여기서, 일련의 입력 샘플들 각각은 비디오 데이터의 연속적인 프레임들 각각에 대응하는 것들일 수 있으나, 이에 제한되지 않는다. 즉, 일련의 입력 샘플들은 음성/오디오 데이터 샘플들에 해당하거나, 바이오 신호 데이터 샘플들 등 다양한 타입들의 데이터 샘플들일 수 있다. 일련의 입력 샘플들은 컴퓨팅 장치(10)의 외부 네트워크로부터 수신된 비디오/이미지/음성/오디오 데이터이거나, 컴퓨팅 장치(10)에 구비된 센서를 이용하여 측정된 데이터 등일 수 있다. 즉, 입력 데이터의 소스는 다양할 수 있다.
402 단계에서, 프로세서(110)는 일련의 입력 샘플들 중에서 참조 샘플을 결정한다. 예를 들어, 일련의 입력 샘플들이 비디오 데이터의 개별 프레임들인 경우, 프로세서(110)는 첫 번째 프레임의 이미지 데이터를 최초의 참조 샘플로서 결정할 수 있다.
403 단계에서, 프로세서(110)는 뉴럴 네트워크의 입력 레이어로 입력된 현재 참조 샘플에 대한 히든 레이어들에서의 연산들에 기초하여 뉴럴 네트워크의 출력 레이어의 출력 액티베이션을 획득하는, 추론 프로세스를 수행한다. 여기서, 히든 레이어들에서의 연산들은 MAC 연산(Multiply-accumulate operation) 바이어스 덧셈, 시그모이드 함수를 이용한 활성화 함수의 연산 등을 포함한다. 예를 들어, 프로세서(110)는 앞서 설명된, 수학식 1 및 2의 모델을 이용하여 출력 액티베이션을 계산할 수 있다.
404 및 405 단계에서, 프로세서(110)는 403 단계에서의 추론 프로세스의 근사화를 통한 레이어 축소를 위하여, 입력 레이어 및 출력 레이어 간의 어파인 변환의 관계를 정의하는 레이어 축소 파라미터들을 결정한다. 즉, 프로세서(110)는 수학식 5에서 설명된 웨이트들(W)을 나타내는 단일 웨이트 행렬 Q, 바이어스들(b)을 나타내는 바이어스 벡터 q 및 바이너리 마스크 m을 포함하는 레이어 축소 파라미터들을 결정할 수 있다. 바이너리 마스크 m은 히든 레이어들 각각에서 수행된 활성화 함수의 연산을 대체하여 활성화 마스킹(activation masking)을 수행하기 위하여 정의된 벡터이다.
406 단계에서, 프로세서(110)는 레이어 축소 파라미터들(단일 웨이트 행렬 Q의 웨이트 W, 바이어스 벡터 q의 바이어스 b, 바이너리 마스크 m)로, 레이어-축소 뉴럴 네트워크(layer-contraction NN)를 정의한다. 즉, 프로세서(110)는 레이어-축소 뉴럴 네트워크로서, 수학식 5의 모델(예를 들어, 어파인 변환)을 정의할 수 있다.
407 단계에서, 프로세서(110)는 레이어-축소 뉴럴 네트워크를 이용하여, 현재 입력 샘플에 대한 추론을 수행한다. 예를 들어, 현재 입력 샘플은 현재 참조 샘플에 해당되거나, 또는 현재 참조 샘플의 다음 순서의 입력 샘플에 해당될 수 있다.
408 단계에서, 프로세서(110)는 407 단계에서 처리된 현재 입력 샘플이 일련의 입력 샘플들 중에서 마지막 입력 샘플인지 여부를 판단한다. 만약, 마지막 입력 샘플인 것으로 판단된 경우, 입력 데이터에 포함된 모든 입력 샘플들에 대한 추론은 종료된다. 하지만, 마지막 입력 샘플이 아닌 것으로 판단된 경우, 409 단계로 진입된다.
409 단계에서, 프로세서(110)는 407 단계에서 처리된 입력 샘플에 뒤이어 처리될 다음 순서의 입력 샘플을 획득한다.
410 단계에서, 프로세서(110)는 409 단계에서 획득된 입력 샘플에 대한 추론을 수행하기 전, 참조 샘플의 갱신이 필요한지 여부를 판단한다.
만약, 참조 샘플의 갱신이 불필요한 것으로 판단된 경우 407 단계로 진입되고, 기존의 참조 샘플에 기초하여 정의된 레이어-축소 뉴럴 네트워크를 이용하여 409 단계에서 획득된 입력 샘플에 대한 추론이 수행된다.
하지만, 참조 샘플의 갱신이 필요한 것으로 판단된 경우 402 단계로 진입되고, 미처리된 입력 샘플들 중에서 다른 입력 샘플을 기존의 참조 샘플 대신 새로운 참조 샘플로 결정한다. 이후에, 갱신된 참조 샘플에 기초하여 레이어-축소 뉴럴 네트워크가 새롭게 정의되고, 다시 참조 샘플이 갱신되지 전까지 새로 정의된 레이어-축소 뉴럴 네트워크를 이용하여 나머지 입력 샘플에 대한 추론이 수행된다.
이와 같이 도 4에 설명된 방법에 따르면, 레이어 축소를 통해 뉴럴 네트워크의 연산량을 줄일 수 있으며 연산 속도가 증대될 수 있으므로, 일련의 입력 샘플들에 대하여 보다 효율적인 추론이 수행될 수 있다.
특히, 시공간적 불필요한 중복들(spatio-temporal redundancies)이 많은 비디오 데이터의 개별 프레임들과 같은 일련의 데이터는 뉴럴 네트워크 추론에 있어서 보다 효율적으로 처리될 필요가 있다. 즉, 비디오 데이터에 대한 뉴럴 네트워크의 레이어들에서의 연산들 중에서는 중복된 입력들(픽셀 값들)을 처리하기 위한 연산들이 많이 수행될 수 있으므로, 이를 효율화 및 단순화하기 위한 방안이 요구될 수 있다. 본 실시예에 따르면, 참조 샘플에 기초하여 정의된 레이어 축소 뉴럴 네트워크를 이용하여 시공간적 불필요한 중복들을 갖는 일련의 샘플들에 대한 근사한 추론 결과가 획득될 수 있어 추론 연산량을 줄일 수 있으므로, 보다 효율적인 추론이 가능해 질 수 있다.
한편, 레이어 축소 뉴럴 네트워크를 이용하여 근사화된 추론 결과가 획득될 수 있다는 점에 대해 구체적으로 설명하면 다음과 같다.
Figure pat00009
수학식 6은, 참조 샘플로 결정된 입력 샘플 x* 주변에서의(around) 입력 샘플 x의 테일러 전개(Taylor expansion)를 이용하여 뉴럴 네트워크의 출력 F를 근사화하는 모델을 나타낸다.
수학식 6에서
Figure pat00010
는 x*에서 평가된 F의 자코비안(Jacobian)이다. 수학식 7과 같이 표현된 레이어-축소 뉴럴 네트워크의 출력 CF는, 참조 샘플로 결정된 입력 샘플 x* 주변에서의 테일러 근사(Taylor approximation)를 따른다고 가정한다.
Figure pat00011
레이어-축소 뉴럴 네트워크의 출력 CF는 원본 뉴럴 네트워크 F (즉, 수학식 1)와 동일한 것으로 수학식 8과 같이 가정할 수 있다.
Figure pat00012
수학식 7 및 8을 이용하여 수학식 6의 테일러 전개에서의 0차 항을 치환하면, 수학식 9와 같이 표현될 수 있다.
Figure pat00013
수학식 7과 수학식 9의 항들을 비교하면, 단일 웨이트 행렬 Q가 자코비안(Jacobian)에 근접할 때, 1차(first-order) 테일러 전개는 레이어-축소 뉴럴 네트워크와 등가(equivalent)라는 점이 수학식 10과 유도될 수 있다.
Figure pat00014
원본 뉴럴 네트워크의 1차 테일러 전개와 레이어-축소 뉴럴 네트워크 사이의 관계가 정의되었다면(establish), 참조 샘플에 해당하는 입력 샘플 x*에 대하여 단순한 어파인 변환은 다층 레이어들의 추론 프로세스와 등가라는 점을 이해할 수 있다.
따라서, 원본 뉴럴 네트워크 대신 레이어 축소 뉴럴 네트워크를 이용하여서도 근사화된 추론 결과가 획득될 수 있다.
도 5는 일 실시예에 따른 뉴럴 네트워크의 레이어 축소를 이용하여 추론을 수행하는 방법을 설명하기 위한 알고리즘이다.
도 5를 참고하면, 알고리즘의 입력은 원본 뉴럴 네트워크 F 및 일련의 데이터 세트 X이고, 알고리즘의 출력은 레이어-축소 뉴럴 네트워크 CF 및 네트워크 출력 Y이다.
알고리즘의 501 단계에서, 원본 뉴럴 네트워크 F의 각 레이어는 레이어 축소 파라미터들에 해당하는
Figure pat00015
트리플렛으로 변환된다. 501 단계는 레이어 축소를 위한 프로세스이다.
알고리즘의 502 단계부터는 레이어 축소 뉴럴 네트워크를 이용한 추론 프로세스에 해당된다.
알고리즘의 502 단계에서, 추론 동안 참조 샘플의 갱신이 필요한지 여부가 판단된다.
알고리즘의 503 단계에서, 참조 샘플의 갱신이 필요한 것으로 판단된 경우, 참조 샘플에 해당하는 입력 샘플 x*는 새로운 입력 샘플 xt로 리셋된다. 그리고, 갱신된 참조 샘플에 대한 원본 뉴럴 네트워크에 의한 추론이 수행되고, 바이너리 마스크 mk를 갱신하고, 갱신된 참조 샘플에 대한 추론 결과가 획득된다. 그리고 나서, 참조 샘플에 기초한 새로운 레이어 축소 파라미터들 (Q, q)를 갖는 새로운 레이어 축소 뉴럴 네트워크가 정의된다. 즉, 참조 샘플의 갱신(변경)에 따라 레이어 축소 파라미터들 및 레이어 축소 뉴럴 네트워크도 함께 갱신(변경)된다.
알고리즘의 504 단계에서, 참조 샘플의 갱신이 불필요한 것으로 판단된 경우, 현재 입력 샘플에 대하여 현재 레이어 축소 뉴럴 네트워크에 의한 추론 결과가 획득된다.
알고리즘은 모든 입력 샘플들(즉, 일련의 데이터 세트 X)에 대한 추론이 완료되면 종료된다.
도 6a 내지 도 6d는 일 실시예들에 따른 참조 샘플의 갱신이 필요한지 여부를 판단하는 방식들을 설명하기 위한 도면들이다.
도 6a 내지 도 6d를 참고하면, 프로세서(도 3의 110)는 기존 참조 샘플에 기초하여 정의된 기존 레이어 축소 뉴럴 네트워크로 현재 입력 샘플에 대한 추론을 수행하기 전, 참조 샘플의 갱신이 필요한지 여부를 판단한다. 앞서 설명된 바와 같이, 레이어 축소 뉴럴 네트워크는 원본 뉴럴 네트워크를 근사하여 정의된 것이다. 하지만, 현재 입력 샘플에 대한 레이어 축소 뉴럴 네트워크의 추론 결과가 원본 뉴럴 네트워크에 의한 추론 결과와 근사하지 않을 조건이 만족될 경우에는, 현재 입력 샘플에 최적화되도록 레이어 축소 뉴럴 네트워크를 다시 정의할 필요가 있다.
도 6a를 참고하면, 일 예에 따라, 프로세서(110)는 현재 참조 샘플(611, 612, 613 또는 614)에 뒤이은 n개의(n은 자연수) 입력 샘플들에 대한 추론이 완료될 때마다 기존 참조 샘플의 갱신이 필요한 것으로 판단할 수 있다. 즉, 일련의 입력 샘플들에서 소정 간격마다 참조 샘플이 갱신될 수 있다. 이는 예를 들어, 일련의 입력 샘플들이 비디오 데이터의 개별 프레임들인 경우, 시간의 경과에 따른 프레임 간의 장면 전환이 발생할 수 있기 때문에, 이를 보상하기 위함일 수 있다.
도 6b를 참고하면, 다른 예에 따라, 프로세서(110)는 현재 입력 샘플 및 기존 참조 샘플(621, 622, 또는 623) 간의 MSE(mean-square error) 값을 소정의 임계값과 비교함으로써 기존 참조 샘플(621, 622, 또는 623)의 갱신이 필요한지 여부를 판단할 수 있다. 도 6a의 방식과 달리, 도 6b의 방식('MSE on input 방식'이라 함)은 실제 장면 전환이 발생된 입력 샘플(프레임)을 보다 정확하게 판단함으로써 현재 입력 샘플에 최적화되어 정의된 레이어-축소 뉴럴 네트워크를 이용하여 추론이 수행될 수 있다.
도 6c를 참고하면, 또 다른 예에 따라, 프로세서(110)는 현재 입력 샘플의 직전 입력 샘플에 대한 추론 결과 및 기존 참조 샘플(631, 632, 또는 633)에 대한 추론 결과 간의 MSE 값을 소정의 임계값과 비교함으로써 기존 참조 샘플(631, 632, 또는 633)의 갱신이 필요한지 여부를 판단할 수 있다. 도 6b와 마찬가지로, 도 6c의 방식('MSE on output 방식'이라 함)은 실제 장면 전환이 발생된 입력 샘플(프레임)을 보다 정확하게 판단함으로써 현재 입력 샘플에 최적화되어 정의된 레이어-축소 뉴럴 네트워크를 이용하여 추론이 수행될 수 있다.
도 6d를 참고하면, 또 다른 예에 따라, 프로세서(110)는 레이어 별 정의된 바이너리 마스크에 의해 중간 액티베이션들의 부호들이 소정 횟수만큼 변경되는지 여부에 기초하여, 참조 샘플의 갱신이 필요한지 여부를 판단할 수 있다. 도 6b 및 도 6c와 마찬가지로, 도 6d의 방식은 현재 레이어-축소 뉴럴 네트워크가 현재 입력 샘플을 추론하기에 적합한지 여부에 기초하여 기존 참조 샘플의 갱신이 필요한지 여부를 판단하므로, 현재 입력 샘플에 최적화되어 정의된 레이어-축소 뉴럴 네트워크를 이용하여 추론이 수행될 수 있다.
한편, 도 6b 내지 도 6d에서 설명된 소정 임계값 및 소정 횟수는 프로세서(110)의 성능, 동작 환경, 사용자 설정 등의 다양한 조건들에 의해 변경될 수 있는 임의의 값들에 해당한다.
도 7은 일 실시예에 따라 원본 뉴럴 네트워크를 이용한 추론과 레이어-축소 뉴럴 네트워크를 이용한 추론을 비교하여 설명하기 위한 도면이다.
도 7의 표에서, 각 엔트리에서 첫 라인은 원본 뉴럴 네트워크에 관한 값이고, 두번째 라인은 레이어-축소 뉴럴 네트워크에 관한 값이다.
도 7을 참고하면, 레이어-축소 뉴럴 네트워크는 원본 뉴럴 네트워크에 비하여, 아키텍쳐가 단순화되고, 뉴런 개수 및 파라미터들이 감소된다는 것을 알 수 있다. 이에 따라, 레이어-축소 뉴럴 네트워크를 이용한 추론에 소요되는 연산량은 보다 감소될 수 있으므로, 원본 뉴럴 네트워크에 의한 추론 결과에 근사화된 추론 결과를 획득할 수 있으면서 보다 효율적인 추론이 가능해 질 수 있다.
한편,
Figure pat00016
은 압축 팩터(compression factor)이고, 아래 수학식 11에 의해 정의된다. 수학식 11에서, N은 레이어 내 뉴런 개수이고, fin은 fan-in으로 해당 뉴런의 연결들의 개수이다.
Figure pat00017
Figure pat00018
Figure pat00019
Figure pat00020
Figure pat00021
표를 참고하면, 레이어-축소 뉴럴 네트워크는 원본 뉴럴 네트워크에 비하여 압축 효율이 보다 우수하다는 점을 알 수 있다.
도 8은 일 실시예에 따른 전자 시스템을 나타내는 블록도이다.
도 8을 참고하면, 전자 시스템(800)은 뉴럴 네트워크의 레이어 축소를 이용하여 입력 데이터를 처리함으로써, 전자 시스템(800)이 탑재되는 전자 디바이스의 구성들을 제어할 수 있다. 예컨대 전자 시스템(800)은 드론(drone), 첨단 운전자 보조 시스템(Advanced Drivers Assistance System; ADAS) 등과 같은 로봇 장치, 스마트 TV, 스마트폰, 의료 디바이스, 모바일 디바이스, 영상 표시 디바이스, 계측 디바이스, IoT 디바이스 등에 적용될 수 있으며, 이 외에도 다양한 종류의 전자 디바이스들 중 적어도 하나에 탑재될 수 있다.
전자 시스템(800)은 CPU(810), RAM(820), 뉴럴 프로세서(830), 메모리(840), 센서 모듈(850) 및 통신 모듈(860)을 포함할 수 있다. 전자 시스템(800)은 입출력 모듈, 보안 모듈, 전력 제어 장치 등을 더 포함할 수 있다. 전자 시스템(800)의 하드웨어 구성들 중 일부는 적어도 하나의 반도체 칩에 탑재될 수 있다. 뉴럴 프로세서(830)는 뉴럴 네트워크 전용 하드웨어 가속기 자체 또는 이를 포함하는 장치일 수 있다.
CPU(810)는 전자 시스템(800)의 전반적인 동작을 제어한다. CPU(810)는 하나의 프로세서 코어(Single Core)를 포함하거나, 복수의 프로세서 코어들(Multi-Core)을 포함할 수 있다. CPU(810)는 메모리(840)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. CPU(810)는 메모리(840)에 저장된 프로그램들을 실행함으로써, 뉴럴 프로세서(830)의 기능들을 제어할 수 있다. CPU(810)는 GPU, AP 등과 함께 제어를 수행할 수 있다.
RAM(820)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대 메모리(840)에 저장된 프로그램들 및/또는 데이터는 CPU(810)의 제어 또는 부팅 코드에 따라 RAM(820)에 일시적으로 저장될 수 있다. RAM(820)은 DRAM(Dynamic RAM) 또는 SRAM(Static RAM) 등의 메모리로 구현될 수 있다.
뉴럴 프로세서(830)는 수신되는 입력 데이터를 기초로 뉴럴 네트워크의 추론을 수행한다. 뉴럴 네트워크는 Convolutional Neural Networks(CNN), Recurrent Neural Networks(RNN), Deep Belief Networks, Restricted Boltzman Machines 등을 포함할 수 있으나 이에 제한되지 않는다. 뉴럴 프로세서(830)는 앞서 설명된 레이어 축소를 수행하고, 레이어-축소 뉴럴 네트워크를 이용하여 처리를 수행하는 하드웨어로서, 앞서 설명된 뉴럴 네트워크 전용 하드웨어 가속기에 해당될 수 있다.
정보 신호는 음성 인식 신호, 사물 인식 신호, 영상 인식 신호, 생체 정보 인식 신호 등과 같은 다양한 종류의 인식 신호 중 하나를 포함할 수 있다. 예를 들어, 뉴럴 프로세서(830)는 비디오 스트림에 포함되는 프레임 데이터를 입력 데이터로서 수신하고, 프레임 데이터로부터 프레임 데이터가 나타내는 이미지에 포함된 사물에 대한 인식 신호를 생성할 수 있다. 그러나, 이에 제한되는 것은 아니며, 전자 시스템(800)이 탑재된 전자 장치의 종류 또는 기능에 따라 뉴럴 프로세서(830)는 다양한 종류의 입력 데이터를 수신할 수 있고, 입력 데이터에 따른 인식 신호를 생성할 수 있다.
메모리(840)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 예를 들어, 메모리(840)는 뉴럴 프로세서(830)에서 이용되는 뉴럴 네트워크 데이터, 예컨대, 파라미터들, 웨이트들, 바이어스들, 또는 바이너리 마스크들 등을 저장할 수 있다.
메모리(840)는 DRAM일 수 있으나, 이에 한정되는 것은 아니다. 메모리(840)는 휘발성 메모리 또는 불휘발성 메모리 중 적어도 하나를 포함할 수 있다. 불휘발성 메모리는 ROM, PROM, EPROM, EEPROM, 플래시 메모리, PRAM, MRAM, RRAM, FRAM 등을 포함한다. 휘발성 메모리는 DRAM, SRAM, SDRAM, PRAM, MRAM, RRAM, FeRAM 등을 포함한다. 실시예에 있어서, 메모리(840)는 HDD, SSD, CF, SD, Micro-SD, Mini-SD, xD 또는 Memory Stick 중 적어도 하나를 포함할 수 있다.
센서 모듈(850)은 전자 시스템(800)이 탑재되는 전자 장치 주변의 정보를 수집할 수 있다. 센서 모듈(850)은 전자 장치의 외부로부터 신호(예컨대 영상 신호, 음성 신호, 자기 신호, 생체 신호, 터치 신호 등)를 센싱 또는 수신하고, 센싱 또는 수신된 신호를 데이터로 변환할 수 있다. 이를 위해, 센서 모듈(850)은 센싱 장치, 예컨대 마이크, 촬상 장치, 이미지 센서, 라이더(LIDAR; light detection and ranging) 센서, 초음파 센서, 적외선 센서, 바이오 센서, 및 터치 센서 등 다양한 종류의 센싱 장치 중 적어도 하나를 포함할 수 있다.
센서 모듈(850)은 변환된 데이터를 뉴럴 프로세서(830)에 입력 데이터로서 제공할 수 있다. 예를 들어, 센서 모듈(850)은 이미지 센서를 포함할 수 있으며, 전자 장치의 외부 환경을 촬영하여 비디오 스트림을 생성하고, 비디오 스트림의 연속하는 데이터 프레임을 뉴럴 프로세서(830)에 입력 데이터로서 순서대로 제공할 수 있다. 그러나 이에 제한되는 것은 아니며 센서 모듈(850)은 다양한 종류의 데이터를 뉴럴 프로세서(830)에 제공할 수 있다.
통신 모듈(860)은 외부 장치와 통신할 수 있는 다양한 유선 또는 무선 인터페이스를 구비할 수 있다. 예컨대 통신 모듈(860)은 유선 근거리통신망(Local Area Network; LAN), Wi-fi(Wireless Fidelity)와 같은 무선 근거리 통신망 (Wireless Local Area Network; WLAN), 블루투스(Bluetooth)와 같은 무선 개인 통신망(Wireless Personal Area Network; WPAN), 무선 USB (Wireless Universal Serial Bus), Zigbee, NFC (Near Field Communication), RFID (Radio-frequency identification), PLC(Power Line communication), 또는 3G (3rd Generation), 4G (4th Generation), LTE (Long Term Evolution) 등 이동 통신망(mobile cellular network)에 접속 가능한 통신 인터페이스 등을 포함할 수 있다.
도 9는 일 실시예에 따른 뉴럴 네트워크의 레이어 축소를 이용하여 입력 데이터를 처리하는 방법의 흐름도이다. 도 9의 방법은, 앞서 설명된 도면들에서 설명된 실시예들에 관련되므로, 이하 생략된 내용이라 할지라도, 앞서 도면들에서 설명된 내용들은 도 9의 방법에도 적용될 수 있다.
910 단계에서, 프로세서(110)는 입력 레이어, 하나 이상의 히든 레이어들 및 출력 레이어를 포함하는 뉴럴 네트워크에 의해 처리될 일련의 입력 샘플들 중에서 참조 샘플을 결정한다.
920 단계에서, 프로세서(110)는 입력 레이어로 입력된 참조 샘플에 대한 히든 레이어들에서의 연산들에 기초하여 출력 레이어의 출력 액티베이션을 획득하는, 추론(inference) 프로세스를 수행한다.
930 단계에서, 프로세서(110)는 추론 프로세스의 근사화를 위하여, 입력 레이어 및 출력 레이어 간의 어파인 변환(affine transformation)의 관계를 정의하는 레이어 축소 파라미터들을 결정한다.
940 단계에서, 프로세서(110)는 참조 샘플에 대해 결정된 레이어 축소 파라미터들에 기초한 어파인 변환을 이용하여 나머지 일련의 입력 샘플들에 대한 추론을 수행한다.
한편, 상술한 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 실시예들에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.
본 실시예와 관련된 기술 분야에서 통상의 지식을 가진 자는 상기된 기재의 본질적인 특성에서 벗어나지 않는 범위에서 실시예가 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예는 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 권리 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 실시예에 포함된 것으로 해석되어야 할 것이다.

Claims (20)

  1. 컴퓨팅 장치에서, 뉴럴 네트워크의 레이어 축소(layer contraction)를 이용하여 입력 데이터를 처리하는 방법에 있어서,
    입력 레이어, 하나 이상의 히든 레이어들 및 출력 레이어를 포함하는 뉴럴 네트워크에 의해 처리될 일련의 입력 샘플들 중에서 참조 샘플을 결정하는 단계;
    상기 입력 레이어로 입력된 상기 참조 샘플에 대한 상기 히든 레이어들에서의 연산들에 기초하여 상기 출력 레이어의 출력 액티베이션을 획득하는, 추론(inference) 프로세스를 수행하는 단계;
    상기 추론 프로세스의 근사화를 위하여, 상기 입력 레이어 및 상기 출력 레이어 간의 어파인 변환(affine transformation)의 관계를 정의하는 레이어 축소 파라미터들을 결정하는 단계; 및
    상기 참조 샘플에 대해 결정된 상기 레이어 축소 파라미터들에 기초한 어파인 변환을 이용하여 나머지 일련의 입력 샘플들에 대한 추론을 수행하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 현재 참조 샘플에 대해 결정된 상기 레이어 축소 파라미터들은
    웨이트들을 나타내는 단일 웨이트 행렬, 바이어스들을 나타내는 바이어스 벡터, 및 바이너리 마스크를 포함하는, 방법.
  3. 제 2 항에 있어서,
    상기 바이너리 마스크는
    상기 히든 레이어들 각각에서 수행된 활성화 함수(activation function)의 연산을 대체하여 활성화 마스킹(activation masking)을 수행하기 위하여 정의된 벡터인, 방법.
  4. 제 2 항에 있어서,
    상기 어파인 변환은
    상기 히든 레이어들에서의 MAC 연산 및 활성화 함수의 연산을, 상기 레이어 축소 파라미터들을 이용한 아마다르 곱(Hadamard product)의 폼(form)에 기초한 변환인, 방법.
  5. 제 1 항에 있어서,
    현재 입력 샘플에 대한 추론을 수행하기 전, 상기 참조 샘플의 갱신이 필요한지 여부를 판단하는 단계; 및
    상기 판단 결과 상기 참조 샘플의 갱신이 필요한 것으로 판단된 경우, 상기 참조 샘플을 상기 현재 입력 샘플로 갱신하는 단계를 더 포함하고,
    상기 레이어 축소 파라미터들은 상기 갱신된 참조 샘플에 따라 갱신되는, 방법.
  6. 제 5 항에 있어서,
    상기 참조 샘플의 갱신이 필요한지 여부를 판단하는 단계는
    상기 참조 샘플에 뒤이은 n개의 입력 샘플들에 대한 추론이 완료될 때마다 상기 참조 샘플의 갱신이 필요한 것으로 판단하는, 방법.
  7. 제 5 항에 있어서,
    상기 참조 샘플의 갱신이 필요한지 여부를 판단하는 단계는
    상기 현재 입력 샘플 및 상기 참조 샘플 간의 MSE(mean-square error) 값을 소정의 임계값과 비교함으로써 상기 참조 샘플의 갱신이 필요한지 여부를 판단하는, 방법.
  8. 제 5 항에 있어서,
    상기 참조 샘플의 갱신이 필요한지 여부를 판단하는 단계는
    상기 현재 입력 샘플의 직전 입력 샘플에 대한 추론 결과 및 상기 참조 샘플에 대한 추론 결과 간의 MSE 값을 소정의 임계값과 비교함으로써 상기 참조 샘플의 갱신이 필요한지 여부를 판단하는, 방법.
  9. 제 5 항에 있어서,
    상기 참조 샘플의 갱신이 필요한지 여부를 판단하는 단계는
    레이어 별 정의된 바이너리 마스크에 의해 중간 액티베이션들의 부호들이 소정 횟수만큼 변경되는지 여부에 기초하여, 상기 참조 샘플의 갱신이 필요한지 여부를 판단하는, 방법.
  10. 제 1 항에 있어서,
    상기 일련의 입력 샘플들 각각은
    비디오 데이터의 연속적인 프레임들 각각에 대응하는 것들이고,
    상기 참조 샘플을 결정하는 단계는
    상기 연속적인 프레임들 중 첫 번째 프레임의 이미지 데이터를 최초의 참조 샘플로서 결정하는, 방법.
  11. 제 1 항 내지 제 10 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 비일시적인(non-transitory) 기록매체.
  12. 적어도 하나의 프로그램이 저장된 메모리; 및
    상기 적어도 하나의 프로그램을 실행함으로써, 뉴럴 네트워크의 레이어 축소를 이용하여 입력 데이터를 처리하는 적어도 하나의 프로세서를 포함하고,
    상기 프로세서는
    입력 레이어, 하나 이상의 히든 레이어들 및 출력 레이어를 포함하는 뉴럴 네트워크에 의해 처리될 일련의 입력 샘플들 중에서 참조 샘플을 결정하고,
    상기 입력 레이어로 입력된 상기 참조 샘플에 대한 상기 히든 레이어들에서의 연산들에 기초하여 상기 출력 레이어의 출력 액티베이션을 획득하는, 추론(inference) 프로세스를 수행하고,
    상기 추론 프로세스의 근사화를 위하여, 상기 입력 레이어 및 상기 출력 레이어 간의 어파인 변환(affine transformation)의 관계를 정의하는 레이어 축소 파라미터들을 결정하고,
    상기 참조 샘플에 대해 결정된 상기 레이어 축소 파라미터들에 기초한 어파인 변환을 이용하여 나머지 일련의 입력 샘플들에 대한 추론을 수행하는, 컴퓨팅 장치.
  13. 제 12 항에 있어서,
    상기 현재 참조 샘플에 대해 결정된 상기 레이어 축소 파라미터들은
    웨이트들을 나타내는 단일 웨이트 행렬, 바이어스들을 나타내는 바이어스 벡터, 및 바이너리 마스크를 포함하는, 컴퓨팅 장치.
  14. 제 13 항에 있어서,
    상기 바이너리 마스크는
    상기 히든 레이어들 각각에서 수행된 활성화 함수(activation function)의 연산을 대체하여 활성화 마스킹(activation masking)을 수행하기 위하여 정의된 벡터인, 컴퓨팅 장치.
  15. 제 13 항에 있어서,
    상기 어파인 변환은
    상기 히든 레이어들에서의 MAC 연산 및 활성화 함수의 연산을, 상기 레이어 축소 파라미터들을 이용한 아마다르 곱(Hadamard product)의 폼(form)에 기초한 변환인, 컴퓨팅 장치.
  16. 제 12 항에 있어서,
    상기 프로세서는
    현재 입력 샘플에 대한 추론을 수행하기 전, 상기 참조 샘플의 갱신이 필요한지 여부를 판단하고,
    상기 판단 결과 상기 참조 샘플의 갱신이 필요한 것으로 판단된 경우, 상기 참조 샘플을 상기 현재 입력 샘플로 갱신하고,
    상기 레이어 축소 파라미터들은
    상기 갱신된 참조 샘플에 따라 갱신되는, 컴퓨팅 장치.
  17. 제 16 항에 있어서,
    상기 프로세서는
    상기 참조 샘플에 뒤이은 n개의 입력 샘플들에 대한 추론이 완료될 때마다 상기 참조 샘플의 갱신이 필요한 것으로 판단하는, 컴퓨팅 장치.
  18. 제 16 항에 있어서,
    상기 프로세서는
    상기 현재 입력 샘플 및 상기 참조 샘플 간의 MSE(mean-square error) 값을 소정의 임계값과 비교함으로써 상기 참조 샘플의 갱신이 필요한지 여부를 판단하는, 컴퓨팅 장치.
  19. 제 16 항에 있어서,
    상기 프로세서는
    상기 현재 입력 샘플의 직전 입력 샘플에 대한 추론 결과 및 상기 참조 샘플에 대한 추론 결과 간의 MSE 값을 소정의 임계값과 비교함으로써 상기 참조 샘플의 갱신이 필요한지 여부를 판단하는, 컴퓨팅 장치.
  20. 제 16 항에 있어서,
    상기 프로세서는
    레이어 별 정의된 바이너리 마스크에 의해 중간 액티베이션들의 부호들이 소정 횟수만큼 변경되는지 여부에 기초하여, 상기 참조 샘플의 갱신이 필요한지 여부를 판단하는, 컴퓨팅 장치.
KR1020190087099A 2019-01-11 2019-07-18 뉴럴 네트워크의 레이어 축소를 이용하여 입력 데이터를 처리하는 방법 및 장치 KR20200088198A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/739,543 US20200226451A1 (en) 2019-01-11 2020-01-10 Method and apparatus with neural network layer contraction

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201962791237P 2019-01-11 2019-01-11
US62/791,237 2019-01-11

Publications (1)

Publication Number Publication Date
KR20200088198A true KR20200088198A (ko) 2020-07-22

Family

ID=71892981

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190087099A KR20200088198A (ko) 2019-01-11 2019-07-18 뉴럴 네트워크의 레이어 축소를 이용하여 입력 데이터를 처리하는 방법 및 장치

Country Status (1)

Country Link
KR (1) KR20200088198A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230015648A (ko) * 2021-07-23 2023-01-31 주식회사 유디엠텍 Graph autoencoder를 활용한 자동화 설비 동작 시퀀스 이상 감지 방법
CN116359762A (zh) * 2023-04-27 2023-06-30 北京玖行智研交通科技有限公司 一种基于深度学习和网络压缩的电池荷电状态估计方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230015648A (ko) * 2021-07-23 2023-01-31 주식회사 유디엠텍 Graph autoencoder를 활용한 자동화 설비 동작 시퀀스 이상 감지 방법
CN116359762A (zh) * 2023-04-27 2023-06-30 北京玖行智研交通科技有限公司 一种基于深度学习和网络压缩的电池荷电状态估计方法
CN116359762B (zh) * 2023-04-27 2024-05-07 北京玖行智研交通科技有限公司 一种基于深度学习和网络压缩的电池荷电状态估计方法

Similar Documents

Publication Publication Date Title
KR102601604B1 (ko) 뉴럴 네트워크의 파라미터들을 양자화하는 방법 및 장치
US12026611B2 (en) Method and apparatus for quantizing parameters of neural network
JP2020113273A (ja) ニューラルネットワーク量子化のための方法及び装置
US20200226451A1 (en) Method and apparatus with neural network layer contraction
EP3836029A1 (en) Apparatus and method with neural network implementation of domain adaptation
US11816557B2 (en) Method and apparatus with neural network parameter quantization
KR20210045225A (ko) 뉴럴 네트워크에서 연산을 수행하는 방법 및 장치
EP3817236B1 (en) Neural network data processing method and apparatus
EP3985574A1 (en) Method and apparatus with neural network pruning
KR20220059194A (ko) 대상 객체에 적응적인 객체 추적 방법 및 장치
KR20200088198A (ko) 뉴럴 네트워크의 레이어 축소를 이용하여 입력 데이터를 처리하는 방법 및 장치
US11853869B2 (en) Neural network apparatus and method of processing variable-resolution operation by the same
KR20220065209A (ko) 다양한 품질의 영상을 인식하는 방법 및 장치
US20240070449A1 (en) Systems and methods for expert guided semi-supervision with contrastive loss for machine learning models
CN113724128A (zh) 一种训练样本的扩充方法
KR20210053791A (ko) 뉴럴 네트워크의 데이터를 처리하는 방법 및 장치
CN112529149A (zh) 一种数据处理方法及相关装置
JP7329352B2 (ja) 分類のためのニューラルネットワークにおいて、パラメータを処理する方法及び装置
CN118229632A (zh) 显示屏缺陷检测方法、模型训练方法、装置、设备及介质
KR102581471B1 (ko) 분류를 위한 뉴럴 네트워크에서 파라미터를 처리하는 방법 및 장치
US20230101812A1 (en) Monotone mean-field inference in deep markov random fields
KR20200139071A (ko) 뉴럴 네트워크에서 파라미터를 양자화하는 방법 및 장치
CN112766465A (zh) 用于智能转动性能检测的神经网络的训练方法
CN114640785A (zh) 站点模型更新方法及系统
KR20200056898A (ko) 프로세싱 장치 및 프로세싱 장치에서 덧셈 연산을 처리하는 방법

Legal Events

Date Code Title Description
A201 Request for examination