KR20210029785A - 활성화 희소화를 포함하는 신경 네트워크 가속 및 임베딩 압축 시스템 및 방법 - Google Patents

활성화 희소화를 포함하는 신경 네트워크 가속 및 임베딩 압축 시스템 및 방법 Download PDF

Info

Publication number
KR20210029785A
KR20210029785A KR1020217002240A KR20217002240A KR20210029785A KR 20210029785 A KR20210029785 A KR 20210029785A KR 1020217002240 A KR1020217002240 A KR 1020217002240A KR 20217002240 A KR20217002240 A KR 20217002240A KR 20210029785 A KR20210029785 A KR 20210029785A
Authority
KR
South Korea
Prior art keywords
activation
neural network
dnn
deep neural
sparse
Prior art date
Application number
KR1020217002240A
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 모펫 에이아이, 인코포레이티드
Publication of KR20210029785A publication Critical patent/KR20210029785A/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
    • G06N3/045Combinations of networks
    • G06N3/0454
    • 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/048Activation functions
    • G06N3/0481
    • 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/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20112Image segmentation details
    • G06T2207/20132Image cropping

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

(i) 심층 신경망(DNN)의 추론 속도를 가속하고 및 (ii) 이미지, 오디오, 비디오, 및 텍스트 등의 다양한 입력 데이터로부터 DNN에 의해 생성되는 벡터 표현을 압축하기 위한 시스템, 방법, 및 컴퓨터 판독가능 매체에 관한 것이다. 방법 실시예는, 신경망 아키텍처 및 태스크 의존형 손실 함수를 입력으로서 취하고, 신경망이 훈련 데이터세트에 대하여 얼마나 잘 기능하는지를 측정하고, 심층 신경망에 희소성 뉴런 활성화를 출력한다. 본 발명의 절차는, 뉴런들의 희소성 활성화를 촉진하는 일반화 항에 의해 DNN의 기존의 훈련 목적 함수를 증대하며, 다양한 알고리즘에 의해 최적화 문제를 해결함으로써 DNN을 압축한다. 또한, 본 개시 내용은, 다수의 산술 연산이 비례적으로 감소될 수 있도록 DNN의 추론 동안 활성화의 희소성을 이용하는 방법을 예시하며, 효율적 검색 엔진을 구축하도록 DNN에 의해 생성되는 희소성 표현을 이용하는 방법을 예시한다.

Description

