강화학습

강화학습이란?

꼭 알아야 할 3가지 사항

강화학습은 컴퓨터 에이전트가 환경에서 반복적인 시행착오 상호 작용을 통해 작업 수행 방법을 학습하는 머신러닝 기법의 한 유형입니다. 이 학습 접근법을 통해 에이전트는 인간의 개입 또는 작업 수행을 위한 명시적인 프로그래밍 없이 작업에 대한 보상 메트릭을 최대화하는 결정을 내릴 수 있습니다.

강화학습의 작동 방식

강화학습의 일반적인 훈련 메커니즘은 다양한 실제 시나리오를 반영합니다. 긍정 강화를 통한 반려동물 훈련을 예시로 들어보겠습니다.

조련사와 상호 작용 중인 강아지의 그림. 강화학습 용어로 설명하면 강아지는 에이전트이고 조련사는 환경의 일부입니다.

강아지 훈련에서의 강화학습.

자율적으로 주차하는 방법을 학습 중인 차량 및 강화학습 에이전트 역할을 하고 있는 차량 컴퓨터의 그림.

자율주차에서의 강화학습.

강화학습 용어를 사용해서 설명하자면 이 사례의 학습 목표는 강아지(에이전트)가 강아지를 둘러싼 환경과 조련사를 포함한 환경에서 행동을 완료하도록 강아지를 훈련하는 것입니다. 먼저 조련사가 강아지에게 명령 또는 신호를 보내고 강아지는 이를 관찰합니다(관측값). 그런 다음 강아지는 행동을 취하여 응답합니다. 취한 행동이 원하는 행동과 근접한 경우 조련사는 간식 또는 장난감과 같은 보상을 제공할 것입니다. 그렇지 않다면 보상이 제공되지 않습니다. 훈련 초반에 강아지는 특정 관측값을 행동 및 보상과 연관 짓기 위해서 “앉아”라는 명령에 구르는 등 무작위 행동을 더 많이 취할 것입니다. 이러한 관측값과 행동 사이의 연관성 또는 매핑을 정책이라고 합니다. 강아지의 관점에서 최적의 시나리오는 모든 신호에 올바르게 응답하여 최대한 많은 간식을 획득하는 것입니다. 즉, 강화학습 훈련의 의미는 강아지가 보상을 최대화하는 목표 행동을 배울 수 있도록 강아지의 정책을 "조정"하는 데 있습니다. 훈련이 완료되면 강아지는 자신이 개발한 내부 정책을 사용하여 보호자의 “앉아”라는 명령을 관찰하고 적절한 행동을 취할 수 있게 됩니다. 이 시점에는 간식이 제공되면 좋지만 필수적이지는 않습니다.

강아지 훈련 예시를 떠올리면서 자율주행 시스템을 사용한 자동차 주차 작업의 예시를 살펴보겠습니다. 목표는 강화학습을 활용하여 자동차 컴퓨터(에이전트)에게 올바른 주차 위치에 주차하도록 가르치는 것입니다. 강아지 훈련 사례와 동일하게 환경은 에이전트를 제외한 모든 것을 의미하며 차량의 동역학, 근처에 있는 다른 차량, 날씨 등이 포함될 수 있습니다. 훈련 동안 에이전트는 카메라, GPS 및 라이다 등 센서의 판독값(관측값)을 사용하여 운전, 제동 및 가속 명령(행동)을 생성합니다. 관측값으로부터 올바른 행동을 생성하는 방법을 학습(정책 조정)하기 위해 에이전트는 시행착오 절차를 통해 차량의 주차를 반복해서 시도합니다. 시행의 적합성을 평가하고 학습 과정을 인도하기 위해 보상 신호가 제공될 수 있습니다.

강아지 훈련 예시에서 훈련은 강아지 뇌 속에서 이뤄졌습니다. 자율주차 예시에서는 훈련 알고리즘이 훈련을 담당합니다. 훈련 알고리즘은 수집된 센서 판독값, 행동 및 보상을 기반으로 에이전트의 정책 조정을 책임집니다. 훈련이 완료되면 차량의 컴퓨터는 조정된 정책과 센서 판독값으로만 주차를 할 수 있습니다. 이러한 두 가지 모두 환경과의 시행착오적 상호 작용을 통해 데이터를 생성하므로 모델 프리 강화학습의 예시라고 할 수 있습니다.

강화학습의 주요 구성요소(정책, 환경, 에이전트, 행동, 보상, 관측값)는 불확실성이 있는 환경에서 의사결정을 내리기 위한 수학적 모델인 마르코프 결정 과정이라는 프레임워크 내에서 정형화됩니다.

탐색과 활용

