KR102100977B1 - 압축된 순환 신경망 모델 - Google Patents
압축된 순환 신경망 모델 Download PDFInfo
- 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
Links
- 238000003062 neural network model Methods 0.000 title 1
- 239000010410 layer Substances 0.000 claims abstract description 199
- 239000011159 matrix material Substances 0.000 claims abstract description 162
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 125
- 238000013528 artificial neural network Methods 0.000 claims abstract description 108
- 230000006835 compression Effects 0.000 claims abstract description 49
- 238000007906 compression Methods 0.000 claims abstract description 49
- 238000000034 method Methods 0.000 claims abstract description 45
- 239000011229 interlayer Substances 0.000 claims abstract description 33
- 230000008569 process Effects 0.000 claims abstract description 22
- 230000000306 recurrent effect Effects 0.000 claims description 10
- 239000004332 silver Substances 0.000 claims description 6
- 229910052709 silver Inorganic materials 0.000 claims description 6
- 238000012549 training Methods 0.000 claims description 6
- 230000004913 activation Effects 0.000 claims description 4
- 238000000354 decomposition reaction Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 4
- 230000006403 short-term memory Effects 0.000 claims description 2
- BQCADISMDOOEFD-UHFFFAOYSA-N Silver Chemical compound [Ag] BQCADISMDOOEFD-UHFFFAOYSA-N 0.000 claims 1
- 238000004590 computer program Methods 0.000 abstract description 12
- 238000013500 data storage Methods 0.000 abstract description 3
- 238000012545 processing Methods 0.000 description 15
- 230000009471 action Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 5
- 230000015654 memory Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 2
- 230000007787 long-term memory Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- ICFJFFQQTFMIBG-UHFFFAOYSA-N phenformin Chemical compound NC(=N)NC(=N)NCCC1=CC=CC=C1 ICFJFFQQTFMIBG-UHFFFAOYSA-N 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000013518 transcription Methods 0.000 description 1
- 230000035897 transcription Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0495—Quantised networks; Sparse networks; Compressed networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/06—Creation of reference templates; Training of speech recognition systems, e.g. adaptation to the characteristics of the speaker's voice
- G10L15/063—Training
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33025—Recurrent artificial neural network
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40326—Singular value decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix 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은 특정 순환 계층에 대한 계층간 가중치 행렬 및 순환 가중치 행렬을 압축하기 위한 예시적인 프로세스의 흐름도이다.
다양한 도면에서 유사한 참조 번호 및 명칭은 동일한 요소를 나타낸다.
도 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) ((120) 및 순환 계층 +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)에서 다음의 수식을 만족하는 계층 출력()(126)(및 신규 계층 상태(124))를 생성하도록 구성될 것이다.
여기서, 는 순환 신경망(110)내의 계층(120) 이전의 계층에 대한 계층간 가중치 행렬이고, 는 계층(120) 이전의 계층의 계층 출력이고, 는 순환 계층(120)의 비압축 버전(uncompressed version)에 대한 순환 가중치 행렬이며, 는 현재 계층 상태(및 선행 시간 스탭으로부터의 계층 출력)이고, 은 계층(120)에 대한 바이어스 벡터이며, 는 비선형 활성화 함수(activation function)를 나타낸다.
여기서, 는 계층(120)의 비 압축 버전에 대한 계층간 가중치 행렬이고, 는 순환 계층(120)의 계층 출력(126)이고, 는 순환 계층(130)에 대한 순환 가중치 행렬이고, 는 순환 계층(130)에 대한 현재 계층 상태(및 선행 시간 스텝으로부터의 계층 출력)이며, 는 순환 계층(130)에 대한 바이어스 벡터이고, 는 비선형 활성화 함수를 나타낸다.
그러나, 적어도 압축 순환 계층(120)은 압축되었기 때문에, 상기 압축 순환 계층(120)에 대한 계층간 가중치 행렬 및 순환 가중치 행렬이 수정되었다.
특히, 압축 순환 계층은 상기 순환 및 계층간 행렬이 각각의 낮은 순위 근사 (lower-rank approximation)에 의해 각각 대체된 순환 계층이다. 즉, 압축 순환 계층에 대한 순환 가중치 행렬은 순환 가중치 행렬보다 낮은 순위를 갖는 행렬로 대체되고, 계층간 가중치 행렬은 계층간 가중치 행렬보다 낮은 순위를 갖는 행렬로 대체된다. 그렇게 할 때, 상기 순환 가중치 행렬 및 계층간 가중치 행렬 내의 파라미터의 수가 감소되었다.
특히, 본 명세서에 개시된 압축 방식을 사용하여, 상기 압축 순환 계층(120)은 상기 압축 순환 계층(120)의 순환 가증치 행렬() 및 계층간 가중치 행렬()을 각각의 제1 및 제2 압축 가중치 행렬( 및 ) 및 대응하는 투영 행렬()로 대체함으로써 압축된다. 구체적으로, 순환 가중치 행렬() 및 계층간 가중치 행렬 ()은, 은 에 의해 정의되고 은 에 의해 정의되도록 투영 행렬을 결정함으로써 공동으로(jointly) 압축된다. 제1 및 제2 압축 가중치 행렬 및 투영 행렬 각각은 계층간 가중치 행렬 및 순환 가중치 행렬의 순위(rank)보다 낮은 순위를 갖는다. 높은 성능을 유지하면서 파라미터의 수를 줄이기 위해 순환 계층을 압축하는 기술은 도 3을 참조하여 이하에서 보다 상세히 설명된다.
따라서, 압축 후, 순환 신경망(110)이 표준 순환 신경망인 경우, 상기 압축 순환 계층(120)에 의해 생성된 계층 출력은 다음 수식을 만족한다:
반면에 순환 계층(130)에 의해 생성된 계층 출력은 다음 수식을 만족한다:
일부 다른 구현예들에서, 순환 신경망(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 압축 가중치 행렬() 및 투영 행렬()을 생성하여 상기 제1 압축 가중치 행렬과 투영 행렬의 곱(product)이 순환 계층의 순환 가중치 행렬()을 근사화하고(approximates), 상기 제1 압축 가중치 행렬 ()과 투영 행렬()에 기초하여 제2 압축 기중치 행렬()을 생성하여 상기 제2 압축 가중치 행렬과 투영 행렬의 곱이 순환 계층의 계층간 가중치 행렬을 근사화한다. 특정 순환 계층을 압축하는 단계는 도 3을 참조하여 아래에서 보다 상세하게 기술된다. 주어진 계층의 압축은 순환 가중치 행렬과 상기 계층의 계층간 가중치 행렬에만 의존하기 때문에(즉, 임의 다른 계층들의 행렬에 의존하는 것이 아니라), 시스템은 단일 순환 계층, 다수의 순환 계층 또는 순환 신경망내의 모든 순환 계층들을 압축할 수 있다.
시스템은 압축 가중치 행렬들로 순환 신경망을 재구성한다(단계 206). 즉, 압축된 각 순환 계층에 대해, 시스템은 상기 계층에 대한 순환 가중치 행렬을 제1 압축 가중치 행렬 및 투영 행렬의 곱으로 대체하고, 상기 계층에 대한 계층간 가중치 행렬은 제2 압축 가중치 행렬 및 투영 행렬의 곱으로 대체한다. 제1 압축 가중치 행렬과 투영 행렬의 곱은 순환 가중치 행렬보다 낮은 순위(rank)이고, 제2 압축 가중치 행렬 및 투영 행렬의 곱은 상기 계층의 계층간 가중치 행렬보다 낮은 랭크이기 때문에, 행렬은 비압축된 신경망에서 대응하는 행렬보다 적은 수의 파라미터들을 포함한다.
선택적으로, 순환 신경망을 재구성한 이후에, 시스템은 투영 행렬 및 압축 가중치 행렬의 순위를 유지하면서 즉, 투영 행렬과 압축 가중치 행렬의 순위를 증가시키지 않도록 제한하면서 상기 파리마터들의 트레이닝된 값을 추가로 조정하기 위해 상기 재구성된 신경망을 추가적인 트레이닝 데이터에 대해 트레이닝시킴으로써 압축 신경망의 성능을 미세 조정할 수 있다.
시스템은 트레이닝된 신경망, 즉 신경망 입력들을 처리하는데 효과적으로 사용될 수 있는 트레이닝된 순환 신경망을 인스턴스화하는데 사용하기 위해 상기 재구성된 신경망의 가중치 행렬을 저장한다(단계 208). 일부 경우, 가중치 행렬을 저장하는 것에 부가하여 또는 그 대신에, 시스템은 트레이닝된 순환 신경망을 구현하는데 사용하기 위해 신경망의 구성을 정의하는 가중치 행렬 및 다른 데이터를 다른 시스템으로 전송할 수 있다. 예를 들어, 시스템은 구성 데이터를 모바일 디아비스로 전송하여 압축된 순환 신경망이 모바일 디바이스에 구현되도록 할 수 있다.
도 3은 특정 순환 계층에 대한 계층간 가중치 행렬 및 순환 가중치 행렬을 압축하기 위한 예시적인 프로세스(300)의 흐름도이다. 편의상, 프로세스(300)는 하나 이상의 위치에 위치하는 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 신경망 시스템, 예를 들어 본 명세서에 따라 적절하게 프로그램된 도 1의 신경망 시스템(100)은 프로세스(300)를 수행할 수 있다.
시스템은 특정 순환 계층에 대한 순환 가중치 행렬()의 특이값 분해 (SVD: singular value decomposition)를 결정한다(단계 302). 상기 순환 가중치 행렬의 특이값 분해는 행렬()을 제1 단위 행렬(unitary matrix)(U), 직각 대각(선) 행렬(rectangular diagonal matrix)(Σ) 및 제2 단위 행렬(V)로 분해하는 것이다. 특히, SVD는 다음 수식을 만족한다:
시스템은 공지된 SVD 분해 기술을 사용하여 순환 가중치 행렬의 SVD를 결정할 수 있다. 예를 들어, 시스템은 먼저 순환 가중치 행렬을 이중 대각(bidiagonal matrix) 행렬로 감소시킨 다음, 반복적 방법, 예를 들어 QR 알고리즘의 변동 (variant)을 사용하여 이중 대각 행렬의 SVD를 계산할 수 있다.
시스템은 제1 압축 가중치 행렬()과 투영 행렬()을 생성하기 위해 SVD를 절단(truncates)한다(단계 304). 특히, 시스템은 (i) 직각 대각 행렬(Σ) 내의 상위(top), 즉 가장 높은, 값을 유지하고 나머지 값들은 0으로 설정하고, (ii) 제1 단위 행렬(U)의 각 단일 벡터, 즉 열(column)에서 상위 값을 유지하고 나머지 값들은 0로 설정하며, (ⅲ) 제2 단위 행렬(V)의 각 단일 벡터, 즉 열에서 상위 값을 유지하고 나머지 값들은 0로 설정함으로써 SVD를 절단한다.
일부 다른 구현예에서, 시스템은 절단된 SVD가 상기 SVD 동작에서 설명된 변동량(variance)의 사전 결정된 임계 비율(threshold fraction)(τ)을 유지하도록 을 결정한다. 특히, 시스템은 을, (i) 직각 대각 행렬(Σ)내의 상위, 즉 가장 높은, 값의 제곱의 합과 (ii) 직각 대각 행렬(Σ)내의 모든 값의 제곱의 합의 비율 (ratio)이 여전히 τ보다 작지만 가장 큰 값이 되도록 설정할 수 있다.
이러한 구현예에서, 시스템이 순환 신경망 내에서 다수의 순환 계층을 압축한다면, 의 값은 다수의 계층 사이에서 다르게 나타날 수 있는데, 이는 상이한 이 상이한 행렬의 SVD에 대한 위의 기준을 만족시키기 때문이다.
일단 시스템이 절단된 제1 단위 행렬(), 절단된 사각 대각 행렬() 및 절단된 제2 단위 행렬()을 생성하기 위해 SVD를 절단하면, 시스템은 제1 압축 가중치 행렬()은 와 동일하게 설정하고 투영 행렬()은 와 동일하게 설정할 수 있다.
시스템은 제1 압축 가중치 행렬()과 투영 행렬()로부터 제2 압축 가중치 행렬()을 결정한다(단계 306). 특히, 시스템은 다음의 최소 제곱 문제를 풀어 제2 압축된 가중치 행렬을 결정한다 :
본 명세서에서 설명된 요지 및 기능적 동작의 실시예들은 본 명세서에 개시된 구조 및 그들의 구조적 등가물 또는 이들 중 하나 이상의 조합을 포함하여, 디지털 전자 회로, 유형으로 구현된 컴퓨터 소프트웨어 또는 펌위어, 컴퓨터 하드웨어에서 구현될 수 있다. 본 명세서에서 설명된 요지의 실시예들은 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의한 실행 또는 데이터 처리 장치의 동작을 제어하기 위한 유형의 비일시적인 프로그램 캐리어(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)
- 시스템으로서,
하나 이상의 컴퓨터에 의해 구현되는 압축된 순환 신경망(RNN)으로서,
상기 압축된 RNN은 복수의 순환 계층(recurrent layers)를 포함하고,
상기 RNN의 복수의 순환 계층 각각은, 복수의 시간 스텝(time step) 각각에 대해, 시간 스텝에 대한 개별(respective) 계층 입력을 수신하고 시간 스텝에 대한 상기 계층 입력을 처리하여 시간 스텝에 대한 개별 계층 출력을 생성하고,
상기 복수의 순환 계층 각각은 개별 순환 가중치 행렬(Wh) 및 개별 계층간(inter-layer) 가중치 행렬(Wx)을 가지며,
상기 복수의 순환 계층 중 적어도 하나는 압축된 계층의 개별 순환 가중치 행렬()은 제1 압축(compressed) 가중치 행렬() 및 투영 행렬()에 의해 정의되고, 압축된 계층의 개별 계층간 가중치 행렬()은 제2 압축 가중치 행렬() 및 투영 행렬()에 의해 정의되도록 압축되는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 복수의 순환 계층 각각은,
각 시간 스텝에 대해:
이전 계층에 대한 계층간 가중치 행렬을 상기 계층에 대한 현재 입력으로 적용하고, 상기 계층에 대한 순환 가중치 행렬을 상기 계층에 대한 순환 입력으로 적용함으로써 시간 스텝에 대한 개별 계층 출력을 생성하는 것을 특징으로 하는 시스템. - 제1항에 있어서,
압축된 상기 복수의 순환 계층들 중 적어도 하나는,
각 시간 스텝에 대해:
상기 제1 압축 가중치 행렬 및 투영 행렬을 상기 계층에 대한 개별 순환 입력으로 적용함으로써 시간 스텝에 대한 개별 계층 출력을 생성하는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 개별 순환 가중치 행렬은,
상기 제1 압축 가중치 행렬 및 투영 행렬의 곱에 의해 정의되고, 상기 개별 계층간 가중치 행렬은 상기 제2 압축 가중치 행렬 및 투영 행렬의 곱에 의해 정의되는 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 RNN은 음향 모델(acoustic model)인 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 RNN은 음성 인식 모델인 것을 특징으로 하는 시스템. - 제1항에 있어서,
상기 RNN의 압축률은 상기 RNN의 비 압축 버전(uncompressed version)의 압축률의 적어도 68%인 것을 특징으로 하는 시스템. - 제7항에 있어서,
상기 RNN의 워드 에러율(word error rate)은 상기 RNN의 비 압축 버전의 워드 에러율의 5% 이내인 것을 특징으로 하는 시스템. - 순환 신경망(RNN)을 압축하는 방법으로서,
RNN은 하나 이상의 컴퓨터에 의해 구현되어 복수의 순환 계층을 포함하고,
상기 RNN의 복수의 순환 계층 각각은, 복수의 시간 스텝(time step)들 각각에 대해, 시간 스텝에 대한 개별 계층 입력을 수신하고 시간 스텝에 대한 상기 계층 입력을 처리하여 시간 스텝에 대한 개별 계층 출력을 생성하도록 구성되고;
개별 순환 계층은 개별 순환 가중치 행렬(Wh) 및 개별 계층간(inter-layer) 가중치 행렬(Wx)을 가지며, 상기 방법은,
상기 복수의 순환 계층 중 하나에 대해:
제1 압축(compressed) 가중치 행렬() 및 투영 행렬()을 생성하는 단계, 상기 제1 압축 가중치 행렬과 상기 투영 행렬의 곱은 상기 복수의 순환 계층들 중 하나의 상기 순환 가중치 행렬을 근사화하고; 및
상기 제1 압축 가중치 행렬() 및 투영 행렬()에 기초하여, 제2 압축 가중치 행렬()을 생성하는 단계를 포함하고, 상기 제2 압축 가중치 행렬과 상기 투영 행렬의 곱은 상기 복수의 순환 계층들 중 하나의 상기 계층간 가중치 행렬을 근사화하는 것을 특징으로 하는 방법. - 제9항에 있어서,
상기 복수의 순환 계층들 중 하나에 대해:
상기 개별 순환 가중치 행렬을 상기 제1 압축 가중치 행렬 및 상기 투영 행렬의 곱으로 대체하는 단계; 및
상기 개별 계층간 가중치 행렬을 상기 제2 압축 가중치 행렬 및 상기 투영 행렬의 곱으로 대체하는 단계를 더 포함하는 것을 특징으로 하는 방법. - 삭제
- 제9항에 있어서,
상기 RNN은 LSTM(long short-term memory) RNN인 것을 특징으로 하는 방법. - 제9항에 있어서,
상기 RNN은 음향 모델인 것을 특징으로 하는 방법. - 제9항에 있어서,
상기 RNN은 음성 인식 모델인 것을 특징으로 하는 방법. - 시스템으로서,
하나 이상의 컴퓨터들; 및
상기 하나 이상의 컴퓨터들에 의해 실행될 때 하나 이상의 컴퓨터들로 하여금 제10항 내지 제12항 및 제14항 내지 제19항 중의 임의의 한 항의 개별 방법의 동작들을 수행하도록 동작 가능한 명령들을 저장하는 하나 이상의 저장 디바이스를 포함하는 것을 특징으로 하는 시스템. - 비-일시적 컴퓨터 저장 매체로서,
하나 이상의 컴퓨터에 의해 실행될 때, 상기 하나 이상의 컴퓨터로 하여금 제10항 내지 제12항 및 제14항 내지 제19항 중의 임의의 한 항의 개별 방법의 동작들을 수행하게 하는 동작 가능한 명령들로 인코딩된 것을 특징으로 하는 비-일시적 컴퓨터 저장 매체.
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) | CN107038476B (ko) |
DE (2) | DE102016125918A1 (ko) |
WO (1) | WO2017136070A1 (ko) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3398119B1 (en) * | 2016-02-05 | 2022-06-22 | Deepmind Technologies Limited | Generative neural networks for generating images using a hidden canvas |
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 |
US11321320B2 (en) * | 2017-08-14 | 2022-05-03 | Sisense Ltd. | System and method for approximating query results using neural networks |
US11216437B2 (en) | 2017-08-14 | 2022-01-04 | Sisense Ltd. | System and method for representing query elements in an artificial neural network |
US11720781B2 (en) * | 2017-10-20 | 2023-08-08 | Deepmind Technologies Limited | Parallel execution of gated activation unit operations |
US11106975B2 (en) * | 2017-10-20 | 2021-08-31 | Asapp, Inc. | Fast neural network implementations by increasing parallelism of cell computations |
US11556775B2 (en) * | 2017-10-24 | 2023-01-17 | Baidu Usa Llc | Systems and methods for trace norm regularization and faster inference for embedded models |
CN109993291B (zh) * | 2017-12-30 | 2020-07-07 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
WO2019129302A1 (zh) | 2017-12-30 | 2019-07-04 | 北京中科寒武纪科技有限公司 | 集成电路芯片装置及相关产品 |
CN109993289B (zh) | 2017-12-30 | 2021-09-21 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN109993290B (zh) | 2017-12-30 | 2021-08-06 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
CN109993292B (zh) | 2017-12-30 | 2020-08-04 | 中科寒武纪科技股份有限公司 | 集成电路芯片装置及相关产品 |
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 |
KR20210074681A (ko) * | 2019-12-12 | 2021-06-22 | 한국전자기술연구원 | 저복잡도 딥러닝 가속 하드웨어 데이터 가공장치 |
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 | 포항공과대학교 산학협력단 | 행렬곱 연산량 감소 방법 및 장치 |
US11973513B2 (en) | 2021-04-27 | 2024-04-30 | Micron Technology, Inc. | Decoders and systems for decoding encoded data using neural networks |
US11563449B2 (en) | 2021-04-27 | 2023-01-24 | Micron Technology, Inc. | Systems for error reduction of encoded data using neural networks |
US20230057387A1 (en) * | 2021-07-23 | 2023-02-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)
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)
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 |
DE60142582D1 (de) * | 2000-10-13 | 2010-08-26 | Fraunhofer Ges Forschung | Verfahren zum überwachten trainieren eines iterativen künstlichen neuronalen netzwerks |
EP2543006A1 (de) * | 2010-04-14 | 2013-01-09 | 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 |
CN104598972A (zh) * | 2015-01-22 | 2015-05-06 | 清华大学 | 一种大规模数据回归神经网络快速训练方法 |
US10223635B2 (en) * | 2015-01-22 | 2019-03-05 | Qualcomm Incorporated | Model compression and fine-tuning |
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 |
US10078794B2 (en) * | 2015-11-30 | 2018-09-18 | Pilot Ai Labs, Inc. | System and method for 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 |
-
2016
- 2016-12-28 JP JP2018534819A patent/JP6706326B2/ja active Active
- 2016-12-28 EP EP16829466.8A patent/EP3374932B1/en active Active
- 2016-12-28 WO PCT/US2016/068913 patent/WO2017136070A1/en active Application Filing
- 2016-12-28 KR KR1020187017732A patent/KR102100977B1/ko active IP Right Grant
- 2016-12-29 US US15/394,617 patent/US10878319B2/en active Active
- 2016-12-30 DE DE102016125918.7A patent/DE102016125918A1/de active Pending
- 2016-12-30 DE DE202016008253.2U patent/DE202016008253U1/de active Active
- 2016-12-30 CN CN201611262293.6A patent/CN107038476B/zh active Active
-
2020
- 2020-12-04 US US17/112,966 patent/US11948062B2/en active Active
Patent Citations (1)
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)
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 |
---|---|
US11948062B2 (en) | 2024-04-02 |
JP6706326B2 (ja) | 2020-06-03 |
CN107038476A (zh) | 2017-08-11 |
KR20180084988A (ko) | 2018-07-25 |
CN107038476B (zh) | 2024-08-02 |
US20210089916A1 (en) | 2021-03-25 |
JP2019509539A (ja) | 2019-04-04 |
DE202016008253U1 (de) | 2017-05-26 |
US10878319B2 (en) | 2020-12-29 |
DE102016125918A1 (de) | 2017-08-03 |
EP3374932B1 (en) | 2022-03-16 |
EP3374932A1 (en) | 2018-09-19 |
WO2017136070A1 (en) | 2017-08-10 |
US20170220925A1 (en) | 2017-08-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) | 卷积门控递归神经网络 | |
CN108572940B (zh) | 使用矩阵计算单元的深度级联 | |
CN107690663B (zh) | 白化神经网络层 | |
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 |