KR20200010982A - 심층 강화 학습을 이용한 자율 이동체의 충돌 회피 및 자율 탐사 기법 및 장치 - Google Patents

심층 강화 학습을 이용한 자율 이동체의 충돌 회피 및 자율 탐사 기법 및 장치 Download PDF

Info

Publication number
KR20200010982A
KR20200010982A KR1020180171729A KR20180171729A KR20200010982A KR 20200010982 A KR20200010982 A KR 20200010982A KR 1020180171729 A KR1020180171729 A KR 1020180171729A KR 20180171729 A KR20180171729 A KR 20180171729A KR 20200010982 A KR20200010982 A KR 20200010982A
Authority
KR
South Korea
Prior art keywords
state
action
actions
control parameter
reward
Prior art date
Application number
KR1020180171729A
Other languages
English (en)
Other versions
KR102124553B1 (ko
Inventor
이덕진
Original Assignee
군산대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 군산대학교산학협력단 filed Critical 군산대학교산학협력단
Publication of KR20200010982A publication Critical patent/KR20200010982A/ko
Application granted granted Critical
Publication of KR102124553B1 publication Critical patent/KR102124553B1/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/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • 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/1658Programme controls characterised by programming, planning systems for manipulators characterised by programming language
    • 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/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/60Intended control result
    • G05D1/617Safety or protection, e.g. defining protection zones around obstacles or avoiding hazards
    • G05D1/622Obstacle avoidance
    • 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/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/092Reinforcement learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Automation & Control Theory (AREA)
  • Remote Sensing (AREA)
  • Human Computer Interaction (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Manipulator (AREA)

Abstract

일 실시예에 따르면, 제어 파라미터를 생성하는 방법 및 장치는 센서 입력들 을 수신하고, 센서 입력들에 따라 임의의 환경에 대응하는 복수의 상태들 중 결정한 제1 상태를 신경망에 입력하여 제1 상태에서 실행 가능한 액션들의 가치들을 결정하고, 가치들 중 제1 상태에서의 보상을 최대화하는 가치에 대응하는 액션을 최적의 액션으로 결정하며, 최적의 액션에 기초하여 장치를 위한 제어 파라미터를 생성한다.

Description

강화 학습에 기반하여 제어 파라미터를 생성하는 방법 및 장치{METHOD AND APPARATUS OF GENERATING CONTROL PARAMETER BASED ON REINFORCEMENT LEARNING}
아래의 실시예들은 강화 학습에 기반하여 제어 파라미터를 생성하는 방법 및 장치에 관한 것이다.
인공 지능 분야에서의 진보와 발전에 따라 공장과 같은 산업 라인뿐만 아니라 일상적인 사회 생활에서 인간과 상호 작용하는 소셜 로봇(social robot)이 개발되고 있다. 소셜 로봇은 산업용 로봇과는 달리 인간과 상호 작용하고, 환경과 상호 작용하며, 자신의 경험을 통해 학습할 수 있어야 한다.
학습 능력은 지능의 중요한 측면이다. 학습 능력을 갖춘 소셜 로봇은 환경에서 상호 작용하고, 지적 생명체와 자발적으로 그리고 지속적으로 유사한 경험을 통해 학습할 수 있어야 한다. 또한, 소셜 로봇은 자체 경험의 결과를 사용하고 시간이 지남에 따라 내적 보상 및 외적 보상을 극대화하는 것과 같은 장기 목표를 달성하기 위해 끊임없이 변화하는 환경에 적응할 수 있어야 한다.
일 실시예에 따르면, 레인지 센서(range sensor)와 융합된 깊이 영상을 사용하여 자율적인 학습을 위한 메모리 기반의 심층 강화 학습을 사용함으로써 장치를 위한 자체 학습 알고리즘을 설계할 수 있다.
일 실시예에 따르면, 강화 학습과 심층 신경망을 사용하여 자율적으로 장애물을 탐색하고 피할 수 있는 장치 자신의 경험으로부터 스스로 학습 할 수 있는 알고리즘을 생성할 수 있다.
일 실시예에 따르면, 장치가 알려지지 않은 환경이나 자체 환경의 변화에 자율적으로 그리고 지속적으로 적응할 수 있다.
일 실시예에 따르면, 깊이 센서 및 레인지 센서들 간의 센서 융합을 통해 깊이 측정의 정확성을 높일 수 있다.
일 실시예에 따르면, 장기 메모리 및 단기 메모리를 포함하는 메모리 기반의 구현을 통해 알 수 없는 환경의 서로 다른 장소들의 차이를 장치가 인식할 수 있다.
일 측에 따르면, 제어 파라미터를 생성하는 방법은 센서 입력들을 수신하는 단계; 상기 센서 입력들에 따라 임의의 환경에 대응하는 복수의 상태들 중 제1 상태를 결정 하는 단계; 상기 제1 상태를 신경망(neural networks)에 입력하여, 상기 제1 상태에서 실행 가능한 액션들의 가치들(values)을 결정하는 단계; 상기 가치들 중 상기 제1 상태에서의 보상(reward)을 최대화하는 가치에 대응하는 액션을 최적의 액션(optimal action)으로 결정하는 단계; 및 상기 최적의 액션에 기초하여 장치를 위한 제어 파라미터를 생성하는 단계를 포함한다.
상기 제1 상태를 결정하는 단계는 상기 복수의 상태들, 상기 액션들 및 상기 액션들에 대응하는 보상들을 누적적으로 저장하는 장기 메모리, 및 상기 제1 상태 및 상기 제1 상태의 이전 상태들을 저장하는 단기 메모리 중 적어도 하나를 이용하여 상기 제1 상태를 결정하는 단계를 포함할 수 있다.
상기 제1 상태를 결정하는 단계는 상기 센서 입력들에 대응하는 액션(action)을 선택 하는 단계; 및 상기 선택된 액션의 실행에 기초하여 상기 제1 상태를 결정하는 단계를 포함할 수 있다.
상기 액션을 선택하는 단계는 상기 환경에 대응하는 상태들 및 정책(policy)에 기초하여 상기 액션을 선택하는 단계를 포함할 수 있다.
상기 정책은 상기 센서 입력들에 대응하는 액션들을 상태들에 맵핑하는 엡실론 그리디(Epsilon-Greedy) 정책을 포함할 수 있다.
상기 제1 상태는 상기 제1 상태에서 실행 가능한 후보 액션들에 의한 복수의 단순 상태들(simple states)을 포함하는 슈퍼 상태(super state)일 수 있다.
상기 액션들의 가치들을 결정하는 단계는 상기 액션 및 상기 액션에 대응하는 최대 가치에 기초하는 최적의 액션-가치 함수를 추정하는 함수 근사자(function approximator)를 이용하여 상기 액셕들의 가치들을 결정하는 단계를 포함할 수 있다.
상기 최적의 액션-가치 함수는 상기 제1 상태에서 미리 설정된 횟수만큼 상기 액션을 수행한 후에 임의의 정책을 따르는 경우에 달성 가능한 최대 기대 수익(maximum expected return)을 나타낼 수 있다.
상기 최적의 액션으로 결정하는 단계는 상기 보상에 기초하여, 상기 보상을 최대화하는 가치에 대응하는 액션을 반복적으로 갱신함으로써 상기 제1 상태에서의 보상을 최대화하는 상기 최적의 액션을 결정하는 단계를 포함할 수 있다.
상기 최적의 액션으로 결정하는 단계는 상기 제1 상태에서 최대 가치를 갖는 액션을 선택하는 단계; 상기 제1 상태에서의 최대 가치와 상기 환경에서 상기 액션에 대응하는 보상을 사용하여 상기 액션의 가치를 갱신하는 단계; 및 상기 선택하는 단계 및 상기 갱신하는 단계를 반복적으로 수행함으로써 상기 제1 상태에서의 보상에 대응하는 최대로 할인된 보상을 획득하는 단계를 포함할 수 있다.
상기 센서 입력들은 깊이 센서(depth sensor) 및 적어도 하나의 레인지 센서(range sensor)를 포함할 수 있다.
상기 액션은 강화 학습 에이전트(agent)에 의해 수행되고, 미리 설정된 정책(policy)에 기초하여 결정될 수 있다.
상기 신경망은 컨볼루션 네트워크를 포함하는 심층 신경망을 포함할 수 있다.
상기 신경망은 상기 액션의 선택을 위하여 미리 설정된 정책에 기초하여 동작할 수 있는 시간차 기반의 강화 학습 방법에 의해 학습될 수 있다.
상기 보상은 최근접 장애물과의 거리에 기초하여 결정될 수 있다.
일 측에 따르면, 제어 파라미터를 생성하는 장치는 센서 입력들을 수신하는 통신 인터페이스; 및 상기 센서 입력들에 따라 임의의 환경에 대응하는 복수의 상태들 중 제1 상태를 결정하고, 상기 제1 상태를 신경망에 입력하여, 상기 제1 상태에서 실행 가능한 액션들의 가치들을 결정하고, 상기 가치들 중 상기 제1 상태에서의 보상을 최대화하는 가치에 대응하는 액션을 최적의 액션으로 결정하며, 상기 최적의 액션에 기초하여 장치를 위한 제어 파라미터를 생성하는 프로세서를 포함한다.
상기 제어 파라미터를 생성하는 장치는 상기 복수의 상태들, 상기 액션들 및 상기 액션들에 대응하는 보상들을 누적적으로 저장하는 장기 메모리; 및 상기 제1 상태 및 상기 제1 상태의 이전 상태들을 저장하는 단기 메모리를 포함하는 메모리를 더 포함하고, 상기 프로세서는 상기 메모리를 이용하여 상기 제1 상태를 결정할 수 있다.
상기 프로세서는 상기 액션 및 상기 액션에 대응하는 최대 가치에 기초하는 최적의 액션-가치 함수를 추정하는 함수 근사자를 이용하여 상기 액션들의 가치들을 결정할 수 있다.
상기 프로세서는 상기 보상에 기초하여, 상기 보상을 최대화하는 가치에 대응하는 액션을 반복적으로 갱신함으로써 상기 제1 상태에서의 보상을 최대화하는 상기 최적의 액션을 결정할 수 있다.
일 실시예에 따르면, 레인지 센서와 융합된 깊이 영상을 사용하여 자율적인 학습을 위한 메모리 기반의 심층 강화 학습을 사용함으로써 장치를 위한 자체 학습 알고리즘을 설계할 수 있다.
일 실시예에 따르면, 강화 학습과 심층 신경망을 사용하여 자율적으로 장애물을 탐색하고 회피하는 경험으로부터 스스로 학습 할 수 있는 알고리즘을 생성할 수 있다.
일 실시예에 따르면, 장치가 알려지지 않은 환경이나 자체 환경의 변화에 자율적으로 그리고 지속적으로 적응할 수 있다.
일 실시예에 따르면, 깊이 센서 및 레인지 센서들 간의 센서 융합을 통해 깊이 측정의 정확성을 높일 수 있다.
일 실시예에 따르면, 장기 메모리 및 단기 메모리를 포함하는 메모리 기반의 구현을 통해 알 수 없는 환경의 서로 다른 장소들의 차이를 장치가 인식할 수 있다.
도 1은 일 실시예에 따른 제어 파라미터를 생성하는 방법을 나타낸 흐름도.
도 2는 일 실시예에 따라 제어 파라미터를 생성하는 장치의 동작 흐름도.
도 3은 일 실시예에 따른 강화 학습 모듈의 프레임워크를 설명하기 위한 도면.
도 4는 일 실시예에 따른 센서 융합 및 상태 생성 방법을 설명하기 위한 도면.
도 5는 일 실시예에서 이용되는 메모리를 설명하기 위한 도면.
도 6은 일 실시예에 따른 복수의 상태들을 결합하여 새로운 상태를 생성함으로써 단기 메모리를 형상화하는 방법을 설명하기 위한 도면.
도 7은 일 실시예에 따라 레인지 센서들을 이용하여 보상을 계산하는 방법을 설명하기 위한 도면.
도 8은 일 실시예에 따른 심층 신경망의 구조를 설명하기 위한 도면.
도 9는 일 실시예에 따른 제어 파라미터를 생성하는 장치의 블록도.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 일 실시예에 따른 제어 파라미터를 생성하는 방법을 나타낸 흐름도이다. 도 1을 참조하면, 일 실시예에 따른 제어 파라미터를 생성하는 장치(이하, '생성 장치')는 센서 입력들을 수신한다(110). 생성 장치는 예를 들어, 깊이 센서(depth sensor) 및 적어도 하나의 레인지 센서(range sensor)를 포함할 수 있다. 센서 입력들은 깊이 센서 및 적어도 하나의 레인지 센서의 감지 결과들일 수 있다. 센서 입력들은 후술하는 강화 학습 모듈(도 2의 210 참조)의 상태를 형성할 수 있다. 생성 장치는 센서들을 융합하여 사용할 수 있다. 생성 장치가 센서들을 융합하여 사용하는 방법은 아래의 도 4를 참조하여 구체적으로 설명한다.
생성 장치는 센서 입력들에 따라 임의의 환경에 대응하는 복수의 상태들 중 제1 상태를 결정한다(120). 생성 장치는 예를 들어, 센서 입력들에 대응하는 액션(action)을 선택할 수 있다. 이때, 생성 장치는 환경에 대응하는 상태들 및 정책 (policy)에 기초하여 액션을 선택할 수 있다. 정책은 예를 들어, 센서 입력들에 대응하는 액션들을 상태들에 맵핑하는 엡실론 그리디 정책(epsilon greedy policy)일 수 있다. 생성 장치는 선택된 액션의 실행에 기초하여 제1 상태를 결정할 수 있다. 여기서, 액션은 예를 들어, 도 3에 도시된 강화 학습 에이전트(agent)(310)에 의해 수행되고, 미리 설정된 정책(policy)에 기초하여 결정될 수 있다. 생성 장치는 장기 메모리(long term memory) 및 단기 메모리(short term memory) 중 적어도 하나를 이용하여 제1 상태를 결정할 수 있다. 장기 메모리는 예를 들어, 복수의 상태들, 액션들 및 액션들에 대응하는 보상들을 누적적으로 저장할 수 있다. 단기 메모리는 예를 들어, 제1 상태 및 제1 상태의 이전 상태들을 저장할 수 있다. 예를 들어, 제1 상태가 t 시점에 대응하는 상태라고 하며, 제1 상태의 이전 상태들은 t-1 시점, t-2 시점에 대응하는 상태들일 수 있다. 제1 상태는 예를 들어, 제1 상태에서 실행 가능한 후보 액션들에 의한 복수의 단순 상태들(simple states)을 포함하는 슈퍼 상태(super state)일 수 있다. 생성 장치가 메모리를 이용하여 상태를 결정하는 방법 및 슈퍼 상태에 대하여는 아래의 도 6 내지 도 7을 참조하여 구체적으로 설명한다.
생성 장치는 제1 상태를 신경망(neural networks)에 입력하여, 제1 상태에서 실행 가능한 액션들의 가치들(values)을 결정한다(130). 신경망은 예를 들어, 컨볼루션 네트워크를 포함하는 심층 신경망 (모듈)일 수 있다. 신경망은 예를 들어, 심층 신경망(Deep Neural Network)(도 2의 215 참조)일 수 있다. 신경망의 구조는 아래의 도 9를 참조하여 구체적으로 설명한다.
신경망은 액션의 선택을 위하여 미리 설정된 정책에 기초하여 동작할 수 있는 시간차 기반의 강화 학습 방법(예를 들어, Q 러닝(Q-learning) 방법)에 의해 학습될 수 있다. 생성 장치는 액션 및 액션에 대응하는 최대 가치에 기초하는 최적의 액션-가치 함수를 추정하는 함수 근사자(function approximator)를 이용하여 액션들의 가치들을 결정할 수 있다. 여기서, 최적의 액션-가치 함수는 제1 상태에서 미리 설정된 횟수만큼 액션을 수행한 후에 임의의 정책을 따르는 경우에 달성 가능한 최대 기대 수익(maximum expected return)을 나타낼 수 있다.
생성 장치는 가치들 중 제1 상태에서의 보상(reward)을 최대화하는 가치에 대응하는 액션을 최적의 액션(optimal action)으로 결정한다(140). 생성 장치는 제1 상태에서의 보상에 기초하여, 보상을 최대화하는 가치에 대응하는 액션을 반복적으로 갱신함으로써 제1 상태에서의 보상을 최대화하는 최적의 액션을 결정할 수 있다. 생성 장치가 보상을 계산하는 방법은 아래의 도 8을 참조하여 구체적으로 설명한다.
단계(140)에서, 생성 장치는 제1 상태에서 최대 가치를 갖는 액션을 선택할 수 있다. 생성 장치는 제1 상태에서의 최대 가치와 환경에서 액션에 대응하는 보상을 사용하여 액션의 가치를 갱신할 수 있다. 생성 장치는 최대 가치를 갖는 액션을 선택하는 과정 및 액션의 가치를 갱신하는 과정을 반복적으로 수행함으로써 제1 상태에서의 보상에 대응하는 최대로 할인된 보상을 획득할 수 있다.
생성 장치는 최적의 액션에 기초하여 장치를 위한 제어 파라미터를 생성한다(150).
도 2는 일 실시예에 따라 제어 파라미터를 생성하는 장치의 동작 흐름도이다. 도 2를 참조하면, 일 실시예에 따른 생성 장치(200)는 예를 들어, 깊이 센서와 레인지 센서 신호에 포함된 센서 입력들(201)을 수신할 수 있다. 센서 입력들(201)은 일 실시예에 따른 강화 학습 모듈(reinforcement learning module)(210)의 상태(state)를 형성할 수 있다. 강화 학습 모듈(210)은 '강화 학습 모델'이라고도 부를 수 있다. 강화 학습 모듈(210)은 센서 입력들(201)에 따라 임의의 환경에 대응하는 복수의 상태들 중 어느 하나의 상태를 결정할 수 있다. 이때, 임의의 환경에 대응하는 복수의 상태들은 메모리(230)에 저장될 수 있다.
강화 학습 모듈(210)은 센서 입력들에 의해 형성된 상태와 정책(policy)에 의해 최적의 액션(best action)을 결정할 수 있다. 액션(action)을 실행하면, 생성 장치(200)의 상태(state)가 새로운 상태(new state)로 변경될 수 있다.
결과적으로, 어떤 액션이 최선인지에 대한 결정은 심층 신경망 모듈(215)에 의해 계산되는 특정 상태에서 각 액션의 가치에 따라 결정될 수 있다. 일 실시예에서 심층 신경망 모듈(215)은 강화 학습 모듈(210)의 함수 근사자(function approximator)로써 동작할 수 있다. 따라서, 강화 학습 모듈(210)의 상태는 심층 신경망 모듈(215)의 입력이 되고, 심층 신경망 모듈(215)의 출력은 특정 상태에서의 각 액션의 가치(value)일 수 있다. 강화 학습 모듈(210)은 액션을 선택하고 새로운 상태로 이동한 후, 센서 입력에 기초하여 보상(reward)을 산출할 수 있다. 이때, 보상은 생성 장치(200)에 의해 선택된 액션에 대한 환경의 응답으로 해석될 수 있다. 보상은 심층 신경망 모듈(215)에서 선택된 액션의 가치를 갱신하는 데에 사용될 수 있다.
강화 학습 모듈(210)에서 결정된 최적의 액션은 예를 들어, 로봇(또는 자율 주행 차량)(250)의 속도, 이동 방향 등을 제어하기 위한 제어 파라미터를 생성하는 데에 이용될 수 있다.
도 3은 일 실시예에 따른 강화 학습 모듈의 프레임워크를 설명하기 위한 도면이다. 강화 학습 모듈은 예를 들어, 도 2에 도시된 강화 학습 모듈(210)일 수 있다. 도 3을 참조하면, 강화 학습을 위한 에이전트(310) 및 환경(330)이 도시된다.
강화 학습(Reinforcement learning)은 기계 학습의 일종으로서, 어떤 환경에서 정의된 에이전트가 현재의 상태를 인식하여 선택 가능한 액션들 중 보상을 최대화하는 액션 혹은 액션 순서를 선택하는 학습 방법이다. 강화 학습에서 다루는 '환경'은 예를 들어, 마르코프 결정 과정(Markov Decision Process)으로 주어질 수 있다. 마르코프 결정 과정은 이산 시간 확률 제어 과정(discrete time stochastic control process)일 수 있다. 어떤 시점 t에, 마르코프 결정 과정은 어떤 상태 s에 존재할 수 있다. 마르코프 결정 과정의 의사 결정자는 해당 상태 s에서 어떤 액션 a를 취할 수 있고, 다음 시점 t+1에서 마르코프 결정 과정은 확률적으로 새로운 상태 s'로 전이할 수 있다. 이때, 의사 결정자는 상태 전이에 해당하는 보상 Ra (s, s')을 받을 수 있다. 기존의 상태 s 에서 새로운 상태 s'로 전이하는 확률은 의사 결정자의 액션, 즉 액션에 영향을 받을 수 있다. 즉, 전이 확률 함수는 Pa (s, s')와 같이 주어질 수 있다. 따라서, 다음 상태 s'는 현재 상태 s 와 액션 a 에만 영향을 받으며 이전의 모든 상태와는 확률적으로 독립적이다.
마르코프 결정 과정과 강화 학습이 다른 점은 다음과 같다. 강화 학습은 마르코프 결정 과정에 대한 지식을 요구하지 않는다는 점과, 강화 학습은 크기가 매우 커서 결정론적 방법을 적용할 수 없는 규모의 마르코프 결정 과정 문제를 다룰 수 있다는 점이다. 또한, 강화 학습은 입출력 쌍으로 이루어진 트레이닝 집합이 제시되지 않으며, 잘못된 액션에 대해서도 명시적으로 정정이 일어나지 않는다는 점에서 일반적인 지도 학습(supervised learning)과 상이하다.
일 실시예에서 따른 강화 학습은 기본적으로 전술한 마르코프 결정 과정으로 표현될 수 있다. 마르코프 결정 과정에서 상태 전이 확률(state transition probabilities)과 보상은 확률에 따른 값일 수도 있고, 이미 결정되어 있는 값일 수도 있다. 강화 학습이 원하지 않는 액션을 명시적으로 수정하는 지도 학습과 다른 점은 온라인 수행에 중심을 두고 있다는 점이다. 강화 학습은 아직 조사되지 않는 영역을 탐험하는 것과 이미 알고 있는 지식을 이용하는 것의 균형을 잡는 것이다.
일 실시예에 따른 강화 학습 모듈은 예를 들어, 환경 상태 집합(S), 액션 집합(A) 및 보상(∈ R)의 집합으로 구성될 수 있다.
매 시점 t 에 에이전트(310)는 자신의 상태(state) st ∈ S 와 가능한 액션(action) A(st)를 가지고 있다. 에이전트(310)는 어떤 액션 a ∈ A(st)을 취하고, 환경(330)으로부터 새로운 상태 st+ 1와 보상(reward) rt+1을 받을 수 있다. 이러한 상호 작용에 기반해서 에이전트(310)는 누적된 보상 R을 최대화 하는 정책(policy) ð: S→A을 결정 및/또는 이용할 수 있다.
예를 들어, 종료 상태(terminal state)가 존재하는 마르코프 결정 과정('유한 마르코프 결정 과정')에서의 보상은
Figure pat00001
이고, 그렇지 않은 마르코프 결정 과정('무한 마르코프 결정 과정')에서의 보상은
Figure pat00002
일 수 있다. 여기서 γ는 미래의 보상이 현재에 얼마나 가치 있는지를 표현하는 할인율(discount factor)로서, 예를 들어, 0과 1사이의 값일 수 있다.
자동화된 학습은 에이전트(310) 또는 로봇이 알려지지 않은 환경에 적응할 수 있게 한다. 강화 학습 모듈의 프레임워크는 자발적으로 액션을 수행하고, 사전에 정의된 보상 기능을 기반으로 각 가치를 측정함으로써 자동화된 학습을 수행하도록 할 수 있다. 에이전트(310)가 수행하는 액션들이 많을수록, 환경의 각 상태에 대응하는 최선의 액션에 대해 더 많은 정보를 얻을 수 있다.
일 실시예에서 에이전트(310)는 이산 시간 단계들(discrete time steps)에서 환경(330)과 상호 작용하고, 에이전트(330)는 각 시간 단계에서
Figure pat00003
인 센서 입력에 따라 고유의 상태
Figure pat00004
에 놓이게 된다. 각 에이전트(330)는 액션
Figure pat00005
을 취할 수 있고, 액션
Figure pat00006
는 현재의 정책
Figure pat00007
에 기초할 수 있다. 다음 시간 단계에서, 에이전트(310)의 상태는 이전 액션에 기초하여
Figure pat00008
로 변경되고, 현재 액션의 결과로서 에이전트는 보상 R을 수신한다.
일 실시예에서는 심층 신경망 모듈의 학습을 위한 별도의 환경 모델을 가지지 않기 때문에 모델 없는 오프 정책 방법(model-free off-policy method)인 Q 러닝(Q-learning) 방법을 사용할 수 있다.
Q 러닝(Q-learning) 방법은 환경 모델 없이 학습하는 강화 학습 기법 중 하나이다. Q 러닝 방법은 주어진 유한 마르코프 결정 과정의 최적의 정책을 찾기 위해 사용될 수 있다. Q 러닝 방법은 주어진 상태에서 주어진 액션을 수행하는 것이 가져다 줄 효용의 기대값을 예측하는 Q 함수를 학습함으로써 최적의 정책을 학습할 수 있다. 여기서, 정책이란 주어진 상태에서 어떤 액션을 수행할지 나타내는 규칙일 수 있다. Q 함수를 학습하고 나면 각 상태에서 최고의 Q 값을 주는 액션을 수행함으로써 최적의 정책을 유도할 수 있다. 일 실시예에서는 Q 러닝 방법을 이용함으로써 주어진 환경 모델이 없이도 수행하는 액션의 기대값을 비교할 수 있다. 뿐만 아니라 Q 러닝 방법은 전이가 확률적으로 일어나거나 보상이 확률적으로 주어지는 환경에서도 별다른 변형 없이 적용될 수 있다. Q 러닝 방법을 통해 임의의 유한 마르코프 결정 과정에 대하여 현재 상태에서 최대의 보상을 획득하는 최적의 정책을 학습할 수 있다.
Q 러닝 방법이 해결하고자 하는 문제는 하나의 에이전트(의사 결정자)(310), 상태의 유한 집합 S, 그리고 각 상태
Figure pat00009
에서 취할 수 있는 액션의 집합
Figure pat00010
으로 구성될 수 있다.
어떤 상태 s에서 어떤 액션
Figure pat00011
를 취하면 에이전트(310)는 이에 따른 보상을 얻을 수 있다. 에이전트(310)의 목표는 보상의 총합을 최대화하는 것이다. 이를 위해 에이전트(310)는 각 상태에서 어떤 액션을 취하는 것이 최적인지 학습해야 한다. 각 상태에서 최적의 액션이란, 그 상태에서 장기적으로 가장 큰 보상을 얻을 수 있도록 하는 액션을 의미한다. 장기적인 보상을 계산할 때에는 보통 할인된 보상의 총계(sum of discounted rewards)의 기대값을 계산하며, 여기서 지금으로부터
Figure pat00012
시간 후에 얻는 보상
Figure pat00013
Figure pat00014
만큼 할인되어
Figure pat00015
로 계산될 수 있다. 이 때
Figure pat00016
는 0과 1 사이의 값을 가지는 할인 인자로, 현재 얻는 보상이 미래에 얻는 보상보다 얼마나 더 중요한지를 나타내는 값일 수 있다.
일 실시예에 따른 Q 함수는 각 상태-액션 쌍(pair)에 대한 것으로서,
Figure pat00017
와 같이 표현할 수 있다. Q 함수는 초기값으로 고정된 임의의 값을 가질 수 있다. 각 시간 t에서 에이전트(310)는 어떠한 상태
Figure pat00018
에서 액션
Figure pat00019
를 취하여 새로운 상태
Figure pat00020
로 전이할 수 있다. 이 때 보상
Figure pat00021
가 얻어지며, Q 함수가 갱신될 수 있다. Q 함수는 예를 들어, 이전의 값과 새 값의 가중합(weighted sum)을 이용하여 아래의 [수학식 1]과 같이 표현될 수 있다.
Figure pat00022
여기서,
Figure pat00023
는 학습 속도 인자로, 0보다 크고 1보다 작거나 같은 값을 가진다. 도달한 상태
Figure pat00024
가 종결 상태일 경우 생성 장치의 에피소드 하나가 끝난다. 그러나, Q 러닝은 액션이 에피소드로 구성되지 않더라도 학습이 가능하다. 할인 인자
Figure pat00025
가 1보다 작을 경우 무한히 반복하더라도 할인된 총계는 유한하기 때문이다.
Q 러닝 방법은 액션 선택을 위한 엡실론 그리디 정책에 기초하여 동작할 수 있는 시간차 기반의 강화 학습 방법일 수 있다. Q 러닝 방법에서 정책의 목표는 시간이 지남에 따라 최대로 할인된 보상을 얻는 것이다. 이때, 최대로 할인된 보상은 각 상태에서 최대 가치를 갖는 액션을 선택하고, 다음 상태에서의 최대 액션 가치와 환경으로부터 받은 보상을 사용하여 가치를 갱신하는 방법을 반복적으로 수행함으로써 얻을 수 있다. 일 실시예에서는 미래의 보상들이 시간 스텝(time-step) 당 γ= 0.99인 팩터에 의해 할인된다는 표준 가정을 사용하므로 시간 t에서의 미래 할인 보상(Rt)은 아래의 [수학식 2]와 같이 표현할 수 있다.
Figure pat00026
여기서, T는 최종 시간 단계 또는 무한대(infinity)일 수 있다.
일 실시예에서는 최적의 액션-가치 함수(optimal action-value function)를, 아래의 [수학식 3]과 같이 상태 s에서 충분한 액션 a를 취한 후에 임의의 정책 ð을 따름으로써 달성 가능한 최대 기대 수익(maximum expected return)으로 정의할 수 있다.
Figure pat00027
일 실시예에서 사용되는 정책은 액션들을 상태들에 맵핑하는 엡실론-그리디 정책일 수 있다. 최적의 액션 가치 함수는 예를 들어, 아래의 [수학식 4]과 같이 벨만(bellman) 방정식에 기초하여 표현할 수 있다.
Figure pat00028
예를 들어, 액션 a = 0인 경우, [수학식 4]는 아래의 [수학식 5]와 같이 나타낼 수 있다.
Figure pat00029
최적의 액션 가치를 찾기 위해 많은 강화 학습 방법들을 사용할 수 있는데, 여기에는 일반화의 부재와 상태들의 개수와 같은 두 가지 주요한 문제가 있다. 일 실시예에서는 각 상태에서의 액션들의 최적의 Q 값을 찾기 위해 함수 근사(function approximator)를 사용할 수 있다. 일 실시예에서는 이를 Q 값 함수 근사자
Figure pat00030
라고 부르기로 한다.
일 실시예에서는 온라인 보상을 이용하여 Q 값을 최적화하기 위해 함수 근사자를 사용할 수 있다. 일 실시예에서는 함수 근사자를 최적화하기 위해 손실 함수 L을 아래의 [수학식 6]과 같이 정의할 수 있다. [수학식 6]에서 yi는 아래의 [수학식 7]에 해당할 수 있다.
Figure pat00031
여기서,
Figure pat00032
는 반복(iteration) 횟수에 해당할 수 있다. 손실 함수 L은 아래의 표 1에 기재된 것과 같이
Figure pat00033
로 표현할 수도 있다.
Figure pat00034
가중치와 관련하여 손실 함수 L을 차별화하면 아래의 [수학식 8]와 같은 그래디언트에 도달하고, 손실을 줄이기 위해 그래디언트 디센트(gradient descent)를 사용할 수 있다.
Figure pat00035
일 실시예에서 액션을 취하는 것은 상태 인식과 직접적으로 관련된다. 따라서 최적의 장애물 회피를 수행할 수 있도록 에이전트(310)에 대한 최적의 상태를 인식하는 것이 중요하다. 일 실시예에서는 최적의 상태 인식을 달성하기 위해 하나 이상의 유형의 센서를 사용할 수 있다.
도 4는 일 실시예에 따른 센서 융합 및 상태 생성 방법을 설명하기 위한 도면이다. 도 4를 참조하면, 하나의 깊이 센서(410) 및 세 개의 레인지 센서들(431, 432, 433)이 도시된다.
깊이 센서(410)는 예를 들어, 50cm ~ 5m의 깊이를 측정할 수 있다. 때문에 사각 지대를 커버하고 로봇의 깊이를 정확하게 측정하기 위해서는 다른 유형의 센서가 필요할 수 있다. 일 실시예에서는 다른 유형의 센서로서 복수 개의 레인지 센서들(431, 432, 433)을 이용할 수 있다. 일 실시예에서는 깊이 센서(410)의 제1 감지 결과(즉, 깊이 영상(420))를 획득한 후, 레인지 센서들(431, 432, 433) 각각의 제2 감지 결과에 의해 제1 감지 결과(420)를 보정할 수 있다.
일 실시예에서 레인지 센서들(431, 432, 433)은 예를 들어, -30도, 0도 및 +30도의 3 가지 각도(방향)로 전방 물체와 생성 장치 간의 거리를 측정할 수 있다. 예를 들어, 레인지 센서들(431, 432, 433) 각각이 50cm 미만의 거리에 있는 물체를 감지했다고 하자. 생성 장치는 레인지 센서들(431, 432, 433) 중 특정 레인지 센서(예를 들어, 레인지 센서들(431))가 커버하는 깊이 센서(410)의 영역인 영역(421)을 고려하여 레인지 센서(431)의 감지 결과에 의해 깊이 이미지(420)의 값을 변경할 수 있다. 생성 장치는 레인지 센서(431)의 신뢰할 수 있는 감지 결과에 의해 50cm 미만의 거리에서 깊이 센서(410)의 신뢰할 수 없는 값(제1 감지 결과(420))을 변경할 수 있다.
처리 시간을 줄이기 위해 일 실시예에서는 전술한 센서 융합 방법을 구현하고, 후술하는 메모리 기반 방식으로 새로운 상태를 생성할 수 있다. 이에 앞서, 생성 장치는 깊이 영상(420)을 예를 들어, 80 x 60 픽셀들로 조정(resize)할 수 있다. 일 실시예에서는 입력된 깊이 영상(420)을 왼쪽에서 오른쪽으로 세 부분(421, 423, 425)으로 나눌 수 있다. 생성 장치는 예를 들어, 깊이 영상(420)의 0 열부터 20열까지는 섹션 1(421)로, 깊이 영상(420)의 20열에서 60열까지는 섹션 2(423)로, 나머지는 섹션 3(425)으로 나눌 수 있다. 이때, 섹션들(421, 423, 425) 각각은 레인지 센서들(431, 432, 433) 각각에 의해 커버되는 것으로 간주될 수 있다. 예를 들어, 레인지 센서들(431, 432, 433) 각각에 의해 측정된 거리가 50 cm 미만인 경우, 생성 장치는 깊이 센서(410)가 깊이 영상의 해당 부분(해당 섹션)을 정확하게 측정할 수 없다는 결론을 내리고, 해당 부분(해당 섹션)의 값을 대응되는 레인지 센서의 값으로 변경할 수 있다.
도 5는 일 실시예에서 이용되는 메모리를 설명하기 위한 도면이다. 도 5를 참조하면, 일 실시예에 따른 장기 메모리(510) 및 단기 메모리(530)가 도시된다.
지적 생명체는 메모리(기억) 구조를 가질 수 있다. 메모리의 구조는 예를 들어, 단순한 버퍼(buffer)와 같을 수도 있고, 또는 단기 또는 장기 특성을 지닌 복잡한 메모리 구조일 수도 있다. 지적 생명체가 기억을 하는 주된 이유 중 하나는 과거에 일어난 일을 기억하여 장래에 최선의 액션을 선택하기 위해서이다.
일 실시예에서는 기억을 위해 장기 메모리(510) 및 단기 메모리(530)를 사용할 수 있다. 장기 메모리(510)는 예를 들어, 로봇 또는 생성 장치의 지난 50,000번의 이동들(moves)을 모두 포함하는 메모리 재생(memory replay)을 수행할 수 있다. 장기 메모리(510)는 50,000번의 이동들에 대응하는 상태
Figure pat00036
, 액션
Figure pat00037
, 상태
Figure pat00038
에서 전이되는 새로운 상태
Figure pat00039
, 및 보상
Figure pat00040
을 누적적으로 저장할 수 있다. 일 실시예에 따른 생성 장치는 장기 메모리(510)를 이용하여 스스로 학습하여 특정 조건에서의 액션 결과를 파악할 수 있다. 일 실시예에서는 심층 신경망을 학습하기 위해 메모리에 저장된 경험의 집단(batch)을 무작위로 선택함으로써, 예를 들어, DQN(Deep Q Network)과 유사한 방식으로 장기 메모리(510)를 사용할 수 있다.
단기 메모리(530)는 예를 들어, 로봇 또는 생성 장치의 최근 8 개의 상태들(또는 움직임들(movements))을 저장할 수 있다. 일 실시예에서는 유사한 상태들을 구분할 수 있도록 단기 메모리(530)를 사용할 수 있다.
도 6는 일 실시예에 따라 메모리를 이용하여 상태를 결정하는 방법을 설명하기 위한 도면이다. 도 6의 (a)를 참조하면, 일 실시예에 따른 생성 장치가 메모리(예를 들어, 단기 메모리)에 저장된 상태들(예를 들어, 상태 ① 및 상태 ②)을 함께 고려하여 다음 액션을 결정하는 시나리오가 도시된다. 또한, 도 6의 (b)를 참조하면, 생성 장치가 메모리를 사용하지 않고 현재 상태(예를 들어, 상태 ②)만을 고려하여 다음 액션을 결정하는 시나리오가 도시된다.
예를 들어, 메모리가 없다면, 생성 장치는 다음 액션에 대한 결정을 내리기 위해 현재 상태인 상태 ②만을 고려할 것이다. 하지만, 생성 장치가 메모리를 사용한다면 이전 상태인 상태 ①을 기억할 수 있고, 결과적으로 도 6의 (a) 및 (b) 각각의 상황에 대한 차이점을 인식할 수 있다. 상태 ①은 예를 들어, 오른쪽에 벽 등과 같은 장애물이 있는 상태에 해당할 수 있다.
도 6의 (a) 및 (b) 각각에서 생성 장치는 현재 상태(상태 ②)에 대응하여 동일하게 좌회전이라는 액션을 수행하므로 상태 ②만을 고려하는 것으로 보여질 수 있다.
하지만, 도 6의 (a)의 상황에서, 생성 장치는 상태 ②에 의해 좌회전을 하더라도 이는 상태 ①에 의해 오른쪽에 장애물(예를 들어, 벽)이 있으므로 우측으로 회전이 불가능한 상항임을 인지하고 수행하는 액션에 해당할 수 있다. 반면, 도 6의 (b)의 상황에서, 생성 장치는 상태 ②에 의해 좌회전을 하더라도 오른쪽에 장애물이 있음을 인지하지 못하므로 우측으로 회전이 가능한 상황으로 인지하고 수행하는 액션에 해당한다는 것에 차이점이 있다.
도 7은 일 실시예에 따른 복수의 상태들을 결합하여 새로운 상태를 생성함으로써 단기 메모리를 형상화하는 방법을 설명하기 위한 도면이다.
일 실시예에서는 전술한 차이점을 이용하여 도 7의 (a)에 도시된 것과 같이 복수개의 간단한 상태들(simple states)을, 도 7의 (b)에 도시된 것과 같이 복수 개의 간단한 상태들을 포함하는 하나의 슈퍼 상태(super state)로 향상시킬 수 있다. 하나의 슈퍼 상태는 하나의 새로운 상태(New State)가 될 수 있다.
여기서, 간단한 상태들은 예를 들어, 상태 ①(Move Forward), 상태 ②(Turn Left), 및 상태 ③(Turn Left)에 해당할 수 있다. 또한, 하나의 슈퍼 상태(즉, 새로운 상태)는 예를 들어, 전진하여 좌회전한 상태일 수 있다.
결과적으로, 도 7의 (b)에 도시된 새로운 상태(Smemory -based)는 아래의 [수학식 9]를 통해 얻을 수 있다.
Figure pat00041
도 8은 일 실시예에 따라 레인지 센서들을 이용하여 보상을 계산하는 방법을 설명하기 위한 도면이다. 일 실시예에 따른 강화 학습을 위한 에이전트는 자신이 수신하는 보상에만 기초하여 자신의 액션이 얼마나 좋은지 또는 나쁜지를 추정(예측)할 수 있다. 따라서, 올바르고 필요한 보상만을 정의하는 것이 중요하다.
도 8을 참조하면, 봇(Bot)(810) 및 봇(Bot)(810)에 최근접하는 장애물(830)이 도시된다. 일 실시예에 따른 에이전트(예를 들어, 봇(Bot)(810))는 예를 들어, [150, 150, 70]에 위치할 수 있다. 에이전트는 세 개의 레인지 센서들을 이용하여 최근접 장애물(830)과의 거리를 측정하고, 장애물(830)과의 거리에 기초하여 적절한 보상을 생성할 수 있다.
예를 들어, 에이전트가 장애물(830)에 매우 가까이 있는 경우, 에이전트는 음의 보상(negative reward)을 받을 수 있다. 또한, 어떠한 상황에서든 에이전트가 오른쪽 또는 왼쪽으로 회전하면 작은 음의 보상(예를 들어, -0.25)을 받을 수 있고, 앞에 장애물이 없을 때 에이전트가 앞으로 나아가면 에이전트는 작은 양의 보상(positive reward)(예를 들어, 0.5)을 받을 수 있다.
이러한 음의 보상 및 양의 보상은 에이전트가 가능할 때 앞으로 전진할 수 있는 충분한 경향을 제공하는 내적 동기(intrinsic motivation)로 간주될 수 있다. 보상은 외적 보상(
Figure pat00042
) 및 내적 보상(
Figure pat00043
)으로 구분될 수 있고, 예를 들어, 아래의 수학식 10과 같이 구할 수 있다.
Figure pat00044
여기서, 외적 보상은 각 센서들에 대한 보상에 해당하고, 내적 보상은 예를 들어, 봇(Bot)(810)의 수행한 액션(A)에 대한 보상에 해당할 수 있다.
도 9는 일 실시예에 따른 심층 신경망의 구조를 설명하기 위한 도면이다. 도 9를 참조하면, 일 실시예에 따른 심층 강화 학습에서 함수 근사자로서 사용되는 심층 신경망(900)의 구조가 도시된다.
예를 들어, 일 실시예에 따른 상태가 80 x 60 차원의 행렬이고, 각 차원은 0에서 255까지의 스칼라 값(scalar value)을 가질 수 있다고 가정하자. 이 경우, 사이즈 0의 메모리에 대한 총 상태들의 개수는 높은 상태 차원인 약 (80 60)80 이 될 수 있다. 이때, 사이즈 0의 메모리는 상태의 단 하나의 이미지에 대응할 수 있다.
일 실시예에서는 Q 러닝을 위한 q-테이블을 사용하는 대신하여 심층 신경망(900)과 같은 함수 근사자를 사용하여 상태들을 관리하고, 자체 경험에 따라 수신된 더 많은 샘플들을 사용하여 시간이 지남에 따라 상태들을 강화할 수 있다.
일 실시예에 따른 심층 신경망(900)은 예를 들어, {80 * 60 * n}의 입력들을 갖는 컨볼루셔널 신경망(Convolutional Neural Network)이고, 여기서, n은 단기 메모리에서의 영상들의 개수에 해당할 수 있다. 일 실시예에서는 n 에 0, 5, 6, 8 등을 사용할 수 있다.
심층 신경망(900)에 대한 입력은 실제로 (예를 들어, 메모리 사이즈 8을 갖는) 슈퍼 상태일 수 있다. 심층 신경망(900)의 3개의 출력은 예를 들어, 왼쪽으로 회전하고, 오른쪽으로 회전하고, 앞으로 움직이는 각 상태에서 가능한 모든 세 가지 액션들의 가치에 해당할 수 있다. 이때, 액션들의 수는 필요에 따라 증가될 수 있다.
심층 신경망(900)은 예를 들어, 512 개의 뉴런들 및 256 개의 뉴런들을 가진 3개의 컨볼루션 레이어들(convolutional layers) 및 2개의 완전 연결된 히든 레이어들(fully connected hidden layers)을 포함할 수 있다. 일 실시예에 따른 심층 신경망(900)의 뉴런 활성화 함수(activation function)는 선형인 마지막 하나를 제외하고 모든 레이어에서 ReLU(Rectified Linear Unit)일 수 있다.
일 실시예에서는 예를 들어,심층 신경망(900)의 학습 속도가 0.001인 Adam 최적화 방법을 정의하고, 심층 신경망(900)의 최적 학습을 위해 memory-reply 방법을 사용할 수 있다.
일 실시예에 따른 심층 신경망(900)의 강화 학습 방법은 아래의 [표 1]과 같이 나타낼 수 있다.
Figure pat00045
도 9는 일 실시예에 따른 제어 파라미터를 생성하는 장치의 블록도이다. 도 9를 참조하면, 일 실시예에 따른 생성 장치(900)는 센서들(910), 통신 인터페이스(930), 프로세서(950), 및 메모리(970)를 포함할 수 있다. 센서들(910), 통신 인터페이스(930), 프로세서(950), 및 메모리(970)는 통신 버스(905)를 통해 서로 연결될 수 있다.
센서들(910)은 센서 입력들을 획득할 수 있다.
통신 인터페이스(930)는 센서 입력들을 수신한다.
프로세서(950)는 센서 입력들에 따라 임의의 환경에 대응하는 복수의 상태들 중 제1 상태를 결정한다. 프로세서(950)는 제1 상태를 신경망에 입력하여 제1 상태에서 실행 가능한 액션들의 가치들을 결정한다. 프로세서(950)는 가치들 중 제1 상태에서의 보상을 최대화하는 가치에 대응하는 액션을 최적의 액션으로 결정한다. 프로세서(950)는 최적의 액션에 기초하여 장치를 위한 제어 파라미터를 생성한다.
프로세서(950)는 액션 및 액션에 대응하는 최대 가치에 기초하는 최적의 액션-가치 함수를 추정하는 함수 근사자를 이용하여 액션들의 가치들을 결정할 수 있다. 프로세서(950)는 보상에 기초하여, 보상을 최대화하는 가치에 대응하는 액션을 반복적으로 갱신함으로써 제1 상태에서의 보상을 최대화하는 최적의 액션을 결정할 수 있다.
메모리(970)는 장기 메모리 및 단기 메모리 중 적어도 하나를 포함할 수 있다. 장기 메모리는 예를 들어, 복수의 상태들, 액션들 및 액션들에 대응하는 보상들을 누적적으로 저장할 수 있다. 또한, 단기 메모리는 제1 상태 및 제1 상태의 이전 상태들을 저장할 수 있다. 프로세서(950)는 메모리(970)를 이용하여 제1 상태를 결정할 수 있다.
메모리(970)는 휘발성 메모리 또는 비 휘발성 메모리일 수 있다. 메모리(970)는 예를 들어, 프로세서(950)에 의해 실행될 때, 프로세서(950)가 도 1 내지 도 8과 관련하여 설명하는 과정들 중 어느 하나 또는 이들의 조합을 실행하도록 하는 명령어들을 저장할 수 있다.
한편, 본 발명에 따른 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성되어 마그네틱 저장매체, 광학적 판독매체, 디지털 저장매체 등 다양한 기록 매체로도 구현될 수 있다.
본 명세서에 설명된 각종 기술들의 구현들은 디지털 전자 회로 조직으로, 또는 컴퓨터 하드웨어, 펌웨어, 소프트웨어로, 또는 그들의 조합들로 구현될 수 있다. 구현들은 데이터 처리 장치, 예를 들어 프로그램가능 프로세서, 컴퓨터, 또는 다수의 컴퓨터들의 동작에 의한 처리를 위해, 또는 이 동작을 제어하기 위해, 컴퓨터 프로그램 제품, 즉 정보 캐리어, 예를 들어 기계 판독가능 저장 장치(컴퓨터 판독가능 매체) 또는 전파 신호에서 유형적으로 구체화된 컴퓨터 프로그램으로서 구현될 수 있다. 상술한 컴퓨터 프로그램(들)과 같은 컴퓨터 프로그램은 컴파일된 또는 인터프리트된 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 독립형 프로그램으로서 또는 모듈, 구성요소, 서브루틴, 또는 컴퓨팅 환경에서의 사용에 적절한 다른 유닛으로서 포함하는 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 하나의 사이트에서 하나의 컴퓨터 또는 다수의 컴퓨터들 상에서 처리되도록 또는 다수의 사이트들에 걸쳐 분배되고 통신 네트워크에 의해 상호 연결되도록 전개될 수 있다.
컴퓨터 프로그램의 처리에 적절한 프로세서들은 예로서, 범용 및 특수 목적 마이크로프로세서들 둘 다, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 다로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 요소들은 명령어들을 실행하는 적어도 하나의 프로세서 및 명령어들 및 데이터를 저장하는 하나 이상의 메모리 장치들을 포함할 수 있다. 일반적으로, 컴퓨터는 데이터를 저장하는 하나 이상의 대량 저장 장치들, 예를 들어 자기, 자기-광 디스크들, 또는 광 디스크들을 포함할 수 있거나, 이것들로부터 데이터를 수신하거나 이것들에 데이터를 송신하거나 또는 양쪽으로 되도록 결합될 수도 있다. 컴퓨터 프로그램 명령어들 및 데이터를 구체화하는데 적절한 정보 캐리어들은 예로서 반도체 메모리 장치들, 예를 들어, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(Magnetic Media), CD-ROM(Compact Disk Read Only Memory), DVD(Digital Video Disk)와 같은 광 기록 매체(Optical Media), 플롭티컬 디스크(Floptical Disk)와 같은 자기-광 매체(Magneto-Optical Media), 롬(ROM, Read Only Memory), 램(RAM, Random Access Memory), 플래시 메모리, EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM) 등을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로조직에 의해 보충되거나, 이에 포함될 수 있다.
또한, 컴퓨터 판독가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용매체일 수 있고, 컴퓨터 저장매체 및 전송매체를 모두 포함할 수 있다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 장치 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 장치들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징 될 수 있다는 점을 이해하여야 한다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시 예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시 예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 자명한 것이다.
900: 생성 장치
905: 통신 버스
910: 센서들
930: 통신 인터페이스
950: 프로세서
970: 메모리

