KR20190103011A - 거리 기반 딥 러닝 - Google Patents

거리 기반 딥 러닝 Download PDF

Info

Publication number
KR20190103011A
KR20190103011A KR1020190019231A KR20190019231A KR20190103011A KR 20190103011 A KR20190103011 A KR 20190103011A KR 1020190019231 A KR1020190019231 A KR 1020190019231A KR 20190019231 A KR20190019231 A KR 20190019231A KR 20190103011 A KR20190103011 A KR 20190103011A
Authority
KR
South Korea
Prior art keywords
vector
distance
item
unclassified
classified
Prior art date
Application number
KR1020190019231A
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 KR20190103011A publication Critical patent/KR20190103011A/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
    • 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/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/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

신경망을 위한 방법은 미분류 항목을 기술하는 출력 특성 벡터와 각각 분류 항목의 집합 중 하나의 분류 항목을 기술하는 복수의 검증된 특성 벡터 각각과의 거리 벡터를 동시에 계산하는 단계를 포함한다. 본 방법은 각 거리 벡터에 대한 유사 지수를 동시에 계산하는 단계 및 상기 복수의 계산된 유사 지수의 유사 지수 벡터를 생성하는 단계를 포함한다. 신경망을 위한 시스템은 연상 메모리 어레이, 입력 배열자, 은닉층 컴퓨터, 및 출력 처리기를 포함한다. 입력 배열자는 메모리 어레이에 저장된 미분류 항목을 기술하는 정보를 조작한다. 은닉층 컴퓨터는 은닉층 벡터를 계산한다. 출력 처리기는 출력 특성 벡터를 계산하고, 출력 특성 벡터와 복수의 검증된 특성 벡터 각각 사이의 거리 벡터를 동시에 계산하며, 동시에 각 거리 벡터에 대한 유사 지수를 계산한다.

Description

