SAC와 연속 제어

대학원 · 연구 적용 실습

연속 입력의 제어 문제에서 탐색과 입력 비용을 함께 고려하고, 단순 제어기와 비교합니다.

실습 전에

01 연속 행동의 숫자는 어떤 물리량일까요?

설명

SAC는 연속 행동의 확률적 정책을 학습하며 보상과 Entropy를 함께 고려합니다. 행동의 숫자 범위와 실제 토크·전압 등의 단위를 구분합니다.

02 같은 SAC를 다른 제어 문제에 그대로 연결해도 될까요?

설명

Pendulum의 각도 표현·보상·시간 제한과 Motor의 Angular Velocity Tracking 문제를 대응시킵니다. 같은 알고리즘이라도 입력·목적이 다르면 평가 지표도 달라집니다.

실행 조건

필요한 패키지가 없으면 Colab·Jupyter 코드 셀에서 %pip install control==0.10.2 gymnasium==1.3.0 stable-baselines3==2.9.2를 실행하세요.

적용 사례

구동계의 추종 성능과 입력 비용

각 실험에서 일정한 Reference Angular Velocity를 추종하는 합성 1차 Motor 모델입니다. 학습은 목표 1, 평가는 0.5·1·1.5에서 구분합니다.

Observation·State
Angular Velocity ω/5\omega/5, 목표 r/2r/2.
행동
연속 a∈[−1,1]a\in[-1,1], 실제 입력 u=2au=2a.
Reward·Constraint
−((r−ω)2+0.05u2)-((r-\omega)^2+0.05u^2). |ω|>5|\omega|>5에서 종료, 100 step에서 시간 제한.
비교 기준
동일 입력 제한의 P 제어.
확인할 지표
추종 RMSE, 평균 u², 안전 종료 수. 목표별 분리 평가.

공조·열 공정 제어

온도 편차와 에너지 사용을 함께 줄이는 제어 문제의 설계 사례입니다.

Observation·State
온도·목표·외기 조건·최근 입력. 지연이 크면 이력 포함.
행동
제한된 연속 가열·냉각 출력.
Reward·Constraint
온도 오차와 에너지 비용. 안전 한계는 보상과 별도 지표로도 기록.
비교 기준
온도 조절기, PI 제어.
확인할 지표
오차, 에너지, 한계 위반 시간. 외기 조건별 분리 평가.

이산·연속 행동 선택이 알고리즘과 맞는지 먼저 확인합니다. 자신의 도메인에서는 규칙 제어를 같은 정보·입력 제한으로 비교합니다.

실습

실습용 노트북 미리보기실습용 노트북 다운로드

1. 규칙 제어와 SAC

시작 조건

합성 Motor, dt=0.1 s, 입력 u∈[−2,2]u\in[-2,2], 학습 Reference Angular Velocity 1입니다. 목표 0.5·1·1.5에서 평가합니다.

진행 방법

  1. 기준 정책의 성능을 먼저 기록하세요. 제공된 Wrapper의 관측·행동 범위와 reset/step 반환값을 확인합니다.
  2. 2048 Transition의 짧은 학습을 실행하고 동일 조건에서 결정적으로 평가하세요.
  3. 기준보다 개선된 지표와 악화된 지표를 분리하고, 짧은 학습의 한계를 해석하세요.

남길 결과

합성 모델에서 a∈[−1,1]a\in[-1,1]인 Action은 u=2a∈[−2,2]u=2a\in[-2,2]인 모델 입력에 대응합니다. uu의 물리 단위는 지정하지 않았습니다.

기록 항목과 확인할 점
정책
목표 속도
평가 Return
추종 RMSE
평균 u²
안전 종료

확인할 점

  • 학습 Return과 원래 단위의 평가 지표를 구분했는가?
  • 실제 장비 대신 합성 모델에서 먼저 검증했는가?

2. SAC를 공개 연속 제어 환경으로 옮기기

시작 조건

Pendulum-v1, SAC 2048 Transition입니다. Motor의 Angular Velocity Observation과 달리 cosθ·sinθ·Angular Velocity 관측을 사용합니다.

진행 방법

  1. 공식 환경 설명에서 관측·토크 범위·보상·시간 제한을 찾아 Motor와 대응시키세요.
  2. Zero torque·Random·짧게 학습한 SAC를 같은 seed=100…102에서 비교하세요.
  3. Return과 동작을 해석하고, 실제 연구 환경으로 옮길 때 바꿔야 할 관측·보상·입력 제한을 적으세요.

남길 결과

기록 항목과 확인할 점
정책
환경
학습량
Return 평균·표준편차
종료 유형

확인할 점

  • Pendulum 점수를 Motor 점수와 직접 비교하지 않았는가?
  • 짧은 학습을 Swing-up 성공으로 가정하지 않고 실제 결과를 확인했는가?

3. 본인의 연구 문제로 옮기기

시작 조건

앞의 실험을 바탕으로 Queue·Motor 또는 본인의 연구 문제 하나를 선택해, 실제 적용을 위한 실험을 설계합니다.

진행 방법

  1. State·Observation·Action·Reward·종료·시간 제한을 표 한 장으로 정의하세요. 각 변수의 단위와 실제로 얻을 수 있는 정보를 적습니다.
  2. 예상 Transition 3개를 수치로 적어, 좋은 행동과 나쁜 행동의 보상이 의도에 맞는지 확인하세요.
  3. 규칙 기반 비교 기준 한 개, 평가 조건 한 개, 가장 우려되는 실패 사례 한 개를 정하세요. 필요한 실측 자료나 Simulator도 적습니다.

남길 결과

앞서 선택한 연구 문제와 설계 표를 이어서 사용해도 됩니다. 이번 활동에서 배운 개념으로 기존 항목과 Transition 예를 다시 검토하고, 변경한 항목이나 그대로 둔 이유를 갱신하세요.

기록 항목과 확인할 점
항목
구체적 정의·단위
관측 가능 여부·확인 방법

확인할 점

  • 미래 정보나 평가 Label을 관측에 넣지 않았는가?
  • 학습 Return만으로 연구 기여를 판단하지 않고, 해당 도메인의 지표를 정했는가?

공식 예제·데이터