KR20180137562A - 심층 신경망 기반의 큐-러닝을 위한 경험 기억을 프루닝하는 방법 및 장치 - Google Patents

심층 신경망 기반의 큐-러닝을 위한 경험 기억을 프루닝하는 방법 및 장치 Download PDF

Info

Publication number
KR20180137562A
KR20180137562A KR1020187034384A KR20187034384A KR20180137562A KR 20180137562 A KR20180137562 A KR 20180137562A KR 1020187034384 A KR1020187034384 A KR 1020187034384A KR 20187034384 A KR20187034384 A KR 20187034384A KR 20180137562 A KR20180137562 A KR 20180137562A
Authority
KR
South Korea
Prior art keywords
experience
experiences
robot
memory
pruned
Prior art date
Application number
KR1020187034384A
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 KR20180137562A publication Critical patent/KR20180137562A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B13/00Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion
    • G05B13/02Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric
    • G05B13/0265Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion
    • G05B13/027Adaptive control systems, i.e. systems automatically adjusting themselves to have a performance which is optimum according to some preassigned criterion electric the criterion being a learning criterion using neural networks only
    • 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/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • 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/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Fuzzy Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Manipulator (AREA)
  • Image Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 기술은 에이전트에 의해 새로운 경험을 수집하는 단계, 새로운 경험을 에이전트의 메모리에 저장된 경험과 비교하는 단계, 및 새로운 경험을 폐기하거나, 또는 비교에 기초하여 새로운 경험으로 메모리의 경험을 오버라이팅(overwriting)하는 단계를 포함한다. 예를 들면, 에이전트 또는 관련된 프로세서는 새로운 경험이 저장된 경험과 얼마나 유사한지 판단할 수 있다. 새로운 경험이 너무 유사하면, 에이전트는 그것을 폐기한다; 그렇지 않으면, 에이전트는 그것을 메모리에 저장하고, 대신에 이전에 저장된 경험을 폐기한다. 이전에 저장된 경험에 대한 경험의 유사성에 기초하여, 경험을 수집하고 선택적으로 저장하는 것은 기술적인 문제를 해결하고, 다수의 기술적 개선을 가져온다. 예를 들면, 메모리 크기 제약을 완화하고, 신경망에 의한 파국적인 망각 기회를 감소시키거나 제거하며, 신경망의 성능을 개선시킨다.

Description

