7. DQN
·
AI/강화학습
우리는 강화학습을 신경망을 통해 하는 방법에 대하여 학습했다. 신경망으로 옮긴 이유가 엄청나게 큰 스케일에서는 일반적인 테이블로는 학습하기 힘들기 때문에 강화학습을 신경망으로 하게 된것이다. 하지만 이러한 강화학습 신경망은 준수한 성능을 내지 못하는 단점을 나타내었다. 심지어 아래와 같은 간단한 문제를 이용해도 좋은 성능이 나오지 않았다. 이러한 이유는 강화학습 신경망은 수렴을 하지 않고 발산하는 문제를 나타내기 때문이다. 어떤 문제인지 자세히 알아보자 문제로는 2가지인데 1. Correlations between samples (샘플 간의 상관관계) 2. Non-stationary targets (비정상 표적, 흔들리는 타겟 부정확하다는 것이다.) 이 2가지이다. 우리가 알고 있는 알고리즘으로는 1. ..
6. Q-Network
·
AI/강화학습
우리는 지금까지 Q 테이블을 이용하여 강화학습을 이해했다. 이제 우리가 학습한 내용을 16*4의 테이블이 아닌 100*100*의 크기의 테이블에도 적용할 수 있으며 화면에 출력하는 방식이 2가지의 색을 사용하고 80*80의 이미지를 사용하면 2^(80*80)이다. 한 이미지당 검은색 흰색을 가진다고 가정했을 때이다. 이 수를 계산했을 때 과연 Q 테이블로 가능할까? 라는 의문을 가지면 당연히 안된다. 엄청나게 큰 수이기 때문이다. 위의 문제는 일반적인 Q 테이블로는 해결하기 힘들기 때문에 우리는 여기서 해결 책을 찾았다. 그것은 바로 인공신경망이다. 입력으로 state s, action a 를 신경망에 넣어주게 된다면 더 적은 계산을 통해 출력을 해주지 않을까? 라는 아이디어다. 여기서 더 간단하게 진행..
2. Playing OpenAI GYM Games
·
AI/강화학습
실수로 삭제를 해서 이번 포스팅은 다시 작성한다...허 하... ㅠㅠ 아무튼 정리를 다시 해보자.. 우리는 이제 강화학습을 OpenAI GYM 이란 프레임워크를 활용하여 학습을 해보겠다. 우리가 이제 학습에 활용해볼 게임은 Frozen Lake라는 게임을 이용할 것이다. 여기에서 agent 당사자 라는 개념이 있으며 이 agent는 위 아래 오른쪽 왼쪽으로 이동한다. F는 얼은 호수 H 는 구멍이다. G는 목표지점이다. 이러한 것을 활용하여 이제 우리는 개발을 해볼 것이다. agent는 env라는 환경에서 활동을 할것이다. 순서를 보면 agent가 action을 하게 되면 s 라는 state 상태(이 게임에서는 인덱스를 돌려줄 것이다.) 와 reward r을 돌려 줄것이다. 이런 것을 일반화 한다면 대부..
5. Q-learning in non-deterministic world
·
AI/강화학습
이번 장에서는 지금까지 공부한 Q-learning을 더욱 확장 시켜볼 것이다. 우리는 지금까지 Frozen Lake라는 게임을 이용해 강화학습을 이해했다. 근데 여기서 의문을 가지는 사람이 존재 할수 있다. 아니 왜 Frozen Lake로해? 그냥 맨땅에 구멍 뚫고 설명하면 되는거 아닌가? 라고 생각을 할수 있다. 우리는 이번장에서 왜 Frozen Lake로 설명을 했는지에 대하여 지금까지 빌드업을 알수 있다. 그럼 설명을 시작하겠습니다. 현재는 agent가 s라는 위치에 있으며 상황은 아주 추운 얼은 호수의 위에 있으며 바람도 많이 불고 아주 미끄러운 상태이다. 어디가 구멍인지 골인지도 모르는 상태이다. 만약에 agent가 이때 오른쪽으로 움직인다면 어디로 갈까? 이전의 상황이라면 당연히 오른쪽으로 욺..
4. Q-learning exploit&exploration and discounted reward
·
AI/강화학습
이번장에서는 Q-learning을 완벽하게 이해를 해보겠다. 이전장에서 배운 Q-learning은 앞에 Dummy 가 있다. Dummy 는 부정적인 어조이기 때문에 완벽하지 않은 것을 말한다. 우리가 배운 Q-learning은 보상에 앞으로 받을 보상의 그다음 단계에서 얻을 최대 값으로 진행을 했다. 하지만 이방법에는 문제가 있다. 무슨 문제가 있냐면 항상 가장 큰 값을 따라 움직이다보니 가던 길만을 중심으로 학습을 하게 된다. 새로운 길에 대한 탐사가 이루어지지 않는 문제가 발생한다. 따라서 우리는 이문제를 exploit vs exploration의 문제라한다. 이러한 아이디어를 식당을 예를 들어 사용해 보자. 우리 동네에 위와 같은 식당들이 존재한다. 식당들은 아직 가보지 않았기 때문에 모두 초기에는..
3. Dummy Q-learning
·
AI/강화학습
우리가 지금까지 공부해온 강화학습은 우리가 보기에는 엄청 쉬워 보일지 모른다. 하지만 이러한 강화학습은 agent 입장에서는 아주 어려운 문제이다. 직접 시도(action) 해보고 맞는지 안맞는지 검사를 해야하며 전체의 경로를 파악할 수 없기 때문이다. agent는 직접 움직인 후 확인을한다 위의 왼쪽 그림에서 움직이는 했지만 보상은 받지 못했다. ( agent의 행동이 잘한건지 못한건지 판단이 불가능하기 때문이다. 구멍에 빠진 경우 - 의 점수를 주고 도착지점에 도착한 경우에만 + 점수를 준다.) 그럼 우리는 이러한 문제를 해결하기 위해 랜덤적인 방법이 정답일까?? 물로 처음 몇번은 랜덤적이게 움직이는게 답일지는 모르겠지만 몇번하고 나면 이건 정답이 아니라는 것을 느끼게 될것이다. (비효율적이기 때문)..
1. 강화학습 (Deep Reinforcement Learning)
·
AI/강화학습
강화학습(Deep Reinforcement Learning)은 아주 많은 분야에서 사용되고 있는 방식이다. 말 그대로 강화 시키는 학습이라 생각하면 된다. 예를 들어 강아지를 훈련 시킨다고 생각해보자 강아지에게 '앉아!' 라고 명령하고 난후 그것을 잘 이행하면 먹이를 주는 방식이 아주 대표적인 강화 학습니다. 강화 학습에서 이러한 보상을 Reward라고하며 적절한 보상을 주게 되면서 학습을 하게 된다. 인간들도 마찬가지로 다양한 경험을 통해 학습을 하게 된다. 경험보다 좋은 학습은 없다고 하는 사람도 있듯이 이러한 방식을 컴퓨터에 딥러닝에 적용하게 된다. 강화 학습에 들어가기전 강화학습에서 많이 사용되는 용어를 정리해보자. 강화학습의 주체가 되는 Actor이 있다. 이제 우리는 이러한 Actor를 학습 ..