KR20180091850A - 외부 메모리로 신경망들 증강 - Google Patents

외부 메모리로 신경망들 증강 Download PDF

Info

Publication number
KR20180091850A
KR20180091850A KR1020187017730A KR20187017730A KR20180091850A KR 20180091850 A KR20180091850 A KR 20180091850A KR 1020187017730 A KR1020187017730 A KR 1020187017730A KR 20187017730 A KR20187017730 A KR 20187017730A KR 20180091850 A KR20180091850 A KR 20180091850A
Authority
KR
South Korea
Prior art keywords
neural network
weights
external memory
read
determining
Prior art date
Application number
KR1020187017730A
Other languages
English (en)
Other versions
KR102158683B1 (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 KR20180091850A publication Critical patent/KR20180091850A/ko
Application granted granted Critical
Publication of KR102158683B1 publication Critical patent/KR102158683B1/ko

Links

Images

Classifications

    • G06N3/0445
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • 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/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means

Abstract

외부 메모리로 신경망을 증강시키기 위한, 컴퓨터 저장 매체상에 인코딩된 컴퓨터 프로그램들을 포함하는 방법들, 시스템들 및 장치들이 개시된다. 상기 시스템들 중 하나는 동작들을 수행하도록 구성된 메모리 인터페이스 서브시스템을 포함하며, 상기 동작들은, 외부 메모리 내의 복수의 위치들 각각에 대한 각 콘텐츠-기반 가중치를 결정하는 동작; 상기 외부 메모리 내의 상기 복수의 위치들 각각에 대한 각 할당 가중치를 결정하는 동작; 상기 위치에 대한 각 할당 가중치 및 상기 위치에 대한 각 콘텐츠-기반 가중치로부터 상기 외부 메모리 내의 복수의 위치들 각각에 대한 각 최종 기록 가중치를 결정하는 동작; 그리고 상기 최종 기록 가중치에 따라 상기 기록 벡터에 의해 정의된 데이터를 상기 외부 메모리에 기록하는 동작을 포함한다.

Description

외부 메모리로 신경망들 증강
본 명세서는 신경망 시스템 아키텍처들에 관한 것이다.
신경망들은 수신된 입력에 대한 출력을 예측하기 위해 하나 이상의 비선형 유닛 계층들(layers)을 사용하는 기계 학습 모델들이다. 일부 신경망들은 출력층 외에도 하나 이상의 은닉층을 포함한다. 각각의 은닉층의 출력은 네트워크의 다음 계층, 즉 다음 은닉층 또는 출력층에 대한 입력으로 사용된다. 상기 네트워크의 각 계층은 각각의 파라미터 세트의 현재 값들에 따라 수신된 입력으로부터 출력을 생성한다.
일부 신경망들은 순환 신경망들이다. 순환 신경망은 입력 시퀀스를 수신하고 그리고 상기 입력 시퀀스로부터 출력 시퀀스를 생성하는 신경망이다. 특히, 순환 신경망은 네트워크의 내부 상태의 일부 또는 전부를 현재 출력을 계산할 때 이전 입력을 프로세싱하는 데 사용할 수 있다. 예시적인 순환 신경망은 하나 이상의 LSTM(Long Short-Term Memory) 메모리 블록을 포함하는 LSTM 신경망이다. 각각의 LSTM 메모리 블록은, 예를 들어 LSTM 신경망의 다른 컴포넌트들에 제공되거나 현재 활성화를 생성하는데 사용하기 위해, 셀이 그 셀에 대한 이전 상태들을 저장할 수 있게 하는 출력 게이트, 삭제 게이트(forget gate) 및 입력 게이트를 각각 포함하는 하나 이상의 셀을 포함할 수 있다.
본 명세서는 증강된 신경망 시스템들과 관련된 기술을 설명한다. 일반적으로, 증강된 신경망 시스템은 신경망 입력을 수신하고 그리고 신경망 출력을 생성하도록 구성된 신경망; 상기 신경망의 외부에 있고, 상기 신경망 출력의 부분들로부터 도출된 값들을 저장하는 메모리와 같은 외부 메모리; 그리고 상기 신경망 출력의 부분들을 수신하고, 상기 수신된 부분들을 이용하여 상기 외부 메모리로부터 소거, 기록 및 판독하도록 구성된 메모리 인터페이스 서브시스템을 포함한다.
본 명세서에서는 시스템 출력들의 시퀀스를 생성하도록 시스템 입력들의 시퀀스를 프로세싱하기 위한 증강된 신경망 시스템이 설명된다. 상기 증강된 신경망 시스템은 신경망을 포함하며, 상기 신경망은 신경망 입력들의 시퀀스를 수신하고, 상기 신경망 입력으로부터 신경망 출력을 생성하도록 각 신경망 입력을 프로세싱하도록 구성된다. 상기 신경망 출력은 시스템 출력 부분, 판독 부분, 기록 키 및 기록 벡터를 포함한다. 상기 신경망 시스템은 외부 메모리; 그리고 메모리 인터페이스 서브시스템을 더 포함한다. 상기 메모리 인터페이스 서브시스템은, 신경망 출력들 각각에 대해, 동작들을 수행하도록 구성되며, 상기 동작들은, 시스템 출력들의 시퀀스에서 시스템 출력으로서 시스템 출력 부분으로부터 도출된 출력을 제공하는 동작; 상기 기록 키로부터 상기 외부 메모리의 복수의 위치들 각각에 대한 각각의 콘텐츠-기반 가중치를 결정하는 동작; 상기 외부 메모리의 상기 복수의 위치들 각각이 상기 위치에 저장된 데이터의 변경을 위해 얼마나 이용 가능한지에 기초하여 상기 외부 메모리의 상기 복수의 위치들 각각에 대한 각 할당 가중치를 결정하는 동작; 상기 위치에 대한 상기 각각의 콘텐츠-기반 가중치 및 상기 위치에 대한 상기 각 할당 가중치로부터 상기 외부 메모리의 상기 복수의 위치들 각각에 대한 각 최종 기록 가중치를 결정하는 동작; 상기 최종 기록 가중치에 따라 상기 기록 벡터에 의해 정의된 데이터를 상기 외부 메모리에 기록하는 동작; 상기 판독된 부분으로부터 상기 외부 메모리의 상기 복수의 위치들 각각에 대한 하나 이상의 세트의 판독 가중치를 결정하는 동작; 상기 세트의 판독 가중치에 따라 상기 외부 메모리로부터 데이터를 판독하는 동작; 그리고 상기 외부 메모리로부터 판독된 상기 데이터를 신경망 입력들의 시퀀스에서 다음 신경망 입력을 생성하도록 시스템 입력들의 시퀀스에서 다음 시스템 입력과 결합하는 동작을 포함한다.
상기 외부 메모리의 복수의 위치들 각각에 대한 각 할당 가중치를 결정하는 동작은 상기 위치의 가용성이 사용되는 정도를 나타내는 상기 위치들의 각각에 대한 각 사용량(usage) 값을 결정하는 동작; 상기 사용량 값들에 따라 상기 위치들을 정렬(ordering)하는 동작; 그리고 상기 정렬과 상기 사용량 값들에 기초하여 상기 위치들 각각에 대한 상기 각 할당 가중치를 결정하는 동작을 포함할 수 있다. 상기 위치들 각각에 대한 각 사용량 값들을 결정하는 동작은, 이전 신경망 출력을 위해 상기 위치에 기록하는데 사용된 이전 최종 기록 가중치에 기초하여 상기 위치에 대한 이전 사용량 값을 증가시키는 동작을 포함할 수 있다. 상기 신경망 출력은 상기 외부 메모리에 기록할 때 상기 복수의 위치들 각각이 해제(free)될 수 있는 범위를 정의하는 프리 게이트들의 세트를 포함할 수 있고, 상기 위치들 각각에 대한 상기 각 사용량 값을 결정하는 동작은 상기 위치에 대한 각 사용량 값을 생성하도록 상기 위치가 해제될 수 있는 범위에 기초하여 상기 위치에 대한 상기 증가된 이전 사용량 값을 변경하는 동작을 포함할 수 있다.
상기 사용량 값들에 따라 상기 위치들을 정렬하는 동작은 사용량의 오름차순으로 상기 위치들을 정렬하는 동작을 포함할 수 있다. 상기 위치들 각각에 대한 상기 각 할당 가중치를 결정하는 동작은, 상기 위치에 대한 상기 사용량 값을 1에서 감산함으로써 상기 위치에 대한 초기 할당 가중치를 결정하는 동작; 그리고 상기 정렬 내의 다른 포지션들에서의 다른 위치들에 대한 상기 사용량 값들에 기초하여 상기 초기 할당 가중치를 변경하는 동작을 포함할 수 있다.
상기 신경망 출력은, 상기 콘텐츠-기반 가중치들과 상기 할당 가중치들 간의 보간(interpolation)을 제어(govern)하는 할당 게이트와, 상기 외부 메모리에 대한 기록의 기록 강도를 제어하는 기록 게이트를 포함할 수 있다. 상기 복수의 위치들 각각에 대한 각 최종 기록 가중치를 결정하는 동작은, 상기 위치에 대한 상기 콘텐츠-기반 가중치와 상기 할당 게이트에 따른 상기 위치에 대한 할당 가중치 사이를 보간하는 동작, 그리고 상기 위치에 대한 상기 최종 기록 가중치를 결정하도록 상기 기록 게이트에 따라 상기 보간의 결과를 게이팅하는 동작을 포함할 수 있다.
상기 신경망 출력은 소거 벡터를 더 포함할 수 있다. 상기 동작들은 상기 신경망 출력들 각각에 대하여, 상기 최종 기록 가중치들 및 상기 소거 벡터에 따라 상기 외부 메모리로부터 소거하는 동작을 더 포함할 수 있다.
본 명세서에서는 또한 시스템 출력들의 시퀀스를 생성하도록 시스템 입력들의 시퀀스를 프로세싱하기 위한 증강된 신경망 시스템이 설명된다. 상기 증강된 신경망 시스템은 신경망을 포함하며, 상기 신경망은 신경망 입력들의 시퀀스를 수신하고, 그리고 상기 신경망 입력으로부터 신경망 출력을 생성하기 위해 각각의 신경망 입력을 프로세싱하도록 구성된다. 상기 신경망 출력은 시스템 출력 부분, 기록 부분, 하나 이상의 판독 헤드(read head) 각각에 대한 각 판독 키 및 기록 벡터를 포함할 수 있다. 상기 증강된 신경망 시스템은 외부 메모리 및 메모리 인터페이스 서브시스템을 더 포함한다. 상기 메모리 인터페이스 서브시스템은 신경망 출력들 각각에 대해, 동작들을 수행하도록 구성되며, 상기 동작들은, 시스템 출력들의 시퀀스에서 시스템 출력으로서 시스템 출력 부분으로부터 도출된 출력을 제공하는 동작; 상기 신경망 출력의 상기 기록 부분으로부터 상기 외부 메모리의 복수의 위치들 각각에 대한 각 기록 가중치를 결정하는 동작; 상기 기록 벡터에 의해 정의된 데이터를 각 기록 가중치에 따라 상기 외부 메모리에 기록하는 동작; 하나 이상의 판독 헤드 각각에 대해, 상기 판독 헤드에 대한 판독 키로부터 상기 외부 메모리의 복수의 위치들 각각에 대한 각 콘텐츠-기반 판독 가중치를 결정하고, 상기 메모리 인터페이스 서브시스템에 의해 수행된 이전의 기록 동작들의 가중치들로부터 상기 외부 메모리의 상기 복수의 위치들 각각에 대한 하나 이상의 각 히스토리 가중치들을 결정하고, 상기 하나 이상의 히스토리 가중치 및 상기 콘텐츠-기반 판독 가중치로부터 상기 복수의 위치들 각각에 대한 각 최종 판독 가중치를 결정하고, 상기 최종 판독 가중치에 따라 상기 외부 메모리로부터 데이터를 판독하는 동작; 그리고 상기 외부 메모리로부터 판독된 상기 데이터를 상기 신경망 입력들의 시퀀스에서 다음 신경망 입력을 생성하도록 상기 시스템 입력들의 시퀀스에서 다음 시스템 입력과 결합하는 동작을 포함한다. 상기 동작들은 상기 신경망 출력들 각각에 대해, 상기 외부 메모리의 복수의 위치들 각각에 대한 소거 가중치들의 하나 이상의 세트들을 결정하는 동작; 그리고 상기 소거 가중치들의 상기 세트들에 따라 상기 외부 메모리로부터 데이터를 소거하는 동작을 더 포함할 수 있다.
상기 신경망 출력은 하나 이상의 히스토리 가중치들과 상기 콘텐츠-기반 판독 가중치들 사이의 보간을 제어하는 각각의 판독 헤드에 대한 각 판독 모드 벡터를 포함할 수 있다. 상기 하나 이상의 히스토리 가중치 및 상기 콘텐츠-기반 판독 가중치로부터 상기 복수의 위치들 각각에 대한 각 최종 판독 가중치를 결정하는 동작은, 상기 판독 모드 벡터에 따라 상기 위치에 대한 상기 콘텐츠-기반 판독 가중치와 상기 위치에 대한 하나 이상의 히스토리 가중치들 사이를 보간하는 동작을 포함할 수 있다.
상기 동작들은 상기 메모리 인터페이스 서브시스템에 의해 상기 외부 메모리상에서 수행된 이전의 기록 동작들에 대한 기록 가중치들의 히스토리를 트랙킹하는 시간 링크 매트릭스(temporal link matrix)를 유지하는 동작을 더 포함할 수 있다. 상기 동작들은 상기 신경망 출력들 각각에 대해, 상기 신경망 출력에 대한 기록 가중치들에 기초하여 상기 시간 링크 매트릭스를 업데이트하는 동작을 더 포함할 수 있다. 상기 외부 메모리의 상기 복수의 위치들 각각에 대한 하나 이상의 각 히스토리 가중치들을 결정하는 동작은 상기 업데이트된 시간 링크 매트릭스로부터 상기 복수의 위치들 각각에 대한 각 역방향 히스토리 가중치를 결정하는 동작을 포함할 수 있다. 상기 업데이트된 시간 링크 매트릭스로부터 상기 복수의 위치들 각각에 대한 각 역방향 히스토리 가중치를 결정하는 동작은, 이전의 신경망 출력에 대한 상기 판독 헤드에 대한 최종 판독 가중치들로부터 도출된 벡터와 상기 업데이트된 시간 링크 매트릭스 사이의 매트릭스 곱을 수행하는 동작을 포함할 수 있다.
상기 외부 메모리 내의 복수의 위치들 각각에 대한 하나 이상의 각 히스토리 가중치들을 결정하는 동작은, 상기 업데이트된 시간 링크 매트릭스의 전치로부터 상기 복수의 위치들 각각에 대한 각 순방향 히스토리 가중치를 결정하는 동작을 포함할 수 있다. 상기 업데이트된 시간 링크 매트릭스로부터 상기 복수의 위치들 각각에 대한 각 역방향 히스토리 가중치를 결정하는 동작은, 이전의 신경망 출력에 대한 상기 판독 헤드에 대한 최종 판독 가중치들로부터 도출된 벡터와 상기 업데이트된 시간 링크 매트릭스의 전치 간의 매트릭스 곱을 수행하는 동작을 포함할 수 있다.
상기 시간 링크 매트릭스를 업데이트하는 동작은 상기 위치가 기록된 최종 위치인 정도를 나타내는 상기 복수의 위치들 각각에 대한 각 우선순위 가중치를 결정하는 동작; 그리고 상기 복수의 위치들 각각에 대한 상기 우선순위 가중치 및 상기 신경망 출력에 대한 상기 기록 가중치를 이용하여 상기 시간 링크 매트릭스를 업데이트하는 동작을 포함할 수 있다.
또한, 하나 이상의 컴퓨터 저장 매체상에 인코딩된 컴퓨터 프로그램 제품이 설명되며, 상기 컴퓨터 프로그램 제품은 하나 이상의 컴퓨터에 의해 실행될 때 상기 하나 이상의 컴퓨터로 하여금 상술한 증강된 신경망 시스템들 중 임의의 증강된 신경망 시스템을 구현하게 하는 명령어들을 포함한다.
또한, 상술한 증강된 신경망 시스템들 중 임의의 증강된 신경망 시스템의 메모리 인터페이스 서브시스템에 의해 수행되는 동작들을 포함하는 방법이 기술된다.
특정 동작들이나 액션들을 수행하도록 구성된 하나 이상의 컴퓨터 시스템은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합으로 인해 상기 시스템이 상기 동작들 또는 액션들을 수행하도록 하는 시스템을 의미한다. 특정 동작들 또는 액션들을 수행하도록 구성되는 하나 이상의 컴퓨터 프로그램은 데이터 처리 장치에 의해 실행될 때 상기 장치로 하여금 상기 동작들 또는 액션들을 수행하게 하는 명령어들을 포함하는 하나 이상의 프로그램을 의미한다.
본 명세서에서 설명된 요지는 다음의 장점들 중 하나 이상을 실현하도록 특정 실시예들에서 구현될 수 있다. 외부 메모리, 즉 신경망의 외부에 있는 메모리로 신경망을 증강함으로써, 상기 증강된 신경망은 다양한 기계 학습 태스크들을 위해 수신된 입력들로부터의 출력들을 보다 정확하게 생성할 수 있다. 특히, 입력들의 시퀀스로부터 소정의 입력의 프로세싱을 용이하게 하기 위해, 상기 증강된 신경망은 상기 외부 메모리로부터 판독함으로써 시퀀스 내의 다수의 선행 입력들을 프로세싱하는 동안 상기 증강된 신경망에 의해 생성된 정보를 효과적으로 사용할 수 있다. 유사하게, 상기 시퀀스로부터의 후속 입력들의 프로세싱을 용이하게 하기 위해, 상기 증강된 신경망은 현재 입력의 프로세싱 중에 생성된 정보를 상기 외부 메모리에 저장할 수 있다. 또한, 상기 외부 메모리의 사이즈는 상기 증강된 신경망의 훈련 가능한 파라미터들의 수를 증가시키지 않고 증가될 수 있다. 또한, 상기 외부 메모리를 액세스하기 위한 전체 메커니즘이 차별화되게 처리될 수 있기 때문에, 상기 증강된 신경망 시스템은 효율적으로 훈련될 수 있다.
외부 메모리로 신경망을 증강하기 위한 다른 아키텍쳐와 비교하여, 본 명세서에 기재된 시스템은 신경망이 개선된 판독, 기록 및 소거 메커니즘을 통해 상기 외부 메모리를 더 잘 사용할 수 있게 한다. 예를 들어, 본 명세서에 설명된 시스템은 상기 신경망이 할당된 메모리의 블록들이 겹치거나 간섭하지 않도록 하는 메커니즘을 사용하여 상기 외부 메모리에 기록할 수 있게 해준다. 또한, 본 명세서에 설명된 시스템은 상기 신경망이 긴 시스템 입력 시퀀스를 프로세싱할 때 이미 기록된 메모리 위치들을 해제하여 메모리를 재사용할 수 있게 한다. 또한, 본 명세서에 기술된 시스템은 기록들이 이루어진 순서를 트랙킹하여, 상기 신경망이 상기 외부 메모리에 기록된 순차 정보를 보존하고, 상기 기록 헤드가 상기 메모리의 다른 부분으로 점프하더라도, 상기 외부 메모리로부터 판독하기 위한 기록들의 순서를 복구할 수 있게 한다.
본 명세서의 요지의 하나 이상의 실시예들의 세부사항은 첨부된 도면들 및 이하의 설명에서 설명된다. 상기 요지의 다른 특징들, 양태들 및 장점들은 상세한 설명, 도면들 및 청구 범위로부터 명백해질 것이다.
도 1a는 증강된 신경망 시스템의 예를 도시한다.
도 1b는 예시적인 증강된 신경망 시스템의 동작의 개념도이다.
도 2는 시스템 입력으로부터 시스템 출력을 생성하기 위한 예시적인 프로세스의 흐름도이다.
도 3은 외부 메모리에 기록하기 위한 예시적인 프로세스의 흐름도이다.
도 4는 상기 외부 메모리 내의 위치들에 대한 할당 가중치들을 결정하기 위한 예시적인 프로세스의 흐름도이다.
도 5는 상기 외부 메모리로부터 소거하기 위한 예시적인 프로세스의 흐름도이다.
도 6은 소정의 판독 헤드에 대해 외부 메모리로부터 판독하기 위한 예시적인 프로세스의 흐름도이다.
도 7은 판독 헤드에 대한 히스토리 가중치를 결정하기 위한 예시적인 프로세스의 흐름도이다.
도 8은 외부 메모리 내의 위치들에 대한 콘텐츠-기반 가중치들을 생성하기 위한 예시적인 프로세스의 흐름도이다.
다양한 도면들에서 동일한 참조 번호들 및 명칭들은 동일한 요소들을 나타낸다.
도 1a는 예시적인 증강된 신경망 시스템(100)을 도시한다. 상기 증강된 신경망 시스템(100)은 하나 이상의 위치들에서 하나 이상의 컴퓨터들 상의 컴퓨터 프로그램들로 구현되는 시스템의 예로서, 이하에서 설명되는 시스템들, 컴포넌트들 및 기술들이 구현된다.
상기 증강된 신경망 시스템(100)은 시스템 입력들의 시퀀스를 수신하고, 상기 시스템 입력들로부터 시스템 출력들의 시퀀스를 생성하는 기계 학습 시스템이다. 예를 들어, 상기 증강된 신경망 시스템(100)은 입력 시퀀스의 일부로서 시스템 입력 x를 수신하고, 그 시스템 입력 x로부터 시스템 출력 y를 생성할 수 있다. 증강된 신경망 시스템(100)은 상기 생성된 출력들의 시퀀스를 출력 데이터 저장소에 저장하거나, 예를 들어 사용자에게 제시하거나 다른 시스템에 의한 추가 프로세싱를 위한 다른 즉각적인 목적을 위해 출력을 제공할 수 있다.
증강된 신경망 시스템(100)은 임의의 종류의 디지털 데이터 입력을 수신하고, 임의의 종류의 스코어, 분류 또는 상기 입력에 기초한 회귀 출력을 생성하도록 구성될 수 있다.
일례로서, 증강된 신경망 시스템(100)은 그래프 데이터 프로세싱 태스크, 즉 시스템이 그래프 구조에서 패턴들을 식별하고 탐색할 것을 요구하는 태스크를 수행하도록 구성될 수 있다. 특히, 증강된 신경망 시스템(100)으로의 상기 입력들이 그래프의 부분들의 표현, 예를 들어, 그래프의 노드들 및 에지들의 직렬화된 버전을 나타내는 벡터들의 시퀀스 및 상기 그래프와 관련된 쿼리인 경우, 상기 입력에 기초하여 생성된 상기 출력은 상기 쿼리에 대한 응답을 정의할 수 있는바, 예를 들어 하나의 노드에서 다른 노드로 상기 그래프를 통과하는 최단 경로를 정의할 수 있으며, 상기 그래프에서 누락된 노드들 또는 에지들과 같은 상기 그래프로부터 누락된 데이터를 정의할 수 있다. 또 다른 예로서, 상기 증강된 신경망 시스템(100)에 대한 상기 입력들이 그래프의 부분들의 표현으로서, 예를 들어 상기 그래프의 노드들 및 에지들의 직렬화된 버전을 나타내는 벡터들의 시퀀스인 경우, 상기 출력은 카테고리들의 세트 각각에 대한 스코어들을 포함하는 분류 출력일 수 있으며, 각 스코어는 상기 카테고리에 속하는 상기 그래프의 추정된 우도(likelihood)를 나타낸다.
또 다른 예로서, 증강된 신경망 시스템(100)에 대한 상기 입력들이 이미지들로부터 추출된 이미지들 또는 피쳐들(features)인 경우, 소정의 이미지에 대한 증강된 신경망 시스템(100)에 의해 생성된 상기 출력은 오브젝트 카테고리들의 세트 각각에 대한 스코어들일 수 있고, 각각의 스코어는 상기 이미지가 그 카테고리에 속하는 오브젝트의 이미지를 포함하는 추정된 우도를 나타낸다.
또 다른 예로서, 증강된 신경망 시스템(100)에 대한 상기 입력들이 인터넷 자원들(예를 들어, 웹 페이지들), 문서들, 문서들의 부분들, 또는 인터넷 자원들, 문서들 또는 문서의 부분들로부터 추출된 피쳐들인 경우, 소정의 인터넷 자원, 문서 또는 문서의 부분에 대해 증강된 신경망 시스템(100)에 의해 생성된 상기 출력은 토픽들의 세트 각각에 대한 스코어일 수 있으며, 각 스코어는 인터넷 자원, 문서 또는 문서 부분이 상기 토픽에 관한 것으로 추정된 우도를 나타낸다.
또 다른 예로서, 증강된 신경망 시스템(100)에 대한 상기 입력들이 특정 광고에 대한 노출 컨텍스트의 피쳐들인 경우, 증강된 신경망 시스템(100)에 의해 생성된 출력은 특정 광고가 클릭될 추정 우도를 나타내는 스코어일 수 있다.
또 다른 예로서, 증강된 신경망 시스템(100)에 대한 상기 입력들이 사용자에 대한 개인화된 추천의 피쳐들, 예컨대 그 추천에 대한 컨텍스트를 특징짓는 피쳐들, 예를 들어 상기 사용자에 의해 취해진 이전의 액션들을 특징짓는 피쳐들인 경우, 증강된 신경망 시스템(100)에 의해 생성된 상기 출력은 콘텐츠 아이템들의 세트 각각에 대한 스코어일 수 있고, 각 스코어는 상기 사용자가 콘텐츠 아이템을 추천하는 것에 순조롭게 응답할 것으로 추정된 우도를 나타낸다.
또 다른 예로서, 증강된 신경망 시스템(100)에 대한 상기 입력들이 하나의 언어로된 텍스트라면, 증강된 신경망 시스템(100)에 의해 생성된 상기 출력은 다른 언어로된 텍스트의 피스 세트(set of pieces)의 각각에 대한 스코어일 수 있고, 각 스코어는 상기 다른 언어의 텍스트의 피스가 상기 다른 언어로의 입력 텍스트의 적절한 번역인 것으로 추정된 우도를 나타낸다.
또 다른 예로서, 증강된 신경망 시스템(100)에 대한 상기 입력들이 발언된 발화, 발언된 발화의 시퀀스 또는 이 둘 중 하나로부터 도출된 피쳐들인 경우, 증강된 신경망 시스템(100)에 의해 생성된 상기 출력은 텍스트의 피스 세트의 각각에 대한 스코어일 수 있고, 각각의 스코어는 텍스트 피스가 발화 또는 발화 시퀀스에 대한 정확한 트랜스크립트(transcript)인 것으로 추정된 우도를 나타낸다.
또 다른 예로서, 증강된 신경망 시스템(100)은 음성 합성 시스템의 일부일 수 있다.
또 다른 예로서, 증강된 신경망 시스템(100)은 비디오 프로세싱 시스템의 일부일 수 있다.
또 다른 예로서, 증강된 신경망 시스템(100)은 대화 시스템의 일부일 수 있다.
또 다른 예로서, 증강된 신경망 시스템(100)은 자동 완성 시스템의 일부일 수 있다.
다른 예로서, 증강된 신경망 시스템(100)은 텍스트 프로세싱 시스템의 일부일 수 있다.
또 다른 예로서, 증강된 신경망 시스템(100)은 강화 학습 시스템의 일부일 수 있다.
특히, 증강된 신경망 시스템(100)은 신경망(102) 및 외부 메모리(104)를 포함한다. 신경망(102)은 피드포워드(feedfoward) 신경망 또는 순환 신경망, 예를 들어, 얕은(shallow) 또는 심층 LSTM(deep long short-term memory) 신경망이 될 수 있으며, 이는 신경망 입력을 수신하고, 그 신경망 입력을 프로세싱하여 신경망 출력을 생성하도록 구성된다.
일반적으로, 신경망(102)에 의해 수신된 상기 신경망 입력은 현재 시스템 입력과 메모리 인터페이스 서브시스템(106)에 의해 상기 외부 메모리로부터 판독된 데이터의 조합이다. 예를 들어, 신경망(102)은 외부 메모리(104)로부터 판독된 데이터(r) 및 현재 시스템 입력(x)을 수신하고, 메모리 인터페이스 서브시스템(106)에 제공되는 추가 출력(o) 및 시스템 출력을 정의하는 데이터(y)를 포함하는 신경망 출력을 생성하도록 구성될 수 있다.
메모리 인터페이스 서브시스템(106)은 신경망에 의해 생성된 출력들, 예를 들어 신경망 출력(o+y)(+ 기호 연결 포함)의 부분(o)을 수신하고, 상기 수신된 출력들을 외부 메모리(104) 상에서 수행되는 소거, 판독 및 기록 동작으로 변환한다. 즉, 메모리 인터페이스 서브시스템(106)은 신경망(102)으로부터 출력(o)을 수신하고, 그리고 출력(o)에 기초하여, 외부 메모리(104)로부터 데이터(e)를 소거하고, 외부 메모리(104)에 데이터(w)를 기록하고, 외부 메모리(104)로부터 데이터(r)를 판독한다. 메모리 인터페이스 서브시스템(106)에 의해 판독된 데이터는 예를 들어 시스템 입력과 함께 이후 신경망 입력의 부분으로서 신경망(102)에 제공될 수 있다.
일반적으로, 출력 부분(o)은 외부 메모리(104)에 기록시 메모리 인터페이스 서브시스템(106)에 의해 사용되는 기록 부분, 외부 메모리(104)로부터 판독하기 위해 메모리 인터페이스 서브시스템(106)에 의해 사용되는 하나 이상의 판독 헤드 각각에 대한 각 판독 부분, 및 외부 메모리(104)로부터의 소거시에 메모리 인터페이스 서브시스템(106)에 의한 사용을 위한 소거 부분을 포함한다.
외부 메모리(104)는 메모리 인터페이스 서브시스템(106)에 의해 외부 메모리(104)에 기록된 데이터 벡터들을 저장한다. 일부 구현예들에서, 외부 메모리(104)는 요소들(M)(i, j, t)을 갖는 실수 값의 매트릭스 메모리이고, 여기서 i는 위치를 나타내고, j는 벡터 요소를 나타내고, t는 시간을 나타낸다. 따라서, M(i, j, t)는 시각(t)에서 상기 외부 메모리(104) 내의 위치(i)에 저장된 벡터의 요소(j)에 저장된 값이 될 것이다. 이러한 방식으로 외부 메모리(104), 메모리 인터페이스 서브시스템(106) 및 신경망(102)을 구성함으로써, 증강된 신경망 시스템(100)의 컴포넌트들은 완전히 차별화되는 것으로 취급되어, 증강된 신경망 시스템(100)이 효과적으로 훈련되도록 한다.
도 1b는 예시적인 증강된 신경망 시스템(100)의 동작의 개념도이다.
도 1b에 도시된 바와 같이, 신경망(102)은 신경망 입력("입력")을 수신하고 신경망 출력( "출력")을 생성한다. 메모리 액세스 서브시스템(106)은 상기 신경망 출력을 외부 메모리(104) 상의 기록 헤드 및 2개의 판독 헤드에 의해 수행되는 동작들로 변환한다. 특히, 메모리 액세스 서브시스템(106)은 상기 신경망 출력을 사용하여 외부 메모리에 기록 동작(160) 및 2번의 판독 동작(162 및 164)을 수행한다.
상기 기록 동작(160)을 수행하기 위해, 메모리 액세스 서브시스템(106)은 외부 메모리(104) 내의 위치들에 대한 사용량 값(170)을 유지한다. 각 사용량 값은 데이터를 저장할 해당 위치의 가용성이 사용되는 정도를 나타낸다. 사용량 값(170)으로부터, 메모리 액세스 서브시스템(106)은 외부 메모리(104) 내의 위치들 각각이 상기 위치에 저장된 데이터의 변경을 위해 얼마나 사용 가능한지를 결정한 다음, 그 가용성에 따라 외부 메모리(104)에 기록한다. 상기 외부 메모리로의 기록은 도 2-4를 참조하여 이하에서 보다 상세하게 설명된다.
판독 동작들(162 및 164) 각각을 수행하기 위해, 메모리 액세스 서브시스템(106)은 외부 메모리(104)상에서 수행된 이전의 기록 동작들에 대한 기록 가중치들의 히스토리를 트랙킹하는 링크 데이터(180)를 유지한다. 링크 데이터(180)로부터, 메모리 액세스 서브시스템(106)은 각각의 판독 헤드에 대한 가중치들의 각 세트를 생성한 다음, 그 생성된 가중치들에 따라 외부 메모리(104)로부터 판독한다. 상기 외부 메모리로부터의 판독은 도 2, 6 및 7을 참조하여 이하에서 보다 상세하게 설명된다.
도 1b의 예는 2개의 판독 헤드를 도시하고, 다른 예들에서, 메모리 액세스 서브시스템(106)은 다른 수의 판독 헤드, 예를 들어 1개, 3개 또는 5개를 사용한다.
도 2는 시스템 입력으로부터 시스템 출력을 생성하기 위한 예시적인 프로세스(200)의 흐름도이다. 편의상, 프로세스(200)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 증강된 신경망 시스템, 예를 들어, 본 명세서에 따라 적절히 프로그램된 도 1a의 증강된 신경망 시스템(100)은 프로세스(200)를 수행할 수 있다.
상기 시스템은 시스템 입력을 수신한다(단계 202). 상기 시스템 입력은 상기 시스템에 의해 수신된 시스템 입력들의 시퀀스 중 하나이다.
상기 시스템은 외부 메모리, 예컨대, 도 1a의 외부 메모리(104))로부터 판독함으로써 생성된 하나 이상의 판독 데이터 벡터들을 획득한다(단계 204). 일반적으로, 각각의 판독 데이터 벡터는 각각의 판독 헤드에 대응하고, 시스템 입력들의 상기 시퀀스에서 선행하는 입력을 프로세싱하는 동안 해당 판독 헤드를 사용하여 상기 외부 메모리로부터 판독함으로써 상기 시스템에 의해 생성된다.
상기 시스템은 상기 시스템 입력과 외부 메모리로부터 판독된 데이터를 결합함으로써 신경망 입력을 생성한다(단계 206). 예를 들어, 상기 시스템은 신경망 입력을 생성하도록 상기 시스템 입력 및 판독 데이터 벡터들 각각을 연결시킬 수 있다. 제1 시스템 입력에 대해, 상기 시스템은 시스템 입력을 미리 결정된 벡터, 예를 들어 상기 신경망의 학습된 상태(learned state)와 연관시킬 수 있다.
상기 시스템은 신경망, 예컨대 도 1a의 신경망(102)을 사용하여 상기 신경망 입력으로부터 신경망 출력을 생성하도록 신경망 입력을 프로세싱한다(단계 208). 구현예에 따라, 상기 신경망은 피드포워드 신경망, 예를 들어 콘볼루션 (convolutional) 신경망 또는 다른 종류의 심층 피드포워드 신경망, 또는 순환 신경망, 예를 들어 LSTM 신경망일 수 있다. 상기 신경망이 순환 신경망인 경우, 상기 순환 신경망은 또한 상기 신경망 출력을 생성하기 위해 현재의 신경망 입력을 프로세싱하는 시퀀스에서 선행하는 신경망 입력으로부터 상기 순환 신경망의 내부 상태를 사용한다. 일부 구현예들에서, 상기 신경망은 순환 및 피드포워드 계층들 모두를 포함한다.
상기 시스템은 상기 신경망 출력의 시스템 출력 부분으로부터 시스템 입력에 대한 시스템 출력을 생성한다(단계 210). 상기 신경망 출력의 시스템 출력 부분은 시스템 출력을 생성하는데 사용될 부분으로서, 예를 들어 시스템 관리자에 의해 지정된 신경망 출력의 미리 결정된 부분이고, 즉 신경망 출력의 동일한 부분이 신경망에 의해 생성된 각각의 출력에 대한 시스템 출력을 생성하는데 사용된다.
일부 구현예들에서, 상기 시스템은 상기 시스템 출력 부분을 상기 시스템 입력에 대한 상기 시스템 출력으로 제공한다. 그러나, 일부 다른 구현예들에서, 시스템은, 예를 들어, 단계 216을 참조하여 후술되는 바와 같이 상기 외부 메모리로부터 판독된 데이터 및 시스템 출력 부분을 결합하고(예를 들어, 연결하고), 상기 시스템 출력으로서 상기 연결된 출력을 제공하거나 상기 시스템 출력을 생성하기 위해 하나 이상의 변환(transformation)을 상기 연결된 출력에 적용한다.
상기 시스템은 상기 신경망 출력의 기록 부분을 사용하여 상기 외부 메모리에 기록한다(단계 212). 상기 신경망 출력의 기록 부분은 상기 외부 메모리에 기록할 때 사용되는 부분으로 지정된 상기 신경망 출력의 미리 결정된 부분이다.
특히, 상기 외부 메모리에 기록하기 위해, 상기 시스템은 상기 신경망 출력의 기록 부분을 사용하여 기록 가중치들을 결정하고, 그 기록 가중치들에 따라 상기 외부 메모리에 기록 벡터를 기록한다. 일반적으로, 상기 기록 가중치들은 콘텐츠-기반 기록 가중치들과 상기 외부 메모리 내의 위치들에 대한 할당 가중치들의 조합이다.
상기 기록 가중치들 및 상기 외부 메모리에 대한 기록을 결정하는 것은 도 3 및 도 4를 참조하여 이하에서 보다 상세하게 설명된다.
상기 시스템은 상기 신경망 출력의 소거 부분을 사용하여 상기 외부 메모리로부터 소거한다(단계 214). 상기 신경망 출력의 소거 부분은 상기 외부 메모리로부터 소거시 사용될 부분으로 지정된 상기 신경망 출력의 미리 결정된 부분이다. 특히, 상기 시스템은 상술한 최종 기록 가중치들에 따라 상기 소거 부분에 의해 정의된 소거 벡터를 사용하여 상기 외부 메모리로부터 소거한다. 상기 외부 메모리로부터의 소거는 도 5를 참조하여 이하에서 보다 상세하게 설명된다.
하나 이상의 판독 헤드들 각각에 대해, 상기 시스템은 상기 판독 헤드에 대한 판독 벡터를 생성하도록 상기 판독 헤드에 대한 상기 신경망 출력의 판독 부분을 사용하여 상기 외부 메모리로부터 판독한다(단계 216). 소정의 판독 헤드에 대한 신경망 출력의 판독 부분은 상기 판독 헤드를 사용하여 상기 외부 메모리로부터 판독하는데 사용될 부분으로서 지정된 상기 신경망 출력의 미리 결정된 부분이다. 즉, 각각의 판독 헤드는 상기 신경망 출력의 다른 부분에 할당된다.
특히, 판독 헤드를 사용하여 상기 외부 메모리로부터 판독하기 위해, 상기 시스템은 상기 판독 헤드에 대한 상기 신경망 출력의 판독 부분을 사용하여 판독 가중치들을 결정한 다음 상기 판독 가중치들에 따라 상기 외부 메모리 내의 위치들로부터 판독한다. 일반적으로, 상기 시스템은 상기 외부 메모리 내의 위치들에 대한 하나 이상의 히스토리 가중치들 및 콘텐츠-기반 가중치들로부터 소정의 판독 헤드에 대한 판독 가중치들을 결정한다.
상기 외부 메모리로부터 판독하고 판독 가중치들을 결정하는 것은 도 6 및 도 7을 참조하여 이하에서 보다 상세히 설명된다.
상기 시스템이 다수의 판독 헤드를 사용하여 상기 외부 메모리로부터 판독하는 구현예들에서, 상기 시스템은 소정의 시스템 입력에 대해 다수의 판독 동작을 수행하고, 각각의 다른 동작 세트와 병렬 및 독립적으로 다수의 판독 동작을 수행 할 수 있다. 일단 각 판독 헤드에 대해 판독 벡터가 생성되면, 상기 시스템은 판독 벡터들을 연결하여 상기 시스템 입력에 대한 최종 판독 벡터를 생성할 수 있다. 또한, 상기 시스템은 임의의 순서로 소거, 판독 및 기록 동작을 수행할 수 있다. 예를 들어, 일부 구현예들에서, 상기 시스템은 상기 외부 메모리를 소거한 다음 기록한 다음 판독한다. 그러나, 다른 구현예들에서, 상기 시스템은 상이한 순서로 이들 동작을 수행할 수 있다.
프로세스(200)는 시스템 입력들의 시퀀스에 대한 시스템 출력들의 시퀀스를 생성하도록 시스템 입력들의 시퀀스에서 각 시스템 입력에 대해 수행될 수 있다. 상기 시스템 입력들의 시퀀스는 원하는 출력, 즉 입력 시퀀스에 대해 상기 시스템에 의해 생성되어야하는 출력 시퀀스가 알려지지 않은 시퀀스일 수 있다.
또한, 상기 시스템은 상기 시스템을 훈련하기 위해, 즉 상기 신경망의 파라미터들에 대한 훈련된 값들 및 상기 외부 메모리로부터의 소거, 기록 및 판독에 사용되는 프로세스들의 임의의 추가 파라미터들을 결정하기 위해, 훈련 데이터 세트, 즉 상기 시스템에 의해 예측되어야 하는 출력이 알려진 입력 세트에 대한 입력들에 대해 프로세스(200)을 수행할 수 있다. 상기 시스템의 컴포넌트들이 완전히 차별화될 수 있기 때문에, 프로세스(200)는 상기 신경망이 순환 신경망이면 타임 트레이닝 기술을 통한 확률적인 기울기 하강법 역전파(stochastic gradient descent backpropagation)와 같은, 신경망을 훈련하기 위해, 종래의 기계 학습 훈련 기술의 일부로서 훈련 데이터 세트로부터 선택된 입력들에 대해 반복적으로 수행될 수 있다.
도 3은 상기 외부 메모리에 데이터를 기록하기 위한 예시적인 프로세스 (300)의 흐름도이다. 편의상, 프로세스(300)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 증강된 신경망 시스템, 예를 들어, 본 명세서에 따라 적절히 프로그램된 도 1a의 증강된 신경망 시스템(100)은 프로세스(300)를 수행할 수 있다.
상기 시스템은 상기 신경망 출력의 기록 부분을 수신한다(단계 302). 상기 신경망 출력의 기록 부분은 기록 키, 기록 강도 값, 기록 벡터, 프리 게이트 세트, 할당 게이트 및 기록 게이트를 포함한다. 일부 구현예들에서, 상기 시스템은 기록 키, 기록 강도 값, 기록 벡터, 프리 게이트, 할당 게이트 및 기록 게이트를 생성하기 위해 상기 값들이 정확한 도메인에 있도록 하기 위해 상기 기록 부분을 하나 이상의 도메인 시프팅 함수들로 프로세싱한다.
상기 시스템은 상기 기록 부분에 포함된 기록 강도 값 및 상기 기록 키로부터 상기 외부 메모리 내의 위치들에 대한 콘텐츠-기반 가중치들을 결정한다(단계 304). 일반적으로, 소정의 위치에 대한 콘텐츠-기반 가중치는 상기 위치의 데이터가 상기 기록 키와 얼마나 유사한지를 반영한다. 상기 키로부터 콘텐츠-기반 가중치들을 결정하는 것은 도 8을 참조하여 이하에서 설명된다.
상기 시스템은 상기 외부 메모리 내의 위치들 각각이 상기 위치에 저장된 데이터의 변경을 위해 얼마나 사용 가능한지에 기초하여 그리고 상기 프리 게이트들을 사용하여 상기 외부 메모리 내의 위치들에 대한 할당 가중치들을 결정한다(단계 306). 일반적으로, 상기 할당 가중치들을 결정하기 위해, 상기 시스템은 상기 위치의 상기 가용성이 사용되는 정도를 나타내는 각 위치에 대한 사용량 값을 결정한 다음, 사용량 값들, 이전 신경망 출력에 대한 이전 최종 기록 가중치들 및 프리 게이트들에 기초하여 상기 할당 가중치들을 생성한다. 상기 할당 가중치들의 생성은 도 4를 참조하여 이하에서보다 상세하게 설명된다.
상기 시스템은 상기 콘텐츠-기반 가중치들 및 할당 가중치들로부터 상기 외부 메모리 내의 위치들에 대한 최종 기록 가중치들을 결정한다(단계 308).
특히, 상기 시스템은 상기 콘텐츠-기반 가중치들과 할당 간의 보간을 제어하는 상기 할당 게이트와 상기 외부 메모리에 대한 현재 기록의 기록 강도를 제어하는 기록 게이트를 사용하여 상기 위치에 대한 최종 기록 가중치를 생성하도록 각 위치에 대한 상기 콘텐츠-기반 가중치 및 상기 할당 가중치를 결합한다.
더 구체적으로, 각 위치에 대해, 상기 시스템은 상기 할당 게이트에 따라 상기 위치에 대한 할당 가중치 및 상기 위치에 대한 콘텐츠-기반 가중치 사이를 보간한 다음, 상기 위치에 대한 상기 최종 기록 가중치를 결정하도록 상기 기록 게이트에 따라 상기 보간의 결과를 게이팅한다.
상기 시스템은 상기 최종 기록 가중치들에 따라 상기 기록 벡터에 의해 정의된 데이터를 상기 외부 메모리에 기록한다(단계 310). 즉, 상기 외부 메모리 내의 소정의 위치에 기록하기 위해, 상기 시스템은 상기 기록 벡터에 상기 위치에 대한 최종 기록 가중치를 곱하여 상기 위치에 대한 조정된 기록 벡터를 결정한 다음, 상기 위치에 현재 저장된 벡터를 상기 위치에 대한 상기 조정된 기록 벡터와 합산한다.
도 4는 외부 메모리 내의 위치들에 대한 할당 가중치들을 결정하기 위한 예시적인 프로세스(400)의 흐름도이다. 편의상, 프로세스(400)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 증강된 신경망 시스템, 예를 들어, 본 명세서에 따라 적절하게 프로그램된 도 1a의 증강된 신경망 시스템(100)은 프로세스(400)를 수행할 수 있다.
상기 시스템은 상기 외부 메모리 내의 위치들 각각에 대한 각 이전 사용량 값을 액세스한다(단계 402).
소정의 위치에 대한 이전 사용량 값은 상기 위치의 가용성이 상기 외부 메모리에 대한 이전 기록 전에 사용되는 정도를 나타낸다. 상기 현재 기록이 상기 외부 메모리에 대한 최초 기록인 경우, 상기 시스템은 각 위치에 대한 이전 사용량 값으로서 디폴트 사용 값, 예를 들어 0을 사용한다.
상기 시스템은 상기 이전 사용량 값을 업데이트하여 각 위치에 대한 각 현재 사용량 값을 결정한다(단계 404).
특히, 각 위치에 대해, 상기 시스템은 상기 위치에 이전에 기록하는 동안 상기 위치에 기록하는데 사용된 이전 최종 기록 가중치에 기초하여 상기 이전 사용량 값을 증가시킨다. 상기 현재 기록이 첫 번째 기록인 경우, 상기 시스템은 상기 사용량 값을 증가시키지 않는다.
각 위치에 대해, 상기 시스템은 프리 게이트들에 기초하여 상기 위치에 대한 상기 증가된 이전 사용량 값을 수정하여 상기 위치에 대한 현재 사용량 값을 결정한다. 일반적으로, 상기 프리 게이트들은 상기 외부 메모리에 기록할 때 상기 위치들 각각이 해제될 수 있는 범위를 정의한다.
특히, 상기 기록 부분은 상기 외부 메모리로부터 판독하기 위해 상기 시스템에 의해 사용되는 각각의 판독 헤드에 대한 각 프리 게이트를 포함한다. 상기 시스템은 각 판독 헤드에 대한 이전 최종 판독 가중치들 및 상기 프리 게이트로부터의 상기 위치에 대한 메모리 보유(retention) 값을 결정한다. 소정의 위치에 대한 메모리 보유 값은 상기 프리 게이트들에 의해 상기 위치가 해제되지 않는 정도를 정의한다.
특히, 일부 구현예들에서, 소정의 메모리 위치에 대한 상기 메모리 보유 값(
Figure pct00001
)은 수학식 1을 만족시킨다.
Figure pct00002
여기서, i는 1에서부터 판독 헤드들(R)의 총 수까지이고,
Figure pct00003
는 i 번째 판독 헤드의 프리 게이트이며,
Figure pct00004
는 i번째 판독 헤드의 이전 최종 판독 가중치이다.
그 다음 상기 시스템은 상기 메모리 위치에 대한 상기 메모리 보유 값을 사용하여 상기 메모리 위치에 대한 상기 증가된 이전 사용량 값을 감소시킨다. 일부 구현예들에서, 소정의 메모리 위치에 대한 현재 사용량 값(
Figure pct00005
)은 수학식 2를 만족시킨다.
Figure pct00006
여기서,
Figure pct00007
는 상기 위치의 이전 사용량 값이며,
Figure pct00008
는 상기 위치의 이전 최종 기록 가중치이며,
Figure pct00009
는 상기 위치의 메모리 보유 값이다.
상기 시스템은 사용량 값들에 따라, 즉 사용량 오름차순으로 상기 위치들을 정렬한다(단계 406).
그 다음, 상기 시스템은 상기 위치들에 대한 사용량 값들 및 상기 정렬에 기초하여 각각의 위치에 대한 각 할당 가중치를 결정한다(단계 408).
일부 구현예들에서, 상기 시스템은 상기 위치에 대한 사용량 값을 1에서 감산함으로써 각각의 위치에 대한 각 초기 할당 가중치를 결정한 다음, 상기 위치에 대한 할당 가중치를 생성하도록 상기 정렬의 다른 포지션들에 있는 다른 위치들에 대한 사용량 값들에 기초하여 상기 위치에 대한 초기 할당 가중치를 변경한다.
특히, 이러한 구현예들에서, 소정의 위치에 대해, 상기 시스템은 소정의 위치보다 덜 사용되는 위치들, 즉, 상기 정렬에서 소정의 위치보다 낮은(lower) 위치들에 대한 사용량 값들의 곱을 결정한다. 그 다음 상기 시스템은 상기 초기 할당 가중치에 상기 곱을 곱함으로써 상기 소정의 위치에 대한 상기 초기 할당 가중치를 변경한다.
도 5는 외부 메모리로부터 소거하기 위한 예시적인 프로세스(500)의 흐름도이다. 편의상, 프로세스(500)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 증강된 신경망 시스템, 예를 들어, 본 명세서에 따라 적절히 프로그램된 도 1a의 상기 증강된 신경망 시스템(100)은 프로세스(500)를 수행할 수 있다.
상기 시스템은 상기 신경망 출력의 소거 부분을 수신한다(단계 502). 상기 소거 부분은 소거 벡터를 포함한다. 일부 구현예들에서, 상기 시스템은 상기 소거 벡터를 생성하기 위해 상기 값들이 정확한 도메인에 있도록 하는, 즉 상기 소거 벡터의 모든 값들이 0과 1 사이에 있도록 하는 도메인 시프팅 함수로 상기 소거 부분을 프로세싱한다.
상기 시스템은 상기 최종 기록 가중치들 및 상기 소거 벡터를 사용하여 상기 외부 메모리로부터 소거한다(단계 504). 특히, 상기 외부 메모리 내의 각 위치에 대해, 상기 시스템은 상기 위치에 대한 가중된 소거 벡터를 결정하도록 상기 위치에 대한 상기 최종 기록 가중치를 상기 소거 벡터에 곱한다. 그 다음, 상기 시스템은 모든 벡터의 벡터로부터 상기 위치에 대한 상기 가중된 소거 벡터를 감산하여 최종 소거 벡터를 생성한 다음, 상기 위치로부터 소거하도록 상기 메모리 위치에 현재 저장된 상기 벡터와 상기 최종 소거 벡터의 요소별 곱을 수행한다.
도 6은 소정의 판독 헤드에 대해 외부 메모리로부터 판독하기 위한 예시적인 프로세스(600)의 흐름도이다. 편의상, 프로세스(600)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 증강된 신경망 시스템, 예를 들어, 본 명세서에 따라 적절하게 프로그램된 도 1a의 증강된 신경망 시스템(100)은 프로세스(600)를 수행할 수 있다.
상기 시스템은 하나 이상의 판독 헤드 각각에 대한 프로세스(600)를 수행하여 각각의 판독 헤드에 대한 각 판독 벡터를 생성할 수 있다.
상기 시스템은 상기 판독 헤드에 대한 신경망 출력의 판독 부분을 수신한다(단계 602). 상기 판독 헤드에 대한 상기 판독 부분은 상기 판독 헤드에 대한 판독 키, 판독 강도 값 및 판독 모드 벡터를 포함한다. 일부 구현예들에서, 상기 시스템은 상기 판독 헤드에 대한 판독 모드 벡터 및 판독 키를 생성하기 위해 상기 값들이 정확한 도메인에 있도록 하기 위해 하나 이상의 도메인 시프팅 함수로 상기 판독 헤드에 대한 판독 부분을 프로세싱한다.
상기 시스템은 상기 판독 헤드에 대한 판독 강도 값 및 판독 키로부터 상기 외부 메모리 내의 위치들 각각에 대한 콘텐츠-기반 판독 가중치들을 결정한다 (단계 604). 일반적으로, 소정의 위치에 대한 콘텐츠-기반 가중치는 상기 위치의 데이터가 상기 판독 키와 얼마나 유사한지를 반영한다. 키로부터 콘텐츠-기반 가중치들을 결정하는 것은 도 8을 참조하여 아래에서 설명된다.
상기 시스템은 상기 시스템에 의해 수행된 이전 기록 동작들의 가중치들로부터 상기 외부 메모리 내의 위치들 각각에 대한 하나 이상의 각 히스토리 가중치를 결정한다(단계 606).
일반적으로, 상기 시스템은 상기 시스템에 의해 상기 외부 메모리 상에서 수행된 이전 기록 동작들에 대한 기록 가중치들의 히스토리를 트랙킹하고, 시간 링크 매트릭스를 사용하여 히스토리 가중치들을 결정하는 시간 링크 매트릭스를 유지한다.
일부 구현예들에서, 상기 시스템은 각 위치에 대한 2개의 히스토리 가중치, 즉 역방향 히스토리 가중치 및 순방향 히스토리 가중치를 결정한다.
상기 히스토리 가중치들을 생성하는 것은 도 7을 참조하여 이하에서 보다 상세하게 설명된다.
상기 시스템은 콘텐츠-기반 판독 가중치들 및 하나 이상의 히스토리 가중치로부터 상기 외부 메모리 내의 위치들에 대한 최종 판독 가중치들을 결정한다(단계 608).
특히, 상기 시스템은 하나 이상의 히스토리 가중치 및 콘텐츠-기반 판독 가중치들 간의 보간을 제어하는 판독 모드 벡터를 사용하여 각 위치에 대한 콘텐츠-기반 가중치 및 하나 이상의 히스토리 가중치를 결합하여 상기 위치에 대한 최종 판독 가중치를 생성한다. 즉, 상기 판독 모드 벡터는 콘텐츠-기반 가중치 및 각각의 히스토리 가중치에 대한 각 보간 값을 포함한다.
보다 구체적으로, 각각의 위치에 대해, 상기 시스템은 상기 위치에 대한 상기 최종 판독 가중치를 결정하기 위해 상기 판독 모드 벡터에 따라 상기 위치에 대한 콘텐츠-기반 가중치 및 상기 하나 이상의 히스토리 가중치 사이를 보간한다.
상기 시스템은 상기 최종 판독 가중치들에 따라 상기 외부 메모리로부터 데이터를 판독하여 상기 판독 헤드에 대한 판독 데이터 벡터를 생성한다(단계 610). 특히, 상기 시스템은 상기 최종 판독 가중치들에 따라 상기 외부 메모리의 각 위치에 저장된 벡터를 결합하여 판독 데이터 벡터를 생성한다. 즉, 상기 시스템은 상기 외부 메모리에 저장된 각각의 벡터의 가중 합을 계산하고, 각 벡터에 대한 가중치는 해당 메모리 위치, 즉 상기 벡터가 저장되는 메모리 위치에 대한 최종 판독 가중치이다.
도 7은 판독 헤드에 대한 히스토리 가중치를 결정하기 위한 예시적인 프로세스(700)의 흐름도이다. 편의상, 프로세스(700)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 증강된 신경망 시스템, 예를 들어, 본 명세서에 따라 적절히 프로그램된 도 1a의 증강된 신경망 시스템(100)은 프로세스(700)를 수행할 수 있다.
상기 시스템은 상기 시스템에 의해 상기 외부 메모리 상에서 수행된 이전 기록 동작들에 대한 기록 가중치들의 히스토리를 트랙킹하는 시간 링크 매트릭스를 유지한다(단계 702). 특히, 상기 시간 링크 매트릭스의 요소[i, j]는 이전 신경망 출력에 대한 이전 기록 동작에 의해 위치(i)가 위치(j) 이후에 기록된 위치의 정도를 나타낸다.
또한, 상기 시스템은 상기 위치가 상기 이전 신경망 출력에 대한 이전 기록 동작에 의해 기록된 최종 위치의 정도를 나타내는 각각의 위치에 대한 각 우선순위 가중치를 유지한다(단계 704).
상기 시스템은 상기 신경망 출력에 대한 최종 기록 가중치들 및 우선순위 가중치들을 사용하여 상기 시간 링크 매트릭스를 업데이트한다(단계 706).
특히, 일부 구현예들에서, 업데이트된 시간 링크 매트릭스(Lt)의 엔트리[i, j]는 수학식 3을 만족한다.
Figure pct00010
여기서,
Figure pct00011
는 상기 외부 메모리 내의 위치(x)에 대한 현재 최종 기록 가중치이며,
Figure pct00012
는 상기 외부 메모리 내의 위치(j)에 대한 우선순위 가중치이며,
Figure pct00013
는 업데이트 전 상기 시간 링크 매트릭스의 엔트리[i, j]이다.
일부 구현예들에서, 상기 시간 링크 매트릭스를 업데이트하기 전에,
상기 시스템은
현재 최종 기록 가중치들로부터 스파스(sparse) 현재 최종 기록 가중치들을 생성하고, 상기 우선순위 가중치들로부터 스파스 우선순위 가중치들을 생성하고,
상기 시간 링크 매트릭스를 업데이트할 때, 즉 상기 현재 최종 기록 가중치들과 우선순위 가중치들 대신에 상기 스파스 기록 및 스파스 우선순위 가중치들을 사용한다. 상기 스파스 가중치들을 사용하여 상기 시간 링크 매트릭스를 업데이트함으로써, 상기 시스템은 상기 링크 매트릭스를 업데이트하고 상기 히스토리 가중치들을 결정하는 데 필요한 계산 및 메모리량을 감소시킨다.
상기 현재 기록 가중치들로부터 스파스 기록 가중치들을 결정하기 위해, 상기 시스템은 모든 메모리 위치에 대한 기록 가중치들 중 K(외부 메모리 내의 위치들의 총수보다 작은 미리 결정된 값) 개의 최고 기록 가중치 값들을 제외한 나머지를 모두 0으로 설정하고, 나머지 K 개의 가중치들 각각을 상기 나머지 K 개의 가중치들의 합으로 나눈다. 상기 시스템은 유사한 방법으로 상기 스파스 우선순위 가중치들을 결정할 수 있다.
상기 시스템은 상기 판독 헤드에 대한 이전 최종 판독 가중치들 및 상기 업데이트된 시간 링크 매트릭스로부터 상기 판독 헤드에 대한 히스토리 가중치들을 결정한다(단계 708).
일부 구현예들에서, 상기 시스템은 상기 업데이트된 시간 링크 매트릭스와 상기 이전 신경망 출력에 대한 판독 헤드에 대한 이전 최종 판독 가중치들의 벡터의 매트릭스 곱을 수행함으로써 각 메모리 위치에 대한 각 역방향 히스토리 가중치를 포함하는 역방향 히스토리 가중치 벡터를 결정한다.
일부 구현예들에서, 또한 상기 시스템은 상기 업데이트된 시간 링크 매트릭스의 전치와 상기 이전 신경망 출력에 대한 판독 헤드에 대한 이전 최종 판독 가중치들의 벡터의 매트릭스 곱을 수행함으로써 각 메모리 위치에 대한 각 순방향 히스토리 가중치를 포함하는 순방향 히스토리 가중치 벡터를 결정한다.
상기 시스템은 상기 외부 메모리로부터의 다음 판독 전에 상기 업데이트된 시간 판독 매트릭스를 업데이트하는데 사용하기 위해 상기 외부 메모리에 대한 현재 기록을 고려하여 상기 유지된 우선순위 가중치들을 업데이트한다(단계 710). 특히, 상기 외부 메모리에 대한 초기 기록 전에, 모든 메모리 위치에 대한 우선순위 가중치는 0이다.
상기 외부 메모리에 대한 각각의 기록 후에, 상기 시스템은 이전 우선순위 가중치들 및 현재 기록 동작에 대한 현재 최종 기록 가중치들을 근거로 상기 우선순위 가중치들을 업데이트한다.
특히, 일부 구현예들에서, 상기 시스템은 조정된 유지된 우선순위 가중치를 생성하기 위해 상기 현재 기록 동작에 대한 모든 메모리 위치에 대한 모든 기록 가중치들의 합과 1 사이의 차이에 상기 위치에 대한 상기 유지된 우선순위 가중치를 곱함으로써 소정의 위치에 대한 상기 업데이트된 우선순위 가중치를 결정한다.
그 다음, 상기 시스템은 상기 위치에 대한 현재 최종 기록 가중치를 상기 위치에 대한 상기 조정된 유지된 우선순위 가중치에 추가하여 상기 위치에 대한 상기 업데이트된 우선순위 가중치를 결정한다.
도 8은 외부 메모리 내의 위치들에 대한 콘텐츠-기반 가중치들을 생성하기 위한 예시적인 프로세스(800)의 흐름도이다. 편의상, 프로세스(800)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 증강된 신경망 시스템, 예를 들어, 본 명세서에 따라 적절하게 프로그래밍된 도 1a의 증강된 신경망 시스템(100)은 프로세스(800)를 수행할 수 있다.
상기 시스템은 콘텐츠-기반 키 벡터를 수신한다(단계 802).
상기 시스템은 콘텐츠-기반 키 벡터와 상기 외부 메모리에 저장된 벡터들 사이의 유사도 측정치를 계산한다(단계 804). 즉, 상기 시스템은 콘텐츠-기반 키 벡터와 외부 메모리에 저장된 각각의 벡터 사이의 각각의 유사도 측정치를 계산한다. 예를 들어, 상기 유사도 측정치는 코사인 유사도 측정치일 수 있으며,
상기 외부 메모리(M) 내의 i 번째 위치에 위치한 소정의 벡터(
Figure pct00014
) 및 콘텐츠-기반 키 벡터(k (h, t)) 사이의 유사도(K)는 수학식 4를 만족한다.
Figure pct00015
상기 시스템은 상기 유사도 측정치를 이용하여 외부 메모리 내의 위치들에 대한 콘텐츠-기반 가중치들을 계산한다(단계 806). 일반적으로, 상기 시스템은 콘텐츠-기반 키 벡터와 유사도 측정치가 더 높은 위치들에 더 높은 가중치들이 할당되도록 상기 가중치를 계산한다. 예를 들어, 상기 외부 메모리(M) 내의 i 번째 위치에 대한 콘텐츠-기반 가중치는 수학식 5를 만족시킬 수 있다.
Figure pct00016
여기서, ß(h, t)는 상기 콘텐츠-기반 가중치의 키 강도 값이다.
상기 구현예에 따라, 상기 시스템은 신경망으로부터 수신된 출력들에 기초하여 상기 외부 메모리에 저장된 데이터의 다양한 지속성 정도를 유지할 수 있다. 예를 들어, 일부 구현예들에서, 상기 시스템은 시스템 입력들의 각 시퀀스가 상기 시스템에 의해 완전히 프로세싱된 후에 상기 외부 메모리를 재설정한다. 또 다른 예로서, 일부 구현예들에서, 상기 외부 메모리에 저장된 데이터는 입력 시퀀스들 사이에서 유지된다. 즉, 상기 시스템은 시스템 입력들의 시퀀스들 간에 어떤 데이터도 외부 메모리로부터 삭제하지 않는다. 이러한 구현예들에서, 상기 시스템은 상기 시스템에 할당된 소정의 태스크가 완료된 후 그리고 상기 시스템이 다른 기계 학습 태스크를 시작하기 전에 상기 외부 메모리를 재설정할 수 있다. 대안적으로, 상기 시스템은 태스크들 사이에 값들을 삭제하지 않고 상기 외부 메모리를 유지할 수 있다. 따라서, 현재 입력 시퀀스를 프로세싱하는 동안, 상기 시스템은 이전 입력 시퀀스를 프로세싱하는 동안 또는 이전 기계 학습 태스크를 수행하는 동안에도 상기 메모리에 저장된 데이터를 레버리지(leverage)할 수 있다.
본 명세서에서 설명된 요지 및 기능적 동작들의 실시예들은 본 명세서에 개시된 구조들 및 구조적 등가물을 포함하는 디지털 전자 회로, 유형적으로 수록된 컴퓨터 소프트웨어 또는 펌웨어, 컴퓨터 하드웨어에서 구현되거나 또는 이들 중 하나 이상의 조합으로 구현될 수 있다.
본 명세서에서 설명된 요지의 실시예들은 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의해 실행되거나 또는 데이터 처리 장치의 동작을 제어하기 위한 실행을 위해 유형의 비 일시적인 프로그램 캐리어 상에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 모듈로서 구현될 수 있다. 대안으로 또는 부가적으로, 상기 프로그램 명령어들은 예를 들어, 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로의 전송을 위해 정보를 인코딩하기 위해 생성된 기계-생성 전기, 광학 또는 전자기 신호와 같은 인위적으로 생성된 전파된 신호로 인코딩될 수 있다. 상기 컴퓨터 저장 매체는 기계 판독 가능 저장 장치, 기계 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 장치, 또는 이들 중 하나 이상의 조합일 수 있다.
"데이터 처리 장치"라는 용어는 데이터 처리 하드웨어를 의미하며, 예를 들어 프로그램 가능 프로세서, 컴퓨터, 또는 복수의 프로세서 또는 컴퓨터들을 포함하여 데이터를 처리하기 위한 모든 종류의 장치들, 디바이스들 및 기계들을 포함한다. 또한, 상기 장치는 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)와 같은 특수 목적 논리 회로 일 수 있다. 상기 장치는 하드웨어 이외에, 컴퓨터 프로그램들에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 이들 중 하나 이상의 조합을 구성하는 코드를 선택적으로 포함할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 모듈, 소프트웨어 모듈, 스크립트 또는 코드로 지칭되거나 설명될 수 있음)은 컴파일된 또는 해석된 언어들, 또는 선언적 또는 절차적 언어들을 포함한 모든 형태의 프로그래밍 언어로 기록될 수 있으며, 독립 실행형 프로그램이나 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떤 형태로든 배포될 수 있다. 상기 컴퓨터 프로그램은 파일 시스템 내의 파일에 해당할 수 있지만 반드시 그런 것은 아니다. 프로그램은 마크업 언어 문서에 저장된 하나 이상의 스크립트와 같은 프로그램 또는 데이터를 보유하고 있는 파일의 일부분, 문제의 프로그램 전용 단일 파일 또는 여러 개의 조정된 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램들 또는 코드의 부분들을 저장하는 파일들)에 저장될 수 있다. 컴퓨터 프로그램은 한 사이트에 위치하거나 여러 사이트에 분산되고, 통신 네트워크에 의해 상호 연결된 한대의 컴퓨터 또는 여러 대의 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에서 설명되는 프로세스들 및 로직 흐름은 입력 데이터를 오퍼레이팅하고 출력을 생성함으로써 기능들을 수행하도록 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 컴퓨터에 의해 수행될 수 있다. 프로세스들 및 로직 흐름은 또한 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)과 같은 특수 목적 논리 회로에 의해 수행될 수 있고, 장치는 또한 상기 특수 목적 논리 회로로 구현될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터들은 예를 들어 범용 또는 특수 목적 마이크로프로세서 또는 둘 모두, 또는 임의의 다른 종류의 중앙 처리 장치를 포함하고, 이들에 기초할 수 있다. 일반적으로, 중앙 처리 장치는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 구성요소들은 명령어들을 수행하거나 실행하기 위한 중앙 처리 장치 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치(예를 들어, 자기, 광 자기 디스크 또는 광 디스크)를 포함하거나, 그 하나 이상의 대용량 저장 장치로부터 데이터를 수신하거나 전송하기 위해 하나 이상의 대용량 저장 장치에 동작 가능하게 결합될 수 있다. 그러나, 컴퓨터는 그러한 장치들을 가질 필요는 없다. 또한, 컴퓨터는 다른 장치, 예를 들어, 이동 전화기, 개인 휴대 정보 단말기(PDA), 이동 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 장치(예를 들어 범용 직렬 버스(USB) 플래시 드라이브)에 내장될 수 있다.
컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치들과 같은 반도체 메모리 장치들; 내부 하드 디스크들 또는 이동식 디스크들과 같은 자기 디스크들; 광 자기 디스크들; 및 CD ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치들을 포함한다. 상기 프로세서 및 메모리는 특수 목적 논리 회로에 통합되거나, 그 특수 목적 논리 회로로 보완될 수 있다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에서 설명된 요지의 실시예들은 사용자에게 정보를 표시하기 위해 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 장치와, 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 사용자 키보드와 포인팅 장치를 갖는 컴퓨터상에서 구현될 수 있다. 다른 종류의 장치들은 사용자와의 상호 작용을 제공하는 데 사용될 수 있으며, 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자가 사용하는 장치와 문서들을 주고받음으로써 사용자와 상호 작용할 수 있는바, 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 장치상의 웹 브라우저에 웹 페이지들을 전송함으로써 수행될 수 있다.
본 명세서에 설명된 요지의 실시예들은 데이터 서버와 같은 백 엔드 컴포넌트; 애플리케이션 서버와 같은 미들웨어 컴포넌트; 예를 들어 관계 그래픽 사용자 인터페이스 또는 사용자가 본 명세서에 설명된 요지의 구현예와 상호 작용할 수 있는 웹 브라우저를 갖는 클라이언트 컴퓨터와 같은 프론트 엔트 컴포넌트; 또는 하나 이상의 백 엔드, 미들웨어, 프론트 엔트 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 상기 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 접속될 수 있다. 예시적인 통신 네트워크는 근거리 통신망("LAN") 및 광역 통신망("WAN"), 예를 들어 인터넷을 포함한다.
상기 컴퓨팅 시스템은 클라이언트들과 서버들을 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들로 인해 발생한다.
본 명세서는 다수의 특정 구현 세부 사항을 포함하지만, 이들은 임의의 발명 또는 청구될 수 있는 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정 발명의 특정 실시예에 특정될 수 있는 특징에 대한 설명으로 해석되어야 한다. 별도의 실시예들과 관련하여 본 명세서에서 설명되는 특정 특징들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 반대로, 단일 실시예의 콘텍스트에서 설명된 다양한 특징들은 또한 다수의 실시예에서 개별적으로 또는 임의의 적합한 서브조합으로 구현될 수 있다. 더욱이, 특징들은 소정의 조합으로 작용하고 상술한 바와 같이 초기에 청구된 것으로서 설명될 수 있지만, 청구된 조합의 하나 이상의 특징이 어떤 경우 그 조합으로부터 제거될 수 있고, 그 청구된 조합은 서브조합 또는 그 서브조합의 변형을 지향할 수 있다.
유사하게, 동작들이 특정 순서로 도면들에 도시되어 있지만, 이는 바람직한 동작들을 달성하기 위해, 그러한 동작들이 도시된 순서 또는 순차적인 순서로 수행되거나, 도시된 모든 동작들이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서 멀티 태스킹 및 병렬 처리가 유리할 수 있다. 또한, 상술한 실시 예에서 다양한 시스템 모듈 및 컴포넌트의 분리는 모든 실시예에서 그러한 분리를 필요로 하는 것으로 이해되어서는 안되며, 서술된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다중 소프트웨어 제품들로 패키징될 수 있다는 것을 이해해야 한다.
본 발명의 특정 실시예들이 설명되었다. 다른 실시예들은 다음의 청구항들의 범위 내에 있다. 예를 들어, 청구 범위에 열거된 동작들은 상이한 순서로 수행될 수 있으며 여전히 바람직한 결과를 달성한다. 하나의 예로서, 첨부된 도면에 도시된 프로세스는 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로 하지는 않는다. 특정 구현예들에서, 멀티태스킹 및 병렬 처리가 유리할 수 있다.

