상세 컨텐츠

본문 제목

[강화학습] 4. 근사함수와 인공신경망

인공지능/강화학습

by Na느님 2023. 9. 23. 14:37

본문

  • 이 포스트는 '파이썬과 케라스로 배우는 강화학습'이라는 책을 바탕으로 스스로 공부한 내용을 정리한 포스트입니다.
근사함수와 인공신경망 개념에 대해서 다룬다.

※ 몬테카를로, 살사, 큐러닝 개념은 사정상 생략함

 

 

근사함수

몬테카를로, 살사, 큐러닝의 한계

이 3가지 개념을 배울 땐, 상태 공간의 크기가 작고 환경이 불변한다는 가정을 가진 간단한 문제들이었다. 그러나 현실의 문제는 이렇게 단순하지 않다.

그래서 요즘 강화학습은 인공신경망을 사용하려는 추세이다.

 

앞서 다이나믹 프로그래밍의 한계는 다음 3가지였다.

1. 계산 복잡도가 매우 커짐

2. 차원의 저주

3. 환경에 대한 완벽한 정보가 필수

 

몬테카를로, 살사, 큐러닝 방식은 3번을 해결했지만(model-free), 1번과 2번 문제는 여전히 해결을 못 했다. 그 이유는 이 3개의 방법 다 '모든' 상태에 대해 테이블을 만들어놓고 테이블의 각 칸에 큐함수를 적어 놓는 형태인 것이다.

 

근사함수란

근사함수란 coefficient를 이용해 원본 데이터 묶음을 비슷하게 따라한(근사시킨) 함수를 말한다.

-> 머신러닝의 선형회귀 기법에서 선형함수가 바로 근사함수다!

 

현실 세상은 테이블 형식의 상태로 나타내기엔 너무 복잡하다. 따라서 테이블 기법 대신 근사함수 기법을 이용하는 것이 좋다. 여기서는 근사함수를 구하는 방법으로 인공신경망(ANN) 기법을 사용한다.

 

머신러닝과 딥러닝

머신러닝은 딥러닝을 포함한 상위 개념으로, '학습' 개념이 들어간 알고리즘 방법을 머신러닝 이라고 한다.

딥러닝은 머신러닝의 하위개념으로 당연히 학습 개념이 들어간다.

하지만 머신러닝과의 차이점은, 머신러닝의 경우 데이터 분석을 통해 특징을 추출하고 그것에 맞춰 모델을 설계한 후 학습 시키는 것이지만 딥러닝은 데이터를 학습 가능한 데이터셋으로 변형/정제만 시키고 특징추출과 학습은 컴퓨터에게 맡기는 것이다. 아래 표를 참고하자.

머신러닝 딥러닝
학습을 통해 입출력 관계를 짓는 프로그래밍 방법
데이터 분석을 통해 데이터 특징을 사람이 직접 뽑아내고 특징에 맞춘 모델을 먼저 설계하고 컴퓨터는 학습만 한다. 데이터 분석을 하지 않으며, 데이터를 정제/변환만 시켜 데이터셋을 만들고 특징추출과 학습을 컴퓨터에게 맡긴다.

-> 특징 추출을 사람이 하는가, 컴퓨터가 하는가의 차이

 

딥러닝에서 심층신경망의 가중치(coefficient)와 절편(intercept)을 업데이트 하는 방법으로 역전파 알고리즘을 사용한다.

경사하강법의 기울기 업데이트 방법

 

Tip) 경사하강법의 종류에는 SGD, RMSprop, Adam등이 있다.

 

 

 

 

관련글 더보기