Claims (20)

  1. 센서 입력들을 수신하는 단계;
    상기 센서 입력들에 따라 임의의 환경에 대응하는 복수의 상태들 중 제1 상태를 결정하는 단계;
    상기 제1 상태를 신경망(neural networks)에 입력하여, 상기 제1 상태에서 실행 가능한 액션들의 가치들(values)을 결정하는 단계;
    상기 가치들 중 상기 제1 상태에서의 보상(reward)을 최대화하는 가치에 대응하는 액션을 최적의 액션(optimal action)으로 결정하는 단계; 및
    상기 최적의 액션에 기초하여 장치를 위한 제어 파라미터를 생성하는 단계
    를 포함하는, 제어 파라미터를 생성하는 방법.
  2. 제1항에 있어서,
    상기 제1 상태를 결정하는 단계는
    상기 복수의 상태들, 상기 액션들 및 상기 액션들에 대응하는 보상들을 누적적으로 저장하는 장기 메모리, 및 상기 제1 상태 및 상기 제1 상태의 이전 상태들을 저장하는 단기 메모리 중 적어도 하나를 이용하여 상기 제1 상태를 결정하는 단계를 포함하는, 제어 파라미터를 생성하는 방법.
  3. 제1항에 있어서,
    상기 제1 상태를 결정하는 단계는
    상기 센서 입력들에 대응하는 액션(action)을 선택하는 단계; 및
    상기 선택된 액션의 실행에 기초하여 상기 제1 상태를 결정하는 단계
    를 포함하는, 제어 파라미터를 생성하는 방법.
  4. 제3항에 있어서,
    상기 액션을 선택하는 단계는
    상기 환경에 대응하는 상태들 및 정책(policy)에 기초하여 상기 액션을 선택하는 단계
    를 포함하는, 제어 파라미터를 생성하는 방법.
  5. 제4항에 있어서,
    상기 정책은
    상기 센서 입력들에 대응하는 액션들을 상태들에 맵핑하는 엡실론 그리디(Epsilon-Greedy) 정책을 포함하는, 제어 파라미터를 생성하는 방법.
  6. 제1항에 있어서,
    상기 제1 상태는
    상기 제1 상태에서 실행 가능한 후보 액션들에 의한 복수의 단순 상태들(simple states)을 포함하는 슈퍼 상태(super state)인, 제어 파라미터를 생성하는 방법.
  7. 제1항에 있어서,
    상기 액션들의 가치들을 결정하는 단계는
    상기 액션 및 상기 액션에 대응하는 최대 가치에 기초하는 최적의 액션-가치 함수를 추정하는 함수 근사자(function approximator)를 이용하여 상기 액셕들의 가치들을 결정하는 단계
    를 포함하는, 제어 파라미터를 생성하는 방법.
  8. 제7항에 있어서,
    상기 최적의 액션-가치 함수는
    상기 제1 상태에서 미리 설정된 횟수만큼 상기 액션을 수행한 후에 임의의 정책을 따르는 경우에 달성 가능한 최대 기대 수익(maximum expected return)을 나타내는, 제어 파라미터를 생성하는 방법.
  9. 제1항에 있어서,
    상기 최적의 액션으로 결정하는 단계는
    상기 보상에 기초하여, 상기 보상을 최대화하는 가치에 대응하는 액션을 반복적으로 갱신함으로써 상기 제1 상태에서의 보상을 최대화하는 상기 최적의 액션을 결정하는 단계
    를 포함하는, 제어 파라미터를 생성하는 방법.
  10. 제1항에 있어서,
    상기 최적의 액션으로 결정하는 단계는
    상기 제1 상태에서 최대 가치를 갖는 액션을 선택하는 단계;
    상기 제1 상태에서의 최대 가치와 상기 환경에서 상기 액션에 대응하는 보상을 사용하여 상기 액션의 가치를 갱신하는 단계; 및
    상기 선택하는 단계 및 상기 갱신하는 단계를 반복적으로 수행함으로써 상기 제1 상태에서의 보상에 대응하는 최대로 할인된 보상을 획득하는 단계
    를 포함하는, 제어 파라미터를 생성하는 방법.
  11. 제1항에 있어서,
    상기 센서 입력들은
    깊이 센서(depth sensor) 및 적어도 하나의 레인지 센서(range sensor)를 포함하는, 제어 파라미터를 생성하는 방법.
  12. 제1항에 있어서,
    상기 액션은
    강화 학습 에이전트(agent)에 의해 수행되고, 미리 설정된 정책(policy)에 기초하여 결정되는, 제어 파라미터를 생성하는 방법.
  13. 제1항에 있어서,
    상기 신경망은
    컨볼루션 네트워크를 포함하는 심층 신경망을 포함하는, 제어 파라미터를 생성하는 방법.
  14. 제1항에 있어서,
    상기 신경망은
    상기 액션의 선택을 위하여 미리 설정된 정책에 기초하여 동작할 수 있는 시간차 기반의 강화 학습 방법인 Q-learning 방법에 의해 학습되는, 제어 파라미터를 생성하는 방법.
  15. 제1항에 있어서,
    상기 보상은
    최근접 장애물과의 거리에 기초하여 결정되는, 제어 파라미터를 생성하는 방법.
  16. 제1항 내지 제15항 중에서 어느 하나의 항의 방법을 실행시키기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체.
  17. 센서 입력들을 수신하는 통신 인터페이스; 및
    상기 센서 입력들에 따라 임의의 환경에 대응하는 복수의 상태들 중 제1 상태를 결정하고, 상기 제1 상태를 신경망에 입력하여, 상기 제1 상태에서 실행 가능한 액션들의 가치들을 결정하고, 상기 가치들 중 상기 제1 상태에서의 보상을 최대화하는 가치에 대응하는 액션을 최적의 액션으로 결정하며, 상기 최적의 액션에 기초하여 장치를 위한 제어 파라미터를 생성하는 프로세서
    를 포함하는, 제어 파라미터를 생성하는 장치.
  18. 제17항에 있어서,
    상기 복수의 상태들, 상기 액션들 및 상기 액션들에 대응하는 보상들을 누적적으로 저장하는 장기 메모리; 및
    상기 제1 상태 및 상기 제1 상태의 이전 상태들을 저장하는 단기 메모리를 포함하는 메모리
    중 적어도 하나를 더 포함하고,
    상기 프로세서는
    상기 메모리를 이용하여 상기 제1 상태를 결정하는, 제어 파라미터를 생성하는 장치.
  19. 제17항에 있어서,
    상기 프로세서는
    상기 액션 및 상기 액션에 대응하는 최대 가치에 기초하는 최적의 액션-가치 함수를 추정하는 함수 근사자를 이용하여 상기 액션들의 가치들을 결정하는, 제어 파라미터를 생성하는 장치.
  20. 제17항에 있어서,
    상기 프로세서는
    상기 보상에 기초하여, 상기 보상을 최대화하는 가치에 대응하는 액션을 반복적으로 갱신함으로써 상기 제1 상태에서의 보상을 최대화하는 상기 최적의 액션을 결정하는, 제어 파라미터를 생성하는 장치.
