KR102100977B1 - 압축된 순환 신경망 모델 - Google Patents

압축된 순환 신경망 모델 Download PDF

Info

Publication number
KR102100977B1
KR102100977B1 KR1020187017732A KR20187017732A KR102100977B1 KR 102100977 B1 KR102100977 B1 KR 102100977B1 KR 1020187017732 A KR1020187017732 A KR 1020187017732A KR 20187017732 A KR20187017732 A KR 20187017732A KR 102100977 B1 KR102100977 B1 KR 102100977B1
Authority
KR
South Korea
Prior art keywords
layer
cyclic
weight matrix
matrix
rnn
Prior art date
Application number
KR1020187017732A
Other languages
English (en)
Other versions
KR20180084988A (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 구글 엘엘씨
Publication of KR20180084988A publication Critical patent/KR20180084988A/ko
Application granted granted Critical
Publication of KR102100977B1 publication Critical patent/KR102100977B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield 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
    • G06N3/084Backpropagation, e.g. using gradient descent
    • 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/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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/0495Quantised networks; Sparse networks; Compressed networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/06Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
    • G10L15/063Training
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/33Director till display
    • G05B2219/33025Recurrent artificial neural network
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40326Singular value decomposition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)
  • Machine Translation (AREA)

Abstract

압축된 순환 신경망(RNN)를 구현하기 위한, 컴퓨터 저장 매체 상에 인코딩된 컴퓨터 프로그램을 포함하는 방법들, 시스템들 및 장치들을 개시한다. 상기 시스템들 중 하나는 압축된 RNN을 포함하고, 상기 압축된 RNN은 복수의 순환 계층을 포함하고, 상기 각각의 순환 계층은 각각의 순환 가중치 행렬 및 각각의 계층간 가중치 행렬을 가지며, 상기 순환 계층들 중 적어도 하나는 압축되어, 상기 압축된 계층의 각각의 순환 가중치 행렬은 제1 압축 가중치 행렬 및 투영 행렬에 의해 정의되고, 상기 압축된 계층의 각각의 계층간 가중치 행렬은 제2 압축 가중치 행렬 및 상기 투영 행렬에 의해 정의된다. 압축은 데이터를 보다 효율적으로 처리하고 데이터 저장 공간을 덜 사용하는 성능을 포함하여 많은 기술적 장점들을 제공할 수 있다.

Description