Claims (20)

  1. 시스템 출력들의 시퀀스를 생성하도록 시스템 입력들의 시퀀스를 프로세싱하기 위한 증강된 신경망 시스템에 있어서, 상기 증강된 신경망 시스템은,
    신경망 -상기 신경망은 신경망 입력들의 시퀀스를 수신하고 그리고 상기 신경망 입력으로부터 신경망 출력을 생성하도록 각각의 신경망 입력을 프로세싱하도록 구성되며, 상기 신경망 출력은 시스템 출력 부분, 판독 부분, 기록 키 및 기록 벡터를 포함하며-;
    외부 메모리; 그리고
    메모리 인터페이스 서브시스템을 포함하며, 상기 메모리 인터페이스 서브시스템은 상기 신경망 출력들 각각에 대해 동작들을 수행하도록 구성되며, 상기 동작들은,
    상기 시스템 출력들의 시퀀스에서 시스템 출력으로서 상기 시스템 출력 부분으로부터 도출된 출력을 제공하는 동작;
    상기 기록 키로부터 상기 외부 메모리 내의 복수의 위치들 각각에 대한 각 콘텐츠-기반 가중치를 결정하는 동작;
    상기 외부 메모리 내의 상기 복수의 위치들 각각이 상기 위치에 저장된 데이터의 변경을 위해 얼마나 가용 한지에 기초하여 상기 외부 메모리 내의 상기 복수의 위치들 각각에 대한 각 할당 가중치를 결정하는 동작;
    상기 위치에 대한 각 할당 가중치 및 상기 위치에 대한 각 콘텐츠-기반 가중치로부터 상기 외부 메모리 내의 상기 복수의 위치들 각각에 대한 각 최종 기록 가중치를 결정하는 동작;
    상기 최종 기록 가중치들에 따라 상기 기록 벡터에 의해 정의된 데이터를 상기 외부 메모리에 기록하는 동작;
    상기 판독 부분으로부터 상기 외부 메모리의 상기 복수의 위치들 각각에 대한 판독 가중치들의 하나 이상의 세트들을 결정하는 동작;
    상기 판독 가중치들의 세트들에 따라 상기 외부 메모리로부터 데이터를 판독하는 동작; 그리고
    상기 신경망 입력들의 시퀀스에서 다음 신경망 입력을 생성하도록 상기 외부 메모리로부터 판독된 상기 데이터를 상기 시스템 입력들의 시퀀스에서 다음 시스템 입력과 결합하는 동작을 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  2. 제1항에 있어서, 상기 외부 메모리 내의 상기 복수의 위치들 각각에 대한 각 할당 가중치를 결정하는 동작은,
    상기 위치의 가용성이 사용되는 정도를 나타내는 상기 위치들의 각각에 대한 각 사용량 값을 결정하는 동작;
    상기 사용 값들에 따라 상기 위치들을 정렬하는 동작; 그리고
    상기 정렬과 상기 사용량 값에 기초하여 상기 위치들의 각각에 대한 각 할당 가중치를 결정하는 동작을 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  3. 제2항에 있어서, 상기 위치들의 각각에 대한 각 사용 값을 결정하는 동작은,
    이전 신경망 출력을 위해 상기 위치에 기록하는데 사용된 이전 최종 기록 가중치에 기초하여 상기 위치에 대한 이전 사용량 값을 증가시키는 동작을 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  4. 제3항에 있어서, 상기 신경망 출력은 상기 외부 메모리에 기록할 때 상기 복수의 위치들 각각이 프리(free)될 수 있는 정도를 정의하는 프리 게이트들의 세트를 포함하며, 상기 위치들의 각각에 대한 상기 각 사용량 값을 결정하는 동작은,
    상기 위치에 대한 각 사용량 값을 생성하도록 상기 위치가 프리될 수 있는 정도에 기초하여 상기 위치에 대한 상기 증가된 이전 사용량 값을 변경하는 동작을 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  5. 제2항 내지 제4항 중 어느 한 항에 있어서,
    상기 사용량 값들에 따라 상기 위치들을 정렬하는 동작은 상기 위치들을 사용량의 오름차순으로 정렬하는 동작을 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  6. 제5항에 있어서,
    상기 위치들의 각각에 대한 상기 각 할당 가중치를 결정하는 동작은,
    상기 위치에 대한 상기 사용량 값을 1에서 감산함으로써 상기 위치에 대한 초기 할당 가중치를 결정하는 동작; 그리고
    상기 정렬 내의 다른 포지션들에서의 다른 위치들에 대한 상기 사용량 값들에 기초하여 상기 초기 할당 가중치를 변경하는 동작을 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 상기 신경망 출력은,
    상기 콘텐츠-기반 가중치들과 상기 할당 가중치들 사이의 보간을 제어하는 할당 게이트, 그리고
    상기 외부 메모리에 대한 기록의 기록 강도를 제어하는 기록 게이트를 포함하며, 상기 복수의 위치들 각각에 대한 각 최종 기록 가중치를 결정하는 동작은,
    상기 할당 게이트에 따라 상기 위치에 대한 상기 할당 가중치 및 상기 위치에 대한 상기 콘텐츠-기반 가중치 사이를 보간하는 동작,
    상기 위치에 대한 상기 최종 기록 가중치를 결정하도록 상기 기록 게이트에 따라 상기 보간의 결과를 게이팅하는 동작을 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 신경망 출력은 소거 벡터를 더 포함하며, 상기 동작들은, 상기 신경망 출력들의 각각에 대해, 상기 최종 기록 가중치들 및 상기 소거 벡터에 따라 상기 외부 메모리로부터 소거하는 동작을 더 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  9. 시스템 출력들의 시퀀스를 생성하도록 시스템 입력들의 시퀀스를 프로세싱하기 위한 증강된 신경망 시스템에 있어서, 상기 증강된 신경망 시스템은,
    신경망 -상기 신경망은 신경망 입력들의 시퀀스를 수신하고 그리고 상기 신경망 입력으로부터 신경망 출력을 생성하도록 각각의 신경망 입력을 프로세싱하도록 구성되며, 상기 신경망 출력은 시스템 출력 부분, 기록 부분, 하나 이상의 판독 헤드들 각각에 대한 각 판독 키, 및 기록 벡터를 포함하며-;
    외부 메모리; 그리고
    메모리 인터페이스 서브시스템을 포함하며, 상기 메모리 인터페이스 서브시스템은 상기 신경망 출력들 각각에 대해 동작들을 수행하도록 구성되며, 상기 동작들은,
    상기 시스템 출력들의 시퀀스에서 시스템 출력으로서 상기 시스템 출력 부분으로부터 도출된 출력을 제공하는 동작;
    상기 신경망 출력의 상기 기록 부분으로부터 상기 외부 메모리 내의 복수의 위치들 각각에 대한 각 기록 가중치를 결정하는 동작;
    상기 각 기록 가중치들에 따라 상기 기록 벡터에 의해 정의된 데이터를 상기 외부 메모리에 기록하는 동작;
    하나 이상의 판독 헤드들 각각에 대해,
    상기 판독 헤드에 대한 상기 판독 키로부터 상기 외부 메모리 내의 상기 복수의 위치들 각각에 대한 각 콘텐츠-기반 판독 가중치를 결정하는 동작,
    상기 메모리 인터페이스 서브시스템에 의해 수행된 이전 기록 동작들의 가중치들로부터 상기 외부 메모리 내의 상기 복수의 위치들 각각에 대한 하나 이상의 각 히스토리 가중치들을 결정하는 동작,
    상기 콘텐츠-기반 판독 가중치 및 상기 하나 이상의 히스토리 가중치들로부터 상기 복수의 위치들 각각에 대한 각 최종 판독 가중치를 결정하는 동작, 그리고
    상기 최종 판독 가중치들에 따라 상기 외부 메모리로부터 데이터를 판독하는 동작; 그리고
    상기 신경망 입력들의 시퀀스에서 다음 신경망 입력을 생성하도록 상기 외부 메모리로부터 판독된 상기 데이터를 상기 시스템 입력들의 시퀀스에서 다음 시스템 입력과 결합하는 동작을 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  10. 제9항에 있어서, 상기 동작들은,
    상기 신경망 출력들 각각에 대해,
    상기 외부 메모리 내의 상기 복수의 위치들 각각에 대한 소거 가중치들의 하나 이상의 세트들을 결정하는 동작; 그리고
    상기 소거 가중치들의 세트들에 따라 상기 외부 메모리로부터 데이터를 소거하는 동작을 더 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  11. 제9항 또는 제10항에 있어서,
    상기 신경망 출력은 상기 하나 이상의 히스토리 가중치들과 상기 콘텐츠-기반 판독 가중치들 간의 보간을 제어하는 각각의 판독 헤드에 대한 각 판독 모드 벡터를 포함하며,
    상기 콘텐츠-기반 판독 가중치 및 상기 하나 이상의 히스토리 가중치들로부터 상기 복수의 위치들 각각에 대한 각 최종 판독 가중치를 결정하는 동작은,
    상기 판독 모드 벡터에 따라 상기 위치에 대한 상기 콘텐츠-기반 판독 가중치 및 상기 위치에 대한 하나 이상의 히스토리 가중치들 사이를 보간하는 동작을 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서, 상기 동작들은,
    상기 메모리 인터페이스 서브시스템에 의해 상기 외부 메모리 상에서 수행된 이전 기록 동작들에 대한 기록 가중치들의 히스토리를 트랙킹하는 시간 링크 매트릭스를 유지하는 동작을 더 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  13. 제12항에 있어서, 상기 동작들은, 상기 신경망 출력들 각각에 대해, 상기 신경망 출력에 대한 상기 기록 가중치들에 기초하여 상기 시간 링크 매트릭스를 업데이트하는 동작을 더 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  14. 제13항에 있어서,
    상기 외부 메모리 내의 상기 복수의 위치들 각각에 대한 하나 이상의 각 히스토리 가중치들을 결정하는 동작은,
    상기 업데이트된 시간 링크 매트릭스로부터 상기 복수의 위치들 각각에 대한 각 역방향 히스토리 가중치를 결정하는 동작을 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  15. 제14항에 있어서,
    상기 업데이트된 시간 링크 매트릭스로부터 상기 복수의 위치들 각각에 대한 각 역방향 히스토리 가중치를 결정하는 동작은,
    이전 신경망 출력에 대한 상기 판독 헤드에 대한 상기 최종 판독 가중치들로부터 도출된 벡터와 상기 업데이트된 시간 링크 매트릭스 사이의 매트릭스 곱을 수행하는 동작을 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  16. 제13항 내지 제15항 중 어느 한 항에 있어서,
    상기 외부 메모리 내의 상기 복수의 위치들 각각에 대한 하나 이상의 각 히스토리 가중치들을 결정하는 동작은,
    상기 업데이트된 시간 링크 매트릭스의 전치로부터 상기 복수의 위치들 각각에 대한 각 순방향 히스토리 가중치를 결정하는 동작을 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  17. 제16항에 있어서,
    상기 업데이트된 시간 링크 매트릭스로부터 상기 복수의 위치들 각각에 대한 각 역방향 히스토리 가중치를 결정하는 동작은,
    상기 업데이트된 시간 링크 매트릭스의 전치와 이전 신경망 출력에 대한 상기 판독 헤드에 대한 상기 최종 판독 가중치들로부터 도출된 벡터 간의 매트릭스 곱을 수행하는 동작을 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  18. 제13항 내지 제17항 중 어느 한 항에 있어서,
    상기 시간 링크 매트릭스를 업데이트하는 동작은,
    상기 위치가 기록된 최종 위치인 정도를 나타내는 상기 복수의 위치들 각각에 대한 각 우선순위 가중치를 결정하는 동작; 그리고
    상기 신경망 출력에 대한 상기 기록 가중치들 및 상기 복수의 위치들 각각에 대한 상기 우선순위 가중치를 이용하여 상기 시간 링크 매트릭스를 업데이트하는 동작을 포함하는 것을 특징으로 하는 증강된 신경망 시스템.
  19. 하나 이상의 컴퓨터 저장 매체상에 인코딩된 컴퓨터 프로그램 제품으로서,
    상기 컴퓨터 프로그램 제품은, 하나 이상의 컴퓨터에 의해 실행될 때, 상기 하나 이상의 컴퓨터로 하여금 제1항 내지 제18항 중 어느 한 항의 상기 증강된 신경망 시스템을 구현하게 하는 명령어들을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  20. 방법으로서,
    제1항 내지 제18항 중 어느 한 항의 상기 메모리 인터페이스 서브시스템에 의해 수행되는 상기 동작들을 포함하는 방법.
