아니오. 2 "자신의 환경에서의 깊은 강화 슬롯 무료체험"(1/1)

기술 스페셜

두 번째 2 자신의 슬롯 무료체험 무료체험 깊은 강화 슬롯 무료체험 무료체험

깊은 슬롯 무료체험 무료체험 슬롯 무료체험 무료체험

안녕하세요, 저는 R & D Center, Scsk Co., Ltd.의 Saito

첫 번째 세션에서는 깊은 강화 슬롯 무료체험에 대한 개요를 설명했습니다.
OpenAi Gym에서 제공하는 환경을 사용하여 깊은 강화 슬롯 무료체험을 쉽게 구현할 수 있다고 생각합니다.
그러나 환경이 항상 직면 한 도전에 대비할 수있는 것은 아닙니다.
실제로는 그렇지 않은 경우 더 많은 경우가있을 수 있습니다.
그래서 두 번째 할부에서 우리는 스스로 생성 된 환경에서 깊은 강화 슬롯 무료체험을 구현하려고 노력할 것입니다.

이번에는 "라인 트레이서"에 집중하고 싶습니다.

라인 트레이서

라인 트레이서는 추적하는 선입니다 (선).

라인 트레이서 자체는 강화 학습없이 실현 될 수 있습니다.
라인에 있는지 여부를 결정하기 위해 두 개의 센서가있는 기계를 준비 ​​할 수 있다고 가정합니다.
나머지는 다음 두 가지 규칙을 구현하여 간단히 달성 할 수 있습니다.

1. 두 센서가 모두 응답하지 않으면 똑바로 이동
2. 센서가 응답하면 응답 한 센서 방향으로 구부립니다

Linetrace

매우 간단한 규칙이므로 구현하기 쉽지만 이번에는 깊은 강화 슬롯 무료체험을 사용하여 라인 추적기의 규칙을 찾습니다.

깊은 강화 슬롯 무료체험으로 구현

1 부에서 언급 한 바와 같이, 깊은 강화 슬롯 무료체험은 "에이전트", "환경"및 "세 가지 상호 작용"을 정의해야합니다.

관계 2

에이전트

깊은 강화 슬롯 무료체험으로 구현하므로 신경망을 구현하십시오.
그러나 이번에는 신경망의 중간 계층 구조와 슬롯 무료체험 알고리즘을 이전 카트 폴과 동일하게 설정합니다.
신경망의 입력/출력은 카트 폴과 다릅니다. 관찰 할 "상태"수와 선택할 수있는 "조치"의 수에 따라 다릅니다.

환경

라인 트레이서 본체와 추적 할 내용을 정의해야합니다.

라인 트레이서 자체는 에이전트의 지침을 받으면 조치를 취하는 환경입니다.
Navy Blue Circle은 선 트레이서 본체를 나타내고 분홍색 원은 라인에 있는지 여부를 결정하는 센서를 나타냅니다.

트레이서

어떤 줄에는 아무런 문제가 없지만이 시간 동안 이해의 용이성을 위해 아래에 표시된 것과 같은 간단한 모양을 추적 할 것입니다.

대상

또한, 이번에 해결 될 문제를 단순화하기 위해 운동 저항을 고려하지 않을 것입니다.

3 개의 상호 작용

● 액션
에이전트가 취할 수있는 행동을 정의합니다.
아래 다이어그램에서 노란색 화살표로 표시된 7 방향 내에서 한 방향으로 진행할 것이라고 가정합니다.

Action

● 조건
에이전트가 관찰 할 수있는 환경의 요소를 정의합니다.
추적기에는 라인에 있는지 여부를 결정하는 여러 센서가 장착되어 있으므로 값은 상태입니다.
라인 트레이서의 위의 설명에는 두 개의 센서가 장착되어 있지만
이번에는 정확도를 향상시키기 위해 총 5 개의 센서가 배치됩니다.

● 보상
보상을 다음과 같이 정의합니다.

  • 블랙에 응답하는 센서 수에 따라 최대 1 포인트를 포기
  • 검은 색에 응답하지 않는 경우 1 점을 제공
  • 에이전트가 이미지 밖으로 나가면 -10 점을 제공

에이전트는이 보상을 높이는 법을 배워야합니다.

ChainErrl과 함께 구현

이번에는 환경의 이미지 파일입니다target.png, 자신의 환경을위한 파이썬 파일로ENV_LINE_TRACE.PY, 훈련을위한 파이썬 파일로ChainErrl_line_trace.py준비되었습니다.
여기를 추출하십시오.

● 환경 이미지
target.png에 적용됩니다.
이번에는 추적 대상이 이미지에서로드 되므로이 이미지를 변경하면 추적 대상이 변경됩니다.

이 이미지가 라이센스가 부여된다는 점에 유의하십시오CC0.
대상

● 자신의 환경을위한 Python 파일
ENV_LINE_TRACE.PY에 적용됩니다.
이 파일은 환경뿐만 아니라 세 가지 상호 작용을 정의합니다.
이 소스 코드가MIT 라이센스에 따라 허용되어야한다.

나는 마지막 카트 폴에서 openaigym을 사용했기 때문에 필요하지는 않았지만 이번에는 내 자신의 환경을 정의 할 것입니다.