KR1020180171729A 2018-06-25 2018-12-28 심층 강화 학습을 이용한 자율 이동체의 충돌 회피 및 자율 탐사 기법 및 장치 KR102124553B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180072690 2018-06-25
KR1020180072690 2018-06-25

Publications (2)

Publication Number Publication Date
KR20200010982A true KR20200010982A (ko) 2020-01-31
KR102124553B1 KR102124553B1 (ko) 2020-06-18

Family

ID=69369474

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180171729A KR102124553B1 (ko) 2018-06-25 2018-12-28 심층 강화 학습을 이용한 자율 이동체의 충돌 회피 및 자율 탐사 기법 및 장치

Country Status (1)

Country Link
KR (1) KR102124553B1 (ko)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220102395A (ko) * 2021-01-13 2022-07-20 부경대학교 산학협력단 자율주행 차량 군집 운행을 위한 비신호 교차로에서의 강화학습기반 통행 개선을 위한 장치 및 방법
KR20230046909A (ko) * 2021-09-30 2023-04-06 서울대학교산학협력단 비-구조화된 주행 환경을 위한 자율 주행 방법 및 장치
KR20230142202A (ko) * 2022-04-01 2023-10-11 전북대학교산학협력단 지능형 자율비행을 위한 액터-크리틱 심층강화학습 기반 목표점 추정 및 충돌회피 기법을 이용하는 자율 비행 플랫폼
CN117151928A (zh) * 2023-09-05 2023-12-01 广州大学 结合强化学习的节电计算方法及装置
CN117806831A (zh) * 2024-02-23 2024-04-02 荣耀终端有限公司 参数配置方法及相关设备
WO2024096607A1 (ko) * 2022-11-02 2024-05-10 네이버랩스 주식회사 하이브리드 주행 알고리즘 기반 주행 정책 결정 방법 및 시스템
CN118114746A (zh) * 2024-04-26 2024-05-31 南京邮电大学 基于贝尔曼误差的方差最小化强化学习机械臂训练加速方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017189859A1 (en) * 2016-04-27 2017-11-02 Neurala, Inc. Methods and apparatus for pruning experience memories for deep neural network-based q-learning
WO2018151215A1 (ja) * 2017-02-20 2018-08-23 株式会社安川電機 制御装置及び制御方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017189859A1 (en) * 2016-04-27 2017-11-02 Neurala, Inc. Methods and apparatus for pruning experience memories for deep neural network-based q-learning
KR20180137562A (ko) * 2016-04-27 2018-12-27 뉴럴라 인코포레이티드 심층 신경망 기반의 큐-러닝을 위한 경험 기억을 프루닝하는 방법 및 장치
WO2018151215A1 (ja) * 2017-02-20 2018-08-23 株式会社安川電機 制御装置及び制御方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220102395A (ko) * 2021-01-13 2022-07-20 부경대학교 산학협력단 자율주행 차량 군집 운행을 위한 비신호 교차로에서의 강화학습기반 통행 개선을 위한 장치 및 방법
KR20230046909A (ko) * 2021-09-30 2023-04-06 서울대학교산학협력단 비-구조화된 주행 환경을 위한 자율 주행 방법 및 장치
KR20230142202A (ko) * 2022-04-01 2023-10-11 전북대학교산학협력단 지능형 자율비행을 위한 액터-크리틱 심층강화학습 기반 목표점 추정 및 충돌회피 기법을 이용하는 자율 비행 플랫폼
WO2024096607A1 (ko) * 2022-11-02 2024-05-10 네이버랩스 주식회사 하이브리드 주행 알고리즘 기반 주행 정책 결정 방법 및 시스템
CN117151928A (zh) * 2023-09-05 2023-12-01 广州大学 结合强化学习的节电计算方法及装置
CN117806831A (zh) * 2024-02-23 2024-04-02 荣耀终端有限公司 参数配置方法及相关设备
CN118114746A (zh) * 2024-04-26 2024-05-31 南京邮电大学 基于贝尔曼误差的方差最小化强化学习机械臂训练加速方法
CN118114746B (zh) * 2024-04-26 2024-07-23 南京邮电大学 基于贝尔曼误差的方差最小化强化学习机械臂训练加速方法