KR1020187017730A 2015-12-10 2016-12-09 외부 메모리로 신경망들 증강 KR102158683B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562265912P 2015-12-10 2015-12-10
US62/265,912 2015-12-10
PCT/US2016/066020 WO2017100711A1 (en) 2015-12-10 2016-12-09 Augmenting neural networks with external memory

Publications (2)

Publication Number Publication Date
KR20180091850A true KR20180091850A (ko) 2018-08-16
KR102158683B1 KR102158683B1 (ko) 2020-09-22

Family

ID=57708799

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187017730A KR102158683B1 (ko) 2015-12-10 2016-12-09 외부 메모리로 신경망들 증강

Country Status (6)

Country Link
US (2) US10832134B2 (ko)
EP (1) EP3371747B1 (ko)
JP (1) JP6651629B2 (ko)
KR (1) KR102158683B1 (ko)
CN (1) CN108431832B (ko)
WO (1) WO2017100711A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210001872A (ko) * 2019-06-26 2021-01-06 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 매트릭스 변환 장치, 방법 및 데이터 처리 시스템

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10044751B2 (en) * 2015-12-28 2018-08-07 Arbor Networks, Inc. Using recurrent neural networks to defeat DNS denial of service attacks
US20180189266A1 (en) * 2017-01-03 2018-07-05 Wipro Limited Method and a system to summarize a conversation
CN110383299B (zh) * 2017-02-06 2023-11-17 渊慧科技有限公司 记忆增强的生成时间模型
US11037330B2 (en) * 2017-04-08 2021-06-15 Intel Corporation Low rank matrix compression
US11243944B2 (en) * 2017-06-29 2022-02-08 Futurewei Technologies, Inc. Dynamic semantic networks for language understanding and question answering
CN107508866B (zh) * 2017-08-08 2020-10-02 重庆大学 减小移动设备端神经网络模型更新的传输消耗的方法
US11188820B2 (en) 2017-09-08 2021-11-30 International Business Machines Corporation Deep neural network performance analysis on shared memory accelerator systems
US10853725B2 (en) 2018-05-18 2020-12-01 Deepmind Technologies Limited Neural networks with relational memory
JP6906478B2 (ja) * 2018-05-23 2021-07-21 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
KR20190136431A (ko) 2018-05-30 2019-12-10 삼성전자주식회사 뉴럴 네트워크 시스템, 이를 포함하는 어플리케이션 프로세서 및 뉴럴 네트워크 시스템의 동작방법
US11775815B2 (en) * 2018-08-10 2023-10-03 Samsung Electronics Co., Ltd. System and method for deep memory network
US20200090035A1 (en) * 2018-09-19 2020-03-19 International Business Machines Corporation Encoder-decoder memory-augmented neural network architectures
WO2020064988A1 (en) * 2018-09-27 2020-04-02 Deepmind Technologies Limited Scalable and compressive neural network data storage system
CN110377342B (zh) * 2019-06-10 2022-08-30 平安科技(深圳)有限公司 基于卷积神经网络的显存处理方法、装置及存储介质
US11604976B2 (en) 2020-04-29 2023-03-14 International Business Machines Corporation Crossbar arrays for computations in memory-augmented neural networks

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6092018A (en) * 1996-02-05 2000-07-18 Ford Global Technologies, Inc. Trained neural network engine idle speed control system
AU5804100A (en) * 1999-05-24 2000-12-12 Ip Century Ag Neuronal network for computer-assisted knowledge management
GB0426982D0 (en) * 2004-12-09 2005-01-12 Secr Defence Early detection of sepsis
US7747070B2 (en) * 2005-08-31 2010-06-29 Microsoft Corporation Training convolutional neural networks on graphics processing units
US9514739B2 (en) * 2012-06-06 2016-12-06 Cypress Semiconductor Corporation Phoneme score accelerator
US9141906B2 (en) * 2013-03-13 2015-09-22 Google Inc. Scoring concept terms using a deep network
CN104657776B (zh) * 2013-11-22 2018-06-05 华为技术有限公司 神经网络系统、基于神经网络系统的图像解析方法和装置
CN103617235B (zh) * 2013-11-26 2017-01-25 中国科学院信息工程研究所 一种基于粒子群算法的网络水军账号识别方法及系统
WO2015116909A1 (en) * 2014-01-31 2015-08-06 Google Inc. Generating vector representations of documents
CN103824291B (zh) * 2014-02-24 2017-01-11 哈尔滨工程大学 连续量子雁群算法演化脉冲耦合神经网络系统参数的自动图像分割方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Graves, Alex, Greg Wayne, and Ivo Danihelka. "Neural turing machines." arXiv:1410.5401v1 (2014.10.20.)* *
Weston, Jason, Sumit Chopra, and Antoine Bordes. "Memory networks." arXiv:1410.3916v11 (2015.11.29.)* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210001872A (ko) * 2019-06-26 2021-01-06 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 매트릭스 변환 장치, 방법 및 데이터 처리 시스템
US11520563B2 (en) 2019-06-26 2022-12-06 Beijing Baidu Netcom Science And Technology Co., Ltd. Apparatus and method for transforming matrix, and data processing system