탐색과 활용 간의 절충은 강화학습에 있어 매우 중요한 측면이며 학습 품질에 큰 영향을 미칠 수 있습니다. 핵심 아이디어는 다음 질문에 있습니다. 에이전트가 자신이 이미 알고 있는 가장 큰 보상을 수집하는 행동을 선택하여 환경을 활용해야 할까요? 또는 아직 미지의 환경을 탐색하는 행동을 선택해야 할까요? 에이전트가 내리는 선택은 에이전트가 받는 정보를 결정하며, 따라서 에이전트가 배울 수 있는 정보도 결정하게 됩니다. 탐색에 너무 집중할 경우 에이전트가 좋은 정책으로 수렴할 수 없습니다. 활용에 너무 집중할 경우 에이전트가 국소 준최적해에 갇힐 수 있습니다. 일반적으로 에이전트는 활용할 정보가 충분하지 않은 학습 초기에 더 많이 탐색하고 결국은 활용하는 쪽으로 점차 전환하게 됩니다.

심층 강화학습

심층 강화학습은 강화학습과 딥러닝을 결합한 것입니다. 간단한 문제의 경우 룩업 테이블 형태의 정책으로 충분할 수 있지만, 이 접근법은 규모가 큰 문제와 본질적으로 연속적 문제에 대해서는 확장성이 떨어집니다. 심층 강화학습으로 훈련된 심층 신경망은 복잡한 행동을 인코딩할 수 있으며, 기존 방법으로는 해결하기 매우 까다롭거나 다루기 어려운 응용 분야에 대안적인 방식을 제공합니다. 예를 들어, 자율주행에서 신경망은 운전자를 대신하여 카메라 프레임, 라이다 측정값 등 다양한 센서를 동시에 살펴보고 스티어링 휠을 어떻게 돌릴지 결정할 수 있습니다. 신경망이 없었다면 이 문제는 카메라 프레임에서 특징 추출, 라이다 측정값 필터링, 센서 출력값 통합, 센서 출력값을 기반으로 “주행” 결정 내리기 등의 여러 개의 작은 문제들로 세분화됐을 것이며, 이 경우 룩업 테이블이나 다항식 함수와 같은 보다 전통적인 정책 표현을 사용하면 더욱 쉽게 해결할 수 있습니다.

강화학습 워크플로

강화학습을 사용한 에이전트 훈련의 일반적인 워크플로는 다음과 같은 단계를 포함합니다.

  1. 환경 생성. 먼저 강화학습 에이전트가 운영될 환경을 정의해야 합니다. 이 환경은 시뮬레이션 모델 또는 실제 물리 시스템일 수 있으나 더욱 안전하고 실험이 가능한 시뮬레이션 환경이 일반적으로 더 좋은 첫 단계입니다.
  2. 보상 정의. 다음으로 에이전트가 성과를 작업 목표와 비교하기 위해 사용할 보상 신호 및 이 신호를 환경으로부터 계산하는 방법을 명시해야 합니다. 보상 형성은 까다로운 작업이며 올바르게 설정하기 위해 몇 번의 시도가 필요할 수도 있습니다.
  3. 에이전트 생성. 그런 다음 정책 표현(예: 신경망 또는 룩업 테이블)을 선택하고 강화학습 훈련 알고리즘을 선택 및 조정하는 과정으로 구성된 에이전트를 생성합니다.
  4. 에이전트 훈련 및 검증. 훈련 옵션(예: 중지 기준)을 설정하고 에이전트를 훈련시켜 정책을 조정합니다. 훈련이 종료된 후에는 훈련된 정책을 꼭 검증하여야 합니다.
  5. 정책 배포. 훈련된 정책 표현을 C/C++ 또는 CUDA 코드로 생성하여 배포합니다. 이 시점에서 정책은 독립된 의사결정 시스템입니다.
강화학습 워크플로의 단계: 환경, 보상, 에이전트, 에이전트의 훈련 및 배포.

강화학습 워크플로.

강화학습을 사용하여 에이전트를 훈련하는 절차는 반복적인 과정입니다. 추후 단계의 결정 및 결과로 인해 학습 워크플로의 이전 단계로 다시 돌아와야 할 수 있습니다. 훈련 과정에서 합리적인 시간 내에 최적의 정책으로 수렴하지 않는 경우 다시 훈련시키기 전에 문제 정의(동역학, 관측값, 행동), 보상 신호, 정책 아키텍처, 알고리즘 하이퍼파라미터를 다시 검토해야 할 수 있습니다.

강화학습 알고리즘의 유형

강화학습, 머신러닝 및 딥러닝

비지도 및 지도 머신러닝과 다르게 강화학습은 정적 데이터셋에 의존할 필요가 없고, 역동적인 환경에서 동작하며 수집된 경험으로부터 학습할 수 있습니다. 데이터 점 또는 경험은 훈련하는 동안 환경과 소프트웨어 에이전트 간의 시행착오 상호 작용을 통해 수집될 수 있습니다. 강화학습의 이 측면은 지도 및 비지도 머신러닝에서는 필요한 훈련 전 데이터 수집, 전처리 및 레이블 지정에 대한 필요성을 해소하기 때문에 중요합니다.