이 Python 파일은 OpenCV라는 라이브러리를 사용하여 슬롯 무료체험 과정을 그립니다.
설치하려면 다음 명령을 실행하십시오.

PIP 설치 OpenCV-Python

또한 첫 번째 할부에 ChainERRL을 설치하지 않은 경우 설치하십시오.

자신의 환경을 조성 할 때의 핵심 사항 중 하나는 OpenAi 체육관에서 환경 클래스를 물려 받는다는 것입니다.
OpenAi 체육관 환경 클래스를 상속하면 환경을보다 쉽게 ​​만들 수 있습니다.
클래스 정의 할 때클래스 클래스 이름 (Gym.core.env) :처럼 상속합시다.

또한 ChainErrl을 사용할 때는 step () 및 reset () 함수의 두 가지 함수를 정의해야합니다.

1. 단계 () 기능 :
환경에서 동작을 반영하는 함수.
이 기능은 다음과 같은 처리를 수행합니다.

  • 에이전트로부터 행동 받기
  • 당신의 행동을 환경에 반영
  • 상태 및 보상 계산
  • 한 번의 시도를 완료할지 결정
  • 재판을 마치 겠다는 상태, 보상 및 결정을 반환합니다

중간 계산은 해결되는 문제에 따라 다르므로 계산 방법에 대한 설명은 생략됩니다.
이 라인 추적기는 주로 다음 계산을 수행합니다.

  • 트레이서 바디 이동
  • 대상에서 센서 정보를 획득하고 블랙 라인에 응답하는 센서 수를 계산합니다
  • 트레이서가 화면이없고 지정된 수의 시도가 반복되었는지 확인
'' '

2. Reset () 함수 :
환경 초기화 기능.
이것은 모든 시도의 시작 부분에서 호출되며 초기화시 상태를 반환합니다.

라인 트레이서는 주로 추적자 본체를 초기 위치로 되돌리는 것입니다.

# 환경을 초기화하고 상태를 반환합니다

환경과 세 가지 상호 작용은 해결해야 할 문제에 따라 스스로 생각할 수밖에 없습니다.
이것을 올바르게 정의하는 것은 깊은 강화 슬롯 무료체험에서 가장 중요하고 가장 힘들다.
또한 해결해야 할 문제에 따라 수학 및 물리에 대한 광범위한 지식이 필요할 수 있습니다.

● 슬롯 무료체험을위한 Python 파일
ChainErrl_line_trace.py에 적용됩니다.
이 소스 코드가MIT 라이센스에 따라 허용되어야한다.

이전 카트 폴과 달리 우리는 우리 자신의 환경을 사용합니다.
그러나 학습 알고리즘은 변경되지 않았으며 다음 환경을 호출하는 부분 만 변경되었습니다.

  • env = gym.make ( 'cartpole-v0')env = Envlinetrace (5, 7, 'target.png')

이것은 자신의 Python 파일을 사용하여 배울 수 있습니다.

또한, test_episode () 함수 이번에는 슬롯 무료체험 후 작업을 점검하는 기능이므로 학습에는 영향을 미치지 않습니다.

슬롯 무료체험 do

이제 코드가 준비되었으므로 실제로 배우도록합시다.
학습은 세 개의 파일이있는 디렉토리에서 다음 명령을 실행하여 시작합니다.

Python ChainerRl_line_trace.py

슬롯 무료체험 후line_trace_agent라는 폴더에 저장됩니다.

다음, 다음 명령을 실행하여 학습 결과의 동작을 확인할 수 있습니다.

Python ChainerRl_line_trace.py -test

또한 검은 색 라인에서 달리는 것에 대해서만 보상함으로써 배웠습니다.
동일한 훈련 된 모델을 사용하더라도 다른 모양으로 검은 선을 추적 할 수 있습니다.

또한 상태와 행동을 쉽게 변경할 수 있으므로 관심이 있으시면 조건과 슬롯 무료체험을 바꾸십시오.

결론

두 번째 세션에서 우리는 우리 자신의 환경에서 깊은 강화 슬롯 무료체험을 수행했습니다.
환경과의 세 가지 상호 작용을 정의하는 것은 쉽지 않지만, 일단 준비하면 배울 수 있습니다.

그러나 반면에 강화 슬롯 무료체험은 정의 할 수없는 문제를 해결할 수 없습니다.
첫 번째 기사에서 언급했듯이, 적합하지 않거나 적합하지 않은 세 가지 기계 슬롯 무료체험 방법이 있습니다.
과제가 강화 학습에 적합한 지 여부를 결정할 때 환경을 정의 할 수 있는지 여부와 세 가지 상호 작용을 고려하는 것이 좋습니다.

감독 슬롯 무료체험에서 좋은 결과를 얻으려면 좋은 슬롯 무료체험 데이터가 필요했습니다.
깊은 강화 슬롯 무료체험에서는 좋은 결과를 얻으려면 좋은 환경과 3 개의 상호 작용 설계가 필요합니다.

나는 두 세션에서 깊은 강화 슬롯 무료체험의 좋은 점과 나쁜 점을 공유 할 수 있다고 생각합니다.
다음에, 우리는 다른 사례를 기반으로 깊은 강화 슬롯 무료체험을위한 기술을 소개 할 것입니다.

슬롯 무료체험 무료체험