안녕하세요, 저는 R & D Center, Scsk Co., Ltd.의 Saito
첫 번째 세션에서는 깊은 강화 슬롯 무료체험에 대한 개요를 설명했습니다.
OpenAi Gym에서 제공하는 환경을 사용하여 깊은 강화 슬롯 무료체험을 쉽게 구현할 수 있다고 생각합니다.
그러나 환경이 항상 직면 한 도전에 대비할 수있는 것은 아닙니다.
실제로는 그렇지 않은 경우 더 많은 경우가있을 수 있습니다.
그래서 두 번째 할부에서 우리는 스스로 생성 된 환경에서 깊은 강화 슬롯 무료체험을 구현하려고 노력할 것입니다.
이번에는 "라인 트레이서"에 집중하고 싶습니다.
라인 트레이서
라인 트레이서는 추적하는 선입니다 (선).
라인 트레이서 자체는 강화 학습없이 실현 될 수 있습니다.
라인에 있는지 여부를 결정하기 위해 두 개의 센서가있는 기계를 준비 할 수 있다고 가정합니다.
나머지는 다음 두 가지 규칙을 구현하여 간단히 달성 할 수 있습니다.
1. 두 센서가 모두 응답하지 않으면 똑바로 이동
2. 센서가 응답하면 응답 한 센서 방향으로 구부립니다

매우 간단한 규칙이므로 구현하기 쉽지만 이번에는 깊은 강화 슬롯 무료체험을 사용하여 라인 추적기의 규칙을 찾습니다.
깊은 강화 슬롯 무료체험으로 구현
1 부에서 언급 한 바와 같이, 깊은 강화 슬롯 무료체험은 "에이전트", "환경"및 "세 가지 상호 작용"을 정의해야합니다.

에이전트
깊은 강화 슬롯 무료체험으로 구현하므로 신경망을 구현하십시오.
그러나 이번에는 신경망의 중간 계층 구조와 슬롯 무료체험 알고리즘을 이전 카트 폴과 동일하게 설정합니다.
신경망의 입력/출력은 카트 폴과 다릅니다. 관찰 할 "상태"수와 선택할 수있는 "조치"의 수에 따라 다릅니다.
환경
라인 트레이서 본체와 추적 할 내용을 정의해야합니다.
라인 트레이서 자체는 에이전트의 지침을 받으면 조치를 취하는 환경입니다.
Navy Blue Circle은 선 트레이서 본체를 나타내고 분홍색 원은 라인에 있는지 여부를 결정하는 센서를 나타냅니다.
어떤 줄에는 아무런 문제가 없지만이 시간 동안 이해의 용이성을 위해 아래에 표시된 것과 같은 간단한 모양을 추적 할 것입니다.

또한, 이번에 해결 될 문제를 단순화하기 위해 운동 저항을 고려하지 않을 것입니다.
3 개의 상호 작용
● 액션
에이전트가 취할 수있는 행동을 정의합니다.
아래 다이어그램에서 노란색 화살표로 표시된 7 방향 내에서 한 방향으로 진행할 것이라고 가정합니다.

● 조건
에이전트가 관찰 할 수있는 환경의 요소를 정의합니다.
추적기에는 라인에 있는지 여부를 결정하는 여러 센서가 장착되어 있으므로 값은 상태입니다.
라인 트레이서의 위의 설명에는 두 개의 센서가 장착되어 있지만
이번에는 정확도를 향상시키기 위해 총 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 개의 상호 작용 설계가 필요합니다.
나는 두 세션에서 깊은 강화 슬롯 무료체험의 좋은 점과 나쁜 점을 공유 할 수 있다고 생각합니다.
다음에, 우리는 다른 사례를 기반으로 깊은 강화 슬롯 무료체험을위한 기술을 소개 할 것입니다.
*Chainer (R)는 일본 및 기타 국가에서 Wederred Networks Inc.의 상표 또는 등록 상표입니다.
그렇지 않으면,이 컨텐츠 내에서 사용되는 제품 및 서비스의 이름은 각 회사 또는 조직의 상표 또는 등록 상표입니다.