활성화 희소화를 포함하는 신경 네트워크 가속 및 임베딩 압축 시스템 및 방법
본원은, "Neural Network Acceleration and Embedding Compression Systems and Methods with Activation Sparsification"이라는 명칭으로 2019년 6월 20일에 출원된 미국 정규 특허출원번호 제16/446,938호에 대한 우선권과 이점을 주장하며, "Neural Network Acceleration and Embedding Compression via Activation Sparsification"이라는 명칭으로 2018년 6월 22일에 출원된 미국 가특허출원번호 제62/688,891호에 대한 우선권과 이점을 주장하며, 이들의 개시 내용 전문은 본원에 참고로 원용된다.
본 개시 내용은, 일반적으로 인공 지능에 관한 것으로서, 더욱 구체적으로는, 심층 신경망(deep neural network)에서의 뉴런의 활성이 덜하면서 연산의 수를 감소시키는 더욱 빠른 연산 방법론에 관한 것이다.
심층 신경망(DNN)은, 이미지, 비디오, 오디오, 및 텍스트와 같은 저 레벨 데이터로부터 고 레벨 정보를 추출하기 위한 인공 지능(AI) 분야에서 가장 널리 사용되는 방안이 되었다. 그러나, DNN은, 고가의 연산 비용으로 인해, 특히 휴대폰 및 감시 카메라와 같은 에지 디바이스의 에너지 소비, 저장 공간, 또는 레이턴시 허용에 대하여 예산이 빠듯한 응용분야에서 사용되는 것이 억제된다.
DNN의 연산 비용은 다양한 소스로부터 도출된다. 첫째, DNN 모델 파라미터는, 전형적으로 수백만 개 또는 수천만 개 정도이므로, 막대한 저장 비용이 발생하고, 메모리 계층 구조에 있어서 작지만 빠른 저장 디바이스에 모델 파라미터를 배치하는 것을 억제한다. 둘째, DNN의 연산 그래프에 있는 뉴런의 수는, 막대한 메모리 공간을 소비하고, 전형적으로 런타임 동안 수십억 개의 산술 연산을 필요로 한다. 셋째, 얼굴 비교 엔진과 같이 신경망에 의해 생성된 벡터 표현을 기반으로 하는 검색 엔진은, 전형적으로, DNN에 의해 생성되는 고차원 밀도 벡터 표현(임베딩)에 부분적으로 기인하여, 기존의 텍스트 기반 검색 엔진보다 연산 비용이 훨씬 많이 든다.
최근 몇 년 동안, 지속적인 연구 노력은 DNN 추론의 연산 비용을 감소시키는 데 중점을 두었다. 그러나, 이러한 기존의 방안들 중 일부는, (i) DNN 필터에서 넌제로(non-zero) 파라미터의 수(뉴런들 간의 연결)를 감소시키고, (ii) 뉴런의 채널 또는 필터의 열/행과 같은 네트워크의 부분을 트리밍하고, (iii) 파라미터와 뉴런의 값 범위를 양자화하여 해당 값을 나타내는 비트 수를 감소시키는 것을 포함하여, DNN 모델을 트리밍하도록 구성되었다.
이에 따라, 높은 연산 강도를 감소시키는 보다 효율적인 DNN 모델을 제공하는 방법론 및 시스템을 갖는 것이 바람직하다.
본 개시 내용의 실시예들은, 추론 중에 (다른) 뉴런들의 상당 부분이 다른 입력 데이터에서 실행될 때 활성화되지 않게끔 DNN에서의 뉴런의 활성화를 억제하도록 신경망을 훈련(또는 미세 조정)하는, 상술한 방안들에 대한 보완 기술의 방법, 컴퓨터 프로그램 제품, 및 컴퓨터 시스템에 관한 것이다. 각 입력 데이터는, 뉴런들의 작은 부분을 활성화하며, 이에 따라 추론 중에 필요한 연산의 수, 및 또한 비활성화된 뉴런의 수에 비례하여 각 입력 데이터에 대해 DNN에 의해 생성되는 벡터 표현(임베딩)에 필요한 저장 공간을 감소시킨다.
대략적으로 말하자면, 심층 신경망(DNN) 추론의 연산 비용을 감소시키는 방법은, 특정 태스크에 기초하여, 심층 신경망의 예측 성능을 측정할 수 있는 손실 함수(loss function)를 결정하는 단계; 심층 신경망 연산 그래프 및 연관된 파라미터 값을 갖는 초기 심층 신경망을 검색하는 단계; 희소화 비(sparsify ratio)가 수렴될 때까지 심층 신경망의 활성 뉴런의 수를 반복적으로 희소화하는 단계; 및 활성화 희소화된(activation-sparsified) 심층 신경망을 출력으로서 생성하는 단계를 포함한다.
본 개시 내용의 구조 및 방법은 하기 설명에서 상세하게 개시된다. 이 개요의 취지는 개시 내용을 정의하고자 하는 것이 아니다. 본 개시 내용은 청구범위에 의해 정의된다. 본 개시 내용의 이러한 실시예, 특징, 양태, 이점, 및 다른 실시예, 특징, 양태, 이점은, 다음에 따르는 상세한 설명, 첨부된 청구범위, 및 첨부 도면과 관련하여 더 잘 이해될 것이다.
본 개시 내용의 실시예들은, 추론 중에 (다른) 뉴런들의 상당 부분이 다른 입력 데이터에서 실행될 때 활성화되지 않게끔 DNN에서의 뉴런의 활성화를 억제하도록 신경망을 훈련(또는 미세 조정)하는, 상술한 방안들에 대한 보완 기술의 방법, 컴퓨터 프로그램 제품, 및 컴퓨터 시스템에 관한 것이다. 각 입력 데이터는, 뉴런들의 작은 부분을 활성화하며, 이에 따라 추론 중에 필요한 연산의 수, 및 또한 비활성화된 뉴런의 수에 비례하여 각 입력 데이터에 대해 DNN에 의해 생성되는 벡터 표현(임베딩)에 필요한 저장 공간을 감소시킨다.
본 개시 내용을 이 개시 내용의 특정 실시예들과 관련하여 설명하며, 도면을 참조할 것이다.
도 1은 본 개시 내용에 따라 활성화 압축기의 전체 소프트웨어 아키텍처를 예시하는 시스템도이다.
도 2는 본 개시 내용에 따라 활성화 압축기의 입력 및 출력을 예시하는 흐름도이다.
도 3은 본 개시 내용에 따라 활성화 압축기의 일 실시예를 예시하는 흐름도이다.
도 4는 본 개시 내용에 따라 활성화 압축기의 실시예에 대한 다수의 소프트웨어 모듈 간의 상호작용을 예시하는 시퀀스도이다.
도 5는 본 개시 내용에 따라 활성화 압축기 시스템의 입력 및 출력을 예시하는 블록도이다.
도 6 내지 도 9는 본 개시 내용에 따라 활성화 압축기 시스템의 상업적 응용분야를 예시하는 그림도이다.
도 10은 본 명세서에 설명된 방법론을 수행하기 위한 컴퓨터 실행가능 명령어가 본 개시 내용에 따라 설치 및 실행될 수 있는 컴퓨터 디바이스의 일례를 예시하는 블록도이다.
본 개시 내용의 구조적 실시예 및 방법에 대한 설명이 도 1 내지 도 10을 참조하여 제공된다. 본 개시 내용을 구체적으로 개시된 실시예들로 제한하려는 의도는 없지만, 본 개시 내용이 다른 특징, 요소, 방법, 및 실시예를 사용하여 실시될 수 있다는 점을 이해해야 한다. 다양한 실시예에서의 유사한 요소들은 일반적으로 유사한 참조 번호들로 지칭된다.
다음에 따르는 정의는 본원에 설명된 요소 및 단계에 적용된다. 이들 용어는 마찬가지로 확장될 수 있다.
가속 - DNN 함수를 연산하는 데 필요한 산술 연산의 수가 감소되도록 DNN을 변경한다.
활성화 압축기(Activation Compressor) - DNN을 입력으로서 취입하고, 손실 함수와 활성화 일반화기(activation regularizer)를 모두 감소시키는 방향(그라디언트)으로 DNN의 파라미터를 반복적으로 조정함으로써 취득되는 희소화된 DNN을 출력하는 소프트웨어 시스템.
활성화 일반화기 - 특정 훈련 데이터세트에 대한 DNN의 활성화 희소화 레벨을 측정하는 함수. DNN이 희소할수록, 일반화기의 값이 작아진다.
심층 신경망(DNN) - 심층 신경망(DNN)은 기본 함수들의 여러 계층으로 구성된 합성 함수로서, 각 함수는 이전 계층들의 출력을 입력으로서 취입하고 출력들의 새로운 세트를 연산한다. 각 계층의 출력을 뉴런이라고 하며, 뉴런은, 넌제로 값을 가지면 활성화되고(또는 활성이고) 그렇지 않으면 비활성화된다(또는 비활성이다).
손실 함수 - 특정 훈련 데이터세트와 관련하여 DNN이 특정 태스크에 대해 얼마나 잘 수행하는지를 측정하는 함수. DNN 성능이 좋을수록, 손실 함수의 값이 작아진다.
희소화 - 활성화된 뉴런의 수가 뉴런의 총수보다 상당히 작아지도록(예를 들어, 적어도 절반 미만으로 되도록, 전형적으로는 1/4 미만으로 되도록) DNN을 훈련시키는(즉, DNN의 파라미터를 조정하는) 방법론.
도 1은 활성화 압축기(100)의 전체 소프트웨어 아키텍처를 예시하는 시스템도이다. 활성화 압축기(100)는, 네트워크 모델 모듈(110), 손실 함수 모듈(또는 "손실 함수")(120), 활성화 일반화기 모듈(또는 "활성화 일반화기")(130), 데이터 판독기 모듈(또는 "데이터 판독기")(140), 최적화기 모듈(또는 "최적화기")(150), 및 합성기 모듈(또는 "합성기")(160)을 포함한다. 네트워크 모델 모듈(110)은, 기본 연산들(즉, 수치 함수)과 각 미분의 집합을 포함하고, 기본 함수들의 합성을 통해 복소 함수(즉, DNN)를 포함한다. 또한, 네트워크 모델 모듈(110)은 복소 함수를 파라미터화하는 변수들의 집합을 포함한다. 복소 함수는 여러 계층으로 모듈화되며, 각 계층은 이전 계층들의 출력을 입력으로서 취하고 출력들의 새로운 세트를 연산한다. 네트워크 모델 모듈(110)은 뉴런의 활성화 값(즉, 각 계층의 출력) 및 예측의 연산(즉, 최종 계층의 출력)을 연산한다. 공식적으로,
Figure pct00001
Figure pct00002
를 입력 텐서라고 하고, 여기서 N은 샘플 수(또는 뱃치(batch) 크기)이고,
Figure pct00003
은 신호의 차원이다. DNN은 전형적으로 여러 계층을 포함한다.
Figure pct00004
Figure pct00005
를 계층 인덱스라고 하자. DNN은 아래 식 (1)에 표시된 것처럼 일련의 함수들의 합성으로서 표현될 수 있다.
Figure pct00006
여기서,
Figure pct00007
는 필터(
Figure pct00008
Figure pct00009
)라고 칭하는 텐서에 의해 파라미터화된 계층( j )의 함수를 나타내며,
Figure pct00010
은 제 j 계층의 입력 텐서이다. 전형적으로 사용되는 함수로는, 예를 들어, (i) 다음의 Relu 활성화를 이용하는 컨볼루션 계층
Figure pct00011
, 여기서 *는 p차원 컨볼루션 연산자, (ii) Relu 활성화를 이용한 완전 연결 계층
Figure pct00012
, 및 맥스-풀링(max-pooling), 제로-패딩(zero-padding), 리셰이핑(reshaping) 등의 공통적으로 사용되는 다른 일부 연산이 있다. 활성화 압축기(100)의 소프트웨어 아키텍처에 있어서, 적용가능한 함수 및 이들의 수치 미분은 도 1에 도시된 바와 같이 네트워크 모델 모듈(110)에서 구현된다.
손실 함수 모듈(120)은, 예측과 실측 답(ground-truth answer) 간의 불일치를 측정하는 페널티 값의 연산과 정의를 제공하도록 구성된다. 손실 함수 모듈(120)은, 또한, 예측에 대한 페널티 값의 미분을 연산한다. 공식적으로,
Figure pct00013
를, 타겟 태스크
Figure pct00014
Figure pct00015
의 라벨과 관련된 각 샘플의 K 점수(즉, 로짓)를 제공하는 DNN의 최종 계층의 출력이라고 하자. 태스크 의존형 손실 함수
Figure pct00016
는, 주어진 훈련 데이터세트
Figure pct00017
에 대한 DNN으로부터 예측된 출력과 훈련 세트
Figure pct00018
에 대한 주어진 정확한 출력 간의 불일치를 측정한다. 손실 함수의 예는 다음의 회귀 손실이며,
Figure pct00019
여기서 x는 K차원 예측 점수 벡터이고, y는 실측 답 출력이다. 손실 함수의 다른 예는 아래의 교차 엔트로피 손실이다.
Figure pct00020
.
활성화 일반화기 모듈(130)은, 어떠한 뉴런이 네트워크에서 활성 뉴런의 수를 희소화할 수 있는지를 최소화함으로써, 네트워크의 모든 뉴런의 활성화 레벨을 측정하는 페널티 값(및 이의 미분)의 정의와 연산을 제공하도록 구성된다. 활성화 일반화기(130)의 두 개의 실시예가 있다. 활성화 일반화기(130)의 제1 실시예는 활성화 값을 직접 일반화한다. 활성화 일반화기(130)의 제2 실시예는 각 계층의 활성화의 희소성 레벨을 제어하는 파라미터를 일반화한다.
활성화 일반화기(130)의 제1 실시예의 일례는
Figure pct00021
이고, 여기서
Figure pct00022
는 조정 하이퍼파라미터를 나타내고
Figure pct00023
(X의 모든 절대 값의 합)는, 얼마나 많은 넌제로 성분이 X에 있는지를 대략적으로 측정하는 X의 볼록 대리 함수이다.
Figure pct00024
는 계층(j) 전의 모든 계층에 연관된 파라미터들(
Figure pct00025
)의 함수라는 점에 주목한다.
활성화 일반화기(130)의 제2 실시예는, 활성화의 희소성 레벨을 제어하는 파라미터를 갖는 활성화 함수와 함께 사용된다. 이러한 활성화 함수의 일례는 다음과 같다.
Figure pct00026
이것은 가장 큰 값을 갖는 top-r 요소의 값만을 보존하고 나머지는 넌제로 억제한다. 이러한 특별한 유형의 활성화 함수는 DNN 계층에서 사용되는 다른 활화 함수
Figure pct00027
를 대체하는 데 사용된다. 식 (2)의 활성화 함수는 립시츠-연속적(Lipschitz-continuous)이지 않으므로, 실제로는, 다음에 따르는 형태의 함수의 평활화된 버전을 사용한다.
Figure pct00028
여기서 기호
Figure pct00029
는 하다마드(요소별) 곱을 나타내고,
Figure pct00030
항은 볼록 세트
Figure pct00031
에 대한 투사(projection)를 나타낸다. 이 예에서, 기호 "r"는
Figure pct00032
의 희소성 레벨을 제어하는 제어 파라미터를 나타낸다. 이에 따라, 활성화 일반화기(130)의 간단한 예는
Figure pct00033
이고, 여기서
Figure pct00034
는 각 계층의 제어 파라미터를 나타낸다.
데이터 판독기 모듈(140)은 데이터 소스로부터 DNN에 대한 입력 데이터를 취득하기 위한 파이프라인을 포함한다. 파이프라인은, 크롭핑, 서브샘플링(또는 업샘플링), 뱃칭(batching), 및 화이트닝(일반화)을 포함한다. 최적화 모듈(150)은, 활성화 일반화기(130)와 손실 함수(120)를 포함하는 목적 함수를 감소시키기 위해 네트워크 모델 모듈에서의 변수의 값을 조정하도록 구성된다. 일 실시예에서, 조정은 변수에 대한 손실 함수(120)와 활성화 일반화기(130)의 미분에 의해 결정된다. 합성기(160)는, 다른 구성요소들 간의 상호작용을 스케줄링하고 조직하며 손실 함수(120)와 활성화 일반화기(130) 간의 상대적 강도를 결정하는 소프트웨어의 고 레벨 구성요소이다.
도 2는 압축 방법(200)의 입력 및 출력을 예시하는 흐름도이다. 절차에 대하여 두 개의 입력이 있으며, (i) 단계(210)에서는, DNN에 대한 정확한 입력-출력 쌍의 훈련 데이터세트, 특정 손실 함수의 특정 태스크에 대한 DNN의 예측 성능을 측정하고 개선하며, (ii) 단계 220에서는, 사전 훈련된 파라미터 값을 갖거나 갖지 않는 DNN의 아키텍처(연산 그래프)가 있다. 단계(230)("압축 프로세스")에서, 활성화 압축기(100)는 수렴될 때까지 DNN을 반복적으로 희소화한다. 단계(240)에서, 압축 방법(200)은, 상이한 파라미터 값들을 갖지만 동일한 아키텍처를 이용하여 압축된 DNN의 출력을 생성한다. 압축 방법(200)은, 희소성 활성화를 갖도록, 즉, 각 계층(
Figure pct00035
)의 넌제로 요소들(활성화된 뉴런들)의 수가 작도록 DNN을 압축한다.
도 3은 압축 프로세스(230)의 일 실시예를 예시하는 흐름도이다. 압축 프로세스(230)는, 최적화기(150)의 단계(340)에서 종료 기준(즉, 목적의 변화 또는 그라디언트의 크기가 미리 결정된 임계값에 기초하여 충분히 작음)을 충족할 때까지 단계(320)에서의 그라디언트 평가와 단계(330)에서의 파라미터 업데이트 간을 교번한다.
Figure pct00036
항은 모든 계층의 파라미터들의 집합을 나타낸다. 압축 프로세스(230)는 아래와 같이 목적 함수를 최소화한다.
Figure pct00037
여기서,
Figure pct00038
항은 (DNN의 최종 계층의 출력에만 의존하는) 손실 함수를 나타내고, R(X(j)) 항은 제j 계층의 출력에 부가되는 활성화 일반화기(130)를 나타낸다. 다음으로, 단계(320)에서의 압축 프로세스(230)는, 네트워크 모델 모듈(110) 및 데이터 판독기(140)를 통한 역전파에 의해 목적의 그라디언트를 평가한다. 압축 프로세스(230)는 모든 파라미터 W에 대한 F(W)의 미분을 연산하고, 단계(330)에서의 파라미터 업데이트는, 취득된 그라디언트 및 최적화기에 의해 결정된 업데이트 등식에 따라 W의 값을 변경한다. 단계(340)에서, 활성화 압축기(340)는 목적이 수렴되었는지 여부를 결정한다. 목적이 수렴되지 않았다면, 활성화 압축기(100)는, 단계(320)에서의 그라디언트 평가 및 단계(330)에서의 파라미터를 통한 처리에 의해 DNN을 계속 반복적으로 희소화한다. 목적이 수렴되었다면, 활성화 압축기(100)는 프로세스를 단계(240)로 복귀시킨다.
도 4는, 단계(320)에서 그라디언트 평가를 연산하고 단계(330)에서 파라미터 업데이트를 연산하기 위한 다수의 소프트웨어 모듈 간의 상호작용을 예시하는 시퀀스도이다. 단계들(461, 462 및 463)은 활성화 일반화기(R(X(j)))의 그라디언트 평가를 나타낸다. 단계들(461, 462 및 463)에서, 최적화기(130)는, 일반화기 그라디언트(461)로부터 파라미터 W(즉,
Figure pct00039
)에 대한 활성화 일반화기(130)의 그라디언트를 요청하도록 구성된다. 이어서, 활성화 일반화 모듈(130)은, 모든 계층({X(j)}j=1...J (462))의 활성화 값을 연산하게끔(462) 네트워크 모델 모듈(110)에 요청하도록 구성되며, 이는 데이터 판독기 모듈(140)이 입력 전처리 파이프라인(463)으로부터 입력 데이터를 제공하는 것을 필요로 한다.
단계들(471, 472 및 473)은 손실 함수 L(X(J))의 그라디언트 평가를 예시한다. 단계들(471, 472 및 473)에서, 최적화기(150)는, 손실 함수 모듈(120)에 의해 손실 그라디언트(471)로부터 파라미터 W(즉,
Figure pct00040
)에 대한 손실 함수의 그라디언트를 요청하도록 구성된다. 손실 함수 모듈(120)은 예측(출력) 계층 X(J)의 값을 연산하게끔(472) 네트워크 모델 모듈(110)에 요청하도록 구성되며, 이는 데이터 판독기 모듈(140)이 입력 전처리 파이프라인(473)으로부터 입력 데이터를 네트워크 모델 모듈(110)에 제공하고 손실 함수 모듈(120)에 대한 라벨을 보정하는 것을 추가로 필요로 한다.
단락 [0027]에 설명된 바와 같은 활성화 일반화기의 제1 실시예를 참조하면, 목적 함수
Figure pct00041
의 그라디언트 평가는 증대된 역전파(Augmented Backpropagation)의 형태를 취하며, 여기서 순방향 패스를 통한 DNN의 출력
Figure pct00042
s는 다음과 같이 연산되며,
Figure pct00043
이어서, 그라디언트
Figure pct00044
를, 계층
Figure pct00045
에 대하여 일반화 항
Figure pct00046
으로부터의 증대된 그라디언트를 사용하여 각 계층의 파라미터에 역전파하며, 여기서 항
Figure pct00047
는 계층 연산
Figure pct00048
에 대한 역전파 함수를 나타낸다. 제2 항인
Figure pct00049
는 압축 프로세스의 핵심을 나타내며, 이는 뉴런 활성화 값을 0을 향하여 감소시키는 모멘텀으로 역전파된 정보를 증대하며, 각 계층의 파라미터 W(j)에 대한 그라디언트는, 표준 역전파 프로세스에서 있어서 역전파의 동일한 규칙에 기초하여
Figure pct00050
Figure pct00051
로부터 취득될 수 있다.
단락 [0028]에 설명된 바와 같은 활성화 일반화기의 제2 실시예를 참조하면, 목적 함수 F(W)의 그라디언트 평가는, 먼저 식 (1)과 유사하지만 식 (2) 또는 식 (3)과 같이 파라미터화된 활성화 함수를 이용하는 순방향 전파를 수행하며, 이는 일부 파라미터에 의해 제어되는 활성화 수의 중간 표현 X(j)를 생성한다. 역전파 프로세스 동안, 주요 차이점은, 활성화 출력에 대하여 그라디언트
Figure pct00052
를 역방향으로 전파하여 활성화 입력에 대한 그라디언트
Figure pct00053
를 취득하는 단계에 있으며, 이는 아래의 식 (4)에 의해 연산될 수 있다.
Figure pct00054
평활하지 않은 희소성 활성화 함수의 경우에, 수학식은 다음과 같다.
Figure pct00055
평활화된 버전의 경우에, 수학식은 다음과 같고,
Figure pct00056
여기서,
Figure pct00057
항은 볼록 세트
Figure pct00058
에 대한 투사 연산을 나타낸다. 어느 경우든,
Figure pct00059
는 매우 희소한 벡터이므로, 역전파 동안 식 (4)에서의 중간 그라디언트 ▽ vec ( X ) F는 희소화되며, 이는 컨볼루션 및 매트릭스 승산 등의 DNN에서의 고가 연산의 계산의 상당한 가속을 달성하는 데 사용될 수 있다.
단계(481)에서의 절차인 변수 업데이트는, 역전파 프로세스로부터 연산되는 그라디언트에 따라 DNN 파라미터의 값이 어떻게 업데이트되는지를 결정하는 최적화 알고리즘을 구현한다. 이 부분은, 일 실시예에서, 확률적 그라디언트 하강법(SGD), 확률적 분산 감소 그라디언트법(SVRG), 적응형 그라디언트법(Adagrad), 평균 제곱근 전파((RMSprop), 적응형 모멘트 추정법(ADAM)과 같이 파라미터 W의 업데이트 방향을 결정하기 위해 그라디언트(및 반복 동안의 이 그라디언트의 이력)만을 사용하는 표준 1차 최적화 알고리즘을 사용한다.
도 5는, 각 계층의 입력으로서의 희소화된 활성화가 DNN의 효율을 어떻게 상당히 개선할 수 있는지를 예시하는 그림도(500)이다. 특히, 컨볼루션을 연산하는, 일반적으로 DNN에서의 최고가의 연산의 일 실시예에서는, 활성화된 뉴런에 액세스하고 넌제로 가중치의 뉴런들 간의 연결 에지에 액세스한다. 본 개시 내용의 방법론은 전형적으로 뉴런들 간의 넌제로 연결(필터 가중치)을 희소화하는 다른 기술과 통합될 수 있다.
아래의 예에서, 뉴런 활성화 및 (넌제로 가중치의) 뉴런 연결 모두는 희소성 있다고 가정한다. 2차원 컨볼루션이 일례로서 사용된다. 당업자는, 본 개시 내용의 사상을 벗어나지 않고 2차원 컨볼루션이 다차원 컨볼루션으로 확장될 수 있음을 인식할 것이다. 입력 뉴런
Figure pct00060
와 필터
Figure pct00061
간의 컨볼루션은, 아래의 식에 의해 관련된 3D 텐서
Figure pct00062
를 초래하며,
Figure pct00063
여기서, 기호 *는 컨볼루션 연산을 나타낸다. X와 W 모두의 희소성 구조를 이용하기 위해, X는 인덱스-값 쌍들의 희소성 리스트로서 저장되고, 필터의 각 입력 채널도 list X 및 list Wc 로서 표시되는 인덱스-값 쌍들의 희소성 리스트로서 저장된다고 가정하면, 컨볼루션의 구현은 아래와 같이 요약될 수 있다.
Figure pct00064
위 절차에 사용된 산술 연산들의 수는, W와 X 모두의 초기 형상 대신 넌제로 요소들의 수에 비례한다. 따라서, 도 4에 도입된 희소화 절차를 통해, 연산 부하를 크게 감소시킬 수 있다. DNN의 완전 연결 계층은 컨볼루션의 특별한 경우로서 제시될 수 있으므로, 위 절차를 완전 연결 계층에도 사용할 수 있다는 점에 주목한다.
추론 속도의 개선에 더하여, 희소화는 DNN에 의해 생성되는 임베딩(즉, 마지막 몇 개의 계층의 뉴런 활성화)도 압축한다. DNN에 의해 생성되는 임베딩은, 이미지, 오디오, 비디오, 및 텍스트와 같은 원시 입력 데이터의 의미론적 벡터 표현으로서 종종 기능한다. 입력 데이터의 이미지를 일례로서 살펴보면, 두 개의 이미지 간의 유사성은 DNN에 의해 생성되는 두 개의 이미지의 임베딩 간의 내적에 의해 측정될 수 있다. 이어서, 그러한 임베딩을 기반으로 이미지의 의미론적 검색 엔진을 구축할 수 있다. 공식적으로,
Figure pct00065
을 데이터베이스의 이미지들의 집합이라고 하고,
Figure pct00066
Figure pct00067
를 DNN에 의해 생성되는 그러한 이미지들의 임베딩이라고 하자. 검색 엔진은 다음에 따르는 연산들을 수행한다. 즉, (i) 질의 이미지 xq가 주어지면, DNN에 의해 해당 임베딩 zq를 생성하고, (ii) 임베딩
Figure pct00068
이 이미지들의 데이터베이스 중에서 zq에 대한 최고 내적을 갖는 이미지들의 리스트를 리턴한다. 이 응용분야에서, 활성화 희소화(100)는 두 가지 이점을 제공한다. 첫째, 활성화를 희소화함으로써, 그러한 임베딩을 저장하는 데 필요한 공간을 크게 감소시키며, 둘째, 단락 [0037]에서 설명된 연산 절차를 사용하여 유사성 연산을 상당히 가속할 수 있다.
도 6, 도 7, 도 8, 및 도 9는, 본 개시 내용의 방법론이 (i) 얼굴 인식, (ii) 이미지 이동(translation), (iii) 언어 이동, 및 (iv) 음성 인식에 대한 추론 효율을 향상시키는 활성화 압축기(100)의 상업적 응용분야의 네 가지 예를 도시한다.
도 6은, 활성화 압축기(100)가 DNN을 통해 얼굴의 의미론적 임베딩을 생성하는 데 필요한 산술 연산의 수를 감소시키는 얼굴 인식의 응용분야에 대한 본 개시 내용을 예시하는 그림도(510)이다. 이러한 두 개의 얼굴 임베딩의 유사성을 통해, 두 개의 이미지가 동일한 사람을 포함하는지 여부를 구별할 수 있다.
도 7은, DNN이 이미지를 입력으로서 취입하고 상이한 스타일의 이미지를 출력하는(예를 들어, 텍스처, 조명 조건 등을 변경하는) 이미지 이동의 응용분야에 대한 본 개시 내용을 예시하는 그림도(520)이다. 활성화 압축기(100)는 이미지의 스타일을 이동시키도록 DNN에 의해 요구되는 산술 연산의 수를 감소시키는 데 사용될 수 있다.
도 8은 언어 이동의 응용분야에 대한 본 개시 내용을 예시하는 그림도(530)이며, 여기서 순환 신경망(RNN, DNN의 특별한 유형임)은 영어 단어 토큰을 입력으로서 취하고 한자를 출력한다. 활성화 압축기(100)는, RNN의 인코더 및 디코더 부분 모두에 있어서 활성 뉴런의 수를 감소시키고 이에 따라 산술 연산의 수를 감소시킨다.
도 9는, 음성 인식을 위해 훈련된 DNN에 대한 활성화 압축기(100)의 적용을 예시하는 그래픽 다이어그램(540)이며, 여기서 DNN은 오디오 파 신호를 입력으로서 취하고 오디오 신호에 포함된 인간 언어의 단어를 출력한다.
위에서 언급한 바와 같이, 본 발명과 관련하여 설명된 다양한 컴퓨터 기반 디바이스는 유사한 속성을 공유할 수 있다. 도 10은 컴퓨터 시스템(600)의 예시적인 형태를 도시하며, 여기서 컴퓨터 시스템이 본원에서 설명된 방법론들 중 임의의 하나 이상을 수행하게 하는 명령어들의 세트가 실행될 수 있다. 컴퓨터 디바이스(600)는 본원에서 설명되는 클라이언트, 서버, 또는 네트워크 중개 디바이스 중 일부 또는 전부를 나타낼 수 있다. 또한, 단일 기계만이 예시되어 있지만, "기계"라는 용어는, 또한, 본원에서 설명된 방법론들 중 임의의 하나 이상을 수행하기 위한 명령어들의 세트(또는 다수의 세트)를 개별적으로 또는 공동으로 실행하는 기계들의 임의의 집합을 포함하는 것으로 간주된다. 예시적인 컴퓨터 시스템(600)은, 버스(608)를 통해 서로 통신하는, 프로세서(602)(예를 들어, 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), 또는 둘 다), 메인 메모리(604), 및 정적 메모리(606)를 포함한다. 컴퓨터 시스템(600)은 비디오 디스플레이 유닛(610)(예를 들어, 액정 디스플레이(LCD))을 더 포함할 수 있다. 컴퓨터 시스템(600)은, 또한, 영숫자 입력 디바이스(612)(예를 들어, 키보드), 커서 제어 디바이스(614)(예를 들어, 마우스), 디스크 드라이브 유닛(616), 신호 생성 디바이스(618)(예를 들어, 스피커), 및 네트워크 인터페이스 디바이스(624)를 포함한다.
디스크 드라이브 유닛(616)은, 본원에 설명된 방법론들 또는 기능들 중 어느 하나 이상을 구현하는 명령어들의 하나 이상의 세트(예를 들어, 소프트웨어(622))가 저장된 기계 판독가능 매체(620)를 포함한다. 소프트웨어(622)는, 또한, 메인 메모리(604) 내에 및/또는 프로세서(602) 내에 완전히 또는 적어도 부분적으로 상주할 수 있다. 실행 중에, 컴퓨터 시스템(600), 메인 메모리(604), 및 프로세서(602)의 명령어 저장 부분은, 또한, 기계 판독가능 매체를 구성한다. 소프트웨어(622)는, 또한, 네트워크 인터페이스 디바이스(624)를 개재하여 네트워크(626)를 통해 송신 또는 수신될 수 있다.
기계 판독가능 매체(620)가 예시적인 실시예에서 단일 매체인 것으로 도시되어 있지만, "기계 판독가능 매체"라는 용어는, 명령어들의 하나 이상의 세트를 저장하는 단일 매체 또는 다수의 매체(예를 들어, 중앙 집중형 또는 분산형 데이터베이스, 및/또는 연관된 캐시 및 서버)를 포함하는 것으로 간주되어야 한다. "기계 판독가능 매체"라는 용어는, 또한, 기계에 의한 실행을 위한 명령어들의 세트를 저장할 수 있고 기계가 본 발명의 방법론들 중 어느 하나 이상을 수행하게 하는 임의의 유형(tangible)의 매체를 포함하는 것으로 간주되어야 한다. 이에 따라, "기계 판독가능 매체"라는 용어는, 솔리드 스테이트 메모리, 광학 매체, 및 자기 매체를 포함하지만 이에 제한되지 않는 것으로 간주된다.
본 명세서의 상세한 설명의 일부는, 컴퓨터 메모리 또는 다른 저장 디바이스 내의 데이터에 대한 연산의 알고리즘과 상징적 표현의 관점에서 제시된다. 이러한 알고리즘 설명과 표현은, 데이터 처리 기술의 당업자에 의해 당업자의 작업 핵심을 다른 당업자에게 가장 효과적으로 전달하도록 사용되는 수단이다. 알고리즘은, 여기에 존재하며, 일반적으로, 원하는 결과로 이어지는 처리 블록들의 일관된 시퀀스로서 간주된다. 처리 블록은 물리량의 물리적 조작을 필요로 하는 블록이다. 상세한 설명 전체에 걸쳐, "처리" 또는 "연산" 또는 "계산" 또는 "결정" 또는 "표시" 등의 용어들을 이용하는 설명은, 컴퓨터 시스템의 레지스터 및 메모리 내에 물리적 (전자적) 양으로서 표시된 데이터를 컴퓨터 시스템 메모리 또는 레지스터 또는 기타 이러한 정보 저장, 전송, 또는 표시 디바이스 장치 내에 물리적 양으로서 유사하게 표현된 다른 데이터로 조작 및 변환하는 컴퓨터 시스템 또는 유사한 전자 연산 디바이스의 동작과 프로세스를 가리킨다.
본 발명은, 또한, 본원에서 동작을 수행하기 위한 장치에 관한 것이다. 이 장치는, 필요한 목적을 위해 특별히 구성될 수 있거나, 컴퓨터에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성된 범용 컴퓨터를 포함할 수 있다. 이러한 컴퓨터 프로그램은, 플로피 디스크, 광학 디스크, CD-ROM, 자기 광학 디스크를 포함하는 임의의 유형의 디스크 ROM, RAM, EPROM, EEPROM, 자기 또는 광학 카드, 주문형 집적 회로(ASIC) 등의 컴퓨터 판독가능 저장 매체, 혹은 전자 명령어를 저장하는 데 적합한 임의의 유형의 매체에 저장될 수 있으며, 이들 각각은 컴퓨터 시스템 버스에 연결되지만, 이러한 예로 제한되지는 않는다. 또한, 언급된 컴퓨터 및/또는 다른 전자 디바이스는, 단일 프로세서를 포함할 수 있거나, 증가된 연산 능력을 위한 다중 프로세서 설계를 채택하는 아키텍처일 수 있다.
또한, "요청", "클라이언트 요청", "요청된 객체", 또는 "객체"와 같은 용어들은, 중개자 또는 서버 등의 네트워크 디바이스로부터 클라이언트에 의해 요청되는 동작(들), 객체(들),및/또는 정보를 의미하도록 상호 교환식으로 사용될 수 있다. 또한, "응답" 또는 "서버 응답"이라는 용어들은, 네트워크 디바이스로부터 반환되는 대응 동작(들),객체(들),및/또는 정보를 의미하도록 상호 교환식으로 사용될 수 있다. 또한, "통신" 및 "클라이언트 통신"이라는 용어들은, 요청을 하는 클라이언트와 요청에 응답하는 네트워크 디바이스의 전체 프로세스를 의미하도록 상호 교환식으로 사용될 수 있다.
상술한 시스템, 디바이스, 또는 장치 양태들 중 임의의 양태와 관련하여, 시스템의 기능을 수행하는 단계들을 포함하는 방법 양태들을 더 제공할 수 있다. 추가로 또는 대안으로, 다른 양태들과 관련하여 본원에 설명된 특징들 중 임의의 하나 이상의 특징에 기초하여 선택적 특징들이 발견될 수 있다.
본 개시 내용은 가능한 실시예들과 관련하여 특히 상세하게 설명되었다. 당업자는 본 개시 내용이 다른 실시예들에서 실시될 수 있다는 점을 이해할 것이다. 구성요소의 구체적인 명명, 용어의 대문자 사용, 속성, 데이터 구조, 또는 다른 임의의 프로그래밍 또는 구조적 양태는, 필수가 아니며 또는 중요하지 않으며, 개시 내용 또는 개시 내용의 특징을 구현하는 메커니즘은 다른 이름, 포맷, 또는 프로토콜을 가질 수 있다. 시스템은, 설명한 바와 같이 하드웨어와 소프트웨어의 조합을 통해, 또는 완전히 하드웨어 요소로, 또는 완전히 소프트웨어 요소로 구현될 수 있다. 본원에 설명된 다양한 시스템 구성요소들 간의 구체적인 기능 구분은 예시일 뿐 필수 사항은 아니며, 단일 시스템 구성요소에 의해 수행되는 기능은 대신 여러 구성요소에 의해 수행될 수 있으며, 여러 구성요소에 의해 수행되는 기능은 대신 단일 구성요소에 의해 수행될 수 있다.
다양한 실시예에서, 본 개시 내용은 전술한 기술들을 단독적으로 또는 임의의 조합으로 수행하기 위한 시스템 또는 방법으로서 구현될 수 있다. 본원에 설명된 임의의 특정한 특징들의 조합도, 이 조합을 명시적으로 설명하지 않더라도, 제공된다. 다른 일 실시예에서, 본 개시 내용은, 연산 디바이스 또는 다른 전자 디바이스의 프로세서가 전술한 기술들을 수행하게 하도록 컴퓨터 판독가능 저장 매체 및 매체 상에 인코딩된 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품으로서 구현될 수 있다.
본원에서 사용되는 바와 같이, "일 실시예" 또는 "실시예"에 대한 임의의 언급은, 해당 실시예와 관련하여 설명된 구체적인 특징, 구조, 또는 특성이 본 개시 내용의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 명세서의 다양한 위치에서 보이는 "일 실시예에서"라는 문구는, 반드시 모두 동일한 실시예를 지칭하는 것은 아니다.
그러나, 이들 용어 및 유사 용어들 모두는 적절한 물리량과 연관되어야 하며 이러한 물리량에 적용되는 편리한 라벨일 뿐이라는 점에 주목해야 한다. 다음 설명에서 명백한 바와 같이 구체적으로 달리 언급하지 않는 한, 상세한 설명 전반에 걸쳐, "처리" 또는 "연산" 또는 "계산" 또는 "표시" 또는 "결정" 등의 용어를 이용하는 설명은, 컴퓨터 시스템 메모리 또는 레지스터 또는 다른 이러한 정보 저장, 전송, 또는 표시 디바이스 내에서 물리적 (전자) 양으로서 표현된 데이터를 조작 및 변환하는 컴퓨터 시스템 또는 유사한 전자 연산 모듈 및/또는 디바이스의 동작과 프로세스를 참조하는 것으로 이해한다.
본 개시 내용의 소정의 양태는 본원에 기재된 프로세스 단계 및 명령어를 알고리즘의 형태로 포함한다. 본 개시 내용의 프로세스 단계 및 명령어는, 소프트웨어, 펌웨어, 및/또는 하드웨어에 구현될 수 있으며, 소프트웨어에 구현될 때, 다운로드되어 다양한 운영 체제에 의해 사용되는 상이한 플랫폼들에 상주할 수 있고 이러한 플랫폼들로부터 동작될 수 있다는 점에 주목해야 한다.
본원에 제시된 알고리즘 및 디스플레이는, 본질적으로 임의의 특정 컴퓨터, 가상화된 시스템, 또는 기타 장치와 관련이 없다. 다양한 범용 시스템은 또한 본원의 교시에 따라 프로그램과 함께 사용될 수 있으며, 또는 시스템은, 필요한 방법 단계를 수행하는 데 필요한 더욱 전문화된 장치를 구축하는 데 편리함을 입증할 수 있다. 이러한 다양한 시스템에 필요한 구조는 본원에 제공된 설명으로부터 분명해질 것이다. 또한, 본 개시 내용은 임의의 특정 프로그래밍 언어를 참조하여 설명되지 않는다. 본 명세서에 설명된 바와 같이 본 개시 내용의 교시를 구현하는 데 다양한 프로그래밍 언어가 사용될 수 있고, 특정 언어에 대한 상술한 임의의 참조가 본 개시 내용의 가능한 최상의 모드의 개시를 위해 제공된다는 점을 이해할 것이다.
다양한 실시예에서, 본 개시 내용은, 컴퓨터 시스템, 연산 디바이스, 또는 다른 전자 디바이스, 또는 이들의 임의의 조합 또는 복수를 제어하기 위한 소프트웨어, 하드웨어, 및/또는 다른 요소로서 구현될 수 있다. 이러한 전자 디바이스는, 당업계에 널리 알려진 기술에 따라, 예를 들어, 프로세서, 입력 디바이스(예를 들어, 키보드, 마우스, 터치 패드, 트랙 패드, 조이스틱, 트랙볼, 마이크, 및/또는 이들의 임의의 조합), 출력 디바이스(예를 들어, 스크린, 스피커 등),메모리, 장기 저장 장치(예컨대, 자기 저장 장치, 광학 저장 장치 등),및/또는 네트워크 연결부를 포함할 수 있다. 이러한 전자 디바이스는 휴대 가능하거나 휴대 불가능할 수 있다. 본 개시 내용을 구현하도록 사용될 수 있는 전자 디바이스의 예는, 이동 전화, 개인 정보 단말, 스마트폰, 키오스크, 데스크톱 컴퓨터, 랩톱 컴퓨터, 소비자 전자 디바이스, 텔레비전, 셋톱 박스 등을 포함한다. 본 개시 내용을 구현하기 위한 전자 디바이스는, 예를 들어, 캘리포니아주 쿠퍼티노에 소재하는 Apple Inc.의 iOS, 캘리포니아주 마운트 뷰에 소재하는 Google Inc.의 Android, 와싱턴주 레드몬드에 소재하는 Microsoft Corporation의 Microsoft Windows 10 등의 운영 체제, 또는 디바이스에 사용하도록 구성된 다른 임의의 운영 체제를 사용할 수 있다.
일부 실시예에서, 본 개시 내용을 구현하기 위한 전자 디바이스는, 예를 들어, 셀룰러 전화 네트워크, 무선 네트워크, 및/또는 인터넷과 같은 컴퓨터 네트워크를 포함하는 하나 이상의 네트워크를 통한 통신을 위한 기능을 포함한다. 일부 실시예는, "결합된" 및 "연결된"이라는 표현을 이들의 파생어와 함께 사용하여 설명될 수 있다. 이들 용어는 서로 동의어로서 의도된 것이 아님을 이해해야 한다. 예를 들어, 일부 실시예는, 두 개 이상의 요소가 서로 직접 물리적으로 또는 전기적으로 접촉하고 있음을 나타내기 위해 "연결된"이라는 용어를 사용하여 설명될 수 있다. 다른 일례로, 일부 실시예는, 두 개 이상의 요소가 직접 물리적으로 또는 전기적으로 접촉하고 있음을 나타내기 위해 "결합된"이라는 용어를 사용하여 설명될 수 있다. 그러나, "결합된"이라는 용어는, 또한, 두 개 이상의 요소가 서로 직접 접촉하지는 않지만 여전히 서로 협력하거나 상호작용한다는 것을 의미할 수 있다. 실시예들은 이러한 맥락에서 제한되지 않는다.
본원에서 사용되는 바와 같이, "포함하다"(comprises), "포함하는"(comprising), "포함하다"(includes), "포함하는"(including), "갖는다", "갖는", 또는 이들의 다른 변형은 비배타적 포함을 포함하도록 의도된 것이다. 예를 들어, 요소들의 리스트를 포함하는 프로세스, 방법, 물품, 또는 장치는, 반드시 이들 요소로만 제한되는 것이 아니라, 명시적으로 나열되지 않거나 이러한 프로세스, 방법, 물품, 또는 장치에 대하여 고유하지 않은 다른 요소를 포함할 수 있다. 또한, 반대로 명시적으로 언급되지 않는 한, "또는"은 포괄적임을 지칭하며 또는 "배타적 또는'을 지칭하는 것은 아니다. 예를 들어, 조건 A 또는 B는, 다음에 따르는, A가 참(또는 존재)이고 B는 거짓(또는 존재하지 않음), A가 거짓(또는 존재하지 않음)이고 B는 참(또는 존재), A와 B가 모두 참(또는 존재)임 중 임의의 하나에 의해 충족된다.
본원에서 사용되는 "한" 또는 "하나"라는 용어는 하나로서 또는 하나보다 많은 것으로서 정의된다. "복수"라는 용어는, 본원에서 사용되는 바와 같이, 두 개로서 또는 두 개보다 많은 것으로서 정의된다. 본 명세서에서 사용되는 "다른 하나"라는 용어는, 본원에서 사용되는 바와 같이, 적어도 두 번째 것으로서 정의된다.
당업자는, 본원에 설명된 방법 및 시스템을 개발할 때 추가 설명을 필요로 하지 않지만, 관련 기술에서 표준화된 참조 업무를 검토함으로써 이러한 방법 및 시스템의 준비에 도움이 될 수 있는 일부 지침을 찾을 수도 있다.
본 개시 내용은 제한된 수의 실시예에 대해 설명되었지만, 상기 설명의 이점을 갖는 당업자는, 본원에 설명된 바와 같이 본 개시 내용의 범위를 벗어나지 않는 다른 실시예를 고려할 수 있음을 이해할 것이다. 본 명세서에서 사용되는 언어는, 주로 가독성 및 교육 목적을 위해 선택되었으며, 본 발명의 주제를 설명하거나 제한하도록 선택된 것이 아닐 수 있다는 점에 주목해야 한다. 사용된 용어들은, 본 개시 내용을 명세서 및 청구범위에 개시된 특정 실시예로 제한하는 것으로 해석되어서는 안 되며, 아래에 설명된 청구범위에 따라 기능하는 모든 방법 및 시스템을 포함하는 것으로 해석되어야 한다. 이에 따라, 본 개시 내용은 개시 내용에 의해 제한되지 않고, 대신 개시 내용의 범위는 다음에 따르는 청구범위에 의해 전적으로 결정되어야 한다.