심층 신경망 기반의 큐-러닝을 위한 경험 기억을 프루닝하는 방법 및 장치
본 명세서는 35 U.S.C. §119(e) 하에서, 2016년 4월 27일자로 출원된, "심층 신경망 기반의 Q-러닝을 위한 경험 기억을 프루닝하는 방법 및 장치(Methods and Apparatus for Pruning Experience Memories for Deep Neural Network-Based Q-Learning)"의 명칭을 갖는 U.S. 출원 제62/328,344호의 우선권 이익을 주장한다. 본 출원은 본 명세서에 그 전체가 참조로서 포함된다.
강화 학습에서, 에이전트는 환경과 상호 작용한다. 환경과의 상호 작용 과정 동안, 에이전트는 경험을 수집한다. 에이전트와 관련된 신경망은 이러한 경험들을 사용하여 행동 방침을 학습할 수 있다. 즉, 에이전트와 관련되고, 에이전트를 제어하는 신경망은 에이전트가 환경에서 어떻게 행동해야 하는지를 학습하기 위해 에이전트의 경험의 집합을 사용할 수 있다.
과거 경험으로부터 학습할 수 있기 위해서는, 에이전트는 수집된 경험을 국부적으로, 또는 네트워크를 통해 연결된 메모리에 저장한다. 에이전트와 관련된 신경망을 훈련하기 위해 모든 경험을 저장하는 것은 이론적으로 유용할 수 있다. 그러나, 하드웨어의 제약은 경험의 수가 증가함에 따라 모든 경험을 저장하는 것을 비실용적으로 또는 심지어는 불가능하게 만들 수도 있다.
에이전트의 메모리에 저장된 경험을 프루닝하는 것은 경험을 수집하고 저장하는 것에 대한 제약을 완화할 수 있다. 그러나, 선입 선출(first-in first-out) 방식으로 오래된 경험을 제거하는 것과 같은 순진한 프루닝은 "파국적인 망각(catastrophic forgetting)"을 초래할 수 있다. 파국적인 망각은 새로운 학습이 이전 학습을 취소시킬 수 있고, 역전파(backpropagation) 기반 학습의 분산된 본질에 의해 야기된다는 것을 의미한다. 파국적인 망각으로 인해, 신경망이 그러한 경험들에 의해 표현된 상황에 어떻게 대응할 것인지를 "망각(forgetting)"하지 않도록 경험의 지속적인 재훈련이 필요하다. 다시 말하면, 선입 선출 방식으로 경험을 제거함으로써, 가장 최근의 경험은 신경망에서 더 잘 표현될 것이며, 오래된 경험은 잊혀져서, 신경망이 오래된 경험에 의해 표현된 상황에 응답하기 더욱 어렵도록 만들 것이다. 파국적인 망각은 단순히 새로운 것을 포함한 완전한 경험의 세트를 다시 학습함으로써 회피될 수 있으나, 에이전트의 경험의 전체 히스토리를 다시 학습하는 것은 너무 오래 걸리므로 실용적이지 못하며, 특히, 빠른 속도로 증가하는 대규모 경험의 세트에 대해서는 더욱 그렇다.
본 기술의 실시예는 로봇의 동작을 생성하는 방법을 포함한다. 예시적인 컴퓨터-구현되는 방법은 로봇의 제1 경험을 수집하는 단계를 포함한다. 제1 경험은 제1 시간에서의 로봇의 제1 상태, 제1 시간에서의 로봇에 의해 취해진 제1 동작, 제1 동작에 응답하여 로봇에 의해 수신된 제1 보상, 및 제1 시간 이후의 제2 시간에서의 제1 동작에 응답하는 로봇의 제2 상태를 나타낸다. 제1 경험과 복수의 경험들 간의 유사도가 판단될 수 있다. 복수의 경험들은 로봇의 메모리에 저장될 수 있다. 방법은 또한, 메모리에 저장된 프루닝된 복수의 경험들을 형성하기 위해 제1 경험과 복수의 경험들 간의 유사도에 기초하여 메모리의 복수의 경험들을 프루닝하는 단계를 포함한다. 로봇과 관련된 신경망은 프루닝된 복수의 경험들로 훈련될 수 있으며, 로봇의 제2 동작은 신경망을 사용하여 생성될 수 있다.
일부 경우에, 프루닝하는 단계는 복수의 경험들에서의 각각의 경험에 대한 제1 경험에서의 거리를 계산하는 단계를 더 포함한다. 복수의 경험들에서의 각각의 경험에 대하여, 복수의 경험들에서의 서로 다른 경험에서의 그 경험의 다른 거리에 대해 상기 거리가 비교될 수 있다. 제2 경험은 상기 비교에 기초하여 메모리로부터 제거될 수 있다. 제2 경험은 제1 경험 및 복수의 경험들에서의 경험 중 적어도 하나일 수 있다. 제2 경험은 제1 경험 및 복수의 경험들에서의 각각의 경험으로부터 제2 경험의 거리가 사용자 정의된 임계치보다 작을 확률에 기초하여 메모리로부터 제거될 수 있다.
일부 경우에, 프루닝하는 단계는 제1 경험 및 복수의 경험들에서의 각각의 경험을 랭킹하는 단계를 더 포함할 수 있다. 제1 경험 및 복수의 경험들에서의 각각의 경험을 랭킹하는 단계는 시냅스 가중치에 적어도 부분적으로 기초하여 복수의 클러스터들을 생성하는 단계와, 제1 경험이 복수의 클러스터들 중 하나에 맞는 것으로 판단하는 경우, 제1 경험을 자동적으로 폐기하는 단계를 포함할 수 있다. 제1 경험 및 복수의 경험들에서의 각각의 경험은 인코딩될 수 있다. 인코딩된 경험은 복수의 클러스터들과 비교될 수 있다.
일부 경우에, 신경망은 프루닝된 복수의 경험들에 적어도 부분적으로 기초하여 제1 입력 상태에서 출력을 생성한다. 프루닝된 복수의 경험들은 로봇의 다양한 상태들의 세트를 포함할 수 있다. 일부 경우에, 로봇의 제2 동작을 생성하는 단계는 로봇이 제1 상태에 있는 것을 판단하는 단계 및 제2 동작이 제1 동작과 상이한 것으로 선택하는 단계를 포함할 수 있다.
방법은 또한, 로봇의 제2 경험을 수집하는 단계를 포함할 수 있다. 제2 경험은 로봇의 제2 상태, 제2 상태에 응답하여 로봇에 의해 취해진 제2 동작, 제2 동작에 응답하여 로봇에 의해 수신된 제2 보상, 및 제2 동작에 응답하는 로봇의 제3 상태를 나타낸다. 제2 경험과 프루닝된 복수의 경험들 간의 유사도는 판단될 수 있다. 방법은 또한, 제2 경험과 프루닝된 복수의 경험들 간의 유사도에 기초하여 메모리의 프루닝된 복수의 경험들을 프루닝하는 단계를 포함할 수 있다.
로봇의 제2 동작을 생성하는 예시적인 시스템은 로봇의 제1 경험을 수집하기 위한 인터페이스를 포함한다. 제1 경험은 제1 시간에서의 로봇의 제1 상태, 제1 시간에서의 로봇에 의해 취해진 제1 동작, 제1 동작에 응답하여 로봇에 의해 수신된 제1 보상, 및 제1 시간 이후의 제2 시간에서의 제1 동작에 응답하는 로봇의 제2 상태를 나타낸다. 시스템은 또한, 복수의 경험들 및 로봇에 대해 프루닝된 복수의 경험들 중 적어도 하나를 저장하는 메모리를 포함한다. 시스템은 또한, 인터페이스 및 메모리와 디지털 통신하는 프로세서를 포함한다. 프로세서는 제1 경험과 메모리에 저장된 복수의 경험들 간의 유사도를 판단할 수 있다. 프로세서는 프루닝된 복수의 경험들을 형성하기 위하여 제1 경험과 복수의 경험들 간의 유사도에 기초하여 메모리의 복수의 경험들을 프루닝할 수 있다. 프루닝된 복수의 경험들을 저장하는 메모리는 프로세서에 의해 업데이트될 수 있다. 프로세서는 프루닝된 복수의 경험들로 로봇과 관련된 신경망을 훈련시킬 수 있다. 프로세서는 신경망을 사용하여 로봇의 제2 동작을 생성할 수 있다.
일부 경우에, 시스템은 프로세서 및 로봇과 디지털 통신하여 제2 동작을 로봇에 전송하는 클라우드 브레인(cloud brain)을 떠 포함할 수 있다.
일부 경우에, 프로세서는 복수의 경험들에서의 각각의 경험에 대해 제1 경험에서의 거리를 계산하도록 구성된다. 프로세서는 복수의 경험들에서의 각각의 경험에 대해 복수의 경험들에서의 서로 다른 경험에서의 그 경험의 다른 거리와 상기 거리를 비교할 수 있다. 제2 경험은 상기 비교에 기초하여 프로세서를 통해 메모리로부터 제거될 수 있다. 제2 경험은 제1 경험 및 복수의 경험들에서의 경험 중 적어도 하나일 수 있다. 프로세서는 제1 경험에서의 제2 경험의 거리의 확률 결정에 기초하여 메모리로부터 제2 경험을 제거하도록 구성될 수 있으며, 복수의 경험들에서의 각각의 경험은 사용자 정의된 임계치보다 작다.
프로세서는 또한, 제1 경험 및 복수의 경험들에서의 각각의 경험을 랭킹하는 것에 기초하여 메모리를 프루닝하도록 구성될 수 있다. 프로세서는 시냅스 가중치에 적어도 부분적으로 기초하여 복수의 클러스터들을 생성하고, 복수의 클러스터들에 기초하여 제1 경험 및 복수의 경험들을 랭킹할 수 있으며, 제1 경험이 복수의 클러스터들 중 하나에 맞는다고 판단하는 경우 제1 경험을 자동적으로 폐기할 수 있다. 프로세서는 복수의 경험들에서의 각각의 경험을 인코딩하고, 제1 경험을 인코딩하며, 그리고 인코딩된 경험을 복수의 클러스터들과 비교할 수 있다. 일부 경우에, 신경망은 프루닝된 복수의 경험들에 적어도 부분적으로 기초하여 제1 입력 상태에서 출력을 생성할 수 있다.
메모리를 업데이트하는 예시적인 컴퓨터-구현되는 방법은 컴퓨터-기반 애플리케이션으로부터의 새로운 경험을 수신하는 단계를 포함한다. 메모리는 컴퓨터-기반 애플리케이션으로부터 수신된 복수의 경험들을 저장한다. 방법은 또한, 새로운 경험과 복수의 경험들 간의 유사도를 판단하는 단계를 포함한다. 새로운 경험은 상기 유사도에 기초하여 추가될 수 있다. 새로운 경험 및 복수의 경험들에서의 경험 중 적어도 하나는 유사도에 기초하여 제거될 수 있다. 방법은 복수의 경험들의 업데이트된 버전을 컴퓨터-기반 애플리케이션에 전송하는 단계를 포함한다.
본 기술의 실시예는 그들의 학습을 향상시키기 위해 경험 재생을 사용하는 심층 강화 학습 시스템에서 샘플 큐(queue)를 개선시키는 방법을 포함한다. 보다 구체적으로, 본 기술은 신경망, 심층 네트워크를 효율적이고 효과적으로 훈련시키는 것과, 일반적으로 자율 차량, 드론, 또는 다른 로봇을 실시간으로 제어하는 방정식의 병렬 분산 시스템에서 학습을 최적화하는 것을 포함한다.
다른 기술과 비교하여, 본 기술은 이러한 시스템에서의 보강 학습에서 수렴을 촉진하고 개선시킬 수 있으며, 즉, 경험 큐의 크기가 감소함에 따라 더욱 그렇다. 보다 구체적으로, 본 기술은 소위 "경험 재생(experience replay)" 동안 시스템에 재생할 데이터 샘플을 보다 잘 선택하기 위해 신경망 및 심층 네트워크 시스템에서의 경험 재생을 위한 큐의 샘플링을 포함한다. 본 기술은 자기-주행 차량, 드론, 지상 로봇, 및 수중 로봇, 또는 온라인 및 실시간 보강 학습을 제어하는 임의의 자원-제한 장치에서, 이동, 모터 및 조향 명령을 제어하는 신경망 시스템에 유용하지만, 이에 제한되지는 않는다.
전술한 개념들과 이하에서 더욱 상세하게 논의되는 추가적인 개념들은 (이러한 개념들이 서로 모순되지 않는 한) 본 명세서에서 개시된 발명 주제의 부분으로 고려된다. 특히, 본 개시의 끝 부분에 나타낸 청구된 주제의 모든 조합은 본 명세서에서 개시된 발명의 주제의 부분으로 고려된다. 참조로서 포함된 임의의 개시에 나타날 수도 있는 본 명세서에서 명시적으로 사용된 용어는 본 명세서에서 개시된 특정 개념과 가장 일치하는 의미가 부여되어야 한다.
통상의 기술자는 도면이 주로 예시적인 목적을 위한 것이며, 본 명세서에 개시된 발명의 주제의 범위를 제한하려는 의도가 아니라는 것을 이해할 것이다. 도면은 반드시 스케일이 맞지는 않는다; 일부 경우에, 상이한 특징의 이해를 용이하게 하기 위해 본 명세서에 개시된 발명의 주제의 다양한 양상이 과장되거나 확대되어 도시될 수 있다. 도면에서, 유사한 참조 기호는 일반적으로 유사한 특징(예를 들면, 기능적으로 유사하고 및/또는 구조적으로 유사한 요소)을 지칭한다.
도 1은 에이전트에 대한 경험을 형성하는 동작, 상태, 응답 및 보상을 나타내는 흐름도이다.
도 2는 피드포워드(feedforward) 모드에서 동작하는, 예를 들면, 에이전트의 욕심 많은(greedy) 행동 방침을 위해 사용되는 신경망을 나타내는 흐름도이다.
도 3은 새로운 경험이 추가되고, 경험의 샘플이 신경망을 훈련시키는 것으로 도시되는 경험 재생 메모리를 나타내는 흐름도이다.
도 4는 메모리에 경험을 저장하는 3개의 비유사성-기반 프루닝 프로세스를 나타내는 흐름도이다.
도 5는 에이전트에 대한 메모리에 경험을 저장하는 예시적인 매치-기반 프루닝 프로세스를 나타낸다.
도 6은 도 5에서 프루닝 프로세스의 대안적인 표현을 나타내는 흐름도이다.
도 7은 프루닝된 경험 큐를 저장하는 메모리로부터 심층 보강 학습 및 경험 재생을 사용하는 시스템의 시스템도이다.
도 8은 카메라, 라이다(LIDAR) 및/또는 다른 데이터 소스로 경험을 획득하고, 메모리에 저장된 경험을 큐레이팅(curate)하기 위해 프루닝과, 자기-주행 성능을 개선하기 위해 프루닝된 경험의 경험 재생 및 심층 보강 학습을 사용하는 자기-주행 차량을 나타낸다.
심층 강화 학습(Deep Reinforcement Learning (RL))에서, 에이전트에 의해 수집된 경험은 예측된 미래의 보상을 증가시키거나 최대화하기 위해 에이전트가 동작할 수 있도록 신경망을 훈련시켜 동작 또는 잠재적 동작의 값을 생성하기 위해, 에이전트와 관련된 신경망에 제공될 수 있다. 메모리의 크기 제한으로 인해, 에이전트에 의해 수집된 모든 경험들을 메모리에 저장하는 것은 실용적이지 않거나, 불가능할 수 있기 때문에, 보강 학습 시스템은 스토리지 감소를 위한 기술을 구현한다. 스토리지 감소를 구현하기 위한 하나의 접근은 메모리로부터 경험을 선택적으로 제거하는 것이다. 그러나, 단순히 선입 선출 방식으로 오래된 경험을 제거함으로써 훈련된 신경망은 문제를 망각하게 된다. 즉, 학습에 기여할 수 있는 오래된 경험은 메모리에서 제거되기 때문에 망각된다. 단순히 오래된 경험을 제거하는 것의 또 다른 단점은 상호 연관성이 높고 중복되는 경험을 다루지 않는다는 것이다. 상호 연관성이 높고 유사한 경험의 세트로 신경망을 훈련시키는 것은 비효율적일 수 있으며, 학습 과정을 지연시킬 수 있다.
본 기술은 들어오는 경험과 메모리에 이미 저장된 경험 간의 유사도를 판단함으로써 메모리의 경험을 선택적으로 대체하는 방법을 제공한다. 그 결과, 학습에 기여할 수 있는 오래된 경험은 망각되지 않고, 상호 연관성이 높은 경험은 메모리에서 서로 다른/보다 다양한 경험을 위한 공간을 만들기 위해 제거될 수 있다.
본 기술은 자기-주행 차량, 드론, 지상 로봇, 및 수중 로봇에서 이동, 모터, 및 조향 명령을 제어하는 신경망 시스템에 유용하지만, 이에 제한되지는 않는다. 예를 들면, 자기-주행 차량의 경우, 경로를 따라 마주치는 장애물에 대한 속도 및 조향각을 특징짓는 경험이 동적으로 수집될 수 있다. 이러한 경험들은 메모리에 저장될 수 있다. 새로운 경험이 수집되면, 프로세서는 새로운 경험과 이전에 저장된 경험 간의 유사도를 판단한다. 예를 들면, 메모리에 저장된 경험이 장애물 A에 대한 속도 및 조향각을 포함하고, 새로운 경험이 장애물 A와는 아주 다른 장애물 B에 대한 속도 및 조향각을 특징짓는 경우, 프로세서는 메모리로부터 유사한 경험(예를 들면, 장애물 A와 관련된 경험 중 하나)을 프루닝(제거)하며, 장애물 B와 관련된 새로운 경험에 삽입한다. 자기-주행 차량에 대한 신경망은 장애물 B에 관한 새로운 경험을 포함하는 프루닝된 메모리의 경험에 기초하여 훈련된다.
메모리가 경험 유사성에 기초하여 프루닝되기 때문에, 네트워크 연결을 통해 에이전트에 연결되고 멀리 위치하는 대신, "가장자리 상에서(on the edge)" -예를 들면, 자기-주행 차량, 드론, 또는 로봇일 수 있는 에이전트 상에서- 있을 정도로 충분히 작을 수 있다. 그리고 메모리가 가장자리 상에 있기 때문에, 가장자리 상의 에이전트를 훈련시키는데 사용될 수 있다. 이는 네트워크 연결에 대한 필요성을 감소시키거나 제거하며, 경험 수집 및 신경망 훈련 모두의 신뢰성과 강건성을 향상시킨다. 이러한 메모리들은 원하는 대로(예를 들면, 업스트림(upstream) 밴드폭이 이용 가능할 때, 주기적으로 등) 수집되어, 서버에서 합쳐질 수 있다. 합쳐진 데이터는 가장자리에서의 더 나은 성능을 위해 기존의 및/또는 새로운 에이전트에 샘플링되고 분배될 수 있다.
본 기술은 또한, 비디오 게임 및 다른 시뮬레이션된 환경에 유용할 수 있다. 예를 들면, 비디오 게임에서의 에이전트 행동은 유사도에 기초하여 메모리를 선택적으로 프루닝하면서 게임의 에이전트에 대한 경험을 수집하고 저장함으로써 개발될 수 있다. 이러한 환경에서, 비전에서의 학습은 고차원 이미지를 포함하는 경험을 포함하여, 현재 기술을 사용하여 많은 양의 스토리지 공간을 절약할 수 있다.
메모리에 경험의 샘플을 최적으로 저장하는 것은 강화 학습에서의 수렴을 개선하고 촉진시킬 수 있으며, 특히, "가장자리에서" 자원-제한 장치에 대해 학습한다. 따라서, 본 기술은 적은 메모리를 사용하기 위한 기술을 구현하면서 더 빠른 학습을 위한 진보된 방법을 제공한다. 따라서, 주어진 학습 성과 목표를 달성하기 위해 본 기술을 사용하여 더 작은 메모리 크기가 사용될 수 있다.
경험 수집 및 강화 학습
도 1은 에이전트에 대한 경험(100)을 형성하는 동작, 상태, 응답 및 보상을 나타내는 흐름도이다. 102에서, 에이전트는 (제1) 시간 t-1에서의 (제1) 상태 st-1을 관찰한다. 에이전트는 이미지 센서, 마이크로폰, 안테나, 가속기, 자이로스코프, 또는 임의의 다른 적합한 센서로 이러한 상태를 관찰할 수 있다. 시계, 인코더, 액추에이터, 또는 네비게이션 유닛(예를 들면, 관성 측정 유닛)의 설정이 판독될 수 있다. 제1 상태를 나타내는 데이터는 그림, 소리, 또는 시간과 같은 에이전트의 환경에 대한 정보를 포함할 수 있다. 또한, 속도, 방향, 내부 상태(예를 들면, 배터리 수명) 또는 위치를 포함한, 에이전트에 대한 정보를 포함할 수 있다.
상태 st-1 동안, 에이전트는 (예를 들면, 104에서) 동작 at-1을 취한다. 이러한 동작은 휠, 로터, 날개 플랩, 또는 에이전트의 속도, 방향, 방위, 또는 위치를 제어하는 다른 구성 요소를 작동시키는 것을 포함할 수 있다. 동작은 특정 구성 요소를 수면 모드로 하여 배터리 수명을 절약하는 것과 같이, 에이전트의 내부 설정을 변경하는 것을 포함할 수 있다. 동작은, 예를 들면, 에이전트가 개체들 중 하나와 충돌할 위험에 처해지는 경우, 환경 내의 개체 및/또는 에이전트의 환경에 영향을 줄 수 있다. 또는, 사진을 촬영하여 서버에 전송하는 것과 같이, 데이터를 획득하거나 전송하는 것을 포함할 수 있다.
106에서, 에이전트는 동작 at-1에 대한 보상 rt-1을 수신한다. 보상은 장애물을 피하거나, 전력을 보존하거나, 또는 데이터를 획득하는 것과 같은 원하는 결과에 근거할 수 있다. 동작이 원하는 결과를 내는 경우(예를 들면, 장애물을 피하는 것), 보상은 높다; 그렇지 않으면, 보상은 낮을 수 있다. 보상은 2진수이거나 값의 범위에 속하거나 그 안에 있을 수 있다.
108에서, 동작 at-1에 응답하여, 에이전트는 다음 (제2) 상태 st를 관찰한다. 이러한 상태 st는 다음 (제2) 시간 t에서 관찰된다. 상태 st-1, 동작 at-1, 보상 rt-1, 및 다음 상태 st는 집합적으로 시간 t에서 경험 et(100)를 생성한다. 각 시간 단계 t에서, 에이전트는 상태 st-1을 관찰하고, 동작 at-1을 취하며, 보상 rt-1을 얻고, 그리고 결과 상태 st를 관찰한다. 관찰된 상태 st-1, 동작 at-1, 보상 rt-1 및 관찰된 결과 상태 st는 도 1에 나타낸 바와 같이 경험(100)을 집합적으로 형성한다.
보강 학습(Reinforcement Learning, RL)에서, 에이전트는 환경과 상호 작용할 때 경험을 수집하고, 가능한 많은 보상을 얻도록 동작하는 방법을 학습하려고 시도한다. 에이전트의 목표는 행동 방침 π= P(a|s)를 학습하기 위해 모든 경험들을 사용하고, 이는 동작을 선택하기 위해 사용되며, 이를 따를 때, 에이전트가 이러한 모든 방침들 중에서 예상되는 최대 누적 보상을 수집하도록 할 수 있을 것이다. 가치-기반 RL에서, 최적(바람직한) 행동 방침은 동작-값 함수와 같은, 최적값 함수에 대응되고, 일반적으로 Q로 표시되며,
Figure pct00001
(1)
여기서, γ는 동작-값 함수 상의 일시적으로 먼 결과의 영향을 제어하는 할인 인자이다. Q*(s,a)는 모든 상태의 동작의 쌍에 값을 할당한다. Q*가 알려지면, 관련된 최적 행동 방침을 따르기 위해, 에이전트는 각각의 현재 관찰 s에 대한 가장 높은 값으로 동작을 취해야만 한다.
심층 신경망(Deep Neural Networks, DNNs)은 비디오의 로우 픽셀과 같은, 고차원 상태 입력으로 에이전트를 보강 학습 에이전트의 최적 동작-값 함수(Q* 함수)를 근사하는데 사용될 수 있다. 이러한 경우, 동작-값 함수 Q(s,a;θ)
Figure pct00002
Q*(s,a)는 (가중치와 같은) 네트워크 파라미터 θ에 의해 파라미터화된다.
도 2는 피드 포워드 모드에서의 행동 방침 π로 동작하는 신경망(200)을 나타내는 흐름도이다. 입력 상태(202)가 주어지면, 신경망(200)은 잠재적 동작과 관련된 Q-값의 세트를 통해 동작 값(204)의 벡터(예를 들면, 자기-주행 차량의 제동 및 조향값)를 출력한다. 이러한 벡터는 시뮬레이션되거나 이전에 획득된 경험을 나타내는 데이터로 신경망을 훈련시킴으로써 설정되거나 결정되는 신경망 가중치를 사용하여 계산된다. Q-값은 표준 방법(예를 들면, 파라미터화 된 softmax)을 통해 확률로 변환될 수 있으며, 이어서 동작(204)으로 변환될 수 있다. 피드포워드 모드는 에이전트가 잠재적 동작에 대한 Q-값을 얻는 방법 및 가장 가치 있는 동작을 선택하는 방법이다.
네트워크는 역전파를 통해 에이전트의 경험을 트레이닝 샘플(x, y)로 변환함으로써 최적의 동작-값 함수를 학습(근사)하도록 훈련되며, 여기서 x는 네트워크 입력이고 y는 네트워크 대상이다. 네트워크 입력은 x=φ(s)이고, 여기서 φ는 관측값을 전처리하여 네트워크에 보다 적합하게 하는 일부 함수이다. 최적의 동작-값 함수를 향해 진행하기 위해, 대상 y는 일관성을 유지하도록 설정되며,
Figure pct00003
(2)
이 다음으로, 기본적인 경우에 대상은 다음과 같이 설정될 수 있다.
Figure pct00004
(3)
식 3은 가장 가치 있는 동작(및 그 값)을 찾는데 사용되는 파라미터 θ-를 갖는 두번째 대상 네트워크를 도입함으로써 개선될 수 있으나, 반드시 점진적으로 업데이트되지는 않는다. 대신, 또 다른 네트워크("온라인" 네트워크)는 파라미터를 업데이트한다. 온라인 네트워크 파라미터 θ는 모든 τ 시간 단계마다 대상 네트워크 파라미터 θ-를 대체한다. 식 3은 다음에 의해 대체되며,
Figure pct00005
(4)
이는, 전체가 본 명세서에서 참조로서 포함된, "Human-level control through deep reinforcement learning," Nature, 518(7540): 529-533, 2015의 심층 Q-네트워크(Deep Q-Network(DQN)) 알고리즘에서 사용되는 대상을 산출한다.
Double DQN이라고 불리는 DQN의 개선된 버전은 선택 및 평가를 분리하며, 다음과 같다:
Figure pct00006
(5)
분리된 선택 및 평가는 최대 운영자가 동일한 값을 사용하여 동작을 선택하고 평가할 기회를 감소시켜, 값의 편향된 과대 평가를 유발할 수 있다. 실제로는 표준 DQN과 비교하여, 가속화된 수렴 속도와 더 나은 최종 방침을 이끌어낸다.
경험 재생
모델 바이어스를 낮추기 위해, 역-전파-훈련된 신경망은 i.i.d. 방식으로 트레이닝 샘플을 그려야 한다. 종래의 접근법에서, 샘플은 에이전트가 환경과 상호 작용할 때 수집되어, 샘플이 도착한 순서대로 훈련되면 고도로 편향된다. 두번째 문제는 역전파-훈련된 망의 공지된 망각 문제로 인해, 더 최근의 경험이 보다 잘 표현되는 반면, 오래된 경험은 잊혀져서, 신경망이 이러한 방식으로 훈련되면, 진정한 수렴을 방해한다.
이러한 문제를 완화시키기 위해, 경험 재생(experience replay)이라는 기술이 사용된다. 도 3은 신경망을 훈련시키기 위한 경험 재생 프로세스(300)를 나타내는 흐름도이다. 단계 302에 나타낸 바와 같이, 각각의 시간 단계에서, 도 1의 경험(100)과 같은 경험(experience) = (xt-1,at-1,rt-1,xt)은 Dt={et-N, et-N+1, ... , et}로 나타낸 경험 메모리(304)에 저장된다. 따라서, 경험 메모리(304)는 이전에 수집된 경험의 집합을 포함한다. 306에서, 트레이닝 샘플의 세트 SDt(예를 들면, 세트(308))는 경험 메모리(304)로부터 얻어진다. 즉, 신경망이 업데이트될 때, 트레이닝 샘플(308)의 세트가 304로부터의 경험의 미니배치(minibatch)로서 얻어진다. 미니배치의 각 경험은 트레이닝 데이터의 감소된 상관관계가 존재하는 방식(예를 들면, 균일하게)으로, 메모리(304)로부터 얻어질 수 있으며, 잠재적으로 학습을 촉진할 수 있으나, 경험 메모리 Dt 자체의 크기와 내용(바이어스)을 다루지는 않는다. 310에서, 트레이닝 샘플(308)의 세트는 신경망을 훈련시키는데 사용된다. 메모리로부터 경험과 잘 조화된 네트워크를 훈련시키는 것은 시간적 상관관계를 감소시킬 수 있어, 네트워크가 훨씬 더 안정된 방식으로 학습할 수 있게 하며, 일부 경우에 네트워크가 어떤 유용한 것을 배우는데 필수적이다.
네트워크는 도착할 때, 샘플에 대해 훈련될 필요가 없으므로(그리고 그렇게 해서는 안됨), 식 3, 4 및 5는 현재 시간 단계의 샘플에 관련되지 않는다: {xt-1, at-1, rt-1, xt},- 이는 재생 메모리에서 도출된 샘플 ej(예를 들면, 도 3의 트레이닝 샘플(308)의 세트) 어느 것에도 적용될 수 있다.
경험 메모리를 통해, 시스템은 재생할 경험(예를 들면, 경험 메모리 D로부터 샘플링 하는 방법, 우선순위화)과 경험 메모리 D에 저장할 경험(및 저장하지 않는 경험)에 대한 전략을 사용한다.
재생할 경험
모델-기반 강화 학습의 경험을 우선순위화하는 것은 최적의 방침으로의 수렴을 촉진할 수 있다. 우선순위화는 메모리의 각 경험에 대해 확률을 할당하는 것을 포함하며, 이는 메모리로부터 네트워크 훈련에 대한 샘플로 경험을 도출할 기회를 결정한다. 모델-기반 사례에서, 경험은 가치 함수에서의 예측된 변화, 다시 말해, 예측된 학습 진행 상황에 기초하여 실행되는 경우에 우선 순위화 된다. 모델이 없는 사례에서는, 예측된 학습 진행 상황의 근사는 시간차(TD) 오차이며,
Figure pct00007
(6)
Double DQN에 대한 우선 순위화의 기초로서 TD-오차를 사용하면, 학습 효율 및 최종 성능이 향상된다.
그러나, 비유사성에 의한 우선순위화와 같은, 다른 우선순위화 방법이 사용될 수 있다. 확률적으로, 다른 것과 유사하지 않은 경험으로 네트워크를 우선적으로 훈련시키는 것을 선택하면 데이터 세트의 불균형이 해소될 수 있다. 이러한 불균형은 에이전트가 진정으로 균일한(편향되지 않은) 방식으로 환경을 탐색할 수 없을 때, RL에서 나타난다. 그러나, 자원 제약으로 인해 D의 메모리 크기가 제한되는 경우, D의 전체가 다른 것보다 특정 경험에 우선하여 편향될 수 있으며, 이는 잊혀졌을 수 있다(D로부터 제거됨). 이러한 경우, 메모리가 제거됨에 따라, 진정으로 바이어스를 제거하는 것이 불가능할 수 있다.
저장할 경험
모든 메모리를 저장하는 것은 이론적으로 유용하다. 수집되었을 때 학습에 기여할 수 없었던 오래된 경험은 에이전트가 그것으로 무엇을 해야 하는지 알기에 충분한 지식을 축적하면 갑자기 유용해질 수 있다. 그러나, 무한한 경험 메모리는, 특히 이미지와 같이 입력이 고차원인 경우, 현대의 하드웨어에서 빠르게 너무 커져버릴 수 있다. 모든 것을 저장하는 대신, 일반적으로 슬라이딩 윈도우, 다시 말해, 선입 선출 큐가 사용되며, 재생 메모리의 크기가 경험의 일부 최대 개수 N으로 설정된다. 대용량 메모리(예를 들면, 100만 개의 경험을 저장하는 메모리)는 최첨단 시스템에서 상당히 표준화되었다. 이것의 부산물로서, 경험 메모리의 스토리지 요구 사항은 네트워크 자체에 대한 스토리지 요구 사항보다 훨씬 더 커졌다. 학습 효율성에 영향을 미치지 않고 재생 메모리의 크기를 감소시키는 방법은 스토리지가 중요한 경우에 유용하다.
우선순위화 방법은 메모리를 프루닝하는데 적용될 수 있다. 경험 메모리 D로부터 가장 높은 우선순위를 갖는 경험을 우선적으로 샘플링하는 대신, 가장 낮은 우선순위를 갖는 경험이 우선적으로 경험 메모리 D로부터 제거된다. 메모리 지우기는 우선순위를 할당하는 것보다 더 최종적인 단계이지만, 애플리케이션에 따라 필요할 수 있다.
경험 메모리 프루닝
다음 프로세스는 경험 메모리를 프루닝하는 것에 초점을 둔다. 그러나, 이러한 프로세스들은 제거할 경험을 선택하는 데 사용되는 결과 확률이 반전되고 우선순위로 사용되는 경우, 우선순위화에도 적용될 수 있다.
유사성-기반 프루닝
도 4는 이하에서 상세하게 설명되는 바와 같이, 3개의 비유사성-기반 프루닝 프로세스 -프로세스 400, 프로세스 402 및 프로세스 404- 를 나타내는 흐름도이다. 일반적인 아이디어는 각 경험에 대한 이웃의 목록을 유지하는 것이며, 이웃은 일부 임계치보다 작은 거리를 갖는 또 다른 경험이다. 경험에 대한 이웃의 수는 제거 가능성을 결정한다. 프루닝 메커니즘은, 예를 들면, 경험 메모리가 처음으로 용량에 도달할 때, 수행될 수 있는, 프로세스 400에서, 2차 비용으로 1회 초기화를 사용한다. 다른 비용은 복잡성이 선형적이다. 또한, 필요한 추가 스토리지만은 각각의 경험(모든 쌍 거리 매트릭스보다 훨씬 작음)에 대한 이웃의 수와 이웃의 목록이다. 경험이 추가되는 경우(프로세스 402), 그것으로부터 다른 경험까지의 거리가 계산되고, 이웃의 수/목록이 업데이트된다. 경험이 프루닝되는 경우(프로세스 404), 확률은 저장된 이웃의 수로부터 생성되며, 프루닝된 경험은 확률론적 추첨을 통해 선택한다.
Figure pct00008
그런 다음, 이웃으로서의 제거된 경험을 갖는 경험은 이웃 목록으로부터 그것을 제거하고, 이웃의 수를 감소시킨다. 프로세스(400 및 402)에서, 경험으로부터 또 다른 경험으로의 거리가 계산된다. 사용될 수 있는 하나의 거리 메트릭(metric)은, 예를 들면, 상태, 또는 상태, 다음 상태, 동작 및 보상의 임의의 가중 조합과 같은, 경험 요소들 중 오직 하나 상의 유클리드(Euclidean) 거리이다. 임의의 다른 적당한 거리 메트릭이 사용될 수 있다. 프로세스 400에서, 1회 2차 모든 쌍 거리 계산이 있다(도 4의 406, 5-11 행).
하나의 경험에서 또 다른 경험까지의 거리가 사용자 설정 파라미터 β보다 작으면, 경험은 이웃으로 간주된다. 각각의 경험은 프로세스 400의 라인 8에 초기 설정된, 현재의 메모리에서 경험에 대한 이웃의 수를 포함하는 카운터 m과 결합된다. 각각의 경험은 프로세스 400의 라인 9에 초기 설정된, 이웃하는 경험의 아이덴티티의 세트를 저장한다. 경험은 항상 자신의 이웃이 될 것임에 주목하라(예를 들면, 프로세스 400의 라인 3). 라인 8 및 9는 도 4의 박스(408)를 구성한다.
프로세스 402에서, 새로운 경험이 메모리에 추가된다. 현재의 메모리에서 경험의 임의의 다른 경험에 대한 거리는 사용자 설정 파라미터 β보다 작은 경우, 각각에 대한 카운터는 증가되며(라인 8 및 9), 이웃은 서로를 포함하도록 업데이트된다(라인 10 및 11). 이는 박스(412 및 414)에 나타난다.
프로세스 404는 경험이 제거되는 방법을 나타낸다. 제거 확률은 모든 경험에 대하여 이웃의 수를 전체 이웃의 수로 나눈 값이다(박스(416)의 라인 4). 제거할 선택 경험(SelectExperienceToRemove)은 제거될 경험 o를 결정하는 확률론적 추첨이다. 실제 제거는 메모리로부터의 삭제(박스(418)의 라인 7)와, 모든 이웃 목록으로부터 그 경험 o의 제거를 포함하며, 따라서 이웃의 수를 감소시킨다(박스(418)의 라인 8-13). 구현에 따라, 인덱스를 조정하는데 최종 부기(bookkeeping) 단계(라인 14)가 필요할 수 있다(즉, 모든 인덱스 > o가 1 만큼 감소함).
Figure pct00009
Figure pct00010
프로세스 402 및 404는 에이전트가 새로운 경험을 수집함에 따라 반복적으로, 그리고 (구현에 따라) 아마 간헐적으로 발생할 수 있다. 모든 새로 수집된 경험에 대하여, 프로세스 402가 프로세스 404가 발생할 수 있기 전에 발생해야 한다는 요구 사항이 있다.
매치-기반 프루닝
경험을 우선순위화(또는 프루닝)하는 추가적인 방법은 매치-기반 학습의 개념에 기초한다. 일반적인 아이디어는 클러스터의 세트 중 하나에 각각의 경험을 할당하고, 클러스터의 중심 만에 기초하여 프루닝의 목적으로 거리를 계산하는 것이다.
이러한 온라인 학습 시스템에서, 입력 벡터(예를 들면, 입력값의 1차원 어레이)는 시냅스 가중치 세트에 의해 곱해지며, 시냅스 가중치 세트가 현재 입력 벡터와 가장 밀접하게 매칭되는 단일 뉴런(또는 노드)로 나타낼 수 있는 최상의 매치가 생성된다. 단일 뉴런은 또한, 클러스터를 코딩하며, 즉 단일 패턴을 인코딩할 뿐 아니라 입력 세트를 평균화, 또는 클러스터할 수 있다. 새로운 입력이 동일한 클러스터에 할당될 지 여부를 제어하는 입력 패턴과 시냅스 가중치 간의 유사도는 사용자 정의 파라미터에 의해 설정될 수 있다.
도 5는 예시적인 매치-기반 프루닝 프로세스 500을 나타낸다. 온라인 학습 시스템에서, 입력 벡터(504a)는 시냅스 가중치의 세트, 예를 들면, 506a, 506b, 506c, 506d, 506e, 및 506f(종합하여, 시냅스 가중치(506))에 의해 곱해진다. 이는 시냅스 가중치(506)가 현재 입력 벡터(504a)와 밀접하게 매치되는 단일 뉴런(예를 들면, 노드(502))으로 표현된, 최상의 매치를 생성한다. 노드(502)는 클러스터(508a)를 나타낸다. 즉, 노드(502)는 단일 패턴을 인코딩할 뿐 아니라, 입력 세트를 나타내거나, 클러스터할 수 있다. 예를 들면, 다른 입력 벡터(504b 및 504c)(종합하여, 입력 벡터(504))에 대해, 입력 벡터는 유사도를 판단하기 위해 시냅스 가중치(506)에 의해 곱해진다. 이러한 경우, 504b 및 504c의 최상의 매치는 클러스터(508b)를 나타내는 노드(2)이다. 이러한 간단한 경우, 클러스터 2에는 2개의 경험이 있고, 클러스터 1에는 1개의 경험이 있으며, 이에 따라 제거 확률에 가중치가 적용된다. 예를 들면, 2/3 기회 클러스터 2가 선택되며, 이 지점에서 2개의 경험 중 하나가 프루닝을 위해 무작위로 선택된다.
또한, 들어오는 입력 패턴이 기존 클러스터 내에서 인코딩되는지 여부(즉, 그 매치가 사용자 설정 이득 제어 파라미터를 만족시킴)가 메모리에 저장될 경험을 자동으로 선택(또는 폐기)하는데 사용될 수 있다. 샘플 메모리에 추가적인 차별적 정보를 부가할 필요가 없어, 기존의 클러스터에 맞는 입력은 폐기될 수 있으며, 반면 이는 시스템에 의해 이전에 인코딩되지 않은 정보를 나타내기 때문에, 기존의 클러스터와 맞지 않는 입력이 선택된다. 이러한 방법의 이점은 클러스터 중심에 대한 거리만이 계산될 필요가 있기 때문에 거리 계산이 효율적인 작업이라는 것이다.
Figure pct00011
도 6은 도 5의 클러스터-기반 프루닝 프로세스 500의 대안적인 표현(600)을 나타내는 흐름도이다. 클러스터링은 거리 또는 저장 요소를 계산할 필요성을 제거한다. 프로세스 600의 602에서, 클러스터는 모든 클러스터 k의 클러스터 중심의 서로 다른 클러스터 중심에 대한 거리가 β보다 크지 않도록 클러스터가 생성된다. 경험 메모리 D의 각 경험은 K < < N의 증가하는 세트에 할당된다. 경험이 클러스터에 할당된 이후, 604에서, 각각의 클러스터는 멤버의 수에 따라 가중치가 부여된다(의사코드(pseudocode) 프로세스 600의 라인 17-21). 더 많은 멤버를 갖는 클러스터는 더 높은 가중치를 가지며, 이로부터 경험이 제거될 가능성이 더 크다.
프로세스 600은 경험 {xj, aj, rj, xj+1} 를 벡터로 변환시키는 "인코딩(encoding)" 함수 Γ를 도입한다. 기본적인 인코딩 함수는 단순히 값을 연결하고 적절하게 가중치를 부여한다. 또 다른 인코딩 함수는 이하의 섹션에서 논의된다. 606에서, 경험 메모리 D의 각 메모리가 인코딩된다. 608에서, 각각의 기존 클러스터 중심에 대한 인코딩된 경험의 거리가 계산된다. 610에서, 계산된 거리는 기존의 모든 클러스터 중심과 비교된다. 가장 유사한 클러스터 중심이 β 내에 있지 않으면, 614에서, 새로운 클러스터 중심이 경험으로 생성된다. 그러나, 가장 유사한 클러스터 중심이 β 내에 있으면, 612에서, 경험이 가장 유사한 클러스터에 할당된다. 즉, 경험은 다른 클러스터 중심과 비교하여 경험으로부터 최소 거리에 있는 클러스터 중심을 갖는 클러스터에 할당된다. 616에서, 클러스터는 멤버의 수에 따라 가중치가 재부여되며, 또한 618에서, 확률론적 결정에 기초하여 하나 이상의 경험이 제거된다. 일단 경험이 제거되면(의사코드 프로세스 600의 라인 23), 이에 따라 클러스터는 가중치가 재부여된다(의사코드 프로세스 600의 라인 25). 이러한 방식으로, 프로세스 600은 대부분의 멤버를 갖는 클러스터로부터 Z 경험의 세트를 우선적으로 제거한다.
프로세스 600은 클러스터 중심이 시간에 걸쳐 조정하도록 하지 않는다. 그럼에도 불구하고, 예를 들면 라인 15 및 라인 16 사이에 다음의 업데이트 함수를 추가함으로써, 클러스터 중심이 시간에 걸쳐 조정하도록 수정될 수 있다.
Figure pct00012
인코더-기반 프루닝
입력 차원이 (로우 픽셀의 경우와 같이) 높은 경우, 유클리드 거리는 온전하지 못한 메트릭이 되는 경향이 있다. 적합한 β를 찾는 것은 쉽거나 가능하지 않을 수도 있다. 다행히도, 차원을 줄이고, 유클리드 거리가 보다 합리적인 적절한 저차원 매니폴드(manifold)를 잠재적으로 찾는 방법은 풍부하다. 예시로는 주성분 분석(Principal Component Analysis), 아이소맵(Isomap), 오토인코더(Autoencoders) 등을 포함한다. 특히 매력적인 인코더는 보강 학습에 적합한 슬로우 피처 분석(Slow Feature Analysis, SFA)이다. SFA가 샘플이 시간에 걸쳐 어떻게 변화하는지를 고려하기 때문에, 이는 순차적 결정 문제에 (광범위하게) 적합하도록 한다. 또한, 선형 계산과 공간 복잡성을 갖는 슬로우 피처 세트(IncSFA)를 업데이트하는 최근 개발된 증분 방법이 있다.
IncSFA를 인코더로 사용하는 것은 에이전트가 그것을 관찰하는 경우, 각각의 샘플을 갖는 슬로우 피처 세트를 업데이트하는 것을 포함하며, 그리고 메모리를 프루닝할 시간이 되면, 슬로우 피처를 인코딩 함수 Γ로 사용한다. IncSFA에 대한 자세한 내용은 본 명세서에서 참조로서 포함된 Kompella et al., "Incremental slow feature analysis: Adaptive low-complexity slow feature updating from high-dimensional input streams," Neural Computation, 24(11):2994-3024, 2012에서 찾을 수 있다.
Double DQN에 대해, 온라인 인코더를 사용하는 예시적인 프로세스가 프로세스 4(아래)에 나타나 있다. 이러한 프로세스는 IncSFA를 염두에 두고 만들어졌지만, 많은 다른 인코더에도 적용된다.
Figure pct00013
심층 보강 학습 및 경험 재생을 사용하는 시스템
도 7에서, 하나 이상의 에이전트는, 또는 물리 에이전트(예를 들면, 로봇, 드론, 자기-주행 차량 또는 장난감), 가상 또는 시뮬레이션된 환경에서, 실제 환경(701)의 주변 및 다른 에이전트와 상호 작용한다. 이러한 에이전트들과, 이들이 접속되거나 포함하는 모듈(이하에서 나열된 것들을 포함함)은, 예를 들면, 메모리, 센서 등에 동작 가능하게 연결된 그래픽 프로세싱 유닛(GPUs)을 포함하는 적절한 프로세서 또는 프로세싱 시스템에 의해 구현될 수 있다.
인터페이스(미도시)는 센서, 예를 들면, 709a, 709b 및 709c(종합하여, 센서(709))를 사용하여 환경(701) 및 에이전트에 관한 정보를 수집한다. 센서(709)는, 예를 들면, 이미지 센서, 마이크로폰, 및 다른 센서와 같은 임의의 유형의 센서일 수 있다. 센서(709)에 의해 경험된 상태, 동작 및 보상은 프로세서(708)에 포함된 온라인 인코더 모듈(702)에 제공된다.
프로세서(708)는 인터페이스와 디지털 통신할 수 있다. 본 발명의 일부 양상에서, 프로세서(708)는 온라인 인코더 모듈(702), DNN(704), 및 큐 유지 장치(705)를 포함할 수 있다. 인터페이스에서 수집된 정보는 프로세스되고 압축되는 선택적 온라인 인코더 모듈(702)로 전송된다. 다시 말해, 온라인 인코더 모듈(702)은 증분 슬로우 피처 분석(Incremental Slow Feature Analysis), 주성분 분석, 또는 다른 적합한 기술을 통해 데이터 차원 수를 감소시킨다. 온라인 인코더 모듈(702)로부터의 압축된 정보 또는 온라인 인코더가 사용되지 않는 경우 인코딩되지 않은 비압축 입력은 메모리(707)에 포함되는 큐 모듈(703)에 제공된다.
메모리(707)는 프로세서(708)와 디지털 통신한다. 큐 모듈(703)은 차례로 재생될 경험을 DNN 모듈(704)에 제공한다.
프로세서(708)에 포함된 큐 유지 장치(프루닝) 모듈(705)은 큐 모듈(703)에 양방향으로 연결된다. 압축된 경험에 관한 정보를 획득하고, 큐 모듈(703)에서 어떤 경험이 유지되고 어떤 것이 폐기되는지를 관리한다. 다시 말해, 큐 유지 장치(705)는 도 3의 프로세스 300, 도 4의 프로세스 400 및 402, 도 5의 프로세스 500, 및 도 6의 프로세스 600과 같은 프루닝 방법을 사용하여 메모리를 프루닝한다. 큐로부터의 메모리(703)는 트레이닝 프로세스 동안 DNN/신경망 모듈(704)에 제공된다. 성능/행동 프로세스 동안, 환경으로부터의 상태 정보는 또한, 에이전트(들)(701)로부터 제공되며, 이러한 DNN/신경망 모듈(704)은 동작을 생성하고 환경의 에이전트(701)를 제어하여, 인식/행동 루프를 폐쇄한다.
네비게이션을 위한 프루닝, 심층 보강 학습, 및 경험 재생
도 8은 네비게이션과 조향을 위한 심층 RL 및 경험 재생을 사용하면 자기-주행 차량(800)을 나타낸다. 자기-주행 차량(800)에 대한 경험은 자기-주행 차량(800)에 연결되는 카메라(809a) 및 라이다(LIDAR)(809b)와 같은, 센서를 사용하여 수집된다. 자기-주행 차량(800)은 또한, 엔진, 브레이크, 및 핸들을 감시하는 센서 및 속도계로부터 데이터를 수집할 수 있다. 이러한 센서들에 의해 수집된 데이터는 차량의 상태와 동작(들)을 나타낸다.
종합적으로, 자기-주행 차량의 경험에 관한 데이터는 차량(800)의 장애물(또는 일부 다른 동등한 상태)에 대한 거리뿐 아니라, 자기-주행 차량(800)에 대한 속도 및/또는 조향각(동작과 동등함)을 포함할 수 있다. 속도 및/또는 조향각에 대한 보상은 라이다를 통해 차량의 안전 메커니즘에 기초할 수 있다. 다시 말해, 보상은 동작 전후에 장애물로부터 차량의 관찰된 거리에 따라 달라질 수 있다. 동작 이후의 차량의 조향각 및/또는 속도는 또한, 보상에 영향을 줄 수 있으며, 먼 거리와 낮은 속도로 높은 보상을 얻거나, 충돌 또는 충돌 과정으로 낮은 보상을 얻을 수 있다. 초기 상태, 동작, 보상 및 최종 상태를 포함하는 경험은 정보를 프로세스 하고 압축하며 차례로 큐 모듈(803)에 경험을 제공하는 온라인 인코더 모듈(802)에 제공된다.
큐 유지 장치(프루닝) 모듈(805)은 큐 모듈(803)에 양방향으로 연결된다. 큐 유지 장치(805)는 도 3의 프로세스 300, 도 4의 프로세스 400 및 402, 도 5의 프로세스 500 및 도 6의 프로세스 600을 사용하여, 큐 모듈(803)에 저장된 경험을 프루닝한다. 유사한 경험이 제거되며, 유사하지 않은 경험은 큐 모듈(803)에 저장된다. 예를 들면, 큐 모듈(803)은 장애물에 대해 취해진 행동 전후 모두에 상이한 장애물에 대한 자기-주행 차량(800)의 속도 및/또는 조향각과, 장애물로부터의 거리를 포함할 수 있다. 큐 모듈(803)으로부터의 경험은 DNN/신경망 모듈(804)을 훈련시키는데 사용된다. 자기-주행 차량(800)이 특정 장애물로부터의 차량(800)의 거리(즉, 상태)를 DNN 모듈(804)에 제공하는 경우, DNN 모듈(804)은 큐 모듈(803)로부터의 경험에 기초하여 그 상태에 대한 속도 및/또는 조향각을 생성한다.
결론
다양한 본 발명의 실시예가 본 명세서에서 설명되고 도시되었지만, 통상의 기술자는 기능을 수행하고, 및/또는 결과 및/또는 본 명세서에 설명된 하나 이상의 이점을 얻기 위한 다른 다양한 수단 및/또는 구조를 용이하게 구상할 것이며, 이러한 변형 및/또는 수정 각각은 본 명세서에 개시된 본 발명의 실시예의 범위 내에 있는 것으로 간주된다. 보다 일반적으로, 통상의 기술자는 본 명세서에 설명된 모든 파라미터, 치수, 재료, 및 구성이 예시적인 것으로 의도되며, 실제 파라미터, 치수, 재료, 및/또는 구성은 본 발명의 교시가 사용되는 특정 애플리케이션 또는 애플리케이션들에 따라 달라질 것이라는 것을 용이하게 이해할 것이다. 통상의 기술자들은 단지 일상적인 실험을 사용하여, 본 명세서에 설명된 특정 발명의 실시예에 대한 많은 균등물을 인식하거나, 확인할 수 있을 것이다. 따라서, 전술한 실시예가 단지 예시로서 제공된다는 것, 그리고 첨부된 청구항 및 이에 대한 등가물의 범위 내에서, 발명의 실시예들이 구체적으로 설명되고 청구된 바와 다르게 실시될 수 있다는 것이 이해될 것이다. 본 개시의 발명의 실시예는 본 명세서에 설명된 각각의 개별적인 특징, 시스템, 물품, 재료, 키트, 및/또는 방법에 관한 것이다. 또한, 두 개 이상의 그러한 특징, 시스템, 물품, 재료, 키트, 및/또는 방법의 임의의 조합은, 그러한 특징, 시스템, 물품, 재료, 키트, 및/또는 방법이 서로 모순되지 않는다면, 본 개시의 발명의 범위 내에 포함된다.
전술된 실시예는 임의의 많은 방식으로 구현될 수 있다. 예를 들면, 본 명세서에 개시된 기술을 설계 및 제조하는 실시예가 하드웨어, 소프트웨어 또는 이들의 조합을 사용하여 구현될 수 있다. 소프트웨어로 구현될 때, 소프트웨어 코드는 단일 컴퓨터에 제공되는지, 또는 다수의 컴퓨터 간에 분배되는지에 관계 없이, 임의의 적합한 프로세서 또는 프로세서들의 집합 상에서 실행될 수 있다.
또한, 컴퓨터가 랙에 설치되는 컴퓨터, 데스크탑 컴퓨터, 랩탑 컴퓨터, 또는 태블릿 컴퓨터와 같은 다수의 형태 중 임의의 형태로 구현될 수 있다는 것이 이해되어야 한다. 그리고, 컴퓨터는 일반적으로 컴퓨터로 여겨지지는 않으나 개인용 정보 단말기(PDA), 스마트폰 또는 임의의 다른 적합한 휴대용 또는 고정식 전자 디바이스를 포함하여, 적합한 프로세싱 능력들을 갖는 디바이스에 내장될 수 있다.
또한, 컴퓨터는 하나 이상의 입력 및 출력 디바이스를 가질 수 있다. 이러한 디바이스들은 다른 것들 중에서도, 사용자 인터페이스를 제공하기 위해 사용될 수 있다. 사용자 인터페이스를 제공하기 위해 사용될 수 있는 출력 디바이스의 예는 출력의 시각적 표현을 위한 디스플레이 스크린 또는 프린트, 또는 출력의 청각적 표현을 위한 스피커 또는 다른 사운드 생성 디바이스를 포함한다. 사용자 인터페이스를 위해 사용될 수 있는 입력 디바이스의 예는 마우스, 터치 패드, 및 디지털화 태블릿과 같은, 포인팅 디바이스 및 키보드를 포함한다. 다른 예로서, 컴퓨터는 음성 인식을 통해 또는 다른 청각적 포맷으로 입력 정보를 수신할 수 있다.
이러한 컴퓨터는 근거리 통신망 또는 광역 통신망, 이를테면 기업망, 및 지능망(IN) 또는 인터넷을 포함하여, 임의의 적합한 형태의 하나 이상의 네트워크에 의해 상 연결될 수 있다. 이러한 네트워크는 임의의 적합한 기술에 기초할 수 있고, 임의의 적합한 프로토콜에 따라 작동할 수 있으며 무선 네트워크, 유선 네트워크, 또는 광 네트워크를 포함할 수 있다.
본 명세서에서 개략적으로 설명된 (예를 들면, 전술된 결합 구조 및 회절성 광 요소를 설계 및 제조하는) 다양한 방법 또는 프로세서는 다양한 운영 체제 또는 플랫폼 중 임의의 운영 체제 또는 플랫폼을 채용하는 하나 이상의 프로세서 상에서 실행 가능한 소프트웨어로서 코딩될 수 있다. 또한, 이러한 소프트웨어는 다수의 적합한 프로그래밍 언어 및/또는 프로그래밍 또는 스크립트 도구 중 임의의 것을 사용하여 기록될 수 있고, 또한 프레임 워크 또는 가상 기계 상에서 실행되는 실행 가능한 기계 언어 코드 또는 중간 코드로서 컴파일링 될 수도 있다.
이러한 점에서, 다양한 발명의 개념이 하나 이상의 컴퓨터 또는 다른 프로세서 상에서 실행될 때, 위에서 논의된 발명의 다양한 실시예를 구현하는 방법을 수행하는 하나 이상의 프로그램으로 인코딩되는 컴퓨터 판독 가능 저장 매체(또는 다수의 컴퓨터 판독 가능 저장 매체)(예를 들면, 컴퓨터 메모리, 하나 이상의 플로피 디스크, 컴팩트 디스크, 광 디스크, 자기 테이프, 플래시 메모리, 필드 프로그래머블 게이트 어레이 또는 다른 반도체 디바이스 내 회로 구성, 또는 다른 비-일시적 매체 또는 유형의 컴퓨터 저장 매체)로서 구현될 수 있다. 컴퓨터 판독 가능 매체 또는 매체들은 이동식일 수 있고, 그에 따라 거기에 저장된 프로그램 또는 프로그램들이 위에서 논의된 바와 같은 본 발명의 다양한 측면을 구현하기 위해 하나 이상의 상이한 컴퓨터 또는 다른 프로세서로 로딩될 수 있다.
"프로그램" 또는 "소프트웨어"이라는 용어는 위에서 논의된 바와 같이 실시예의 다양한 측면들을 구현하도록 컴퓨터 또는 다른 프로세서를 프로그래밍하기 위해 채용될 수 있는 컴퓨터 코드 또는 컴퓨터-실행 가능 명령들의 세트의 임의의 유형을 나타내기 위한 일반적 의미로 본 명세서에서 사용된다. 또한, 일 양상에 따라, 실행될 때 본 발명의 방법을 수행하는 하나 이상의 프로그램이 단일 컴퓨터 또는 프로세서 상에 존재할 필요는 없으나, 본 발명의 다양한 양상들을 구현하기 위해 다수의 상이한 컴퓨터 또는 프로세서 간에 모듈식 방식으로 분배될 수 있다는 것이 이해되어야 한다.
컴퓨터-실행 가능 명령은 하나 이상의 컴퓨터 또는 다른 디바이스에 의해 실행되는, 프로그램 모듈과 같은, 많은 형태일 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 구성 요소, 데이터 구조 등을 포함한다. 전형적으로, 프로그램 모듈의 기능은 다양한 실시예에서 원하는 대로 조합 또는 분산될 수 있다.
또한, 데이터 구조는 임의의 적합한 형태로 컴퓨터-판독 가능 매체에 저장될 수 있다. 예시의 단순화를 위해, 데이터 구조가 데이터 구조 내 위치를 통해 관련된 필드를 갖는 것으로 도시될 수 있다. 이러한 관계는 필드들 간의 관계를 전달하는 컴퓨터-판독 가능 매체 내 위치를 이용하여 필드에 대한 스토리지를 할당함으로써 마찬가지로 실현될 수 있다. 그러나, 임의의 적합한 메커니즘이 데이터 요소들 간 관계를 확립하는 포인터, 태그 또는 다른 메커니즘의 사용을 통하는 것을 포함하여, 데이터 구조의 필드 내 정보 간의 관계를 확립하기 위해 사용될 수 있다.
또한, 다양한 본 발명의 개념이 하나 이상의 방법으로서 구현될 수 있으며, 이에 대한 예가 제공되었다. 방법의 일부로서 수행되는 동작은 임의의 적합한 방식으로 순서화될 수 있다. 따라서, 동작이 예시된 것과 상이한 순서로 수행되는 실시예가 구성될 수 있으며, 이는 예시적인 실시예에서 순차적 동작들로 도시되더라도, 일부 동작을 동시에 수행하는 것을 포함할 수 있다.
모든 정의는, 본 명세서에서 정의되고 사용될 때, 사전적 정의, 참조로서 포함된 문서 내 정의, 및/또는 정의된 용어의 원래 의미를 통제하는 것으로 이해되어야 한다.
단수 표현은, 본 명세서에서 발명의 설명 및 청구항에 사용될 때, 명백하게 반대로 표시되지 않는 한, "적어도 하나"를 의미하는 것으로 이해되어야 한다.
"및/또는"의 구절은, 본 명세서에서 발명의 설명 및 청구항에 사용될 때, 결합된 요소들 중 "어느 하나 또는 양자", 즉, 일부 경우에 결합하여 존재하고 다른 경우에서는 분리하여 존재하는 요소를 의미하는 것으로 이해되어야 한다. "및/또는"으로 나열되는 다수의 요소는 동일한 방식, 즉, 그렇게 결합된 요소 중 "하나 이상"인 것으로 간주되어야 한다. 다른 요소는 구체적으로 식별되는 그러한 요소와 관련되는지, 또는 관련되지 않는지에 관계없이, "및/또는"의 절에 의해 구체적으로 식별되는 요소 이외에 임의로 존재할 수 있다. 따라서, 비-제한적인 예로서, "A 및/또는 B"에 대한 언급은, 개방형 언어, 이를테면 "포함하는"과 함께 사용될 때, 일 실시예에서, 단지 A(임의로 B 이외의 요소들을 포함함); 다른 실시예에서, 단지 B(임의로 A 이외의 요소들을 포함함); 또 다른 실시예에서, A 및 B 양자(임의로 다른 요소들을 포함함); 등을 나타낼 수 있다.
본 명세서에서 발명의 설명 및 청구항에서 사용될 때, "또는"은 위에서 정의된 바와 같은 "및/또는"과 동일한 의미를 가지는 것으로 이해되어야 한다. 예를 들면, 리스트에서 항목을 분리할 때, "또는", 또는 "및/또는"은 포괄하는 것, 즉, 적어도 하나를 포함하는 것, 그러나 또한 다수의 또는 목록의 요소 중 하나 초과의, 그리고 임의로, 추가의 나열되지 않은 항목을 포함하는 것으로 해석되어야 한다. 명백하게 반대로 나타내지 않은 용어들만이, 이를테면 "~ 중 단지 하나" 또는 "~ 중 정확히 하나", 또는 청구항에서 사용될 때, "~로 구성되는"은 다수의 또는 리스트의 요소 중 정확히 하나의 요소의 포함을 나타낼 것이다. 일반적으로, 본 명세서에서 사용될 때 "또는"이라는 용어는 배타성이라는 용어들, 이를테면 "어느 하나", "~ 중 하나", "~ 중 오직 하나", 또는 "~ 중 정확히 하나"에 의해 선행될 때 배타적인 대안예(즉, "하나 또는 다른 하나이지만 양자가 아닌")를 나타내는 것으로만 해석되어야 한다. "~로 본질적으로 이루어지는"은 청구항에서 사용될 때, 특허법 분야에서 사용되는 것과 같은 원래 의미들을 가져야 한다.
본 명세서에서 발명의 설명 및 청구항에서 사용될 때, 하나 이상의 요소의 리스트를 참조하여, "적어도 하나"의 구절은, 요소들의 리스트에서 요소들 중 임의의 하나 이상으로부터 선택되는 적어도 하나의 요소를 의미하나, 반드시 요소들의 리스트 내에 구체적으로 나열되는 각각의 및 모든 요소 중 적어도 하나를 포함하고 요소들의 리스트에서 요소들의 임의의 조합들을 배제하지 않을 필요는 없는 것으로 이해되어야 한다. 이러한 정의는 또한, 요소가 구체적으로 식별된 이러한 요소와 관련되는지 또는 관련되지 않는지에 관계없이, "적어도 하나"의 구절이 나타내는 요소들의 리스트 내에 구체적으로 식별되는 요소 이외에 임의로 존재할 수 있다는 것을 허용한다. 따라서, 비-제한적인 예로서, "A 및 B 중 적어도 하나"(또는, 균등하게, "A 또는 B 중 적어도 하나", 또는, 균등하게 "A 및/또는 B 중 적어도 하나)는 일 실시예에서, B가 존재하지 않는, 임의로 하나 초과를 포함하는, 적어도 하나의, A(및 임의로 B가 아닌 요소들을 포함함); 다른 실시예에서, A가 존재하지 않는, 임의로 하나 초과를 포함하는, 적어도 하나의, B(및 임의로 A가 아닌 요소들을 포함함); 또 다른 실시예에서, 임의로 하나 초과를 포함하는, 적어도 하나의, B(및 임의로 다른 요소들을 포함함) 등을 나타낼 수 있다.
청구항에서, 뿐만 아니라 상기 발명의 설명에서, 모든 연결구, 이를테면 "포함하는", "지니는", "가지는", "함유하는", "수반하는", "보유하는", "~로 구성되는(composed of)" 등은 개방형, 즉, 이에 제한되는 것은 아니지만 포함하는 것을 의미하는 것으로 이해되어야 한다. 단지 연결구들 "~로 이루어진" 및 "~로 본질적으로 이루어진"은 미국 특허청 특허 심사 절차 매뉴얼, 섹션 2111.03에 제시된 바와 같이, 각각, 폐쇄형 또는 반-폐쇄형 연결구일 것이다.

Claims (20)

  1. 로봇의 동작을 생성하기 위한 컴퓨터-구현되는 방법으로서,
    상기 방법은,
    로봇의 제1 경험을 수집하는 단계 -상기 제1 경험은,
    제1 시간에서의 상기 로봇의 제1 상태,
    상기 제1 시간에서의 상기 로봇에 의해 취해진 제1 동작,
    상기 제1 동작에 응답하여 상기 로봇에 의해 수신된 제1 보상, 및
    상기 제1 시간 이후의 제2 시간에서의 상기 제1 동작에 응답하는 상기 로봇의 제2 상태를 나타냄-;
    상기 제1 경험과 로봇의 메모리에 저장된 복수의 경험들 간의 유사도를 판단하는 단계;
    상기 메모리에 저장된 프루닝된 복수의 경험들을 형성하기 위하여 상기 제1 경험과 상기 복수의 경험들 간의 상기 유사도에 기초하여, 상기 메모리의 상기 복수의 경험들을 프루닝(pruning)하는 단계;
    상기 프루닝된 복수의 경험들로 상기 로봇과 관련된 신경망을 훈련시키는 단계; 및
    상기 신경망을 사용하여 상기 로봇의 제2 동작을 생성하는 단계를 포함하는 컴퓨터-구현되는 방법.
  2. 청구항 1에 있어서,
    상기 프루닝하는 단계는,
    상기 복수의 경험들 각각에 대해,
    상기 제1 경험에서의 거리를 계산하는 단계; 및
    상기 거리를 상기 복수의 경험들에서의 서로 다른 경험에서의 그 경험의 또 다른 거리와 비교하는 단계를 포함하며; 그리고
    상기 비교에 기초하여, 상기 메모리로부터 제2 경험을 제거하는 단계 -상기 제2 경험은 상기 제1 경험 및 상기 복수의 경험들에서의 경험 중 적어도 하나인-를 더 포함하는 컴퓨터-구현되는 방법.
  3. 청구항 2에 있어서,
    상기 제1 경험 및 상기 복수의 경험들에서의 각각의 경험에서의 상기 제2 경험의 거리가 사용자 정의된 임계치보다 작은 확률에 기초하여, 상기 메모리로부터 상기 제2 경험을 제거하는 단계를 더 포함하는 컴퓨터-구현되는 방법.
  4. 청구항 1에 있어서,
    상기 프루닝하는 단계는 상기 제1 경험 및 상기 복수의 경험들에서의 각각의 경험을 랭킹(ranking)하는 단계를 포함하는 컴퓨터-구현되는 방법.
  5. 청구항 4에 있어서,
    상기 랭킹하는 단계는 적어도 부분적으로 시냅스(synaptic) 가중치에 기초하여 복수의 클러스터들(cluster)을 생성하는 단계와, 상기 제1 경험이 상기 복수의 클러스터들 중 하나에 맞는 것으로 판단하면 상기 제1 경험을 자동적으로 폐기하는 단계를 포함하는 컴퓨터-구현되는 방법.
  6. 청구항 5에 있어서,
    상기 랭킹하는 단계는 상기 복수의 경험들에서의 각각의 경험을 인코딩하고, 상기 제1 경험을 인코딩하며, 그리고 상기 인코딩된 경험들을 상기 복수의 클러스터들에 비교하는 단계를 포함하는 컴퓨터-구현되는 방법.
  7. 청구항 1에 있어서,
    제1 입력 상태에서, 상기 신경망은 상기 프루닝된 복수의 경험들에 적어도 부분적으로 기초하여 출력을 생성하는 컴퓨터-구현되는 방법.
  8. 청구항 1에 있어서,
    상기 프루닝된 복수의 경험들은 상기 로봇의 다양한 상태들의 세트를 포함하는 컴퓨터-구현되는 방법.
  9. 청구항 1에 있어서,
    상기 로봇의 상기 제2 동작을 생성하는 단계는 상기 로봇이 상기 제1 상태에 있는 것을 판단하는 단계 및 상기 제2 동작이 상기 제1 동작과 상이한 것으로 선택하는 단계를 포함하는 컴퓨터-구현되는 방법.
  10. 청구항 9에 있어서,
    상기 제2 동작에 응답하여 상기 로봇에 의한 제2 보상을 수신하는 단계를 더 포함하는 컴퓨터-구현되는 방법.
  11. 청구항 1에 있어서,
    상기 로봇의 제2 경험을 수집하는 단계 -상기 제2 경험은,
    상기 로봇의 제2 상태,
    상기 제2 상태에 응답하여 상기 로봇에 의해 취해진 상기 제2 동작,
    상기 제2 동작에 응답하여 상기 로봇에 의해 수신된 제2 보상, 및
    상기 제2 동작에 응답하는 상기 로봇의 제3 상태를 나타냄-;
    상기 제2 경험과 상기 프루닝된 복수의 경험들 간의 유사도를 판단하는 단계; 및
    상기 제2 경험과 상기 프루닝된 복수의 경험들 간의 유사도에 기초하여, 상기 메모리의 상기 프루닝된 복수의 경험들을 프루닝하는 단계를 포함하는 컴퓨터-구현되는 방법.
  12. 로봇의 제2 동작을 생성하는 시스템에 있어서,
    상기 시스템은,
    상기 로봇의 제1 경험을 수집하는 인터페이스 -상기 제1 경험은,
    제1 시간에서의 상기 로봇의 제1 상태,
    상기 제1 시간에서의 상기 로봇에 의해 취해진 제1 동작,
    상기 제1 동작에 응답하여 상기 로봇에 의해 수신된 제1 보상, 및
    상기 제1 시간 이후의 제2 시간에서의 상기 제1 동작에 응답하는 상기 로봇의 제2 상태를 나타냄-;
    복수의 경험들 및 상기 로봇에 대해 프루닝된 복수의 경험들 중 적어도 하나를 저장하는 메모리;
    상기 인터페이스 및 상기 메모리와 디지털 통신하는 프로세서를 포함하며,
    상기 프로세서는,
    상기 제1 경험과 상기 메모리에 저장된 상기 복수의 경험들 간의 유사도를 판단하는 것;
    상기 프루닝된 복수의 경험들을 형성하기 위하여 상기 제1 경험과 상기 복수의 경험들 간의 상기 유사도에 기초하여, 상기 메모리의 상기 복수의 경험들을 프루닝하는 것;
    상기 프루닝된 복수의 경험들을 저장하는 상기 메모리를 업데이트하는 것;
    상기 프루닝된 복수의 경험들로 상기 로봇과 관련된 신경망을 훈련시키는 것; 및
    상기 신경망을 사용하여 상기 로봇의 상기 제2 동작을 생성하는 것을 수행하는 시스템.
  13. 청구항 12에 있어서,
    상기 프로세서 및 상기 로봇과 디지털 통신하여 상기 제2 동작을 상기 로봇에 전송하는 클라우드 브레인(cloud brain)을 더 포함하는 시스템.
  14. 청구항 12에 있어서,
    상기 프로세서는,
    상기 복수의 경험들에서의 각각의 경험에 대해,
    상기 제1 경험에서의 거리를 계산하고; 그리고
    상기 거리를 상기 복수의 경험들에서의 서로 다른 경험에서의 그 경험의 또 다른 거리와 비교하며; 그리고,
    상기 비교에 기초하여, 상기 메모리로부터 제2 경험을 제거하도록 구성되며, 상기 제2 경험은 상기 제1 경험 및 상기 복수의 경험들에서의 경험 중 적어도 하나인 시스템.
  15. 청구항 14에 있어서,
    상기 프로세서는 상기 제1 경험 및 상기 복수의 경험들에서의 각각의 경험에서의 상기 제2 경험의 거리가 사용자 정의된 임계치보다 작다고 판단하는 확률에 기초하여, 상기 메모리로부터 상기 제2 경험을 제거하도록 구성되는 시스템.
  16. 청구항 12에 있어서,
    상기 프로세서는 상기 제1 경험 및 상기 복수의 경험들에서의 각각의 경험을 랭킹하는 것에 기초하여 상기 메모리를 프루닝하도록 구성되는 시스템.
  17. 청구항 16에 있어서,
    상기 프로세서는
    시냅스 가중치에 적어도 부분적으로 기초하여 복수의 클러스터들을 생성하고;
    상기 복수의 클러스터들에 기초하여 상기 제1 경험 및 상기 복수의 경험들을 랭킹하며; 그리고
    상기 제1 경험이 상기 복수의 클러스터들 중 하나에 맞는 것으로 판단하는 경우 상기 제1 경험을 자동적으로 폐기하도록 구성되는 시스템.
  18. 청구항 17에 있어서,
    상기 프로세서는 상기 복수의 경험들에서의 각각의 경험을 인코딩하고, 상기 제1 경험을 인코딩하며, 그리고 상기 인코딩된 경험들을 상기 복수의 클러스터들에 비교하는 시스템.
  19. 청구항 13에 있어서,
    제1 입력 상태에서, 상기 신경망은 상기 프루닝된 복수의 경험들에 적어도 부분적으로 기초하여 출력을 생성하는 시스템.
  20. 메모리를 업데이트하는 컴퓨터-구현되는 방법으로서, 상기 메모리는 컴퓨터-기반 애플리케이션으로부터 수신된 복수의 경험을 저장하며,
    상기 방법은,
    새로운 경험과 상기 복수의 경험들 사이의 유사도를 판단하는 단계;
    상기 유사도에 기초하여 상기 새로운 경험을 추가하는 단계;
    상기 유사도에 기초하여 상기 새로운 경험 및 상기 복수의 경험들에서의 경험 중 적어도 하나를 제거하는 단계; 및
    상기 복수의 경험들의 업데이트된 버전을 상기 컴퓨터-기반 애플리케이션에 전송하는 단계를 포함하는 컴퓨터-구현되는 방법.
KR1020187034384A 2016-04-27 2017-04-27 심층 신경망 기반의 큐-러닝을 위한 경험 기억을 프루닝하는 방법 및 장치 KR20180137562A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201662328344P 2016-04-27 2016-04-27
US62/328,344 2016-04-27
PCT/US2017/029866 WO2017189859A1 (en) 2016-04-27 2017-04-27 Methods and apparatus for pruning experience memories for deep neural network-based q-learning

Publications (1)

Publication Number Publication Date
KR20180137562A true KR20180137562A (ko) 2018-12-27

Family

ID=60160131

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187034384A KR20180137562A (ko) 2016-04-27 2017-04-27 심층 신경망 기반의 큐-러닝을 위한 경험 기억을 프루닝하는 방법 및 장치

Country Status (6)

Country Link
US (1) US20190061147A1 (ko)
EP (1) EP3445539A4 (ko)
JP (1) JP2019518273A (ko)
KR (1) KR20180137562A (ko)
CN (1) CN109348707A (ko)
WO (1) WO2017189859A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200010982A (ko) * 2018-06-25 2020-01-31 군산대학교산학협력단 심층 강화 학습을 이용한 자율 이동체의 충돌 회피 및 자율 탐사 기법 및 장치
KR20200092900A (ko) * 2019-01-25 2020-08-04 주식회사 딥바이오 뉴런-레벨 가소성 제어를 통해 파국적인 망각을 극복하기 위한 방법 및 이를 수행하는 컴퓨팅 시스템
KR20220074143A (ko) * 2020-11-27 2022-06-03 서울대학교산학협력단 정규화를 위해 트랜스포머 뉴럴 네트워크의 어텐션 헤드를 프루닝하는 방법 및 이를 수행하기 위한 장치

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11188821B1 (en) * 2016-09-15 2021-11-30 X Development Llc Control policies for collective robot learning
KR102399535B1 (ko) * 2017-03-23 2022-05-19 삼성전자주식회사 음성 인식을 위한 학습 방법 및 장치
US11037063B2 (en) 2017-08-18 2021-06-15 Diveplane Corporation Detecting and correcting anomalies in computer-based reasoning systems
US11010672B1 (en) 2017-09-01 2021-05-18 Google Llc Evolutionary techniques for computer-based optimization and artificial intelligence systems
US10713570B1 (en) 2017-10-04 2020-07-14 Diveplane Corporation Evolutionary programming techniques utilizing context indications
JP6845529B2 (ja) * 2017-11-08 2021-03-17 本田技研工業株式会社 行動決定システム及び自動運転制御装置
US11676069B2 (en) 2018-12-13 2023-06-13 Diveplane Corporation Synthetic data generation using anonymity preservation in computer-based reasoning systems
US11092962B1 (en) 2017-11-20 2021-08-17 Diveplane Corporation Computer-based reasoning system for operational situation vehicle control
US11669769B2 (en) 2018-12-13 2023-06-06 Diveplane Corporation Conditioned synthetic data generation in computer-based reasoning systems
US11640561B2 (en) 2018-12-13 2023-05-02 Diveplane Corporation Dataset quality for synthetic data generation in computer-based reasoning systems
US11941542B2 (en) 2017-11-20 2024-03-26 Diveplane Corporation Computer-based reasoning system for operational situation control of controllable systems
US11625625B2 (en) 2018-12-13 2023-04-11 Diveplane Corporation Synthetic data generation in computer-based reasoning systems
US11727286B2 (en) 2018-12-13 2023-08-15 Diveplane Corporation Identifier contribution allocation in synthetic data generation in computer-based reasoning systems
US10695911B2 (en) * 2018-01-12 2020-06-30 Futurewei Technologies, Inc. Robot navigation and object tracking
US10737717B2 (en) * 2018-02-14 2020-08-11 GM Global Technology Operations LLC Trajectory tracking for vehicle lateral control using neural network
US11528720B2 (en) 2018-03-27 2022-12-13 Nokia Solutions And Networks Oy Method and apparatus for facilitating resource pairing using a deep Q-network
US10817750B2 (en) * 2018-04-09 2020-10-27 Diveplane Corporation Data inclusion in computer-based reasoning models
US10816980B2 (en) 2018-04-09 2020-10-27 Diveplane Corporation Analyzing data for inclusion in computer-based reasoning models
US11454939B2 (en) 2018-04-09 2022-09-27 Diveplane Corporation Entropy-based techniques for creation of well-balanced computer based reasoning systems
US11385633B2 (en) 2018-04-09 2022-07-12 Diveplane Corporation Model reduction and training efficiency in computer-based reasoning and artificial intelligence systems
US11262742B2 (en) 2018-04-09 2022-03-01 Diveplane Corporation Anomalous data detection in computer based reasoning and artificial intelligence systems
US10816981B2 (en) 2018-04-09 2020-10-27 Diveplane Corporation Feature analysis in computer-based reasoning models
CN108848561A (zh) * 2018-04-11 2018-11-20 湖北工业大学 一种基于深度强化学习的异构蜂窝网络联合优化方法
US20210162589A1 (en) * 2018-04-22 2021-06-03 Google Llc Systems and methods for learning agile locomotion for multiped robots
US11880775B1 (en) 2018-06-05 2024-01-23 Diveplane Corporation Entropy-based techniques for improved automated selection in computer-based reasoning systems
US20200089244A1 (en) * 2018-09-17 2020-03-19 Great Wall Motor Company Limited Experiments method and system for autonomous vehicle control
US11580384B2 (en) 2018-09-27 2023-02-14 GE Precision Healthcare LLC System and method for using a deep learning network over time
US11494669B2 (en) 2018-10-30 2022-11-08 Diveplane Corporation Clustering, explainability, and automated decisions in computer-based reasoning systems
EP3861487A1 (en) 2018-10-30 2021-08-11 Diveplane Corporation Clustering, explainability, and automated decisions in computer-based reasoning systems
US11176465B2 (en) 2018-11-13 2021-11-16 Diveplane Corporation Explainable and automated decisions in computer-based reasoning systems
US11775812B2 (en) 2018-11-30 2023-10-03 Samsung Electronics Co., Ltd. Multi-task based lifelong learning
CN109803344B (zh) * 2018-12-28 2019-10-11 北京邮电大学 一种无人机网络拓扑及路由联合构建方法
KR102214837B1 (ko) * 2019-01-29 2021-02-10 주식회사 디퍼아이 컨벌루션 신경망 파라미터 최적화 방법, 컨벌루션 신경망 연산방법 및 그 장치
CN109933086B (zh) * 2019-03-14 2022-08-30 天津大学 基于深度q学习的无人机环境感知与自主避障方法
CN110069064B (zh) * 2019-03-19 2021-01-29 驭势科技(北京)有限公司 一种自动驾驶系统升级的方法、自动驾驶系统及车载设备
US11216001B2 (en) 2019-03-20 2022-01-04 Honda Motor Co., Ltd. System and method for outputting vehicle dynamic controls using deep neural networks
US11763176B1 (en) 2019-05-16 2023-09-19 Diveplane Corporation Search and query in computer-based reasoning systems
JP7145813B2 (ja) * 2019-05-20 2022-10-03 ヤフー株式会社 学習装置、学習方法及び学習プログラム
WO2020236255A1 (en) * 2019-05-23 2020-11-26 The Trustees Of Princeton University System and method for incremental learning using a grow-and-prune paradigm with neural networks
CN110450153B (zh) * 2019-07-08 2021-02-19 清华大学 一种基于深度强化学习的机械臂物品主动拾取方法
US11681916B2 (en) * 2019-07-24 2023-06-20 Accenture Global Solutions Limited Complex system for knowledge layout facilitated analytics-based action selection
EP4014165A1 (en) * 2019-09-13 2022-06-22 DeepMind Technologies Limited Data-driven robot control
CN110764093A (zh) * 2019-09-30 2020-02-07 苏州佳世达电通有限公司 水下生物辨识系统及其方法
US20210103286A1 (en) * 2019-10-04 2021-04-08 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Systems and methods for adaptive path planning
CN110958135B (zh) * 2019-11-05 2021-07-13 东华大学 一种特征自适应强化学习DDoS攻击消除方法及系统
CN110883776B (zh) * 2019-11-29 2021-04-23 河南大学 一种快速搜索机制下改进dqn的机器人路径规划算法
US11525596B2 (en) 2019-12-23 2022-12-13 Johnson Controls Tyco IP Holdings LLP Methods and systems for training HVAC control using simulated and real experience data
CN112805199A (zh) * 2020-06-09 2021-05-14 华为技术有限公司 自动驾驶系统的自学习方法、装置、设备及存储介质
CN112015174B (zh) * 2020-07-10 2022-06-28 歌尔股份有限公司 一种多agv运动规划方法、装置和系统
US11842260B2 (en) 2020-09-25 2023-12-12 International Business Machines Corporation Incremental and decentralized model pruning in federated machine learning
CN112347961B (zh) * 2020-11-16 2023-05-26 哈尔滨工业大学 水流体内无人平台智能目标捕获方法及系统
CN112469103B (zh) * 2020-11-26 2022-03-08 厦门大学 基于强化学习Sarsa算法的水声协作通信路由方法
CN112698933A (zh) * 2021-03-24 2021-04-23 中国科学院自动化研究所 在多任务数据流中持续学习的方法及装置
CN113543068B (zh) * 2021-06-07 2024-02-02 北京邮电大学 一种基于层次化分簇的林区无人机网络部署方法与系统
TWI774411B (zh) * 2021-06-07 2022-08-11 威盛電子股份有限公司 模型壓縮方法以及模型壓縮系統
CN114084450B (zh) * 2022-01-04 2022-12-20 合肥工业大学 外骨骼机器人生产优化与助力控制方法
EP4273636A1 (de) * 2022-05-05 2023-11-08 Siemens Aktiengesellschaft Verfahren und steuereinrichtung zum steuern einer maschine
WO2023212808A1 (en) * 2022-05-06 2023-11-09 Ai Redefined Inc. Systems and methods for managing interaction records between ai agents and human evaluators
WO2024068841A1 (en) * 2022-09-28 2024-04-04 Deepmind Technologies Limited Reinforcement learning using density estimation with online clustering for exploration
CN115793465B (zh) * 2022-12-08 2023-08-01 广西大学 螺旋式攀爬修枝机自适应控制方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5172253A (en) * 1990-06-21 1992-12-15 Inernational Business Machines Corporation Neural network model for reaching a goal state
JP5330138B2 (ja) * 2008-11-04 2013-10-30 本田技研工業株式会社 強化学習システム
CN101973031B (zh) * 2010-08-24 2013-07-24 中国科学院深圳先进技术研究院 云机器人系统及实现方法
US9147155B2 (en) * 2011-08-16 2015-09-29 Qualcomm Incorporated Method and apparatus for neural temporal coding, learning and recognition
US8825350B1 (en) * 2011-11-22 2014-09-02 Kurt B. Robinson Systems and methods involving features of adaptive and/or autonomous traffic control
US9177246B2 (en) * 2012-06-01 2015-11-03 Qualcomm Technologies Inc. Intelligent modular robotic apparatus and methods
US9424514B2 (en) * 2012-07-25 2016-08-23 Board Of Trustees Of Michigan State University Synapse maintenance in the developmental networks
US9440352B2 (en) * 2012-08-31 2016-09-13 Qualcomm Technologies Inc. Apparatus and methods for robotic learning
US9679258B2 (en) * 2013-10-08 2017-06-13 Google Inc. Methods and apparatus for reinforcement learning
US9463571B2 (en) * 2013-11-01 2016-10-11 Brian Corporation Apparatus and methods for online training of robots
US9579790B2 (en) * 2014-09-17 2017-02-28 Brain Corporation Apparatus and methods for removal of learned behaviors in robots
US9630318B2 (en) * 2014-10-02 2017-04-25 Brain Corporation Feature detection apparatus and methods for training of robotic navigation
CN104317297A (zh) * 2014-10-30 2015-01-28 沈阳化工大学 一种未知环境下机器人避障方法
CN104932264B (zh) * 2015-06-03 2018-07-20 华南理工大学 基于rbf网络的q学习框架仿人机器人稳定控制方法
CN105137967B (zh) * 2015-07-16 2018-01-19 北京工业大学 一种深度自动编码器与q学习算法相结合的移动机器人路径规划方法
CN117910545A (zh) * 2015-11-12 2024-04-19 渊慧科技有限公司 使用优先化经验存储器训练神经网络

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200010982A (ko) * 2018-06-25 2020-01-31 군산대학교산학협력단 심층 강화 학습을 이용한 자율 이동체의 충돌 회피 및 자율 탐사 기법 및 장치
KR20200092900A (ko) * 2019-01-25 2020-08-04 주식회사 딥바이오 뉴런-레벨 가소성 제어를 통해 파국적인 망각을 극복하기 위한 방법 및 이를 수행하는 컴퓨팅 시스템
KR20220074143A (ko) * 2020-11-27 2022-06-03 서울대학교산학협력단 정규화를 위해 트랜스포머 뉴럴 네트워크의 어텐션 헤드를 프루닝하는 방법 및 이를 수행하기 위한 장치

Also Published As

Publication number Publication date
EP3445539A4 (en) 2020-02-19
WO2017189859A1 (en) 2017-11-02
EP3445539A1 (en) 2019-02-27
US20190061147A1 (en) 2019-02-28
JP2019518273A (ja) 2019-06-27
CN109348707A (zh) 2019-02-15

Similar Documents

Publication Publication Date Title
KR20180137562A (ko) 심층 신경망 기반의 큐-러닝을 위한 경험 기억을 프루닝하는 방법 및 장치
US10293483B2 (en) Apparatus and methods for training path navigation by robots
Liang et al. A fast and accurate online sequential learning algorithm for feedforward networks
Guo et al. Generative adversarial self-imitation learning
US20110060708A1 (en) Information processing device, information processing method, and program
Cagnoni et al. Genetic and evolutionary computation for image processing and analysis
Wang et al. Towards cooperation in sequential prisoner's dilemmas: a deep multiagent reinforcement learning approach
CN112241783A (zh) 具有条件标准化流的机器可学习系统
US20110060706A1 (en) Information processing device, information processing method, and program
CN114519145A (zh) 一种基于图神经网络挖掘用户长短期兴趣的序列推荐方法
WO2023130755A1 (zh) 路径规划方法、电子设备、计算机程序产品及存储介质
US20110060707A1 (en) Information processing device, information processing method, and program
CN116521908A (zh) 一种基于人工智能的多媒体内容个性化推荐方法
Wang et al. Achieving cooperation through deep multiagent reinforcement learning in sequential prisoner's dilemmas
CN114943324A (zh) 神经网络训练方法、人体运动识别方法及设备、存储介质
CN111340057A (zh) 一种分类模型训练的方法及装置
CN111126501B (zh) 一种图像识别方法、终端设备及存储介质
EP3955166A2 (en) Training in neural networks
Song et al. A data-efficient reinforcement learning method based on local Koopman operators
Zerrouk et al. Evolutionary algorithm for optimized CNN architecture search applied to real-time boat detection in aerial images
Chansuparp et al. A novel augmentative backward reward function with deep reinforcement learning for autonomous UAV navigation
Yang et al. An Algorithm of Complete Coverage Path Planning Based on Improved DQN
CN111611852A (zh) 一种表情识别模型的训练方法、装置及设备
Thakkar et al. ReLearner: A Reinforcement Learning-Based Self Driving Car Model Using Gym Environment
Han et al. Enhancing Semantic Segmentation through Reinforced Active Learning: Combating Dataset Imbalances and Bolstering Annotation Efficiency