딥러닝은 3가지 머신러닝 모두를 포함합니다. 강화학습과 딥러닝은 상호 배타적이지 않습니다. 복잡한 강화학습 문제는 주로 심층 신경망과 심층 강화학습에 의존합니다.

군집화, 분류 및 보상 기반 경로 시스템을 각각 보여주는 비지도 학습, 지도 학습, 강화학습의 그림.

세 가지 머신러닝: 비지도 학습, 지도 학습 및 강화학습.

강화학습 알고리즘의 주요 3가지 종류를 보여주는 벤 다이어그램: 가치 기반 알고리즘과 정책 기반 알고리즘이 겹친 영역이 액터-크리틱 알고리즘을 형성함.

강화학습 알고리즘의 세 가지 주요 범주.

강화학습 알고리즘

강화학습 알고리즘은 학습 및 의사결정에 대한 접근법에 따라 몇 가지 범주로 정리할 수 있습니다.

가치 기반, 정책 기반, 및 액터-크리틱 강화학습 알고리즘

강화학습 알고리즘에는 크게 다음과 같이 세 가지 종류가 있습니다.

  • 가치 기반 방법은 주어진 상태에서 특정 행동을 취한 후 특정 정책을 따를 때 예상되는 누적 보상을 추정하는 Q-함수와 같은 가치 함수를 학습하는 데 중점을 둡니다. 가장 널리 알려진 예는 Q-러닝입니다. 이 정책은 각 상태에서 가치가 가장 큰 행동을 선택하여(즉, 가치 함수에 대해 탐욕적으로) 가치 함수에서 간접적으로 도출됩니다. 가치 기반 방법은 일반적으로 간단하고 샘플 효율적이지만, 적정 크기의 이산 행동에 한해서만 그렇습니다. 행동 공간이 고차원인 경우 가치 함수에서 정책을 추출하는 데 얼마나 많은 시간이 소요될지를 생각해 보세요.
  • 정책 기반 방법은 상태를 행동에 매핑하는 파라미터화된 정책을 직접 학습하여 예상되는 보상을 극대화하도록 정책 파라미터를 최적화하고, 기존의 경사하강법과 매우 유사하게 작동합니다. REINFORCE 및 기타 정책 경사법을 예로 들 수 있습니다. 이러한 방법은 본질적으로 연속적이거나 규모가 큰 행동 공간에 적합하며 탐색 및 도메인 랜덤화에 유용한 확률적 정책을 학습할 수도 있습니다. 정책 기반 방법의 단점으로는 학습이 느리고 불안정하며, 샘플 효율이 낮고, 국소 최솟값에 대한 민감하다는 점이 있습니다.
  • 액터-크리틱 방법은 가치 기반 접근법과 정책 기반 접근법의 장점을 결합한 방법입니다. 액터는 정책을 직접 업데이트하는 반면, 크리틱은 가치 함수를 추정하여 행동을 평가합니다. 크리틱의 피드백은 정책 경사 추정값에 대한 분산을 낮춰 더 안정적이고 효율적인 업데이트가 가능하게 합니다. 또한 정책(액터)을 직접 표현할 수 있으므로 고차원의 연속적인 행동 공간 문제를 다루는 데에도 유리합니다. 이러한 방법의 주요 단점은 (액터와 크리틱의) 구현하고 조정해야 하므로 구조가 더 복잡해진다는 점입니다. 액터-크리틱 알고리즘의 예로는 DDPG(심층 결정적 정책 경사), PPO(근위 정책 최적화), SAC(소프트 액터-크리틱) 등이 있습니다.
액터-크리틱 강화학습 알고리즘의 개략적인 네 단계: 1) 액터가 행동을 선택 2) 크리틱이 해당 행동의 가치를 예측 3) 크리틱이 해당 행동을 적용해 수집한 보상을 사용하여 자신을 업데이트 4) 액터가 크리틱의 응답을 통해 자신을 업데이트.

액터-크리틱 강화학습의 실사용 예.

모델 기반 및 모델 프리 강화학습 알고리즘

모델 기반 강화학습은 환경의 동역학(전이 확률 및 보상 함수)을 나타내는 모델을 구축하거나 사용하여 계획을 세우고 의사결정을 내립니다. 여기서 핵심은 “계획”이란 말입니다. 이러한 알고리즘은 일반적으로 내부 모델을 사용하여 미래 상태를 시뮬레이션하므로 환경과의 상호 작용이 거의 또는 전혀 필요하지 않습니다. 내부 모델은 사전에 제공되거나(이 경우 에이전트는 환경과 상호 작용할 필요가 전혀 없음) 또는 실제 환경과의 상호 작용을 통해 수집된 데이터를 통해 학습될 수 있습니다. 모델 기반 강화학습은 모델을 사용하여 대규모 훈련 데이터셋을 신속하게 생성할 수 있으므로 일반적으로 모델 프리 강화학습보다 샘플 효율성이 더 높습니다. 그러나 모델 기반 방법은 내부 모델의 사용 가능 여부나 학습 여부에 따라 기본 에이전트를 훈련시키는 것 외에도 환경 모델을 훈련시키고 훈련 데이터를 생성해야 하므로 모델 프리 방법보다 훨씬 더 많은 연산 리소스가 필요할 수 있습니다.

