인공신경망 2

[강화학습] 10 - 딥살사(DeepSARSA)

개요 이전 포스팅에서는 인공신경망의 개념과 학습 방법에 대해서 알아봤습니다. 저희는 이 인공신경망을 이용한 코드를 작성하기 위해서 인공신경망을 구현해놓은 딥러닝 프레임워크를 사용하면 됩니다. 현재 가장 널리 쓰이는 딥러닝 프레임워크는 텐서플로 2.0입니다. 텐서플로 2.0 내부에는 인공신경망을 훨씬 더 직관적이고 효율적인 코드로 설계할 수 있게 도와주는 케라스 모듈이 포함돼 있습니다. 이 책에서는 텐서플로 2.1 버전과 케라스 모듈을 사용하여 코드를 작성하였습니다. 이번 포스팅에서는 새로운 그리드월드 예제에서 인공신경망을 이용하여 최적 정책을 학습하는 딥살사에 대해서 코드 예시와 함께 알아보도록 하겠습니다. 딥살사 새로운 그리드월드 예제는 아래와 같습니다. 이제 장애물인 초록색 삼각형 3개가 한 타임스템..

[강화학습] 09 - 인공신경망

개요 아래와 같은, 다이내믹 프로그래밍의 3가지 한계를 극복하기 위해서 등장한 것이 바로 강화학습이었습니다. 1. 계산 복잡도 2. 차원의 저주 3. 환경에 대한 완벽한 정보가 필요 하지만 저희가 배운 살사나 큐러닝 알고리즘을 생각해봅시다. 환경의 모델을 사용하지는 않았지만, 저희는 각 상태의 큐함수를 테이블 형식으로 저장했습니다. 만약 에이전트에게 주어지는 상태가 정말 다양하고 환경이 시간에 따라서 변할 때, 예를 들어 알파고처럼 바둑을 학습하거나 로봇이 일상생활공간에서 학습한다면 저희는 살사나 큐러닝 알고리즘을 사용할 수 있을까요? 무수히 많은 상태의 정보를 테이블 형식으로 저장하여 계산하는 것이란 불가능한 일입니다. 즉 살사나 큐러닝 알고리즘은 3번의 문제만을 해결하고 계산 복잡도나 차원의 저주 문..