인공지능/강화학습

matlab 강화학습 onramp 4 - 보상에 행동 포함하기

이게될까 2024. 5. 9. 01:22
728x90
728x90

보상에 행동을 포함시킬 수 있다.

주행과 브레이크를 반복적으로 하는게 아니라 가속을 최소화 해야되는 것과 같다.

여기서 시차 오류가 발생하는데 유닛 딜레이를 사용해서 오류를 없앨 수 있다.

 

창고 로봇의 활동 줄이기



전략을 세울 때는 대개 가능한 한 적은 수고를 들여 목표를 달성할 수 있는 방법을 찾습니다. 예를 들어 로봇의 행동은 병진력과 회전력이며 배터리 에너지를 소모합니다. 따라서 가급적 불필요한 행동을 하지 않도록 만들면 배터리 부하를 줄이고 한 번의 배터리 충전으로 로봇이 더 많은 일을 수행할 수 있습니다.

이제 Simulink 모델에서 제어기의 행동이 (Unit Delay를 거쳐 그 행동이 야기한 새로운 상태 관측값과 짝을 맞추어) 보상 함수에 다시 전달됩니다. 이는 행동이 보상 계산에 포함될 수 있다는 의미입니다.

function r = rewardfun(state,action,madeit,collided)

x = state(1)/10;
y = state(2)/10;
omega = state(6);

r = 0.05*exp(-8*x^2) + 0.06*exp(-3*y) - 0.14 - 0.001*omega^2 ...
    + 5*madeit - 2*collided - 0.01*(action(1)^2 + action(2)^2);
end

행동 벌점의 크기를 조정하여 목표 달성 대비 행동 제한의 중요도를 변경할 수 있습니다. 이 예제의 기본 목표는 로봇을 성공적으로 조작하는 것입니다. 행동 벌점 항이 너무 크면 로봇은 목표 달성을 위한 최소한의 행동을 취하기보다는 아무런 행동도 하지 않도록 학습할 수 있습니다.

 

강화 학습 환경을 만들 때는 일반적으로 환경 동특성의 Simulink 모델부터 시작합니다. 행동은 시스템에 대한 입력값을 제어합니다. 관측 가능 변수가 출력값이 됩니다.

강화 학습 환경을 만들 때는 일반적으로 환경 동특성의 Simulink 모델부터 시작합니다. 행동은 시스템에 대한 입력값을 제어합니다. 관측 가능 변수가 출력값이 됩니다.RL 에이전트를 사용할 경우 행동과 관측값은 각각의 단일 신호입니다. Vector Concatenate 블록 같은 것을 사용하여 개별 관측값을 단일 배열로 결합할 수 있습니다. Selector 블록을 사용하여 행동 신호를 개별 행동으로 분할할 수 있습니다.

환경은 보상도 제공해야 합니다. 대개 보상은 관측 가능 변수에서 계산되고, 경우에 따라 행동에서도 계산됩니다. 하지만 보상은 에이전트에서 관측할 수 없는 다른 환경 변수에 따라 달라질 수도 있습니다.

마찬가지로, 환경은 주사위 게임에서 목표값이 0에 도달하거나 로봇이 장애물에 부딪히는 등의 상황에서 시뮬레이션이 종료되어야 하는지 결정해야 합니다. 보상처럼, 종료 조건은 관측 가능 변수나 기타 내부 변수에 따라 달라질 수 있습니다.

RL Agent 블록을 Simulink 모델에 추가합니다. 이제 환경의 입력값과 출력값이 RL Agent 블록의 입력값과 출력값을 미러링합니다.

RL Agent 블록을 Simulink 모델에 추가합니다. 이제 환경의 입력값과 출력값이 RL Agent 블록의 입력값과 출력값을 미러링합니다.환경의 출력값이 RL Agent 블록에 대한 입력값이 됩니다. RL Agent 블록의 출력값은 행동 선택이고, 이것이 환경에 대한 입력값이 됩니다.

환경의 출력값이 RL Agent 블록에 대한 입력값이 됩니다. RL Agent 블록의 출력값은 행동 선택이고, 이것이 환경에 대한 입력값이 됩니다.

RL Agent 블록은 에이전트를 표현하는 변수 이름에 해당하는 단일 파라미터를 가집니다. 이 변수는 모델을 실행하기 전에 또는 에이전트를 훈련시키기 전에 MATLAB 작업 공간에 있어야 합니다.

이 챕터에서는 Simulink 환경을 표현하는 변수를 만드는 방법을 살펴보았습니다. 이 변수에는 RL Agent 블록과 Simulink 모델의 이름을 포함하는 정보가 들어 있습니다. 이 변수를 통해 MATLAB의 에이전트와 Simulink의 환경 모델 간에 통신이 가능합니다.

다음 챕터에서는 MATLAB에서 에이전트를 만드는 방법을 알아봅니다

 

728x90