모델 기반 알고리즘과 달리, 모델 프리 방법은 환경에 대한 명시적 모델을 구축하지 않습니다. 대신, 직접적인 상호 작용을 통해 시행착오에 의존하여 최적의 행동을 학습합니다. (이전 섹션의 강아지 훈련과 자동 주차 예시를 떠올려 보세요.) 이 접근법은 일반적으로 데이터 사용량 측면에서는 덜 효율적이지만, 더욱 간단하며 고차원 환경이나 비정형 환경에 더 적합합니다. 대부분의 최신 강화학습 알고리즘은 모델 프리 방식에 속하고 있습니다.

온라인 및 오프라인 강화학습 알고리즘

온라인 강화학습에서는 에이전트가 학습 과정 동안 환경과 지속적으로 상호작용하며 경험을 수집하고, 정책을 업데이트하며, 새로운 데이터가 들어올 때마다 계속해서 적응합니다. 위에서 설명한 강아지 훈련과 자동 주차 시나리오가 온라인 강화학습의 예입니다.

반면, 오프라인(또는 배치) 강화학습은 환경과의 추가적인 상호 작용 없이 기록된 경험(예: 사람의 시연 또는 과거 정책)으로 구성된 정적 데이터셋을 통해서만 학습합니다. 오프라인 방법은 실제 환경과의 상호 작용이 비용이 많이 들거나 안전하지 않은 경우에 적합하며 무작위 데이터나 비전문가 데이터에서도 유용한 정보를 추출할 수 있습니다(다만 학습 품질은 전문가 데이터나 정형 데이터에서 추출된 것보다 떨어질 수 있음). 실제로, 오프라인 강화학습은 온라인 강화학습으로 넘어가기 전에 정책을 사전에 훈련시키기에 좋은 선택지인 경우가 많습니다. 샘플 효율성은 떨어지지만, 새로운 데이터를 지속적으로 반영하기 때문에 일반적으로 더 우수한 성능을 낼 수 있습니다.

온-폴리시 및 오프-폴리시 강화학습 알고리즘

온-폴리시 강화학습 알고리즘은 훈련 데이터 생성에 사용되는 동일한 정책을 업데이트하고 평가합니다. 즉, 에이전트는 실제 행동을 기반으로 현재 정책의 가치를 학습합니다(예: SARSA, PPO, TRPO). 이 접근법은 오프-폴리시 방법처럼 행동과 목표 정책 간 차이를 조정하려고 하지 않기 때문에 업데이트가 더 안정적이고 신뢰할 수 있는 경우가 많습니다. 그리고 단일 정책만 유지하고 업데이트하기 때문에 계산 복잡도가 낮은 경향이 있습니다.

반면, 오프-폴리시 방법(예: Q-러닝, DQN)은 하나의 정책(행동 정책)에서 수집한 데이터를 활용하여 다른 목표 정책(예: 탐욕적 전략 또는 최적 전략)을 학습하거나 개선합니다. 따라서 과거 경험(데이터)을 재생 버퍼에 저장하고 여러 번 재사용할 수 있습니다. 이 방법은 각 정책을 업데이트한 후 데이터를 삭제하는 온-폴리시 방법에 비해 샘플 효율성이 크게 향상됩니다. 오프-폴리시 방법의 다른 이점은 무작위 데이터, 오래된 데이터 또는 사람이 생성한 데이터를 비롯한 모든 정책으로부터 학습할 수 있다는 점입니다. 오프라인 데이터셋이나 시연을 통해 훈련할 수 있는 것은 이러한 유연성 덕분입니다.

기울기 기반 및 진화 강화학습 알고리즘

경사 기반 알고리즘은 (역전파를 통해) 정책 경사의 잡음이 있는 추정값을 활용하여 빠르고 샘플 효율적인 학습을 제공하기 때문에 많은 현대 심층 강화학습 알고리즘에서 핵심적인 역할을 합니다. 반면, 하이퍼파라미터에 민감하고, 국소 최적해에 빠지기 쉬우며, 미분이 가능해야 합니다.

이에 반해, 진화 강화학습은 정책을 블랙박스로 취급하며, 경사를 사용할 수 없거나 신뢰할 수 없는 경우, 대규모 병렬 연산을 이용할 수 있는 경우 또는 거친 탐색 공간에서 광범위한 탐색이 필요한 경우에 강력한 툴이 됩니다. 진화 전략은 모집단 기반 돌연변이와 선택을 통해 전역적으로 탐색하므로 보상 신호가 희소하거나 구별할 수 없는 경우에도 강인성을 제공하지만 샘플 효율성이 훨씬 떨어지며 수렴 속도가 더 느립니다.