Claims (28)

  1. 심층 신경망(DNN) 추론의 연산 비용을 감소시키는 방법으로서,
    (a) 특정 태스크에 기초하여 심층 신경망의 예측 성능을 측정할 수 있는 손실 함수를 결정하는 단계;
    (b) 심층 신경망 연산 그래프 및 연관된 파라미터 값을 갖는 초기 심층 신경망을 검색하는 단계;
    (c) 희소화 비(sparsify ratio)가 수렴될 때까지 상기 심층 신경망의 활성 뉴런의 수를 반복적으로 희소화하는 단계; 및
    (d) 활성화 희소화된(activation-sparsified) 심층 신경망을 생성 및 출력하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 희소화하는 단계는, 초기 활성화 함수를 희소화-유도 활성화 함수들의 새로운 세트로 대체함으로써 상기 손실 함수를 확장하여 목적 함수를 형성하는 단계를 포함하는, 방법.
  3. 제1항에 있어서, 상기 희소화하는 단계는, 상기 손실 함수를 하나 이상의 활성화 일반화로 확장하여 목적 함수를 형성하는 단계를 포함하는, 방법.
  4. 제3항에 있어서, 상기 희소화하는 단계는, 확장된 상기 활성화 일반화를 이용한 역전파에 의해 상기 목적 함수의 그라디언트를 평가하는 단계를 포함하는, 방법.
  5. 제3항에 있어서, 상기 희소화하는 단계는, 희소화-유도 활성화 함수를 이용한 역전파에 의해 상기 목적 함수의 그라디언트를 평가하는 단계를 포함하는, 방법.
  6. 제4항 또는 제5항에 있어서, 상기 희소화하는 단계는, 상기 그라디언트에 기초하여 상기 심층 신경망에 연관된 하나 이상의 파라미터를 반복적으로 조정하는 단계를 포함하는, 방법.
  7. 제6항에 있어서, 상기 희소화하는 단계는, 상기 희소화 비의 변화가 미리 정해진 임계값보다 작아지는지 여부를 확인함으로써, 상기 심층 신경망이 수렴되는지 여부를 결정하는 단계를 포함하는, 방법.
  8. 제1항에 있어서, 상기 특정 태스크는 훈련 데이터세트를 포함하는, 방법.
  9. 제1항에 있어서, 상기 심층 신경망의 최종 계층에서의 활성 뉴런의 수는 상기 심층 신경망에 의해 생성되는 벡터의 압축된 표현을 취득하도록 감소되는, 방법.
  10. 활성화 압축기로서,
    복수의 뉴런의 활성화 값을 연산하고 예측을 연산하도록 구성되고, 심층 신경망(DNN)을 파라미터화하는 변수들의 집합을 포함하는 네트워크 모델로서, 상기 심층 신경망은 복수의 계층으로 모듈화되고, 각 계층은 하나 이상의 이전 계층의 출력을 입력 데이터로서 취하고 출력들의 새로운 세트를 연산하는, 네트워크 모델;
    상기 네트워크 모델에 통신가능하게 결합되며, 상기 예측과 실측 답(ground-truth answer) 간의 불일치를 측정하는 제1 페널티 값을 연산하도록 구성된 손실 함수 모듈;
    상기 네트워크 모델에 통신가능하게 결합되며, 어떠한 뉴런이 상기 네트워크 모델에서의 활성 뉴런의 수를 희소화할 수 있는지를 최소화함으로써 상기 네트워크 모델 모듈의 모든 뉴런의 활성화 레벨을 측정하는 제2 페널티 값을 연산하도록 구성된 활성화 일반화기;
    상기 네트워크 모델에 통신가능하게 결합되며, 복수의 데이터 소스로부터 상기 심층 신경망을 위한 입력 데이터를 취득하기 위한 파이프라인을 포함하는 데이터 판독기 모듈; 및
    상기 손실 함수 모듈과 상기 활성화 일반화기에 통신가능하게 결합되고, 상기 손실 함수 모듈과 상기 활성화 일반화기에서의 목적 함수를 감소시키기 위해 상기 네트워크 모델에서의 변수들의 집합의 값을 조정하도록 구성된 최적화기를 포함하는, 활성화 압축기.
  11. 제10항에 있어서, 상기 뉴런들은 각 계층의 하나 이상의 출력을 포함하는, 활성화 압축기.
  12. 제10항에 있어서, 상기 예측은 최종 계층의 하나 이상의 출력을 포함하는, 활성화 압축기.
  13. 제10항에 있어서, 상기 손실 함수 모듈은 상기 예측에 대하여 페널티 값의 미분을 연산하는, 활성화 압축기.
  14. 제10항에 있어서, 상기 손실 함수 모듈은 아래의 태스크 의존형 손실 함수 표현을 포함하고,
    Figure pct00069

    여기서,
    Figure pct00070
    는, 상기 심층 신경망의 최종·계층의 출력이고, 타겟 태스크
    Figure pct00071
    의 라벨에 관련된 각 샘플의 K개의 점수를 제공하며, 태스크 의존형 손실 함수는, 주어진 훈련 데이터세트
    Figure pct00072
    에 대하여 상기 DNN으로부터 예측되는 출력들과 훈련 세트
    Figure pct00073
    에 대하여 주어진 정확한 출력들 간의 불일치를 측정하는, 활성화 압축기.
  15. 제10항에 있어서, 상기 활성화 일반화기는, 어떠한 뉴런이 상기 신경망에서의 활성 뉴런의 수를 희소화할 수 있는지를 최소화함으로써 상기 신경망에서의 모든 뉴런의 활성화 레벨을 측정하는 미분을 연산하는, 활성화 압축기.
  16. 제10항에 있어서, 상기 활성화 일반화기는 활성화 값을 직접 일반화하는, 활성화 압축기.
  17. 제16항에 있어서, 상기 활성화 일반화기는 아래의 식으로 표현되는 바와 같이 활성화 값을 직접 일반화하며,
    Figure pct00074

    여기서,
    Figure pct00075
    항은 조정 하이퍼파라미터를 나타내며,
    Figure pct00076
    항(X의 모든 절대값의 합)은, 얼마나 많은 넌제로 성분이 X에 있는지를 대략적으로 측정하는 X의 볼록 대리 함수(convex surrogate function)를 나타내는, 활성화 압축기.
  18. 제10항에 있어서, 상기 활성화 일반화기는 각 계층의 활성화의 희소화 레벨을 제어하는 복수의 파라미터를 일반화하는, 활성화 압축기.
  19. 제18항에 있어서, 상기 활성화 일반화기는 상기 활성화의 희소화 레벨을 파라미터를 갖는 활성화 함수와 함께 사용되며, 상기 활성화 함수는, 아래와 같이 표현되고,
    Figure pct00077

    최대 값들을 갖는 top-r 요소들의 값들만을 보존하고, 나머지는 제로로 억제하는, 활성화 압축기.
  20. 제18항에 있어서, 상기 데이터 판독기 모듈은, 복수의 데이터 소스로부터 상기 심층 신경망을 위한 입력 데이터를 취득하기 위한 파이프라인을 포함하고, 상기 파이프라인은 적어도 하나의 크롭핑, 서브샘플링, 업샘플링, 뱃칭, 화이트닝, 및 일반화를 포함하는, 활성화 압축기.
  21. 제18항에 있어서, 상기 최적화기 모듈은, 상기 손실 함수와 상기 활성화 일반화기를 포함하는 목적 함수를 감소시키기 위해 상기 네트워크 모델의 변수들의 값들을 조정하도록 구성된, 활성화 압축기.
  22. 제18항에 있어서, 상기 입력 데이터는 이미지, 오디오, 비디오, 및 텍스트 중 적어도 하나를 포함하는, 활성화 압축기.
  23. 심층 신경망(DNN)의 효율적 연산 방법으로서,
    (a) 복수의 뉴런의 활성화 값을 연산하고 예측을 연산하기 위한 네트워크 모델을 제공하는 단계로서, 상기 네트워크 모델은 심층 신경망을 파라미터화하는 변수들의 집합을 포함하고, 상기 심층 신경망은 복수의 계층으로 모듈화되고, 각 계층은 하나 이상의 이전 계층의 출력을 입력 데이터로서 취하고 출력들의 새로운 세트를 연산하는, 단계;
    (b) 네트워크 모델과 데이터 판독기를 통한 역전파에 의해 목적 함수의 그라디언트를 평가하는 단계;
    (c) 상기 목적 함수를 감소시키기 위해 상기 네트워크 모델의 상기 변수들의 집합의 값들을 조정하기 위한 최적화기에 의해 상기 그라디언트에 기초하여 DNN 파라미터들을 업데이트하는 단계;
    (d) 최적화기에 의해, 상기 목적이 수렴되었음을 나타내도록 미리 정해진 임계값에 기초하여 상기 그라디언트의 크기 또는 목적의 변화가 충분히 작은지 여부를 결정하는 단계;
    상기 목적이 수렴되지 않았다면, 상기 (b) 단계와 (c) 단계를 반복하는 단계; 및
    상기 목적이 수렴되었다면, 희소화된 심층 신경망에 의해 출력을 생성하는 단계를 포함하는, 방법.
  24. 제23항에 있어서, 상기 그라디언트를 평가하는 단계는, 일반화기 그라디언트로부터 파라미터
    Figure pct00078
    에 대하여 활성화 일반화기의 그라디언트를 요청하는 단계를 포함하는, 방법.
  25. 제24항에 있어서, 상기 그라디언트를 평가하는 단계는, 전처리 파이프라인에 의해 제공되는 입력 데이터를 이용하여 모든 계층 {X(j)}j=1...J (462)의 활성화 값을 연산하도록 상기 네트워크 모델에 요청하는 단계를 포함하는, 방법.
  26. 제23항에 있어서, 상기 DNN 파라미터들을 업데이트하는 단계는, 손실 함수 모듈에 의해 손실 그라디언트로부터 파라미터들
    Figure pct00079
    에 대하여 상기 손실 함수의 그라디언트를 요청하는 단계를 포함하는, 방법.
  27. 제26항에 있어서, 상기 DNN 파라미터들을 업데이트하는 단계는, 입력 전처리 파이프라인으로부터 상기 네트워크 모델로 제공되는 입력 데이터를 이용하여 예측 (출력) 계층들
    Figure pct00080
    의 값들을 연산하고 상기 손실 함수 모듈에 대한 라벨을 보정하도록 상기 네트워크 모델에 요청하는 단계를 포함하는, 방법.
  28. 제23항에 있어서, 상기 입력 데이터는 이미지, 오디오, 비디오, 및 텍스트 중 적어도 하나를 포함하는, 방법.
