My Blog

나만의 커스텀 강화학습 환경설계(전이함수)


전이함수 정의

전이함수는 상태(state)와 행동(action)에 의존하여 다음 상태로의 전이 확률을 제공하는 함수입니다. 이를 수학적으로 표현하면 다음과 같습니다: P(s′∣s,a) 여기서: P는 전이확률을 나타냅니다. s는 현재 상태(current state)입니다. a는 현재 행동(action)입니다. s′ 는 다음 상태(next state)입니다. 이 함수는 특정 상태 s에서 행동 a를 취했을 때, 다음 상태 s′로 전이될 확률을 나타냅니다. 전이함수가 중요한 이유는 강화학습을 하기 위해서는 에이전트가 활동하고 탐험하고 학습할 수 있는 환경이 반드시 필요합니다. 이때 현재 상태에서 에이전트의 행동에 따른 다음의 상태를 그냥 랜덤으로만 할수 없고 이를 규정짓는 일정한 규칙이 있을 수 있습니다. 이 규칙을 에이전트가 모르는 상태에서 탐험과 학습을 해 나가는 것인데, 처음부터 설계자가 이 환경을 아는 경우도 있고 모르는 경우도 있습니다. 이처럼 설계자가 환경을 아느냐 모르느냐는 상태의 다음 상태를 만들어주는 전이함수로 인해 환경의 동역학을 해결했냐고 볼수 있습니다. 전이함수의 역할 전이함수는 강화학습의 핵심 요소로서, 환경의 동적 특성을 정의합니다. 에이전트가 특정 상태에서 어떤 행동을 취할 때, 환경이 어떻게 변화할지를 모델링합니다. 이는 다음과 같은 역할을 수행합니다. 환경 모델링: 환경의 동작 방식을 수학적으로 모델링하여 에이전트가 미래의 상태를 예측할 수 있게 합니다. 정책 평가 및 개선: 전이확률을 이용하여 에이전트의 정책(policy)을 평가하고 개선합니다. 이는 가치 함수(value function)와 정책 함수(policy function)를 학습하는 데 필수적입니다. 계획 및 예측: 전이함수를 통해 여러 시나리오를 시뮬레이션하고, 최적의 행동을 계획할 수 있습니다. 수학적 표현과 계산 전이함수는 일반적으로 확률적 모델로 표현되며, 이산 상태 공간(discrete state space)과 연속 상태 공간(continuous state space) 모두에서 사용할 수 있습니다. 이산 상태 공간에서는 전이함수를 행렬 형태로 표현할 수 있습니다. 상태 공간의 크기가 S이고 행동 공간의 크기가 A일 때, 전이함수는 S×A×S 차원의 텐서(tensor)로 표현됩니다. 각 요소 P(s′∣s,a)는 다음 상태 s′로 전이될 확률을 나타냅니다. 연속 상태 공간에서는 전이함수를 확률 밀도 함수(probability density function, pdf)로 표현합니다. 이 경우, 전이확률은 특정 상태와 행동 쌍에 대한 다음 상태의 확률 분포로 나타낼 수 있습니다.

강화학습 알고리즘에서의 활용

전이함수는 다양한 강화학습 알고리즘에서 중요한 역할을 합니다. 주요 알고리즘에서의 활용 예는 다음과 같습니다: 모델 기반 강화학습(Model-Based RL): 전이함수를 명시적으로 모델링하여 에이전트가 환경을 시뮬레이션하고, 이를 바탕으로 정책을 학습합니다. 모델 자유 강화학습(Model-Free RL): 전이함수를 명시적으로 모델링하지 않고, 경험을 통해 가치 함수를 직접 학습합니다. 대표적인 예로는 Q-러닝(Q-Learning)과 SARSA가 있습니다. 이 경우, 전이함수는 암묵적으로 경험 리플레이(experience replay)나 함수 근사(function approximation)를 통해 학습됩니다. 정책 반복(Policy Iteration) 및 가치 반복(Value Iteration): 전이함수를 이용하여 상태 가치 함수(state value function)나 행동 가치 함수(action value function)를 갱신하고, 이를 통해 최적의 정책을 도출합니다.

전이함수의 추정

실제 강화학습 문제에서는 전이함수를 사전에 알기 어려운 경우가 많습니다. 따라서 전이함수를 추정하는 방법이 필요합니다. 주로 사용하는 방법은 다음과 같습니다. 모델 학습: 경험 데이터를 이용하여 전이함수를 추정합니다. 예를 들어, 마코프 결정 과정(Markov Decision Process, MDP) 모델을 학습하여 상태 전이 확률을 추정할 수 있습니다. 시뮬레이션 기반 접근: 환경 시뮬레이터를 이용하여 다수의 에피소드를 실행하고, 이를 통해 전이 확률을 경험적으로 계산합니다. 함수 근사: 신경망(neural network)이나 가우시안 과정(Gaussian processes) 등 함수 근사 기법을 이용하여 전이함수를 모델링합니다. 전이함수는 강화학습의 핵심 개념으로, 에이전트가 환경과 상호작용할 때 상태와 행동에 따른 다음 상태의 확률적 전이를 정의합니다. 이는 에이전트의 정책 평가와 개선, 환경 모델링, 계획 및 예측 등에 중요한 역할을 합니다. 다양한 강화학습 알고리즘에서 전이함수를 활용하여 최적의 정책을 학습하고, 에이전트의 성능을 향상시킬 수 있습니다.