하이브리드 기법을 통해 두 방법의 장점을 모두 활용할 수 있는 경우가 점점 더 많아지고 있습니다. 하이브리드 기법에서는 탐색 및 전역 검색에 진화를 사용한 다음 경사 기반 업데이트를 통해 유망한 정책을 개선해 전반적으로 더 강력한 성능을 달성하는 경우가 많습니다.

테이블 및 신경망 기반 강화학습 알고리즘

당면한 문제의 성격에 따라 적합한 알고리즘이 결정되는 경우가 많습니다. 환경의 상태 및 행동 공간이 서로 다르고 개수가 적다면 여러분은 단순한 테이블을 사용하여 정책을 표현할 수 있습니다. 일반적인 테이블 형식 알고리즘의 예로는 Q-러닝과 SARSA가 있습니다. 상태/행동 쌍이 매우 커지거나 무한하다면 정책 파라미터를 테이블에 표현하기가 실현 불가능합니다. 이를 소위 차원의 저주라고 하며, 이 경우에 신경망이 중요한 역할을 합니다. 일반적으로 대부분의 최신 강화학습 알고리즘은 대규모 상태/행동 공간 및 복잡한 문제에 적합한 신경망에 의존합니다.

단일 및 다중 에이전트 강화학습 알고리즘

단일 에이전트 강화학습에서는 하나의 에이전트만 환경과 상호 작용하므로 학습이 더 단순하고 안정적이며 분석하기 쉽습니다. 반면, MARL(다중 에이전트 강화학습)에서는 동일한 환경 내에서 여러 에이전트가 상호 작용합니다. 에이전트는 서로 영향을 미치기 때문에 환경이 비정상 상태가 되어 마르코프 가정에 위배되며 학습 과정이 불안정해집니다. MARL은 더 복잡한 작업을 해결하고 조정이나 협상 같은 창발적 행동을 발달시킬 수 있지만, 수렴 문제, 높은 계산 비용 및 각 에이전트를 독립적으로 업데이트하는 경우 발생하는 불안정성 등의 과제도 안고 있습니다.

강화학습의 이점 및 도전 과제

강화학습의 이점

강화학습은 새로운 개념이 아니지만, 최근 딥러닝 및 연산 능력의 발전으로 인해 인공 지능 분야에서 월등한 성과를 거두고 있습니다.

강화학습의 이점은 다음과 같습니다.

  • 복잡하고 순차적인 작업 해결 능력. 강화학습은 여러 단계에 걸친 장기 목표를 최적화하는 방법을 학습할 수 있어 기존 방법으로는 해결하기 어려운 문제의 대안적 탐색 경로를 제공합니다. 심층 강화학습은 신경망의 표현 능력을 활용하여 고급 센서나 복잡한 센서를 사용하는 종단간 솔루션을 생성할 수도 있습니다.
  • 레이블 지정 데이터에 대한 의존도 감소. 지도 학습과 달리, 강화학습은 보상 및 벌점을 통해 환경 피드백으로부터 직접 학습할 수 있어 비용이 많이 드는 레이블 지정 데이터셋에 대한 필요성이 줄어듭니다.
  • 기존 데이터셋에 대한 요구사항 감소. 강화학습은 일반적으로 실시간으로 생성되는 데이터를 통해 학습하지만, 이는 기존 데이터셋을 사용할 수 없다는 뜻이 아닙니다. 사실, 지도 학습과 달리 오프라인 강화학습은 비전문가 데이터나 학습할 원하는 행동이 포함되지 않은 데이터에서도 유용한 정보를 추출할 수 있습니다.
  • 적응성, 자기 수정, 강인성. 강화학습은 시행착오를 통해 행동을 지속적으로 개선하므로 배포 후에도 에이전트가 성능에 따라 전략을 수정할 수 있습니다. 또한 결과를 예측할 수 없는 비결정적 조건을 처리하도록 설계되었기 때문에 실제 세계에 복잡성에 잘 맞습니다.

강화학습의 도전 과제