거리 기반 딥 러닝{DISTANCE BASED DEEP LEARNING}
본 발명은 일반적으로 연상 메모리 디바이스에 관한 것으로, 특히 연상 메모리 디바이스에서의 딥 러닝에 관한 것이다.
신경망(Neural network)은 일반적으로 테스크-특정 프로그래밍 없이 예시를 고려하여 테스크를 수행하는 것을 배우는 컴퓨팅 시스템이다. 전형적인 신경망은 층으로 조직된 노드의 상호 연결된 그룹이며, 각 층은 입력에 대해 상이한 변환을 수행할 수 있다. 신경망은 수학적으로 층의 노드의 활성화를 벡터로 표현할 수 있고, 인접한 층의 노드 사이의 상호 연결들의 가중치를 행렬로 나타낼 수 있다. 네트워크 기능은 벡터와 행렬 간에 수행되는 일련의 수학적 연산과 벡터와 행렬에 저장된 값에 대해 수행되는 비선형 연산이다.
본 명세서 전반에 걸쳐, 행렬은 대문자로 진하게, 예를 들어 A로 표현되고, 벡터는 소문자로 진하게, 예를 들어 a로 표현되며, 벡터와 행렬의 엔트리(entry)는 기울여서 예를 들어 A a로 표현된다. 따라서, 행렬 A의 엔트리 i, jA ij 로 표시되고, 행렬 A의 행 i A i- 로 표시되며, 행렬 A의 열 j A -j 로 표시되고, 벡터 a의 엔트리 ia i 로 표시된다.
순환 신경망(Recurrent Neural network, RNN)은 현재 계산의 출력이 이전 계산의 값에 의존할 때 일련의 값에 대한 연산에 유용한 특별한 유형의 신경망이다. 장-단기 메모리(long short-term memory, LSTM)와 게이트 순환 유닛(gated recurrent unit, GRU)은 RNN의 예시이다.
(순환 및 비순환 모두에서) 네트워크의 출력 특성 벡터는 m개의 수치 값을 저장하는 벡터 h이다. 언어 모델링에서 h는 출력 임배딩(embedding) 벡터 (어휘에 단어나 구를 나타내는 숫자(실수, 정수, 유한 정밀도 등)의 벡터) 일 수 있으며, 다른 딥러닝 분야에서는 h가 문제인 대상의 특성일 수 있다. 응용 프로그램은 벡터 h로 표현된 항목을 결정해야 할 수 있다. 언어 모델링에서, h는 응용 프로그램이 식별할 필요가 있는 v개의 단어의 어휘 중 하나의 단어를 나타낼 수 있다. v가 매우 클 수 있다는 것을 알 수 있는데, 예를 들어, v는 영어에 대해 약 170,000이다.
도 1의 RNN은 접힌 것(100A)과 펼친 것(100B)의 2가지 표현으로 도시된다. 펼친 표현형(100B)은 시간 t-1, t, 및 t+1에서 시간에 따라 RNN을 기술한다. 접힌 표현형에서, 벡터 x는 "일반" 입력 벡터이고 펼친 표현형에서 x t는 시간 t에서의 입력 벡터를 나타낸다. 입력 벡터 x t는 RNN에 의해 처리되는 일련의 항목들의 항목을 나타내는 것으로 이해될 수 있다. 벡터 x t는 "원 핫(one-hot)" 벡터, 즉 위치 k에서의 단일 "1"을 제외하고는 모두 0을 갖는 벡터에 의해, v 항목의 집합 중 항목 k를 나타낼 수 있다. 행렬 W, U, 및 Z는 계획된 연산에 맞게 특정 치수로 작성된 파라미터 행렬이다. 행렬은 무작위 값으로 시작되고, RNN의 작동 중, 훈련 단계 중, 때로는 추론 단계 중에 또한 업데이트 된다.
접힌 표현형에서 벡터 h는 RNN의 은닉층을 나타낸다. 펼친 표현형에서, h t 는 식 1에 따라 시간 t-1에서의 은닉층의 값으로부터 계산된 시간 t에서의 은닉층의 값이다.
h t = f(U*x + W*h t-1) 식 1
접힌 표현형에서, y는 출력 벡터를 나타낸다. 펼친 표현형에서, y t는 v개의 항목들의 집합 내의 각각의 항목에 대해 시간 t에서의 항목의 클래스가 될 확률을 가지는 시간 t에서의 출력 벡터이다. 확률은 식 2에 따라 SoftMax와 같은 비선형 함수를 사용하여 계산될 수 있다.
y t = softmax(Z*h t) 식 2
Zh t의 크기를 y t의 크기로 조절하기 위한 차원 조절 행렬이다.
RNN은 언어 모델링(단어 시퀀스 처리), 기계 번역, 음성 인식, 대화, 비디오 자막(사진 시퀀스 처리), 필기 인식(사인 시퀀스 처리), 이미지 기반 시퀀스 인식 등과 같은 항목의 시퀀스를 처리하는 많은 응용 프로그램에서 사용된다.
예를 들어, 언어 모델링은 특정 시퀀스에서 여러 단어가 발생할 확률을 계산한다. m개의 단어의 시퀀스는
Figure pat00001
에 의해 주어진다. 시퀀스의 확률은
Figure pat00002
에 의해 정의되고, 시퀀스 내의 모든 이전 단어의 조건부인 단어
Figure pat00003
의 확률은 식 3에 정의된 바와 같이 이전 n개의 단어의 윈도우(window)에 의해 근사화될 수 있다.
Figure pat00004
식 3
단어들의 시퀀스의 확률은 단어들의 각 조합이 텍스트의 코퍼스(corpus)에서 발생하는 횟수를 경험적으로 카운트함으로써 추정될 수 있다. n개의 단어의 경우, 그 조합을 n-그램(gram)이라고하며, 2개의 단어의 경우 bi-그램(bi-gram)이라고 한다. n-그램의 발생 횟수를 카운트 하기 위한 메모리 요구 사항은 윈도우 크기 n에 따라 기하급수적으로 증가하여 메모리 부족함 없이 큰 윈도우를 모델링하는 것을 매우 어렵게 만든다.
RNN은 각 시퀀스의 확률을 명시적으로 저장하지 않고도 단어 시퀀스의 가능성을 모델링하는데 사용될 수 있다. 언어 모델링을 위한 RNN 계산의 복잡도는 모델링된 언어의 어휘 크기 v에 비례한다. 이는 무거운 계산인 SoftMax 연산과 대규모 행렬 벡터 곱셈을 요구한다.
본 발명의 바람직한 실시예에 따라, 신경망을 위한 방법이 제공된다. 본 방법은 신경망의 출력 특성 벡터와 복수의 검증된 특성 벡터들 각각과의 거리 벡터를 동시에 계산하는 단계를 포함한다. 출력 특성 벡터는 미분류 항목을 기술하고, 복수의 검증된 특성 벡터 각각은 분류 항목의 집합 중 하나의 분류 항목을 기술한다. 이 방법은 각 거리 벡터에 대한 유사 지수(similarity score)를 동시에 계산하는 단계, 및 상기 복수의 계산된 유사 지수의 유사 지수 벡터를 생성하는 단계를 포함한다.
또한, 본 발명의 바람직한 실시예에 따르면, 본 방법은 또한 입력 벡터를 입력 임배딩 행렬의 복수의 열과 동시에 곱함으로써 신경망의 입력 벡터의 크기를 감소시키는 단계를 포함한다.
또한, 본 발명의 바람직한 실시예에 따라, 본 방법은 또한 확률 분포 벡터를 제공하기 위해 유사 지수 벡터의 모든 요소에 대한 비선형 함수를 동시에 활성화하는 단계를 포함한다.
또한, 본 발명의 바람직한 실시예에 따르면, 비선형 함수는 SoftMax 함수이다.
부가적으로, 본 발명의 바람직한 실시예에 따르면, 본 방법은 또한 O(1)의 계산 복잡도를 갖는 미분류 항목과 가장 유사한 분류 항목을 찾기 위해 확률 분포 벡터에서 극한값을 찾는 단계를 포함한다.
또한, 본 발명의 바람직한 실시예에 따라, 본 방법은 또한 미분류 항목과 가장 유사한 k개의 분류 항목을 제공하기 위해 유사 지수 벡터에 대한 K-최근접 이웃(K-nearest neighbors, KNN) 함수를 활성화하는 단계를 포함한다.
본 발명의 바람직한 실시예에 따라, 신경망을 위한 시스템이 제공된다. 이 시스템은 연상 메모리 배열, 입력 배열자, 은닉층 컴퓨터, 및 출력 처리기를 포함한다. 연상 메모리 배열은 행과 열을 포함한다. 입력 배열자는 미분류 항목에 관한 정보를 연상 메모리 배열에 저장하고, 정보를 조작하며, 신경망에 대한 입력을 생성한다. 은닉층 컴퓨터는 입력을 수신하고 은닉층 벡터를 계산하기 위해 신경망에서 입력을 실행한다. 출력 처리기는 은닉층 벡터를 출력 특성 벡터로 변환하고, 연상 메모리 어레이 내에서 출력 특성 벡터와 각각 하나의 분류 항목을 기술하는 복수의 검증된 특성 벡터 각각의 사이의 거리 벡터를 동시에 계산한다. 출력 처리기는 또한 연상 메모리 어레이 내에서 각각의 거리 벡터에 대한 유사 지수를 동시에 계산한다.
또한, 본 발명의 바람직한 실시예에 따르면, 입력 배열자는 정보의 차원을 감소시킨다.
또한, 본 발명의 바람직한 실시예에 따르면, 출력 처리기는 또한 선형 모듈 및 비선형 모듈을 포함한다.
또한, 본 발명의 바람직한 실시예에 따르면, 비선형 모듈은 유사 지수의 벡터로부터 확률 분포 벡터를 생성하기 위해 SoftMax 함수를 구현한다.
부가적으로, 본 발명의 바람직한 실시예에 따라, 시스템은 또한 확률 분포 벡터에서 극한값을 찾기 위한 극한값 파인더(finder)를 포함한다.
또한, 본 발명의 바람직한 실시예에 따르면, 비선형 모듈은 미분류 항목과 가장 유사한 k개의 분류 항목을 제공하는 k-최근접 이웃(nearest neighbor) 모듈이다.
또한, 본 발명의 바람직한 실시예에 따르면, 선형 모듈은 유사 지수를 생성하기 위한 거리 변환기이다.
또한, 본 발명의 바람직한 실시예에 따르면, 거리 변환기는 또한 벡터 조절기 및 거리 계산기를 포함한다.
또한, 본 발명의 바람직한 실시예에 따르면, 거리 변환기는 메모리 어레이의 제1 계산 열에 조절 행렬의 열을 저장하고, 은닉층 벡터를 각각의 계산 열에 분배하며, 벡터 조절기는 제1 계산 열 내의 출력 특성 벡터를 계산한다.
또한, 본 발명의 바람직한 실시예에 따르면, 거리 변환기는 초기에 연상 메모리 어레이의 제2 계산 열에 출력 임배딩 행렬의 열을 저장하고, 출력 특성 벡터를 모든 제2 계산 열에 분배하며, 거리 계산기는 제2 계산 열 내의 거리 벡터를 계산한다.
본 발명의 바람직한 실시예에 따르면, 미분류 특성 벡터에 의해 기술된 미분류 항목을 복수의 분류 항목과 비교하는 방법이 제공되며, 분류 항목 각각은 분류된 특성 벡터에 의해 기술된다. 이 방법은 미분류 벡터와 각각의 분류된 벡터 사이의 거리 벡터를 동시에 계산하는 단계; 및 각각의 거리 벡터에 대한 거리 스칼라를 동시에 계산하는 단계를 포함하고, 상기 거리 스칼라 각각은 미분류 항목과 복수의 분류 항목 중 하나 사이의 유사 지수를 제공하여서 복수의 거리 스칼라를 포함하는 유사 지수 벡터를 생성한다.
또한, 본 발명의 바람직한 실시예에 따라, 이 방법은 확률 분포 벡터를 생성하기 위해 유사 지수 벡터의 비선형 함수를 활성화하는 단계를 포함한다.
더 나아가, 본 발명의 바람직한 실시예에 따르면, 비선형 함수는 So1ftMax 함수이다.
또한, 본 발명의 바람직한 실시예에 따르면, 상기 방법은 또한 미분류 항목과 가장 유사한 분류 항목을 찾기 위해 확률 분포 벡터에서 극한값을 찾는 단계를 포함한다.
또한, 본 발명의 바람직한 실시예에 따라, 상기 방법은 미분류 항목과 가장 유사한 k개의 분류 항목을 제공하기 위해 유사 지수 벡터에 대한 K-최근접 이웃(KNN) 함수를 활성화하는 단계를 포함한다.
본 발명으로 간주되는 주제는 본 명세서의 결론 부분에서 특히 지적되고 명백하게 주장된다. 그러나, 본 발명은 구성 및 연산 방법 모두 첨부된 도면과 함께 읽을 때 다음의 상세한 설명을 참조함으로써 그 목적, 특징, 및 장점과 함께 가장 잘 이해될 수 있다.
도 1은 접힌 표현형 및 펼친 표현형으로 된 종래 기술의 RNN의 개략도이다.
도 2는 본 발명에 따라 구성되고 동작하는 신경망 출력 처리기의 도면이다.
도 3은 본 발명의 일 실시예에 따라 구성되고 동작하는 RNN 컴퓨팅 시스템의 개략도이다.
도 4는 본 발명의 일 실시예에 따라 구성되고 동작하는 도 1의 신경망의 일부를 형성하는 입력 배열자의 개략도이다.
도 5는 본 발명의 일 실시예에 따라 구성되고 동작하는 도 1의 신경망의 일부를 형성하는 은닉층 컴퓨터의 개략도이다.
도 6은 본 발명의 일 실시예에 따라 구성되고 동작하는 도 3의 RNN 프로세서의 일부를 형성하는 출력 처리기의 개략도이다.
도 7a는 표준 변환기에 의해 선형 변환을 제공하는 도 6의 출력 처리기의 일부를 형성하는 선형 모듈의 개략도이다.
도 7b는 본 발명의 일 실시예에 따라 구성되고 동작하는 도 6의 출력 처리기의 선형 모듈의 대안적인 거리 변환기의 개략도이다.
도 8은 도 7b의 거리 변환기에 의해 사용된 연상 메모리에서의 행렬의 데이터 배열의 개략도이다.
도 9는 은닉층 벡터의 데이터 배열 및 도 7b의 거리 변환기에 의해 수행된 계산 단계의 개략도이다.
도 10은 도 3의 RNN 컴퓨팅 시스템에 의해 수행되는 동작을 도시하는, 본 발명에 따라 동작하는 개략적인 흐름도이다.
설명의 간략화와 명료함을 위해, 도면들에 도시된 요소들은 반드시 일정한 비율로 그려진 것은 아니라는 것이 이해될 것이다. 예를 들어, 일부 요소의 차원는 명료함을 위해 다른 요소에 비해 과장될 수 있다. 또한, 적절한 것으로 고려되는 경우, 참조 부호는 대응되거나 유사한 요소를 나타내기 위해 도면들 사이에서 반복될 수 있다.
이하의 상세한 설명에서, 본 발명의 완전한 이해를 제공하기 위해 수많은 특정 세부 사항이 제시된다. 그러나, 통상의 기술자는 본 발명이 이러한 특정 세부 사항없이도 실시될 수 있음을 이해할 것이다. 다른 예들에서, 잘 알려진 방법, 절차, 및 구성 요소는 본 발명을 모호하게 하지 않도록 상세하게 기술되지 않았다.
출원인은 연상 메모리 디바이스가 (장-단기 메모리(LSTM) 및 게이트 순환 유닛(GRU)을 포함하는) RNN과 같은 인위적인 네트워크의 부분을 효율적으로 구현하는데 이용될 수 있음을 인식하였다. 본 발명의 공동 양수인에게 양도되고 본 명세서에 참고로 인용된 "메모리 매트릭스 다중화 및 신경망에서의 사용"이라는 명칭의 미국 특허 US2017/0277659에 기술된 시스템은 신경망 계산의 행렬 곱셈 부분에 대해 선형 또는 사건 일정한 복잡도를 제공할 수 있다. 본 발명의 공동 양수인에게 양도되고 본원에 참고로 인용된 "정밀한 기동 및 정확한 SOFTMAX 계산"이라는 명칭의 2017년 10월 15일자로 출원된 미국 특허 출원 제15/784,152호에 기술된 시스템은 훈련 및 추론 단계 모두에서의 RNN 계산의 비선형 부분에 대해 일정한 복잡도를 제공할 수 있으며, 본 발명의 공동 양수인에게 양도되고 본원에 참고로 인용된 "일정한 처리 시간에서의 k개의 극한값의 발견"이라는 명칭의 2017년 7월 13일자로 출원된 미국 특허 출원 제15/648,475호에 기술된 시스템은 훈련된 RNN에서 K-최근접 이웃(KNN)의 계산에 대해 일정한 복잡도를 제공할 수 있다.
출원인은 RNN 계산의 출력을 준비하는 복잡도이 집합의 크기 v에 비례한다는 것, 즉, 복잡도는 O(v)이라는 것을 인식하였다. 언어 모델링의 경우, 집합은 매우 큰 전체 어휘이며, RNN 계산은 시퀀스 내의 다음 항목의 클래스의 표시를 제공할 수 있는 확률 분포 벡터를 생성하기 위해 거대한 행렬 벡터 곱셈과 복잡한 SoftMax 연산을 포함할 수 있다.
또한, 출원인은 시퀀스 내의 다음 항목의 클래스를 나타내는 유사한 확률 분포 벡터가 v보다 훨씬 작은 d인 O(d)의 계산 복잡도로 훨씬 더 간단한 거리 계산에 의해 거대한 행렬 벡터 곱셈을 대체함으로써 생성될 수 있다는 것을 인식했다. 언어 모델링에서, 예를 들어, d는 170,000의 어휘 크기 v에 비해 100 (또는 200, 500 등)으로 선택될 수 있다. 벡터 행렬 계산은 미국 특허 공보 US 2017/0277659의 시스템에 의해 구현될 수 있다는 것을 알 수 있다.
이제 도 2를 참조하면, 도 2는 본 발명에 따라 구성되고 동작하는 신경망(210), 출력 처리기(220), 및 연상 메모리 어레이(230)를 포함하는 신경망 출력 처리기 시스템(200)의 개략도이다.
연상 메모리 어레이(230)는 RNN의 계산을 수행하는데 필요한 정보를 저장할 수 있고, 본 발명의 공동 양수인에게 양수되고 원용에 의해 본원에 포함된 미국 특허 제8,238,173호(발명의 명칭: "계산 수행을 위한 저장 셀 사용"); 2015년 1월 1일에 출원된 미국 특허 출원 제14/588,419호(발명의 명칭: "비휘발성 메모리 내장형 컴퓨팅 디바이스"); 2014년 11월 27일자로 출원된 미국 특허 출원 제14/555,638호(발명의 명칭: "메모리 내장형 계산 디바이스"); 2017년 7월 16일자로 출원된 미국 특허 제9,558,812호(발명의 명칭: "SRAM 다중 셀 연산") 및 미국 특허 출원 제15/650,935호 ("비트 라인 프로세서를 갖춘 메모리 내장형 계산 디바이스")에 기술된 것과 같은 다목적 연상 메모리 디바이스일 수 있다.
신경망(210)은 입력 벡터 x를 수신하고 출력 벡터 h를 제공하는 임의의 신경망 패키지일 수 있다. 출력 처리기(220)는 벡터 h를 입력으로서 수신할 수 있고, 집합 상의 각 항목의 확률 분포를 포함하는 출력 벡터 y를 생성할 수 있다. 집합의 각 가능한 항목에 대해, 출력 벡터 y는 시퀀스 내의 예상되는 항목의 클래스가 될 확률을 제공할 수 있다. 예를 들어, 단어 모델링에서 다음에 예상되는 항목의 클래스는 문장의 다음 단어일 수 있다. 출력 처리기(220)는 도 7 내지 도 10에서 상세히 설명된다.
이제 도 3을 참조하면, RNN 프로세서(310) 및 연상 메모리 어레이(230)를 포함하는 본 발명의 일 실시예에 따라 구성되고 동작하는 RNN 컴퓨팅 시스템(300)의 개략도가 도시되어 있다.
RNN 프로세서(310)는 신경망 패키지(210) 및 출력 처리기(2)를 더 포함할 수있다. 신경망 패키지(210)는 입력 배열자(320), 은닉층(hidden layer) 컴퓨터(330), 및 크로스 엔트로피(cross entropy, CE) 손실 최적화기(350)를 더 포함할 수 있다.
일 실시예에서, 입력 배열자(320)는 분석될 항목들의 시퀀스 (단어들의 시퀀스, 도면들의 시퀀스, 사인들의 시퀀스 등)를 수신할 수 있고, 시퀀스 내의 각 항목을 RNN에 적합한 형태로 변환할 수 있다. 예를 들어, 언어 모델링을 위한 RNN은 매우 큰 어휘를 처리해야 할 필요가 있을 수 있다 (상술한 것처럼, 영어 어휘의 크기 v는 약 170,000 단어이다). 언어 모델링을 위한 RNN은 복수의 원-핫 벡터를 입력으로서 수신할 수 있으며, 각각은 단어들의 시퀀스에서 하나의 단어를 나타낸다. 영어 단어를 나타내는 원-핫 벡터의 크기 v는 170,000 비트일 수 있음을 알 수 있다. 입력 배열자(320)는 큰 입력 벡터를 RNN의 입력으로서 사용될 수 있는 더 작은 크기의 벡터로 변환할 수 있다.
은닉층 컴퓨터(330)는 임의의 이용 가능한 RNN 패키지를 사용하여 은닉층의 활성화 값을 계산할 수 있고, CE 손실 최적화기(350)는 손실을 최적화할 수 있다.
이제 도 4를 참조하면, 본 발명의 일 실시예에 따라 구성되고 동작하는 입력 배열자(320)의 개략도가 도시되어있다. 입력 배열자(320)는 입력으로서 희소 벡터를 수신할 수 있다. 벡터는, v개의 가능한 항목의 집합으로부터 특정 항목을 나타내는 원-핫 벡터 s_x 일 수 있고, 집합으로부터 동일한 항목을 나타내는 (크기가 d 인) 매우 작은 벡터 d_x를 생성할 수 있다. 입력 배열자(320)는 크기가 d x v인 행렬 L을 사용하여 벡터 s_x를 벡터 d_x로 변환할 수 있다. 행렬 L은, RNN의 훈련 이후, 각 열 k에서, 집합의 항목 k를 특징화하는 특성의 세트를 포함할 수 있다. 행렬 L 은 입력 임배딩 행렬 또는 입력 사전으로 지칭될 수 있으며, 식 4에서 정의된다.
d_x = L * s_x 식 4
입력 배열자(320)는 초기에 연상 메모리 어레이(230)의 i번째 섹션의 제1 행에서 행렬 L L i- 를 저장할 수있다. 입력 배열자(320)는 입력 벡터 s_x의 비트 i를 섹션 i의 제2 행의 각 계산 열 j에 동시에 분배할 수 있다. 입력 배열자(320)는 모든 섹션 i 및 모든 계산 열 j에서, 화살표(410)로 도시된 바와 같이 값 p ij 를 생성하기 위해 값 L ij s_x j 를 동시에 곱할 수 있다. 그 후, 입력 배열자(320)는, 식 4에 출력 벡터 d_x를 제공하기 위해 화살표(520)에 의해 도시된 바와 같이 계산 열 j당 모든 섹션에서 곱셈 결과 p ij 를 더할 수 있다.
이제 도 5를 참조하면, 은닉층 컴퓨터(330)의 개략도가 도시되어 있다. 은닉층 컴퓨터(330)는 임의의 이용 가능한 신경망 패키지를 포함할 수 있다. 은닉층 컴퓨터(330)는 은닉층에서 시간 t에서의 활성화에 대한 값 h t를 시간 t에서의 밀집한 표현의 입력 벡터 d_x t, 및 시간 t-1에서의 활성화에 대한 이전 값 h t-1에 기초하여 식 5에 따라 계산할 수 있다.
h t = σ(W*h t-1 + U*d_x t + b) 식 5
전술한 바와 같이, h의 크기 d는 미리 결정될 수 있고 임배딩 행렬 L의 차원보다 더 작다. σ는 결과 벡터의 각 요소에서 연산되는 시그모이드 함수(sigmoid function)와 같은 비선형 함수이다. WU는 미리 정의된 파라미터 행렬이고, b 는 바이어스 벡터이다. WU는 전형적으로 랜덤 값으로 초기화될 수 있고, 훈련 단계 동안 업데이트될 수 있다. 파라미터 행렬 W (m × m), U (m × d), 및 바이어스 벡터 b (m)의 차원은 각각 hd_x의 크기에 적합하도록 정의될 수 있다.
은닉층 컴퓨터(330)는 밀집한 벡터 d_x와 이전 단계의 RNN의 결과 h t-1를 사용하여 시간 t에서 은닉층 벡터의 값을 계산할 수 있다. 은닉층의 결과는 h이다. h의 초기값은 랜덤일 수 있는 h O일 수 있다.
이제 도 6을 참조하면, 본 발명의 일 실시예에 따라 구성되고 동작하는 출력 처리기(220)의 개략도가 도시되어 있다.
출력 처리기는 각 항목에 대한 확률을 생성하는 비선형 모듈(620)에 뒤따르는 집합의 크기 v에 적합하게 (은닉층 컴퓨터(330)의 출력인) 벡터 h를 배치하기 위한 선형 모듈(610)을 이용하여 출력 벡터 y t를 생성할 수 있다. 선형 모듈(610)은 선형 함수 g를 구현할 수 있고, 비선형 모듈(620)은 비선형 함수 f를 구현할 수 있다. 확률 분포 벡터 y t는 식 6에 따라 계산될 수 있다.
y t = f(g(h t)) 식 6
선형 함수 g는 크기 m을 갖는 수신된 임배딩 (은닉층 컴퓨터(330)에 의해 생성된) 벡터 h를 크기 d의 출력 벡터로 변환할 수 있다. 임배딩 벡터 h의 변환 동안에, 선형 함수 g는 벡터 h의 위치 k에서의 h k (최대 또는 최소) 극 지수값을 생성할 수 있다.
이제 도 7a를 참조하면, 표준 패키지에 의해 구현된 표준 변환기(710)에 의해 선형 변환을 제공할 수 있는 선형 모듈(610A)의 개략도이다.
표준 변환기(710)는 표준 패키지에 의해 제공될 수 있으며, 식 7을 사용하여 임배딩 벡터 h t를 크기 v의 벡터로 변환할 수 있다.
g(h t) = (H*h t + b) 식 7
여기서 H는 출력 표현 행렬 (v × m)이다. 행렬 H의 각 열은 훈련 세션 동안 학습된 바와 같이 (집합에서) 하나의 항목의 임배딩을 저장할 수 있고, 벡터 b는 크기 v의 바이어스 벡터일 수 있다. 행렬 H는 랜덤 값으로 초기화될 수 있고, 당업계에 공지된 바와 같이 크로스 엔트로피 손실(cross entropy loss)을 최소화하기 위해 훈련 단계 중에 업데이트될 수 있다.
(각 분류 항목 j의 임배딩 벡터가 저장된) 행렬 H의 열 j에 의한 벡터 h t의 곱셈은 벡터 h t에 의해 표현되는 미분류 물체와 각 분류 항목 j 사이의 유사성을 나타내는 스칼라 지수를 제공할 수 있음을 알 수 있다. 지수가 높을수록 벡터는 더 유사하다. 결과 g(h)는 행렬 H의 열 j에 있는 항목과 입력 항목 사이의 유사성을 각 위치 j에 대해 나타내는 지수를 갖는 (크기 v의) 벡터이다. 가장 높은 지수 값을 갖는 g(h)의 위치 k는 미분류 항목의 클래스로서 (집합의 각 항목의 임배딩을 저장하는) 행렬 H에 있는 항목 k를 나타낸다.
또한, H는 각각 특정 항목의 임배딩을 저장하는 v개의 열을 갖기 때문에, H*h t는 무거운 행렬 벡터 곱셈 연산을 요구하는 것으로 이해될 수 있으며, v는 이미 표시된 바와 같이 매우 클 수 있는 전체 집합(어휘)의 크기이다. (Hh t의 각 열 사이의) 모든 내적을 계산하는 것은, 심지어 현대 GPU를 활용하는 경우에도 훈련 도중에 엄청나게 느려질 수 있다.
출원인은 출력 처리기(220)가 선형 모듈(610)의 계산 복잡도를 상당히 감소시키기 위하여 메모리 어레이(230)를 이용할 수 있다는 것을 인식했다.
이제 도 7b를 참조하면, 본 발명의 일 실시예에 따라 구성되고 작동되는 선형 모듈(610B)의 개략도이다. 거리 변환기(720)는 출력 임배딩 벡터 h와 출력 임배딩 행렬 O의 열로서 저장되는 각 항목 j 사이의 거리를, 큰 행렬 H와 곱하는 대신에 식 8에서 정의된 바와 같이 계산할 수 있다.
(g( h t ))j = 거리((M * h t + c) - O -j) 식 8
(g( h t ))j는 출력 임배딩 행렬 O의 열 j에 대해 계산되는 스칼라이며 행렬 O의 벡터 j와 h t 사이의 거리 지수를 제공할 수 있다. 벡터 h t의 크기는 행렬 O의 열의 크기와 다를 수 있어서, 따라서 거리 계산을 가능하게 하기 위해 임배딩 벡터 h t의 크기를 O의 크기로 조정하기 위한 차원 조절 행렬 M이 필요할 수도 있다. M의 차원은 표준 변환기(710)에서 사용된 H의 차원보다 훨씬 작은 d × m 일 수 있으며, 따라서 거리 변환기(720)의 계산은 표준 변환기(710)의 계산보다 훨씬 빠르고 덜 소모적일 수 있다. 벡터 c 는 바이어스 벡터이다.
출력 임배딩 행렬 O는 랜덤 값으로 초기화 될 수 있고, 훈련 세션 동안 업데이트될 수 있다. 출력 임배딩 행렬 O는 각 열 j에 (컬렉션으로부터의) 항목 j의 계산된 임배딩을 저장할 수 있다. 출력 임배딩 행렬 O는 입력 배열자(320) (도 4)에 의해 사용된 입력 임배딩 행렬 L과 유사할 수도 있고, 심지어는 L과 동일할 수도 있다. 행렬 O는 언어 모델링 이외의 응용 프로그램에서 사용될 때 항목 j의 특성을 각 열 j에 저장할 수 있다는 것이 이해될 수 있다.
미분류 물체와 분류된 물체의 데이터베이스 사이의 거리는 L1 또는 L2 놈(norm), 해밍 거리(hamming distance), 코사인 유사성 또는 임의의 다른 유사성 또는 h t에 의해 정의된 미분류 물체와 행렬 O에 저장된 분류된 물체의 데이터베이스 사이의 거리(또는 유사성)를 계산하기 위한 거리 방법과 같은 임의의 거리 또는 유사성 방법을 사용하여 계산될 수 있다.
놈은 벡터 공간에서 각 벡터에 엄밀하게 양의 값을 할당할 수 있는 거리 함수이며, 벡터 간의 유사성을 표현하는 숫자 값을 제공할 수 있다. 놈은 h t와 행렬 O의 (O -j 의해 표시된) 각 열 j 사이에서 계산될 수 있다. 출력 임배딩 행렬 O는 행렬 H에 대해 아날로그이지만, 다르게 훈련될 수 있으며 상이한 개수의 열을 가질 수 있다.
차원 조절 행렬 M에 의한 은닉층 벡터 h의 곱셈 결과는 거리의 계산 중에 행렬 O의 각 열로부터 백터 o의 뺄셈을 가능하게 하는 행렬 O의 열 크기와 동일한 크기를 갖는 벡터 o를 생성할 수 있다. 거리 변환기(720)는 바이어스 벡터 c를 결과 벡터 o에 더할 수 있으며, 간략하게 결과 벡터는 여전히 벡터 o로 지칭될 수 있다는 것이 이해될 수 있다.
앞서 언급한 바와 같이, 거리 변환기(720)는 L1 또는 L2 놈을 사용하여 거리를 계산할 수 있다. "최소 절대 편차" 놈으로 알려진 L1 놈은 목표값과 추정값 사이의 절대차를 정의하는 반면, "최소 제곱 오차" 놈으로 알려진 L2 놈은 목표값과 추정된 값 사이의 차이의 제곱의 합이다. 각 거리 계산의 결과는 스칼라이며, 모든 계산된 거리(벡터 o와 행렬 O의 각 열 사이의 거리)의 결과는 벡터 g(h)를 제공할 수 있다.
거리 계산은 출력 임배딩 벡터 o와 행렬 O의 열 j에 저장된 항목 간의 차이 또는 유사성을 나타내는 스칼라 지수를 제공할 수 있다. 거리가 놈에 의해 계산되는 경우, 지수가 낮을수록 벡터는 더 유사하다. 거리가 코사인 유사성에 의해 계산되는 경우, 지수가 높을수록 벡터는 더 유사하다. (크기 v의) 결과 벡터 g(h)는 지수의 벡터이다. (거리 계산 방법에 따라) 극한값 (최저 또는 최고) 지수 값을 갖는 지수 벡터 g(h)의 위치 k는 (집합 내의 각 항목의 임배딩을 저장하는) 행렬 O의 항목 k가 미분류 항목 h t의 클래스를 가르킨다.
도 8을 참조하면, 메모리 어레이(230) 내의 행렬 M 및 행렬 O의 데이터 배열의 개략도가 도시된다. 거리 변환기(720)는 하나의 부분 230-M이 행렬 M을 저장할 수 있고 또 다른 부분 230-O이 행렬 O를 저장할 수 있도록 메모리 어레이(230)를 이용할 수 있다. 화살표(911, 912, 및 913)에 의해 도시된 바와 같이, 거리 변환기(720)는 메모리 어레이 부분(230-M)(행렬 M의 열 j의 각 비트 i는 다른 섹션 i의 동일한 계산 열 j에 저장될 수 있음)의 i 번째 섹션의 제1 열에 행렬 M의 각 행 i을 저장할 수 있다 .
유사하게, 거리 변환기(720)는 화살표(921, 922, 및 923)에 의해 도시된 바와 같이, 메모리 어레이 부분(230-O)의 i 번째 섹션의 제1 열에 행렬 O 의 각 행 i를 저장할 수 있다.
이제 도 9를 참조하면, 벡터 h의 데이터 배열 및 거리 변환기(720)에 의해 수행된 계산 단계의 개략도가 도시되어 있다. 거리 변환기(720)는 벡터 조절기(970) 및 거리 계산기(980)를 더 포함할 수 있다. 벡터 조절기(970)는, 벡터 h t의 비트 i가 행렬 M의 행 i이 저장된 섹션과 동일한 섹션에서 섹션 i의 전체 제2 행에 걸쳐 반복적으로 저장되도록, 임배딩 벡터 h t의 각 비트 i를 메모리 어레이 파트 230-M의 섹션 i의 두번째 행의 모든 계산 열에 분배할 수 있다. 비트 h1은 화살표(911 및 912)로 도시된 바와 같이 섹션 1의 제2 행에 분배될 수 있고, 비트 hm은 화살표(921 및 922)로 도시된 바와 같이 섹션 m의 제2 행에 분배될 수 있다.
벡터 조절기(970)는 화살표 950에 의해 도시된 바와 같이, 모든 섹션에서 모든 계산 열에 동시에 M ij h i 를 곱하고 그 결과를 제3 열의 pij에 저장할 수 있다. 벡터 조절기(970)는 화살표 960로 도시된 바와 같이, 벡터 o의 값 o i 를 생성하기 위해 pi의 값을 모든 계산 열에 동시에 더할 수 있다.
도면에 도시되어 있지는 않지만, 일단 벡터 o가 임배딩 벡터 h t에 대해 계산되면, 거리 변환기(720)는 바이어스 벡터 c를 결과 벡터 o에 더할 수 있다.
거리 변환기(720)는 각 값 o i 가 섹션 i의 전체 제2 열에 분배될 수 있도록 벡터 o를 메모리 어레이 부분 230-O에 분배할 수 있다. 비트 o1은 화살표 931와 932에 의해 도시된 바와 같이 섹션 1의 제2 행에 분배될 수 있고, 비트 od는 화살표 933와 934에 의해 도시된 바와 같이 섹션 d의 제2 열에 분배될 수 있다.
거리 변환기(980)는 동시에, 거리 벡터를 생성하기 위해 모든 섹션의 모든 계산 행에서 O ij 로부터 o i 를 뺄 수 있다. 그 후, 거리 계산기(980)는 각각의 결과 벡터에 대한 임의의 다른 거리 계산 또는 L1이나 L2를 계산함으로써 g(h)의 계산을 완료 할 수 있고, 화살표 941와 942로 도시된 바와 같이 결과 g(h)를 출력으로서 제공할 수 있다.
다른 실시예에서, 거리 변환기(720)는 메모리 어레이 부분(230-O)의 최종 위치에 직접적으로 벡터 o의 덧셈 결과 o i 를 쓸 수 있다는 것을 알 수 있다.
시스템(300)(도 3)은 추론 단계 동안 예상되는 다음 항목의 클래스를 결정하기 위해 본 명세서에 인용되는 2015년 1월 12일자로 "메모리 장치"라는 명칭으로 출원된 미국 특허 출원 제14/594,434호, 공개 번호 US 2015/0200009의 시스템을 사용하여 벡터 g(h)의 (최소 또는 최대의) 극한값을 찾을 수 있다.
비선형 모듈(620)(도 6)은 선형 함수 g에 의해 생성되고 g(h)에 저장된 임의의 값을 확률로 변환할 수 있는 비선형 함수 f를 구현할 수 있다. 예를 들어, 함수 f는 SoftMax 연산일 수 있고, 이러한 경우에, 비선형 모듈(620)은 본원에 인용된 2017년 10월 15일자로 출원된 "정밀한 기동 및 정확한 SOFTMAX 계산"이라는 명칭의 미국 특허 출원 15/784,152의 정확한 SoftMax 시스템을 이용할 수 있다.
부가적으로 또는 대안적으로, RNN 컴퓨팅 시스템(300)은 추론 도중에 하나가 아닌 여러 결과가 요구될 때 k-최근접 이웃 값을 찾기 위해 2017년 7월 7일자로 출원된 "일정 처리 시간에서의 k개의 극한값 찾기"라는 명칭의 미국 특허 출원 제15/648,475호를 이용할 수 있다. 이러한 RNN 컴퓨팅 시스템(300)의 사용의 일례는 각각 미분류 항목에 대한 잠재적인 클래스를 표현하는 극한값을 가지는 k 항목을 찾기 위해 비선형 모듈(620)이 KNN 모듈에 의해 대체될 수 있는 경우에 빔 탐색(beam search)에 있을 수 있다.
CE 손실 최적화기(350) (도 3)는 임의의 표준 패키지를 사용하는 학습 단계 동안 크로스 엔트로피 손실을 계산할 수 있고, 식 9를 사용하여 이를 최적화 할 수있다.
Figure pat00005
식 9
yt는 예상된 출력의 원-핫 벡터이며, y expected는 위치 k의 항목이 미분류 예상된 항목의 클래스인 확률을 각 위치 k에 저장하는 확률 벡터이다.
이제 도 10을 참조하면, 이는 본 발명에 따라 동작하는 내부 뉴런 네트워크(210) 및 시스템(200)의 출력 처리기(220)에서 수행되는 단계를 포함하는 RNN 컴퓨팅 시스템(300) (도 3)에 의해 수행되는 개략적인 흐름도(1000)이다. 단계(1010)에서, RNN 컴퓨팅 시스템(300)은 희소 벡터에 입력 임배딩 행렬 L을 곱함으로써 희소 벡터 s_x를 밀도 벡터 d_x로 변환할 수 있다. 단계(1020)에서, RNN 컴퓨팅 시스템(300)은 은닉층 벡터 h를 계산하기 위해 파라미터 행렬 UW를 사용하여 밀도 벡터 d_x의 은닉층 컴퓨터(330)를 실행할 수 있다.
단계(1030)에서, RNN 컴퓨팅 시스템(300)은 차원 조절 행렬 M을 사용하여 은닉층 벡터 h를 출력 임배딩 벡터 o로 변환할 수 있다. 단계(1032)에서, 컴퓨팅 시스템(300)은 RNN 계산의 일부를 KNN으로 대체할 수 있다. 이는 유추 단계동안에 특히 유용하다. 단계(1040)에서, RNN 컴퓨팅 시스템(300)은 임배딩 벡터 o와 출력 임배딩 행렬 O의 각 항목 간의 거리를 계산할 수 있고, 최소 거리를 찾기 위해 단계(1042)를 이용할 수 있다. 단계(1050)에서, RNN 컴퓨팅 시스템(300)은 단계(1052)에 도시된 바와 같이 SoftMax와 같은 비선형 함수를 사용하여 확률 벡터 y를 계산하고 제공할 수 있으며, 단계(1060)에서 컴퓨팅 시스템(300)은 훈련 세션 동안 손실을 최적화할 수 있다. 통상의 기술자는 도시된 단계가 제한하려는 의도가 아니며, 흐름이 더 많거나 적은 단계 또는 상이한 단계의 순서 또는 이들의 임의의 조합으로 실시될 수 있다는 것을 알 수 있다.
거리 변환기(720)를 사용하는 RNN의 전체 복잡도는 표준 변환기(710)를 사용하는 RNN의 복잡도보다 낮다는 것을 알 수 있다. 표준 RNN 계산의 복잡도는 v가 매우 클 때 O(v)인 반면, 선형 부분을 계산하는 복잡도는 O(d)이다. d는 v보다 훨씬 작기 때문에 O(d)의 복잡도가 크게 절약된다.
최소값을 구하는 것과 SoftMax, KNN의 복잡도는 (O(1)의) 상수이기 때문에 RNN 컴퓨팅 시스템(300)을 사용하는 RNN의 총 복잡도는 종래 기술보다 낮을 수 있다는 것 또한 알 수 있다.
본 발명의 특정 특징이 본 명세서에 도시되고 기술되었지만, 많은 수정, 대체, 변경 및 균등물이 이제 통상의 기술자에게 발생할 것이다. 따라서, 첨부된 청구 범위는 본 발명의 진정한 사상 내에 있는 그러한 모든 수정 및 변경을 포함하도록 의도된 것으로 이해되어야 한다.