전이함수를 구축에 고려할 점

전이함수는 마르코프 특성을 갖게 되고 이것은 전이가 현재 상태와 행동에 의해 완전히 결정된다고 봐야 합니다. 구현하고자 하는 환경이 이론적으로 시뮬레이션으로 구축이 가능한지를 고려해 봐야 합니다. 실제로 규칙과 물리엔진, 게임엔진 또는 데이터를 이용해 환경 모델을 개념적으로 구축이 가능한지를 살펴봐야 하고, 이것은 즉 전이함수가 만들어 질수 있는 환경인지, 실현가능성이 있는지를 살피는 과정입니다. 먼저 구현하고자 하는 에이전트의 환경이 프로그래밍으로 구현가능한지, 그리고 학습 가능한지를 알아야 하고, 일련의 규칙들로 환경을 완전히 표현할수 있는지를 설계해 보아야 합니다. 완전히 표현 불가능하나 환경으로 구현은 가능할 정도라면 모델을 실제 데이터로부터 직접 학습하여 이를 이용해 역으로 환경을 만드는 방법도 있습니다. 다음은 데이터에 관련된 내용인데, 데이터 수집에 비용이 많이 들어가는지, 이러한 데이터를 충분히 모을수 있는지, 그렇지 않다면 데이터의 부정확성이 적은지 등을 고려해야 합니다. 이 모든것의 중심에는 전이함수에 의해 환경이 만들어졌다고 하더라도 에이전트가 환경을 학습할 수 있는지가 중요합니다.

전이함수 구축 과정

전이함수를 구축하여 전체적인 환경을 설계할때 몇가지의 특성이 존재합니다. 먼저 체스나 장기와 같이 결정론적 문제에서 전이 규칙을 알고 있을 경우 수학적 계산식이나 물리적 법칙 계산식에 의해 환경을 구성할 수 있습니다. 현실적인 로봇 시뮬레이션과 같이 확률론적 문제에서 역할을 하고 있는 경우 역학의 일부가 본질적으로 확률론적이며, 나머지 부분은 랜덤 노이즈가 더해진 결정론적 역학으로 구성되어 있습니다. 관측하거나 예상할 수 없는 변수가 많은 재고관리나 판매 최적화와 같이 확률론적 문제에서 역학을 모르는 경우 이때는 역학을 모르기 때문에 데이터로부터 역학을 학습해야 합니다. 환경 데이터와 액션으로부터 빈도수를 측정하여 히스토그램을 그리고 가우시안, 베타, 베르누이 같은 분포 유형을 맞춰 확률분포를 구해야 합니다. 이를 정리하면 데이터로부터 확률분포를 학습하는 지도학습 과정으로 변환될 수 있고 데이터를 구성하는 입력은 s1, a1이고 목표 결과는 s1+1이 됩니다. 복잡한 비디오 게임과 같이 마르코프 특성을 따르지 않는 문제의 경우 전이를 완전히 결정하기 위해 시간구간을 더 길게 잡아야 합니다. 전이함수에 대한 프로그래밍이 가능하다면 반드시 마르코프가 아니더라도 현실적인 모델을 구축하는데 초점을 맞춥니다. 그 다음 에이전트에게 노출된 상태가 마르코프여야 하는지를 결정합니다. 상태가 마르코프 특성을 가져야 하고 그것이 중요하다면 충분한 이력을 포함하도록 상태를 재설계할 필요가 있을수도 있습니다. 이렇게 상태를 마르코프 상태로 재정의하는 것이 중요합니다.

환경 시뮬레이션 평가

모델이 얼마나 환경을 잘 표현하고 모사하는지를 평가할 방법이 필요한데, 오차를 정량화하는 방법으로 KL발산이 있습니다. 모든 문제를 시뮬레이션화 하는 것은 불가능하므로 모델을 단순화하기도 하는데, 이때에 모델이 불안전하게 될수도 있고, 탐험을 하다보면 예상치도 못한 움직임을 학습하기도 하여 이러한 점들이 불안한 환경을 만들기도 합니다. 환경을 만들때 물리적 계산식으로 만드는 과정이 어렵다면 현실 데이터를 먼저 수집한 후 그 데이터를 학습하는 모델을 만들어 훈련을 시키게 됩니다. 그 다음 훈련된 모델을 현실 데이터에 다시 적용시키고 그 오차를 허용수준 범위까지 감소시키고 이 과정을 반복하게 됩니다. 학습한 모델과 실제 문제 사이 오차에 대해 각각 2개의 확률분포가 존재하고 이 둘 사이의 차이를 쿨백 라이블러(KL) 발산 방법으로 어떤 확률분포가 다른 확률분포로부터 얼마나 많이 발산하는지를 측정하게 됩니다. 두 확률분포가 적을수록 발산량이 적어지고 이 지표를 토대로 환경이 현실을 제대로 모사하고 있는지를 판단하게 됩니다.

Blog Home Back to Post List