강화학습은 강력한 기법이지만, 다음과 같은 어려움도 있습니다.

  • 높은 진입 장벽. 강화학습은 알고리즘 및 개념의 복잡성으로 인해 진압 장벽이 높은 경우가 많습니다.
  • 많은 데이터 및 연산 요구량. (샘플 비효율성) 훈련에는 많은 양의 데이터가 필요한 경우가 많으며 이는 엄청난 수의 상호 작용이나 시뮬레이션이 이루어진다는 의미입니다. 따라서 복잡한 문제의 경우 수렴에 이르기까지 며칠 동안 훈련해야 하는 경우가 자주 있습니다.
  • 많은 설계 파라미터. 강화학습은 보상 신호, 신경망 아키텍처, 에이전트별 하이퍼파라미터 등 조정이 필요한 수많은 하이퍼파라미터를 사용합니다. 이러한 파라미터가 약간만 변경되는 경우에도 훈련 성능에 큰 영향을 미칠 수 있으며, 허용 가능한 정책을 얻기까지 여러 번 훈련시켜야 하는 경우가 많습니다.
  • 일반화 및 전이 학습 문제. 에이전트는 훈련 시나리오를 벗어나면 제대로 작동하지 못하거나 시뮬레이션의 학습을 실제 환경에 효율적으로 전이하지 못하는 경우(sim2real gap: 시뮬레이션-현실 격차)가 많습니다.
  • 검증, 해석 가능성 및 디버그 문제. 심층 강화학습은 강력하긴 하지만, 신경망에는 태생적인 한계가 있습니다. 복잡한 신경망 정책은 설명 및 문제 해결이 어렵기 때문에 투명성이 떨어집니다. 또한 신경망의 정형 검증은 아직 연구 중인 분야이기 때문에 심층 강화학습을 안전 필수 시스템에 적용하기가 수월하지 않습니다.

엔지니어드 시스템에서의 강화학습 응용 사례

강화학습은 지난 몇 년 동안 AI 챗봇과 LLM(대규모 언어 모델), 추천 시스템, 마케팅과 광고, 게임 등 여러 분야에서 사용되어 왔습니다. 그러나 생산 응용 분야의 경우 대부분 여전히 평가 단계에 있으며 엔지니어드 시스템의 경우 더욱 그렇습니다. 긍정적인 측면에서 보면 앞서 언급한 이점을 통해 서서히 그러나 꾸준히 이 기술의 사용 범위가 여러 분야로 확대될 것입니다. 엔지니어드 시스템에서 강화학습의 실제 응용 사례는 일반적으로 다음 분야에서 이루어집니다.

  • 고급 제어: 비선형 시스템이나 복잡한 시스템 또는 고급 센서 피드백을 사용하는 시스템은 제어하기가 까다롭고 추가적인 사전 작업(예: 다양한 동작점에서의 시스템 선형화 또는 영상 같은 센서 데이터에서 특징 추출)이 필요합니다. 이러한 경우 추가적인 사전 작업을 수행하지 않고 강화학습을 직접 적용할 수 있습니다. 응용 분야로는 자율주행(예: 카메라 입력 기반 주행 결정) 및 로보틱스(예: 픽앤플레이스 응용 사례에 맞게 로봇 팔에 다양한 물체를 다루는 방법 교시 또는 로봇에 걷는 법 교시)가 있습니다.
  • 스케줄링: 스케줄링 문제는 신호등 제어, 공장 현장의 리소스 편성 등 다양한 상황에서 발생합니다. 강화학습은 이와 같은 고차원 조합 최적화 문제 해결에 있어 진화적 방법을 대체할 수 있는 좋은 수단입니다.
  • 보정: ECU(전자 제어 장치) 또는 엔진 보정과 같이 파라미터의 수작업 보정이 필요한 응용 분야 또는 생산 라인 최적화 같이 인간의 실수가 발생하기 쉬운 응용 분야는 강화학습을 활용하기 좋은 조건을 갖추고 있습니다.
  • 적대적 문제: 머신러닝에서 적대적 응용 사례로는 의도적인 조작을 통해 다른 모델, 시스템 또는 환경의 약점을 악용하도록 설계된 입력(적대적 표본이라고 함)이 있습니다. 적대적 강화학습의 예로는 다른 정책(또는 해당 문제를 위한 다른 알고리즘)을 “위반”하여 반례를 식별하고 시스템 취약성을 평가하려고 시도하는 정책-검증 에이전트를 설계하는 것이 있습니다. 적대적 강화학습은 사이버 보안 응용 분야에서 특히 유용하며, 공격을 시뮬레이션하여 방어를 테스트하거나 그 반대를 시뮬레이션하는 데 사용할 수 있습니다.
  • 설계 최적화: 강화학습의 이점을 많이 누릴 수 있는 분야에는 시뮬레이션 기반 설계 최적화가 있으며, 특히 시뮬레이션 비용이 많이 드는 경우에 더욱 그렇습니다. 강화학습 에이전트는 스마트한 방식으로 설계 공간을 탐색할 수 있으므로 필요한 훈련 데이터와 시뮬레이션의 양을 줄일 수 있습니다. 구체적인 응용 사례로는 레이다 설계와 칩 배치 최적화가 있습니다.