Claims (21)

  1. 신경망을 위한 방법으로서,
    상기 신경망의 출력 특성 벡터와 복수의 검증된 특성 벡터 각각과의 거리 벡터를 동시에 계산하는 단계;
    각 거리 벡터에 대한 유사 지수(similarity score)를 동시에 계산하는 단계; 및
    상기 복수의 계산된 유사 지수의 유사 지수 벡터를 생성하는 단계를 포함하고,
    상기 출력 특성 벡터는 미분류 항목을 기술하고, 상기 복수의 검증된 특성 벡터 각각은 분류 항목의 집합 중 하나의 분류 항목을 기술하는,
    신경망을 위한 방법.
  2. 제1항에 있어서,
    상기 신경망의 입력 벡터를 입력 임배딩 행렬의 복수의 열과 동시에 곱함으로써 상기 입력 벡터의 크기를 감소시키는 단계를 더 포함하는, 신경망을 위한 방법.
  3. 제1항에 있어서,
    확률 분포 벡터를 제공하기 위해 상기 유사 지수 벡터의 모든 요소에 대한 비선형 함수를 동시에 활성화하는 단계를 더 포함하는, 신경망을 위한 방법.
  4. 제3항에 있어서,
    상기 비선형 함수는 SoftMax 함수인, 신경망을 위한 방법.
  5. 제3항에 있어서,
    상기 미분류 항목과 가장 유사한 분류 항목을 찾기 위해 상기 확률 분포 벡터에서 O(1)의 계산 복잡도를 갖는 극한값을 찾는 단계를 더 포함하는, 신경망을 위한 방법.
  6. 제1항에 있어서,
    상기 미분류 항목과 가장 유사한 k개의 분류 항목을 제공하기 위해 상기 유사 지수 벡터의 k-최근접 이웃(K-nearest neighbors, KNN) 함수를 활성화하는 단계를 더 포함하는, 신경망을 위한 방법.
  7. 신경망을 위한 시스템으로서,
    열 및 행으로 구성된 연상 메모리 어레이;
    상기 연상 메모리 어레이에 미분류 항목에 관한 정보를 저장하고, 상기 정보를 조작하며, 상기 신경망에 대한 입력을 생성하기 위한 입력 배열자;
    상기 입력을 수신하고, 은닉층 벡터를 계산하기 위해 상기 신경망에서 상기 입력을 실행하는 은닉층 컴퓨터; 및
    상기 은닉층 벡터를 출력 특성 벡터로 변환하고, 상기 출력 특성 벡터와 복수의 검증된 특성 벡터 각각의 사이의 거리 벡터를 상기 연상 메모리 어레이 내에서 동시에 계산하며, 각각의 거리 벡터에 대한 유사 지수를 상기 연상 메모리 어레이 내에서 동시에 계산하기 위한, 출력 처리기를 포함하고,
    상기 복수의 검증된 특성 벡터는 각각 하나의 분류 항목을 기술하는,
    신경망을 위한 시스템.
  8. 제7항에 있어서,
    상기 정보의 차원를 감소시키기 위한 상기 입력 배열자를 더 포함하는, 신경망을 위한 시스템.
  9. 제7항에 있어서,
    상기 출력 처리기는 선형 모듈 및 비선형 모듈을 더 포함하는, 신경망을 위한 시스템.
  10. 제8항에 있어서,
    상기 비선형 모듈은 상기 유사 지수의 벡터로부터 확률 분포 벡터를 생성하기 위해 SoftMax 함수를 구현하는, 신경망을 위한 시스템.
  11. 제10항에 있어서,
    상기 확률 분포 벡터에서 극한값을 찾기 위한 극한값 파인더(finder)를 더 포함하는, 신경망을 위한 시스템.
  12. 제8항에 있어서,
    상기 비선형 모듈은 상기 미분류 항목과 가장 유사한 k개의 분류 항목을 제공하기 위한 k-최근접 이웃 모듈인, 신경망을 위한 시스템.
  13. 제8항에 있어서,
    상기 선형 모듈은 상기 유사 지수를 생성하기 위한 거리 변환기인, 신경망을 위한 시스템.
  14. 제13항에 있어서,
    상기 거리 변환기는 벡터 조절기 및 거리 계산기를 포함하는, 신경망을 위한 시스템.
  15. 제14항에 있어서,
    상기 거리 변환기는 상기 메모리 어레이의 제1 계산 열에 조절 행렬의 열을 저장하고, 상기 은닉층 벡터를 각 계산 열에 분배하며,
    상기 벡터 조절기는 상기 제1 계산 열 내의 출력 특성 벡터를 계산하는, 신경망을 위한 시스템.
  16. 제15항에 있어서,
    상기 거리 변환기는 초기에 상기 연상 메모리 어레이의 제2 계산 열에 출력 임배딩 행렬의 열을 저장하고, 상기 출력 특성 벡터를 모든 제2 계산 열에 분배하며,
    상기 거리 계산기는 상기 제2 계산 열 내의 거리 벡터를 계산하는, 신경망을 위한 시스템.
  17. 미분류 특성 벡터에 의해 기술된 미분류 항목을 분류된 특성 벡터에 의해 각각 기술된 복수의 분류 항목과 비교하는 방법으로서,
    상기 미분류 벡터와 상기 분류된 벡터 각각의 사이의 거리 벡터를 동시에 계산하는 단계; 및
    각각의 거리 벡터에 대한 거리 스칼라를 동시에 계산하는 단계를 포함하고,
    각 거리 스칼라는 상기 미분류 항목과 상기 복수의 분류 항목 중 하나 사이의 유사 지수를 제공함으로써 복수의 거리 스칼라를 포함하는 유사 지수 벡터를 생성하는,
    미분류 특성 벡터에 의해 기술된 미분류 항목을 분류된 특성 벡터에 의해 각각 기술된 복수의 분류 항목과 비교하는 방법.
  18. 제17항에 있어서,
    확률 분포 벡터를 생성하기 위해 상기 유사 지수 벡터의 비선형 함수를 활성화하는 단계를 더 포함하는, 미분류 특성 벡터에 의해 기술된 미분류 항목을 분류된 특성 벡터에 의해 각각 기술된 복수의 분류 항목과 비교하는 방법.
  19. 제18항에 있어서,
    상기 비선형 함수는 SoftMax 함수인, 미분류 특성 벡터에 의해 기술된 미분류 항목을 분류된 특성 벡터에 의해 각각 기술된 복수의 분류 항목과 비교하는 방법.
  20. 제18항에 있어서,
    상기 미분류 항목과 가장 유사한 분류 항목을 찾기 위해 상기 확률 분포 벡터에서 극한값을 찾는 단계를 더 포함하는, 미분류 특성 벡터에 의해 기술된 미분류 항목을 분류된 특성 벡터에 의해 각각 기술된 복수의 분류 항목과 비교하는 방법.
  21. 제18항에 있어서,
    상기 미분류 항목과 가장 유사한 k개의 분류 항목을 제공하기 위해 상기 유사 지수 벡터에 대한 k-최근접 이웃(KNN) 함수를 활성화하는 단계를 더 포함하는, 미분류 특성 벡터에 의해 기술된 미분류 항목을 분류된 특성 벡터에 의해 각각 기술된 복수의 분류 항목과 비교하는 방법.
