본문 바로가기

강의/Udacity ML

3.9 AWS DeepRacer를 활용한 강화학습

SMALL

기본용어

Agent

교육 중인 소프트웨어를 에이전트라고 한다. 에이전트는 목표에 도달하기 위해 환경에서 결정을 내린다.

AWS DeepRacer 차량으로 트랙을 최대한 빨리 도는 것이 목표이며, 어떤 경우에는 장애물을 피하는 것도 목표이다.

 

Evironment

환경은 우리 요원들이 상호작용하는 주변 영역이다. AWS DeepRacer의 경우 시뮬레이터 또는 실제 환경에서 트랙이다.

 

State

상태는 환경 내에서 에이전트에 표시되거나 알려진 현재 위치에 의해 정의된다. AWS DeepRacer의 경우 각 상태는 카메라에 캡처된 이미지이다. 차량의 초기 상태는 트랙의 출발선이며, 종단 상태는 차량이 랩을 완료하거나 장애물에 부딪히거나 트랙을 벗어나 주행하는 경우이다.

 

Action

모든 State에 대해 에이전트는 목표를 달성하기 위한 조치를 취해야 한다. AWS DeepRacer 차량이 커브를 돌 때 가속 또는 제동 중 하나를 선택하여 좌회전, 우회전 또는 직진할 수 있다.

 

Reward

지정된 상태에서 수행하는 각 작업에 대한 피드백이 에이전트에 제공된다. 이 피드백은 숫자 보상이다. 보상기능은 트랙의 다른 구역에 보상으로써 점수를 할당하는 인센티브 플랜이다.

 

Episode

에피소드는 에이전트가 결정을 내리고 환경에서 피드백을 받는 시행착오의 기간을 나타낸다. AWS DeepRacer의 경우, 차량이 출발 위치에서 출발하면 에피소드가 시작되고, 차량이 랩을 마치면 장애물에 부딪히거나 트랙을 벗어나면 터미널 상태에서 종료된다.

 


강화 학습 모델에서는 에이전트가 자체 조치의 피드백을 사용하여 시행착오를 통해 대화형 실시간 환경에서 학습한다.  피드백은 보상의 형태로 제공된다.

 

AWS DeepRacer에 직접 넣기 : RL에서의 실무자의 역할

AWS DeepRacer는 자율적일 수 있지만, 여전히 모델의 성공에 중요한 역할을 해야 한다. 

 

알고리즘은 컴퓨터가 무엇을 해야 하는지를 알려주는 명령 집합이다. ML은 컴퓨터가 명시적으로 프로그래밍되지 않고 학습할 수 있도록 하기 때문에 특별합니다.

 

교육 알고리즘은 모델의 학습 목표를 정의하며, 이는 총 누적 보상을 최대화하는 것이다. 알고리즘마다 이 작업을 수행하는 전략이 다르다. 

소프트 액터 비평가(SAC)는 탐구를 수용하고 데이터 효율적이지만 안정성이 부족할 수 있다.

근위부 정책 최적화(PPO)는 안정적이지만 데이터가 많이 필요합니다.

 

작업 공간은 에이전트가 환경과 상호 작용할 때 사용할 수 있는 모든 유효한 작업 또는 선택 항목의 집합입니다.

이산 작용 공간은 유한한 조향 각도와 스로틀 값 조합에서 각 상태에 대해 요원의 가능한 모든 작용을 나타낸다.

연속 작업 공간을 사용하면 에이전트가 각 상태에 대해 정의한 값 범위에서 작업을 선택할 수 있습니다.

 

하이퍼파라미터는 교육 중에 에이전트의 성능을 제어하는 변수이다. 실험할 다양한 범주가 있다. 모형의 여러 부분에 대한 영향을 늘리거나 줄이려면 값을 변경한다. 예를 들어, 학습 속도는 각 단계에서 얼마나 많은 새로운 경험이 학습에 반영되는지를 제어하는 하이퍼 파라미터이다. 학습률이 높을수록 교육 속도가 빨라지지만 모델의 품질은 저하될 수 있다.

 

보상 기능의 목적은 에이전트가 목표에 도달하도록 장려하는 것이다. 어떤 행동이 가장 중요한 직업 중 하나인지 보상하는 방법을 알아내는 것이다.

 


AWS DeepRacer를 통한 강화 학습 실행

AWS DeepRacer의 교육 환경에서 레이스 트랙에 매핑된 그리드로 보상 기능을 상상하고 그래프에 표시된 메트릭스로 시각화하여 학습한 개념을 실행에 옮긴다. 또한 이러한 유형의 기계 학습에만 있는 중요한 과제인 탐험과 이용(exploitation) 사이의 균형을 도입한다.

 

보상 기능에 대해 기억해야 할 핵심 사항:

그리드의 각 주에 보상 기능별 점수가 할당됩니다. 트랙에서 주행하고자 하는 부분에 가장 높은 번호를 부여하여 고속 주행을 완료하려는 차량의 목표를 뒷받침하는 행동을 촉진한다. 보상 기능은 에이전트가 방금 취한 조치가 좋은지 나쁜지, 얼마나 좋은지 나쁜지를 판단하는 데 도움이 되는 실제 코드에 해당한다.

 

탐색 대 이용에 대해 기억해야 할 핵심 사항:

자동차가 처음 출발할 때, 임의의 방향으로 헤매면서 탐험하지만, 에이전트는 교육을 많이 받을수록 환경에 대해 더 많이 학습한다. 이러한 경험을 통해 선택한 작업에 대한 자신감을 높일 수 있다. 이용이란 자동차가 목표 달성을 돕기 위해 이전 경험의 정보를 이용하거나 사용하기 시작하는 것을 의미한다. 다른 교육 알고리즘은 탐험과 이용을 다르게 활용한다.

 

보상 그래프에 대해 기억해야 할 핵심 사항:

AWS DeepRacer 콘솔에서 차량을 교육하는 동안 보상 그래프에 교육 지표가 표시된다. 각 에피소드의 총 보상을 표시하면 시간이 지남에 따라 모델이 어떻게 작동하는지 알 수 있다. 더 많은 보상을 받을수록 모델이 더 나은 성능을 발휘한다.

 

AWS DeepRacer에 대해 기억해야 할 핵심 사항:

학습을 시작하는 데 AWS DeepRacer 디바이스가 필요하지 않다. 지금 AWS 콘솔에서 시작할 수 있습니다. AWS 콘솔의 3D 시뮬레이터는 교육 및 평가가 이루어지는 곳이다.

 


새 용어

탐색 대 이용 (Exploration versus exploitation)

에이전트는 더 높은 누적 보상을 얻기 위해 이전 경험에서 얻은 알려진 정보를 활용해야 하지만, 또한 미래에 최선의 조치를 선택하는데 사용될 수 있는 새로운 경험을 얻기 위해 탐색해야 한다.

 

 

 

 

SMALL

'강의 > Udacity ML' 카테고리의 다른 글

3.13 연습 해설  (0) 2021.07.14
3.10 AWS DeepRacer를 활용한 강화학습  (0) 2021.07.13
3.8 강화학습과 적용  (0) 2021.07.12
3.6 AWS 를 사용한 예제 프로젝트  (0) 2021.07.12
3.5 AWS DeepLens와 컴퓨터비전  (0) 2021.07.10