KR1020217002240A 2018-06-22 2019-06-21 활성화 희소화를 포함하는 신경 네트워크 가속 및 임베딩 압축 시스템 및 방법 KR20210029785A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862688891P 2018-06-22 2018-06-22
US62/688,891 2018-06-22
US16/446,938 2019-06-20
US16/446,938 US10832139B2 (en) 2018-06-22 2019-06-20 Neural network acceleration and embedding compression systems and methods with activation sparsification
PCT/US2019/038422 WO2019246491A1 (en) 2018-06-22 2019-06-21 Neural network acceleration and embedding compression systems and methods with activation sparsification

Publications (1)

Publication Number Publication Date
KR20210029785A true KR20210029785A (ko) 2021-03-16

Family

ID=68982036

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217002240A KR20210029785A (ko) 2018-06-22 2019-06-21 활성화 희소화를 포함하는 신경 네트워크 가속 및 임베딩 압축 시스템 및 방법

Country Status (10)

Country Link
US (1) US10832139B2 (ko)
EP (1) EP3811297A4 (ko)
JP (1) JP7462623B2 (ko)
KR (1) KR20210029785A (ko)
CN (1) CN112585619A (ko)
AU (1) AU2019288674B2 (ko)
CA (1) CA3104646C (ko)
IL (1) IL279625A (ko)
SG (1) SG11202012911TA (ko)
WO (1) WO2019246491A1 (ko)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109543826A (zh) * 2017-09-21 2019-03-29 杭州海康威视数字技术股份有限公司 一种基于深度神经网络的激活量量化方法及装置
WO2020072274A1 (en) * 2018-10-01 2020-04-09 Neuralmagic Inc. Systems and methods for neural network pruning with accuracy preservation
JP7206898B2 (ja) * 2018-12-25 2023-01-18 富士通株式会社 学習装置、学習方法および学習プログラム
US11966837B2 (en) * 2019-03-13 2024-04-23 International Business Machines Corporation Compression of deep neural networks
EP3748545A1 (en) * 2019-06-07 2020-12-09 Tata Consultancy Services Limited Sparsity constraints and knowledge distillation based learning of sparser and compressed neural networks
CN114746870A (zh) * 2019-10-02 2022-07-12 诺基亚技术有限公司 用于神经网络压缩中优先级信令的高级语法
US11620435B2 (en) * 2019-10-10 2023-04-04 International Business Machines Corporation Domain specific model compression
US11734569B2 (en) * 2020-02-14 2023-08-22 Wipro Limited Method and system for improving performance of an artificial neural network (ANN) model
CN111327472B (zh) * 2020-02-24 2022-08-02 北京百度网讯科技有限公司 用于获取目标网络的方法及装置
CN113298223B (zh) * 2020-02-24 2023-12-26 中科寒武纪科技股份有限公司 数据处理方法、装置、计算机设备和存储介质
CN111460905A (zh) * 2020-03-05 2020-07-28 重庆大学 稀疏量化神经网络编码模式识别方法与***
US20220121909A1 (en) * 2020-03-24 2022-04-21 Lg Electronics Inc. Training a neural network using stochastic whitening batch normalization
US11113601B1 (en) 2020-06-30 2021-09-07 Moffett Technologies Co., Limited Method and system for balanced-weight sparse convolution processing
CN111709493B (zh) * 2020-07-10 2024-02-23 腾讯科技(深圳)有限公司 对象分类方法、训练方法、装置、设备及存储介质
CN112149797B (zh) * 2020-08-18 2023-01-03 Oppo(重庆)智能科技有限公司 神经网络结构优化方法和装置、电子设备
EP3965021B1 (en) * 2020-09-07 2023-12-20 Fujitsu Limited A method of using clustering-based regularization in training a deep neural network to classify images
JP7126534B2 (ja) * 2020-09-29 2022-08-26 株式会社日立製作所 計算機システム、リソース再割当方法
CN112101529B (zh) * 2020-10-14 2024-06-21 杭州海康威视数字技术股份有限公司 一种用于神经网络模型推理跨平台的部署方法及架构
US11068786B1 (en) * 2020-12-17 2021-07-20 Moffett Technologies Co., Limited System and method for domain specific neural network pruning
CN112465141B (zh) * 2020-12-18 2024-06-28 平安科技(深圳)有限公司 模型压缩方法、装置、电子设备及介质
CN112966810B (zh) * 2021-02-02 2023-07-11 西北大学 基于改进YOLOv5s的头盔检测方法、装置、电子设备和存储介质
CN115222015A (zh) 2021-04-21 2022-10-21 阿里巴巴新加坡控股有限公司 指令处理装置、加速单元和服务器
CN113313175B (zh) * 2021-05-28 2024-02-27 北京大学 基于多元激活函数的稀疏正则化神经网络的图像分类方法
US11734013B2 (en) 2021-06-17 2023-08-22 International Business Machines Corporation Exception summary for invalid values detected during instruction execution
US11693692B2 (en) 2021-06-17 2023-07-04 International Business Machines Corporation Program event recording storage alteration processing for a neural network accelerator instruction
US11675592B2 (en) 2021-06-17 2023-06-13 International Business Machines Corporation Instruction to query for model-dependent information
US11669331B2 (en) 2021-06-17 2023-06-06 International Business Machines Corporation Neural network processing assist instruction
US11269632B1 (en) 2021-06-17 2022-03-08 International Business Machines Corporation Data conversion to/from selected data type with implied rounding mode
US11797270B2 (en) 2021-06-17 2023-10-24 International Business Machines Corporation Single function to perform multiple operations with distinct operation parameter validation
US11429864B1 (en) * 2021-08-16 2022-08-30 Moffett International Co., Limited System and method for bank-balanced sparse activation and joint-activation-weight-sparse training of neural networks
US11960982B1 (en) 2021-10-21 2024-04-16 Neuralmagic, Inc. System and method of determining and executing deep tensor columns in neural networks
US20230376725A1 (en) * 2022-05-19 2023-11-23 Microsoft Tachnology Licensing, LLC Model customization of transformers for improved efficiency
CN115146775B (zh) * 2022-07-04 2023-05-23 同方威视技术股份有限公司 边缘设备推理加速方法、装置和数据处理***
CN115935154B (zh) * 2023-03-13 2023-11-24 南京邮电大学 基于稀疏表示与近端算法的射频信号特征遴选与识别方法
CN116882461B (zh) * 2023-09-01 2023-11-21 北京航空航天大学 一种基于神经元可塑性的神经网络评估优化方法及***
CN117808083B (zh) * 2024-02-29 2024-05-03 浪潮电子信息产业股份有限公司 一种分布式训练通信方法、装置、***、设备及存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10255628B2 (en) * 2015-11-06 2019-04-09 Adobe Inc. Item recommendations via deep collaborative filtering
US10831444B2 (en) * 2016-04-04 2020-11-10 Technion Research & Development Foundation Limited Quantized neural network training and inference
CN107239825B (zh) * 2016-08-22 2021-04-09 赛灵思电子科技(北京)有限公司 考虑负载均衡的深度神经网络压缩方法
US10984308B2 (en) * 2016-08-12 2021-04-20 Xilinx Technology Beijing Limited Compression method for deep neural networks with load balance
US10832123B2 (en) 2016-08-12 2020-11-10 Xilinx Technology Beijing Limited Compression of deep neural networks with proper use of mask
US20190188567A1 (en) * 2016-09-30 2019-06-20 Intel Corporation Dynamic neural network surgery
CN107832847A (zh) * 2017-10-26 2018-03-23 北京大学 一种基于稀疏化后向传播训练的神经网络模型压缩方法

