KR20210053970A - TVT(temporal value transport)를 사용하여 롱 타임 스케일에 대한 에이전트 제어 - Google Patents

TVT(temporal value transport)를 사용하여 롱 타임 스케일에 대한 에이전트 제어 Download PDF

Info

Publication number
KR20210053970A
KR20210053970A KR1020217009924A KR20217009924A KR20210053970A KR 20210053970 A KR20210053970 A KR 20210053970A KR 1020217009924 A KR1020217009924 A KR 1020217009924A KR 20217009924 A KR20217009924 A KR 20217009924A KR 20210053970 A KR20210053970 A KR 20210053970A
Authority
KR
South Korea
Prior art keywords
time step
read
time
external memory
neural network
Prior art date
Application number
KR1020217009924A
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 KR20210053970A publication Critical patent/KR20210053970A/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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • G06F18/2193Validation; Performance evaluation; Active pattern learning techniques based on specific statistical tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06K9/6256
    • G06K9/6265
    • G06K9/627
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • 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/0445
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0454
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/778Active pattern-learning, e.g. online learning of image or video features
    • G06V10/7796Active pattern-learning, e.g. online learning of image or video features based on specific statistical tests
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Quality & Reliability (AREA)
  • Probability & Statistics with Applications (AREA)
  • Feedback Control In General (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

지정된 태스크를 수행하기 위해 환경과 상호 작용하는 에이전트를 제어하는 데 사용되는 신경망 시스템을 훈련하기 위한, 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램을 포함하는 방법, 시스템 및 장치가 개시된다. 방법 중 하나는 에이전트가 상기 지정된 태스크를 수행하려고 시도하는 태스크 에피소드를 에이전트로 하여금 수행하게 하는 단계; 시퀀스의 하나 이상의 특정 시간 단계 각각에 대해:(i) 시간 단계에서의 실제 보상 및(ii) 시퀀스의 특정 시간 단계 이후의 시간 단계의 임계 수보다 많은 하나 이상의 시간 단계에서의 값 예측으로부터 특정 시간 단계에 대해 수정된 보상을 생성하는 단계 ; 그리고 강화 학습을 통해, 특정 시간 단계에 대해 적어도 상기 수정된 보상을 사용하는 신경망 시스템을 훈련시키는 단계를 포함한다.

Description

TVT(temporal value transport)를 사용하여 롱 타임 스케일에 대한 에이전트 제어
본 명세서는 강화 학습에 관한 것이다.
강화 학습 시스템에서, 에이전트는 환경의 현재 상태를 특성화하는 관찰치를 수신하는 데 응답하여 강화 학습 시스템에서 선택된 액션을 수행하여 환경과 상호 작용한다.
일부 강화 학습 시스템은 신경망의 출력에 따라 소정의 관찰치를 수신하는 것에 응답하여 에이전트가 수행할 액션을 선택한다.
신경망은 수신된 입력에 대한 출력을 예측하기 위해 하나 이상의 비선형 단위 계층을 사용하는 기계 학습 모델이다. 일부 신경망은 출력 계층 외에 하나 이상의 은닉 계층을 포함하는 심층 신경망이다. 각 은닉 계층의 출력은 네트워크의 다음 계층, 즉 다음 은닉 계층 또는 출력 계층에 대한 입력으로 사용된다. 네트워크의 각 계층은 각 파라미터 세트의 현재 값에 따라 수신된 입력에서 출력을 생성한다.
본 명세서는 일반적으로 환경과 상호 작용하는 에이전트를 제어하도록 신경망 시스템을 훈련하는 강화 학습 시스템을 설명한다.
따라서, 일 양태에서, 지정된 태스크를 수행하기 위해 환경과 상호 작용하는 에이전트를 제어하는 데 사용되는 신경망 시스템을 훈련시키는 방법은 에이전트가 지정된 태스크를 수행하려고 시도하는 태스크 에피소드를 에이전트로 하여금 수행하게 하는 단계를 포함한다. 태스크 에피소드 동안 시간 단계의 시퀀스 각각에서, 방법은 환경의 현재 상태를 특징 짓는 관찰치(observation)를 획득하는 단계; 관찰치로부터 그리고 신경망 시스템을 사용하여, 관찰치에 응답하여 에이전트가 수행할 액션을 선택하는 단계; 상기 신경망 시스템을 이용하여, 지정된 태스크를 성공적으로 수행하기 위해 현재 상태에 있는 환경의 값을 나타내는 값 예측을 생성하는 단계; 에이전트로 하여금 선택된 액션을 수행하도록 하는 단계; 그리고 이에 응답하여, 에이전트가 선택된 액션을 수행한 결과로 환경에서 이루어진 진행을 특징 짓는 실제 보상을 수신하는 단계를 포함할 수 있다. 시퀀스의 하나 이상의 특정 시간 단계 각각에 대해, 방법은(i) 시간 단계에서의 실제 보상 및(ii) 시퀀스의 특정 시간 단계 이후의 시간 단계의 임계 수보다 많은 하나 이상의 시간 단계에서의 값 예측으로부터 특정 시간 단계에 대해 수정된 보상을 생성하는 단계를 포함할 수 있다. 방법은 강화 학습을 통해, 특정 시간 단계에 대해 적어도 상기 수정된 보상을 사용하는 신경망 시스템을 훈련시키는 단계를 더 포함할 수 있다.
이 방법의 구현은 장기 신뢰(long-term credit) 할당 문제를 해결함으로써 계산적으로 처리할 수 있는 의사 결정 문제의 범위를 크게 확장할 수 있다(예: 과거 이벤트를 기반으로 특정 시간에 수행할 액션을 결정). 수정된 보상을 통해 미래 보상에 대한 기여도를 기반으로 과거 이벤트의 중요성을 재평가할 수 있다.
단계의 임계 수는 태스크와 관련이 없는 보상이 시간 단계와 나중 값(later value) 예측 사이에 수신되도록 할 수 있으며(예를 들어, 그 사이에 "방해자 태스크(distractor task)"가 있을 수 있음), 및/또는 단계의 임계 수는 보상 하프-라이프보다 클 수 있다(시간 단계 단위에서)(즉, 미래 보상(시간 단계 후)이 팩터
Figure pct00001
에 의해 할인되는 경우 단계의 임계 수는 1/(1-
Figure pct00002
)일 수 있다. 따라서, 일반적으로, 방법의 구현은 특정 시간 단계 이후 오랜 시간이 경과한 후에만 받는 보상을 고려할 수 있다.
이 방법은 모든 강화 학습 기술에 적용될 수 있다. 일반적으로 강화(reinforcement) 학습 기술은 예를 들어, 시간이 지남에 따라 에이전트가 지정된 태스크를 수행하도록 수신된 보상을 기반으로 그라디언트 하강 기술을 사용하여, 에이전트를 제어하는 데 사용되는 신경망 시스템의 파라미터를 조정하는 기술일 수 있다. 그라디언트(gradient) 하강 기술은 수신된 보상(들)에 의존하는 손실 함수의 그라디언트의 역 전파(backpropagation)를 포함할 수 있다. 이 방법의 구현은 강화 학습 기술에서 볼 수 있는 보상을 수정하며, 그렇지 않으면 일반적인 방식으로 작동할 수 있다. 따라서, 이 방법은 특정 강화 학습 기술 또는 신경망 시스템 아키텍처와 함께 사용하도록 제한되지 않는다. 그러나 일부 구현에서, 신경망 시스템은 정책 그라디언트 손실 함수의 그라디언트의 역 전파에 의해 지정된 태스크를 수행하는 방법을 학습하도록 구성된다.
수정된 보상을 생성하는 한 가지 방법은 관련 정보를 저장하는 것이다. 지각(perceptual) 및 이벤트 정보를 외부 메모리에 저장한다. 그런 다음 이 정보를 식별하고 액세스하여 어떤 과거 이벤트가 미래 보상에 기여하는지 평가할 수 있다. 미래 보상에 기여하는 과거 이벤트를 아는 것은 미래 보상과 관련된 가치 예측에서 과거 이벤트에 대한 수정된 보상 생성을 용이하게 한다.
따라서, 일부 구현에서, 신경망 시스템은 외부 메모리와 외부 메모리로부터 데이터를 읽기위한 하나 이상의 판독 헤드(read head)로 증대된다. 각각의 시간 단계에서, 데이터는 하나 이상의 판독 헤드 각각에 의해 외부 메모리로부터 판독될 수 있고, 시간 단계에 대한 (압축된) 상태 표현을 결정하는 데 사용될 수 있으며, 이는 이후 외부 메모리에 기록된다. 따라서 상태 표현은 외부 메모리에서 판독된(읽은) 데이터와 동일한 차원을 가질 수 있다. 메모리는 시간별로 인덱싱될 수 있다(즉, 각 시간 단계에 대한 슬롯이 있을 수 있다). 상태 표현은 이전 액션 및 보상의 표현을 포함할 수 있는 환경의 관찰치의 표현을 포함할 수 있으며; 순환 신경망 시스템에서는 이전 시간 단계에서 시스템의 숨겨진(은닉) 상태를 포함할 수 있으며; 또한 이전 시간 단계에서 메모리에서 판독된 데이터의 표현을 포함할 수 있다.
신경망 시스템은 시간 단계에서 값 함수(value function)를 예측하는 것과 관련된 메모리로부터 데이터를 검색하는 것을 학습하도록 구성될 수 있다. 더 구체적으로 신경망 시스템은 수행할 액션을 선택하는 것과 관련된 과거의 기억을 검색하는 방법을 학습할 수 있다. 일부 구현에서, 데이터는 학습된 판독 키와 시간 단계에 의해 인덱싱된 메모리/메모리(들) 간의 유사성 측정치에 기초하여 메모리로부터 판독될 수 있다. 판독 헤드 각각은 시간 단계에 대한 각각의 판독 키와 메모리의 행(row) 사이의 유사성에 대한 유사성 측정치에 기초하여 다수의 메모리 위치에 대해 소프트 판독을 수행할 수 있다. 검색된 데이터는 이전에 저장된 상태 표현의 가중(가중치가 부여된) 조합을 포함할 수 있다. RNN(Recurrent Neural Network) 시스템에서, 시간 단계에 대한 상태 표현 및 검색된 데이터(이전 시간 단계의 경우)는 이전 시간 단계에 대한 RNN 시스템에 대한 숨겨진 상태와 함께 반복(recurrent) 입력으로 사용될 수 있다. 학습은 사용된 강화 학습 기술, 보다 구체적으로 정책 그라디언트 손실과 같은 강화 학습 손실 함수에 의해 주도될 수 있다.
일부 구현에서, 방법은 시간 단계에서 판독 헤드에 대한 외부 메모리로부터 데이터가 판독된 강도(strength), 예를 들어 시간 단계에서 판독 헤드에 대한 외부 메모리로부터 데이터가 판독된 가중치에 기초하여, 시간 단계의 시퀀스에서 하나 이상의 시간 단계를 스플라이스 시간 단계로 식별하는 것을 포함할 수 있다. 강도는 시간 단계에서 외부 메모리를 판독하는 강도를 정의하는 판독 강도 파라미터에 의해 결정될 수 있다(신경망 시스템에 의해 결정되거나 학습됨). 이는 유사성 측정(측정치)에 대한 추가 파라미터일 수 있다.
스플라이스 시간 단계는 수정된 보상을 생성하기 위해 값 예측이 얻어지는 시간 단계(특정 현재 시간 단계 이후)를 포함할 수 있다. 따라서, 수정된 보상을 생성하는 것은 스플라이스 시간 단계 이전의 시간 단계의 임계 수보다 많은 하나 이상의 특정 시간 단계를 식별하고, 스플라이스 시간 단계에서 외부 메모리로부터 판독된 데이터를 사용하여 생성된 값 예측으로부터 식별된 각 시간 단계에 대한 보상에 대한 수정을 생성하고, 및 해당 시간 단계에 대한 실제 보상에 수정사항(modification)을 적용하는 것을 포함할 수 있다. 스플라이스 시간 단계는 판독 강도 파라미터가 임계 값을 초과하는 단계일 수 있으며; 이는 모든 판독 강도 파라미터가 임계 값을 초과하는 시간 윈도우 내에서 가장 높은 판독 강도 파라미터를 갖는 시간 단계 일 수 있다.
일부 구현에서 압축된 상태 표현을 결정하는 것은 선택적으로 이전 액션 및 보상의 표현을 포함하는, 환경의 관찰치(observation)의 표현을 재구성하는 것, 디코더 신경망을 사용하는 것, 및 재구성 손실을 사용하여 디코더를 포함하는 신경망 시스템을 훈련시키는 것을 포함할 수 있다.
본 명세서에 설명된 요지의 특정 실시 예는 다음의 장점 중 하나 이상을 실현하기 위해 구현될 수 있다.
예를 들어 로봇 태스크와 같은 많은 복잡한 태스크는 하나 이상의 이전 시간 단계에서 일부 액션을 올바르게 수행하거나 일부 정보를 관찰한 다음 관찰된 정보 또는 하나 이상의 이후 시간 단계에서 액션 결과를 사용해야 한다. 액션이 성공적으로 수행되었는지 또는 필요한 정보가 이전 시간 단계에서 성공적으로 관찰되었는지 여부는 훨씬 나중 시간 단계까지 명확하지 않는다. 따라서 이러한 태스크에는 에이전트의 액션과, 지정된 태스크를 성공적으로 완료하기 위한 액션의 결과 사이에 긴 지연이 포함된다.
기존의 강화 학습 시스템은 에이전트가 이러한 태스크를 성공적으로 수행하도록하는 데 사용할 수 있는 신경망 또는 기타 제어 정책을 성공적으로 훈련(학습)할 수 없다. 특히, 훈련(학습) 중에, 보상이 에이전트가 수행한 액션의 단기 영향만을 기반으로 하기 때문에 기존 시스템은 단지 상대적으로 단기간에 소정의 시간 단계에서 액션에 "크레딧(credit)"을 할당할 수 있다. 반면에 설명된 시스템은 먼 미래의 시간 단계에서 값 예측을 사용하여 일부 시간 단계에서 보상을 수정함으로써 먼 과거의 액션에 대해 크레딧을 성공적으로 할당할 수 있다. 이 접근 방식을 통해 설명된 시스템은 에이전트를 성공적으로 제어하여 기존 시스템에서 다루기 힘든 태스크를 수행할 수 있다.
또한 설명된 접근 방식은 이후 시간 단계에서 이미 생성된 정보를 사용하여 보상만 수정하기 때문에, 학습 과정에서 사용되는 계산 리소스를 크게 늘리지 않고도 기존 강화 학습 기술과 함께 사용될 수 있다. 사실, 설명된 접근 방식을 통해 시스템이 기존 시스템에서 다루기 힘든 태스크에 대한 효과적인 정책을 학습할 수 있기 때문에, 설명된 접근 방식은 훈련(학습) 프로세스가 분산되거나 성공적인 제어 정책을 결정하는 데 진전(progress)을 이루지 못하는 동안 리소스가 낭비되지 않기 때문에 강화 학습 시스템에서 소비하는 계산 리소스의 양을 줄일 수 있다.
본 명세서에 기술된 요지의 하나 이상의 실시 예의 세부 사항은 첨부된 도면 및 이하의 설명에서 설명된다. 요지의 다른 특징, 양태 및 장점은 설명, 도면 및 청구 범위로부터 명백해질 것이다.
도 1은 예시적인 강화 학습 시스템을 보여준다.
도 2는 시스템이 태스크 에피소드의 나중(이후) 시간 단계에서 값 예측을 사용하여 태스크 에피소드의 이전 시간 단계에 대한 보상을 수정하는 방법의 예를 보여준다.
도 3은 태스크 에피소드의 시간 단계에서 보상을 수정하기 위한 예시적인 프로세스의 흐름도이다.
도 4는 시간 단계에서 액션을 선택하기 위해 신경망 시스템이 수행하는 처리(프로세싱)의 예를 보여준다.
도 5는 판독 강도(read strengths)를 사용하여 태스크 에피소드의 시간 단계에서 보상을 수정하기 위한 예시적인 프로세스의 흐름도이다.
다양한 도면의 참조 번호와 명칭은 같은 요소를 나타낸다.
본 명세서는 에이전트가 수행할 액션을 선택하기 위해 시간 단계(즉, "관찰치(observation)")에서 환경의 현재 상태를 특성화하는 데이터를 여러 시간 단계 각각에서 처리(프로세싱)함으로써 환경과 상호 작용하는 에이전트를 제어하는 강화 학습 시스템을 설명한다.
각 시간 단계에서, 시간 단계의 환경 상태는 이전 시간 단계의 환경 상태와 이전 시간 단계에서 에이전트가 수행한 액션에 따라 달라진다.
일부 구현에서, 환경은 실제 환경이고, 에이전트는 실제 환경과 상호 작용하는 기계 에이전트, 예를 들어 로봇 또는 환경을 탐색하는 자율 또는 반자율 랜드, 항공 또는 해상 차량이다. 이러한 구현에서, 관찰치는 예를 들어, 이미지, 물체 위치 데이터 및 에이전트가 환경과 상호 작용할 때 관찰치를 캡처하기 위한 센서 데이터, 예를 들어 이미지, 거리 또는 위치 센서 또는 액추에이터로부터의 센서 데이터 중 하나 이상을 포함할 수 있다.
예를 들어 로봇의 경우, 관찰치는 로봇의 현재 상태를 특성화하는 데이터를 포함할 수 있으며, 예를 들어 관절(조인트) 위치, 관절 속도, 관절 힘, 토크 또는 가속도(예를 들어 중력 보상 토크 피드백 및 로봇이 들고있는 아이템의 글로벌 또는 상대 포즈(자세)) 중 하나 이상을 포함할 수 있다.
로봇 또는 기타 기계 에이전트 또는 차량의 경우, 관찰치는 유사하게 위치, 선형 또는 각속도, 힘, 토크 또는 가속도, 에이전트의 하나 이상의 부분에 대한 글로벌 또는 상대적 자세 중 하나 이상을 포함할 수 있다. 관찰치는 1 차원, 2 차원 또는 3 차원으로 정의될 수 있으며 절대 및/또는 상대 관찰치일 수 있다.
관찰치는 또한 예를 들어 모터 전류 또는 온도 신호와 같은 감지된 전자 신호; 및/또는 예를 들어 카메라 또는 LIDAR 센서로부터의 이미지 또는 비디오 데이터, 예를 들어 에이전트의 센서로부터의 데이터 또는 환경에서 에이전트와 별도로 위치된 센서로부터의 데이터를 포함할 수 있다. 이러한 구현에서, 액션은 로봇을 제어하기 위한 제어 입력일 수 있으며, 예를 들어, 로봇의 관절에 대한 토크 또는 상위 수준 제어 명령, 또는 자율 또는 반자율 랜드, 항공, 해상 차량, 예를 들어 제어 표면에 대한 토크 또는 기타 명령 요소(예: 차량의 조향 제어 요소 또는 더 높은 수준의 제어 명령)일 수 있다.
즉, 액션은 예를 들어 로봇의 하나 이상의 관절 또는 다른 기계 에이전트의 부품에 대한 위치, 속도 또는 힘/토크/가속 데이터를 포함할 수 있다. 액션 데이터는 모터 제어 데이터와 같은 전자 제어 데이터 또는 보다 일반적으로 제어가 환경의 관찰된 상태에 영향을 미치는 환경 내에서 하나 이상의 전자 장치를 제어하기 위한 데이터를 추가로 또는 대안적으로 포함할 수 있다. 예를 들어 자율 또는 반 자율 랜드(육상) 또는 항공 또는 해상 차량의 경우, 액션은 예를 들어 내비게이션을 제어하는 액션(예를 들어 조향 및 움직임(예: 차량의 제동 및/또는 가속))을 포함할 수 있다.
전자 에이전트의 경우, 관찰치는 전류, 전압, 전력, 온도 및 기타 센서 및/또는 장비의 전자 및/또는 기계 아이템의 기능을 나타내는 전자 신호와 같은 서비스 시설 또는 플랜트의 일부를 모니터링하는 하나 이상의 센서로부터의 데이터를 포함할 수 있다. 예를 들어, 실제 환경은 제조 공장 또는 서비스 시설일 수 있으며, 관찰치는 예를 들어 전력 소비와 같은 자원 사용량과 같은 공장 또는 시설의 운영과 관련될 수 있으며, 에이전트는 예를 들어 자원 사용량을 줄이기 위해 플랜트/시설의 액션 또는 운영을 제어할 수 있다. 일부 다른 구현에서, 실제 환경은 재생 에너지 플랜트일 수 있으며, 관찰치는 예를 들어 현재 또는 미래의 계획된 전력 생산을 최대화하기 위해 플랜트의 운영과 관련될 수 있으며, 에이전트는 이를 달성하기 위해 플랜트의 액션 또는 운영을 제어할 수 있다.
다른 분야에서, 에이전트는 예를 들어 데이터 센터, 전력/물 분배 시스템 또는 제조 플랜트 또는 서비스 시설과 같은 장비 아이템을 포함하는 실제 환경에서의 액션을 제어할 수 있다. 그런 다음 관찰치는 플랜트 또는 시설의 운영과 관련될 수 있다. 예를 들어, 관찰치는 장비에 의한 전력 또는 물 사용량 관찰치, 발전 또는 배전 제어 관찰치, 자원(리소스) 사용량 또는 폐기물 생산 관찰치를 포함할 수 있다. 액션은 플랜트/시설의 장비 아이템에 대한 운영 조건을 제어하거나 부과하는 액션 및/또는 (예를 들어, 플랜트/시설의 컴포넌트를 조정하거나 켜거나 끄기위해) 플랜트/시설의 운영 설정을 변경하는 액션을 포함할 수 있다.
또 다른 예로, 환경은 화학적 합성 또는 프로테인 폴딩(protein folding) 환경이될 수 있으므로, 각 상태는 프로테인 체인 또는 하나 이상의 중간체 또는 전구체 화학 물질의 각 상태이고, 에이전트는 프로테인 체인을 폴딩하거나 화학 물질을 합성하는 방법을 결정하기 위한 컴퓨터 시스템이 될 수 있다. 이 예에서, 액션은 프로테인 체인을 폴딩하기 위한 가능한 폴딩 액션 또는 전구체 화학 물질/중간체를 어셈블링하기 위한 액션이고, 달성되는 결과는 예를 들어 프로테인이 안정되어 특정 생물학적 기능을 달성하거나 화학 물질에 대한 유효한 합성 경로를 제공하도록 프로테인을 폴딩하는 것을 포함할 수 있다. 다른 예로서, 에이전트는 인간 상호 작용없이 자동으로 시스템에 의해 선택된 프로테인 폴딩 액션 또는 화학적 합성 단계를 수행하거나 제어하는 기계적 에이전트일 수 있다. 관찰치는 프로테인 또는 화학 물질/중간체/전구체의 상태에 대한 직접 또는 간접 관찰치를 포함할 수 있고 및/또는 시뮬레이션으로부터 유도될 수 있다.
일부 구현에서, 환경은 시뮬레이션된 환경일 수 있고, 에이전트는 시뮬레이션된 환경과 상호 작용하는 하나 이상의 컴퓨터로 구현될 수 있다.
시뮬레이션된 환경은 모션 시뮬레이션 환경, 예를 들어 운전 시뮬레이션 또는 비행 시뮬레이션일 수 있으며, 에이전트는 모션 시뮬레이션을 통해 네비게이팅하는 시뮬레이션된 차량일 수 있다. 이러한 구현에서, 액션은 시뮬레이션된 사용자 또는 시뮬레이션된 차량을 제어하기 위한 제어 입력일 수 있다.
일부 구현에서, 시뮬레이션된 환경은 특정 실제 환경의 시뮬레이션일 수 있다. 예를 들면, 시스템은 제어 신경망의 훈련 또는 평가 중에 시뮬레이션된 환경에서 액션을 선택하는 데 사용될 수 있으며, 훈련 또는 평가 또는 둘 다 완료된 후에는 시뮬레이션된 환경에 의해 시뮬레이션된 실제 환경에서 실제 에이전트를 제어하기 위해 배포될 수 있다. 이를 통해 실제 환경 또는 실제 에이전트에 대한 불필요한 손상(wear and tear) 및 데이지를 방지할 수 있으며, 실제 환경에서 거의 발생하지 않거나 재현하기 어려운 상황에서 제어 신경망을 훈련하고 평가할 수 있다.
일반적으로 시뮬레이션 환경의 경우, 관찰치는 하나 이상의 이전에 설명된 관찰치 또는 관찰치 유형의 시뮬레이션 버전을 포함할 수 있으며, 액션는 하나 이상의 이전에 설명된 액션 또는 액션의 유형 중 하나 이상의 시뮬레이션 버전을 포함할 수 있다.
도 1은 예시적인 강화 학습 시스템(100)을 도시한다. 강화 학습 시스템(100)은 후술하는 시스템, 컴포넌트 및 기술이 구현되는 하나 이상의 위치에 있는 하나 이상의 컴퓨터에서 컴퓨터 프로그램으로 구현되는 시스템의 예이다.
시스템(100)은 에이전트(102)에 의해 수행될 액션(106)을 선택하고 에이전트(102)가 선택된 액션(106)을 수행하게 함으로써 환경(104)과 상호 작용하는 에이전트(102)를 제어한다.
에이전트(102)에 의한 선택된 액션(106)의 수행은 일반적으로 환경(104)이 새로운 상태로 전환되게 한다. 에이전트(102)가 환경(104)에서 동작하도록 반복적으로 야기함으로써, 시스템(100)은 지정된 태스크를 완료하도록 에이전트(102)를 제어할 수 있다.
시스템(100)은 제어 신경망 시스템(110), 훈련 엔진(150), 및 제어 신경망 시스템(110)의 모델 파라미터 세트(118)를 저장하는 하나 이상의 메모리를 포함한다.
다수의 시간 단계 각각에서, 제어 신경망 시스템(110)은 액션(동작) 선택 출력(122)을 생성하기 위해 모델 파라미터(118)에 따라 환경(104)의 현재 상태를 특성화하는 현재 관찰치(120)를 포함하는 입력을 처리(프로세싱)하도록 구성된다.
시스템(100)은 액션 선택 출력(122)을 사용하여 에이전트를 제어하는 데, 즉, 액션 선택 정책에 따라 현재 시간 단계에서 에이전트에 의해 수행될 액션(106)을 선택한 다음, 예를 들어, 에이전트에 제어 신호를 직접 전송하거나 에이전트를 위한 제어 시스템에 액션(106)을 식별하는 데이터를 전송함으로써 에이전트가 액션(106)을 수행하게 한다.
에이전트에 의해 수행될 액션(106)을 선택하기 위해 액션 선택 출력(122)을 사용하는 몇 가지 예가 다음에 설명된다.
일 예에서, 액션 선택 출력(122)은 에이전트에 의해 수행될 가능한 액션에 대한 확률 분포를 정의한다. 예를 들어, 액션 선택 출력은 환경과 상호 작용하기 위해 에이전트에 의해 수행될 수 있는 가능한 액션 세트의 각 액션에 대한 각각의 액션 확률을 포함할 수 있다. 다른 예에서, 액션 선택 출력(122)은 가능한 액션 세트에 대한 분포의 파라미터를 포함할 수 있다. 시스템(100)은 예를 들어, 액션에 대한 확률 값에 따라 액션을 샘플링하거나, 가장 높은 확률 값을 가진 액션을 선택함으로써, 다양한 액션 선택 정책 중 임의의 것을 사용하여 액션(동작) 선택 출력(122)에 기초하여 에이전트에 의해 수행될 액션을 선택할 수 있다.
다른 예에서, 액션 선택 출력(122)은 관찰치에 응답하여 에이전트에 의해 수행될 가능한 액션 세트로부터 최적의 액션을 식별한다. 예를 들어, 기계 에이전트를 제어하는 경우, 액션 선택 출력은 기계 에이전트의 하나 이상의 조인트에 적용될 토크를 식별할 수 있다. 시스템(100)은 예를 들어 식별된 최적의 액션을 선택하거나 최적의 액션에 노이즈를 추가하여 탐색을 장려하고 노이즈가 추가된 액션을 선택함으로써, 다양한 액션 선택 정책 중 임의의 것을 사용하여 액션 선택 출력(122)에 기초하여 에이전트에 의해 수행될 액션을 선택할 수 있다.
다른 예에서, 액션 선택 출력(122)은 에이전트에 의해 수행될 수 있는 가능한 액션 세트의 각 액션에 대한 각각의 Q- 값을 포함할 수 있다.
액션에 대한 Q 값은 에이전트가 현재 관찰치(120)에 응답하여 액션을 수행하고 그 후 제어 신경망 파라미터의 현재 값에 따라 에이전트(102)가 수행하는 미래 액션을 선택함으로써 발생하는 "리턴(return)"의 추정치이다. 리턴은 에이전트에 의해 수신된 "보상(rewards)"(124)의 누적 측정 값, 예를 들어 시간 할인된 보상 합계를 의미한다.
에이전트는 각 시간 단계에서 각각의 보상(124)을 수신할 수 있으며, 여기서 보상(124)은 스칼라 숫자 값에 의해 지정되고 예를 들어, 지정된 태스크를 완료하기 위한 에이전트의 진행(progress)을 특성화한다.
이 예에서, 시스템(100)은 예를 들어 가장 높은 Q 값을 갖는 액션을 선택하거나 Q 값을 확률에 매핑하고 확률에 따라 액션을 샘플링함으로써, 다양한 액션 선택 정책 중 임의의 것을 사용하여 액션 선택 출력(122)에 기초하여 에이전트에 의해 수행될 액션을 선택할 수 있다. 일부 경우에, 시스템(100)은 탐색(exploration) 정책에 따라 에이전트에 의해 수행될 액션을 선택할 수 있다. 예를 들면, 탐색 정책은 이-그리디(
Figure pct00003
) 탐색 정책일 수 있으며, 여기서 시스템(100)은 확률(
Figure pct00004
)로 액션 선택 출력(122)에 따라 에이전트에 의해 수행될 액션을 선택하고, 확률(
Figure pct00005
)로 액션을 랜덤으로 선택한다. 이 예에서,
Figure pct00006
는 0과 1 사이의 스칼라 값이다.
상기 중 임의의 것에 추가하여, 신경망 시스템(110)은 또한 지정된 태스크를 성공적으로 수행하기 위해 현재 상태에 있는 환경의 값을 나타내는 값 예측(126)을 생성한다. 다시 말해, 값 예측(126)은 관찰치를 특징짓는(특징화하는) 현재 상태에 있는 환경에서 발생하는 지정된 태스크에 대한 리턴의 추정치이며, 예를 들어, 에이전트가 제어 신경망 시스템(110)의 출력을 사용하여 제어되는 경우 태스크 에피소드의 나머지 또는 일부 고정된 수의 미래 시간 단계에 대해 현재 상태로부터 시작하여 수신될 시간 할인된 보상 합계(124)의 추정치이다. 리턴을 계산할 때 미래 보상이 고정 시간 할인 팩터
Figure pct00007
에 의해 할인되기 때문에 합계를 시간 할인이라고 한다.
일부 경우에, 제어 신경망 시스템(110)은 값 예측(126)을 직접 생성하는 데, 즉, 시간 할인된(time-discounted) 미래 리턴의 예측인 값을 직접 생성한다. 다른 경우에, 제어 신경망 시스템(110)은, 즉 신경망 시스템(110)에 의해 출력되는 다른 양(quantities)에 기초하여 간접적으로 값 예측(126)을 생성한다. 예를 들어, 신경망 시스템(110)이 Q 값을 생성할 때, 값 예측(126)은 액션 세트의 임의의 액션에 대해 출력되는 가장 높은 Q 값일 수 있다.
값 예측(126) 및 액션 선택 출력(122)을 생성하는 일부로서, 제어 신경망 시스템(110)은 외부 메모리로부터 데이터를 판독하고(읽고) 데이터를 기록한다.
즉, 신경망 시스템(110)은 외부 메모리로 증대(augmented)되고, 각 시간 단계에서 신경망 시스템은 하나 이상의 판독 헤드 각각에 대해 외부 메모리로부터 데이터를 판독하고 외부 메모리에 데이터를 기록한다.
일반적으로, 신경망 시스템(110)은, 적어도 (i) 이전 시간 단계에서 외부 메모리로부터 판독된 데이터 또는 (ii) 시간 단계에서 외부 메모리로부터 판독된 데이터를 사용하여 각 시간 단계에서 수행할 액션을 선택하고; 및 적어도 (i) 이전 시간 단계에서 외부 메모리로부터 판독된 데이터 또는 (ii) 시간 단계에서 외부 메모리로부터 판독된 데이터를 사용하여 값 예측을 생성한다.
외부 메모리를 사용하는 제어 신경망 시스템(110)에 대한 가능한 아키텍처가 많지만, 메모리에서 읽고(판독) 쓰는(기록) 신경망 시스템(110)의 아키텍처의 예가도 4를 참조하여 아래에서 설명된다.
훈련 엔진(150)은 에이전트와 환경의 상호 작용에 기초하여 제어 신경망 시스템(110)의 모델 파라미터(118)를 반복적으로 업데이트함으로써 제어 신경망 시스템(110)을 훈련시키도록 구성된다.
훈련 동안, 시스템(100)은 제어 신경망 시스템(110)에 의해 제어되는 동안 에이전트가 태스크의 에피소드를 반복적으로 수행하게 한다. 태스크 에피소드는 에이전트가 지정된 태스크를 수행하려고 시도하는 시간 단계의 시퀀스이다. 예를 들어, 태스크 에피소드는 미리 결정된 수의 시간 단계 동안 또는 태스크가 성공적으로 완료되었음을 나타내는 보상을 받을 때까지 계속될 수 있다. 태스크 에피소드 동안 각 시간 단계에서, 시스템은 환경의 현재 상태를 특성화하는 관찰치(120)을 획득하고, 신경망 시스템(110)을 사용하여 관찰치에 대한 응답으로 에이전트가 수행할 액션을 관찰치(120)로부터 선택한다. 시스템(100)은 또한 신경망 시스템(110)을 사용하여, 지정된 태스크를 성공적으로 수행하기 위해 현재 상태에 있는 환경의 값을 나타내는 값 예측(126)을 생성한다. 그 후 시스템(100)은 에이전트로 하여금 선택된 액션(106)을 수행하게 하고, 이에 응답하여 에이전트가 선택된 액션(106)을 수행한 결과로서 태스크를 완료하기 위해 환경에서 이루어진 진행을 특징짓는 실제 보상(124)을 수신한다.
특히, 훈련 엔진(150)은 강화 학습을 통해 제어 신경망 시스템(110)을 훈련시킨다.
보다 구체적으로, 종래의 훈련 엔진(150)은 훈련 동안 에이전트가 환경과 상호 작용한 결과로 생성된 관찰치(120) 및 보상(124)을 사용하여 제어 신경망 시스템(110)을 훈련시킬 것이다.
한편, 설명된 시스템은 수정된 보상(172)을 생성하기 위해 태스크 에피소드의 일부 시간 단계에 대한 보상(124)을 수정하는 보상 수정 엔진(170)을 포함한다.
훈련 엔진(150)은 보상(124) 또는 수정된 보상(172)이 생성된 시간 단계에 대해 수정된 보상(172)에 기초한 강화 학습을 통해 제어 신경망 시스템(110)을 훈련한다.
보다 구체적으로, 태스크 에피소드의 특정 시간 단계에 대해, 보상 수정 엔진(170)은 에피소드의 상당히 나중(이후) 시간 단계, 즉 특정 시간 단계보다 에피소드 후반의 시간 단계의 임계 수보다 많은 시간 단계에 대해 생성된 값 예측(126)을 사용하여 보상(124)을 수정한다. 즉, 시스템은 보상(124) 대신에 훈련 중에 사용될 수정된 보상을 생성하기 위해 이전 시간 단계에 대한 보상(124)을 "부트스트랩(bootstrap)"하기 위해 이후 시간 단계로부터의 값 예측(126)을 사용한다. 이러한 방식으로 보상을 수정하는 것은 본 명세서에서 "TVT(temporal value transport)"이라고 한다.
보상을 수정하는 방법은 도 2, 3, 5를 참조하여 아래에서 더 자세히 설명한다.
이러한 방식으로 보상을 수정하면 훈련 엔진(150)이 제어 신경망 시스템(100)을 훈련시켜 태스크 에피소드 내에서 롤 타임 스케일(long time scales)에 걸쳐 크레딧을 더 효과적으로 할당할 수 있으며, 즉, 에피소드의 후반부에 태스크을 완료하는 데 상당한 진행(progress)을 초래할 수 있는 액션을 에피소드 초기에 더 정확하게 수행할 수 있다.
일반적으로, 훈련 엔진(150)은 임의의 적절한 강화 학습 기술, 예를 들어 정책 그라디언트 기반 기술을 사용하여 에이전트에 의해 수신된 리턴(즉, 보상의 누적 측정 또는 수정된 보상)을 증가시키도록 제어 신경망 시스템(110)을 훈련시킬 수 있다.
제어 신경망 시스템(110)을 훈련시키기 위해 훈련 엔진(150)에 의해 사용될 수 있는 기술의 한 예는 "arxiv.org/abs/1806.06920"에서 사용할 수 있는 "Abdolmaleki, A., et al, Maximum a Posteriori Policy Optimisation"에 설명된 "Maximum a Posteriori Policy Optimization(MPO)" 기술이다.
제어 신경망 시스템(110)을 훈련시키기 위해 훈련 엔진(150)에 의해 사용될 수 있는 기술의 또 다른 예는 "Espeholt, L., et al, Impala: Scalable distributed deep-rl with importance weighted actor-learner architectures. arXiv preprint arXiv:1802.01561, 2018"에 설명된 "IMPALA V-trace" 기술이다.
일부 경우에, 시스템(100)은 다수의 에이전트가 동일한 환경의 상이한 복제본(replicas)과 상호 작용하는 훈련 동안 분산 프레임워크를 사용한다.
도 2는 시스템이 태스크 에피소드의 나중(이후) 시간 단계에서 값 예측을 사용하여 태스크 에피소드의 이전 시간 단계에 대한 보상을 수정하는 방법의 예를 보여준다. 특히, 도 2는 시스템이 태스크 에피소드의 시간 단계(204)에 대한 값 예측을 사용하여 태스크 에피소드의 시간 단계(202)에서 보상을 수정하는 방법을 보여준다. 도 2의 기호에 대한 정의는 도 4를 참조하여 후술한다.
도 2에서 알 수 있는 바와 같이, 태스크 에피소드는 세 가지 시간 기간, 즉 보상을 받지 않는 초기 시간 단계, 초기 시간 단계에서 취해진 액션에 의존하지 않는 약간의 작은 보상("distractor reward")을 받을 수 있는 중간 시간 단계, 실제로 초기 시간 단계에서 취해진 액션에 따라 달라지는 디스탈 보상(distal reward)을 받을 수 있는 나중(이후) 시간 단계를 포함한다. 즉, 보상 수령이 초기 시간 단계에서 오랜 시간 간격을 두고 분리되어 있어도 보상은“디스탈”이고, 보상을 받았는지 또는 얼마나 많은 보상을 받았는지 여부는 여전히 초기 시간 단계에서 발생한 일에 따라 다르다. 이러한 시간 단계에서의 보상은 시간 단계에서 생성된 정보에 대해서만(예, 시간 단계에서 받은 실제 보상에 대해서만 그리고 경우에 따라 다음 시간 단계에서 값 예측에 대해서만) 결정되기 때문에 많은 기존 강화 학습 알고리즘이 설명하기 어려운 상황일 수 있다. 특히, 일부 강화 학습 기술은
먼저 다음 시간 단계에서 값 예측으로부터 파생된 값을 실제 보상에 더한 다음 강화 학습을 위한 부트스트랩 보상을 사용함으로써 "표준 부트스트랩(standard bootstrapping)"을 사용하여 소정의 시간 단계에서 실제 보상을 부트스트랩하는 반면, 이 표준 부트스트랩은 도 2에 도시된 디스탈(distal) 보상을 설명하기에 불충분하다.
특히, 시간 단계 202(도 2에서 시간 단계 "t1"로 표시됨)에서, 표준 부트스트랩은 시간 단계 202에서 실제 보상(
Figure pct00008
)에 다음 시간 단계의 값 예측(
Figure pct00009
)과 할인 팩터(
Figure pct00010
)의 곱인 수정자(modifier)를 추가하여 부트스트랩된 리턴(
Figure pct00011
)을 생성한다.
반면에, 본 명세서에 설명된 TVT(Temporal value transport)는 특정 기준이 충족(만족)되면 훨씬 나중(이후) 시간 단계(204)로부터의 값 예측(
Figure pct00012
)의 곱과 부트스트랩된 리턴(
Figure pct00013
)을 생성할 때 가중치(α)를 기반으로 하는 수정자를 추가한다. 외부 메모리로부터 판독하는 동안 생성된 판독 가중치에 또한 의존하는 이 수정자의 대안적인 공식은 도 5를 참조하여 아래에서 더 상세히 설명될 것이다. 이는 또한 시간 단계(204)로부터의 값 예측(
Figure pct00014
)을 사용하여 실제 보상(
Figure pct00015
)에서 수정된 보상(
Figure pct00016
)을 생성한 다음 그 수정된 보상을 사용하여 강화 학습을 통해 신경망 시스템을 훈련시키는 것으로 볼 수 있다(예를 들어, 도 2에 도시된 바와 같이 표준 부트스트랩과 결합하거나 다른 강화 학습 기술을 사용하여).
이러한 방식으로 수정된 보상을 생성하면, 시스템이, 시간 단계(202)에서 수신 된 것과 같은 관찰치에 응답하여 수행하는 것이 가장 좋은 액션을 학습할 때, 시간 단계(202)에서 수행된 액션이 훨씬 나중(이후) 시간 단계(204)에서 디스탈 보상을 초래했음을 식별할 수 있게 한다.
도 3은 태스크 에피소드의 시간 단계에 대한 보상을 수정하기 위한 예시적인 프로세스(300)의 흐름도이다. 편의상, 프로세스(300)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 적절하게 프로그래밍된 강화 학습 시스템, 예를 들어, 도 1의 강화 학습 시스템(100)은 프로세스(300)를 수행할 수 있다.
시스템은 에이전트가 지정된 태스크를 수행하려고 시도하는 태스크 에피소드를 에이전트로 하여금 수행하게 한다(단계 302). 예를 들어, 시스템은 예를 들어, 태스크가 성공적으로 수행되었음을 나타내는 보상이 수신될 때까지, 임계 수의 시간 단계에서 액션이 수행될 때까지 또는 다른 종료 기준이 충족(만족)될 때까지 에이전트로 하여금 시간 단계의 시퀀스의 각 시간 단계에서 액션을 수행하도록 할 수 있다.
시스템은 태스크 에피소드 동안 하나 이상의 특정 시간 단계, 즉 태스크 에피소드에 대한 시간 단계의 시퀀스에서 하나 이상의 특정 시간 단계에 대한 수정된 보상을 생성한다(단계 304).
일반적으로 시스템은, 먼저 시스템이 시간 단계에서 외부 메모리로부터 데이터를 판독하는 방법을 기반으로 태스크 에피소드의 후반부(later)에 있는 하나 이상의 스플라이스 시간 단계를 식별한다. 그 다음 시스템은, 각 슬라이스 시간 단계에 대해, 스플라이스 시간 단계보다 에피소드의 초기(이전) 임계 값보다 큰 하나 이상의 초기(이전) 시간 단계를 식별하고, 스플라이스 시간 또는 스플라이스 시간 단계 직후의 시간 단계로부터의 값 예측을 사용하여 식별된 초기(이전) 시간 단계에 대한 실제 보상을 수정한다.
보상을 수정하기 위한 특정 시간 단계 및 보상을 수정하는데 사용할 이후 시간 단계를 결정하기 위한 기술의 더 상세한 예는 도 5를 참조하여 아래에서 더 상세히 설명된다.
시스템은 적어도 수정된 보상에 대한 강화 학습을 통해 신경망 시스템을 훈련한다(단계 306). 즉, 시스템은 적절한 강화 학습 기법을 사용하여 신경망 시스템을 훈련할 때 실제 보상 대신 수정된 보상을 사용할 수 있다. 시스템이 보상을 수정하지 않는 시간 단계의 경우, 시스템은 강화 학습 기법을 수행할 때 실제 보상을 사용한다. 위에서 설명한대로 일부 강화 학습 기술의 경우 시스템은 수정된 보상(또는 보상이 수정되지 않은 시간 단계에 대한 실제 보상)에 표준 보상 부트스트랩(standard reward bootstrapping)을 적용한다.
도 4는 소정의 시간 단계(t)에서 신경망 시스템에 의해 수행될 수 있는 처리(프로세싱)의 예를 보여준다.
도 4는 태스크 에피소드 동안 다른 시간 단계에서 메모리에 읽고(판독) 쓰는(기록) 특정 예를 보여주며, 설명된 기술의 원리는 모든 신경망 시스템에 적용 가능하다. 더 구체적으로, 도 4는 신경망 시스템의 한 구성을 설명하지만, 본 명세서에서 설명하는 TVT(시간적 값 전송) 기술은 에이전트 제어시 외부 메모리에서 읽고 쓰는 시스템을 포함하여 신경망 시스템의 모든 구성에 적용될 수 있다.
도 4의 예에서, 시간 단계, 이전 보상(
Figure pct00017
) 및 여기에서의 이전 액션(
Figure pct00018
)에 대한 이미지 프레임(
Figure pct00019
) 또는 기타 센서 데이터가 시간 단계(t)에서의 관찰치를 구성한다. 이러한 입력은 인코더 신경망에 의해 처리되고 임베딩 벡터(
Figure pct00020
)로 병합되어 순환 신경망(RNN)의 출력과 결합된다. 예를 들어,
Figure pct00021
Figure pct00022
Figure pct00023
는 별도로 연산되어 3 개의 벡터를 생성할 수 있으며, 시스템은 3개의 벡터를 연결(concatenate)하여 임베딩 벡터(
Figure pct00024
)를 생성할 수 있다. 시스템은 컨벌루션 신경망(예: 컨벌루션 신경망의 잔여 블록이 있는)을 사용하여 이미지 프레임(
Figure pct00025
)을 처리(프로세싱)하여 피쳐 맵(feature map)을 생성한 다음 피쳐 맵을 벡터로 플래튼(flatten)할 수 있다. 그러면 시스템은 하나 이상의 선형 레이어를 통해 플래튼된 피쳐 맵을 처리하여 이미지 프레임(
Figure pct00026
)에 대한 최종 벡터를 생성할 수 있다. 이전 보상 및 이전 액션에 대해, 시스템은 각각의 원-핫 인코딩 표현(one-hot encoded representation)을 최종 벡터로 생성하거나 원-핫 인코딩 표현을 임베딩 공간에 매핑하여 최종 벡터를 생성할 수 있다.
RNN은 예를 들어 LSTM, "컨트롤러(controller)" 네트워크(h) 및 차원(dimension)(N × W)의 메모리 행렬(M)과 같은 반복(recurrent)을 포함한다. 이전 시간 단계(t-1)의 RNN 및 메모리 시스템의 출력은 이전 시간 단계의 컨트롤러 출력(
Figure pct00027
)과 하나 이상의 메모리 판독 벡터, 즉 하나 이상의 판독 헤드 각각에 대한 개별 벡터이다. 즉, RNN 및 메모리 시스템의 출력에는 메모리 판독 벡터라고 하는 메모리에서 판독한 길이(W)의 k개(양의 정수, 예: 3)의 벡터(
Figure pct00028
)가 포함된다. 이러한 출력은 피드포워드 네트워크에 의해 임베딩 벡터와 결합되어 "상태 표현"(
Figure pct00029
)으로 표현된다. 상태 표현(
Figure pct00030
)은 메모리 판독 벡터와 동일한 차원(W)을 가지며 다음 시간 단계에서 t번째(t-th) 행으로 메모리에 삽입된다(
Figure pct00031
).
시간 단계(t)에서, RNN은 메모리에서 읽기와 계산의 한주기(한 사이클)를 수행한다. 상태 표현(
Figure pct00032
)는 다음 RNN 출력(
Figure pct00033
)을 생성하기 위해 이전 시간 단계의 메모리 판독 벡터(
Figure pct00034
)와 함께 RNN에 대한 입력으로 제공된다.
그런 다음 현재 시간 단계의 메모리 판독 벡터를 생성하기 위한 메모리 판독이 발생한다(차원(W)의 k 판독 키(
Figure pct00035
)는
Figure pct00036
의 함수로 생성되고, 각 키는 유사성 측정치(S)(
Figure pct00037
)(예: 코사인 유사성)를 사용하여 모든 행(n)에 대해 매칭된다.). 유사성은
Figure pct00038
의 함수로도 계산되는 양의 판독 강도 파라미터(
Figure pct00039
)에 의해 스케일링된다. 예를 들어, 선형 계층(리니어 레이어)은, 스칼라(
Figure pct00040
)를 생성하기 위해 소프트플러스(SoftPlus) 함수를 통해 전달되는 길이(W) 및 k 스칼라의 k 개의 판독 키를 갖는 차원의 메모리 인터페이스 벡터(
Figure pct00041
)를 구성하기 위해
Figure pct00042
에 적용될 수 있다. 스케일링된 가중(가중치가 부여된) 유사성에 대한 소프트맥스(softmax)가 적용되어 i 번째 메모리 판독 벡터(
Figure pct00043
)를 구성하는 데 사용되는 차원(N)이 있는 어텐션(attentional) 판독 가중치 벡터(
Figure pct00044
)를 생성한다.
상태 표현(
Figure pct00045
)은 또한 값 함수(
Figure pct00046
)를 예측하면서 관찰치의 재구성(
Figure pct00047
,
Figure pct00048
)을 생성하도록 요구하는 목적 함수를 가진 디코더 네트워크로 전송된다(캐럿(carets)은 네트워크에 의해 생성된 대략적인 양(quantities)을 나타냄). 예를 들어,
Figure pct00049
를 생성하는 디코더 신경망은 상태 표현을 이미지에 매핑하기 위해 전치된 컨볼루션(transposed convolutions)을 적용하는 컨벌루션 신경망일 수 있는 반면,
Figure pct00050
Figure pct00051
을 생성하는 디코더는 각각 하나 이상의 선형(리니어) 레이어를 적용하여 상태 표현을 각각 스칼라 보상 값 및 액션 카디널리티(cardinality)에 매핑할 수 있다.
이 프로세스는
Figure pct00052
에 유용한 센서 정보가 압축된 형식으로 포함되도록 한다. 마지막으로, 상태 표현(
Figure pct00053
) 및 RNN 출력(
Figure pct00054
Figure pct00055
)은 정책 네트워크에 대한 입력으로 제공되어 액션 선택 출력(π)을 구성하고, 액션은 액션 선택 출력(π)에서 샘플링된다.
따라서, 도 4에 도시된 바와 같이, 다른 메모리 헤드는 다른 시간 단계에서 다른 판독 강도로 메모리에서 데이터를 판독한다. 이러한 판독 강도는 소정의 판독(읽기)의 크기(magnitude)를 결정하기 때문에, 판독 강도가 클수록 현재 시간 단계에서 액션을 효과적으로 선택하기 위해 더 많은 데이터를 메모리, 즉 이전 시간 단계에서 생성된 데이터에서 판독해야 함을 의미한다.
도 4를 참조하여 설명한 바와 같이 신경망 시스템을 훈련시키기 위해, 시스템은 예를 들어 위에서 설명한 MPO를 통해 정책 그라디언트 손실(선택적으로 관찰치의 재구성이 시스템에 의해 수신된 실제 관찰치와 매칭하도록 하는 재구성 손실)을 포함하는 손실 함수를 최소화하도록 신경망 시스템을 훈련시킬 수 있다. 예를 들어, 재구성 손실은 액션 재구성 디코더에 대한 다항 소프트맥스 크로스-엔트로피(cross-entropy) 손실, 보상 및 값(가치) 함수 디코더에 대한 평균-제곱(mean-squared) 오류(예: 고정 분산(fixed variance)이 1인 가우스) 손실 항, 그리고 이미지 디코더에 의해 생성된 이미지의 각 픽셀 채널에 대한 베르누이(Bernoulli) 크로스-엔트로피 손실 항을 포함할 수 있다.
이러한 경우 중 일부에서, 손실 함수는 또한 판독 강도 파라미터가 임계 값을 초과할 때마다 정규화 코스트를 부과하는 판독(reading) 재구성 손실을 포함한다. 도 5의 설명에서 알 수 있듯이, 이러한 손실을 포함하면 값 전송 메커니즘(value transport mechanism)이 트리거되는 횟수를 줄일 수 있고, 즉 이후(나중) 시간 단계에서 전송된 값이 있는 이전 시간 단계의 수를 줄일 수 있고; 학습(훈련) 중에 값 전송 메커니즘이 외부적으로 트리거되는 것을 방지 할 수 있다.
메모리에서 판독의 일부로 판독 강도를 생성하는 신경망 시스템의 예제 아키텍처와 이러한 신경망 시스템을 훈련하는 데 사용할 수 있는 손실 함수의 예제는 "Wayne, G. et al. Unsupervised predictive memory in a goal-directed agent. arXiv preprint arXiv:1803.10760 (2018) and Graves, A. et al. Hybrid computing using a neural network with dynamic external memory"에 설명되어 있다. "Nature 538, 471 (2016)"의 전체 내용은 본 명세서에 그 전체가 참고로 포함된다.
도 5는 판독 강도를 사용하여 태스크 에피소드의 시간 단계에 대한 보상을 수정하기 위한 예시적인 프로세스(500)의 흐름도이다. 편의상, 프로세스(500)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 적절하게 프로그래밍된 강화 학습 시스템, 예를 들어, 도 1의 강화 학습 시스템(100)은 프로세스(500)를 수행할 수 있다.
시스템은, 하나 이상의 판독 헤드 각각에 대해, 시간 단계에서 판독 헤드에 대한 외부 메모리로부터 데이터가 판독된 강도에 기초하여 태스크 에피소드에 대한 시간 단계의 시퀀스 중에서 하나 이상의 스플라이스 시간 단계를 식별한다(단계 502). 즉, 각 판독 헤드에 대해, 시스템은 서로 다른 에피소드 시간 단계에서 판독 헤드에 대해 외부 메모리에서 데이터가 판독된 강도에 기초하여 에피소드 시간 단계의 일부 서브세트를 스플라이스 시간 단계로 식별한다. 특히, 위에서 설명한 것처럼, 판독 헤드를 사용하여 데이터를 판독할 때, 시스템은 판독 헤드에 대한 시간 단계에서 외부 메모리를 판독하는 강도를 정의하는 판독 강도 파라미터를 생성한다.
일반적으로, 시스템은 판독 헤드에 대한 스플라이스 시간 단계로서, 판독 헤드에 대한 판독 강도 파라미터가 임계 값을 초과하는 하나 이상의 시간 단계를 식별할 수 있다. 특정 예로서, 시스템은 판독 헤드에 대한 판독 강도 파라미터가 임계 값을 초과하는 (하나 이상의) 연속된 시간 단계의 각 위도우를 식별한 다음, 판독 헤드에 대한 판독 강도 파라미터가 가장 높은 윈도우의 시간 단계를 스플라이스 시간 단계로서 식별한다. 즉, 이 특정 예에서, 시스템은 연속된 시간 단계의 각 윈도우에 대해 단일 스플라이스 시간 단계만 선택한다.
일부 구현에서, 소정의 시간 단계에 너무 가까운 시간 단계로 값이 전달되는 것을 방지하기 위해, 시간 단계의 윈도우를 식별하기 전에, 시스템은 i) 시간 단계에 대한 시간 인덱스(즉 시간 단계에 대한 t의 값)와 (ii) 시간 단계에서 판독 헤드에 대한 외부 메모리로부터 판독할 때 임의의 시간 단계 중 가장 큰 가중치를 갖는 시간 단계에 대한 시간 인덱스의 차이가 상수 값보다 작은 시간 단계에 대해 판독 헤드의 판독 강도 파라미터를 0으로 설정한다. 즉, 시스템은 현재 시간 단계에 너무 가까운 시간 단계에 기록된 데이터에서 가장 강도가 높은(strongest) 데이터를 판독하는 임의의 시간 단계를 (스플라이스 시간 단계를 결정하기 위해) 0으로 설정한다. 이는 시스템이 최근 시간 단계에서 메모리에 기록된 데이터에서 가장 강도가 높은 데이터를 판독하는 시간 단계가 스플라이스 시간 단계로 간주되는 것을 방지한다.
각각의 판독 헤드 및 판독 헤드에 대해 식별된 각각의 스플라이스 시간 단계에 대해, 시스템은 시퀀스에서 스플라이스 시간 단계 이전의 시간 단계의 임계 수보다 많은 하나 이상의 특정 이전 시간 단계를 식별한다(504). 예를 들어, 임계 수(threshold number)는 시간 단계에 대한 하프-라이프 값일 수 있으며, 이는 상수 값이며 예를 들어
Figure pct00056
로 설정될 수 있다. 즉, 시스템은, 각 스플라이스 시간 단계에 대해, 하프-라이프 값을 결정하고, 시퀀스에서 스플라이스 시간 단계 이전의 하프-라이프 값보다 큰 각 시간 단계를 특정 시간 단계로서 식별할 수 있다.
각 판독 헤드 및 각 스플라이스 시간 단계에 대해, 시스템은 스플라이스 시간 단계에서 외부 메모리로부터 판독된 데이터를 사용하여 생성된 값 예측으로부터 식별된 특정 이전 시간 단계에 대한 실제 보상에 대한 수정(수정사항)을 생성한다(단계 506).
특히 위에서 설명한 바와 같이, 외부 메모리에서 판독할 때, 각 판독 헤드 및 각 시간 단계에 대해, 시스템은 각 이전 시간 단계에서 외부 메모리에 기록된 데이터에 각각의 가중치를 할당하고, 각 가중치에 따라 각 이전 시간 단계에서 외부 메모리에 기록된 데이터를 결합하는 판독 벡터를 생성한다. 그러나 소정의 시간 단계에서 값 예측은 이전 시간 단계(소정의 시간 단계가 아님)에서 메모리에서 판독된 데이터를 사용하여 생성된다. 소정의 시간 단계에서 외부 메모리에서 판독된 데이터를 사용하여 생성된 값 예측은 소정의 시간 단계 이후의 시간 단계에서의 값 예측으로서, 즉 소정의 시간 단계에서의 값 예측이 아니다.
그러나, 시스템의 다른 구성에서, 시스템은 소정의 시간 단계에서 값 예측을 계산할 때 소정의 시간 단계에서 메모리로부터 판독된 데이터를 사용할 수 있다. 이러한 구성에서, 소정의 시간 단계에서 외부 메모리에서 판독된 데이터를 사용하여 생성된 값 예측은 소정의 시간 단계에서 값 예측이 된다.
그 다음 시스템은, (i) 고정된 미래 값 할인 팩터(future value discount factor), (ii) 판독 헤드에 대한 스플라이스 시간 단계에서 외부 메모리로부터 판독하는 동안 식별된 소정의 시간 단계에 할당된 가중치 및 (iii) 스플라이스 시간 단계(splice time step)에서 외부 메모리로부터 판독한 데이터를 사용하여 생성된 값 예측으로부터 식별된 소정의 시간 단계에 대한 수정사항(modification)을 생성한다. 예를 들어, 수정사항은 (i),(ii) 및(iii)의 곱일 수 있다.
시스템은 식별된 특정 이전 시간 단계에 대한 수정된 보상을 생성하도록 판독 헤드에 대한 수정사항을 적용한다(508). 소정의 이전 시간 단계가 단일 수정사항(즉, 단일 판독 헤드의 경우)으로만 수정되는 경우, 시스템은 이전 시간 단계에서 실제 보상에 수정사항을 추가함으로써 수정사항을 적용할 수 있다. 소정의 이전 시간 단계가 여러 수정사항(즉, 여러 다른 판독 헤드의 경우)에 의해 수정되면, 시스템은 소정의 이전 시간 단계에서 실제 보상(actual reward)에 대한 독립적인 추가 변경(changes)으로 수정사항을 적용할 수 있다.
본 명세서는 시스템 및 컴퓨터 프로그램 컴포넌트와 관련하여 "구성된"이라는 용어를 사용한다. 특정 동작이나 액션을 수행하도록 구성된 하나 이상의 컴퓨터 시스템은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 조합으로 인해 시스템이 동작 또는 액션을 수행하도록 한다. 특정 동작 또는 액션을 수행하도록 구성된 하나 이상의 컴퓨터 프로그램은 하나 이상의 프로그램이 데이터 처리 장치에 의해 실행될 때 그 장치로 하여금 동작 또는 액션을 수행하게 하는 명령어들을 포함함을 의미한다.
본 명세서에서 설명된 요지 및 기능적 동작의 실시 예는 디지털 전자 회로, 유형적으로 구현된 컴퓨터 소프트웨어 또는 펌웨어, 컴퓨터 하드웨어로 구현될 수 있으며, 이는 본 명세서에 개시된 구조 및 구조적 등가물 또는 이들 중 하나 이상의 조합을 포함한다. 본 명세서에서 설명된 요지의 실시 예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 처리 장치에 의해 실행되거나 데이터 처리 장치의 동작을 제어하기 위한 유형적인 비 일시적 저장 매체상에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 저장 매체는 기계 판독 가능 저장 장치, 기계 판독 가능 저장 기판, 랜덤 또는 시리얼 액세스 메모리 장치, 또는 이들 중 하나 이상의 조합일 수 있다. 선택적으로 또는 부가적으로, 프로그램 명령어는 데이터 처리 장치에 의한 실행을 위해 적절한 수신기 장치로의 송신을 위해 정보를 인코딩하기 위해 생성되는 인위적으로 생성된 전파된 신호, 예를 들어, 기계-생성 전기, 광학 또는 전자기 신호 상에 인코딩될 수 있다.
"데이터 처리 장치"라는 용어는 데이터 처리 하드웨어를 지칭하며, 예를 들어 프로그램 가능 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 처리하기 위한 모든 종류의 장치, 디바이스 및 기계를 포함한다. 이 장치는 또한 특수 목적 논리 회로, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)일 수 있거나, 포함할 수 있다. 상기 장치는 하드웨어 외에, 컴퓨터 프로그램, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 하나 이상의 이들의 조합을 구성하는 코드와 같은 실행 환경을 생성하는 코드를 선택적으로 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 애플리케이션, 모듈, 소프트웨어 모듈, 스크립트 또는 코드로 지칭되거나 설명될 수 있는 컴퓨터 프로그램은 컴파일된 언어 또는 해석된 언어 또는 선언적 또는 절차적 언어를 포함한 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램 또는 모듈로서, 컴포넌트, 서브 루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 장치를 포함하여 어떤 형태로든 배포될 수 있다. 프로그램은 파일 시스템의 파일에 해당할 수도 있지만 그렇지 않을 수도 있다. 프로그램은 마크 업 언어 문서에 저장된 하나 이상의 스크립트와 같은 다른 프로그램이나 데이터를 보유하고 있는 파일의 일부분, 해당 프로그램 전용의 단일 파일 또는 하나 이상의 모듈, 서브 프로그램 또는 코드의 일부를 저장하는 파일과 같은 다수의 조정된 파일에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있으며 데이터 통신 네트워크로 상호 연결된 여러 대의 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에서 "데이터베이스"라는 용어는 모든 데이터 컬렉션(모음)을 지칭하기 위해 광범위하게 사용되며; 데이터는 특정 방식으로 구조화되거나 전혀 구조화될 필요가 없으며 하나 이상의 위치에 있는 저장 장치에 저장할 수 있다. 따라서, 예를 들어 인덱스 데이터베이스는 여러 데이터 모음을 포함할 수 있으며, 각 데이터는 서로 다르게 구성되고 액세스될 수 있다.
유사하게, 본 명세서에서 용어 "엔진"은 하나 이상의 특정 기능을 수행하도록 프로그램된 소프트웨어 기반 시스템, 서브 시스템 또는 프로세스를 지칭하기 위해 광범위하게 사용된다. 일반적으로 엔진은 하나 이상의 위치에 있는 하나 이상의 컴퓨터에 설치된 하나 이상의 소프트웨어 모듈 또는 컴폰너트로 구현된다. 어떤 경우에는 하나 이상의 컴퓨터가 특정 엔진에 전용되며, 다른 경우에 복수의 엔진은 동일한 컴퓨터 또는 컴퓨터들에 설치하고 실행할 수 있다.
본 명세서에서 설명되는 프로세스 및 로직 흐름은 입력 데이터를 조작하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그램 가능 컴퓨터에 의해 수행될 수 있다. 프로세스 및 로직 흐름은 또한 특수 목적 로직 회로, 예를 들어 FPGA 또는 ASIC에 의해, 또는 특수 목적 로직 회로와 하나 이상의 프로그래밍된 컴퓨터의 조합에 의해 수행될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터는 범용 또는 특수 목적 마이크로프로세서 또는 둘 모두 또는 임의의 다른 종류의 중앙 처리 장치를 기반으로할 수 있다. 일반적으로, 중앙 처리 장치는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어 및 데이터를 수신할 것이다. 컴퓨터의 필수 구성요소는 명령어를 수행하거나 실행하기 위한 중앙 처리 장치 및 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 중앙 처리 장치 및 메모리는 특수 목적 로직 회로에 의해 보충되거나 또는 그 안에 포함될 수 있다. 일반적으로, 컴퓨터는 데이터(예를 들어, 자기, 광 자기 디스크 또는 광 디스크)를 저장하기 위한 하나 이상의 대용량 저장 장치로부터 데이터를 수신하거나 하나 이상의 대용량 저장 장치에 전송하기 위해 동작 가능하게 결합될 것이다. 그러나, 컴퓨터에는 이러한 장치가 있을 필요가 없다. 또한, 컴퓨터는 이동 전화, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 위성 위치 확인 시스템(GPS) 수신기 또는 휴대용 저장 장치(예를 들어 범용 직렬 버스(USB) 플래시 드라이브)와 같은 다른 장치에 내장될 수 있다.
컴퓨터 프로그램 명령어 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치와 같은 반도체 메모리 장치, 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크; 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함한다.
사용자와의 상호 작용을 제공하기 위해, 본 명세서에서 설명된 요지의 실시 예는 정보를 사용자에게 디스플레이하기 위한 CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 장치와, 예를 들어 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 포인팅 장치 및 키보드를 갖는 컴퓨터상에서 구현될 수 있다. 다른 종류의 장치가 사용자와의 상호 작용을 제공하는 데 사용될 수 있으며, 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각 피드백일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자가 사용하는 장치로 문서를 보내고 문서를 수신하여 사용자와 상호 작용할 수 있으며, 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 장치상의 웹 브라우저에 웹 페이지를 전송함으로써 수행될 수 있다. 또한, 컴퓨터는 문자 메시지 또는 다른 형태의 메시지를 개인용 장치(예를 들어, 메시징 애플리케이션을 실행중인 스마트폰)에 송신하고 사용자로부터 응답 메시지를 수신함으로써 사용자와 상호 작용할 수 있다.
기계 학습 모델을 구현하기 위한 데이터 처리 장치는 또한, 예를 들어, 기계 학습 훈련 또는 생성, 즉 추론, 워크로드의 공통 및 연산 중심 부분을 처리하기 위한 특수 목적 하드웨어 가속기 유닛을 포함할 수 있다.
기계 학습 모델은 텐서플로우(TensorFlow) 프레임워크, "Microsoft Cognitive Toolkit" 프레임워크, "Apache Singa" 프레임워크 또는 "Apache MXNet" 프레임워크와 같은 기계 학습 프레임워크를 사용하여 구현 및 배치할 수 있다.
본 명세서에서 설명된 요지의 실시 예는 예를 들어 데이터 서버와 같은 백 엔드 컴포넌트를 포함하는 컴퓨팅 시스템에서 구현될 수 있거나, 또는 예를 들어 애플리케이션 서버와 같은 미들웨어 컴포넌트를 포함하는 컴퓨팅 시스템에서 구현될 수 있거나, 또는 예를 들어, 그래픽 사용자 인터페이스, 웹 브라우저 또는 사용자가 본 명세서에 설명된 요지의 구현예와 상호 작용할 수 있는 앱을 갖는 클라이언트 컴퓨터와 같은 프론트 엔드 컴포넌트를 포함하는 컴퓨팅 시스템에서 구현될 수 있거나, 또는 하나 이상의 그러한 백 엔드, 미들웨어 또는 프런트 엔드 컴포넌트의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호 접속될 수 있다. 통신 네트워크의 예는 근거리 통신망(LAN) 및 광역 통신망(WAN), 예를 들어 인터넷을 포함한다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다. 일부 실시 예에서, 서버는 예를 들어, 클라이언트로서 동작하는 장치와 상호 작용하는 사용자에게 데이터를 디스플레이하고 사용자로부터 사용자 입력을 수신하기 위해 데이터, 예컨대 HTML 페이지를 사용자 장치로 송신한다. 사용자 장치에서 생성된 데이터, 예를 들어 사용자 상호 작용의 결과는 그 장치로부터 서버에서 수신될 수 있다.
본 명세서는 많은 특정 구현 세부 사항을 포함하지만, 이들은 임의의 발명의 범위 또는 청구 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 특정 발명의 특정 실시 예에 특정될 수 있는 특징에 대한 설명으로 해석되어야 한다. 별도의 실시 예와 관련하여 본 명세서에서 설명되는 특정 특징은 또한 단일 실시 예에서 조합하여 구현될 수 있다. 반대로, 단일 실시 예의 문맥에서 설명된 다양한 특징은 또한 다수의 실시 예에서 개별적으로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더욱이, 특징들은 특정 조합으로 작용하고 상술된 바와 같이 초기에 주장될지라도, 어떤 경우에는 청구된 조합으로부터의 하나 이상의 특징이 그 조합으로부터 제거될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형을 지향할 수 있다.
유사하게, 동작들이 도면들에 도시되고 특정 순서로 청구 범위들에 인용되어 있지만, 이는 바람직한 동작을 달성하기 위해 이러한 동작이 도시된 순서 또는 순차적인 순서로 수행되거나 도시된 모든 동작이 수행될 것을 요구하는 것으로 이해되어서는 안된다. 특정 상황에서 멀티태스킹 및 병렬 처리가 유리할 수 있다. 또한, 상술한 실시 예에서 다양한 시스템 모듈 및 컴포넌트의 분리는 모든 실시 예에서 이러한 분리를 요구하는 것으로 이해되어서는 안되며, 서술된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 다중 소프트웨어 제품들로 패키징될 수 있다는 것을 이해해야 한다.
본 발명의 특정 실시 예가 설명되었다. 다른 실시 예들은 다음의 청구항들의 범위 내에 있다. 예를 들어, 청구 범위에서 열거된 동작은 상이한 순서로 수행될 수 있으며 여전히 바람직한 결과를 달성한다. 일례로서, 첨부된 도면에 도시된 프로세스는 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로하지는 않는다. 어떤 경우에는 멀티태스킹 및 병렬 처리가 유리할 수 있다.

Claims (14)

  1. 지정된 태스크를 수행하기 위해 환경과 상호 작용하는 에이전트를 제어하는 데 사용되는 신경망 시스템을 훈련시키는 방법으로서,
    에이전트가 상기 지정된 태스크를 수행하려고 시도하는 태스크 에피소드를 에이전트로 하여금 수행하게 하는 단계 -상기 수행하게 하는 단계는,
    태스크 에피소드 동안 시간 단계의 시퀀스 각각에서:
    환경의 현재 상태를 특징 짓는 관찰치(observation)를 획득하는 단계;
    관찰치로부터 그리고 신경망 시스템을 사용하여, 관찰치에 응답하여 에이전트가 수행할 액션을 선택하는 단계;
    상기 신경망 시스템을 이용하여, 지정된 태스크를 성공적으로 수행하기 위해 현재 상태에 있는 환경의 값을 나타내는 값 예측을 생성하는 단계;
    에이전트로 하여금 선택된 액션을 수행하도록 하는 단계; 그리고
    이에 응답하여, 에이전트가 선택된 액션을 수행한 결과로 환경에서 이루어진 진행을 특징 짓는 실제 보상을 수신하는 단계를 포함함-;
    시퀀스의 하나 이상의 특정 시간 단계 각각에 대해:
    (i) 시간 단계에서의 실제 보상 및(ii) 시퀀스의 특정 시간 단계 이후의 시간 단계의 임계 수보다 많은 하나 이상의 시간 단계에서의 값 예측으로부터 특정 시간 단계에 대해 수정된 보상을 생성하는 단계 ; 그리고
    강화 학습을 통해, 특정 시간 단계에 대해 적어도 상기 수정된 보상을 사용하는 신경망 시스템을 훈련시키는 단계를 포함하는 것을 특징으로 하는 신경망 시스템을 훈련시키는 방법.
  2. 선행하는 청구항 중 어느 한 항에 있어서,
    신경망 시스템은 외부 메모리로 증대(augmented)되고,
    에이전트로 하여금 태스크 에피소드를 수행하게 하는 단계는, 시퀀스의 각 시간 단계에서:
    하나 이상의 판독 헤드 각각에 대해, 외부 메모리로부터 데이터를 판독하는 단계, 및
    외부 메모리에 데이터를 기록하는 단계를 더 포함하며,
    각각의 시간 단계에서 수행될 액션을 선택하는 단계는 적어도(i) 이전 시간 단계에서 외부 메모리로부터 판독된 데이터 또는(ii) 시간 단계에서 외부 메모리로부터 판독된 데이터를 사용하여 액션을 선택하는 단계를 포함하며,
    각각의 시간 단계에서 값 예측을 생성하는 단계는 적어도(i) 이전 시간 단계에서 외부 메모리로부터 판독된 데이터 또는(ii) 시간 단계에서 외부 메모리로부터 판독된 데이터를 사용하여 값 예측을 생성하는 단계를 포함하는 것을 특징으로 하는 신경망 시스템을 훈련시키는 방법.
  3. 제2항에 있어서, 하나 이상의 특정 시간 단계 각각에 대해 수정된 보상을 생성하는 단계는,
    하나 이상의 판독 헤드 각각에 대해:
    시간 단계에서 판독 헤드에 대한 외부 메모리로부터 데이터를 판독한 강도(strength)에 기초하여 시간 단계의 시퀀스에서 하나 이상의 시간 단계를 스플라이스(splice) 시간 단계로 식별하는 단계;
    각 스플라이스 시간 단계에 대해:
    시퀀스에서 스플라이스 시간 단계 이전의 시간 단계의 임계 수보다 많은 하나 이상의 특정 시간 단계를 식별하는 단계; 그리고
    스플라이스 시간 단계에서 외부 메모리로부터 판독된 데이터를 이용하여 생성된 값 예측으로부터 식별된 시간 단계 각각에 대한 보상에 대한 수정사항(modification)을 생성하는 단계; 그리고
    해당 시간 단계에 대한 실제 보상에 수정사항을 적용하는 단계를 포함하는 것을 특징으로 하는 신경망 시스템을 훈련시키는 방법.
  4. 제3항에 있어서,
    외부 메모리로부터 데이터를 판독하는 단계는,
    각각의 판독 헤드에 대해, 시간 단계에서 외부 메모리를 판독하는 강도를 정의하는 판독 강도 파라미터를 생성하는 단계를 포함하며,
    시간 단계에서 판독 헤드에 대한 외부 메모리로부터 데이터를 판독한 강도(strength)에 기초하여 시간 단계의 시퀀스에서 하나 이상의 시간 단계를 스플라이스 시간 단계로 식별하는 단계는,
    스플라이스 시간 단계로서, 판독 헤드에 대한 판독 강도 파라미터가 임계 값을 초과하는 하나 이상의 시간 단계를 식별하는 단계를 포함하는 것을 특징으로 하는 신경망 시스템을 훈련시키는 방법.
  5. 제4항에 있어서, 스플라이스 시간 단계로서, 판독 강도 파라미터가 임계 값을 초과하는 하나 이상의 시간 단계를 식별하는 단계는,
    판독 헤드에 대한 판독 강도 파라미터가 임계 값을 초과하는 연속 시간 단계의 윈도우를 식별하는 단계; 그리고
    판독 헤드에 대한 판독 강도 파라미터가 가장 높은 윈도우의 시간 단계를 스플라이스 시간 단계로 식별하는 단계를 포함하는 것을 특징으로 하는 신경망 시스템을 훈련시키는 방법.
  6. 제5항에 있어서, 스플라이스 시간 단계로서, 판독 강도 파라미터가 임계 값을 초과하는 하나 이상의 시간 단계를 식별하는 단계는,
    시간 단계의 윈도우를 식별하기 전에,(i) 시간 단계에 대한 시간 인덱스와 (ii) 시간 단계에서 판독 헤드에 대한 외부 메모리로부터 판독할 때 임의의 시간 단계 중 가장 큰 가중치를 갖는 시간 단계에 대한 시간 인덱스의 차이가 상수 값보다 작은 시간 단계에 대해 판독 헤드의 판독 강도 파라미터를 0으로 설정하는 단계를 포함하는 것을 특징으로 하는 신경망 시스템을 훈련시키는 방법.
  7. 제3항 내지 제6항 중 어느 한 항에 있어서,
    시퀀스에서 스플라이스 시간 단계 이전의 시간 단계의 임계 수보다 많은 하나 이상의 특정 시간 단계를 식별하는 단계는,
    하프-라이프(half-life)값을 결정하는 단계;
    시퀀스에서 스플라이스 시간 단계 이전의 하프-라이프 값보다 큰 각 시간 단계를 특정 시간 단계로 식별하는 단계를 포함하는 것을 특징으로 하는 신경망 시스템을 훈련시키는 방법.
  8. 제3항 내지 제7항 중 어느 한 항에 있어서, 각각의 판독 헤드 및 각각의 시간 단계에 대해, 상기 외부 메모리로부터 판독하는 단계는,
    각각의 이전 시간 단계에서 외부 메모리에 기록된 데이터에 각각의 가중치를 할당하는 단계; 그리고
    각각의 가중치에 따라 각 이전 시간 단계에서 외부 메모리에 기록된 데이터를 결합하는 판독 벡터를 생성하는 단계를 포함하는 것을 특징으로 하는 신경망 시스템을 훈련시키는 방법.
  9. 제8항에 있어서, 스플라이스 시간 단계에서 외부 메모리로부터 판독된 데이터를 이용하여 생성된 값 예측으로부터 식별된 시간 단계 각각에 대한 보상에 대한 수정사항을 생성하는 단계는,
    (i) 미래 값 할인 팩터, (ii) 스플라이스 시간 단계에서 외부 메모리로부터 판독하는 동안 식별된 시간 단계에 할당된 가중치 및 (iii) 스플라이스 시간 단계에서 외부 메모리로부터 판독한 데이터를 사용하여 생성된 값 예측으로부터 식별된 시간 단계에 대한 수정사항을 생성하는 단계를 포함하는 것을 특징으로 하는 신경망 시스템을 훈련시키는 방법.
  10. 선행하는 청구항 중 어느 한 항에 있어서, 강화 학습을 통해, 특정 시간 단계에 대해 적어도 상기 수정된 보상을 사용하는 신경망 시스템을 훈련시키는 단계는, 정책 그라디언트 손실을 포함하는 손실 함수를 최소화하도록 신경망 시스템을 훈련시키는 단계를 포함하는 것을 특징으로 하는 신경망 시스템을 훈련시키는 방법.
  11. 제10항에 있어서, 상기 손실 함수는 재구성 손실을 포함하는 것을 특징으로 하는 신경망 시스템을 훈련시키는 방법.
  12. 제1항에 있어서, 상기 손실 함수는 판독 강도가 임계 값을 초과할 때마다 정규화 코스트를 부과하는 판독 재구성 손실을 포함하는 것을 특징으로 하는 신경망 시스템을 훈련시키는 방법.
  13. 하나 이상의 컴퓨터에 의해 실행될 때 하나 이상의 컴퓨터로 하여금 선행하는 청구항 중 어느 한 항의 방법의 각각의 동작을 수행하게 하는 명령어를 저장하는 하나 이상의 컴퓨터 판독 가능 저장 매체.
  14. 하나 이상의 컴퓨터, 그리고 하나 이상의 컴퓨터에 의해 실행될 때 하나 이상의 컴퓨터로 하여금 선행하는 청구항 중 어느 한 항의 방법의 각각의 동작을 수행하게 하는 명령어를 저장하는 하나 이상의 저장 장치를 포함하는 시스템.
KR1020217009924A 2018-10-12 2019-10-14 TVT(temporal value transport)를 사용하여 롱 타임 스케일에 대한 에이전트 제어 KR20210053970A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862745202P 2018-10-12 2018-10-12
US62/745,202 2018-10-12
PCT/EP2019/077704 WO2020074741A1 (en) 2018-10-12 2019-10-14 Controlling agents over long time scales using temporal value transport

Publications (1)

Publication Number Publication Date
KR20210053970A true KR20210053970A (ko) 2021-05-12

Family

ID=68242687

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217009924A KR20210053970A (ko) 2018-10-12 2019-10-14 TVT(temporal value transport)를 사용하여 롱 타임 스케일에 대한 에이전트 제어

Country Status (6)

Country Link
US (2) US10789511B2 (ko)
EP (1) EP3864581A1 (ko)
JP (1) JP7139524B2 (ko)
KR (1) KR20210053970A (ko)
CN (1) CN112840359B (ko)
WO (1) WO2020074741A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10909970B2 (en) * 2018-09-19 2021-02-02 Adobe Inc. Utilizing a dynamic memory network to track digital dialog states and generate responses
CN112840359B (zh) 2018-10-12 2024-05-14 渊慧科技有限公司 通过使用时间值传递在长时间尺度上控制代理
US11247571B2 (en) * 2019-11-18 2022-02-15 GM Global Technology Operations LLC Intelligent energy management system for a vehicle and corresponding method
US20220172104A1 (en) * 2020-11-30 2022-06-02 Tamkang University Server of reinforcement learning system and reinforcement learning method

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004068399A (ja) 2002-08-06 2004-03-04 Sugimoto Kenchiku Kenkyusho:Kk 建築用構造材
US7107107B2 (en) 2003-01-31 2006-09-12 Matsushita Electric Industrial Co., Ltd. Predictive action decision device and action decision method
DE102007001025B4 (de) * 2007-01-02 2008-11-20 Siemens Ag Verfahren zur rechnergestützten Steuerung und/oder Regelung eines technischen Systems
US10282512B2 (en) * 2013-07-09 2019-05-07 Indiana University Research And Technology Corporation Clinical decision-making artificial intelligence object oriented system and method
US9679258B2 (en) * 2013-10-08 2017-06-13 Google Inc. Methods and apparatus for reinforcement learning
US20170032245A1 (en) * 2015-07-01 2017-02-02 The Board Of Trustees Of The Leland Stanford Junior University Systems and Methods for Providing Reinforcement Learning in a Deep Learning System
MX2018000942A (es) * 2015-07-24 2018-08-09 Deepmind Tech Ltd Control continuo con aprendizaje de refuerzo profundo.
WO2017044842A1 (en) * 2015-09-11 2017-03-16 Google Inc. Training reinforcement learning neural networks
US10936946B2 (en) * 2015-11-12 2021-03-02 Deepmind Technologies Limited Asynchronous deep reinforcement learning
EP3384435B1 (en) * 2015-12-01 2023-07-19 Deepmind Technologies Limited Selecting action slates using reinforcement learning
CN109155005A (zh) * 2016-05-20 2019-01-04 渊慧科技有限公司 使用伪计数的增强学习
JP6728495B2 (ja) * 2016-11-04 2020-07-22 ディープマインド テクノロジーズ リミテッド 強化学習を用いた環境予測
JP6412086B2 (ja) * 2016-11-21 2018-10-24 ファナック株式会社 数値制御装置
CN107351080B (zh) * 2017-06-16 2020-12-01 浙江大学 一种基于相机单元阵列的混合智能研究系统及控制方法
CN107423707A (zh) * 2017-07-25 2017-12-01 深圳帕罗人工智能科技有限公司 一种基于复杂环境下的人脸情绪识别方法
CN108519556A (zh) * 2018-04-13 2018-09-11 重庆邮电大学 一种基于循环神经网络的锂离子电池soc预测方法
CN108509654B (zh) * 2018-04-18 2021-12-28 上海交通大学 动态知识图谱的构建方法
CN112840359B (zh) 2018-10-12 2024-05-14 渊慧科技有限公司 通过使用时间值传递在长时间尺度上控制代理

Also Published As

Publication number Publication date
JP2022504739A (ja) 2022-01-13
US11769049B2 (en) 2023-09-26
CN112840359B (zh) 2024-05-14
US20200117956A1 (en) 2020-04-16
US10789511B2 (en) 2020-09-29
JP7139524B2 (ja) 2022-09-20
US20210081723A1 (en) 2021-03-18
WO2020074741A1 (en) 2020-04-16
EP3864581A1 (en) 2021-08-18
CN112840359A (zh) 2021-05-25

Similar Documents

Publication Publication Date Title
US11842281B2 (en) Reinforcement learning with auxiliary tasks
US11842261B2 (en) Deep reinforcement learning with fast updating recurrent neural networks and slow updating recurrent neural networks
CN110088774B (zh) 使用强化学习的环境导航
US10860927B2 (en) Stacked convolutional long short-term memory for model-free reinforcement learning
US11868866B2 (en) Controlling agents using amortized Q learning
US10789511B2 (en) Controlling agents over long time scales using temporal value transport
CN112119404A (zh) 样本高效的强化学习
JP7181415B2 (ja) 観測値の尤度を使用して環境を探索するためのエージェントを制御すること
US20230083486A1 (en) Learning environment representations for agent control using predictions of bootstrapped latents
CN110622174A (zh) 基于想象的智能体神经网络
EP3698284A1 (en) Training an unsupervised memory-based prediction system to learn compressed representations of an environment
WO2024126633A1 (en) Training modular agent networks using layout data

Legal Events

Date Code Title Description
E902 Notification of reason for refusal