KR1020190019231A 2018-02-26 2019-02-19 거리 기반 딥 러닝 KR20190103011A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/904,486 2018-02-26
US15/904,486 US20190266482A1 (en) 2018-02-26 2018-02-26 Distance based deep learning

Publications (1)

Publication Number Publication Date
KR20190103011A true KR20190103011A (ko) 2019-09-04

Family

ID=67683942

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190019231A KR20190103011A (ko) 2018-02-26 2019-02-19 거리 기반 딥 러닝

Country Status (3)

Country Link
US (1) US20190266482A1 (ko)
KR (1) KR20190103011A (ko)
CN (1) CN110197252A (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10721190B2 (en) * 2018-07-31 2020-07-21 Microsoft Technology Licensing, Llc Sequence to sequence to classification model for generating recommended messages
US10956474B2 (en) 2019-03-14 2021-03-23 Microsoft Technology Licensing, Llc Determination of best set of suggested responses
JP7420210B2 (ja) 2020-02-17 2024-01-23 日本電気株式会社 通信システム、送信装置、受信装置、行列生成装置、通信方法、送信方法、受信方法、行列生成方法、及び、記録媒体

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6078513A (en) * 1999-06-09 2000-06-20 Neomagic Corp. NMOS dynamic content-addressable-memory CAM cell with self-booting pass transistors and local row and column select
US8406456B2 (en) * 2008-11-20 2013-03-26 Workshare Technology, Inc. Methods and systems for image fingerprinting
US9263036B1 (en) * 2012-11-29 2016-02-16 Google Inc. System and method for speech recognition using deep recurrent neural networks
KR102167719B1 (ko) * 2014-12-08 2020-10-19 삼성전자주식회사 언어 모델 학습 방법 및 장치, 음성 인식 방법 및 장치
CN104915386B (zh) * 2015-05-25 2018-04-27 中国科学院自动化研究所 一种基于深度语义特征学习的短文本聚类方法
EP3153997B1 (en) * 2015-10-08 2018-10-31 VIA Alliance Semiconductor Co., Ltd. Neural network unit with output buffer feedback and masking capability
CA3015658A1 (en) * 2016-03-11 2017-09-14 Magic Leap, Inc. Structure learning in convolutional neural networks
CN109074845B (zh) * 2016-03-23 2023-07-14 Gsi 科技公司 存储器内矩阵乘法及其在神经网络中的使用
US9858263B2 (en) * 2016-05-05 2018-01-02 Conduent Business Services, Llc Semantic parsing using deep neural networks for predicting canonical forms
CN108351974A (zh) * 2016-07-17 2018-07-31 Gsi 科技公司 在恒定的处理时间内查找k个极值
US20180341862A1 (en) * 2016-07-17 2018-11-29 Gsi Technology Inc. Integrating a memory layer in a neural network for one-shot learning
US20180341642A1 (en) * 2016-07-17 2018-11-29 Gsi Technology Inc. Natural language processing with knn
US10810484B2 (en) * 2016-08-12 2020-10-20 Xilinx, Inc. Hardware accelerator for compressed GRU on FPGA
CN107229967B (zh) * 2016-08-22 2021-06-15 赛灵思公司 一种基于fpga实现稀疏化gru神经网络的硬件加速器及方法
US10649770B2 (en) * 2017-01-31 2020-05-12 Facebook, Inc. κ-selection using parallel processing
US10268646B2 (en) * 2017-06-06 2019-04-23 Facebook, Inc. Tensor-based deep relevance model for search on online social networks
CN107316643B (zh) * 2017-07-04 2021-08-17 科大讯飞股份有限公司 语音交互方法及装置
KR102608683B1 (ko) * 2017-07-16 2023-11-30 쥐에스아이 테크놀로지 인코포레이티드 Knn을 이용한 자연 언어 처리
CN107529650B (zh) * 2017-08-16 2021-05-18 广州视源电子科技股份有限公司 闭环检测方法、装置及计算机设备

Also Published As

Publication number Publication date
CN110197252A (zh) 2019-09-03
US20190266482A1 (en) 2019-08-29

Similar Documents

Publication Publication Date Title
Yao et al. Bi-directional LSTM recurrent neural network for Chinese word segmentation
US11797822B2 (en) Neural network having input and hidden layers of equal units
Minaee et al. Automatic question-answering using a deep similarity neural network
CN109241377A (zh) 一种基于深度学习话题信息增强的文本文档表示方法和装置
Vapnik Complete statistical theory of learning
KR20200032258A (ko) 일정한 처리 시간 내에 k개의 극값을 찾는 방법
KR20190103011A (ko) 거리 기반 딥 러닝
CN112580369B (zh) 语句复述方法、训练语句复述模型的方法及其装置
Liu et al. An experimental study on symbolic extreme learning machine
CN109948163B (zh) 序列动态阅读的自然语言语义匹配方法
US20240005131A1 (en) Attention neural networks with tree attention mechanisms
Varshitha et al. Natural language processing using convolutional neural network
CN115034299A (zh) 基于卷积神经网络多通道特征表示的文本分类方法及装置
CN115329075A (zh) 基于分布式机器学习的文本分类方法
Kumar et al. Self-attention enhanced recurrent neural networks for sentence classification
CN111324695B (zh) 一种多任务学习方法及装置
CN110633363B (zh) 一种基于nlp和模糊多准则决策的文本实体推荐方法
KR102608683B1 (ko) Knn을 이용한 자연 언어 처리
US20200380355A1 (en) Classification apparatus and method for optimizing throughput of classification models
Pattanayak et al. Natural language processing using recurrent neural networks
CN111767388A (zh) 一种候选池生成方法
Liza et al. Relating RNN layers with the spectral WFA ranks in sequence modelling
Moisio et al. Introduction to the artificial intelligence that can be applied to the network automation journey
Lee et al. A two-level recurrent neural network language model based on the continuous Bag-of-Words model for sentence classification
Bastos Learning sentence embeddings using recursive networks

Legal Events

Date Code Title Description
A201 Request for examination