본문 바로가기
Development/인공지능

RNN, 강화학습

by 메정 2021. 9. 7.

RNN(Recurrent Neural Network)

CNN이 이미지 데이터에 특화된 신경망이라면 RNN(순환 신경망)은 시계열 데이터(시간 순서로 나열된 데이터(time-series data))에 특화된 신경망이다. 시계열 데이터의 예시로는 동영상이나, 음성신호, 주식과 같은 연속적인 데이터가 있을 수 있다.

얘도 신경망(NN)이기 때문에 입력층, 은닉층, 출력층의 3단계의 레이어로 이루어져있는데 조금 다른 점은 입력을 받아 은닉층을 거쳐 출력을 만들고, 이 출력을 다시 입력으로 받는 순환 형태로 이루어져 있다.
왜 그런 형태냐면, 예로 들자면 오늘의 나의 행동이 내일의 나에게 영향을 주듯이 이전 데이터가 다음 데이터에 영향을 준다. 그렇기 때문에 다시 입력으로 이전 데이터의 출력 값을 받는다.

그래서 DNN은 시간 데이터에서 각 시간을 t로 할 때 각 t마다의 데이터들을 DNN을 거친다.
DNN을 거치려면 일차원 값이 되어야 하므로 3차원의 값을 -> 1차원 행렬으로 정리하여 DNN을 거치고, 거친 결과를 다음 DNN에 연결하여 최종결과를 도출하는 방식이다.
이렇게 시간(t)마다 DNN을 거치면 기존 DNN 방식보다는 정확하지만, 학습양이 많아 시간이 오래걸린다는 단점이 있다.

우리가 실세계에서 얻는 데이터들은 대게 time-serise data이므로 학습 모델로 RNN을 이용해야 하기 때문에 RNN은 중요하다!
위에서도 언급했지만, 시간이 오래 걸리기 때문에 시간을 단축하거나 모델을 가볍게 만들기 위한 연구가 RNN 연구의 주라고 한다!

강화학습

이전 게시글에도 적어두었지만 컴퓨터가 환경과 상화작용하여 보상을 얻고 행동을 강화하며 스스로 학습하는 방식이다.
그렇기 때문에 강화학습을 모델로 한 인공지능은 환경을 반복적으로 관찰하고, action을 수행하며 보상을 받아야 한다.

강화학습의 목표는 보상이 가장 큰 액션을 학습하는 것!

강화학습은 행동에 대한 보상을 극대화 하는 것이 중요하다. 강화학습에서 보상은 여러 정책(policy)과 시스템 역학(model)에 의존하는데 강화학습 방식에도 2가지로 나뉜다.

여기서 policy는 현재 상태에서 어떤 액션을 취할지 결정하는 것

  1. model-base RL
    환경을 어떻게 동작할지 기존 지식을 활용하거나 학습해서 사용하는 방식
    환경에 대해 알고 있고, 행동에 따른 환경의 변화를 아는 알고리즘

얻고자하는 Policy가 될 때 까지 다음 과정을 반복 학습한다.

  1. Internal Simulations (자기 스스로 복기하며 여러 경우에 대한 미래를 예측)
  2. Policy update (예측한 미래 경우 중 1개를 골라 policy를 update)
  3. Apply Policy to Robot (업데이트한 policy를 로봇에 적용하여 새 데이터를 얻음)
  4. Model Learning (3을 통해 보상을 받으면 모델은 policy를 학습)
  1. model-free RL == Q-Learning
    환경에 대해 알고 있지 않기 때문에 직접 탐구하며 보상을 높여 행동을 통해 정책을 학습하는 방식
    Q-Learning은 model-free 방식으로 학습하는 강화학습 알고리즘
    agent가 특정 상황에서 특정 행동을 하라는 최적의 정책(policy)을 배우는 것으로, 현재 상태로부터 시작하여 연속적 단계를 거쳤을 때 전체 보상의 예측 값을 극대화하는 알고리즘이다.

댓글