MATLAB®, Simulink®Reinforcement Learning Toolbox™는 강화학습 작업을 간소화합니다. 동일한 생태계 내에서 강화학습 워크플로의 모든 단계를 거치면서 제어기 및 의사결정 알고리즘을 구현할 수 있습니다. 구체적으로 다음과 같은 단계를 수행할 수 있습니다.

  1. MATLAB 및 Simulink에서 훈련 환경과 보상 신호를 생성할 수 있습니다. MATLAB 함수와 Simulink 블록을 통해 생성된 환경을 손쉽게 연동할 수 있습니다.
  2. 심층 신경망 디자이너로 프로그래밍 방식 또는 대화형 방식으로 신경망 기반 정책을 생성할 수 있습니다. 또는 룩업 테이블과 다항식을 사용할 수 있습니다.
  3. 약간의 코드 변경만으로 DQN, DDPG, PPO 및 SAC 같은 널리 쓰이는 가치 기반, 정책 기반 및 액터-크리틱 알고리즘을 전환, 평가 및 비교하거나 나만의 사용자 지정 알고리즘을 생성할 수 있습니다. 단일 에이전트/다중 에이전트, 경사 기반/진화, 온라인/오프라인, 모델 기반/모델 프리 강화학습 등 기본으로 제공되는 다양한 훈련 접근법을 사용할 수 있습니다.
  4. 강화학습 디자이너 앱으로 대화형 방식으로 에이전트를 설계하고 훈련하며 시뮬레이션할 수 있습니다.
  5. 프로덕션 시스템 및 임베디드 기기에 자동 코드 생성 툴로 강화학습 정책을 배포할 수 있습니다. 필요한 경우 배포 전 압축 기법을 사용하여 신경망 정책의 메모리 사용량을 줄일 수 있습니다.
에이전트 하이퍼파라미터를 설정하기 위한 대화형 대화 상자가 표시된 강화학습 디자이너 앱의 스크린샷.

강화학습 디자이너 앱으로 대화형 방식으로 강화학습 에이전트 만들기. (문서 참조.)

MATLAB 및 Simulink를 통한 강화학습의 흔한 도전 과제 해결

MATLAB 및 Simulink를 사용해 강화학습과 관련된 많은 일반적인 문제를 해결할 수 있습니다.

높은 진입 장벽

강화학습을 신속하게 시작할 수 있습니다. 알고리즘을 별도로 구현할 필요 없이 기본 제공 알고리즘을 사용해 보고, 참조 예제를 참조해 문제 설정 방법에 대한 아이디어를 얻고, 무료 학습 자료교육과정으로 실력을 쌓을 수 있습니다.

많은 데이터 및 연산 요구량 (샘플 비효율성)

Parallel Computing Toolbox™MATLAB Parallel Server™를 사용해 여러 GPU, 여러 CPU, 컴퓨터 클러스터 및 클라우드 리소스를 활용하여 강화학습 정책을 더욱 빠르게 훈련시킬 수 있습니다. 예를 들어, 여러 시뮬레이션을 병렬로 실행해 훈련 데이터를 더 빠르게 생성하고 경사 계산 속도를 높여 학습 속도를 향상할 수도 있습니다.

또한 Reinforcement Learning Toolbox는 샘플 효율성에 도움이 되는 모델 기반 강화학습을 위한 기능도 제공합니다.

MBPO(모델 기반 정책 최적화) 에이전트의 경우 모델이 대규모의 다양한 경험 세트를 생성할 수 있으므로 모델 프리 에이전트보다 샘플 효율성이 뛰어날 수 있습니다.

병렬 연산을 사용해 여러 컴퓨터에서 문제를 실행하여 강화학습 속도를 높이고 최적 정책에 더 빨리 도달하는 방법을 보여주는 다이어그램.

병렬 연산을 사용한 샘플 비효율적 학습 문제 훈련.

많은 설계 파라미터

Reinforcement Learning Toolbox를 사용해 직접 조정해야 하는 하이퍼파라미터의 수를 줄일 수 있습니다. 예를 들어, 아키텍처 신경망 정책을 직접 지정하지 않고도 에이전트를 생성할 수 있습니다. 강화학습 디자이너 앱의 베이즈 최적화를 사용하면 대화형 방식으로 에이전트 하이퍼파라미터를 조정할 수 있습니다. 또한 Model Predictive Control Toolbox™ 사양 또는 Simulink Design Optimization™ 모델 검증 블록을 통해 지정된 성능 제약 조건이 이미 있는 경우 보상 함수를 자동으로 생성할 수 있습니다.

일반화 및 전이 학습 문제

시뮬레이션은 강화학습의 핵심입니다. Simulink와의 긴밀한 통합을 통해 실제 환경에서 생성하기 어렵고 위험한 극한의 조건이나 위험 조건의 경우에도 다양한 시나리오에서 에이전트를 훈련시켜 도메인 랜덤화를 통해 정책의 일반화를 손쉽게 향상할 수 있습니다.

Reinforcement Learning Toolbox를 사용하면 사용 가능한 모든 데이터 소스를 최대한 활용하여 일반화를 향상하고 sim2real gap을 좁힐 수 있습니다. 오프라인 강화학습으로 기존 데이터(예: 타겟 하드웨어에서 수집한 데이터)를 사용해 정책을 사전에 훈련시킬 수 있습니다. 그런 다음 시뮬레이션된 환경에 대해 훈련시키고 도메인 랜덤화를 적용하여 불특정 요소와 시나리오에 대한 강인성을 확보하여 정책을 개선할 수 있습니다. 시뮬레이션 모델이 실제 시스템을 정확하게 나타내도록 하려면 시스템 식별을 사용하면 됩니다. 이 과정의 마지막 단계는 필요한 경우 실제 하드웨어에 대해 직접 훈련시켜서 훈련된 정책을 미세 조정하는 것입니다. 실제 하드웨어를 훈련 과정에 포함시키는 것은 일반적으로 리스크가 있고 위험할 수도 있지만, 이 워크플로의 처음 두 단계를 통해 정책을 미세 조정하는 데 필요한 물리적 하드웨어와의 상호 작용 횟수를 최소화할 수 있습니다. 이 기능은 실시간 응용 사례에도 사용할 수 있습니다.

오프라인 강화학습, 시스템 식별 및 실제 하드웨어 시스템을 대상으로 한 직접 훈련을 보여주는 다이어그램.

Reinforcement Learning Toolbox를 사용하는 sim2real 전이 워크플로로, 사용 가능한 모든 데이터 소스를 활용하여 일반화를 향상합니다.

검증, 해석 가능성 및 디버그 문제

강화학습은 “조용한 오류”로 특징되는 경우가 많은데, 이는 훈련이나 실행 중 발생하는 미묘하며 감지하기 어려운 문제를 말합니다. Reinforcement Learning Toolbox를 사용하면 핵심 훈련 데이터를 기록 및 시각화하여 더 쉽게 분석하고 디버그할 수 있습니다.

해석 가능성 및 검증은 특히 신경망과 관련하여 아직 연구 중이며 연구 커뮤니티에서 활발히 논의되고 있는 분야입니다. Deep Learning Toolbox™는 다양한 시각화 방법을 제공합니다. 시각화는 신경망이 보고 있는 것을 시각적으로 표현하여 신경망 예측을 설명하는 해석 가능성 기법의 한 종류입니다. 다른 접근법은 퍼지 논리를 이용하는 방법으로, FIS(퍼지 추론 시스템)를 훈련시켜 (심층) 강화학습 정책의 행동을 모방하면 FIS 규칙을 사용하여 해당 행동을 설명할 수 있습니다.

시뮬레이션 기반 검증은 강화학습 정책의 검증을 위해 가장 널리 사용되는 접근법이고 Simulink를 통해 손쉽게 생성할 수 있습니다. 모델 기반 설계를 사용하면 기존 검증 및 확인을 통해 시뮬레이션 기반 검증을 확장할 수 있습니다. 예를 들어, Requirements Toolbox™를 사용하여 정책에 대한 요구사항을 정형화하고 일관성, 완전성, 정확성을 분석할 수 있습니다. 또한 Deep Learning Toolbox Verification Library에서 제공하는 정형 기법을 사용해 강인성 및 신경망 출력 범위 같은 신경망 정책의 특정 속성을 평가할 수 있습니다.

마지막으로 고려해야 할 사항은 복잡한 문제를 더 작은 하위 문제로 나누는 것이 이 섹션에서 논의된 모든 문제점을 해결하는 데 도움이 될 수 있다는 점입니다. 디버그와 해석 가능성이 보다 용이해지고(문제가 작을수록 일반적으로 더 간단한 정책 아키텍처가 필요함) 검증 요구사항을 줄일 수 있습니다. 이러한 상황에서는 강화학습을 기존 (제어) 방법과 결합할 수 있습니다. 이 아키텍처와 관련된 주요 아이디어는 검증 가능한 방법이나 기존 방법을 사용하여 문제의 안전 필수적인 측면을 해결하고 블랙박스 강화학습 정책으로는 더 높은 수준의 잠재적으로 덜 중요한 구성요소를 처리할 수 있다는 것입니다. 고려해야 할 다른 아키텍처로는 강화학습과 더불어 기존 방법을 실행하는 하이브리드 접근법 또는 강화학습으로 기존 방법을 보강하거나 수정하는 방법이 있습니다. MATLAB을 사용하면 이러한 아키텍처를 쉽게 구현할 수 있습니다. 강화학습 및 AI 기반 방법 외에도 기본으로 제공되는 다양한 기존 방법을 이용할 수 있으며 단일 시뮬레이션 플랫폼인 Simulink를 사용하여 이러한 방법들을 결합할 수 있습니다.

강화학습과 기존 제어기를 결합한 블록 다이어그램.

강화학습을 기존 방법과 결합하면 보다 쉽게 안전 필수 시스템에 적용할 수 있습니다.