Also Published As

Publication number Publication date
JP2018537788A (ja) 2018-12-20
US20170169332A1 (en) 2017-06-15
EP3371747B1 (en) 2023-07-19
US20210117801A1 (en) 2021-04-22
US10832134B2 (en) 2020-11-10
CN108431832B (zh) 2022-09-13
CN108431832A (zh) 2018-08-21
JP6651629B2 (ja) 2020-02-19
WO2017100711A1 (en) 2017-06-15
EP3371747A1 (en) 2018-09-12
KR102158683B1 (ko) 2020-09-22

Similar Documents

Publication Publication Date Title
KR102158683B1 (ko) 외부 메모리로 신경망들 증강
CN109155002B (zh) 增强神经网络系统、方法和计算机程序
US11210579B2 (en) Augmenting neural networks with external memory
US20230289598A1 (en) Augmented recurrent neural network with external memory
US11977967B2 (en) Memory augmented generative temporal models
US20210256390A1 (en) Computationally efficient neural network architecture search
US10691997B2 (en) Augmenting neural networks to generate additional outputs
US11151443B2 (en) Augmenting neural networks with sparsely-accessed external memory
KR20180082531A (ko) Cgr 신경망들
KR20180091842A (ko) 우선순위화된 경험 메모리를 사용한 신경 네트워크의 트레이닝
US11080594B2 (en) Augmenting neural networks with external memory using reinforcement learning
WO2020140073A1 (en) Neural architecture search through a graph search space
Tang et al. Modelling student behavior using granular large scale action data from a MOOC
US11797769B1 (en) Artificial intelligence system using hybrid technique for task-oriented dialog management
US20230029590A1 (en) Evaluating output sequences using an auto-regressive language model neural network
JP2022530127A (ja) 教師なしデータ拡張を使用した機械学習モデルのトレーニング
CN117291168A (zh) 一种方面情感分析方法和系统

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant