본문 바로가기

Data & AI

[강화학습] 1. 소개

AI가 핫한 이유

고등학교시절 어떤 직업을 가져야 할지 정말 고민을 많이 했습니다. 

남들은 수능공부를 정말 열심히 했지만 나는 꿈을 정해야 공부가 되지 않나 라는 생각을 갖고 있었습니다. 

일단 공학의 여러 분야를 공부해볼 수 있는 과로 진학 하였고 소프트웨어를 접하게 되었습니다. 

사실 우리가 쉽게 접하는 간단한 알고리즘들과 소프트웨어도 AI의 일종이라고 볼 수 있습니다.
AI가 인간의 인지 능력을 컴퓨팅 파워를 가진 컴퓨터가 수행할 수 있도록 하는 것이라고 정의한다면 말이죠

우리가 코드에 적는 조건문 들로 간단한 의사결정을 시킬 수 있으면 이것도 AI는 맞습니다. 

 

하지만 우리가 AI 라고 하는 chatGPT나 알파고들이지 저런 간단한 조건문으로 이루어진 코드조각은 아닙니다. 

모두 AI로 포함될 수 있지만, 인간이 정해준 조건 기준이 아니라 데이터로 기반한 조건 기준으로 의사결정을 하기 시작하면 머신러닝, 그중에서도 Deep Neural Network를 사용하면 딥러닝이라는 이름을 붙여 사용합니다.

AI는 엔지니어인 저를 포함해 현재 지구 위에 살고 있는 인간이 가장 중요한 기술이라고 생각합니다. 

인류가 직면한 문제를 해결할 수 있는 키이면서, 더 발전을 할 수 있는 수단이기도 합니다.

 

 

 

강화학습

강화학습은 주어진 상황에서 어떤 행동을 취할지 학습하게됩니다. 

인간이 인생을 살아가면서 대부분 선택을 해야하는데, 이런 점에서 크게 도움을 줄 수 있을 거라고 기대하고 공부하기 시작했습니다. 

신기하게도 강화학습이 발전해온 방향도 인지심리학을 기준으로 발전해오기도 했습니다. 

 

강화학습은 시행착오를 통해 최대 보상을 가져다주는 행동을 찾습니다. 행동을 할 때마다 보상을 받는데, 
당장 이 행동으로 받는 보상 말고 행동의 다음행동, 그 다음행동에서 받는 보상까지 생각해 보면서(먼 미래의 보상은 지연된 보상으로 감가율 곱해줍니다) 지연된 보상이라는 특성을 갖게 됩니다. 감가율이 존재하지 않는다면 agent는 환경에서의 행동을 무한히 취해도 결국 보상만 얻는 경우에 불이익을 받지 않아서 비효율적으로 학습될 수 있습니다. 

 

이렇게 어떤 환경에 입장해서 특정 상태에서 행동을 하고 환경과 상호작용하는 학습은 기존의 지도학습이나 머신러닝과는 다른 차이점을 보이고있습니다. 기존 지도학습도 학습된 모델을 만들어서 특정 상황에 의사결정하게 하는 AI의 일부분이지만, 인간처럼 상호작용으로 이루어지는 환경에서는 적합하지 않습니다. 지도학습은 말 그대로 teacher learning입니다. 기계에게 그저 이런 입력은 이런 출력이야 라고 라벨링된 데이터를 계속 학습시키면서 일반화시키거나 정형화된 문제에 올바른 행동을 하도록 하는 것을 목표로 합니다. 

 

강화학습이 지도학습이 아니라는 이유로 비지도학습으로 보는 사람들도 있지만 비지도학습은 데이터의 숨은 구조를 찾아내는게 목적이지만
강화학습은 물론 데이터의 숨은 구조를 찾아내면 좋지만, 보상을 최대로 하는것을 목적으로 합니다. 

재미있는 점은 강화학습은 다른 학습법과 다르게 Maximize에 관련된 학습법입니다. 다른 두 학습법은 예측과 실제값의 차를 에러로 규정하고 에러가 Minimize 될 수 있도록 노력하지만, 강화학습은 목표로 하는 함수의 인자가 에러가 아니라 보상이라 그 반대 성격을 띠고 있습니다. 관련연구자들은 우스갯소리로 강화학습은 최소화보다는 최대화를 고민하는 긍정적인 학습이라고 하기도 합니다. 
 강화학습에서 찾을수 있는 또 다른 특성은 Exploitation, Exploration 사이의 절충을 필요로 한다는 것입니다. 

강화학습이 학습을 통해서 적절한 보상을 받을 것으로 기억되는 행동을 취할 수 있지만, 학습 agent가 환경을 전부 아는 것은 아니기 때문에 때로는 모험을 통해서 다른 행동을 취해보고 평가할 줄 알아야 합니다. 

 

 

 

강화학습 구성요소

강화학습은 크게는 아래 4가지로 구성됩니다. 

정책
특정 시점에서 학습자가 취하는 행동을 정의합니다. 학습자가 인지한 주변의 환경 상태에서 학습자가 취해야 할 행동을 알려줍니다. 
우리가 모르는곳을 탐험할 때 지도가 있으면 어떤 길로 가야 하는지 아는 것처럼 지도와 비슷한 역할을 한다고 생각하고 이해하니 도움이 되었습니다. 

 

보상신호
강화학습을 통해서 최종적으로 성취해야할 목표입니다.
환경은 학습자의 행동에 보상이라는 숫자를 전달하는데 학습자의 유일한 목표는 장기간에 걸쳐 학습자가 획득하는 보상의 총합을 최대로 만드는 것입니다.

 

가치함수

장기적 관점에서 무엇이 좋은지를 알려주는 함수입니다.
처음 개념을 볼 때 보상과 가치를 혼동했는데, 가치함수는 현재 상태를 기준으로 앞으로 받을 미래 보상들의 합입니다.

다시 말해 지금 현 상태부터 일정 시간 동안 학습자가 기대하는 보상의 총량입니다. 하지만 여기서 보상의 총합은 위에서 말한 것처럼 감가된 보상의 합입니다. 

 

모델
모델은 환경의 변화를 모사합니다. 환경이 어떻게 변화해 갈지 추정하면서 강화학습에 힌트를 주는 역할을 합니다. 

model-base RL에서 사용되기 때문에 model-free RL에서는 사용되지 않기 때문에 선택적인 구성요소입니다. 

 

 

강화학습의 단점과 종류


기존 머신러닝 학습과는 다른 특성을 보이고 있어서, 다양한 분야에 AI를 적용해보고 싶은 저에게 강화학습은 참 흥미로운 영역이고
언제쯤 공부를 해야지 하다가 이제야 하고 있습니다. 아무튼 강화학습은 많은 사람들에게 주목을 받고 있는 것 같습니다. 

 

하지만 강화학습은 몇 가지 단점이라고 해야 할지 약점이라고 해야할지 모순이라고 해야할지 모를 것들이 있습니다. (개인적인 제 생각도 들어있습니다.) 기본적으로 강화학습은 상태라는 개념에 크게 의존적입니다. 상태는 학습자가 사용할 수 있는 환경에 대한 모든 정보인데. 만약 환경이 우리가 살고 있는 우주라는 공간이라면 우리가 이 환경의 모든 정보를 알고 있다고 가정하고 학습을 진행하게 됩니다. 과연 우리는 환경과 행동으로 상호작용하여 받게 된 상태, 제공받은 모든 정보를 알고 있는 게 맞을까요

 

다음은 Markov 특성입니다. 기본적으로 강화학습에서 각 행동으로 가치함수나 최적의 정책함수를 계산하면서 MDP(Markov Decision Process)로 문제를 해결하는데, Markov 특성이란 건 현재 상태는 과거상태의 정보가 축약되어 포함되어 있다고 가정합니다. 그렇기에 과거에 어떤 일이 일어났던 현재 상태에 그 정보가 담겨있다고 가정되어 있습니다. 여기서도 상태와 관련된 이슈인데 우리가 실제 환경의 상태를 다 알 수는 없으니 어쩔 수 없는 점이라고 생각이 들기도 합니다. 

 



강화학습의 바이블로 불리는 책을 읽으면서 공부 중인데
모든 용어들을 설명하고 싶고 아직 완벽하지 않은 개념을 모두 이해하고 넘어가고자 했지만
완벽을 추구하느라 진도가 나가지 않게 되고 공부가 더 늦어질 것 같아 만족 못하는 선에서 내용정리를 했습니다.

앞으로 계속 반복적으로 다룰 내용이라서 더 배우면서 추가하도록 하겠습니다.