압축된 순환 신경망 모델
본 명세서는 신경망 구조 및 압축 신경망에 관한 것이다.
신경망들은 수신된 입력에 대한 출력을 예측하기 위해 하나 이상의 비선형 단위 계층(units layer)을 사용하는 기계 학습 모델이다. 일부 신경망은 출력 계층 외에 하나 이상의 히든(hidden) 계층을 포함한다. 각 히든 계층의 출력은 네트워크의 다음 계층, 즉 다음 히든 계층 또는 출력 계층의 입력으로 사용된다. 네트워크의 각 계층은 각각의 파라미터 세트의 현재 값에 따라 수신 입력으로부터 출력을 생성한다. 일부 신경망들, 예를 들어, 시계열 문제 또는 시퀀스-투-시퀀스 학습(순환 신경망(recurrent neural networks :RNN))을 위해 설계된 신경망들은 순환 루프들(recurrent loops)을 통합하여 히든 상태 변수의 형태로 메모리가 데이터 입력들 사이의 계층 내에서 지속되도록 한다. RNN의 변형인 LSTM(long-term memory) 신경망은 데이터 입력 간의 데이터 지속성을 제어하기 위해 각 계층에 다수의 게이트를 포함하고 있다. 일부 신경망, 예를 들어, 시계열 문제 또는 시퀀스-투-시퀀스 학습을 위해 설계된 신경망은 순환 루프들을 통합하여 히든 상태 변수의 형태로 메모리가 데이터 입력 사이의 계층 내에서 지속되도록 한다.
본 명세서는 순환 신경망 아키텍처와 관련된 기술을 설명한다. 일반적으로, 순환 신경망은 압축된 적어도 하나의 순환 신경망 계층을 포함한다. 특히, 압축된 순환 계층에 대한 순환 가중치 행렬(recurrent weight matrix) 및 계층간(inter-layer) 가중치 행렬은 공유된 투영 행렬(projection matrix)을 사용하여 공동으로 (jointly) 압축된다.
하나 이상의 컴퓨터의 시스템이 특정 동작 또는 액션을 수행하도록 구성되었다는 것은 시스템이 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합을 설치하여 작동시 시스템으로 하여금 동작 또는 액션을 수행하게 하는 것을 의미한다. 하나 이상의 컴퓨터의 시스템이 특정 동작 또는 액션을 수행하도록 구성되었다는 것은 명령들을 포함하는 하나 이상의 프로그램이 데이터 처리 장치에 의해 실행될 때 장치로 하여금 동작 또는 액션을 수행하게 함을 의미한다.
본 명세서에서 기술된 요지는 다음의 이점들 중 하나 이상을 실현하도록 특정 실시예들에서 구현될 수 있다. 순환 신경망에서 하나 이상의 순환 계층의 가중치 행렬들을 압축함으로써, 순환 신경망은 보다 효율적으로 데이터를 처리하고 더 적은 데이터 저장(storage)를 사용하도록 구성된다. 특히, 하나 또는 압축된 순환 계층들을 갖는 순환 신경망은, 예를 들어 비압축된 순환 신경망의 전체 크기에 필적하는 성능을 달성하도록 효과적으로 트레이닝될 수 있고, 반면에 적은 데이터 저장소를 사용하고, 상기 비압축된 순환 신경망 내의 대응하는 계층들의 가중치 행렬보다 적은 수의 파라미터를 갖는 상기 압축된 순환 계층들의 압축 가중치 행렬 덕택으로 더 빠르게 입력을 처리할 수 있다. 실제로, 압축 순환 신경망는 계산 공간(computational footprint)이 더 작기 때문에, 압축된 네트워크는 압축되지 않은 네트워크가 모바일 디아비스상에 구동될 수 없을 때에도 제한된 저장 및 처리 능력을 갖는 모바일 디바이스상에서 실시간으로 입력을 처리하도록 효과적으로 구현될 수 있다.
본 명세서의 요지의 하나 이상의 실시예의 세부 사항은 첨부된 도면 및 이하의 설명에서 설명된다. 요지의 다른 특징, 양상 및 장점은 상세한 설명, 도면 및 청구 범위로부터 명백해질 것이다.
도 1은 예시적인 신경망 시스템을 나타낸다.
도 2는 순환 신경망을 압축하기 위한 예시적인 프로세스의 흐름도이다.
도 3은 특정 순환 계층에 대한 계층간 가중치 행렬 및 순환 가중치 행렬을 압축하기 위한 예시적인 프로세스의 흐름도이다.
다양한 도면에서 유사한 참조 번호 및 명칭은 동일한 요소를 나타낸다.
도 1은 예시적인 신경망 시스템(100)을 도시한다. 신경망 시스템(100)은 하나 이상의 위치에서 하나 이상의 컴퓨터상의 컴퓨터 프로그램으로 구현되어, 이하에서 설명되는 시스템, 구성 요소 및 기술이 구현되는 시스템의 예이다.
신경망 시스템(100)은 다수의 시간 스텝들(time steps) 각각에서 각각의 신경망 입력을 수신하고 각 시간 스텝에서 각각의 신경망 출력을 생성하는 기계 학습 시스템이다. 즉, 다수의 시간 스텝들 각각에서, 신경망 시스템(100)은 신경망 입력을 수신하고, 상기 신경망 입력을 처리하여 신경망 출력을 생성한다. 예를 들어, 주어진 시간 스텝에서, 신경망 시스템(100)은 신경망 입력(102)을 수신하여 신경망 출력(142)을 생성할 수 있다.
신경망 시스템(100)은 생성된 신경망 출력을 출력 데이터 저장소에 저장하거나 다른 즉각적인 목적으로 사용하기 위해 상기 신경망 출력을 제공할 수 있다.
신경망 시스템(100)은 임의의 종류의 디지털 데이터 입력을 수신하여 상기 입력에 기초하여 임의의 종류의 스코어(score) 또는 분류 출력을 생성하도록 구성될 수 있다.
예를 들어, 신경망 시스템(100)으로의 입력이 이미지들로부터 추출된 이미지들 또는 특징들인 경우 주어진 이미지에 대해 신경망 시스템(100)에 의해 생성된 출력은 객체 카테고리들의 세트 각각에 대한 스코어일 수 있으며, 각각의 스코어는 이미지가 카테고리에 속하는 객체의 이미지를 포함한다고 추정되는 가능성 (likelihood)을 나타낸다.
다른 예로서, 신경망 시스템(100)으로의 입력이 인터넷 리소스(예컨대, 웹 페이지), 문서, 또는 인터넷 리소스, 문서 또는 문서의 일부로부터 추출된 문서 또는 특징의 일부인 경우, 주어진 인터넷 리소스, 문서 또는 문서의 일부에 대해 상기 신경망 시스템(100)에 의해 생성된 출력은 토픽들의 세트 각각에 대한 스코어일 수 있으며, 각각의 스코어는 인터넷 리소스, 문서 또는 문서 일부가 토픽(topic)에 관한 것이라고 추청되는 가능성을 나타낸다.
다른 예로서, 신경망 시스템(100)으로의 입력이 사용자에 대한 맞춤형 추천 (personalized recommendation)의 특징(features), 예를 들어 추천에 대한 컨텍스트(contaxt)를 특징화(characterizing)하는 특징, 예를 들어 사용자에 의해 취해진 이전의 액션들을 특징화하는 특징인 경우, 신경망 시스템(100)에 의해 생성된 출력은 콘텐츠 아이템들의 세트 각각에 대한 스코어일 수 있고, 각각의 스코어는 사용자가 추천된 콘텐츠 아이템에 대해 호의적으로 응답할 것이라고 추정되는 가능성을 나타낸다. 이러한 예시들 중 일부에서, 신경망 시스템(100)은 사용자에게 컨텐츠 추천을 제공하는 강화된 학습 시스템의 일부이다.
다른 예로서, 신경망 시스템(100)에 대한 입력이 하나의 언어로 된 텍스트인 경우, 신경망 시스템(100)에 의해 생성된 출력은 다른 언어로 된 텍스트의 조각들 (pieces)의 세트 각각에 대한 스코어일 수 있고, 각각의 스코어는 다른 언어로 된 텍스트의 조각이 다른 언어로의 입력 텍스트의 올바른 번역인 것으로 추정되는 가능성을 나타낸다.
다른 예로서, 신경망 시스템(100)에 대한 입력이 발성된 발화(spoken utterance)의 특징들인 경우, 신경망 시스템(100)에 의해 생성된 출력은 텍스트의 조각들(pieces)의 세트 각각에 대한 스코어일 수 있고, 각각의 스코어는 상기 텍스트 조각이 발화에 대한 올바른 전사임을 추정하는 가능성을 나타낸다.
다른 예로서, 신경망 시스템(100)에 대한 입력들이 이미지인 경우, 신경망 시스템(100)에 의해 생성된 출력은 텍스트의 조각들의 세트 각각에 대한 스코어일 수 있고, 각각의 스코어는 상기 텍스트 조각이 입력 이미지에 존재하는 텍스트인 것으로 추정되는 가능성을 나타낸다.
특히, 신경망 시스템(100)은 차례로 다수의 순환 계층, 즉 적어도 압축 순환 계층(compressed recurrent layer)
Figure 112018061168016-pct00001
((120) 및 순환 계층
Figure 112018061168016-pct00002
+1(130)을 포함하는 순환 신경망(110)을 포함한다. 순환 신경망(110)은 각각의 시간 스텝들에서, 상기 시간 스텝에서 신경망 입력을 수신하고 상기 신경망 입력을 처리하여 상기 시간 스텝에서 신경망 출력을 생성하도록 구성된다.
또한, 압축 순환 계층(120)과 순환 계층(130)에 부가하여, 순환 신경망(110)은 하나 이상의 다른 구성 요소들, 예를 들어, 다른 순환 계층, 다른 비-순환 신경망 계층 등을 포함할 수 있다.
예를 들어, 순환 신경망(100)은 서로의 상부에 순서로 스택 형태로 배열된 (120) 및 순환 계층(130), 및 스택 내의 가장 높은 순환 계층 및 선택적으로 스택 내의 다른 순환 계층으로부터 계층 출력을 수신하고, 상기 계층 출력을 처리하여 시간 스텝에서 신경망 출력(142)를 생성하는 출력 계층을 포함하는 다수의 순환 계층들을 포함하는 심층(deep) 순환망일 수 있다.
압축 순환 계층(120)은 시간 스텝들 각각에서, 현재 계층 입력(122)을 수신하고, 상기 현재 계층 입력(122), 순환 계층(120)의 현재 계층 상태 및 순환 계층 (120)의 현재 계층 출력을 처리하여, 신규(new) 계층 출력(126)을 생성하고 상기 현재 계층 상태를 업데이트하여 신규 계층 상태(124)를 생성한다.
순환 신경망(110)의 구성에 따라, 현재 계층 입력(122)은 신경망 입력(102) 또는 순환 신경망(110)의 다른 구성 요소에 의해 생성된 출력일 수 있다.
또한, 제1 스텝 후의 각 시간 스텝에서, 현재 계층 상태는 이전 시간 스텝에서 생성된 신규 계층 상태이다. 제1 시간 스텝에서, 현재 계층 상태는 사전 결정된 초기 계층 상태일 수 있다.
순환 계층(130)은 각각의 시간 스텝에서, 신규 계층 출력(126)을 수신하고 상기 신규 계층 출력(126 ) 및 순환 계층(130)의 현재 계층 상태를 처리하여, 신규 계층 출력(136)을 생성하고 상기 현재 계층 상태를 업데이트하여 신규 계층 상태(134)를 생성한다.
순환 신경망(110)의 구성에 따라, 신규 계층 출력(126)은 다른 유형의 신경망 구성 요소, 예를 들어 출력 계층 또는 다른 유형의 신경망 계층에 대한 입력으로서 순환 신경망(110) 내의 다른 순환 계층에 입력으로서 제공되거나, 순환 신경망(110)의 신경망 출력(142)으로서 제공될 수 있다.
순환 신경망(110) 내의 각 순환 계층은 2개의 대응하는 가중치 행렬인 순환 가중치 행렬 및 계층간 가중치 행렬을 갖는다. 일반적으로, 주어진 시간 스텝에서 처리하는 동안, 주어진 순환 계층에 대한 순환 가중치 행렬은 선행(preceeding) 시간 스텝에서 순환 계층에 의해 생성된 계층 출력에 적용되고, 반면에, 계층간 가중치 행렬은 주어진 시간 스텝에서 순환 계층에 의해 생성된 계층 출력들에 적용된다. 따라서, 주어진 순환 계층에 대한 순환 가중치 행렬은 일반적으로 주어진 순환 계층에 의해 적용될 것이며, 반면에 계층간 가중치 행렬은 일반적으로 시간 스텝에서 주어진 순환 계층에 의해 생성된 계층 출력을 수신하는 다음 계층, 예를 들어 스택에서 상기 주어진 계층 위에 있는 다음 계층에 의해 적용될 것이다.
일부 구현예에서, 순환 신경망(110)은 표준 순환 신경망이고, 따라서 각 순환 계층의 상태는 순환 계층의 계층 출력으로서 또한 사용된다. 즉, 주어진 시간 스텝에 대한 계층의 업데이트된 상태는 또한 주어진 시간 스텝에 대한 계층에 대한 계층 출력으로서 사용된다. 따라서, 신규 계층 출력(136)은 신규 계층 상태(134)와 동일하고 신규 계층 출력(126)은 신규 계층 상태(124)와 동일하다.
이러한 구현예들에서, 압축 순환 계층(120) 또는 순환 계층(130) 모두가 압축되지 않은 경우, 압축 순환 계층(120)은 시간 스텝(t)에서 다음의 수식을 만족하는 계층 출력(
Figure 112018061168016-pct00003
)(126)(및 신규 계층 상태(124))를 생성하도록 구성될 것이다.
Figure 112018061168016-pct00004
여기서,
Figure 112018061168016-pct00005
는 순환 신경망(110)내의 계층(120) 이전의 계층에 대한 계층간 가중치 행렬이고,
Figure 112018061168016-pct00006
는 계층(120) 이전의 계층의 계층 출력이고,
Figure 112018061168016-pct00007
는 순환 계층(120)의 비압축 버전(uncompressed version)에 대한 순환 가중치 행렬이며,
Figure 112018061168016-pct00008
는 현재 계층 상태(및 선행 시간 스탭으로부터의 계층 출력)이고,
Figure 112018061168016-pct00009
은 계층(120)에 대한 바이어스 벡터이며,
Figure 112018061168016-pct00010
는 비선형 활성화 함수(activation function)를 나타낸다.
순환 계층(130)은 다음의 수식을 만족하는 시간 스텝(t)에서 계층 출력 (
Figure 112018061168016-pct00011
)(136)(및 신규 계층 상태(134))를 생성하도록 구성될 것이다.
Figure 112018061168016-pct00012
여기서,
Figure 112018061168016-pct00013
는 계층(120)의 비 압축 버전에 대한 계층간 가중치 행렬이고,
Figure 112018061168016-pct00014
는 순환 계층(120)의 계층 출력(126)이고,
Figure 112018061168016-pct00015
는 순환 계층(130)에 대한 순환 가중치 행렬이고,
Figure 112018061168016-pct00016
는 순환 계층(130)에 대한 현재 계층 상태(및 선행 시간 스텝으로부터의 계층 출력)이며,
Figure 112018061168016-pct00017
는 순환 계층(130)에 대한 바이어스 벡터이고,
Figure 112018061168016-pct00018
는 비선형 활성화 함수를 나타낸다.
그러나, 적어도 압축 순환 계층(120)은 압축되었기 때문에, 상기 압축 순환 계층(120)에 대한 계층간 가중치 행렬 및 순환 가중치 행렬이 수정되었다.
특히, 압축 순환 계층은 상기 순환 및 계층간 행렬이 각각의 낮은 순위 근사 (lower-rank approximation)에 의해 각각 대체된 순환 계층이다. 즉, 압축 순환 계층에 대한 순환 가중치 행렬은 순환 가중치 행렬보다 낮은 순위를 갖는 행렬로 대체되고, 계층간 가중치 행렬은 계층간 가중치 행렬보다 낮은 순위를 갖는 행렬로 대체된다. 그렇게 할 때, 상기 순환 가중치 행렬 및 계층간 가중치 행렬 내의 파라미터의 수가 감소되었다.
특히, 본 명세서에 개시된 압축 방식을 사용하여, 상기 압축 순환 계층(120)은 상기 압축 순환 계층(120)의 순환 가증치 행렬(
Figure 112018061168016-pct00019
) 및 계층간 가중치 행렬(
Figure 112018061168016-pct00020
)을 각각의 제1 및 제2 압축 가중치 행렬(
Figure 112018061168016-pct00021
Figure 112018061168016-pct00022
) 및 대응하는 투영 행렬(
Figure 112018061168016-pct00023
)로 대체함으로써 압축된다. 구체적으로, 순환 가중치 행렬(
Figure 112018061168016-pct00024
) 및 계층간 가중치 행렬 (
Figure 112018061168016-pct00025
)은,
Figure 112018061168016-pct00026
Figure 112018061168016-pct00027
에 의해 정의되고
Figure 112018061168016-pct00028
Figure 112018061168016-pct00029
에 의해 정의되도록 투영 행렬을 결정함으로써 공동으로(jointly) 압축된다. 제1 및 제2 압축 가중치 행렬 및 투영 행렬 각각은 계층간 가중치 행렬 및 순환 가중치 행렬의 순위(rank)보다 낮은 순위를 갖는다. 높은 성능을 유지하면서 파라미터의 수를 줄이기 위해 순환 계층을 압축하는 기술은 도 3을 참조하여 이하에서 보다 상세히 설명된다.
따라서, 압축 후, 순환 신경망(110)이 표준 순환 신경망인 경우, 상기 압축 순환 계층(120)에 의해 생성된 계층 출력은 다음 수식을 만족한다:
Figure 112018061168016-pct00030
,
반면에 순환 계층(130)에 의해 생성된 계층 출력은 다음 수식을 만족한다:
Figure 112018061168016-pct00031
.
일부 다른 구현예들에서, 순환 신경망(110)내의 순환 계층들은 장 단기 메모리(long short-term memory : LSTM) 계층이고 주어진 LSTM 계층의 상태 및 LSTM 계층의 계층 출력은 상이하다. 계층 출력을 생성하기 위해 주어진 LSTM 계층는 현재 계층 입력 및 현재 계층 상태에 다수의 게이트(gates)를 적용하여, 신규 계층 출력을 생성하고 현재 계층 상태를 업데이트하여 신규 계층 상태를 생성한다. 따라서, 계층 출력을 생성하는 단계의 일부로서, LSTM은 일반적으로 현재 계층 입력 및 현재 계층 상태 모두에 다수의 상이한 가중치 행렬을 적용할 것이다. LSTM 계층들의 동작은 Proc. Interspeech, 2014, pp. 338-342에 있는 "대규모 음향 모델링을 위한 장 단기 메모리 순환 신경망 아키텍처(H. Sak, A. Senior 및 F. Beaufays에 의한)"에 보다 상세히 개시되어 있다.
순환 계층이 LSTM 계층일 때, 주어진 LSTM 계층에 대한 순환 가중치 행렬은 주어진 LSTM 계층이 현재 계층 상태에 적용하는 가중치 행렬의 수직 연결(vertical concatenation)으로 간주될 수 있다. 주어진 LSTM 계층에 대한 계층간 가중치 행렬은 다음 LSTM 계층이 주어진 LSTM 계층에 의해 생성된 계층 출력들에 적용하는 가중치 행렬의 수직 연결로 간주될 수 있다.
도 1의 예에서는, 압축 순환 계층(120)만이 압축되는 경우도 있지만, 경우에 따라서 순환 계층들 중 하나 이상 또는 순환 신경망(110) 내의 모든 순환 계층까지도 도 3을 참조하여 아래에서 설명하는 바와 같이 각각 압축될 수 있다.
일부 구현예에서, 투영 행렬이 본 명세서에 기술된 바와 같이 순환 및 계층간 가중치 행렬에 걸쳐 공유될 수 있도록 순환 가중치 행렬과 계층간 가중치 행렬을 공동으로 압축하는 것은 가중치 행렬의 보다 효율적인 파라미터화를 가능하게 한다. 순환 신경망(110)이 음성 인식 모델인 일부 구현예에서, 전술한 기술들은 비 압축된 모델의 5%이내의 단어 에러율을 달성하면서 적어도 68%만큼 순환 신경망 (110)을 압축하는데 사용될 수 있다 .
도 2는 순환 신경망을 압축하기 위한 예시적인 프로세스(200)의 흐름도이다. 편의상, 프로세스(200)는 하나 이상의 위치에 위치하는 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 신경망 시스템, 예컨대, 본 명세서에 따라 적절히 프로그램된 도 1의 신경망 시스템(100)은 프로세스(200)를 수행할 수 있다.
시스템은 비 압축 순환 신경망을 트레이닝 데이터에 대해 트레이닝하여, 상기 비 압축 순환 신경망의 계층들의 가중치 행렬내에 있는 파라미터들의 트레이닝된 값을 결정한다(단계 202). 예를 들어, 시스템은 네트워크 내에 있는 임의의 순환 계층들이 압축되기 전에 도 1의 순환 신경망(110)을 트레이닝할 수 있다. 시스템은 종래의 순환 신경망 트레이닝 기술, 예를 들어 시간에 따른 역전파 (backpropagation)를 갖는 통계적 기울기 하강(stochastic gradient descent) 기법을 사용하여 비압축 순환 신경망을 트레이닝할 수 있다.
시스템은 순환 신경망에서 하나 이상의 순환 계층을 압축한다(단계 204). 특히, 압축될 각각의 순환 계층에 대해, 시스템은 제1 압축 가중치 행렬(
Figure 112018061168016-pct00032
) 및 투영 행렬(
Figure 112018061168016-pct00033
)을 생성하여 상기 제1 압축 가중치 행렬과 투영 행렬의 곱(product)이 순환 계층의 순환 가중치 행렬(
Figure 112018061168016-pct00034
)을 근사화하고(approximates), 상기 제1 압축 가중치 행렬 (
Figure 112018061168016-pct00035
)과 투영 행렬(
Figure 112018061168016-pct00036
)에 기초하여 제2 압축 기중치 행렬(
Figure 112018061168016-pct00037
)을 생성하여 상기 제2 압축 가중치 행렬과 투영 행렬의 곱이 순환 계층의 계층간 가중치 행렬을 근사화한다. 특정 순환 계층을 압축하는 단계는 도 3을 참조하여 아래에서 보다 상세하게 기술된다. 주어진 계층의 압축은 순환 가중치 행렬과 상기 계층의 계층간 가중치 행렬에만 의존하기 때문에(즉, 임의 다른 계층들의 행렬에 의존하는 것이 아니라), 시스템은 단일 순환 계층, 다수의 순환 계층 또는 순환 신경망내의 모든 순환 계층들을 압축할 수 있다.
시스템은 압축 가중치 행렬들로 순환 신경망을 재구성한다(단계 206). 즉, 압축된 각 순환 계층에 대해, 시스템은 상기 계층에 대한 순환 가중치 행렬을 제1 압축 가중치 행렬 및 투영 행렬의 곱으로 대체하고, 상기 계층에 대한 계층간 가중치 행렬은 제2 압축 가중치 행렬 및 투영 행렬의 곱으로 대체한다. 제1 압축 가중치 행렬과 투영 행렬의 곱은 순환 가중치 행렬보다 낮은 순위(rank)이고, 제2 압축 가중치 행렬 및 투영 행렬의 곱은 상기 계층의 계층간 가중치 행렬보다 낮은 랭크이기 때문에, 행렬은 비압축된 신경망에서 대응하는 행렬보다 적은 수의 파라미터들을 포함한다.
선택적으로, 순환 신경망을 재구성한 이후에, 시스템은 투영 행렬 및 압축 가중치 행렬의 순위를 유지하면서 즉, 투영 행렬과 압축 가중치 행렬의 순위를 증가시키지 않도록 제한하면서 상기 파리마터들의 트레이닝된 값을 추가로 조정하기 위해 상기 재구성된 신경망을 추가적인 트레이닝 데이터에 대해 트레이닝시킴으로써 압축 신경망의 성능을 미세 조정할 수 있다.
시스템은 트레이닝된 신경망, 즉 신경망 입력들을 처리하는데 효과적으로 사용될 수 있는 트레이닝된 순환 신경망을 인스턴스화하는데 사용하기 위해 상기 재구성된 신경망의 가중치 행렬을 저장한다(단계 208). 일부 경우, 가중치 행렬을 저장하는 것에 부가하여 또는 그 대신에, 시스템은 트레이닝된 순환 신경망을 구현하는데 사용하기 위해 신경망의 구성을 정의하는 가중치 행렬 및 다른 데이터를 다른 시스템으로 전송할 수 있다. 예를 들어, 시스템은 구성 데이터를 모바일 디아비스로 전송하여 압축된 순환 신경망이 모바일 디바이스에 구현되도록 할 수 있다.
도 3은 특정 순환 계층에 대한 계층간 가중치 행렬 및 순환 가중치 행렬을 압축하기 위한 예시적인 프로세스(300)의 흐름도이다. 편의상, 프로세스(300)는 하나 이상의 위치에 위치하는 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 신경망 시스템, 예를 들어 본 명세서에 따라 적절하게 프로그램된 도 1의 신경망 시스템(100)은 프로세스(300)를 수행할 수 있다.
시스템은 특정 순환 계층에 대한 순환 가중치 행렬(
Figure 112018061168016-pct00038
)의 특이값 분해 (SVD: singular value decomposition)를 결정한다(단계 302). 상기 순환 가중치 행렬의 특이값 분해는 행렬(
Figure 112018061168016-pct00039
)을 제1 단위 행렬(unitary matrix)(U), 직각 대각(선) 행렬(rectangular diagonal matrix)(Σ) 및 제2 단위 행렬(V)로 분해하는 것이다. 특히, SVD는 다음 수식을 만족한다:
Figure 112018061168016-pct00040
.
시스템은 공지된 SVD 분해 기술을 사용하여 순환 가중치 행렬의 SVD를 결정할 수 있다. 예를 들어, 시스템은 먼저 순환 가중치 행렬을 이중 대각(bidiagonal matrix) 행렬로 감소시킨 다음, 반복적 방법, 예를 들어 QR 알고리즘의 변동 (variant)을 사용하여 이중 대각 행렬의 SVD를 계산할 수 있다.
시스템은 제1 압축 가중치 행렬(
Figure 112018061168016-pct00041
)과 투영 행렬(
Figure 112018061168016-pct00042
)을 생성하기 위해 SVD를 절단(truncates)한다(단계 304). 특히, 시스템은 (i) 직각 대각 행렬(Σ) 내의 상위(top), 즉 가장 높은,
Figure 112018061168016-pct00043
값을 유지하고 나머지 값들은 0으로 설정하고, (ii) 제1 단위 행렬(U)의 각 단일 벡터, 즉 열(column)에서 상위
Figure 112018061168016-pct00044
값을 유지하고 나머지 값들은 0로 설정하며, (ⅲ) 제2 단위 행렬(V)의 각 단일 벡터, 즉 열에서 상위
Figure 112018061168016-pct00045
값을 유지하고 나머지 값들은 0로 설정함으로써 SVD를 절단한다.
일반적으로,
Figure 112018061168016-pct00046
은 가중치 행렬의 차원보다 작으며 순환 계층에 적용되는 압축 정도를 제어하도록 구성된 값이다. 즉,
Figure 112018061168016-pct00047
의 값이 작을수록 적용되는 압축 정도가 높아진자.
일부 구현예에서,
Figure 112018061168016-pct00048
은 사전 결정된 값이다.
일부 다른 구현예에서, 시스템은 절단된 SVD가 상기 SVD 동작에서 설명된 변동량(variance)의 사전 결정된 임계 비율(threshold fraction)(τ)을 유지하도록
Figure 112018061168016-pct00049
을 결정한다. 특히, 시스템은
Figure 112018061168016-pct00050
을, (i) 직각 대각 행렬(Σ)내의 상위, 즉 가장 높은,
Figure 112018061168016-pct00051
값의 제곱의 합과 (ii) 직각 대각 행렬(Σ)내의 모든 값의 제곱의 합의 비율 (ratio)이 여전히 τ보다 작지만 가장 큰 값이 되도록 설정할 수 있다.
이러한 구현예에서, 시스템이 순환 신경망 내에서 다수의 순환 계층을 압축한다면,
Figure 112018061168016-pct00052
의 값은 다수의 계층 사이에서 다르게 나타날 수 있는데, 이는 상이한
Figure 112018061168016-pct00053
이 상이한 행렬의 SVD에 대한 위의 기준을 만족시키기 때문이다.
일단 시스템이 절단된 제1 단위 행렬(
Figure 112018061168016-pct00054
), 절단된 사각 대각 행렬(
Figure 112018061168016-pct00055
) 및 절단된 제2 단위 행렬(
Figure 112018061168016-pct00056
)을 생성하기 위해 SVD를 절단하면, 시스템은 제1 압축 가중치 행렬(
Figure 112018061168016-pct00057
)은
Figure 112018061168016-pct00058
와 동일하게 설정하고 투영 행렬(
Figure 112018061168016-pct00059
)은
Figure 112018061168016-pct00060
와 동일하게 설정할 수 있다.
시스템은 제1 압축 가중치 행렬(
Figure 112018061168016-pct00061
)과 투영 행렬(
Figure 112018061168016-pct00062
)로부터 제2 압축 가중치 행렬(
Figure 112018061168016-pct00063
)을 결정한다(단계 306). 특히, 시스템은 다음의 최소 제곱 문제를 풀어 제2 압축된 가중치 행렬을 결정한다 :
Figure 112018061168016-pct00064
Figure 112018061168016-pct00065
는 행렬(X)의 프로베니우스 표준(Frobenius norm)을 나타낸다.
본 명세서에서 설명된 요지 및 기능적 동작의 실시예들은 본 명세서에 개시된 구조 및 그들의 구조적 등가물 또는 이들 중 하나 이상의 조합을 포함하여, 디지털 전자 회로, 유형으로 구현된 컴퓨터 소프트웨어 또는 펌위어, 컴퓨터 하드웨어에서 구현될 수 있다. 본 명세서에서 설명된 요지의 실시예들은 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의한 실행 또는 데이터 처리 장치의 동작을 제어하기 위한 유형의 비일시적인 프로그램 캐리어(program carrier)상에 인코딩된 컴퓨터 프로그램 명령들의 하나 이상의 모듈로서 구현될 수 있다. 선택적으로 또는 부가적으로, 프로그램 명령들은 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로의 송신을 위해 정보를 인코딩하기 위해 생성된, 예를 들어 기계에 의해 생성된 전기적, 광학적 또는 전자기 신호와 같은 인위적으로 생성된 전파 신호상에서 인코딩될 수 있다. 컴퓨터 저장 매체는 기계 판독가능 저장 디바이스, 기계 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스 또는 이들 중 하나 이상의 조합일 수 있다.
"데이터 처리 장치"라는 용어는 데이터 처리 하드웨어를 의미하며, 예를 들어 프로그램 가능 프로세서, 컴퓨터 또는 복수의 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 상기 장치는 또한 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circui)과 같은 특수 목적 논리 회로일 수 있거나 추가로 포함할 수 있다. 상기 장치는 하드웨어 이외에 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 하나 이상의 이들의 조합을 구성하는 코드를 선택적으로 포함할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 모듈, 소프트웨어 모듈, 스크립트 또는 코드로 지칭될 수 있는)은 컴파일된 또는 해석된 언어 또는 선언적 또는 절차적 언어를 포함하는 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램이나 모듈, 구성 요소, 서브 루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 장치(unit)를 포함하여 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일에 해당할 수 있지만 반드시 그런 것은 아니다. 프로그램은 마크업 언어 문서에 저장된 하나 이상의 스크립트와 같은 프로그램 또는 데이터를 보유하고 있는 파일의 일부분, 문제의 프로그램 전용의 단일 파일 또는 다수의 조정 파일(예컨대, 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 한 사이트에 있거나 다수의 사이트에 분산되어 있고 통신 네트워크로 상호 연결된 한 대의 컴퓨터 또는 여러 대의 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에서 설명된 프로세스 및 논리 흐름은 입력 데이터를 조작하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능한 컴퓨터에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 또한 FPGA 또는 ASIC과 같은 특수 목적 논리 회로에 의해 수행될 수 있고, 장치는 또한 특수 목적 논리 회로로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터들은 예를 들어 범용 또는 특수 목적 마이크로 프로세서 또는 둘 모두, 또는 임의의 다른 종류의 중앙 처리 장치를 기반으로 할 수 있다. 일반적으로, 중앙 처리 장치는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령 및 데이터를 수신할 것이다. 컴퓨터의 필수 구성 요소는 명령을 수행하거나 실행하기 위한 중앙 처리 장치 및 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 또한 데이터(예를 들어, 자기, 광 자기 디스크 또는 광 디스크)를 저장하기 위한 하나 이상의 대용량 저장 디바이스로부터 데이터를 수신하거나 데이터를 전송하거나 둘 모두를 위해 동작 가능하게 결합될 것이다. 그러나 컴퓨터에는 그러한 장치가 있을 필요가 없다. 또한, 컴퓨터는 다른 장치, 예를 들어, 모바일 전화기, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 디바이스(예컨대, 범용 직렬 버스(USB) 플래시 드라이브)에 내장될 수 있다.
컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 예를 들어 EPROM, EEPROM 및 플래시 메모리 디바이스와 같은 반도체 메모리 디바이스; 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크; 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함하여, 모든 형태의 비 휘발성 메모리, 매체 및 메모리 디바이스를 포함한다. 상기 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 통합될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에서 기술된 요지의 실시예들은 정보를 사용자에게 디스플레이 하기 위한 CRT(cathode ray tube) 또는 LCD (liquid crystal display) 모니터 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스(예컨대, 마우스 또는 트랙볼)를 갖는 컴퓨터 상에 구현될 수 있다. 다른 종류의 디바이스가 사용자와의 상호 작용을 제공하는데 사용될 수 있는데, 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자가 사용하는 디바이스와 문서를주고 받음으로써 사용자와 상호 작용할 수 있는데, 이는 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 디바이스상의 웹 브라우저로 웹 페이지를 전송함으로써 수행될 수 있다.
본 명세서에서 설명된 요지의 실시예는 데이터 서버와 같은 백 엔드 구성 요소 또는 애플리케이션 서버와 같은 미들웨어 구성 요소, 또는 사용자가 본 명세서에 기술된 요지의 구현예와 상호 작용할 수 있는 그래픽 사용자인터페이스 또는 웹 브라우저를 갖는 클라이언트 컴퓨터와 같은 프론트 엔드 구성 요소, 또는 하나 이상의 백 엔드, 미들웨어 또는 프론트 엔드 구성 요소의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 구성 요소는 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 접속될 수 있다. 통신 네트워크의 예는 근거리 통신망( "LAN") 및 광역 통신망( "WAN"), 예를 들어 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되며 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다.
본 명세서는 다수의 구체적인 구현 세부 사항을 포함하지만, 이들은 임의의 발명 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안되며, 오히려 특정 발명의 특정 실시예에 특정될 수 있는 특징에 대한 설명으로 해석되어야 한다. 별도의 실시예와 관련하여 본 명세서에서 설명되는 특정 특징은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 문맥에서 설명된 다양한 특징은 또한 다수의 실시예에서 개별적으로 또는 임의의 적합한 서브 조합으로 구현될 수 있다. 더욱이, 특징들은 특정 조합으로 작용하고 심지어 초기에는 그러한 것으로서 주장되는 경우 조차도 상기에서 설명될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우 조합으로부터 제거될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형을 지향할 수 있다.
유사하게, 동작들은 특정 순서로 도면들에 도시되어 있지만, 이는 바람직한 동작들을 달성하기 위해, 그러한 동작들이 도시된 순서 또는 순차적인 순서로 수행되거나, 도시된 모든 동작들이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서는 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 또한, 상술된 실시예에서 다양한 시스템 모듈 및 구성 요소의 분리는 모든 실시예에서 그러한 분리를 필요로 하는 것으로 이해되어서는 안되며, 기술된 프로그램 구성 요소 및 시스템들은 일반적으로 단일 소프트웨어 제품에 통합되거나 다수의 소프트웨어 제품들로 패키징될 수 있음을 이해해야 한다
요지의 특정 실시예들이 설명되었다. 다른 실시예들은 다음의 청구항들의 범위 내에 있다. 예를 들어, 청구 범위에 열거된 동작들은 상이한 순서로 수행될 수 있으며 여전히 바람직한 결과를 달성한다. 하나의 예로서, 첨부된 도면에 도시된 프로세스는 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로 하지는 않는다. 특정 구현예에서는, 멀티 태스킹 및 병렬 처리가 유리할 수 있다.

Claims (21)

  1. 시스템으로서,
    하나 이상의 컴퓨터에 의해 구현되는 압축된 순환 신경망(RNN)으로서,
    상기 압축된 RNN은 복수의 순환 계층(recurrent layers)를 포함하고,
    상기 RNN의 복수의 순환 계층 각각은, 복수의 시간 스텝(time step) 각각에 대해, 시간 스텝에 대한 개별(respective) 계층 입력을 수신하고 시간 스텝에 대한 상기 계층 입력을 처리하여 시간 스텝에 대한 개별 계층 출력을 생성하고,
    상기 복수의 순환 계층 각각은 개별 순환 가중치 행렬(Wh) 및 개별 계층간(inter-layer) 가중치 행렬(Wx)을 가지며,
    상기 복수의 순환 계층 중 적어도 하나는 압축된 계층의 개별 순환 가중치 행렬(
    Figure 112020014936335-pct00066
    )은 제1 압축(compressed) 가중치 행렬(
    Figure 112020014936335-pct00067
    ) 및 투영 행렬(
    Figure 112020014936335-pct00068
    )에 의해 정의되고, 압축된 계층의 개별 계층간 가중치 행렬(
    Figure 112020014936335-pct00069
    )은 제2 압축 가중치 행렬(
    Figure 112020014936335-pct00070
    ) 및 투영 행렬(
    Figure 112020014936335-pct00071
    )에 의해 정의되도록 압축되는 것을 특징으로 하는 시스템.
  2. 제1항에 있어서,
    상기 복수의 순환 계층 각각은,
    각 시간 스텝에 대해:
    이전 계층에 대한 계층간 가중치 행렬을 상기 계층에 대한 현재 입력으로 적용하고, 상기 계층에 대한 순환 가중치 행렬을 상기 계층에 대한 순환 입력으로 적용함으로써 시간 스텝에 대한 개별 계층 출력을 생성하는 것을 특징으로 하는 시스템.
  3. 제1항에 있어서,
    압축된 상기 복수의 순환 계층들 중 적어도 하나는,
    각 시간 스텝에 대해:
    상기 제1 압축 가중치 행렬 및 투영 행렬을 상기 계층에 대한 개별 순환 입력으로 적용함으로써 시간 스텝에 대한 개별 계층 출력을 생성하는 것을 특징으로 하는 시스템.
  4. 제1항에 있어서,
    상기 개별 순환 가중치 행렬은,
    상기 제1 압축 가중치 행렬 및 투영 행렬의 곱에 의해 정의되고, 상기 개별 계층간 가중치 행렬은 상기 제2 압축 가중치 행렬 및 투영 행렬의 곱에 의해 정의되는 것을 특징으로 하는 시스템.
  5. 제1항에 있어서,
    상기 RNN은 음향 모델(acoustic model)인 것을 특징으로 하는 시스템.
  6. 제1항에 있어서,
    상기 RNN은 음성 인식 모델인 것을 특징으로 하는 시스템.
  7. 제1항에 있어서,
    상기 RNN의 압축률은 상기 RNN의 비 압축 버전(uncompressed version)의 압축률의 적어도 68%인 것을 특징으로 하는 시스템.
  8. 제7항에 있어서,
    상기 RNN의 워드 에러율(word error rate)은 상기 RNN의 비 압축 버전의 워드 에러율의 5% 이내인 것을 특징으로 하는 시스템.
  9. 순환 신경망(RNN)을 압축하는 방법으로서,
    RNN은 하나 이상의 컴퓨터에 의해 구현되어 복수의 순환 계층을 포함하고,
    상기 RNN의 복수의 순환 계층 각각은, 복수의 시간 스텝(time step)들 각각에 대해, 시간 스텝에 대한 개별 계층 입력을 수신하고 시간 스텝에 대한 상기 계층 입력을 처리하여 시간 스텝에 대한 개별 계층 출력을 생성하도록 구성되고;
    개별 순환 계층은 개별 순환 가중치 행렬(Wh) 및 개별 계층간(inter-layer) 가중치 행렬(Wx)을 가지며, 상기 방법은,
    상기 복수의 순환 계층 중 하나에 대해:
    제1 압축(compressed) 가중치 행렬(
    Figure 112020014936335-pct00072
    ) 및 투영 행렬(
    Figure 112020014936335-pct00073
    )을 생성하는 단계, 상기 제1 압축 가중치 행렬과 상기 투영 행렬의 곱은 상기 복수의 순환 계층들 중 하나의 상기 순환 가중치 행렬을 근사화하고; 및
    상기 제1 압축 가중치 행렬(
    Figure 112020014936335-pct00074
    ) 및 투영 행렬(
    Figure 112020014936335-pct00075
    )에 기초하여, 제2 압축 가중치 행렬(
    Figure 112020014936335-pct00076
    )을 생성하는 단계를 포함하고, 상기 제2 압축 가중치 행렬과 상기 투영 행렬의 곱은 상기 복수의 순환 계층들 중 하나의 상기 계층간 가중치 행렬을 근사화하는 것을 특징으로 하는 방법.
  10. 제9항에 있어서,
    상기 복수의 순환 계층들 중 하나에 대해:
    상기 개별 순환 가중치 행렬을 상기 제1 압축 가중치 행렬 및 상기 투영 행렬의 곱으로 대체하는 단계; 및
    상기 개별 계층간 가중치 행렬을 상기 제2 압축 가중치 행렬 및 상기 투영 행렬의 곱으로 대체하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  11. 제9항에 있어서,
    상기 제1 압축 가중치 행렬(
    Figure 112020014936335-pct00090
    ) 및 상기 투영 행렬(
    Figure 112020014936335-pct00091
    )의 개별 랭크(rank)는 순환 가중치 행렬(Wh)의 랭크보다 작은 것을 특징으로 하는 방법.
  12. 제9항에 있어서,
    상기 제2 압축 가중치 행렬(
    Figure 112020014936335-pct00092
    ) 및 상기 투영 행렬(
    Figure 112020014936335-pct00093
    )의 개별 랭크는 계층간 가중치 행렬(Wx)의 랭크보다 작은 것을 특징으로 하는 방법.
  13. 삭제
  14. 제9항에 있어서,
    특이값 분해(singular value decomposition : SVD) 압축 기술이 상기 제1 압축 가중치 행렬(
    Figure 112020014936335-pct00094
    ) 및 상기 투영 행렬(
    Figure 112020014936335-pct00095
    )을 생성하는데 사용되는 것을 특징으로 하는 방법.
  15. 제9항에 있어서,
    상기 복수의 순환 계층들 중 하나는
    Figure 112020014936335-pct00077
    번째 계층이고, 상기
    Figure 112020014936335-pct00078
    번째 계층에 대한 출력은
    Figure 112020014936335-pct00079
    로 표현될 수 있으며,
    여기서,
    Figure 112020014936335-pct00080
    는 시간(t)에서
    Figure 112020014936335-pct00081
    번째 계층의 히든 계층(hidden layer) 활성화 출력을 나타내고,
    Figure 112020014936335-pct00082
    는 이전의
    Figure 112020014936335-pct00083
    -1번째 계층의 계층간 가중치 행렬을 나타내고,
    Figure 112020014936335-pct00084
    Figure 112020014936335-pct00085
    번째 계층의 바이어스 벡터를 나타내며,
    Figure 112020014936335-pct00086
    는 비선형 활성화 함수를 나타내는 것을 특징으로 하는 방법.
  16. 제9항에 있어서,
    상기 RNN은 LSTM(long short-term memory) RNN인 것을 특징으로 하는 방법.
  17. 제9항에 있어서,
    상기 제1 압축 가중치 행렬(
    Figure 112020014936335-pct00096
    ), 상기 투영 행렬(
    Figure 112020014936335-pct00097
    ) 및 상기 제2 압축 가중치 행렬(
    Figure 112020014936335-pct00098
    )를 생성하기 전에 상기 RNN을 트레이닝하는 단계; 및
    상기 제1 압축 가중치 행렬(
    Figure 112020014936335-pct00099
    ), 상기 투영 행렬(
    Figure 112020014936335-pct00100
    ) 및 상기 제2 압축 가중치 행렬(
    Figure 112020014936335-pct00101
    )를 생성한 후 상기 RNN을 다시 트레이닝하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  18. 제9항에 있어서,
    상기 RNN은 음향 모델인 것을 특징으로 하는 방법.
  19. 제9항에 있어서,
    상기 RNN은 음성 인식 모델인 것을 특징으로 하는 방법.
  20. 시스템으로서,
    하나 이상의 컴퓨터들; 및
    상기 하나 이상의 컴퓨터들에 의해 실행될 때 하나 이상의 컴퓨터들로 하여금 제10항 내지 제12항 및 제14항 내지 제19항 중의 임의의 한 항의 개별 방법의 동작들을 수행하도록 동작 가능한 명령들을 저장하는 하나 이상의 저장 디바이스를 포함하는 것을 특징으로 하는 시스템.
  21. 비-일시적 컴퓨터 저장 매체로서,
    하나 이상의 컴퓨터에 의해 실행될 때, 상기 하나 이상의 컴퓨터로 하여금 제10항 내지 제12항 및 제14항 내지 제19항 중의 임의의 한 항의 개별 방법의 동작들을 수행하게 하는 동작 가능한 명령들로 인코딩된 것을 특징으로 하는 비-일시적 컴퓨터 저장 매체.
KR1020187017732A 2016-02-03 2016-12-28 압축된 순환 신경망 모델 KR102100977B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662290624P 2016-02-03 2016-02-03
US62/290,624 2016-02-03
PCT/US2016/068913 WO2017136070A1 (en) 2016-02-03 2016-12-28 Compressed recurrent neural network models

Publications (2)

Publication Number Publication Date
KR20180084988A KR20180084988A (ko) 2018-07-25
KR102100977B1 true KR102100977B1 (ko) 2020-04-14

Family

ID=57882138

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187017732A KR102100977B1 (ko) 2016-02-03 2016-12-28 압축된 순환 신경망 모델

Country Status (7)

Country Link
US (2) US10878319B2 (ko)
EP (1) EP3374932B1 (ko)
JP (1) JP6706326B2 (ko)
KR (1) KR102100977B1 (ko)
CN (1) CN107038476A (ko)
DE (2) DE202016008253U1 (ko)
WO (1) WO2017136070A1 (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109155003B (zh) * 2016-02-05 2023-09-15 渊慧科技有限公司 生成神经网络
US10783535B2 (en) 2016-05-16 2020-09-22 Cerebri AI Inc. Business artificial intelligence management engine
US10599935B2 (en) * 2017-02-22 2020-03-24 Arm Limited Processing artificial neural network weights
US10762563B2 (en) 2017-03-10 2020-09-01 Cerebri AI Inc. Monitoring and controlling continuous stochastic processes based on events in time series data
US10402723B1 (en) * 2018-09-11 2019-09-03 Cerebri AI Inc. Multi-stage machine-learning models to control path-dependent processes
US11037330B2 (en) * 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
US11216437B2 (en) 2017-08-14 2022-01-04 Sisense Ltd. System and method for representing query elements in an artificial neural network
US11106975B2 (en) * 2017-10-20 2021-08-31 Asapp, Inc. Fast neural network implementations by increasing parallelism of cell computations
WO2019078885A1 (en) * 2017-10-20 2019-04-25 Google Llc PARALLEL EXECUTION OF OPERATIONS OF ACTIVATION UNITS WITH RELEASE
US11556775B2 (en) * 2017-10-24 2023-01-17 Baidu Usa Llc Systems and methods for trace norm regularization and faster inference for embedded models
CN109993289B (zh) 2017-12-30 2021-09-21 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109993292B (zh) 2017-12-30 2020-08-04 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109993290B (zh) 2017-12-30 2021-08-06 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
CN109993291B (zh) * 2017-12-30 2020-07-07 中科寒武纪科技股份有限公司 集成电路芯片装置及相关产品
EP3624019A4 (en) 2017-12-30 2021-03-24 Cambricon Technologies Corporation Limited CHIP DEVICE WITH INTEGRATED CIRCUIT AND ASSOCIATED PRODUCT
US11586924B2 (en) * 2018-01-23 2023-02-21 Qualcomm Incorporated Determining layer ranks for compression of deep networks
US10657426B2 (en) * 2018-01-25 2020-05-19 Samsung Electronics Co., Ltd. Accelerating long short-term memory networks via selective pruning
US11593068B2 (en) * 2018-02-27 2023-02-28 New York University System, method, and apparatus for recurrent neural networks
CN110533157A (zh) * 2018-05-23 2019-12-03 华南理工大学 一种基于svd和剪枝用于深度循环神经网络的压缩方法
EP3735658A1 (en) * 2018-07-12 2020-11-11 Huawei Technologies Co. Ltd. Generating a compressed representation of a neural network with proficient inference speed and power consumption
JP2020034625A (ja) * 2018-08-27 2020-03-05 日本電信電話株式会社 音声認識装置、音声認識方法、及びプログラム
KR20200036352A (ko) 2018-09-28 2020-04-07 삼성전자주식회사 신경망의 동작 방법과 학습 방법 및 그 신경망
US11068942B2 (en) 2018-10-19 2021-07-20 Cerebri AI Inc. Customer journey management engine
CN109523995B (zh) * 2018-12-26 2019-07-09 出门问问信息科技有限公司 语音识别方法、语音识别装置、可读存储介质和电子设备
US11599773B2 (en) 2018-12-27 2023-03-07 Micron Technology, Inc. Neural networks and systems for decoding encoded data
CN109670158B (zh) * 2018-12-27 2023-09-29 北京及客科技有限公司 一种用于根据资讯数据生成文本内容的方法与设备
CN109740737B (zh) * 2018-12-30 2021-02-19 联想(北京)有限公司 卷积神经网络量化处理方法、装置及计算机设备
US11444845B1 (en) * 2019-03-05 2022-09-13 Amazon Technologies, Inc. Processing requests using compressed and complete machine learning models
CN110580525B (zh) * 2019-06-03 2021-05-11 北京邮电大学 适用于资源受限的设备的神经网络压缩方法及***
CN112308197B (zh) * 2019-07-26 2024-04-09 杭州海康威视数字技术股份有限公司 一种卷积神经网络的压缩方法、装置及电子设备
US11922315B2 (en) * 2019-08-26 2024-03-05 Microsoft Technology Licensing, Llc. Neural adapter for classical machine learning (ML) models
US11424764B2 (en) 2019-11-13 2022-08-23 Micron Technology, Inc. Recurrent neural networks and systems for decoding encoded data
WO2021117942A1 (ko) * 2019-12-12 2021-06-17 전자부품연구원 저복잡도 딥러닝 가속 하드웨어 데이터 가공장치
US11188616B2 (en) 2020-02-25 2021-11-30 International Business Machines Corporation Multi-linear dynamical model reduction
KR20210136706A (ko) * 2020-05-08 2021-11-17 삼성전자주식회사 전자 장치 및 이의 제어 방법
WO2021234967A1 (ja) * 2020-05-22 2021-11-25 日本電信電話株式会社 音声波形生成モデル学習装置、音声合成装置、それらの方法、およびプログラム
KR20220064054A (ko) * 2020-11-11 2022-05-18 포항공과대학교 산학협력단 행렬곱 연산량 감소 방법 및 장치
US11563449B2 (en) 2021-04-27 2023-01-24 Micron Technology, Inc. Systems for error reduction of encoded data using neural networks
US11973513B2 (en) 2021-04-27 2024-04-30 Micron Technology, Inc. Decoders and systems for decoding encoded data using neural networks
CA3168515A1 (en) * 2021-07-23 2023-01-23 Cohere Inc. System and method for low rank training of neural networks
US11755408B2 (en) 2021-10-07 2023-09-12 Micron Technology, Inc. Systems for estimating bit error rate (BER) of encoded data using neural networks

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150170020A1 (en) 2013-12-13 2015-06-18 Amazon Technologies, Inc. Reducing dynamic range of low-rank decomposition matrices

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5408424A (en) * 1993-05-28 1995-04-18 Lo; James T. Optimal filtering by recurrent neural networks
ATE474288T1 (de) * 2000-10-13 2010-07-15 Fraunhofer Ges Forschung Verfahren zum überwachten trainieren eines iterativen künstlichen neuronalen netzwerks
WO2011128313A1 (de) * 2010-04-14 2011-10-20 Siemens Aktiengesellschaft Verfahren zum rechnergestützten lernen eines rekurrenten neuronalen netzes zur modellierung eines dynamischen systems
WO2012109407A1 (en) * 2011-02-09 2012-08-16 The Trustees Of Columbia University In The City Of New York Encoding and decoding machine with recurrent neural networks
US8489529B2 (en) * 2011-03-31 2013-07-16 Microsoft Corporation Deep convex network with joint use of nonlinear random projection, Restricted Boltzmann Machine and batch-based parallelizable optimization
US9292787B2 (en) * 2012-08-29 2016-03-22 Microsoft Technology Licensing, Llc Computer-implemented deep tensor neural network
US20140156575A1 (en) * 2012-11-30 2014-06-05 Nuance Communications, Inc. Method and Apparatus of Processing Data Using Deep Belief Networks Employing Low-Rank Matrix Factorization
US9519858B2 (en) * 2013-02-10 2016-12-13 Microsoft Technology Licensing, Llc Feature-augmented neural networks and applications of same
US9728184B2 (en) * 2013-06-18 2017-08-08 Microsoft Technology Licensing, Llc Restructuring deep neural network acoustic models
US9620108B2 (en) * 2013-12-10 2017-04-11 Google Inc. Processing acoustic sequences using long short-term memory (LSTM) neural networks that include recurrent projection layers
US9552526B2 (en) * 2013-12-19 2017-01-24 University Of Memphis Research Foundation Image processing using cellular simultaneous recurrent network
US9721202B2 (en) * 2014-02-21 2017-08-01 Adobe Systems Incorporated Non-negative matrix factorization regularized by recurrent neural networks for audio processing
US9324321B2 (en) * 2014-03-07 2016-04-26 Microsoft Technology Licensing, Llc Low-footprint adaptation and personalization for a deep neural network
US11256982B2 (en) * 2014-07-18 2022-02-22 University Of Southern California Noise-enhanced convolutional neural networks
US20160035344A1 (en) * 2014-08-04 2016-02-04 Google Inc. Identifying the language of a spoken utterance
US10783900B2 (en) * 2014-10-03 2020-09-22 Google Llc Convolutional, long short-term memory, fully connected deep neural networks
US10229356B1 (en) * 2014-12-23 2019-03-12 Amazon Technologies, Inc. Error tolerant neural network model compression
US10223635B2 (en) * 2015-01-22 2019-03-05 Qualcomm Incorporated Model compression and fine-tuning
CN104598972A (zh) * 2015-01-22 2015-05-06 清华大学 一种大规模数据回归神经网络快速训练方法
CN104700828B (zh) * 2015-03-19 2018-01-12 清华大学 基于选择性注意原理的深度长短期记忆循环神经网络声学模型的构建方法
US10515301B2 (en) * 2015-04-17 2019-12-24 Microsoft Technology Licensing, Llc Small-footprint deep neural network
US20160328644A1 (en) * 2015-05-08 2016-11-10 Qualcomm Incorporated Adaptive selection of artificial neural networks
US10091140B2 (en) * 2015-05-31 2018-10-02 Microsoft Technology Licensing, Llc Context-sensitive generation of conversational responses
US20160350653A1 (en) * 2015-06-01 2016-12-01 Salesforce.Com, Inc. Dynamic Memory Network
US10515307B2 (en) * 2015-06-05 2019-12-24 Google Llc Compressed recurrent neural network models
GB201511887D0 (en) * 2015-07-07 2015-08-19 Touchtype Ltd Improved artificial neural network for language modelling and prediction
CN105184369A (zh) * 2015-09-08 2015-12-23 杭州朗和科技有限公司 用于深度学习模型的矩阵压缩方法和装置
US10217018B2 (en) * 2015-09-15 2019-02-26 Mitsubishi Electric Research Laboratories, Inc. System and method for processing images using online tensor robust principal component analysis
US20170083623A1 (en) * 2015-09-21 2017-03-23 Qualcomm Incorporated Semantic multisensory embeddings for video search by text
US10366158B2 (en) * 2015-09-29 2019-07-30 Apple Inc. Efficient word encoding for recurrent neural network language models
US10395118B2 (en) * 2015-10-29 2019-08-27 Baidu Usa Llc Systems and methods for video paragraph captioning using hierarchical recurrent neural networks
US9807473B2 (en) * 2015-11-20 2017-10-31 Microsoft Technology Licensing, Llc Jointly modeling embedding and translation to bridge video and language
US10332509B2 (en) * 2015-11-25 2019-06-25 Baidu USA, LLC End-to-end speech recognition
WO2017095948A1 (en) * 2015-11-30 2017-06-08 Pilot Ai Labs, Inc. Improved general object detection using neural networks
US10832120B2 (en) * 2015-12-11 2020-11-10 Baidu Usa Llc Systems and methods for a multi-core optimized recurrent neural network
US10824941B2 (en) * 2015-12-23 2020-11-03 The Toronto-Dominion Bank End-to-end deep collaborative filtering
US10515312B1 (en) * 2015-12-30 2019-12-24 Amazon Technologies, Inc. Neural network model compaction using selective unit removal
US10482380B2 (en) * 2015-12-30 2019-11-19 Amazon Technologies, Inc. Conditional parallel processing in fully-connected neural networks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150170020A1 (en) 2013-12-13 2015-06-18 Amazon Technologies, Inc. Reducing dynamic range of low-rank decomposition matrices

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A Recurrent Probabilistic Neural Network with Dimensionality Reduction Based on Time-seris Discriminant Component Analysis. Hayashi etl al. 2015.
Compression of Fully-Connected Layer in Neural Network by Kronecker product. Zhou et al. 2015.
LONG SHORT-TERM MEMORY BASED RECURRENT NEURAL NETWORK ARCHITECTURES FOR LARGE VOCABULARY SPEECH RECOGNITION. Hasim Sak et al. 2014.

Also Published As

Publication number Publication date
CN107038476A (zh) 2017-08-11
US20170220925A1 (en) 2017-08-03
JP2019509539A (ja) 2019-04-04
US10878319B2 (en) 2020-12-29
DE202016008253U1 (de) 2017-05-26
EP3374932A1 (en) 2018-09-19
WO2017136070A1 (en) 2017-08-10
KR20180084988A (ko) 2018-07-25
US20210089916A1 (en) 2021-03-25
EP3374932B1 (en) 2022-03-16
US11948062B2 (en) 2024-04-02
DE102016125918A1 (de) 2017-08-03
JP6706326B2 (ja) 2020-06-03

Similar Documents

Publication Publication Date Title
KR102100977B1 (ko) 압축된 순환 신경망 모델
KR102177232B1 (ko) 압축된 순환 신경망 모델들
AU2022201819B2 (en) Batch normalization layers
US20210117801A1 (en) Augmenting neural networks with external memory
CN108351982B (zh) 卷积门控递归神经网络
CN107690663B (zh) 白化神经网络层
WO2019155064A1 (en) Data compression using jointly trained encoder, decoder, and prior neural networks
US20170154262A1 (en) Resizing neural networks
WO2019075267A1 (en) ARTIFICIAL NEURON NETWORK AUTO-SYNCHRONIZATION ACTIVATION LAYERS

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant