KR20220130177A - 학습된 은닉 상태를 사용한 에이전트 제어 플래닝 - Google Patents

학습된 은닉 상태를 사용한 에이전트 제어 플래닝 Download PDF

Info

Publication number
KR20220130177A
KR20220130177A KR1020227028364A KR20227028364A KR20220130177A KR 20220130177 A KR20220130177 A KR 20220130177A KR 1020227028364 A KR1020227028364 A KR 1020227028364A KR 20227028364 A KR20227028364 A KR 20227028364A KR 20220130177 A KR20220130177 A KR 20220130177A
Authority
KR
South Korea
Prior art keywords
actions
environment
agent
action
state
Prior art date
Application number
KR1020227028364A
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 KR20220130177A publication Critical patent/KR20220130177A/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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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
    • 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]
    • G06N3/0454
    • 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/088Non-supervised learning, e.g. competitive learning
    • G06N5/003
    • G06N7/005
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Algebra (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Biology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Cosmetics (AREA)
  • Chemical And Physical Treatments For Wood And The Like (AREA)
  • Feedback Control In General (AREA)

Abstract

에이전트가 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 선택하기 위한, 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램을 포함하는, 방법, 시스템 및 장치가 개시된다. 방법 중 하나는 환경의 현재 환경 상태를 특징짓는 현재 관측치를 수신하는 단계; 복수의 플래닝 반복을 수행하여 각각의 값을 나타내는 플랜 데이터를 생성하고 상기 현재 환경 상태로부터 시작하여 상기 환경의 액션 세트 각각을 수행하는 에이전트의 태스크를 수행하는 단계 -각 플래닝 반복을 수행하는 단계는 역학 모델 및 예측 모델에 의해 생성된 출력들에 기초하여 현재 환경 상태로부터 시작하여 에이전트에 의해 수행될 액션 시퀀스를 선택하는 단계를 포함함-; 그리고 상기 플랜 데이터에 기초하여 현재 관측치에 응답하여 에이전트가 수행할 액션을 액션 세트에서 선택하는 단계를 포함한다.

Description

학습된 은닉 상태를 사용한 에이전트 제어 플래닝
본 명세서는 학습된 은닉 상태를 사용한 에이전트 제어 플래닝에 관한 것이다.
본 명세서는 강화 학습과 관련이 있다.
강화 학습 시스템에서, 에이전트는 환경의 현재 상태를 특징짓는 관측치를 수신한 것에 대한 응답으로 강화 학습 시스템에서 선택한 액션을 수행하여 환경과 상호 작용한다.
일부 강화 학습 시스템은 신경망의 출력에 따라 소정의 관측치를 수신하는 것에 대한 응답으로 에이전트가 수행할 액션을 선택한다.
신경망은 수신된 입력에 대한 출력을 예측하기 위해 하나 이상의 비선형 유닛 계층을 사용하는 기계 학습 모델이다. 일부 신경망은 출력층 외에 하나 이상의 은닉층을 포함하는 심층 신경망이다. 각 은닉층의 출력은 네트워크의 다음 층, 즉 다음 은닉층 또는 출력층에 대한 입력으로 사용된다. 네트워크의 각 계층은 각 파라미터 세트의 현재 값에 따라 수신된 입력으로부터 출력을 생성한다.
본 명세서는 여러 시간 스텝 각각에서 에이전트가 수행할 액션을 액션 세트에서 선택하기 위해 시간 스텝에서 환경의 현재 상태를 특성화하는 데이터(즉, "관측치(observation)")를 프로세싱하여 환경과 상호 작용하는 에이전트를 제어하는 강화 학습 시스템을 설명한다.
각 시간 스텝에서, 시간 스텝의 환경 상태는 이전 시간 스텝의 환경 상태와 이전 시간 스텝에서 에이전트가 수행한 액션에 따라 달라진다.
일반적으로 시스템은 현재 관측치를 수신하고 여러 번의 플래닝 반복을 수행한다. 그런 다음 시스템은 플래닝 반복의 결과를 기반으로 현재 관측치에 대한 응답으로 수행할 액션을 선택한다. 각 플래닝 반복에서, 시스템은 현재 관측치가 나타내는 상태에서 시작하여 새로운 상태로 환경을 진행하는 액션 시퀀스를 생성한다. 기존 시스템과 달리, 시스템은 환경의 시뮬레이터를 사용하여 플래닝 반복을 수행하지 않으며, 즉, 소정의 상태에서 수행되는 소정의 액션의 결과로 환경이 전환될 상태를 결정하기 위해 환경의 시뮬레이터를 사용하지 않는다. 대신에, 시스템은, (i) 입력으로서 a) 입력 환경 상태에 대응하는 은닉 상태 및 b) 액션 세트로부터의 입력 액션을 수신하고, 그리고 환경이 입력 환경 상태에 있을 때 에이전트가 입력 액션을 수행한 경우 환경이 전환될 예측된 다음 환경 상태에 대응하는 은닉 상태를 적어도 출력으로 생성하도록 구성된 학습된 역학 모델; 그리고 (ii) 예측된 다음 환경 상태에 대응하는 은닉 상태를 입력으로서 수신하고 그리고 a) 액션 세트에 대한 점수 분포를 정의하는 예측된 정책 출력 및 b) 태스크를 수행하기 위해 예측된 다음 환경 상태에 있는 환경의 값을 나타내는 값 출력을 출력으로 생성하도록 구성된 예측 모델을 사용한다. 각 은닉 상태는 관측치의 저차원 표현이다. 따라서 시스템은 환경의 전체 상태를 재구성하거나 상태를 특성화하는 전체 관측치를 재구성할 필요 없이 이러한 은닉 상태만을 사용하여 플래닝(planning)을 수행한다.
일반적으로, 본 명세서에 기술된 주제의 한 가지 혁신적인 양태는 액션 세트로부터, 에이전트가 태스크를 수행하도록 하기 위해 환경과 상호 작용하는 에이전트가 수행할 액션을 선택하는 방법으로 구현될 수 있으며, 방법은, 상기 환경의 현재 환경 상태를 특징짓는 현재 관측치를 수신하는 단계; 복수의 플래닝 반복을 수행하여 각각의 값을 나타내는 플랜 데이터를 생성하고 상기 현재 환경 상태로부터 시작하여 상기 환경의 액션 세트로부터 복수의 액션들 각각을 수행하는 에이전트의 태스크를 수행하는 단계 -각 플래닝 반복을 수행하는 단계는 상기 환경의 상태 트리를 트래버스(traversing)함으로써 상기 현재 환경 상태에서 시작하여 상기 에이전트가 수행할 액션 시퀀스를 선택하는 단계를 포함하고, 상기 환경의 상태 트리는 상기 환경의 환경 상태들을 나타내는 노드들과 상기 환경이 상태들을 전환하게 하는 상기 에이전트가 수행할 수 있는 액션들을 나타내는 에지들을 가지며, 상기 상태 트리를 트래버스하는 단계는, 상기 상태 트리의 에지들에 대한 통계를 사용하여, 상기 현재 환경 상태를 나타내는 상태 트리의 루트 노드에서 시작하여 상기 상태 트리의 리프 노드에 도달할 때까지 상기 상태 트리를 트래버스하는 단계; 입력으로서 은닉 상태를 수신하고 그리고 적어도 액션 세트에 대한 점수 분포를 정의하는 예측된 정책 출력을 출력으로서 생성하도록 구성된 예측 모델을 사용하여 상기 리프 노드에 의해 표현되는 환경 상태에 대응하는 은닉 상태를 프로세싱하는 단계; 상기 액션 세트의 적절한 서브세트를 샘플링하는 단계; 각각의 샘플링된 액션에 대해, 상기 샘플링된 액션을 나타내는 상기 리프 노드로부터의 각각의 아웃고잉 에지를 상기 상태 트리에 추가함으로써 상기 상태 트리를 업데이트하는 단계; 그리고 각각의 샘플링된 액션에 대해, 상기 샘플링된 액션을 나타내는 각각의 아웃고잉 에지를 상기 예측된 정책 출력으로부터 도출되는 상기 샘플링된 액션에 대한 사전 확률과 연관시킴으로써 상기 통계를 업데이트하는 단계를 포함함-; 그리고 상기 플랜 데이터를 사용하여 상기 현재 관측치에 응답하여 상기 에이전트가 수행할 액션을 선택하는 단계를 포함한다. 액션 세트의 적절한 서브세트를 샘플링하는 단계는 상기 점수 분포로부터 샘플링 분포를 정의하는 데이터를 생성하는 단계; 그리고 상기 샘플링 분포에서 고정된 수의 샘플들을 샘플링하는 단계를 포함한다. 샘플링 분포를 생성하는 단계는 온도 파라미터로 상기 점수 분포를 변조하는 단계를 포함할 수 있다. 상기 리프 노드가 상기 루트 노드와 동일할 때, 상기 샘플링 분포를 생성하는 단계는 상기 점수 분포에 노이즈를 추가하는 단계를 포함할 수 있다. 방법은 상기 점수 분포에서 상기 액션에 대한 점수에 보정 계수(correction factor)를 적용함으로써 상기 샘플링된 액션에 대한 각각의 사전 확률을 생성하는 단계를 더 포함할 수 있다. 보정 계수는 (i) 상기 샘플링된 액션이 고정된 수의 샘플들에서 샘플링된 횟수 및 (ii) 상기 샘플링 분포에서 상기 샘플링된 액션에 할당된 점수에 기초할 수 있다. 상기 보정 계수는 (i) 상기 샘플링된 액션이 상기 고정된 수의 샘플들에 대해 샘플링된 횟수의 비율 및 (ii) 상기 샘플링 분포에서 상기 샘플링된 액션에 할당된 점수의 비율과 동일할 수 있다. 상기 플랜 데이터는 상기 복수의 플래닝 반복 동안 해당 액션이 선택된 횟수를 나타내는 상기 루트 노드로부터의 각각의 아웃고잉 에지에 대한 각각의 방문 카운트를 포함하고, 상기 현재 관측치에 응답하여 상기 에이전트에 의해 수행될 액션을 선택하는 단계는 각각의 방문 카운트를 사용하여 액션을 선택하는 단계를 포함할 수 있다.
이 양태의 다른 실시예는 대응하는 컴퓨터 시스템, 장치, 및 하나 이상의 컴퓨터 저장 장치에 기록된 컴퓨터 프로그램을 포함하며, 각각은 방법의 동작을 수행하도록 구성된다. 하나 이상의 컴퓨터로 구성된 시스템은 소프트웨어, 펌웨어, 하드웨어 또는 작동 중에 시스템이 액션을 수행하도록 할 수 있는 시스템에 설치된 소프트웨어, 펌웨어, 하드웨어 또는 이들의 임의의 조합으로 인해 특정 동작 또는 액션을 수행하도록 구성될 수 있다. 하나 이상의 컴퓨터 프로그램은 데이터 처리 장치에 의해 실행될 때 장치가 동작을 수행하게 하는 명령어를 포함함으로써 특정 동작 또는 액션을 수행하도록 구성될 수 있다.
본 명세서에 기술된 주제의 특정 실시예는 다음 이점 중 하나 이상을 실현하도록 구현될 수 있다.
본 명세서는 완벽하거나 매우 높은 품질의 시뮬레이터를 사용할 수 없는 환경에서 에이전트를 제어할 때 에이전트가 수행할 액션을 선택하기 위한 플래닝을 효과적으로 수행하는 방법을 설명한다. 특히, 트리 기반 플래닝 방법은 환경 전환을 시뮬레이션하는 완벽한 시뮬레이터를 사용할 수 있는 도메인을 챌린징하는 데 성공을 거두었다. 그러나 실제 문제에서 환경을 지배하는 역학(dynamics)은 일반적으로 복잡하고 알려지지 않았으며 플래닝 접근 방식은 지금까지 동일한 성능 향상을 가져오지 못했다. 설명된 기술은 MDP 플래닝 알고리즘과 결합된 학습된 모델을 사용하며, 예를 들어, 학습된 모델을 사용한 트리 기반 검색으로 기본 역학에 대한 지식 없이도 도전적이고 시각적으로 복잡한 도메인에서 고품질 성능을 달성한다. 설명된 기술은 반복적으로 적용될 때 액션 선택 정책, 가치 함수 및 관련되는 경우 보상을 플래닝하는 것과 가장 직접적으로 연관된 수량을 예측하는 모델을 학습하며; 기존 플래닝 기술이 크게 개선되지 않은 다양한 도메인에서 우수한 결과를 얻을 수 있다.
설명된 플래닝 기술은 많은 복잡한 태스크, 예를 들어 큰 개별 액션 공간, 연속 액션 공간 또는 하이브리드 액션 공간에서 액션을 선택해야 하는 로봇 태스크와 같은 여러 복잡한 태스크를 수행하기 위해 에이전트를 제어하는 데 쉽게 적용할 수 있으며, 일부 서브-액션은 분리되고 다른 서브-액션은 연속적이다. 트리 기반 검색을 사용하여 환경의 다른 상태를 트래버스(traversing)하는 것은 액션 공간이 크거나 연속적일 때 실행 불가능할 수 있다. 액션의 서브세트를 반복적으로 샘플링하고 트리 기반 검색 동안 유지되는 상태 트리를 전체 액션 공간에서 가능한 모든 액션을 사용하는 대신 샘플링된 액션만을 사용하여 확장함으로써, 설명된 플래닝 기술의 적용 가능성은 계획 프로세스의 계산 오버헤드를 크게 증가시키지 않고 이러한 복잡한 태스크로 확장될 수 있다. 따라서, 설명된 기술은 효과적인 성능을 유지하면서 대기 시간이 감소하고 계산 리소스 소비가 감소된 대규모 개별 액션 공간, 연속 액션 공간 또는 하이브리드 액션 공간이 있는 태스크를 위한 에이전트를 제어하는 데 사용할 수 있다.
본 명세서는 또한 샘플 효율적인 방식으로 액션을 선택하는 데 사용되는 모델을 훈련하는 기술을 설명한다. 오프라인 강화 학습 훈련은 실제 환경과 상호 작용하도록 에이전트를 제어할 필요 없이 액션을 선택하는 데 사용되는 모델을 훈련할 수 있기 때문에 오랫동안 효과적인 알고리즘이었다. 그러나 복잡한 역학(dynamics)이 있는 환경(예: 로봇 또는 기타 기계적 에이전트와 상호 작용하는 실제 환경)에서 역학 모델 또는 예측 모델 또는 둘 다에 의해 수행된 예측은 에러가 발생하기 쉽고 학습 프로세스에 편향을 도입한다. 이로 인해 역학 모델이나 예측 모델 또는 둘 다를 사용하는 기존 접근 방식이 오프라인으로 학습할 때 즉, 환경과 상호 작용할 수 없는 상태에서 고성능 정책을 학습하지 못하는 경우가 많다.
그러나 설명된 기술은 이러한 모델의 편향과 불확실성을 고려하여 매우 복잡한 태스크에 대해서도 훨씬 더 큰 샘플 효율성으로 효과적인 정책을 학습할 수 있도록 한다. 특히, 시스템에서 이미 유지 관리하고 있는 오프라인 훈련 데이터에 대해, 시스템의 오프라인 훈련 동안 최근 업데이트된 모델 파라미터 값에 따라 생성된 모델 출력을 기반으로 새로운 타겟 정책 출력 및 새로운 타겟 값 출력을 반복적으로 재계산하는 재분석 기술을 사용함으로써, 설명된 기술은 역학 모델 불확실성, 예측 모델 편향 또는 둘 다를 설명할 수 있으며 효과적인 액션 선택 정책을 학습하는 데 필요한 환경의 실제 궤적(trajectories) 수를 여전히 줄일 수 있다. 환경에서 실제 샘플을 수집하면 에이전트에 마모가 추가되고 에이전트의 기계적 고장 가능성이 증가하며 시간이 많이 소요되기 때문에, 에이전트가 실제 환경과 상호 작용하는 로봇 또는 기타 기계적 에이전트인 경우에 특히 유리하다.
이와 같이, 개시된 기술은 에이전트에 의해 수행될 액션을 선택하는 데 사용되는 모델의 훈련 속도를 증가시키고 이러한 모델을 효과적으로 훈련하는 데 필요한 훈련 데이터의 양을 줄일 수 있다. 따라서 모델 학습에 필요한 컴퓨팅 리소스의 양을 줄일 수 있다. 예를 들어 훈련 데이터를 저장하는 데 필요한 메모리의 양을 줄이거나 훈련 프로세스에서 사용하는 프로세싱 리소스의 양을 줄이거나 둘 다 할 수 있다.
본 명세서에서 설명된 주제의 하나 이상의 실시예의 세부사항은 첨부 도면 및 아래의 설명에서 설명된다. 주제의 다른 특징, 측면 및 이점은 설명, 도면 및 청구범위로부터 명백해질 것이다.
도 1은 예시적인 강화 학습 시스템을 도시한다.
도 2는 환경과 상호작용하는 에이전트에 의해 수행될 액션을 선택하기 위한 예시적인 프로세스의 흐름도이다.
도 3a는 플랜 데이터를 생성하기 위해 하나의 플래닝 반복을 수행하는 예시적인 예시이다.
도 3b는 생성된 플랜 데이터에 기초하여 에이전트에 의해 수행될 액션을 선택하는 예시적인 예시이다.
도 4는 환경과 상호작용하는 에이전트에 의해 수행될 액션을 선택하기 위한 다른 예시적인 프로세스의 흐름도이다.
도 5는 강화 학습 시스템을 훈련하기 위한 예시적인 프로세스의 흐름도이다.
도 6은 강화 학습 시스템을 훈련하는 예시도이다.
도 7은 강화 학습 시스템을 재분석하기 위한 예시적인 프로세스의 흐름도이다.
다양한 도면에서 유사한 참조 번호 및 명칭은 유사한 요소를 나타낸다.
본 명세서는 여러 시간 스텝 각각에서, 액션 세트로부터 에이전트가 수행할 액션을 선택하기 위해 시간 스텝에서 환경의 현재 상태를 특성화하는 데이터(즉, "관측치(observation)")를 프로세싱함으로써 환경과 상호 작용하는 에이전트를 제어하는 강화 학습 시스템을 설명한다.
도 1은 예시적인 강화 학습 시스템(100)을 도시한다. 강화 학습 시스템(100)은 아래에서 설명되는 시스템, 컴포넌트 및 기술이 구현되는 하나 이상의 위치에서 하나 이상의 컴퓨터에서 컴퓨터 프로그램으로 구현되는 시스템의 예이다.
강화 학습 시스템(100)은 각각의 다중 시간 스텝에서 환경(102)과 상호작용하는 에이전트(108)에 의해 수행될 액션(110)을 선택한다. 각 시간 스텝에서 시간 스텝의 환경(102) 상태는 이전 시간 스텝의 환경 상태 및 이전 시간 스텝에서 에이전트가 수행한 액션에 따라 달라진다. 에이전트(108)가 환경(102)과 상호작용하기 위해, 시스템(100)은 환경(102)의 현재 상태를 특징짓는 현재 관측치(104)를 수신하고 플래닝(planning) 엔진(120)을 사용하여 플랜 데이터(122)를 생성하기 위해 복수의 플래닝 반복을 수행한다. 플랜 데이터(122)는 환경(102)에서 가능한 액션들의 세트 각각을 수행하고 현재 상태로부터 시작하는 에이전트(108)의 태스크를 수행(예: 보상(rewards)(106) 측면에서)하기 위한 각각의 값을 나타내는 데이터를 포함할 수 있다. 특히, 각 플래닝 반복에서, 시스템(100)은 현재 관측치(104)에 의해 표현된 상태로부터 시작하여 새로운 예측된(즉, hypothetical) 미래 상태로 환경(102)을 진행시키는(progress) 액션 시퀀스를 생성한다. 이러한 방식으로 플랜 데이터(122)를 생성하는 것은 플래닝 동안, 현재 관측치(104)에 의해 표현되는 상태로부터 시작하여 환경의 가능한 미래 상태를 먼저 트래버스함으로써 현재 관측치(104)에 응답하여 시스템(100)이 에이전트에 의해 수행될 실제 액션을 효과적으로 선택할 수 있게 한다.
일부 구현에서, 시스템(100)은 플래닝 엔진(120)의 출력에 의해 안내되는 미리보기 검색(look ahead search)을 수행함으로써 플랜 데이터(122)를 생성할 수 있다. 플래닝 엔진(120)의 컴포넌트 및 그 출력의 세부사항은 아래에서 더 설명될 것이다. 예를 들어, 미리보기 검색은 트리 검색, 예를 들어 몬테-카를로(Monte-Carlo) 트리 검색일 수 있으며, 여기서 상태 트리는 환경(102)의 상태를 나타내는 노드 및 트리의 노드를 연결하는 방향성 에지를 포함한다. 트리의 첫 번째(제1) 노드에서 두 번째(제2) 노드로의 아웃고잉(outgoing) 에지는 첫 번째(제1) 상태를 특징짓는 관측치에 대한 응답으로 수행되었으며 결과적으로 두 번째(제2) 상태로 환경이 전환되는 액션을 나타낸다.
그러한 구현에서, 플랜 데이터(122)는 환경의 현재 상태를 나타내는 노드로부터 시작하여 상이한 출력을 생성하기 위해 플래닝 엔진(120)을 반복적으로 실행한 결과로서 컴파일된 노드-에지(즉, 상태-액션) 쌍(페어)의 일부 또는 전부에 대한 통계 데이터를 포함할 수 있다. 예를 들어, 플랜 데이터(122)는 상태 트리의 루트 노드의 아웃고잉 에지 각각에 대해, (i) 에지로 표시되는 액션에 대한 액션 점수 Q, (ii) 복수의 플래닝 반복 동안 액션이 선택된 횟수를 나타내는 에지로 표현되는 액션에 대한 방문 횟수(방문 카운트) N, 및 (iii) 에지가 나타내는 액션에 대한 사전 확률 P를 포함할 수 있다. 플래닝 동안 상태 트리의 루트 노드는 현재 관측치(104)에 의해 특성화된 상태에 해당한다.
소정의 환경 상태를 나타내는 소정의 노드에 대해, 액션에 대한 액션 점수 Q는 소정의 상태를 특징짓는 관측치에 대한 응답으로 액션이 수행될 경우 받을 리턴(return)의 현재 추정치를 나타낸다. 리턴은 에이전트가 받은 "보상(rewards)"(106)의 누적 측정값, 예를 들어 시간 할인된 보상 합계를 나타낸다. 에이전트(108)는 각 시간 스텝에서 각각의 보상(106)을 받을 수 있으며, 여기서 보상(106)은 스칼라 수치에 의해 지정되고 예를 들어 할당된 태스크를 완료하기 위한 에이전트(108)의 진행률(progress)을 특징짓는다. 액션에 대한 방문 횟수(방문 카운트) N은 소정의 상태를 특징짓는 관측치(observation)에 응답하여 에이전트(108)에 의해 액션이 수행된 현재 횟수이다. 그리고 사전 확률 P는 액션이 소정의 상태를 특징짓는 관측치에 대한 응답으로 수행되어야 하는 액션일 가능성을 나타낸다(즉, 관측치에 대한 응답으로 수행할 수 있는 다른 모든 액션에 비해 수신된 리턴을 최대화하는 액션).
시스템(100)은 시스템(100)에 액세스 가능한 메모리 장치에서 플랜 데이터(122)를 유지할 수 있다. 논리적으로 트리로 설명되지만, 플래닝 엔진(120)을 사용하여 생성된 플랜 데이터(122)는 임의의 다양한 편리한 데이터 구조, 예를 들어 다중 트리플 또는 인접 목록(adjacency list)으로서 표현될 수 있다.
각 플래닝 반복에서, 시스템(100)은, 수학식 1과 같이, 루트 노드에 대응하는 것으로부터 시작하는 해당 노드-에지 쌍에 대한 컴파일된 통계에 따라, 예를 들어 신뢰 상한(upper confidence bound)을 최대화함으로써 액션 a를 (즉, 여러 플래닝 스텝 각각에서) 반복적으로 선택함으로써 액션 시퀀스를 생성할 수 있다:
Figure pct00001
여기서 c1과 c2는 액션 점수 Q에 대한 사전 확률 P의 영향을 제어하는 데 사용되는 조정 가능한 하이퍼파라미터(tunable hyperparameters)이다.
액션 선택, 상태 트리 확장 및 통계 업데이트 알고리즘을 포함하는 예견 검색 알고리즘은 2018년 5월 28일 출원되고 및 2020년 5월 7일 공개된 "Training action selection neural networks using look-ahead search"이라는 제목의 미국 특허 공개 번호 US2020/0143239에 더 포즈히 설명되어 있으며, 이는 본 명세서에 참조로 포함되며, 2017년 10월의 비특허 문헌 "Mastering the game of go without human knowledge"(Silver et al. in Nature, 550:354-359), 및 "Bandit based monte-carlo planning"(Kocsis et al. in European conference on machine learning, pages 282?293. Springer, 2006)에 개시된다.
플래닝 후에, 시스템(100)은 플래닝 반복의 결과에 기초하여, 즉 플랜 데이터(122)에 기초하여 수신된 현재 관측치(104)에 응답하여 에이전트(108)에 의해 수행될 실제 액션(110)을 선택하도록 진행한다. 특히, 이러한 구현에서, 플랜 데이터(122)는 상태 트리의 루트 노드, 즉 현재 관측치(104)을 특징으로 하는 상태에 대응하는 노드의 각 아웃고잉 에지에 대해 플래닝 동안 컴파일된 통계 데이터를 포함할 수 있으며, 시스템(100)은 루트 노드에 대응하는 노드-에지 쌍에 대한 통계 데이터에 기초하여 실제 액션(110)을 선택할 수 있다.
예를 들어, 시스템(100)은 상태 트리의 루트 노드의 각 아웃고잉 에지에 대한 방문 횟수에 비례하여 이 선택을 할 수 있다. 즉, 환경(102)이 현재 관측치(104)를 특징으로 하는 상태에 있을 때 플래닝 동안 가장 자주 선택되었던 모든 가능한 액션 세트로부터의 액션, 즉 플랜 데이터에서 가장 높은 방문 횟수(카운트)를 갖는 루트 노드로부터의 아웃고잉 에지에 대응하는 액션은 현재 관측치에 응답하여 에이전트가 수행할 실제 액션(110)으로 선택될 수 있다. 추가적으로 또는 대신에, 상태 트리의 루트 노드의 각 아웃고잉 에지에 대해, 시스템(100)은 방문 횟수를 확률 분포, 예를 들어, 경험적 확률 분포(또는 상대 빈도)에 매핑하고, 루트 노드의 아웃고잉 에지에 대해 결정된 각각의 확률 분포에 따라 액션을 샘플링할 수 있다. 예를 들어 확률 분포는 각 아웃고잉 에지에 (i) 에지에 대한 방문 횟수 대 (ii) 루트 노드로부터의 아웃고잉 에지의 총 방문 횟수의 비율과 동일한 확률을 할당할 수 있거나, 아웃고잉 에지의 비율에 노이즈를 추가하는 NED(noisy empirical distribution)일 수 있다. 샘플링된 액션은 현재 관측치에 응답하여 에이전트에 의해 수행될 실제 액션(110)으로서 사용될 수 있다.
다른 예로, 시스템(100)은 플랜 데이터의 액션 시퀀스로부터 최대 관련 값을 갖는 액션 시퀀스를 결정하고, 그 후, 현재 관측치(104)에 응답하여 에이전트에 의해 수행될 실제 액션(110)으로서 상기 결정된 액션 시퀀스의 제1 액션을 선택함으로써 이러한 선택을 할 수 있다.
전형적으로, 실제 액션(110)을 선택하기 위해, 시스템(100)은 먼저 에이전트(102)에 의해 수행될 수 있는 가능한 액션 세트에서 각각의 액션을 사용함으로써 환경의 가능한 미래 상태를 트래버스할 것이다. 액션 공간이 연속적일 때, 즉 개별 액션의 모든 액션 값이 가능한 값의 연속 범위에서 선택되거나 하이브리드, 즉 개별 액션의 하나 이상의 액션 값이 가능한 값의 연속 범위에서 선택되지만 이는 실현 가능하지 않다. 액션 공간이 이산적이지만 다수의 액션을 포함하는 경우, 이는 플래닝 엔진(120)을 사용하여 다수의 플래닝 반복을 요구할 수 있기 때문에 계산적으로 효율적이지 않고 단일 액션을 선택하기 위해 많은 계산 리소스을 소비한다.
대신에, 플래닝 엔진(120)은 즉, 임의의 소정의 관측치(104)에 응답하여 고품질 액션(110)의 선택을 위해, 에이전트(102)의 정확한 제어를 여전히 허용하면서 플래닝 동안 평가될 필요가 있는 액션의 수를 줄이기 위해 액션 샘플링 엔진(160)을 사용할 수 있다.
특히, 플래닝 엔진(120)은 액션 샘플링 엔진(160)을 사용하여 가능한 액션 세트에서 액션의 적절한 서브세트를 선택하고 아래에서 더 설명되는 바와 같이 적절한 서브세트의 액션만을 사용하여 플래닝을 수행한다. 적절한 서브세트의 액션 수는 일반적으로 가능한 액션 세트의 총 액션 수보다 훨씬 적다. 예를 들어, 액션 공간이 5^21개의 가능한 액션을 포함하더라도, 시스템은 가능한 액션의 적절한 서브세트에 포함된 20개의 액션만을 사용하여 생성된 플랜 데이터(122)에 기초하여 에이전트를 여전히 정확하게 제어할 수 있다. 이는 시스템(100)이 감소된 레이턴시로 에이전트(102)를 제어하는 것을 허용할 수 있고 종래의 접근 방식보다 더 적은 계산 리소스을 소비할 수 있다.
보다 상세하게는, 플래닝 엔진(120)은 표현(representation) 모델(130), 역학(dynamics) 모델(140), 예측(prediction) 모델(150) 및 일부 경우에 액션 샘플링 엔진(160)을 포함한다.
표현 모델(130)은 일반적으로 고차원 센서 데이터, 예를 들어 이미지 또는 비디오 데이터를 포함하는 관측치(104)를 저차원 표현 데이터로 매핑하는 기계 학습 모델이다. 표현 모델(130)은 적어도 현재 관측치(104)를 포함하는 표현 모델 입력을 수신하고 환경(102)의 현재 상태에 대응하는 은닉 상태(hidden state)를 출력으로서 생성하도록 구성될 수 있다.
이 문서 전체에서 사용된 것처럼, 환경(102)의 현재 상태에 대응하는 "은닉 상태"는 수치 값(numerical values)의 정렬된 컬렉션, 예를 들어 수치 값의 벡터 또는 행렬로서 환경(102)의 특성화(characterization)를 나타내며, 일반적으로 관측치(104) 자체보다 더 낮은 차원, 더 단순한 양식 또는 둘 다를 갖는다. 다양한 구현에서, 환경(102)의 현재 상태에 대응하는 각각의 은닉 상태는 현재 환경 상태에 대한 정보 및 선택적으로 현재 상태 이전에 환경이 전환한 하나 이상의 이전 상태에 대한 정보를 포함할 수 있다.
역학 모델(140)은 소정의 시간 스텝에서 소정의 정보가 소정의 시간 스텝 이후에 있는 적어도 하나의 미래 시간 스텝에 대한 예측을 할 수 있는 기계 학습 모델이다. 역학 모델(140)은 a) 입력 환경 상태에 대응하는 은닉 상태 및 b) 가능한 액션 세트로부터 입력 액션을 지정하는 데이터를 입력으로서 수신하고, a) 환경이 입력 환경 상태에 있을 때 에이전트가 입력 액션을 수행한 경우 환경이 전환될 예측된 다음 환경 상태에 대응하는 은닉 상태, 그리고 일부 경우에, b) 환경이 입력 환경 상태에 있을 때 에이전트가 입력 액션을 수행하면 받을 즉시 보상(immediate reward)을 나타내는 예측된 즉시 보상 값을 지정하는 데이터를 출력으로 생성하도록 구성될 수 있다. 예를 들어, 즉시 보상 값은 환경이 입력 환경 상태일 때 입력 액션을 수행한 결과 태스크 완료의 진행률(progress)을 나타내는 수치 값일 수 있다.
예측 모델(150)은 플래닝과 가장 직접적으로 연관된 수량(quantities), 즉 액션 선택 정책, 가치 함수, 및 관련되는 경우 보상을 예측하도록 구성된 기계 학습 모델이다. 예측 모델(150)은 소정의 환경 상태에 대응하는 은닉 상태를 입력으로서 수신하고, a) 소정의 환경 상태에서 에이전트가 수행할 예측된 다음 액션을 결정하는 데 사용할 수 있는 예측된 정책 출력 및 b) 태스크를 수행하기 위해 소정의 환경 상태에 있는 환경의 값을 나타내는 값 출력을 출력으로서 생성하도록 구성될 수 있다.
일 예에서, 예측된 정책 출력은 에이전트에 의해 수행될 수 있는 가능한 액션 세트에 대한 점수 분포를 정의할 수 있으며, 예를 들어 가능한 액션 세트의 각 액션에 대한 각각의 수치적 확률 값을 포함할 수 있다. 에이전트를 제어하는 데 사용되는 경우, 시스템(100)은, 예를 들어, 액션에 대한 확률 값에 따라 액션을 샘플링함으로써, 또는 가장 높은 확률 값을 갖는 액션을 선택함으로써 에이전트에 의해 수행될 액션을 선택할 수 있다.
다른 예에서, 값 출력은 환경이 소정의 환경 상태에 있을 때 하나 이상의 목표를 달성하는 에이전트에 대한 전반적인 진행률을 나타내는 수치 값을 지정할 수 있다.
표현, 역학 및 예측 모델은 설명된 기능을 수행할 수 있도록 하는 적절한 신경망 아키텍처를 사용하여 각각의 신경망으로 각각 구현될 수 있다. 한 가지 예에서 관측치가 이미지인 경우, 표현 및 역학 모델은 각각 잔차(residual) 연결이 있는 각 컨볼루션 신경망, 예를 들어, 하나 이상의 정규화 계층 또는 활성화 계층 외에 하나 이상의 컨볼루션 계층을 각각 포함하는 잔차 블록 스택으로 구성된 신경망으로 구현될 수 있다. 다른 예에서, 예측 모델(150)은 하나 이상의 컨볼루션 계층, 또는 하나 이상의 완전 연결 계층, 및 출력층(점수 분포(score distribution)를 출력함)이 뒤따르는 입력 계층(은닉 상태 입력을 수신함)을 포함하는 신경망으로서 구현될 수 있다.
표현, 역학 및 예측 모델이 가질 수 있는 신경망 아키텍처의 다른 예로는 그래프 신경망, 다층 퍼셉트론(perceptron) 신경망, 순환 신경망 및 셀프-어텐션 신경망이 있다.
상위 레벨에서, 액션 샘플링 엔진(160)은 예측 모델(150)의 예측된 정책 출력을 입력으로서 수신하고, 샘플링 분포를 정의하는 출력 데이터로서 생성하기 위해 입력을 프로세싱(처리)하도록 구성된 소프트웨어를 포함한다.
샘플링 분포는 에이전트에 의해 수행될 수 있는 일부 또는 모든 가능한 액션에 대한 분포일 수 있으며, 예를 들어 전체 가능한 액션 세트에서 다중 액션 각각에 대한 각각의 수치적 확률 값을 포함할 수 있다. 샘플링 분포는 예측 모델(150)의 예측된 정책 출력에 정의된 점수 분포와 동일할 수 있지만 반드시 그럴 필요는 없다.
일부 경우에, 액션 샘플링 엔진(160)은 예측된 정책 출력에 의해 정의된 점수 분포를 온도 파라미터 τ로 변조함으로써 샘플링 분포를 생성할 수 있다. 예를 들어, 온도 파라미터 τ는 임의의 양의 값(하나보다 큰 값으로 더 다양한 샘플을 권장함)이 될 수 있으며 샘플링 분포는
Figure pct00002
형식으로 생성될 수 있으며, 여기서 P는 예측된 정책 결과에서 파생된 사전 확률이다.
일부 경우에, 예를 들어 각 플래닝 반복의 시작 시, 즉, 리프 노드(leaf node)가 루트 노드(root node)와 동일한 경우, 액션 샘플링 엔진(160)은 액션 탐색을 용이하게 하기 위해 예측된 정책 출력에 의해 정의된 점수 분포에 디리클레 노이즈(dirichlet noise)와 같은 탐색 노이즈를 더 추가할 수 있다.
플래닝 동안 사용될 때, 플래닝 엔진(120)은 환경을 상이한 미래 상태(future states)로 진행시키기 위해 플래닝에 사용될 액션의 적절한 서브세트를 생성하기 위해 샘플링 분포로부터 고정된 수의 액션을 샘플링한다.
일부 구현에서, 환경(102)은 현실 세계(real-world) 환경이고, 에이전트(108)는 현실 세계 환경과 상호작용하는 기계적 에이전트, 예를 들어 로봇 또는 환경을 탐색하는 자율 또는 반자율 육상, 항공 또는 해상 차량이다.
이러한 구현에서, 관측치(104)는 예를 들어, 이미지, 물체 위치 데이터, 및 에이전트가 환경과 상호작용할 때 관측치를 캡처하기 위한 센서 데이터, 예를 들어 이미지, 거리, 위치 센서 또는 위치 센서로부터 또는 액추에이터로부터의 센서 데이터 중 하나 이상을 포함할 수 있다.
예를 들어 로봇의 경우, 관측치(104)는 로봇의 현재 상태, 예를 들어 조인트 위치, 조인트 속도, 조인트 힘, 토크 또는 가속도, 예를 들어 중력 보상 토크 피드백, 및 로봇이 들고 있는 아이템의 글로벌 또는 상대 포즈 중 하나 이상을 특성화하는 데이터를 포함할 수 있다.
로봇 또는 기타 기계적 에이전트 또는 차량의 경우, 관측치는 유사하게 위치, 선형 또는 각속도, 힘, 토크 또는 가속도, 에이전트의 하나 이상의 부분의 전체 또는 상대 포즈 중 하나 이상을 포함할 수 있다. 관측치는 1, 2 또는 3차원으로 정의될 수 있으며 절대 및/또는 상대 관측치일 수 있다.
관측치(104)는 또한 예를 들어 모터 전류 또는 온도 신호와 같은 감지된 전자 신호; 및/또는 예를 들어 카메라 또는 LIDAR 센서의 이미지 또는 비디오 데이터, 예를 들어 에이전트 센서의 데이터 또는 환경에서 에이전트와 별도로 위치한 센서의 데이터를 포함할 수 있다.
전자 에이전트의 경우, 환경(102)은 데이터 압축 환경, 데이터 압축해제 환경 또는 둘 다일 수 있다. 에이전트(108)는 입력 데이터(예: 이미지 데이터, 오디오 데이터, 비디오 데이터, 텍스트 데이터 또는 기타 적절한 종류의 데이터)를 관측치(104)로서 수신하고 일련의 액션(110), 예를 들어 데이터 인코딩 또는 압축 액션을 선택 및 수행하여 입력 데이터의 압축된 표현을 생성하도록 구성될 수 있다. 에이전트(108)는 입력 데이터의 (대략적인 또는 정확한) 재구성을 생성하기 위해 압축된 데이터를 프로세싱하도록 유사하게 구성될 수 있다.
전자 에이전트의 경우, 관측치(104)는 전류, 전압, 전력, 온도 및/또는 장비의 전자 및/또는 기계 아이템의 기능을 나타내는 전자 신호와 같은 플랜트 또는 서비스 시설의 일부를 모니터링하는 하나 이상의 센서로부터의 데이터를 포함할 수 있다.
이러한 구현에서, 액션(110)은 로봇을 제어하기 위한 제어 입력(예를 들어 로봇의 조인트에 대한 토크 또는 상위 레벨 제어 명령, 또는 자율 또는 반자율 육상, 항공, 해상 차량, 예를 들어 제어 표면에 대한 토크 또는 차량의 다른 제어 요소 또는 상위 제어 명령)일 수 있다. 다시 말해, 액션(110)은 예를 들어 로봇의 하나 이상의 조인트 또는 다른 기계적 에이전트의 부분에 대한 위치, 속도, 또는 힘/토크/가속도 데이터를 포함할 수 있다. 액션 데이터는 추가적으로 또는 대안적으로 모터 제어 데이터와 같은 전자 제어 데이터, 또는 보다 일반적으로 제어가 환경의 관측된 상태에 영향을 미치는 환경 내의 하나 이상의 전자 장치를 제어하기 위한 데이터를 포함할 수 있다. 예를 들어 자율 또는 반자율 육상 또는 항공 또는 해상 차량의 경우, 액션에는 내비게이션을 제어하는 액션(조향 및 움직임(예: 차량의 제동 및/또는 가속))이 포함될 수 있다.
전자 에이전트의 경우, 관측치(104)는 전류, 전압, 전력, 온도 및/또는 장비의 전자 및/또는 기계 아이템의 기능을 나타내는 전자 신호와 같은 플랜트 또는 서비스 시설의 일부를 모니터링하는 하나 이상의 센서로부터의 데이터를 포함할 수 있다. 예를 들어 실제 환경은 제조 공장이나 서비스 시설일 수 있으며, 관측치는 예를 들어 전력 소비와 같은 리소스 사용에 대한 플랜트 또는 시설의 작동과 관련될 수 있고, 에이전트는 예를 들어 리소스 사용을 줄이기 위해 플랜트/시설의 액션 또는 동작을 제어할 수 있다. 일부 다른 구현에서 실제 환경은 재생 에너지 플랜트일 수 있으며, 관측치는 예를 들어 현재 또는 미래에 계획된 전력 생성을 최대화하기 위한 발전소의 작동과 관련될 수 있으며, 에이전트는 이를 달성하기 위해 발전소의 액션 또는 동작을 제어할 수 있다.
일부 다른 애플리케이션에서, 에이전트는 데이터 센터, 전력/물 분배 시스템, 제조 공장 또는 서비스 시설과 같은 장비 아이템을 포함하는 실제 환경에서 액션을 제어할 수 있다. 그런 다음 관측치는 공장 또는 시설의 운영과 관련될 수 있다. 예를 들어, 관측치에는 장비에 의한 전력 또는 물 사용량 관측치, 발전 또는 배전 제어 관측치, 또는 리소스 또는 폐기물 생산 사용 관측치가 포함될 수 있다. 액션에는 플랜트/시설의 장비 아이템에 대한 작동 조건을 제어하거나 부과하는 액션 및/또는 (플랜트/시설의 컴포넌트를 조정하거나 턴온/턴오프하기 위해) 플랜트/시설의 작동 설정을 변경하는 액션이 포함될 수 있다.
또 다른 예로, 환경(102)은 각 상태가 프로테인 체인 또는 하나 이상의 중간체 또는 전구체 화학물질의 개별 상태이고, 에이전트가 프로테인 체인(protein chain)을 폴드하거나 화학 물질을 합성하는 방법을 결정하기 위한 컴퓨터 시스템이 되도록 하는 화학적 합성 또는 프로테인 폴딩 환경(protein folding environment)일 수 있다. 이 예에서, 액션은 프로테인 체인을 폴딩하기 위한 가능한 폴딩 액션 또는 전구체 화학물질/중간체를 어셈블링하기 위한 액션이며, 달성될 결과는 예를 들어 프로테인이 안정되고 특정 생물학적 기능을 달성하도록 프로테인을 폴딩하거나 화학 물질에 대한 유효한 합성 경로를 제공하는 것을 포함할 수 있다. 다른 예로서, 에이전트는 인간 상호작용 없이 시스템에 의해 자동으로 선택된 프로테인 폴딩 액션 또는 화학적 합성 스텝을 수행하거나 제어하는 기계적 에이전트일 수 있다. 관측치는 프로테인 또는 화학물질/중간체/전구체의 상태에 대한 직접적 또는 간접적 관측치를 포함할 수 있고/있거나 시뮬레이션에서 파생될 수 있다.
또 다른 예로, 환경(102)은 차세대 가상 어시스턴트 플랫폼, 개인화 의료 플랫폼 또는 검색-구조 플랫폼과 같은 온라인 플랫폼일 수 있으며, 여기서 관측치(104)는 플랫폼의 사용자로부터의 디지털 입력, 예를 들어 검색 질의의 형태일 수 있으며, 가능한 액션의 세트는 사용자 입력에 대한 응답으로 표시하기 위한 후보 콘텐츠 아이템, 예를 들어 권장 사항, 경고 또는 기타 알림을 포함할 수 있다.
일부 구현에서 환경(102)은 시뮬레이션된 환경일 수 있고, 에이전트는 시뮬레이션된 환경과 상호작용하는 하나 이상의 컴퓨터로서 구현된다.
시뮬레이션된 환경은 운전 시뮬레이션 또는 비행 시뮬레이션과 같은 모션 시뮬레이션 환경일 수 있고, 에이전트는 모션 시뮬레이션을 통해 항해하는 시뮬레이션된 차량일 수 있다. 이러한 구현에서, 액션은 시뮬레이션된 사용자 또는 시뮬레이션된 차량을 제어하기 위한 제어 입력일 수 있다.
일부 구현에서, 시뮬레이션된 환경은 특정 현실 세계 환경의 시뮬레이션일 수 있다. 예를 들어, 시스템은 제어 신경망의 훈련 또는 평가 동안 시뮬레이션된 환경에서 액션을 선택하는 데 사용될 수 있으며, 훈련 또는 평가 또는 둘 모두가 완료된 후, 시뮬레이션된 환경에 의해 시뮬레이션되는 실제 환경에서 실제 에이전트를 제어하기 위해 배치될 수 있다. 이를 통해 실제 환경이나 실제 에이전트에 대한 불필요한 마모 및 손상을 방지할 수 있다. 제어 신경망이 실제 환경에서 거의 발생하지 않거나 재현하기 어려운 상황에 대해 훈련되고 평가되도록 할 수 있다.
일반적으로 시뮬레이션 환경의 경우, 관측치는 이전에 설명된 관측치 또는 관측치 유형 중 하나 이상의 시뮬레이션된 버전을 포함할 수 있고, 액션은 이전에 설명된 액션 또는 액션 유형 중 하나 이상의 시뮬레이션된 버전을 포함할 수 있다.
일부 다른 애플리케이션에서, 에이전트는 예를 들어 산업 시설, 예를 들어 데이터 센터, 전력/물 분배 시스템, 제조 공장 또는 서비스 시설, 상업용 또는 주거용 건물과 같은 장비 아이템을 포함하는 실제 환경에서 액션을 제어할 수 있다. 그런 다음 관측치는 시설 또는 건물의 운영과 관련될 수 있다. 예를 들어, 관측치에는 장비에 의한 전력 또는 물 사용량 관측치, 발전 또는 배전 제어 관측치, 또는 리소스 또는 폐기물 생산 사용 관측치가 포함될 수 있다. 액션에는 시설 또는 건물의 장비 아이템에 대한 작동 조건을 제어하거나 부과하는 액션 및/또는 (예를 들어 시설 또는 건물의 컴포넌트를 조정하거나 턴-온/턴-오프하기 위해) 시설 또는 건물의 운영 설정을 변경하는 액션이 포함될 수 있다. 예를 들어 컴포넌트는 건물 또는 시설의 난방 및/또는 냉방을 제어하는 컴포넌트일 수 있다.
일부 추가 애플리케이션에서, 환경은 실제 환경이고 에이전트는 (예를 들어, 모바일 장치 및/또는 데이터 센터에서) 컴퓨팅 리소스 전반의 작업 배포를 관리한다. 이러한 구현에서, 액션은 특정 컴퓨팅 리소스에 태스크를 할당하는 것, 예를 들어 모바일 장치에서 또는 하나 이상의 데이터 센터에 있는 컴퓨터에 걸쳐 워크로드를 스케줄링하는 것을 포함할 수 있다.
위의 일부 구현에서, 각 시간 스텝에서, 시스템(100)은 환경(102)의 현재 상태 및 시간 스텝에서 에이전트(108)의 액션(110)에 기초하여 보상(106)을 수신한다. 예를 들어, 시스템(100)은 하나 이상의 목표를 달성하는 에이전트(108)를 향한 진행(progress)에 기초하여 소정의 시간 스텝에 대한 보상(106)을 수신할 수 있다. 예를 들어, 에이전트의 목표는 환경(102)의 목표 위치로 이동하는 것일 수 있다.
일반적으로, 훈련 엔진(116)은 플랜 데이터(122)를 생성하도록 플래닝 엔진(120)에 포함된 모델을 훈련하고, 이로부터 시스템(100)에 의해 수신된 예측 누적 보상(예를 들어 시스템(100)에 의해 수신된 보상의 장기 할인된 합계(long-term time-discounted sum))을 최대화하는 액션(110)이 환경(102)과 상호작용할 때 에이전트(108)에 의한 수행을 위해 효과적으로 선택될 수 있다.
구체적으로, 훈련 엔진(116)은 예측 모델(150)을 훈련하여 a) 소정의 미리보기 검색 정책에 따라 선택될 것과 유사한 액션이 결정될 수 있는 예측된 정책 출력, 및 b) 소정의 정책을 사용하여 결정되거나 파생된 타겟 값과 일치하는 환경의 값을 나타내는 값 출력을 생성한다. 예를 들어, 소정의 미리보기 검색 정책은 환경의 가능한 미래 상태를 트래버스하는 데 적합한 트리 기반 검색 정책, 예를 들어 Monte-Carlo 트리 검색 정책일 수 있다. 훈련 엔진(116)은 역학 모델(140)을 추가로 훈련하여 상이한 액션을 수행하는 것에 응답하여 에이전트에 의해 수신될 실제 보상과 일치하는 예측된 즉시 보상 값을 생성한다.
훈련 엔진(116)은 도 4 내지 도 5를 참조하여 아래에서 더 상세히 설명되는 바와 같이, 역학 모델(140), 예측 모델(150), 표현 모델(130)의 파라미터(168) 세트의 값을 공동으로 반복적으로 조정하기 위해 적절한 훈련 기술, 예를 들어 시간을 통한 역전파에 의한 E2E(end-to-end) 기술을 사용하여 이를 수행할 수 있다.
전술한 훈련 목표에 따라 훈련을 수행함으로써, 예를 들어, 하나 이상의 선택적 정규화 항에 추가하여 각각 예측된 정책 출력, 값 출력 및 예측된 즉시 보상 값에 각각 대응하는 총 3개의 에러 항만 평가하는 목적 함수를 최적화함으로써, 표현 모델(130)은 원래 관측치를 재구성하는 데 필요한 모든 정보를 캡처하는 은닉 상태를 출력하기 위해, 즉 훈련을 통해 제한되거나 요구되지 않는다. 표현 모델(130)은 환경의 알려지지 않은 실제 상태와 일치하는 은닉 상태를 출력하도록 제한되거나 요구되지 않는다. 그리고 표현 모델(130)은 은닉 상태를 통해 환경의 의미론을 모델링하기 위해 제한되거나 요구되지 않는다. 대신에, 표현 모델(130)은 현재 및 미래의 값 및 정책 출력을 생성하는 것과 연관된 어떤 방식으로든 환경 상태를 특성화하는 은닉 상태를 출력하도록, 예를 들어, 목적 함수의 계산된 기울기의 역전파를 통해, 훈련될 수 있다. 이는 시스템(100)을 유지하고 예측하는 데 필요한 정보의 양을 대폭 감소시킬 뿐만 아니라 계산 리소스(예: 메모리 및 컴퓨팅 성능)를 절약하고, 이는 또한 가장 정확한 플래닝을 초래할 수 있는 커스터마이징된, 태스크, 에이전트 또는 환경별 규칙 또는 역학의 학습을 용이하게 한다.
일부 구현에서, 훈련 엔진(116)은 재생 메모리(replay memory)(114)에 저장된 최근 경험(즉, 관측치, 액션 및 선택적으로 이전 시간 스텝에 대한 보상을 포함하는 궤적(trajectories))으로부터 플래닝 엔진(120)에 포함된 모델을 훈련한다. 일반적으로, 궤적은 모델 훈련에 사용하기 위해 환경 또는 환경의 다른 인스턴스와 에이전트 또는 다른 에이전트의 상호 작용의 결과로 생성된 경험 정보에서 파생될 수 있다. 각 궤적은 에이전트와 환경의 상호 작용에 대한 정보를 나타낸다.
일부 구현에서, 시스템(100)은 예를 들어 재생 메모리에 있는 궤적 데이터의 일부 부분(예: 80%, 70% 또는 60%)을 새로운 궤적 데이터로 유지하고 나머지 부분(예: 다른 20%, 30% 또는 40%)을 오래된 궤적 데이터(예를 들어 시스템 훈련 시작 전에 생성된 데이터 또는 모델 훈련에 이미 사용된 데이터)로 유지함으로써, 재생 메모리(114)에 유지되는 궤적 데이터의 구성을 제어할 수 있다. 새로운 궤적 데이터는 지속적인 훈련의 결과로 결정되고 그리고 아직 모델을 훈련하는 데 사용되지 않은 플래닝 엔진(120)에 포함된 모델의 최근 파라미터 값에 따라 플래닝 엔진(120)을 사용하여 액션(108)을 선택함으로써 환경(102)과 상호작용하도록 에이전트(108)를 제어함으로써 생성된 경험을 지칭한다. 그런 다음 시스템은 재생 메모리(114)의 새로운 데이터와 오래된 데이터 모두에 대해 모델을 훈련할 수 있다. 오래된 데이터에 대한 훈련을 오래된(이전) 데이터의 재분석(reanalyze)이라 하며, 이하 도 7을 참조하여 설명한다.
일부 경우에는 시스템이 데이터 효율적인 방식, 즉 에이전트와 환경의 상호 작용을 통해 생성해야 하는 훈련 데이터의 양을 최소화하는 방식으로 모델을 훈련해야 할 수 있다. 이는 훈련에 의해 소비되는 계산 리소스의 양을 감소시킬 수 있고, 에이전트가 실제(real-world) 에이전트인 경우 훈련 중 환경과 상호 작용하여 발생하는 기계적 에이전트의 마모를 줄인다. 일반적으로 시스템은 훈련에 사용되는 새로운 데이터로 이전 데이터의 비율을 증가시켜 이러한 데이터 효율성을 달성할 수 있다.
또 다른 구현에서, 에이전트에 의한 환경과의 상호작용의 결과로 생성된 "오래된(old)" 데이터 대신에 또는 이에 추가하여, 시스템은 환경과 다른 "엑스퍼트(expert)" 에이전트와의 상호 작용 결과로 생성된 데모 데이터에 액세스할 수 있다. 엑스퍼트 에이전트는 태스크를 수행하도록 이미 훈련된 에이전트이거나 인간 사용자가 제어하는 에이전트일 수 있다. 시스템은 이 데모 데이터(demonstration data)를 "오래된(이전)" 데이터로 재생 메모리에 추가할 수도 있다(에이전트에 의한 상호 작용의 결과로 생성된 "오래된" 데이터 대신 또는 추가로).
다른 구현에서, 시스템은 에이전트(또는 다른 에이전트)가 다른 정책에 의해 제어될 때 이전에 생성된 궤적 데이터에만 액세스할 수 있으며 기계 학습 모델을 오프라인으로 훈련해야 한다. 즉, 새로운 훈련 데이터를 생성하기 위해 환경과 상호 작용하도록 에이전트를 제어할 수 없다. 이러한 구현에서, 시스템은 이전 데이터(궤적 데이터)의 비율(fraction)을 1로 설정하고 새로운 데이터를 0으로 설정함으로써, 이 궤적 데이터에 대해 도 7을 참조하여 위에서 및 아래에서 설명된 재분석 기술을 사용할 수 있다. 일부 경우에는 시스템이 이전에 생성된 궤적 데이터에 대해 합리적인 성능을 달성하도록 모델을 훈련시킨 후, 시스템은 에이전트가 환경과 상호 작용하도록 모델을 사용할 수 있다. 이러한 경우 모델에 액세스 권한이 부여된 후, 시스템은 모델의 성능을 "미세 조정(fine-tune)"하기 위해 새로운 데이터 또는 새로운 데이터와 궤적 데이터의 혼합에 대해서만 모델을 훈련하도록 되돌릴 수(revert) 있다.
도 2는 에이전트가 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션을 선택하기 위한 예시적인 프로세스(200)의 흐름도이다. 편의상, 프로세스(200)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 강화 학습 시스템, 예를 들어 본 명세서에 따라 적절하게 프로그램된, 도 1의 강화 학습 시스템(100)은 프로세스(200)를 수행할 수 있다.
일반적으로 에이전트가 실제로 환경과 상호작용하도록 제어할 때, 시스템은 새로운 환경 상태에 응답하여 에이전트에 의해 수행될 가능한 액션 세트로부터 새로운 액션을 선택하기 위해 환경이 새로운 상태(이하 "현재" 상태라고 함)로 전환될 때마다 프로세스(200)의 반복을 수행할 수 있다.
시스템은 환경의 현재 환경 상태를 특징짓는 현재 관측치(예를 들어, 이미지 또는 비디오 프레임)을 수신한다(202).
시스템은 표현 모델을 사용하고 표현 모델 파라미터의 훈련된 값에 따라 현재 관측치를 포함하는 표현 모델 입력을 처리(프로세싱)하여 환경의 현재 상태에 대응하는 은닉 상태를 생성한다. 은닉 상태는 관측치의 간결한 표현으로서, 관측치보다 차원이 낮다. 일부 구현에서 표현 모델 입력은 현재 관측치만 포함한다. 일부 다른 구현에서, 표현 모델 입력은 또한 하나 이상의 이전 관측치를 포함한다.
그런 다음 시스템은 환경에서 각각의 액션 세트를 수행하고 현재 환경 상태에서 시작하는 에이전트의 태스크를 수행하는 각각의 값을 나타내는 플랜 데이터를 생성하기 위해 다중 플래닝 반복을 수행한다. 각 플래닝 반복에는 도 1을 참조하여 위에서 설명된 바와 같이 상태 트리에서 해당 노드-에지 쌍에 대한 컴파일된 통계에 따라 개별 액션을 (즉, 각 플래닝 반복의 여러 플래닝 스텝 각각에서) 반복적으로 선택하기 위해, 일반적으로 미리보기 검색(예를 들어, 몬테-카를로 트리 검색) 수행이 포함된다. 이를 통해 시스템은 현재 관측치에 의해 특징지어지는 현재 상태에서 시작하여 환경의 가능한 미래 상태를 트래버스할 수 있다.
더 구체적으로, 각 플래닝 반복에서, 시스템은 (단계 202에서 생성된 은닉 상태에 해당하는) 상태 트리의 루트 노드에서 시작하여 미리보기 검색을 시작하고 종료 기준을 충족하는 가능한 미래 상태가 발생할 때까지 미리보기 검색을 계속한다. 예를 들어, 미리보기 검색은 몬테-카를로 트리 검색일 수 있고, 기준은 미래 상태가 상태 트리의 리프 노드로 표현되는 것일 수 있다. 그런 다음 시스템은 204-206의 다음 단계를 수행하여 리프 노드를 확장한다. 간단히 말해서, 리프 노드를 확장하기 위해, 시스템은 리프 노드가 나타내는 리프 환경 상태(이하 "입력 환경 상태"라고 함)에 대한 응답으로 에이전트가 수행할 수 있는 가능한(또는 유효한) 액션인 액션(이하 "입력 액션"이라 함)에 대한 상태 트리에 새로운 에지를 추가할 수 있다. 예를 들어, 액션은 상태 트리에서 리프 노드의 부모 노드에 대응하는 노드-에지 쌍에 대한 컴파일된 통계에 따라 시스템에 의해 선택된 액션일 수 있다. 또한 시스템은 새로운 에지에 대한 액션 점수와 방문 횟수를 0으로 설정하여 새로운 에지에 대한 통계 데이터를 초기화한다.
시스템은, 역학 모델을 사용하고 역학 모델 파라미터의 훈련된 값에 따라, a) 입력 환경 상태에 대응하는 은닉 상태 및 b) 가능한 액션 세트로부터 입력 액션을 지정하는 데이터를 프로세싱하고, a) 환경이 입력 환경 상태에 있을 때 에이전트가 입력 액션을 수행한 경우 환경이 전환될 것으로 예측되는 다음 환경 상태에 대응하는 은닉 상태 및 경우에 따라, b) 환경이 입력 환경 상태에 있을 때 에이전트가 입력 액션을 수행하면 받을 즉시 보상을 나타내는 예측된 즉시 보상 값을 지정하는 데이터를 출력으로 생성한다(204). 예를 들어, 즉시 보상 값은 환경이 입력 환경 상태일 때 입력 액션을 수행한 결과로 태스크 완료의 진행률을 나타내는 수치 값일 수 있다.
시스템은 예측 모델을 사용하고 예측 모델 파라미터의 훈련된 값에 따라 예측된 다음 환경 상태에 대응하는 은닉 상태를 프로세싱하고, a) 가능한 액션 세트에 대한 점수 분포를 정의하는 예측된 정책 출력 및 b) 태스크를 수행하기 위해 예측된 다음 환경 상태에 있는 환경의 값을 나타내는 값 출력을 출력으로 생성한다(206).
플래닝 반복의 마지막 단계로, 시스템은 리프 노드를 평가하고 모델 출력을 기반으로 검색하는 동안 트래버스된(traversed) 에지에 대한 통계 데이터를 업데이트한다. 시스템은 예측 모델 출력에 의해 정의된 점수 분포로부터 새로운 에지에 대응하는 점수를 새로운 에지에 대한 사전 확률 P로 사용할 수 있다. 시스템은 또한 예측 모델 네트워크 값 출력으로부터 새로운 에지에 대한 액션 점수 Q를 결정할 수 있다.
플래닝 반복 동안 트래버스된 각 에지에 대해, 시스템은 에지에 대한 방문 횟수 N을 미리 결정된 상수 값, 예를 들어 1만큼 증가시킬 수 있다. 시스템은 또한 에지를 트래버스하는 것을 포함하는 모든 검색의 예측 값의 새로운 평균과 동일하게 액션 점수 Q를 설정함으로써 리프 노드에 대한 예측 값을 사용하여 에지에 대한 액션 점수 Q를 업데이트할 수 있다.
도 3a는 플랜 데이터를 생성하기 위해 하나의 플래닝 반복을 수행하는 예시적인 예시이다. 이 예의 플래닝 반복에는 환경의 현재 상태 이후에 세 가지 상태의 예측된 롤아웃(rollout)을 초래하는 세 가지 액션의 시퀀스가 포함된다.
묘사된 바와 같이, 플래닝 반복은 상태 트리(302)를 트래버스하는 것으로 시작하고 그리고 상태 트리가 리프 상태에 도달할 때까지 계속되며, 즉, 상태 트리의 리프 노드(예: 노드 332)에 의해 표현된 상태에 이어 리프 노드를 확장하고, 단계 204-206을 참조하여 위에서 설명된 바와 같이 역학 모델 g 및 예측 모델 f를 사용하여 새로 추가된 에지를 평가하고, 리프 노드에 대한 예측된 리턴을 기반으로 검색 중에 트래버스된 에지에 대한 통계 데이터를 업데이트한다. 상태 트리를 트래버스할 때, 시스템은 상태 트리의 해당 노드-에지 쌍의 컴파일된 통계에 따라 트래버스할 (플래닝 동안 선택한 액션(
Figure pct00003
)의 시퀀스에 대응하는) 에지를 선택한다.
특히 기존 시스템과 달리, 시스템은 환경의 시뮬레이터를 사용하여 플래닝 반복을 수행하지 않는 데, 즉, 환경의 시뮬레이터를 사용하여 소정의 상태에서 수행되는 소정의 액션의 결과로 환경이 어떤 상태로 전환되는지 결정하지 않는다. 특히, 시스템은 소정의 상태에서 수행되는 소정의 액션의 결과로 환경이 전환될 상태에 대한 시뮬레이션 또는 예측된 관측치를 결정하려고 시도하지 않는다. 대신 시스템은 역학 모델 g의 은닉 상태 출력을 기반으로 플래닝 반복을 수행한다.
예를 들어, 도 3a에 도시된 바와 같이, 노드(322)가 플래닝 중에 상태 트리의 리프 노드이고 시스템이 리프 노드(322)를 확장하는 경우, 시스템은 (i) 예측된 다음 환경 상태에 대응하는 은닉 상태
Figure pct00004
를 출력으로 생성하기 위해 역학 모델 g를 사용하여 액션
Figure pct00005
을 지정하는 데이터 및 은닉 상태
Figure pct00006
, 그리고 경우에 따라 예측된 즉시 보상 값
Figure pct00007
을 지정하는 데이터를 프로세싱하고, 그리고 (ii) 예측 모델 f를 사용하여 역학 모델 g에 의해 생성된 은닉 상태
Figure pct00008
를 프로세싱하여 예측된 정책 출력
Figure pct00009
및 값 출력
Figure pct00010
을 출력으로 생성한다. 따라서 시스템은 이러한 은닉 상태(예: 은닉 상태
Figure pct00011
)만을 사용하여 플래닝을 수행할 수 있으며, 반면에 기존 시스템은 일반적으로 각 상태를 특징짓는 전체 관측치(full observation), 예를 들어 환경의 현재 환경 상태를 특징짓는 수신된 현재 관측치
Figure pct00012
와 동일한 형식 또는 양식을 갖는 관측치를 반복적으로 재구성하여 플래닝을 수행해야 한다.
도 3a의 예는 현재 환경 상태로부터 시작하여 총 3개의 예측된 미래 환경 상태의 롤아웃을 도시하고, 여기서 각각의 환경 상태에 대응하는 각각의 은닉 상태는 해당 예측된 정책 출력, 예측된 값, 예측된 즉시 보상 값 및 실제 액션 선택 정책을 사용하여 선택된 액션과 연관된다. 그러나, 상이한, 예를 들어 더 많은 수의 은닉 상태 및 상이한 수의 예측된 정책 출력, 예측된 값, 및 예측된 즉시 보상 값이 도 3a에 예시된 것보다 시스템에 의해 생성될 수 있다.
위와 같이 여러 번의 플래닝 반복을 수행하여 플랜 데이터를 생성한 후, 시스템은 생성된 플랜 데이터에 기초하여 현재 관측치에 응답하여 에이전트가 수행할 액션을 액션 세트에서 선택하도록 진행한다(208). 구체적으로, 플랜 데이터는 상태 트리의 루트 노드, 즉 현재 관측치를 특징으로 하는 상태에 대응하는 노드의 일부 또는 모든 아웃고잉 에지 각각에 대해 플래닝 동안 컴파일된 통계 데이터를 포함할 수 있고, 시스템은 루트 노드에 대응하는 노드-에지 쌍에 대한 통계 데이터를 기반으로 액션을 선택할 수 있다.
일부 구현에서, 시스템은 상태 트리의 루트 노드를 특징으로 하는 환경 상태에 대응하는 관측치에 응답하여 에이전트가 수행할 수 있는 가능한 액션에 대응하는 에지의 방문 카운트(방문 횟수)를 기반으로 이 선택을 할 수 있다. 도 3a의 예에서, 시스템은 상태 트리(302)의 루트 노드(312)의 각 아웃고잉 에지에 대한 방문 횟수에 비례하는 액션을 선택할 수 있다.
일부 구현에서, 시스템은 플랜 데이터의 액션 시퀀스에서, 최대 관련 값 출력을 갖는 액션 시퀀스를 결정하고, 현재 관측치에 대한 응답으로 에이전트가 수행할 액션으로서 상기 결정된 액션 시퀀스의 제1 액션을 선택함으로써 이러한 선택을 할 수 있다. 도 3a의 예에서, 시스템은 수행할 액션으로
Figure pct00013
을 선택할 수 있으며, 액션(
Figure pct00014
) 시퀀스가 여러 플래닝 반복을 통해 생성된 모든 다른 액션 시퀀스 중에서 최대 관련 값 출력을 갖는다고 가정한다.
도 3b는 생성된 플랜 데이터에 기초하여 에이전트에 의해 수행될 액션을 선택하는 예시적인 예시이다. 소정의 관측치, 예를 들어, 환경의 해당 상태의 관측치
Figure pct00015
에 대해, 액션(예를 들어, 액션(
Figure pct00016
))은 전술한 바와 같이 시스템에 의해 그리고 프로세스(200)의 반복을 프로세싱하는 것에 기초하여 선택된다. 에이전트가 선택한 액션의 실제 수행은 환경을 진행(progresses)하여 새로운 상태로 전환하여 새로운 관측치(예: 관측치(
Figure pct00017
))와 이에 상응하는 보상(예: 보상(
Figure pct00018
))이 생성된다. 대응하여, 프로세스(200)의 또 다른 반복은 새로운 관측치에 의해 특징지어지는 새로운 상태에 응답하여 에이전트에 의해 수행될 새로운 액션(예를 들어, 액션(
Figure pct00019
))을 선택하기 위해 시스템에 의해 수행될 수 있다.
도 3b의 예는 환경의 각각의 상태를 각각 특징짓는 총 3개의 관측치(
Figure pct00020
)를 포함하는 궤적을 도시한다. 그러나 실제로 궤적에는 환경 상태 간의 더 긴 연속적인 전환을 집합적으로 특성화하는 더 많은 관측치가 포함될 수 있으며, 따라서 긴 에피소드 태스크를 포함하여 다양한 태스크를 수행할 때 에이전트와 환경 간의 상호 작용 정보를 캡처할 수 있다. 액션 및 경우에 따라 이러한 방식으로 생성된 보상, 관측치의 각 궤적은 선택적으로 시스템의 재생 메모리에 저장되어 나중에 시스템 훈련을 지원하는 데 사용할 수 있다.
위의 설명은 소정의 리프 노드를 평가할 때 액션 세트의 각 유효한 액션이 평가되는 구현을 설명한다. 그러나, 일부 다른 구현에서, 액션 세트는 매우 크거나 연속적이어서 각 액션을 평가하는 것이 실현 가능하지 않거나 지나치게 계산 비용이 많이 든다.
이러한 구현에서, 시스템은 전술한 플래닝 기술에 추가하여 액션 샘플링 기술을 사용하여 에이전트에 의해 수행될 액션을 선택할 수 있으며, 이는 도 4를 참조하여 아래에서 더 자세히 설명된다.
도 4는 환경과 상호작용하는 에이전트에 의해 수행될 액션을 선택하기 위한 다른 예시적인 프로세스(400)의 흐름도이다. 편의상, 프로세스(400)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 강화 학습 시스템, 예를 들어, 본 명세서에 따라 적절하게 프로그램된 도 1의 강화 학습 시스템(100)은 프로세스(400)를 수행할 수 있다.
시스템은 환경의 현재 환경 상태를 특징짓는 현재 관측치(예를 들어, 이미지 또는 비디오 프레임)을 수신하고(402), 표현 모델을 사용하여 환경의 현재 상태에 대응하는 은닉 상태를 생성한다.
그런 다음 시스템은 404-412의 다음 단계를 반복적으로 수행하여 여러 플래닝 반복을 수행하고 현재 환경 상태에서 시작하여 환경의 액션 세트에서 여러 액션 각각을 수행하는 에이전트의 태스크 수행에 대한 각각의 값을 나타내는 플랜 데이터를 생성한다. 위에서 설명한 것과 유사하게, 이는 환경의 상태 트리를 트래버스함으로써 현재 환경 상태에서 시작하여 에이전트가 수행할 액션 시퀀스를 선택하는 것을 포함하며, 여기서 환경의 상태 트리에는 환경의 환경 상태를 나타내는 노드와 환경을 전환 상태로 만드는 에이전트가 수행할 수 있는 액션을 나타내는 에지가 있다.
각 플래닝 반복에서, 시스템은 상태 트리의 노드-에지 쌍에 대한 통계를 사용하여, 현재 환경 상태를 나타내는 상태 트리의 루트 노드에서 시작하여 상태 트리의 리프 노드에 도달할 때까지 상태 트리를 트래버스한다(404). 일반적으로, 리프 노드는 자식 노드가 없는, 즉, 아웃고잉 에지에 의해 다른 노드와 연결되지 않는 상태 트리의 노드이다.
시스템은 예측 모델을 사용하고 예측 모델 파라미터의 훈련된 값에 따라, 리프 노드에 의해 표현되는 환경 상태에 대응하는 은닉 상태를 프로세싱하고, a) 액션 세트에 대한 점수 분포를 정의하는 예측된 정책 출력 및 b) 태스크를 수행하기 위해 리프 노드가 나타내는 상태에 있는 환경의 값을 나타내는 값 출력을 출력으로서 생성한다(406).
시스템은 액션 세트의 적절한 서브세트를 샘플링한다(408). 시스템은 점수 분포에서 샘플링 분포를 생성한 다음 샘플링 분포에서 고정된 수의 샘플을 샘플링하여 이를 수행할 수 있다. 이는 도 1에서 위에서 보다 상세하게 설명되지만, 간단히 말해서 온도 파라미터를 사용하여 점수 분포의 점수를 스케일링하는 것을 포함할 수 있다.
시스템은 샘플링된 액션에 기초하여 상태 트리를 업데이트한다(410). 샘플링된 각 액션에 대해, 시스템은 샘플링된 액션을 나타내는 리프 노드에서 각각의 아웃고잉 에지를 상태 트리에 추가한다.
시스템은 또한 리프 노드에 대응하는 노드-에지 쌍에 대한 통계 데이터를 업데이트한다(412). 각 샘플링된 액션에 대해, 시스템은 샘플링된 액션을 나타내는 각각의 아웃고잉 에지를 예측된 정책 출력에서 파생된 샘플링된 액션에 대한 사전 확률과 연관시킨다.
샘플링된 액션에 대한 사전 확률을 결정하기 위해, 시스템은 예측 모델의 예측된 정책 출력에 의해 정의된 점수 분포의 액션 점수에 보정 계수(correction factor)를 적용한다. 보정 계수는 (i) 고정된 수의 샘플에서 샘플링된 액션이 샘플링된 횟수 및 (ii) 샘플링 분포에서 샘플링된 액션에 할당된 점수를 기반으로 결정할 수 있다. 예를 들어, 보정 계수는 (i) 고정된 수의 전체 샘플 수에 대한 고정된 수의 샘플에서 샘플링된 액션이 샘플링된 횟수의 비율 및 (ii) 샘플링 분포에서 샘플링된 액션에 할당된 점수의 비율과 같다.
위와 같이 여러 번의 플래닝 반복을 수행하여 플랜 데이터를 생성한 후, 시스템은 예를 들어 상태 트리의 루트 노드의 각 아웃고잉 에지에 대한 방문 카운트를 사용하여 선택을 함으로써, 플랜 데이터를 사용하여 현재 관측치에 응답하여 에이전트가 수행할 액션을 선택하도록 진행한다(414).
따라서 보다 일반적으로, 액션의 서브세트만 샘플링되었다는 사실을 설명하기 위해, 시스템은 보정 계수를 사용하여 샘플링된 액션에 대한 사전 확률을 생성한 다음 (보정된) 사전 확률을 사용하여 액션을 선택하고 본 명세서의 나머지 부분에 설명된 대로 훈련 중에 샘플링이 수행될 때 진행한다.
도 5는 모델 파라미터의 훈련된 값을 결정하기 위해 강화 학습 시스템을 훈련하기 위한 예시적인 프로세스(500)의 흐름도이다. 편의상, 프로세스(500)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 강화 학습 시스템, 예를 들어, 본 명세서에 따라 적절하게 프로그램된 도 1의 강화 학습 시스템(100)은 프로세스(500)를 수행할 수 있다.
시스템은 재생 메모리로부터 궤적(trajectory)을 획득한다(502). 예를 들어, 궤적은 재생 메모리에서 샘플링된 궤적 배치(batch) 중 하나일 수 있다. 궤적에는 환경의 관측치(또는 환경의 다른 인스턴스)에 대한 응답으로 에이전트(또는 다른 에이전트)가 수행한 실제 액션과 연관된 관측치 시퀀스가 포함될 수 있으며, 경우에 따라 에이전트가 받은 보상도 포함될 수 있다.
도 6은 모델 파라미터의 훈련된 값을 결정하기 위해 강화 학습 시스템을 훈련시키는 예시적인 예시이다. 도시된 바와 같이, 궤적(602)은 각각이 환경의 대응하는 상태를 특징짓는 총 3개의 관측치(
Figure pct00021
)를 포함한다. 궤적(602)은 또한 각각의 관측치(예를 들어, 관측치(
Figure pct00022
))에 대해: 관측치에 응답하여 에이전트에 의해 수행된 실제 액션(예를 들어, 액션(
Figure pct00023
)) 및 환경이 관측치를 특징으로 하는 상태에 있을 때 실제 액션을 수행하는 것에 대한 응답으로 에이전트가 수신한 실제 보상(예를 들어 보상(
Figure pct00024
))을 포함한다.
시스템은 표현 모델을 사용하여 관측치(“현재 관측치”)를 프로세싱(처리)하고, 일부 경우에는 표현 모델 파라미터의 현재 값에 따라 그리고 표현 모델을 사용하여 궤적에서 현재 관측치보다 선행하여 하나 이상의 이전 관측치를 프로세싱하고, 환경의 현재 상태에 대응하는 은닉 상태를 생성한다(504).
도 6의 예에 도시된 바와 같이, 시스템은 현재 상태에 대응하는 은닉 상태
Figure pct00025
를 생성하기 위해 표현 모델을 사용하여 관측치
Figure pct00026
를 프로세싱한다.
시스템은 역학 및 예측 모델을 사용하여 현재 상태 이후의 환경 상태의 미리 결정된 수의 롤아웃을 수행하며(506), 즉, 환경의 현재 상태에 대응하는 은닉 상태를 따르는 미리 결정된 수의 은닉 상태를 생성한다.
롤아웃을 수행하려면, 도 6의 예에 도시된 바와 같이, 시스템은 a) 은닉 상태(예를 들어 은닉 상태(
Figure pct00027
)) 및 b) 역학 모델을 사용하고 그리고 역학 모델 파라미터의 현재 값에 따라 궤적에서 해당 액션(예를 들어 액션(
Figure pct00028
))(즉, 현재 상태에 대한 응답으로 에이전트가 수행한 실제 액션)을 지정하는 데이터를 (즉, 여러 훈련 시간 스텝 각각에서) 반복적으로 프로세싱하고, a) 예측된 다음 환경 상태에 해당하는 은닉 상태(예를 들어 은닉 상태(
Figure pct00029
)), 그리고 일부 경우에, b) 예측된 즉시 보상 값(예를 들어, 예측된 즉시 보상(
Figure pct00030
))을 지정하는 데이터를 출력으로 생성한다. 시스템은 또한 예측 모델을 사용하고 그리고 예측 모델 파라미터의 현재 값에 따라 예측된 다음 환경 상태에 대응하는 은닉 상태(예를 들어, 은닉 상태(
Figure pct00031
))를 반복적으로 프로세싱하고, a) 예측된 정책 출력(예: 예측된 정책 출력(
Figure pct00032
)) 및 b) 값 출력(예를 들어, 값 출력(
Figure pct00033
)을 출력으로서 생성한다.
시스템은 플래닝과 가장 연관된 수량을 측정하는 목적 함수를 평가한다(508).
특히, 목적 함수는 궤적의 복수의 관측치 각각(예: 관측치(
Figure pct00034
))에 대해, 그리고 궤적의 관측치에 의해 표현된 상태를 따르는 하나 이상의 후속 은닉 상태 각각(예: 은닉 상태(
Figure pct00035
))에 대해:
(i) 관측치에 따라 생성된 후속 은닉 상태에 대한 예측된 정책 출력(예: 예측된 정책 출력(
Figure pct00036
))과 관측치에 응답하여 실제 액션(예: 액션(
Figure pct00037
))을 선택하는 데 사용된 실제 정책 간의 정책 에러(policy error), (ii) 관측치에 따라 생성된 후속 은닉 상태에 대해 예측된 값(예: 값 출력(
Figure pct00038
))과 후속 은닉 상태에 대한 타겟 값(target value) 사이의 값 에러, (iii) 관측치에 따라 생성된 후속 은닉 상태에 대한 예측 즉시 보상(예: 예측 즉시 보상(
Figure pct00039
))과 후속 은닉 상태에 대응하는 실제 즉시 보상(actual immediate reward) 사이의 보상 에러를 측정할 수 있다. 예를 들어, 후속 은닉 상태의 타겟 값은 후속 은닉 상태에서 시작하여 에이전트가 수신한 부트스트랩된(bootstrapped) n-스텝 리턴일 수 있다.
예를 들어 목적 함수는 수학식 2와 같이 평가될 수 있다.
Figure pct00040
여기서,
Figure pct00041
는 예측된 즉시 보상 값과 타겟(실제) 보상 u 사이의 차이를 평가하는 첫 번째 에러 항이며,
Figure pct00042
는 예측된 값 출력과 타겟 값(
Figure pct00043
) 간의 차이를 평가하는 두 번째 에러항이며,
Figure pct00044
는 예측된 정책 출력과 실제 액션 선택 정책 π(예: Monte-Carlo 트리 검색 정책) 사이의 차이를 평가하는 세 번째 에러 항이다. 예를 들어, 차이는 (i) 상태 트리의 루트 노드의 아웃고잉 에지의 방문 횟수에서 파생된 가능한 액션 세트에 대한 경험적(empirical) 샘플링 분포 및 (ii) 예측 모델의 예측된 정책 출력에 의해 정의된 가능한 액션 세트에 대한 점수 분포 사이의 차이로서 평가될 수 있다.
이 예에서,
Figure pct00045
는 L2 정규화 항이고, γ는 부트스트랩된 n-스텝 타겟으로 타겟 값 z를 계산할 때 사용되는 할인 계수(discounting factor)이고,
Figure pct00046
는 인접한 정수의 선형 조합을 통해 실수 x의 표현을 나타내며, 이는 스칼라 수치 값 x를 동등한 범주형 표현으로 효과적으로 변환한다.
시스템은 모델 파라미터에 대한 목적 함수의 기울기 계산에 기초하고 그리고 적절한 훈련 기술(예를 들어, end-to-end by backpropagation-through-time technique)을 사용함으로써 역학, 표현, 예측 모델의 파라미터 값을 업데이트한다(510).
일반적으로, 시스템은 훈련 종료 기준이 충족될 때까지, 예를 들어, 미리 정해진 횟수의 훈련 반복이 완료된 후 또는 시스템의 훈련을 위한 미리 정해진 시간이 경과한 후, 모델 파라미터의 훈련된 값을 결정하기 위해 모델 파라미터 값을 반복적으로 업데이트하기 위해 500의 프로세스를 반복적으로 수행할 수 있다.
전술한 프로세스(400)를 수행함으로써 역학, 표현, 예측 모델 파라미터를 훈련된 값을 결정하는 대신에 또는 이에 더하여, 시스템은 재분석 기술을 사용하여 그렇게 할 수 있다.
일부 경우에는 시스템이 강화 학습 시스템의 재분석과 함께 훈련을 인터리브한다. 재분석하는 동안, 시스템은 재생 메모리에서 이전에 샘플링된 궤적을 다시 방문하고, 궤적을 사용하여 이러한 궤적에 대한 시스템 훈련의 결과로 결정된 역학, 표현, 예측 모델의 파라미터 값을 미세 조정(fine-tine)한다. 예를 들어, 프로세스(400)가 미리 결정된 반복 횟수 동안 반복적으로 수행될 때마다, 시스템은 지금까지 수행된 훈련 반복으로 결정된 모델 파라미터의 현재 값을 조정하기 위해 아래에 설명된 바와 같이 하나 이상의 재분석 프로세스를 수행하도록 진행할 수 있다.
다른 경우에, 시스템이 완전히 재분석을 기반으로 모델 파라미터 값을 업데이트할 수 있다. 예를 들어, 시스템은 훈련 중 환경과 상호 작용하도록 에이전트를 제어하여 새로운 궤적 데이터를 수집하는 것이 비용이 많이 들거나 실행 불가능한 경우 또는 다른 정책에 의해 제어되는 동안 환경과 상호 작용하는 에이전트의 이전 경험만 사용할 수 있는 경우 재분석 기술을 사용할 수 있다. 이러한 경우, 시스템은 재생 메모리에서 저장된 궤적을 샘플링하고, 샘플링된 궤적을 사용하여 이미 조정된 값이 아닌 초기 값에서 역학, 표현, 예측 모델의 파라미터 값을 조정한다.
도 7은 모델 파라미터의 훈련된 값을 결정하기 위해 강화 학습 시스템을 재분석하기 위한 예시적인 프로세스(700)의 흐름도이다. 편의상, 프로세스(700)는 하나 이상의 위치에 위치한 하나 이상의 컴퓨터의 시스템에 의해 수행되는 것으로 설명될 것이다. 예를 들어, 강화 학습 시스템, 예를 들어, 본 명세서에 따라 적절하게 프로그램된 도 1의 강화 학습 시스템(100)은 프로세스(700)를 수행할 수 있다.
시스템은 훈련 동안 재생 메모리로부터 이전에 샘플링된 궤적에 포함된 관측치들 중 하나일 수 있는 관측치("현재 관측치")를 획득한다(702). 예를 들어, 관측치는 프로세스(500)의 단계(502)에서 시스템에 의해 획득된 궤적의 관측치일 수 있다.
시스템은 도 2를 참조하여 위에서 설명된 바와 같이, 현재 환경 상태로부터 시작하여 에이전트에 의해 수행될 다수의 액션 시퀀스를 선택하는 것을 포함하는, 역학 모델 및 예측 모델에 의해 생성된 출력에 의해 가이드되는 복수의 플래닝 반복을 수행한다(704). 특히, 관측치에 대응하는 은닉 상태를 생성하고 재분석 중에 리프 노드를 확장하기 위해, 시스템은 이러한 모델의 최신 파라미터 값(즉, 프로세스(500)를 수행한 결과 또는 시스템의 재분석의 결과로서 최근에 업데이트된 파라미터 값)에 따라 표현, 역학 및 예측 모델을 실행한다.
시스템은 새로운 타겟 정책 출력 및 새로운 타겟 값 출력을 재계산하는 것을 포함하는 재분석 목적 함수를 평가하고(706), 그런 다음 재계산된 새로운 타겟 정책 출력과 새로운 타겟 값 출력을 훈련 중에 사용되는 목적 함수(예: 수학식 2의 예시 목적 함수)로 대체한다.
구체적으로, 궤적의 복수의 관측치 각각에 대해, 그리고 궤적의 관측치에 의해 표현된 상태를 따르는 하나 이상의 후속 은닉 상태 각각에 대해: 새로운 타겟 정책 출력은 최근 업데이트된 파라미터 값에 따라 표현, 역학 및 예측 모델에 의해 생성된 출력에 의해 가이드되는 실제 액션 선택 정책 π(예를 들어 Monte-Carlo 트리 검색 정책)을 사용하여 결정할 수 있다. 그리고 타겟 값 출력은
Figure pct00047
와 같이 계산되는 부트스트랩된 n-스텝 타겟 값일 수 있으며, 여기서
Figure pct00048
는 예측 모델의 최근 업데이트된 파라미터 값
Figure pct00049
에 따라 은닉 상태
Figure pct00050
를 프세싱하여 예측 모델 f를 사용함으로써 생성된 값 출력을 나타낸다.
샘플 재사용을 늘리고 그리고 값 함수의 과적합을 방지하려면 재분석 목적 함수를 평가할 때, 시스템은 예를 들어 타겟 값 출력에 대한 가중치를 낮추고 그리고 부트스트랩된 n-스텝 타겟 값을 계산하는 데 사용되는 스텝 수를 줄이기 위해 훈련 목적 함수와 연관된 일부 하이퍼파라미터 값을 추가로 조정할 수 있다.
시스템은 모델 파라미터에 대한 재분석 목적 함수의 기울기를 계산하는 것에 기초하고 그리고 적절한 훈련 기술(예: bend-to-end by backpropagation-through-time technique)을 사용하여 표현, 역학 및 예측 모델의 파라미터 값을 업데이트(예를 들어, 미세 조정)한다(708).
본 명세서는 시스템 및 컴퓨터 프로그램 컴포넌트와 관련하여 "구성된"이라는 용어를 사용한다. 하나 이상의 컴퓨터로 구성된 시스템이 특정 오퍼레이션 또는 액션을 수행하도록 구성된다는 것은 시스템에 소프트웨어, 펌웨어, 하드웨어 또는 작동 중에 시스템이 오퍼레이션 또는 액션을 수행하도록 하는 이들의 조합이 설치되어 있음을 의미한다. 하나 이상의 컴퓨터 프로그램이 특정 오퍼레이션 또는 액션을 수행하도록 구성된다는 것은 하나 이상의 프로그램이 데이터 프로세싱 장치에 의해 실행될 때 장치가 오퍼레이션 또는 액션을 수행하게 하는 명령어를 포함한다는 것을 의미한다.
본 명세서에 기술된 주제 및 기능적 동작의 실시예는 디지털 전자 회로, 유형적으로 구현된 컴퓨터 소프트웨어 또는 펌웨어, 본 명세서에 개시된 구조 및 그 구조적 등가물을 포함하는 컴퓨터 하드웨어, 또는 이들 중 하나 이상의 조합으로 구현될 수 있다. 본 명세서에 기술된 주제의 실시예는 하나 이상의 컴퓨터 프로그램, 즉 데이터 프로세싱 장치에 의해 실행되거나 데이터 프로세싱 장치의 작동을 제어하기 위해 유형의 비일시적 저장 매체에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로 구현될 수 있다. 컴퓨터 저장 매체는 기계 판독 가능한 저장 장치, 기계 판독 가능한 저장 기판, 랜덤 또는 직렬 액세스 메모리 장치, 또는 이들 중 하나 이상의 조합일 수 있다. 대안적으로 또는 추가적으로, 프로그램 명령어는 데이터 프로세싱 장치에 의한 실행을 위해 적절한 수신기 장치로의 전송을 위한 정보를 인코딩하도록 생성된 인공적으로 생성된 전파 신호, 예를 들어 기계 생성 전기, 광학 또는 전자기 신호에 인코딩될 수 있다.
"데이터 프로세싱 장치"라는 용어는 데이터 프로세싱 하드웨어를 말하며, 예를 들어 프로그램 가능한 프로세서, 컴퓨터, 또는 다중 프로세서 또는 컴퓨터를 포함하여 데이터를 프로세싱하기 위한 모든 종류의 장치, 장치 및 기계를 포함한다. 장치는 또한 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)와 같은 특수 목적 논리 회로일 수 있거나 추가로 포함할 수 있다. 장치는, 하드웨어에 추가하여, 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제 또는 이들 중 하나 이상의 조합을 구성하는 코드를 선택적으로 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 모듈, 소프트웨어 모듈, 스크립트 또는 코드라고도 하거나 설명할 수 있는 컴퓨터 프로그램은 컴파일 또는 해석된 언어, 선언적 또는 절차적 언어를 포함한 모든 형태의 프로그래밍 언어로 작성할 수 있으며; 그리고 독립 실행형 프로그램 또는 모듈, 컴포넌트, 서브루틴 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 장치를 포함하여 모든 형태로 배포될 수 있다. 프로그램은 파일 시스템의 파일에 대응할 수 있지만 반드시 그런 것은 아니다. 프로그램은 다른 프로그램이나 데이터를 보유하는 파일의 일부에 저장될 수 있으며, 예를 들어, 마크업 언어 문서, 해당 프로그램 전용 단일 파일 또는 여러 조정 파일, 예를 들어, 하나 이상의 모듈, 서브 프로그램 또는 코드 부분을 저장하는 파일에 저장된 하나 이상의 스크립트일 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 한 사이트에 있거나 여러 사이트에 분산되어 있고 데이터 통신 네트워크로 상호 연결된 여러 컴퓨터에서 실행되도록 배포될 수 있다.
본 명세서에서 "데이터베이스"라는 용어는 모든 데이터 컬렉션을 지칭하는 데 광범위하게 사용되며; 데이터는 특정 방식으로 구조화되거나 전혀 구조화될 필요가 없으며; 이는 하나 이상의 위치에 있는 저장 장치에 저장될 수 있다. 따라서 예를 들어, 인덱스 데이터베이스는 각각 다르게 구성되고 액세스될 수 있는 여러 데이터 컬렉션을 포함할 수 있다.
유사하게, 본 명세서에서 용어 "엔진"은 하나 이상의 특정 기능을 수행하도록 프로그래밍된 소프트웨어 기반 시스템, 서브시스템 또는 프로세스를 지칭하기 위해 광범위하게 사용된다. 일반적으로 엔진은 하나 이상의 위치에 있는 하나 이상의 컴퓨터에 설치된 하나 이상의 소프트웨어 모듈 또는 컴포넌트로 구현된다. 일부 경우 하나 이상의 컴퓨터가 특정 엔진 전용이며; 다른 경우에는 여러 엔진이 동일한 컴퓨터에 설치되어 실행될 수 있다.
본 명세서에 설명된 프로세스 및 논리 흐름은 입력 데이터에 대해 작동하고 출력을 생성함으로써 기능을 수행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래밍 가능한 컴퓨터에 의해 수행될 수 있다. 프로세스 및 논리 흐름은 FPGA 또는 ASIC과 같은 특수 목적 논리 회로 또는 특수 목적 논리 회로와 하나 이상의 프로그래밍된 컴퓨터의 조합에 의해 수행될 수도 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터는 범용 또는 특수 목적 마이크로프로세서 또는 둘 다, 또는 다른 종류의 중앙 프로세싱 장치를 기반으로 할 수 있다. 일반적으로 중앙 프로세싱 장치는 읽기 전용 메모리나 랜덤 액세스 메모리 또는 둘 다에서 명령어와 데이터를 수신한다. 컴퓨터의 필수 요소는 명령어를 수행하거나 실행하기 위한 중앙 프로세싱 장치와 명령 및 데이터를 저장하기 위한 하나 이상의 메모리 장치이다. 중앙 프로세싱 장치와 메모리는 특수 목적 논리 회로에 의해 보완되거나 통합될 수 있다. 일반적으로, 컴퓨터는 또한 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치, 예를 들어 자기, 광자기 디스크, 또는 광 디스크로부터 데이터를 수신하거나 이들로 데이터를 전송하거나 둘 모두를 포함하거나 작동 가능하게 연결된다. 그러나 컴퓨터에는 그러한 장치가 필요하지 않는다. 또한, 컴퓨터는 휴대 전화, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플계층, 게임 콘솔, GPS(Global Positioning System) 수신기 또는 휴대용 저장 장치(예를 들어 USB(Universal Serial Bus) 플래시 드라이브)와 같은 다른 장치에 내장될 수 있다.
컴퓨터 프로그램 명령어 및 데이터를 저장하기에 적합한 컴퓨터 판독 가능 매체는 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함하며, 예를 들어 반도체 메모리 장치, 예를 들어 EPROM, EEPROM 및 플래시 메모리 장치를 포함하고; 자기 디스크, 예를 들어 내부 하드 디스크 또는 이동식 디스크를 포함하고; 자기 광 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함할 수 있다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에 기술된 주제의 실시예들은 사용자에게 정보를 표시하기 위한 디스플레이 장치, 예를 들어, CRT(음극선관) 또는 LCD(액정 디스플레이) 모니터 및 키보드 및 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 포인팅 장치를 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 장치도 사용자와의 상호 작용을 제공하는 데 사용할 수 있으며; 예를 들어, 사용자에게 제공되는 피드백은 시각적 피드백, 청각적 피드백 또는 촉각적 피드백과 같은 임의의 형태의 감각적 피드백일 수 있으며; 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함한 모든 형태로 수신될 수 있다. 또한 컴퓨터는 사용자가 사용하는 장치로 문서를 보내고 문서를 수신하여 사용자와 상호 작용할 수 있으며; 예를 들어 웹 브라우저에서 수신된 요청에 대한 응답으로 사용자 장치의 웹 브라우저에 웹 페이지를 전송한다. 또한, 컴퓨터는 문자 메시지 또는 다른 형태의 메시지를 개인 장치(예: 메시징 애플리케이션을 실행하는 스마트폰)에 보내고 사용자로부터 응답 메시지를 수신하여 사용자와 상호 작용할 수 있다.
기계 학습 모델을 구현하기 위한 데이터 프로세싱 장치는 또한 예를 들어 기계 학습 트레이닝 또는 프로덕션, 즉 추론, 워크로드의 공통 및 컴퓨팅 집약적 부분을 프로세싱하기 위한 특수 목적 하드웨어 가속기 유닛을 포함할 수 있다.
기계 학습 모델은 기계 학습 프레임워크, 예를 들어 텐서플로우(TensorFlow) 프레임워크, MCT(Microsoft Cognitive Toolkit) 프레임워크, AS(Apache Singa) 프레임워크 또는 AM(Apache MXNet) 프레임워크를 사용하여 구현 및 배포할 수 있다.
본 명세서에 기술된 주제의 실시예는 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 애플리케이션 서버와 같은 미들웨어 컴포넌트, 그래픽 사용자 인터페이스가 있는 클라이언트 컴퓨터, 웹 브라우저 또는 사용자가 본 명세서에 설명된 주제의 구현과 상호 작용할 수 있는 앱과 같은 프론트 엔드 컴포넌트, 또는 하나 이상의 백엔드 컴포넌트, 미들웨어 컴포넌트, 프론트 엔드 컴포넌트의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트는 통신 네트워크와 같은 디지털 데이터 통신의 모든 형태 또는 매체에 의해 상호 연결될 수 있다. 통신 네트워크의 예로는 LAN(Local Area Network) 및 WAN(Wide Area Network), 예를 들어 인터넷이 있다.
컴퓨팅 시스템은 클라이언트와 서버를 포함할 수 있다. 클라이언트와 서버는 일반적으로 서로 멀리 떨어져 있으며 일반적으로 통신 네트워크를 통해 상호 작용한다. 클라이언트와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램 덕분에 발생한다. 일부 실시예에서, 서버는 예를 들어 클라이언트로서 작용하는 장치와 상호작용하는 사용자로부터 데이터를 표시하고 사용자로부터 사용자 입력을 수신하기 위해 데이터, 예를 들어 HTML 페이지를 사용자 장치에 전송한다. 사용자 장치에서 생성된 데이터, 예를 들어 사용자 상호작용의 결과는 장치로부터 서버에서 수신될 수 있다.
본 명세서는 많은 특정 구현 세부사항을 포함하지만, 이들은 임의의 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안 되며 오히려 특정 발명의 특정 실시예에 특정할 수 있는 특징의 설명으로 해석되어야 한다. 별도의 실시예와 관련하여 본 명세서에 설명된 특정 특징은 단일 실시예에서 조합하여 구현될 수도 있다. 역으로, 단일 실시예의 컨텍스트에서 설명된 다양한 특징은 또한 개별적으로 또는 임의의 적절한 하위 조합으로 다중 실시예에서 구현될 수 있다. 더욱이, 특징들이 특정 조합으로 작용하는 것으로 위에서 설명될 수 있고 심지어 초기에 그러한 것으로 청구될 수 있지만, 청구된 조합의 하나 이상의 특징은 일부 경우에 조합에서 제거될 수 있으며 청구된 조합은 하위 조합 또는 하위 조합의 변형에 관한 것일 수 있다.
유사하게, 동작이 도면에 도시되어 있고 청구범위에 특정 순서로 인용되어 있지만, 이는 그러한 동작이 도시된 특정 순서로 또는 순차적인 순서로 수행되어야 하거나 또는 모든 예시된 동작이 원하는 결과를 얻을 수 있다. 특정 상황에서는 멀티태스킹 및 병렬 프로세싱가 유리할 수 있다. 더욱이, 상술한 실시예에서 다양한 시스템 모듈 및 컴포넌트의 분리는 모든 실시예에서 그러한 분리를 요구하는 것으로 이해되어서는 안되며, 설명된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품에 함께 통합되거나 여러 소프트웨어 제품에 패키징될 수 있음을 이해해야 한다.
주제(요지)의 특정 실시예가 설명되었다. 다른 실시예는 다음 청구항의 범위 내에 있다. 예를 들어, 청구범위에 언급된 동작는 다른 순서로 수행될 수 있으며 여전히 바람직한 결과를 얻을 수 있다. 일례로서, 첨부 도면에 도시된 프로세스는 바람직한 결과를 달성하기 위해 도시된 특정 순서 또는 순차적인 순서를 반드시 필요로 하지는 않는다. 경우에 따라 멀티태스킹 및 병렬 프로세싱가 유리할 수 있다.

Claims (24)

  1. 에이전트가 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법으로서,
    상기 환경의 현재 환경 상태를 특징짓는 현재 관측치를 수신하는 단계;
    복수의 플래닝 반복을 수행하여 각각의 값을 나타내는 플랜 데이터를 생성하고 상기 현재 환경 상태로부터 시작하여 상기 환경의 액션 세트로부터 복수의 액션들 각각을 수행하는 에이전트의 태스크를 수행하는 단계 -각 플래닝 반복을 수행하는 단계는
    상기 환경의 상태 트리를 트래버스(traversing)함으로써 상기 현재 환경 상태에서 시작하여 상기 에이전트가 수행할 액션 시퀀스를 선택하는 단계를 포함하고, 상기 환경의 상태 트리는 상기 환경의 환경 상태들을 나타내는 노드들과 상기 환경이 상태들을 전환하게 하는 상기 에이전트가 수행할 수 있는 액션들을 나타내는 에지들을 가지며, 상기 상태 트리를 트래버스하는 단계는,
    상기 상태 트리의 에지들에 대한 통계를 사용하여, 상기 현재 환경 상태를 나타내는 상태 트리의 루트 노드에서 시작하여 상기 상태 트리의 리프 노드에 도달할 때까지 상기 상태 트리를 트래버스하는 단계;
    입력으로서 은닉 상태를 수신하고 그리고 적어도 액션 세트에 대한 점수 분포를 정의하는 예측된 정책 출력을 출력으로서 생성하도록 구성된 예측 모델을 사용하여 상기 리프 노드에 의해 표현되는 환경 상태에 대응하는 은닉 상태를 프로세싱하는 단계;
    상기 액션 세트의 적절한 서브세트를 샘플링하는 단계;
    각각의 샘플링된 액션에 대해, 상기 샘플링된 액션을 나타내는 상기 리프 노드로부터의 각각의 아웃고잉 에지를 상기 상태 트리에 추가함으로써 상기 상태 트리를 업데이트하는 단계; 그리고
    각각의 샘플링된 액션에 대해, 상기 샘플링된 액션을 나타내는 각각의 아웃고잉 에지를 상기 예측된 정책 출력으로부터 도출되는 상기 샘플링된 액션에 대한 사전 확률과 연관시킴으로써 상기 통계를 업데이트하는 단계를 포함함-; 그리고
    상기 플랜 데이터를 사용하여 상기 현재 관측치에 응답하여 상기 에이전트가 수행할 액션을 선택하는 단계를 포함하는 것을 특징으로 하는, 에이전트가 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  2. 제1항에 있어서, 상기 액션 세트의 적절한 서브세트를 샘플링하는 단계는,
    상기 점수 분포로부터 샘플링 분포를 정의하는 데이터를 생성하는 단계; 그리고
    상기 샘플링 분포에서 고정된 수의 샘플들을 샘플링하는 단계를 포함하는 것을 특징으로 하는, 에이전트가 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  3. 제2항에 있어서, 샘플링 분포를 생성하는 단계는 온도 파라미터로 상기 점수 분포를 변조하는 단계를 포함하는 것을 특징으로 하는, 에이전트가 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  4. 제2항 또는 제3항에 있어서, 상기 리프 노드가 상기 루트 노드와 동일할 때, 상기 샘플링 분포를 생성하는 단계는 상기 점수 분포에 노이즈를 추가하는 단계를 포함하는 것을 특징으로 하는, 에이전트가 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  5. 제2항 내지 제4항 중 어느 한 항에 있어서, 상기 방법은,
    상기 점수 분포에서 상기 액션에 대한 점수에 보정 계수(correction factor)를 적용함으로써 상기 샘플링된 액션에 대한 각각의 사전 확률을 생성하는 단계를 더 포함하는 것을 특징으로 하는, 에이전트가 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  6. 제5항에 있어서, 상기 보정 계수는 (i) 상기 샘플링된 액션이 고정된 수의 샘플들에서 샘플링된 횟수 및 (ii) 상기 샘플링 분포에서 상기 샘플링된 액션에 할당된 점수에 기초하는 것을 특징으로 하는, 에이전트가 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  7. 제6항에 있어서, 상기 보정 계수는 (i) 상기 샘플링된 액션이 상기 고정된 수의 샘플들에 대해 샘플링된 횟수의 비율 및 (ii) 상기 샘플링 분포에서 상기 샘플링된 액션에 할당된 점수의 비율과 동일한 것을 특징으로 하는, 에이전트가 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서, 상기 플랜 데이터는 상기 복수의 플래닝 반복 동안 해당 액션이 선택된 횟수를 나타내는 상기 루트 노드로부터의 각각의 아웃고잉 에지에 대한 각각의 방문(visit) 카운트를 포함하고,
    상기 현재 관측치에 응답하여 상기 에이전트에 의해 수행될 액션을 선택하는 단계는 각각의 방문 카운트를 사용하여 액션을 선택하는 단계를 포함하는 것을 특징으로 하는, 에이전트가 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  9. 시스템으로서,
    하나 이상의 컴퓨터; 그리고
    상기 하나 이상의 컴퓨터에 의해 실행될 때 상기 하나 이상의 컴퓨터로 하여금 제1항 내지 제8항 중 어느 한 항의 각각의 방법의 동작을 수행하게 하는 명령어를 저장하는 하나 이상의 저장 장치를 포함하는 것을 특징으로 하는 시스템.
  10. 하나 이상의 컴퓨터 저장 매체로서,
    하나 이상의 컴퓨터에 의해 실행될 때 상기 하나 이상의 컴퓨터로 하여금 제1항 내지 제8항 중 어느 한 항의 각각의 방법의 동작을 수행하게 하는 명령어를 저장한 것을 특징으로 하는 하나 이상의 컴퓨터 저장 매체.
  11. 에이전트로 하여금 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법으로서,
    상기 환경의 현재 환경 상태를 특징짓는 현재 관측치를 수신하는 단계;
    복수의 플래닝 반복을 수행하여 각각의 값을 나타내는 플랜 데이터를 생성하고 상기 현재 환경 상태로부터 시작하여 상기 환경의 액션 세트의 각각을 수행하는 에이전트의 태스크를 수행하는 단계 -각 플래닝 반복을 수행하는 단계는 역학 모델 및 예측 모델에 의해 생성된 출력들을 기반으로 상기 현재 환경 상태에서 시작하여 상기 에이전트가 수행할 액션 시퀀스를 선택하는 단계,
    (i) 상기 역학 모델은 입력으로서 a) 입력 환경 상태에 대응하는 은닉 상태 그리고 b) 상기 액션 세트로부터의 입력 액션을 수신하고, 그리고 상기 환경이 상기 입력 환경 상태에 있을 때 상기 에이전트가 상기 입력 액션을 수행한 경우 상기 환경이 전환될 예측된 다음 환경 상태에 대응하는 은닉 상태를 적어도 출력으로서 생성하도록 구성되며, 그리고
    (ii) 상기 예측 모델은 상기 예측된 다음 환경 상태에 대응하는 상기 은닉 상태를 입력으로서 수신하고, 그리고 a) 상기 액션 세트에 대한 점수 분포를 정의하는 예측된 정책 출력 및 b) 태스크를 수행하기 위해 상기 예측된 다음 환경 상태에 있는 상기 환경의 값을 나타내는 값 출력을 출력으로서 생성하도록 구성되며; 그리고
    상기 생성된 플랜 데이터에 기초하여 상기 현재 관측치에 응답하여 상기 에이전트가 수행할 액션을 상기 액션 세트로부터 선택하는 단계를 포함하는 것을 특징으로 하는, 에이전트로 하여금 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  12. 제11항에 있어서, 상기 역학 모델은 또한 상기 환경이 상기 입력 환경 상태에 있을 때 상기 에이전트가 상기 입력 액션을 수행한 경우 받을 즉시 보상(immediate reward)을 나타내는 예측된 즉시 보상 값을 출력으로서 생성하고, 상기 즉시 보상 값은 상기 환경이 입력 환경 상태일 때 상기 입력 액션을 수행한 결과로 상기 태스크의 완료의 진행률(progress)을 나타내는 수치 값인 것을 특징으로 하는, 에이전트로 하여금 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  13. 제11항 또는 제12항에 있어서, 상기 액션 시퀀스를 선택하는 단계는,
    상기 현재 관측치를 포함하는 표현 입력을 수신하고 그리고 상기 환경의 상기 현재 상태에 대응하는 은닉 상태를 출력으로서 생성하도록 구성된 표현 모델에 의해 생성된 출력들에 기초하여 상기 액션 시퀀스를 선택하는 단계를 더 포함하는 것을 특징으로 하는, 에이전트로 하여금 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  14. 제13항에 있어서, 상기 표현 입력은 상기 환경이 상기 현재 상태 이전에 전환된 하나 이상의 이전 상태들을 특징짓는 하나 이상의 이전 관측치를 더 포함하는 것을 특징으로 하는, 에이전트로 하여금 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  15. 제13항 또는 제14항에 있어서, 상기 표현 모델, 상기 역학 모델, 및 상기 예측 모델은 궤적 데이터 세트로부터 샘플링된 궤적에 대해 E2E(end-to-end) 공동으로 훈련되는 것을 특징으로 하는, 에이전트로 하여금 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  16. 제15항에 있어서, 상기 표현 모델, 역학 모델 및 예측 모델은, 복수의 특정 관측치 각각에 대해,
    궤적에서 특정 관측치가 나타내는 상태를 따르는 하나 이상의 후속 상태들 각각에 대해:
    (i) 특정 관측치에 따라 생성된 후속 상태에 대한 예측된 정책 출력과 상기 관측치에 응답하여 액션을 선택하는 데 사용된 실제 정책 간의 정책 에러, 그리고
    (ii) 상기 특정 관측치에 따라 생성된 상기 후속 상태에 대해 예측된 값과 상기 후속 상태에서 시작하여 수신된 실제 리턴(actual return) 사이의 값 에러를 측정하는 오브젝티브(objective)에 대해 E2E(end-to-end) 공동으로 훈련되는 것을 특징으로 하는, 에이전트로 하여금 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  17. 제16항에 있어서, 제12항에도 종속되는 경우, 상기 오브젝티브는 상기 복수의 특정 관측치 각각에 대해,
    상기 궤적에서 특정 관측치가 나타내는 상태를 따르는 하나 이상의 후속 상태들 각각에 대해:
    상기 특정 관측치에 따라 생성된 후속 상태에 대한 예측 즉시 보상과 상기 후속 상태에 대응하는 실제 즉시 보상 간의 보상 에러를 더 측정하는 것을 특징으로 하는, 에이전트로 하여금 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  18. 제15항 내지 제17항 중 어느 한 항에 있어서, 상기 역학 모델 및 표현 모델은 상기 은닉 상태를 통해 상기 환경의 의미론을 모델링하도록 훈련되지 않는 것을 특징으로 하는, 에이전트로 하여금 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  19. 제15항 내지 제18항 중 어느 한 항에 있어서, 상기 후속 상태로부터 시작하는 실제 리턴은 부트스트랩된 n-스텝 리턴인 것을 특징으로 하는, 에이전트로 하여금 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  20. 제11항 내지 제18항 중 어느 한 항에 있어서, 상기 생성된 플랜 데이터에 기초하여 상기 현재 관측치에 응답하여 상기 에이전트에 의해 수행될 액션을 액션 세트로부터 선택하는 단계는 MDP(markov decision process) 플래닝 알고리즘을 사용하여 상기 액션을 선택하는 단계를 포함하는 것을 특징으로 하는, 에이전트로 하여금 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  21. 제20항에 있어서, 각 플래닝 반복에 대한 액션 시퀀스를 선택하고 그리고 상기 에이전트에 의해 수행될 액션을 선택하는 단계는 MCTS(monte carlo tree search) 알고리즘을 사용하여 수행되는 것을 특징으로 하는, 에이전트로 하여금 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  22. 제20항에 있어서, 상기 생성된 플랜 데이터에 기초하여 상기 현재 관측치에 응답하여 상기 에이전트에 의해 수행될 액션을 액션 세트로부터 선택하는 단계는,
    상기 플랜 데이터의 액션 시퀀스로부터, MAVO(maximum associated value output)를 갖는 액션 시퀀스를 결정하는 단계; 그리고
    상기 현재 관측치에 대한 응답으로 상기 에이전트가 수행할 액션으로, 상기 결정된 액션 시퀀스의 제1 액션을 선택하는 단계를 포함하는 것을 특징으로 하는, 에이전트로 하여금 태스크를 수행하게 하기 위해 환경과 상호작용하는 에이전트에 의해 수행될 액션들을 액션 세트로부터 선택하는 방법.
  23. 시스템으로서,
    하나 이상의 컴퓨터; 그리고
    상기 하나 이상의 컴퓨터에 의해 실행될 때 상기 하나 이상의 컴퓨터로 하여금 제11항 내지 제22항 중 어느 한 항의 각각의 방법의 동작을 수행하게 하는 명령어를 저장한 하나 이상의 저장 장치를 포함하는 것을 특징으로 하는 시스템.
  24. 하나 이상의 컴퓨터에 의해 실행될 때 상기 하나 이상의 컴퓨터로 하여금 제11항 내지 제22항 중 어느 한 항의 각각의 방법의 동작을 수행하게 하는 명령어를 저장한 하나 이상의 컴퓨터 저장 매체.
KR1020227028364A 2020-01-28 2021-01-28 학습된 은닉 상태를 사용한 에이전트 제어 플래닝 KR20220130177A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GR20200100037 2020-01-28
GR20200100037 2020-01-28
PCT/IB2021/050691 WO2021152515A1 (en) 2020-01-28 2021-01-28 Planning for agent control using learned hidden states

Publications (1)

Publication Number Publication Date
KR20220130177A true KR20220130177A (ko) 2022-09-26

Family

ID=74505312

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227028364A KR20220130177A (ko) 2020-01-28 2021-01-28 학습된 은닉 상태를 사용한 에이전트 제어 플래닝

Country Status (7)

Country Link
US (1) US20230073326A1 (ko)
EP (1) EP4097643A1 (ko)
JP (1) JP7419547B2 (ko)
KR (1) KR20220130177A (ko)
CN (1) CN115280322A (ko)
CA (1) CA3166388A1 (ko)
WO (1) WO2021152515A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11710276B1 (en) * 2020-09-21 2023-07-25 Apple Inc. Method and device for improved motion planning
WO2023057185A1 (en) 2021-10-06 2023-04-13 Deepmind Technologies Limited Coordination of multiple robots using graph neural networks
WO2023177790A1 (en) * 2022-03-17 2023-09-21 X Development Llc Planning for agent control using restart-augmented look-ahead search
US20230303123A1 (en) * 2022-03-22 2023-09-28 Qualcomm Incorporated Model hyperparameter adjustment using vehicle driving context classification
DE102022210934A1 (de) 2022-10-17 2024-04-18 Continental Autonomous Mobility Germany GmbH Planung einer Trajektorie

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE202016004628U1 (de) 2016-07-27 2016-09-23 Google Inc. Durchqueren einer Umgebungsstatusstruktur unter Verwendung neuronaler Netze
US11449750B2 (en) 2017-05-26 2022-09-20 Deepmind Technologies Limited Training action selection neural networks using look-ahead search
JP7093547B2 (ja) 2018-07-06 2022-06-30 国立研究開発法人産業技術総合研究所 制御プログラム、制御方法及びシステム

Also Published As

Publication number Publication date
CN115280322A (zh) 2022-11-01
EP4097643A1 (en) 2022-12-07
JP7419547B2 (ja) 2024-01-22
US20230073326A1 (en) 2023-03-09
WO2021152515A1 (en) 2021-08-05
CA3166388A1 (en) 2021-08-05
JP2023511630A (ja) 2023-03-20

Similar Documents

Publication Publication Date Title
US11948085B2 (en) Distributional reinforcement learning for continuous control tasks
US11625604B2 (en) Reinforcement learning using distributed prioritized replay
US20210201156A1 (en) Sample-efficient reinforcement learning
KR20220130177A (ko) 학습된 은닉 상태를 사용한 에이전트 제어 플래닝
US11627165B2 (en) Multi-agent reinforcement learning with matchmaking policies
US20240160901A1 (en) Controlling agents using amortized q learning
KR20210011422A (ko) 모델 없는 강화 학습을 위한 스택형 컨볼루션 장단기 메모리
US20230083486A1 (en) Learning environment representations for agent control using predictions of bootstrapped latents
US11604941B1 (en) Training action-selection neural networks from demonstrations using multiple losses
US20220076099A1 (en) Controlling agents using latent plans
EP3698284A1 (en) Training an unsupervised memory-based prediction system to learn compressed representations of an environment
US12008077B1 (en) Training action-selection neural networks from demonstrations using multiple losses
US20230093451A1 (en) State-dependent action space quantization
US20240126812A1 (en) Fast exploration and learning of latent graph models
US20240185083A1 (en) Learning diverse skills for tasks using sequential latent variables for environment dynamics
KR20230153481A (ko) 판별기 모델의 앙상블을 사용한 강화 학습
WO2023237636A1 (en) Reinforcement learning to explore environments using meta policies
WO2023222772A1 (en) Exploration by bootstepped prediction