Also Published As

Publication number Publication date
KR102124553B1 (ko) 2020-06-18

Similar Documents

Publication Publication Date Title
KR102124553B1 (ko) 심층 강화 학습을 이용한 자율 이동체의 충돌 회피 및 자율 탐사 기법 및 장치
CN112937564B (zh) 换道决策模型生成方法和无人车换道决策方法及装置
Ma et al. Informative planning and online learning with sparse gaussian processes
CN108292139B (zh) 由机器人同时进行地图绘制和规划
EP3136304A1 (en) Methods and systems for performing reinforcement learning in hierarchical and temporally extended environments
US20170004406A1 (en) Parallel belief space motion planner
CN110956148A (zh) 无人车的自主避障方法及装置、电子设备、可读存储介质
JP2006320997A (ja) ロボット行動選択装置及びロボット行動選択方法
Mohanty et al. Application of deep Q-learning for wheel mobile robot navigation
US20210374549A1 (en) Meta-learned, evolution strategy black box optimization classifiers
US20240253228A1 (en) Method of generating program for robotic process
Bakker Reinforcement learning by backpropagation through an LSTM model/critic
Gök Dynamic path planning via Dueling Double Deep Q-Network (D3QN) with prioritized experience replay
Yuwono et al. Model-based learning on state-based potential games for distributed self-optimization of manufacturing systems
Cavalletti et al. Lyapunov-based switching control using neural networks for a remotely operated vehicle
Le et al. Model-based Q-learning for humanoid robots
US20240202393A1 (en) Motion planning
Nair et al. Multi Robotic Path Planning in a Static Environment
CN116100539A (zh) 基于深度强化学习的机械臂自主动态避障方法及系统
Prescott Explorations in reinforcement and model-based learning
Gross et al. Sensory-based Robot Navigation using Self-organizing Networks and Q-learning
US20220101196A1 (en) Device for and computer implemented method of machine learning
David et al. Beyond Digital Twin, Innovative Use of AI/ML Technology from Ideation to Design of Next Generation Electric Drive Systems
Bielitz et al. Identification of dynamic systems assisted by an autoregressive recurrent model
KR102564075B1 (ko) Rfid 기반 입출고 재고 관리 솔루션 제공 방법, 장치 및 시스템

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right