일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 인공지능
- 프로그래밍언어
- Yes
- 머신러닝
- 자료구조
- 프로그래밍
- 컴퓨터비전
- 알고리즘
- 클라우드컴퓨팅
- 네트워크
- 데이터베이스
- 웹개발
- I'm Sorry
- 2
- 코딩
- 자바스크립트
- 딥러닝
- 데이터과학
- 버전관리
- 사이버보안
- 데이터구조
- 데이터분석
- 파이썬
- 네트워크보안
- 보안
- 컴퓨터과학
- 빅데이터
- 소프트웨어공학
- 컴퓨터공학
- 소프트웨어
- Today
- Total
스택큐힙리스트
강화 학습. PPO를 사용하여 물체 주위를 주행하기 본문
저는 산업용 로봇을 신경망으로 운전할 수 있도록 연구 중입니다. 지금까지는 잘되고 있습니다. OpenAI 기반 PPO 알고리즘을 사용하여, 다음과 같은 보상 전략을 사용하여 쉽게 지점에서 지점으로 주행할 수 있습니다:
나는 대상과 위치 사이의 정규화된 거리를 계산합니다. 그리고 그것과의 거리 보상을 계산합니다.
rd = 1-(d/dmax)^a
각 시간 단계마다, 저는 에이전트에게 계산된 벌칙을 부여합니다.
yt = 1-(t/tmax)*b
a와 b는 조정해야하는 하이퍼파라미터입니다.
내가 말한대로, 이것은 지점에서 지점으로 운전하려면 정말 잘 작동합니다. 하지만 무언가 주위를 돌아다니려면 어떻게 될까요? 제 일상적인 일에서, 충돌을 피하기 위해 물체 주위를 운전해야 할 필요가 있습니다. 물체가 가장 가까운 경로의 정면이 아니라면 괜찮습니다. 그러면 로봇은 적응해서 주위를 운전합니다. 그러나 물체가 가장 가까운 경로와 정면에 있는 경우 운전하기가 점점 더 어려워집니다.
나는 이미 PPO와 NES를 결합하여 신경망 매개 변수에 대한 가우시안 잡음을 생성하는 paper를 읽었지만, 스스로 구현할 수 없다.
PPO 알고리즘에 더 많은 탐사 기능을 추가하는 경험이 있거나 보상 전략을 개선하는 일반적인 아이디어가 있는 사람이 있나요?
답변 1
당신이 묘사한 것은 사실 Deep RL의 가장 중요한 연구 분야 중 하나인 탐색 문제입니다.
PPO 알고리즘 (다른 표준 RL 알고리즘과 마찬가지로)는 환경에서 제공하는 (보통 할인된) 보상의 합인 수익을 최대화하려고 시도합니다.
당신의 경우, 당신은 난해한 기울기 문제를 가지고 있습니다. 당신의 반환 값들의 기울기가 당신의 목표점을 바로 향하기 때문에 (당신의 보상이 목표까지의 거리이기 때문에), 당신의 에이전트가 다른 지역을 탐색하는 것을 저해합니다.
여기 this paper에서 속임수 그라디언트 문제의 예시가 나와 있습니다. 보상은 당신의 것과 같이 계산되며, 보상 함수의 그라디언트는 목적지인 작은 사각형을 직접 가리킵니다 (이 예시에서는). 만약 당신의 에이전트가 미로의 오른쪽 하단 부분에서 시작한다면, 당신은 지역 최적해에 갇히게 될 가능성이 높습니다.
RL에서 탐색 문제를 다루는 여러 가지 방법이 있습니다. 예를 들어 PPO에서는 액션에 노이즈를 추가할 수 있습니다. SAC과 같은 다른 접근 방식은 액션 공간에서 보상과 정책의 엔트로피를 최대화하려고합니다. 그러나 결국 액션 공간에 탐색 노이즈를 추가하면 상태 공간 (실제로 탐색하려는 것인 환경의 (x, y) 위치)의 효율성을 보장할 수 없습니다.
저는 RL에서 탐색 문제를 해결하기 위한 매우 유망한 분야인 Quality Diversity (QD) 문헌을 읽어 볼 것을 추천합니다.
여기 두 가지 멋진 자원이 있습니다:
A website gathering all informations about QD
A talk from ICLM 2019
마지막으로, 문제가 보상 함수 그 자체에 있다는 것을 알려드리고 싶습니다. 복잡한 보상 함수를 고안하여 에이전트가 원하는 대로 동작하도록 하는 것은 잘못된 방법입니다. 목표는, 기만성 그래디언트 문제와 같은 함정을 극복하면서도 환경을 풀어나갈 수 있는 에이전트를 갖는 것입니다.
답변 2
강화 학습 (Reinforcement Learning)은 머신 러닝의 한 분야로, 지속적인 시행착오를 겪으면서 문제를 해결하는 방식입니다. 이러한 강화 학습 기술을 사용하여, 자율 주행 자동차가 장애물을 피해 주행할 수 있도록 만들 수 있습니다.기본적으로, 강화 학습은 '에이전트'라는 컴퓨터 프로그램이 어떤 행동을 했을 때 보상을 받거나 벌을 받게 되는 방식으로 학습을 진행합니다. 이것은 인간이 배우는 방식과 매우 비슷합니다. 예를 들어, 어린 아이가 다리에 손가락을 놓을 때 부모가 '아니'라고 말하면 그 아이는 처음에는 이해하지 못하지만, 몇 번 반복하면 다리에 비싼 물건이 있는 경우 그것을 만지려 하지 않도록 배울 것입니다.
강화 학습을 사용하여 자율 주행 자동차가 장애물을 피해 주행할 수 있도록 구현하는 것은 매우 중요합니다. 그리고 이것은 Proximal Policy Optimization(PPO) 알고리즘을 이용하여 구현됩니다. PPO는 정책 기반(policy-based) 강화 학습 알고리즘으로, 현재 가장 널리 사용되는 알고리즘 중 하나입니다.
PPO 알고리즘은 신경망을 사용하여 상태(state)에 따른 행동(action)을 결정합니다. 그리고 이 행동은 환경(environment)에서 실행되어, 반환된 보상(reward)에 따라 학습이 진행됩니다. 예를 들어, 자율 주행 자동차가 장애물을 피해 주행하는 동안, 강화 학습 알고리즘은 장애물을 피하는 행동이 얼마나 좋은지를 평가하고, 그에 따라 정책(policy)을 업데이트합니다. 이러한 과정을 반복하면서, 자율 주행 자동차는 최적의 행동을 결정하는 방법을 학습하게 됩니다.
따라서, Proximal Policy Optimization(PPO)를 사용하는 강화 학습 알고리즘은 자율 주행 자동차가 장애물을 피해 주행하는 것을 가능하게 합니다. 이러한 기술은 미래에 우리가 이용하는 자동차가 더욱 안전하게 운행되도록 핵심 기술 중 하나입니다.