Also Published As

Publication number Publication date
AU2019288674A1 (en) 2021-02-18
CA3104646C (en) 2023-07-04
JP2021528796A (ja) 2021-10-21
EP3811297A1 (en) 2021-04-28
CA3104646A1 (en) 2019-12-26
CN112585619A (zh) 2021-03-30
AU2019288674B2 (en) 2024-02-15
US20190392323A1 (en) 2019-12-26
JP7462623B2 (ja) 2024-04-05
IL279625A (en) 2021-03-01
EP3811297A4 (en) 2022-03-30
SG11202012911TA (en) 2021-01-28
US10832139B2 (en) 2020-11-10
WO2019246491A1 (en) 2019-12-26

Similar Documents

Publication Publication Date Title
KR20210029785A (ko) 활성화 희소화를 포함하는 신경 네트워크 가속 및 임베딩 압축 시스템 및 방법
US20210004677A1 (en) Data compression using jointly trained encoder, decoder, and prior neural networks
US20180204120A1 (en) Improved artificial neural network for language modelling and prediction
US11450096B2 (en) Systems and methods for progressive learning for machine-learned models to optimize training speed
US20240112088A1 (en) Vector-Quantized Image Modeling
CN114424215A (zh) 多任务适配器神经网络
CN113806552A (zh) 信息提取方法、装置、电子设备和存储介质
CN114467096A (zh) 增强基于注意力的神经网络以选择性地关注过去的输入
CN111832699A (zh) 用于神经网络的计算高效富于表达的输出层
US20230401477A1 (en) Non-linear data dependency detection in machine learning using hybrid quantum computing
CN114492758A (zh) 使用逐层损失来训练神经网络
CN115066689A (zh) 细粒度的随机神经架构搜索
US11755883B2 (en) Systems and methods for machine-learned models having convolution and attention
US20230124177A1 (en) System and method for training a sparse neural network whilst maintaining sparsity
US20240232637A9 (en) Method for Training Large Language Models to Perform Query Intent Classification
US20240135187A1 (en) Method for Training Large Language Models to Perform Query Intent Classification
US20230325658A1 (en) Conditional output generation through data density gradient estimation
CN115803753A (zh) 用于高效推理的多阶段机器学习模型合成
Ho et al. Improvement of the Convergence Rate of Deep Learning by Using Scaling Method
CN118176733A (zh) 矢量量化图像建模
JP2024519265A (ja) フィードフォワード空間変換ユニットを備えたニューラルネットワーク
WO2023114141A1 (en) Knowledge distillation via learning to predict principal components coefficients
CN115769236A (zh) 经由lambda函数以减少的特征物化进行长程交互的建模